NET. یک چارچوب توسعه رایگان و متنباز برای توسعه بسیاری از برنامههای کاربردی است. برای آشنایی بیشتر با این چارچوب کاربردی با ما همراه باشید. در این مقاله با NET. و معماری آن آشنا میشوید، به تفاوتهای .NET CORE و .NET framework پی خواهید برد و میآموزید که چه هنگام باید از آن استفاده کرد.
تولد NET.
NET. برای اولین بار در سال ۲۰۰۲ با خبر انتشار یک زبان جدید بهنام #C توسط مایکروسافت منتشر شد. هدف اولیه توسعه برنامههای نرمافزاری بر پلتفرم ویندوز بود، اما با گذشت زمان مایکروسافت شروع به سیاستگذاری روی چارچوبهای فراتر از ویندوز نمود و امروزه دات نت برای برنامهنویسی سایر زمینهها مانند وب، تلفن همراه و غیره نیز به کار میرود.
انواع دات نت: تفاوت NET. و NET Core.
دات نت در سه دسته جامع ارائه میشود:
- Net Framework.
- Net Core.
- Xamarin
NET Framework.
همان نسخه اولیه منتشر شده با نام دات نت است که تنها دستگاههای مبتنی بر ویندوز را پشتیبانی میکند. Windows Forms و WPF برای ساخت برنامه در محیط دسکتاپ مورد استفاده قرار میگیرند، اما ASP.Net که امروزه در صنعت بسیار رایج است برای طراحی وبسایتهای پویا و برنامههای وب به کار میرود. در واقع وجود (CLR) به توسعهدهندگان این فرصت را میدهد تا کدهای ASP.Net را با استفاده از زبانهای مختلف .Net بنویسند که در ادامه مطلب درباره آنها صحبت میکنیم.
Net Core.
یک ساختار مجدد از چارچوب قبلی است با این تفاوت که توسعهدهندگان میتوانند از آن در لینوکس و OS X استفاده کنند و برنامههایی را ایجاد کنند که لزوما به خانواده ویندوز مرتبط نباشند. این سیستم جدید به دنبال تسخیر فضای ابری است. در ضمن NET Core. نه تنها چندسکویی است، بلکه نسخههای مختلف آن را میتوان به صورت جانبی در یک دستگاه نصب کرد. NET Core شامل ASP.NET Core و Universal Platform Windows (UWP) است.
Xamarin
امروزه اگر بخواهید برنامهای را با استفاده از چارچوب NET. برای تلفن همراه (اندروید، ویندوزفون و ios) توسعه دهید انتخاب بسیاری از توسعهدهندگان زامارین است خواهد بود.
Net Standard.
سال ۲۰۱۶ سالی پربار برای توسعهدهندگان دات نت بود؛ چرا که در این سال علاوه بر معرفی زامارین و .NET CORE ، یک کتابخانه جامع برای ترکیب سه فریمورک بالا ارائه شد تا افراد به جای تسلط بر سه کتابخانه مختلف، از یک کتابخانه کلاس پایه استفاده کنند. این مرحله یکپارچه سازی که Net Standard. نام دارد، اکوسیستم و سازگاری بالاتری را در استفاده مجدد از اجزای موجود در سیستم عاملهای مختلف به وجود آورد.
معماری NET.
معماری چارچوب دات نت مبتنی بر سه مؤلفه اصلی زیر است:
- زیرساخت زبان مشترک (Common Language Runtime)
- کتابخانههای کلاسی (Class Library)
- زبانهای برنامهنویسی (Language Programming)
CLR چیست؟
“زیرساخت زبان مشترک” یا CLR در واقع همان قلب دات نت است: یک ماشین مجازی نرمافزاری که حافظه را مدیریت میکند، امنیت دسترسی به کد را پیاده سازی میکند، امنیت کد را تأیید کرده و اجرای برنامهها و کد را فراهم میسازد. CLR چیزی است که دات نت را تبدیل به یک چارچوب مدیریتی و چندکاره میکند و سکویی است که برنامههای NET در آن اجرا میشود . دارای ویژگیهای کلیدی زیر است:
- Exception Handling: یا مدیریت خطاهایی که هنگام اجرای برنامه رخ میدهند مانند: سعی در بازکردن یک پرونده روی دستگاه محلی درحالی که پرونده موجود نیست.
- کار با زبانهای مختلف برنامه نویسی: همانطور که در بخش قبلی ذکر شد، یک توسعه دهنده میتواند یک برنامه کاربردی را در انواع مختلف زبانهای برنامه نویسی NET ایجاد کند.
بخشهای مختلف CLR عبارتند از:
- زبان : سطح اول خود زبان برنامه نویسی است که متداولترین آنها VB.Net و C # است.
- کامپایلر : یک کامپایلر جدا برای هر زبان برنامه نویسی وجود دارد. بنابراین زیر زبان VB.Net ، یک کامپایلر جداگانه VB.Net وجود خواهد داشت. به همین ترتیب ، برای C # ، کامپایلر دیگری نیز خواهید داشت.
- Common Language Interpreter : این آخرین لایه در دات نت است که برای اجرای یک برنامه ساخته شده به هر زبان برنامه نویسی استفاده میشود. بنابراین کامپایلر بعدی برنامه را برای اجرای برنامه دات نت به لایه CLI ارسال میکند.
کتابخانههای کلاس (Class Library)
چارچوب NET. شامل مجموعه ای از کتابخانههای کلاس استاندارد است. کتابخانهها مجموعهای از روشها و کارکردهایی هستند که برای اهداف اصلی مورد استفاده قرار میگیرند.
به عنوان مثال، یک کتابخانه با روشهایی برای انجام کلیه عملیات فایلها وجود دارد. بنابراین روشی وجود دارد که میتواند برای خواندن متن از یک فایل استفاده کند. به طور مشابه، روشی برای نوشتن متن به یک پرونده وجود دارد. اکثر این روشها در دات نت به نامهای System یا Microsoft تقسیم میشوند.
زبانهای برنامهنویسی
در چارچوب دات نت میتوان از چندین زبان، ویرایشگرها و کتابخانهها استفاده کرد؛ به همین دلیل برنامهنویسان برای توسعه برنامه خود حق انتخاب زیادی دارند. پرکاربردترین این زبانها عبارتند از:
- سیشارپ (#C): یک زبان برنامهنویسی ساده، مدرن، شی گرا
- ویژوال بیسیک (VB): یک زبان ساده و دوستانه ار نوع شیگرا با نوشتار آسان برای برنامههای کاربردی
محیطهای مناسب برای برنامه نویسی NET.
ویژوال استودیو (Visual Studio) جامعترین محیط برای توسعه برنامه با NET. است. گزینه بعدی که تا حدودی سبکتر است و بیشتر توسعهدهندگان وب به کار میبرند ویژوال استودیو کد میباشد. رایدر (Rider) که توسط کمپانی JETBRAIN طراحی شده از دیگر گزینههای انتخاب محیط دات نت است.
چرا از NET. استفاده میکنیم؟
مستقل بودن
مزیت اصلی این چارچوب استقلال آن از زبانهای برنامه نویسی است. برنامهنویسان میتوانند بهجای محدود شدن به استفاده از یک زبان مشخص برنامهنویسی، با استفاده از NET. میتوانند در هر زبانی که با دات نت همخوانی دارد کار کنند.
پشتیبانی در طول زمان
فرض کنید برنامه ای را در نسخه قدیمی دات نت ساخته اید ، مثلا ۲٫۰٫ و سعی دارید همان برنامه را روی دستگاهی اجرا کنید که نسخه بالاتر فریم ورک دات نت را داشته باشد ، مانند ۳٫۵٫ برنامه هنوز هم کار میکند. دلیل این امر این است که با هر نسخه ، مایکروسافت اطمینان حاصل میکند که نسخههای فریم ورک قدیمی با آخرین نسخه به خوبی سازگار میشوند.
قابل حمل
در طول این مقاله بارها اشاره کردیم که برنامههایی که با دات نت ساخته شدهاند میتوانند روی هر پلتفرمی اعم از ویندوز iOS و Linux کار کنند.
مدیریت حافظه
CLR همه کارهای مدیریت حافظه را انجام میدهد. چارچوب .Net توانایی بالایی برای یافتن منابعی را دارد که توسط یک برنامه در حال اجرا استفاده نمیشود و این منابع را از طریق سازوکار “جمع آوری زباله” (Garbage Collector) آزاد میکند.
استقرار آسان
دات نت ابزارهایی دارد که میتوان برای بستهبندی برنامههای ساخته شده از آن استفاده کرد. در نهایت این بستهها در دستگاههای مشتری توزیع میشوند و به طور خودکار برنامه را نصب میکنند.
امنیت بالا
همانطور که میدانید مایکروسافت ارزش بالایی برای امنیت قایل است. لذا این ساخته مایکروسافت در برابر تلاشهای مخرب تغییر کد کامپایل شده قابل اعتماد است.
چه کسانی نباید سراغ دات نت بروند؟
توضیح درست عملکرد این چارچوب برای افراد ناآشنا با دنیای برنامهنویسی، تا حدودی دشوار است. برای افرادی که به زبانهای منطقی مانند C عادت دارند تا حدودی ناراحتکننده است، چرا که یک چارچوب متشکل از زبانهای شی گراست. به همین دلیل شاید بهتر باشد بعد از تسلط بر مفاهیم و درک عمیق برنامهنویسی سراغ این فریمورک بروید.
جمعبندی
NET. یک مجموعه جامع و ارزشمند با آیندهای روشن است و طبق وعده مایکروسافت شاهد ورژن جامعی از دات نت در اواخر سال ۲۰۲۰ هستیم که قابلیت اجرا و پشتیبانی برای انواع سیستمعاملها، دستگاهها و کاربردها را خواهد داشت. اگر برنامهنویس دات نت و یا علاقمند به این حوزه هستید تجربیات خود را با سایر دوستان درمیان بگذارید.