آموزش سی شارپ | C#.NET

دسته بندی: دات نت (NET.)

سی شارپ

آنچه در این صفحه می خوانید:

معرفی سی شارپ

#C یک زبان برنامه نویسی چند پارادایم با هدف کلی است که شامل تایپ قوی، اعلامی، کاربردی، عمومی، شی گرا و از نظر لغوی محدود شده و همچنین از رشته های برنامه نویسی مبتنی بر کلاس و مؤلفه ها است. در سال 2000 توسط مایکروسافت به عنوان بخشی از ابتکار عمل دات نت توسعه داده شد و بعداً توسط ECMA و ISO به عنوان یک استاندارد بین المللی تصویب شد. Mono نام پروژه رایگان و اوپن سورس برای تهیه کامپایلر و ران تایم زبان است. سی شارپ یکی از زبان های برنامه نویسی است که برای زیرساخت زبان مشترک (CLI) طراحی شده است. سی شارپ توسط اندرس Hejlsberg طراحی شده است و تیم توسعه آن در حال حاضر توسط Mads Torgersen هدایت می شود. از آگوست 2019، نسخه 8.0 زبان در حال نمایش است و در ویژوال استودیو 2019 پشتیبانی می شود. سی شارپ یک زبان همه کاره است که توسط آن می توانید برنامه نویسی برنامه های ویندوز، برنامه های گوشی های هوشمند، برنامه نویسی سمت سرور، بازی سازی و غیره را انجام دهید.

تاریخچه سی شارپ

در طی توسعه فریمورک دات نت، کتابخانه های کلاس ابتدا با استفاده از یک سیستم کامپایلر کد مدیریت شده به نام Simple Managed C نوشته شده اند. در ژانویه سال 1999، آندرس تیمی را برای ساختن زبان جدید به نام Cool، تشکیل داد که در برابر "زبان شی گرا مانند C" قرار داشت. مایکروسافت تصمیم نگه داشتن نام "Cool" را به عنوان نام نهایی زبان در نظر گرفته بود اما به دلایل مارک تجاری این کار را نکرد. در زمان اعلام پروژه NET در کنفرانس توسعه دهندگان حرفه ای ژوئیه 2000، این زبان به #C تغییر نام داده شد و کتابخانه های کلاس و ران تایم ASP.NET به #C منتقل شد.

ویژگی های سی شارپ

#C زبان برنامه نویسی است که به طور مستقیم منعکس کننده زیرساخت زبان مشترک (CLI) است. بسیاری از انواع ذاتی آن مطابق با انواع ارزشی است که توسط فریمورک CLI اجرا می شود. با این حال، مشخصات زبان الزامات تولید کد کامپایلر را بیان نمی کند، یعنی اینگونه بیان نمی کند که کامپایلر سی شارپ باید یک Runtime Common Language را هدف قرار دهد، یا یک زبان CIL ایجاد کند، یا قالب خاصی را تولید کند. از لحاظ تئوری، یک کامپایلر #C می تواند کد دستگاه را مانند کامپایلرهای سنتی ++C یا Fortran تولید کند.

