برنامه نویسی NET. چیست و چه کاربردی دارد ؟
تصور کنید که می خواهید یک کار را انجام دهید و نیاز به مراحل از پیش تعیین شده ای دارید که باید یکی یکی انجام شوند. مطمئنا برای هرکدام هزینه و زمان زیادی باید صرف کنید تا به نتیجه دلخواه برسید. برنامه نویسی Net. یکی از ابزارهای از قبل آماده شده برای کار با زبان برنامه نویسی است که شما دیگر نیازی به پیمودن و هزینه کردن مراحل قبلی ندارید.
شما مستقیما با برنامه نویسی Net. به سراغ هدف و مسیر اصلی خود هدایت خواهید شد.با استفاده از برنامه نویسی Net. شما نیازی به پیمودن خیلی از مراحل که میتواند کار شما را دشوار کند ندارید.
ما در این مقاله از نوینستان قصد داریم شما را با ابزار قدرتمند NET. آشنا کنیم.
تولد دات نت
NET. برای اولین بار در سال 2002 با خبر انتشار یک زبان جدید بهنام #C توسط مایکروسافت منتشر شد. هدف اولیه توسعه برنامههای نرمافزاری بر پلتفرم ویندوز بود، اما با گذشت زمان مایکروسافت شروع به سیاستگذاری روی چارچوبهای فراتر از ویندوز نمود و امروزه NET. برای برنامهنویسی سایر زمینهها مانند وب، تلفن همراه و غیره نیز به کار میرود.
انواع دات نت
تا همین چند وقت پیش اگر تصمیم میگرفتید که C# .Net را یاد بگیرید، یک راه بیشتر نداشتید؛ اینکه یک نرمافزار به نام Visual Studio را نصب کنید و کد نویسی را شروع کنید. اما دیگر فقط با یک نوع Net. سر و کار نداریم.
چون مایکروسافت پا به دنیایی فراتر از ویندوز گذاشته است. Net. تقریبا روی تمام دستگاههایی که شما میشناسید پشتیبانی میشود. حالا دیگر حتی کدنویسی با NotePad هم آسان شده است. در ادامه با انواع Net. آشنا میشویم.
دات نت در سه دسته جامع ارائه میشود:
.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.
معماری چارچوب NET. مبتنی بر سه مؤلفه اصلی زیر است:
1- زیرساخت زبان مشترک (Common Language Runtime)
2- کتابخانههای کلاسی (Class Library)
3- زبانهای برنامهنویسی (Language Programming)
CLR چیست؟
“زیرساخت زبان مشترک” یا CLR در واقع همان قلب NET. است: یک ماشین مجازی نرمافزاری که حافظه را مدیریت میکند، امنیت دسترسی به کد را پیاده سازی میکند، امنیت کد را تأیید کرده و اجرای برنامهها و کد را فراهم میسازد. CLR چیزی است که NET. را تبدیل به یک چارچوب مدیریتی و چندکاره میکند و سکویی است که برنامههای NET. در آن اجرا میشود. CLR دارای ویژگیهای کلیدی زیر است:
- Exception Handling: یا مدیریت خطاهایی که هنگام اجرای برنامه رخ میدهند مانند: سعی در بازکردن یک پرونده روی دستگاه محلی درحالی که پرونده موجود نیست.
- کار با زبانهای مختلف برنامه نویسی: همانطور که در بخش قبلی ذکر شد، یک توسعه دهنده میتواند یک برنامه کاربردی را در انواع مختلف زبانهای برنامه نویسی NET. ایجاد کند.
بخشهای مختلف CLR عبارتند از:
- زبان : سطح اول CLR خود زبان برنامه نویسی است که متداولترین آنها NET. و #C است.
- کامپایلر : یک کامپایلر جدا برای هر زبان برنامه نویسی وجود دارد. بنابراین زیر زبانNET. ، یک کامپایلر جداگانه VB.NET وجود خواهد داشت. به همین ترتیب ، برای #C ، کامپایلر دیگری نیز خواهید داشت.
- Common Language Interpreter : این آخرین لایه در NET. است که برای اجرای یک برنامه ساخته شده و به هر زبان برنامه نویسی استفاده میشود. بنابراین کامپایلر بعدی برنامه را برای اجرای برنامه NET. به لایه CLI ارسال میکند.
کتابخانه های کلاس (class Library)
چارچوب NET. شامل مجموعه ای از کتابخانههای کلاس استاندارد است. کتابخانهها مجموعهای از روشها و کارکردهایی هستند که برای اهداف اصلی مورد استفاده قرار میگیرند.
به عنوان مثال، یک کتابخانه با روشهایی برای انجام کلیه عملیات فایلها وجود دارد. بنابراین روشی وجود دارد که میتواند برای خواندن متن از یک فایل استفاده کند. به طور مشابه، روشی برای نوشتن متن به یک پرونده وجود دارد. اکثر این روشها در NET. به نامهای System یا Microsoft تقسیم میشوند.
مایکروسافت NET. و دنیای متن بازها
تا همین چند وقت پیش، منتقدین تکنولوژیهای مایکروسافت، محدودیت این تکنولوژیها به استفاده انحصاری در ویندوز را، مورد نقد قرار میدادند. در واقع این بهانه، برگ برنده آنها در منازعات نرمافزاری بود. حالا دیگر آن زمانها گذشته است.
مایکروسافت در زمان مدیریت ساتیا نادلا، به یکباره تغییر ۱۸۰ درجهای کرد. نادلا خیلی زود فهمید که دوران طلایی مجذوب بودن بازار سخت افزارها تمام شده است. هر چند مایکروسافت هنوز به کلی از دنیای سخت افزار دست برنداشته است، اما تمرکز اصلی این شرکت، تصاحب بی چون و چرای دنیای نرمافزار است. جایی که به آن تعلق دارد.
مایکروسافت علاوه بر اینکه یکی پس از دیگری نرمافزارهای محبوب خود را به سایر پلتفرمها میآورد، موتور ساخت نرمافزار خود یعنی NET. را متن باز کرده است. با این کار، امکان اجرای آن روی سایر پلتفرمها فراهم شده است.
شاید امروز که این مقاله نوشته میشود، این تغییر را احساس نکنید؛ اما میتوانم زمانی را پیشبینی کنم که آنقدر روی گوشی اندرویدیتان نرمافزارهای نوشته شده با دات نت داشته باشید که راضی کردنتان برای خرید یک گوشی ویندوزی اصلا کار سختی نباشد.
NET. از چه زبانهایی پشتیبانی میکند؟
تعداد قابل توجهی از زبانهای برنامه نویسی، امکان استفاده از دات نت را فراهم کردهاند. در بین این زبانهای برنامه نویسی اسامی آشنایی مثل Python و Java نیز به چشم میخورد. اما بیشتر برنامه نویسان در دنیا، از زبان #C برای بهره بردن از دات نت استفاده میکنند.
محیطهای مناسب برای برنامه نویسی دات نت
ویژوال استودیو (Visual Studio) جامعترین محیط برای توسعه برنامه با دات نت است. گزینه بعدی که تا حدودی سبکتر است و بیشتر توسعهدهندگان وب به کار میبرند ویژوال استودیو کد میباشد. رایدر (Rider) که توسط کمپانی JETBRAIN طراحی شده از دیگر گزینههای انتخاب محیط دات نت است.
چرا از دات نت استفاده میکنیم؟
مستقل بودن : مزیت اصلی این چارچوب استقلال آن از زبانهای برنامه نویسی است. برنامهنویسان میتوانند بهجای محدود شدن به استفاده از یک زبان مشخص برنامهنویسی، با استفاده از دات نت میتوانند در هر زبانی که با NET. همخوانی دارد کار کنند.
پشتیبانی در طول زمان : فرض کنید برنامه ای را در نسخه قدیمی NET. نوشته اید ، مثلا 2.0 و سعی دارید همان برنامه را روی دستگاهی اجرا کنید که نسخه بالاتر فریم ورک دات نت را داشته باشد ، مانند 3.5. برنامه هنوز هم کار میکند. دلیل این امر این است که با هر نسخه ، مایکروسافت اطمینان حاصل میکند که نسخههای فریم ورک قدیمی با آخرین نسخه به خوبی سازگار میشوند.
قابل حمل : در طول این مقاله بارها اشاره کردیم که برنامههایی که با NET. ساخته شدهاند میتوانند روی هر پلتفرمی اعم از ویندوز iOS و Linux کار کنند.
مدیریت حافظه : CLR همه کارهای مدیریت حافظه را انجام میدهد. چارچوب NET. توانایی بالایی برای یافتن منابعی را دارد که توسط یک برنامه در حال اجرا استفاده نمیشود و این منابع را از طریق سازوکار “جمع آوری زباله” (Garbage Collector) آزاد میکند.
استقرار آسان : NET. ابزارهایی دارد که میتوان برای بستهبندی برنامههای ساخته شده از آن استفاده کرد. در نهایت این بستهها در دستگاههای مشتری توزیع میشوند و به طور خودکار برنامه را نصب میکنند.
امنیت بالا : همانطور که میدانید مایکروسافت ارزش بالایی برای امنیت قایل است. لذا این ساخته مایکروسافت در برابر تلاشهای مخرب تغییر کد کامپایل شده قابل اعتماد است.
چه کسانی نباید سراغ دات نت بروند؟
توضیح درست عملکرد این چارچوب برای افراد ناآشنا با دنیای برنامهنویسی، تا حدودی دشوار است. برای افرادی که به زبانهای منطقی مانند C عادت دارند تا حدودی ناراحتکننده است، چرا که یک چارچوب متشکل از زبانهای شی گراست. به همین دلیل شاید بهتر باشد بعد از تسلط بر مفاهیم و درک عمیق برنامهنویسی سراغ این فریمورک بروید.
جمع بندی
NET. یک کتابخانه از امکاناتی ارزشمند است و برای استفاده از آن میتوان از زبانهای مختلفی مثل C#، Java و Python استفاده کرد. در دو سال اخیر و با روی کار آمدن NET Core. این امکان فراهم شده است که بتوانیم از NET. تقریبا در هر دستگاه و سیستم عاملی استفاده کنیم.
NET. متن باز است و هر کسی که فکر میکند به اندازه کافی توانمند است، میتواند تغییراتی که لازم میداند در آن اعمال کند و نسخه جدیدی از آن را در اختیار دیگران بگذارد.
برای کسانی که با دنیای برنامه نویسی و نرمافزار ها آشنایی چندانی ندارند، توضیح درست عملکرد فریم ورکهایی مثل NET. کار آسانی نیست. اما میتوانم این اطمینان را به این دسته از خوانندگان این مقاله بدهم، که داشتن فریم ورک قدرتمندی مثل NET. زندگی هر برنامه نویسی را شیرین تر میکند.
نویسنده و گردآورنده : مهدی نخبه دهقان