<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های کیوان مساجدی</title><link>https://virgool.ir/feed/@m_22998246</link><description>پزشک، دولوپر، علاقه‌مند به الکترونیک، IoT و AI</description><language>fa</language><pubDate>2026-11-12 02:27:50</pubDate><image><url>https://files.virgool.ir/upload/users/1387277/avatar/60HvNJ.jpg</url><title>کیوان مساجدی</title><link>https://virgool.ir/@m_22998246</link></image><item><title>سی شارپ و دات نت مدرن: بخش دوم - آشنایی با دات نت</title><link>https://virgool.ir/@m_22998246/سی-شارپ-و-دات-نت-مدرن-بخش-دوم-آشنایی-با-دات-نت-kigcqbmtyodm</link><description>فهرست مطالبدر بخش اول سری «سی شارپ و دات نت مدرن» با ویژگی های کلیدی زبان سی شارپ و مزایا و معایب اون آشنا شدیم. در این بخش قصد آشنایی با دات نت رو داریم. همونطور که در بخش های قبل اشاره شد؛ دات نت به دلیل به روز رسانی های فراوان و در بین راه، یک سری تغییر نام های جزئی، اغلب مبتدیان رو با اصطلاحاتی مواجه می کنه که کمی گیج کننده هستند. بنابر این رفع ابهام درباره این اصطلاحات هم هدف دیگر این مطلب هست. «دات نت فریم ورک» یا «دات نت»؟اگر بخواهیم خیلی ساده تکلیف رو مشخص کنیم؛ «دات‌نت فریم‌ورک» یک چیز(۱) منسوخ شده و متعلق به گذشته است که دیگه آپدیت نمیشه و مگر این که برنامه نویسی هستید که در گذشته اپلیکیشنی رو با این فریم ورک نوشتید و نیاز به پشتیبانی ازش دارید؛ بهتره که به سراغش نرید. در دنیای مدرن با با «دات‌نت» سر و کار داریم و نه «دات‌نت فریم‌ورک». حالا جریان چیه؟دات نت فریم ورک پلتفرمی بود که سال ۲۰۰۱ عرضه شد و هرچند طوری طراحی شده بود که توانایی اجرای اپلیکیشن های کراس‌پلتفرم رو داشته باشه؛ اما مایکروسافت عملا طوری اون رو پیاده سازی کرد که به جز ویندوز؛ در سیستم عامل های دیگه کاربرد خاصی نداشت. این فریم ورک دو قسمت اصلی داشت به نام  Common Language Runtime یا CLR که در  بخش اول  با اون آشنا شدیم و دوم Base Class Library یا BCL که یک کتابخانه غنی از کلاس های مختلف بود که کار برنامه نویس ها رو در نوشتن اپلیکیشن برای ویندوز بسیار ساده تر می کرد. در دنیای امروز، ویندوز به عنوان یک سیستم عامل اهمیت سابق رو برای مایکروسافت نداره. علت هم مک، آی‌او‌اس، اندروید و لینوکس هستند که غلبه ویندوز رو بربازار سیستم عامل ها به شدت کاهش دادند. در چنین دنیایی، تولید برنامه هایی که توانایی اجرا در سیستم عامل های مختلف رو داشته باشند (کراس‌پلتفرم باشند) برای توسعه دهنده ها بسیار حائز اهمیت هست. بنابر این مایکروسافت سعی کرد به نحوی دات‌نت فریم‌ورک رو که به عنوان یک بخش حیاتی از ویندوز در نظر گرفته می شد؛ از ویندوز جدا کنه و به عنوان یک ابزار کراس‌پلتفرم به دولوپر ها ارائه بده. در این روند مایکروسافت شروع به بازنویسی این پلتفرم کرد و بخش های بزرگی از اون رو که به شدت وابسته به ویندوز بودن و به نوعی بخش کلیدی یا Core محسوب نمی شدن رو حذف کرد. به این ترتیب محصول جدیدی به نام «دات‌نت کور» متولد شد. دو بخش اصلی فریم‌ورک یعنی CLR و BCL، در دات‌نت کور باز نویسی شده و به صورت کراس‌پلتفرم دراومدند و به ترتیب CoreCLR و CoreFX نام گرفتند. دات‌نت کور در ابتدا به عنوان یک آپشن در کنار دات‌نت فریم‌ورک در دسترس برنامه نویس ها قرار گرفت. اما به تدریج مایکروسافت اضافه کردن ویژگی های جدید به دات‌نت فریم‌ورک رو متوقف کرد و از سال ۲۰۲۰ اعلام کرد که تصمیم داره پلتفرمش رو یک پارچه سازی کنه. این یکپارچه سازی به این صورت انجام شد که دات‌نت فریم‌ورک در نسخه 4 (و خورده ای!) برای همیشه بازنشسته شد و نسخه بعدی دات‌نت کور که «دات‌نت ۵» نام گرفت؛ جایگزین اون شد. به این ترتیب امروزه دیگه با دو تا پلتفرم موازی مواجه نیستیم و همانطور که پیش تر گفته شد تنها با «دات‌نت» سر و کار داریم. مونو، زامارین و بلیزردر سال ۲۰۰۴، یعنی چندین سال قبل از اون که مایکروسافت تصمیم بگیره یک نگاه کراس‌پلتفرم به دات‌نت داشته باشه؛ پروژه مونو از طرف شرکت زیمیان به عنوان یک نسخه متن‌باز و کراس‌پلتفرم از دات‌نت در دسترس برنامه نویسان قرار گرفت. این قابلیت مونو باعث شد که مورد استقبال پلتفرم هایی مثل Unity (توسعه بازی) و Xamarin (توسعه اپلیکیشن موبایل) قرار بگیره. در سال ۲۰۱۶ مایکروسافت زامارین رو خرید و اون رو به رایگان در دسترس کاربر های ویژوال استودیو قرار داد. درواقع نسخه مک ویژوال استدیو، نسخه بهبود داده شده Xamarin Studio هست که علاوه بر اپلیکیشن های موبایل، قابلیت ایجاد اپلیکیشن های بومی مک و وب اپلیکیشن ها رو هم داره.نهایتا در حد یک اشاره: Blazor هم یک بخش دیگر از دات‌نت هست که قابلیت ساخت وب اپلیکیشن ها رو با C# و HTML به دولوپر ها میده. یک نسخه WebAssembly هم از بلیزر وجود داره که به دولوپر ها اجازه می ده اپلیکیشن های تحت وب‌اسمبلی بسازن که به طور کامل روی مرورگر کاربر پردازش میشه و میتونه از وب اپلیکیشن های ساده بسیار سریع تر باشه. (البته که وب‌دولوپر ها ممکنه از این پاراگراف ایراد های زیادی بگیرند اما در حد یک اشاره خیلی خیلی کلی بش نگاه کنید لطفا!)پشتیبانی دات‌نتدات‌نت به سرعت در حال پیش رفت هست و تقریبا در حدود هر ۱۰-۱۲ ماه یک نسخه ماژور جدید از دات نت ارائه میشه. بنابر این برای دولوپر ها مهم هست که بدونن نسخه ای که استفاده می کنند تا چه مدت از سوی مایکروسافت پشتیبانی میشه. به طور کلی نسخه های زوج دات‌نت LTS یا Long Term Support هستند و حدودا ۳ سال پشتیبانی دریافت می کنند. نسخه های فرد پشتیبانی ۱.۵ الی ۲ ساله دارند. آخرین نسخه، دات‌نت ۶ هست که حدودا ۱ ماه پیش عرضه شد و تا اواخر سال ۲۰۲۴ تحت پشتیبانی خواهد بود. بنابر این توصیه میشه اگر قصد دارید پروژه جدیدی رو با دات نت شروع کنید، از نسخه ۶ استفاده کنید چرا که دات نت ۵.۰ فقط تا اواسط سال جاری میلادی (۲۰۲۲) پشتیبانی خواهد شد. برای اطلاعات بیشتر این لینک رو ببینید.جمع بندیبه این ترتیب تا اینجا یک آشنایی کلی با سی‌شارپ و دات‌نت پیدا کردیم. در بخش بعدی درباره شروع کار با دات‌نت با استفاده از ویژوال استودیو کد صحبت خواهیم کرد. شاد باشید :)</description><category>کیوان مساجدی</category><author>کیوان مساجدی</author><pubDate>Fri, 07 Jan 2022 21:31:51 +0330</pubDate></item><item><title>سی شارپ و دات نت مدرن: فهرست مطالب</title><link>https://virgool.ir/@m_22998246/سی-شارپ-و-دات-نت-مدرن-فهرست-مطالب-d5wklanadb6n</link><description>فهرست مطالب نوشته شده در سری «سی شارپ و دات نت مدرن» - با انتشار مطالب جدید لیست زیر به مرور تکمیل خواهد شد.پیش گفتاربخش اول: آشنایی با سی شارپبخش دوم: آشنایی با دات نتبخش سوم: شروع کار با سی‌شارپ</description><category>کیوان مساجدی</category><author>کیوان مساجدی</author><pubDate>Wed, 15 Dec 2021 00:03:50 +0330</pubDate></item><item><title>سی شارپ و دات نت مدرن:‌ بخش اول -‌ آشنایی با سی شارپ</title><link>https://virgool.ir/@m_22998246/سی-شارپ-و-دات-نت-مدرن-بخش-اول-آشنایی-با-سی-شارپ-uvv5ykt8fhlx</link><description>فهرست مطالبچرا سی شارپ؟ به عبارت دیگه، چرا باید بین انبوه زبان های برنامه نویسی موجود سی شارپ رو انتخاب کنیم؟ صادقانه بگویم که نباید! در واقع هر برنامه نویسی با چند سال تجربه این نکته رو به خوبی می دونه که طرفداری محض از یک زبان برنامه نویسی خاص، چیزی جز عقب ماندن از روند تکنولوژی به همراه نداره. در دنیای واقعی شما به سرعت یاد می گیرید که باید با زبان ها و فریم ورک های مختلف و متفاوتی کار کنید. سی شارپ یکی دیگر از این زبان هاست و دات نت هم یک فریم ورک دیگر. بنابر این سوال درست اینه که: آیا سی شارپ ارزش یاد گرفتن رو داره یا خیر؟ برای پاسخ به این سوال باید با سی شارپ و اکوسیستم دات نت بیشتر آشنا بشیم:آناتومی سی شارپاز اونجایی که هدف یک آشنایی کلی هست؛ در این قسمت به سه نکته اصلی بسنده می کنم:نکته اول: این که سی شارپ یک زبان statically typed هست. statically typed یعنی این زبان طوری طراحی شده که شما به عنوان یک برنامه نویس باید نوع متغیر ها رو پیش از استفاده تعیین کنید. برای مثال اگر تعیین کنید که x یک متغیر از نوع عدد صحیح هست؛ بعدا نمی تونید یک عدد اعشاری رو به x نسبت بدید. شاید این یک محدودیت به نظر میاد اما در پروژه های بزرگ در واقع یک مزیت هست. در نظر بگیرید که روی پروژه ای کار می کنید که هزاران خط کد داره که توسط چندین تیم مختلف نوشته شدند. در چنین مواقعی این که بدونید متغیری که قراره باش کار کنید از چه نوعی هست؛ کار شما رو برای نوشتن کد درست راحت تر می کنه. برای مثال تصور کنید که روی فرم ثبت نام یک وب اپلیکیشن کار می کنید که متغیری به نام userAge در اون تعریف شده که برابر با سن کاربر هست. وقتی میدونید این متغیر از نوع int یا عدد صحیح هست؛ می تونید با خیال راحت در مراحل بعدی (در صورت نیاز) اعمال ریاضی رو با خیال راحت روی اون انجام بدید. اما وقتی این متغیر اصطلاحا dynamic باشه و نشه نوعش رو پیشبینی کرد؛ ممکنه سن کاربر به عنوان یک string (متن) ذخیره شده باشه. در نتیجه در ظاهر امر می بینید که مثلا سن کاربر ۱۸ وارد شده. اما این عدد ۱۸ نیست و فقط یک متنه. پس امکان انجام اعمال ریاضی روش وجود نخواهد داشت و اگه اقدام به چنین کاری کنید؛‌ اپلیکیشن شما در زمان اجرا با خطا مواجه میشه. رفع کردن این نوع خطا ها (خطا های زمان اجرا یا runtime) هم گاها بسیار پیچیده و گیج کننده خواهد بود. بنابر این استاتیک تایپ بودن سی شارپ عملا یک مزیت محسوب میشه. کما این که در دنیای وب اپلیکیشن ها می بینیم که برنامه نویس ها تمایل دارند به جای Javascript از Typescript استفاده کنند که در واقع نسخه استاتیک تایپ جاوا اسکریپت هست و شانس بروز خطای runtime رو کاهش می ده.همه این ها که گفته شد؛ باید اضافه کنم که سی شارپ قابلیت استفاده از تایپ های dynamic رو هم داره. اما به عنوان یک قاعده کلی، بهتره که از اون ها در پروژه های بزرگ و جدی و تیمی استفاده نکنیم.نکته دوم:  سی شارپ یک زبان multiparadigm هست. پارادایم های مختلفی در برنامه نویسی تعریف شده که آشنایی با تک تک اون ها در حوصله این سری از مطالب نیست. اما به طور خیلی کلی ۳ پارادایم اصلی رو میتونیم procedural, object oriented و functional تعریف کنیم. بعضی زبان های قدیمی مثل C، از مفاهیم برنامه نویسی شیء گرا و فانکشنال پشتیبانی نمی کنند اما قابلیت استفاده از مفهوم تابع در اون ها وجود داره. تابع ها شامل ورودی، کدی که ورودی رو پردازش می کنه و خروجی هستند. چنین زبان هایی صرفا procedural نامیده میشن. زبان هایی مثل C++ قابلیت تعریف کلاس و آبجکت رو هم دارند. پس شیء گرا هستند. فانکشنال پروگرمینگ هم یک پارادایم جدید تر هست که تفاوت های زیادی با دو پارادایم قبلی داره اما مزیتش نوشتن کد های خلاصه تر و سریع تر و شانس کمتر بروز باگ هست. زبان هایی مثل Haskell برای برنامه نویسی فانکشنال طراحی شدند. زبان های جدید تر مثل پایتون، GO، Kotlin و سی شارپ، توانایی پشتیبانی تمام پارادایم های بالا رو دارند و اصطلاحا مولتی پارادایم نامیده میشوند. بنابر این صرف نظر از استایلی که برای برنامه نویسی پروژه‌تون انتخاب خواهید کرد؛ سی شارپ دست شما رو در پیاده سازی باز خواهد گذاشت. نکته سوم: سی شارپ شباهت ساختاری زیادی به جاوا داره. توضیح این نکته  نیازمند کمی مقدمه چینی هست. خیلی ساده توضیح بدم: کدی که با زبان برنامه می نویسید؛‌ با کدی که به CPU برای اجرا تحویل داده می شه هیچ شباهتی نداره. CPU دستورات و داده ها رو به صورت صفر و یک دریافت می کنه از این رو کدی که قابل اجرا توسط پردازنده هست byte code نامیده میشه. بنابر این کدی که به یک زبان سطح بالا (مثل سی یا جاوا یا هر زبان دیگری) می نویسید؛ قبل از اجرا باید ابتدا به بایت کد ترجمه بشه. به این فرایند ترجمه کامپایل گفته میشه و برنامه ای که این ترجمه رو انجام میده Compiler نام داره. قبل از جاوا، زبان های برنامه نویسی به صورت static یا ahead-of-time کامپایل می شدن. به این معنا که کد به بایت کد کامپایل می شد و نتیجه می شد یک فایل قابل اجرا  (executable) و این فایل به کاربر نهایی برای اجرا تحویل داده می شد. اما جاوا به داستان کامپایلیشن نگاه دیگری داشت:در جاوا دو نوع کامپایلر مورد استفاده قرار میگیرند. یک کامپایلر استاتیک کد شما رو به یک زبان اسمبلی (یک زبان حد واسط بین زبان سطح بالا و بایت کد) اختصاصی جاوا کامپایل می کنه. فایل حاصل شده که Java bytecode نامیده میشه در اختیار کاربر قرار میگیره. اما این فایل به طور مستقیم توسط پردازنده قابل اجرا نیست و به عبارتی بایت کد واقعی نیست. برای اجرای فایل کاربر باید JVM یا ویرچوال ماشین جاوا  رو روی سیستمش نصب کنه. این جاست که مرحله دوم کامپایلیشن صورت میگیره و بایت کد واقعی تولید و برنامه اجرا میشه. از اون جایی که این مرحله دوم در لحظه اجرای برنامه انجام میشه و نه از قبل، به این نوع کامپایل JIT یا Just In Time Compilation گفته میشه.کد های سی شارپ هم برای اجرا یک فرایند خیلی مشابه رو طی می کنند و ابتدا به CIL یا Common Intermediate Language (مشابه Java bytecode) کامپایل می شن بعد توسط CLR یا Common Language Runtime (کامپایلر JIT‌ که مشابه JVM)  به بایت کد کامپایل شده و اجرا میشن. اما چرا دات نت فرایند کامپایل رو به این شیوه انجام میده؟ مزیت این فرایند سازگاری با سخت افزار ها و سیستم عامل های مختلف هست. به این معنا که CIL شما می تونه توسط CLR علاوه بر ویندوز روی مک، ویندوز، لینوکس، اندروید و iOS هم اجرا بشه و به این شیوه شما امکان نوشتن یک نرم افزار کراس پلتفرم رو خواهید داشت که با سیستم عامل ها و پردازنده های مختلف (ARM, x86, x64) سازگار خواهد بود. البته این فرایند معایبی هم داره. از جمله حجم بیشتر فایل ها، نیاز به نصب دات نت برای اجرای فایل ها و نهایتا این که کامپایلر های JIT بار اضافه یا Overhead به سیستم تحمیل می کنند و برنامه شما کند تر از برنامه ای که به شیوه کاملا استاتیک کامپایل شده اجرا خواهد شد. هرچند در بسیاری از سناریو ها و با توجه به قدرت روز افزون پردازنده ها این کندی برای کاربر چندان ملموس نیست. در چه مواردی سی شارپ انتخاب خوبی نیست؟سناریو هایی وجود دارن که نقاط قوت سی شارپ رو به نقطه ضعف تبدیل می کنند. برای مثال وقتی برنامه قراره بار محاسباتی بالایی به سیستم وارد کنه، کامپایل دو مرحله ای سی شارپ، به علت استفاده از JIT در مرحله دوم (CLR) محاسبات رو به طرز قابل توجهی سنگین و کند خواهد کرد. بنابر این در توسعه موتور های بازی سازی، موتور های هوش مصنوعی (مثل tensorflow) و نرم افزار های آنالیز عددی (مثل MATLAB) زبان هایی مثل سی شارپ، پایتون و جاوا انتخاب های خوبی نیستند و این نرم افزار ها معمولا با زبان های static و سریع تر مثل C و C++ توسعه داده میشن. البته دات نت امکان کامپایل کردن تک مرحله ای static را هم در اختیار کاربر قرار میده اما در اون صورت مزیت کراس-پلتفرم بودن رو از دست خواهید داد. ضمن این که باز هم زبان هایی مثل C++ در این حالت معمولا سرعت بیشتری دارند. علاوه بر استفاده از JIT، سی شارپ یک زبان managed هست. توضیح این که زبان های شیء گرا، برای مدیریت حافظه (رم) سیستم نیازمند فرایندی به نام Garbage Collection هستند که به زبان ساده، حافظه رو از اشغال اشیائی که دیگر مورد استفاده قرار نمی گیرند آزاد می کنه. در زبان های managed، این فرایند به صورت خودکار انجام می شه. مزیت چنین چیزی ساده تر شدن کار برنامه نویس در کد نویسی هست. اما عیب بزرگش این هست که مدیریت حافظه خودکار به ندرت به اندازه مدیریت دستی حافظه بهینه هست. از این رو در توسعه firmware ها و سیستم عامل ها که مدیریت بهینه حافظه در اون ها یک جزء کلیدی محسوب میشه؛ سی شارپ انتخاب خوبی نیست. خلاصه کلامدر این مطلب آموختیم که سی شارپ یک زبان statically typed، مولتی پارادایم و managed هست که شباهت ساختاری زیادی با جاوا داره و همچنین با برخی نقاط قوت و ضعف سی شارپ آشنا شدیم. در مطلب بعدی با دات‌نت بیشتر آشنا خواهیم شد. شاد باشید :)</description><category>کیوان مساجدی</category><author>کیوان مساجدی</author><pubDate>Tue, 14 Dec 2021 23:58:35 +0330</pubDate></item><item><title>سی شارپ و دات‌نت مدرن: پیش گفتار</title><link>https://virgool.ir/@m_22998246/سی-شارپ-و-دات-نت-مدرن-پیش-گفتار-n5igm1pgahdw</link><description>فهرست مطالبسی شارپ بدون شک زبانی هست که اسمش به گوش هر فردی که تنها مدتی هم با کامپیوتر کار کرده باشه؛ خورده. این زبان از ۲۰۰۲ در صنعت به صورت گسترده مورد استفاده بوده و تعداد بسیار زیادی کتابخانه برای اون هم از سوی خالقش، یعنی مایکروسافت و هم از سوی برنامه نویس ها و شرکت های مستقل برای اون منتشر شده. مایکروسافت این زبان رو کم و بیش همزمان با فریم ورک دات نت توسعه داد و از اونجایی که تا همین اواخر دات نت منحصرا در ویندوز اجرا می شد؛ برنامه نویس های سی شارپ هم عملا محدود به اکوسیستم خود مایکروسافت بودند و کمتر پروژه هایی رو دیدیم که از سی شارپ برای ساخت اپلیکیشن های کراس پلتفرم استفاده کنند. البته مثال های نقض بزرگی مثل یونیتی هم وجود دارند. هر چند موتور یونیتی با C++ نوشته شده و از سی شارپ برای توسعه بازی تحت یونیتی استفاده میشه. به هر ترتیب از سال ۲۰۱۴ یک تغییر جهت بزرگ اتفاق افتاد و مایکروسافت تصمیم گرفت سورس کد سی شارپ رو به طور عمومی منتشر کنه و همچنین شروع به توسعه دات نت Core کرد که هدفش پشتیبانی از سایر سیستم عامل ها به غیر از ویندوز، یعنی مک، iOS و اندروید بود. حالا، یعنی اواخر ۲۰۲۱ وضعیت به گونه ای هست که دات نت فریم ورک عملا از مدار خارج شده و دات نت Core (که حالا فقط به نام دات نت میشناسنش) به پلتفرم اصلی و رسمی مایکروسافت برای سی شارپ تبدیل شده. به عبارت دیگر، امروزه سی شارپ یک زبان کاملا کراس-پلتفرم هست که می تونید ازش برای ساخت اپلیکیشن های native تمام سیستم عامل ها و همچنین وب اپلیکیشن ها استفاده کنید. در دنیایی که تقریبا هر ساله شاهد معرفی پلتفرم ها و زبان های برنامه نویسی جدید و جذاب و قدرتمند از سوی گوگل، فیس بوک و سایر غول های فناوری و البته برنامه نویس های مستقل هستیم؛‌ یادگیری یک زبان تقریبا ۲۰ ساله شاید اونقدر جذاب به نظر نیاد. هر چند تغییر رویه مایکروسافت که در بالا بش اشاره کردم؛ به نوعی جذابیت رو به C# برگردونده و اون رو تبدیل به یک گزینه داغ برای یادگرفتن کرده. البته این داستان روی دیگری هم داره چرا که در طی این دو دهه ورژن های زیادی از دات نت فریم ورک، دات نت کور، دات نت و فریم ورک های جانبی مثل Mono و Xamarin منتشر شده و این کار رو برای فردی که به تازگی قصد یاد گرفتن سی شارپ رو داره یا حتی برنامه نویس هایی (از جمله خود من) که مدتی از اکوسیستم مایکروسافت دور شده بودند؛ کمی پیچیده میکنه. در این سری مطالب قصد دارم که به صورت گام به گام و بخش به بخش شما رو با سی شارپ و روند مدرن کار با دات نت آشنا کنم. انگیزه‌م از ارائه این سری کاملا خود خواهانه‌ست :) اینطور تصور کنید که یک گیک کامپیوتر (که عاشق نوشتن هم هست) برای مدت نسبتا زیادی از تکنولوژی و بلاگینگ به دور بوده و حالا می خواد یه refresh و گرد گیری ای از اطلاعات خودش بکنه. با خودم فکر کردم که احتمالا ایده خوبیه که یادگیری هام تو این مسیر رو با سایر علاقه‌مندان احتمالی هم شر کنم. البته در این سری سعی بر این هست که تا جای ممکن مباحث مرحله به مرحله و از سطح مبتدی توضیح داده بشه که برای دوستانی که به تازگی میخوان برنامه نویسی رو شروع کنند هم مناسب باشه.با این حال این توضیح رو بدم که هدف آشنایی (تا حد امکان جامع)  با سی شارپ و اکوسیستم مدرن دات نت هست و هدف آموزش مباحث کلی برنامه نویسی نیست. ضمنا قراره همینطوری غیر رسمی صحبت کنم و فارسی و انگلیسی رو قر و قاطی استفاده کنم. دلیلش هم اینه که فکر می کنم اینطور همه چیز طبیعی تر جلو بره! ضمنا با تمام مطالب به یک دید Beta برخورد کنید. منظور این که بعدا ممکنه بنا به صلاحدید متن ها رو ویرایش کنم و مطالبی رو بشون اضافه یا ازشون کم کنم.این یک پیش گفتار مختصر و (شاید) مفید بود برای شروع این سری. امیدوارم که دنبال کنید و براتون مفید باشه. در قسمت بعدی این سری درباره اکوسیستم دات نت بیشتر صحبت خواهیم کرد و مزایایی که یادگیری سی شارپ در دنیای امروز فناوری میتونه داشته باشه رو با هم مرور می کنیم. شاد باشید‌ :) </description><category>کیوان مساجدی</category><author>کیوان مساجدی</author><pubDate>Fri, 10 Dec 2021 20:57:02 +0330</pubDate></item></channel></rss>