سی شارپ دارای یک نوع داده بولین(boolean) است. برخی از عبارت‌ها مانند while و if که شرطی هستند، نیازمند یک عبارت نوع بولین هستند. همان‌طور که سی پلاس پلاس نیز دارای نوع داده بولین است، این نوع داده به راحتی می‌تواند به Integerها تبدیل شود. کامپایلر سی شارپ برنامه‌نویس را در این شرایط مجبور به استفاده از عباراتی می‌کند که به درستی یک مقدار bool را برمی‌گردانند؛ بنابراین دستوری مانند (if(a = b باعث بروز خطا می‌شوند که در این صورت به جای = بایستی از == استفاده شود.

در سی شارپ، اشاره گرهای به حافظه بایستی فقط در داخل بلوک‌های unsafe استفاده شوند و برنامه در این حالت برای اجرا نیاز به اجازه از کاربر دارد. بیشتر دسترسی شی از طریق شی امن است که یا همیشه در حال اشاره به شی صحیح موجود است یا یک مقدار Null دارد. اشاره‌گری به شی بدون استفاده یا بلاک حافظه رندم غیرممکن است. اشاره گر نا امن می‌تواند به نمونه‌ای از value-type، آرایه، رشته یا بلاکی که حافظه به آن داده شده‌است اشاره نماید. کدی که به عنوان نا امن علامت نخورده باشد، هنوز می‌تواند اشاره گرها را از سامانه بازیابی یا در آن ذخیره کند ولی نمی‌تواند مرجع جدیدی به آن‌ها اختصاص دهد. حافظه ساماندهی شده نمی‌تواند صریحاً آزاد شود، ولی به‌طور خودکار بدون استفاده تلقی می‌شود. انتخاب آدرس‌های بدون استفاده حافظه نفوذ ناپذیر است. هم چنین سی شارپ با استفاده از عبارات، پشتیبانی مستقیمی از پایان اجباری می‌کند.

وراثت چندگانه از کلاس‌ها در این زبان پشتیبانی نمی‌شود. البته یک کلاس امکان ارث بری از تعداد نامحدود واسط‌ها را دارد. پشتیبانی نکردن از وراثت چندگانه به دلیل اهداف معماری این زبان در CLI و برای جلوگیری از پیچیدگی است. در عوض می‌توان از اینترفیس‌های مختلف استفاده کرد. یعنی برای یک کلاس که احتمالاً فرزند کلاسی دیگر است می‌توان چندین اینترفیس را پیاده‌سازی نمود.

سی شارپ بسیار بی خطر تر از سی پلاس پلاس است. تنها تبدیلات ضمنی مثل تبدیل نوع داده کوچکتر به بزرگتر یا تبدیل نوع مشتق شده به نوع پایه به‌طور پیش‌فرض و بدون خطا صورت می‌پذیرد. هیچ تبدیل ضمنی ای میان Boolean ها و Integerها وجود ندارد و هر تبدیل user-defined بایستی به صراحت با یکی از کلمات explicit یا implicit نشانه گذاری شود.

کاربرد سی شارپ

سی شارپ برای ساخت بازی با استفاده از موتور بازی Unity که امروزه محبوب ترین موتور بازی است، بسیار مورد استفاده قرار می گیرد. بیش از یک سوم بازی های برتر با یونیتی ساخته شده اند و تقریباً 770 میلیون کاربر فعال بازی برای بازی هایی که با موتور یونیتی ساخته شده وجود دارد. یونیتی همچنین برای VR استفاده می شود، که 90٪ از کل Samsung Gear و 53٪ از کل بازی های Oculus Rift VR با استفاده از Unity ساخته شده اند. سی شارپ ابزاری بسیار محبوب برای ایجاد این برنامه ها است، بنابراین برای هر برنامه نویس که امیدوار است به صنعت توسعه بازی یا برای هر کسی که علاقه مند به واقعیت مجازی باشد، می تواند یک انتخاب عالی باشد.سی شارپ برای ساختن برنامه های NET استفاده می شود. تمام برنامه های کاربردی که می توانید در دات نت توسعه دهید و همچنین می توانید از سی شارپ در آن برنامه ها استفاده کنید. انواع مختلفی از برنامه های کاربردی ایجاد شده در NET وجود دارد. بسیاری از برنامه های رایج توسعه یافته در #C عبارتند از:

  • سرویس های Windows برای فرآیند طولانی مدت بدون UI
  • برنامه های وب برای سرور و کلاینت
  • برنامه های کاربردی ویندوز که روی دسکتاپ اجرا می شود.
  • برنامه های وب سرویس هایی که عملکرد HTTP را ارائه می دهند.
  • بازی سازی با استفاده از Unity
  • برنامه های کنسول که UI ندارند.
  • برنامه های WokFlow برنامه هایی که فرایندها را خودکار می کنند.
  • برنامه های كتابخانه ای Class كه برنامه های کاربردی دیگر را فراهم می كند.

نرم افزار برنامه نویسی سی شارپ

#C یک زبان برنامه نویسی است که به طور گسترده ای در شرکت ها بکار می رود، به ویژه مواردی که به شدت وابسته به مایکروسافت هستند. اگر برنامه هایی را با استفاده از #C ایجاد می کنید، به احتمال زیاد از ویژوال استودیو استفاده می کنید.در زیر لیست برخی از نرم افزار های برنامه نویسی سی شارپ را تهیه کرده ایم:

ویژوال استودیو: یک محیط توسعه یکپارچه (IDE) تولید شده در شرکت مایکروسافت است. برای توسعه برنامه های رایانه ای برای Microsoft Windows استفاده می شود. ویژوال استودیو یک فروشگاه برای همه برنامه های کاربردی ساخته شده بر روی پلتفرم دات نت است. با استفاده از ویژوال استودیو می توانید برنامه های کاربردی را توسعه، اشکال زدایی و اجرا کنید. هر دو برنامه مبتنی بر فرم و وب را می توان با استفاده از این IDE طراحی و توسعه داد. ویژوال استودیو ویژگی های زیر را دارد:

  • ایجاد یک برنامه به هر زبان: از ویژوال استودیو برای ایجاد برنامه به هر زبان دات نت می توان استفاده کرد. از این رو، یک توسعه دهنده می تواند از C# ،VB.Net یا حتی اف شارپ برای توسعه یک برنامه استفاده کند.
  • ایجاد هر نوع برنامه: از ویژوال استودیو IDE می توان برای ایجاد برنامه ای از هر نوع استفاده کرد. (برنامه مبتنی بر وب یا برنامه مبتنی بر Windows Forms).
  • برنامه های اشکال زدایی: برنامه ها می توانند همانطور که ساخته می شوند آزمایش شوند. IDE به شخص اجازه می دهد تا در هر نقطه از زمان در طی فرایند توسعه برنامه را اجرا کند. از این رو، یک توسعه دهنده می تواند هرگونه خطا را در طول مرحله توسعه بررسی کند.
  • برنامه های افزودنی: IDE امکان نصب برنامه های افزودنی شخص ثالث را دارد. یک مثال می تواند Subversion باشد که برای مدیریت مخزن کد منبع استفاده می شود. براندازی برای بارگذاری کد در یک مخزن مرکزی استفاده می شود. این کار به گونه ای انجام می شود که همیشه یک نسخه از کد وجود داشته باشد. ویژوال استودیو امکان ادغام با چنین نرم افزاری را از IDE دارد. از این رو، یک توسعه دهنده می تواند با مخازن کد از IDE کار کند.

Visual Studio Code: ویژوال استودیو کد محبوب ترین ویرایشگر کد برای توسعه #C است. برای ویرایش قدرتمند می توانید از ویژوال استودیو کد با پسوند #C استفاده کنید، به علاوه پشتیبانی کامل از C # IntelliSense و اشکال زدایی را شامل می شود.

MonoDevelop: توسعه یافته توسط زامارین، بسیاری از ویژگی های مشابه VS Code را دارد و همچنین به صورت متقاطع است. با استفاده از MonoDevel می توانید به سرعت برنامه های دسکتاپ و وب را در ویندوز، لینوکس و Mac OS X بنویسید.

Rider: از میان مجموعه محصولات جامع Jet Brains ، Rider یک کراس پلت فرم NET IDE. است که مبتنی بر پلت فرم IntelliJ و ReSharper است.

توسعه اپلیکیشن دسکتاپ با سی شارپ

UWP پلتفرم دات نت را گسترش می دهد تا امکان توسعه برای دستگاه های ویندوز 10 مانند رایانه های شخصی، تبلت ها، تلفن همراه، Xbox ،HoloLens ،Surface Hub و Windows 10 IoT Core را فراهم کند. UWP یک فریمورک UI برای نوشتن برنامه های رسپانسیو را فراهم می کند که تعدادی از اندازه های صفحه و مدل های تعامل مانند لمس، موس و صفحه کلید، کنترلر بازی و قلم را پشتیبانی می کند. Windows Forms یک کتابخانه کلاس رابط کاربری گرافیکی (GUI) است که در Net Framework. همراه است. هدف اصلی آن ارائه رابط کاربری آسان تری برای توسعه برنامه های دسکتاپ، تبلت ها، رایانه های شخصی است. همچنین به عنوان WinForms نامیده می شود. برنامه هایی که با استفاده از Windows Forms یا WinForms تولید می شوند به عنوان برنامه های Windows Forms که روی رایانه دسکتاپ اجرا می شوند شناخته شده اند. WinForms فقط برای توسعه برنامه های Windows Forms است و برای برنامه های وب قابل استفاده نیست. برنامه های WinForms می توانند حاوی یک نوع کنترل مختلف مانند لیبل ها، لیست باکس، راهنمای ابزار و غیره باشند.

توسعه وب با سی شارپ

ASP.NET به شما امکان می دهد برنامه های وب با عملکرد بالا و کراس پلتفرم را ایجاد کنید. الگویی مانند MVC و پشتیبانی داخلی از Dependency Injection به شما امکان می دهد برنامه هایی بسازید که آزمایش و نگهداری آنها ساده تر است. NET Core. و ASP.NET Core چندین مزیت نسبت به توسعه سنتی دات نت ارائه می دهد. اگر موارد زیر برای موفقیت برنامه شما مهم هستند باید از NET Core. برای برنامه های سرور خود استفاده کنید:

  • پشتیبانی از قابلیت کراس پلتفرم
  • استفاده از میکرو سرویس ها
  • استفاده از کانتینر داکر
  • عملکرد بالا و مقیاس پذیری
  • نسخه به صورت Side-by-side از نسخه های دات نت توسط برنامه بر روی همان سرور.

برنامه های دات نت سنتی می توانند بسیاری از این الزامات را پشتیبانی کنند، اما ASP.NET Core و NET Core. برای ارائه پشتیبانی بهتر از سناریوهای فوق بهینه شده اند.

هوش مصنوعی با سی شارپ

ML.NET یک فریمورک یادگیری ماشین اوپن سورس و رایگان است که بطور ویژه برای توسعه دهندگان دات نت ساخته شده است. در حالی که می توانید به خودتان اصول یادگیری ماشین را آموزش دهید، مدل های یادگیری ماشین سفارشی را در برنامه های خود توسعه داده و ادغام کنید. ML.NET یک بستر گسترده است که قدرت ها ویژگی های مایکروسافت مانند Windows Hello ،Bing Ads، ایده های طراحی پاورپوینت و موارد دیگر را به رسمیت می شناسند. با استفاده از ML.NET، می توانید مدل های ML دلخواه را با استفاده از #C یا #F ایجاد کنید بدون اینکه مجبور به ترک اکوسیستم NET. شوید. همچنین به شما اجازه می دهد تا از تمام دانش، مهارت ها، کد ها و کتابخانه هایی که قبلاً به عنوان یک توسعه دهنده دات نت فرا گرفته اید، استفاده کرده تا بتوانید به راحتی یادگیری ماشین را در برنامه های وب، تلفن همراه، دسکتاپ، بازی و اینترنت اشیا خود به کار بگیرید. ML.NET به شما امکان می دهد یادگیری ماشین را به برنامه های دات نت، در سناریوهای آنلاین یا آفلاین اضافه کنید. با استفاده از این قابلیت، می توانید پیش بینی خودکار را با استفاده از داده های موجود در برنامه خود بدون نیاز به اتصال به یک شبکه انجام دهید.

الگوهای طراحی (Design Patterns) در سی شارپ

الگوهای طراحی راه حل هایی برای مشکلات طراحی نرم افزار است که شما بارها و بارها در توسعه برنامه دنیای واقعی پیدا می کنید. الگوهای مربوط به طرح های قابل استفاده مجدد و تعامل اشیا هستند. کد منبع سی شارپ برای هر الگوی به دو شکل ارائه می شود: ساختاری و دنیای واقعی. کد ساختاری از نام های نوع استفاده شده در تعریف الگوی و نمودارهای UML تعریف می کند. کد دنیای واقعی شرایط برنامه نویسی در دنیای واقعی را فراهم می کند که در آن شما می توانید از این الگوهای استفاده کنید.

فرم سوم، NET. بهینه سازی شده، الگوهای طراحی را نشان می دهد که کاملاً از ویژگی های داخلی NET 4.5 داخلی استفاده می کند، مانند، عمومی، ویژگی ها، نمایندگان، بازتاب و موارد دیگر. این موارد و موارد دیگر در فریمورک الگوی طراحی NET 4.5. موجود است.

مثال های سی شارپ

در زیر یک برنامه #C ساده، نسخه ای از نمونه کلاسیک "Hello World!":

using System;

class Program { public static void Main(string[] args) { Console.WriteLine("Hello, world!"); } }

یک مثال GUI:

using System;
using System.Windows.Forms;

class Program { static void Main() { MessageBox.Show("Hello, World!"); Console.WriteLine("Is almost the same argument!"); } }

آیا این نوشته را دوست داشتید؟