همه چیز راجب دات نت

در این مقاله انواع آن دات نت و ویژگی های دات نت صحبت میکنیم پس تا آخر مقاله همراه من باشین .اول براتون توضیح میدهم که دات نت چیست تا کمی با مفهوم دات نت آشنا شویم , برای تعریف .Netاز واژه‌هایی مثل چارچوب ، فریم ورک ، سَکو و پلتفرم استفاده می‌شود . میتوان گفت که Net. تقریبا برای هر مشکلی که یک برنامه نویس با آن مواجه می‌شود ، یک راه حل دارد و در واقع از چندین ابزار تشکیل شده است . منظورم از ابزار ، تکه کدهایی است که از قبل برای انجام وظیفه‌ای خاص نوشته شده‌اند . بعضی‌ افراد .Netرا به کتابخانه هم شبیه می‌دانند که این تعریف هم درست است . میشه گفت که ابزارهای درون Net. به چند دسته تقسیم می‌شوند . به این دسته‌ها ، فضای نام (Name Space ) می‌گویید . و یک چیز مهم که دات انواع مختلف دارد و من براتون انواع ان را توضیح میدهم . انواع دات نت اگر شما تا همین چند وقته پیش تصمیم می‌گرفتید که C#.Net را یاد بگیرید ، یک راه حل بیشتر نداشتید ؛ اینکه یک نرم‌افزار به نام Visual Studio را نصب کنید و کد نویسی با ان را شروع کنید . اما الان دیگر فقط با یک نوع Net. سر و کار نداریم . چون مایکروسافت پا به دنیایی فراتر از ویندوز گذاشته است . Net. تقریبا روی تمام دستگاه‌هایی که شما می‌شناسید پشتیبانی می‌شود . .Net Coreمیدویند که اگر شما بخواهید یک جعبه ابزار بزرگ را هر جا با خود حمل کنید ، کارتان خیلی سخت می‌شود . به جای آن می‌توانید از یک کیف کوچک که فقط یک پیچ گوشتی و یک آچار داخل آن گذاشته ‌اید استفاده کنید . .Net Core درواقع کیف کوچکی است که می‌توانید با استفاده از آن ، فقط ابزاری که مورد استفاده نرم افزارتان است را همراه داشته باشید . یک فریمورک چند پلتفرمی و منبع باز ، NET Core هنگام توسعه برنامه‌ها بر روی هر پلتفرمی بهترین است . NET Core برای برنامه های کاربردی ابری یا تبدیل مجدد برنامه های بزرگ سازمانی به میکروسرویس ها استفاده می شود ..Net Frameworkدات نت فریم ورک در واقع همان دات نت قدیمی است که قبل استفاده میکردیم درست است که قدیمی است اما با این حال کهنه نشده .Monoو اما Mono که در اوایل توسط شرکتی غیر از مایکروسافت پشتیبانی می‌شد . اما مایکروسافت زیر نظر مدیر عامل جدید خودش ، پس از تغییر رویه و ورود به دنیای سایر پلتفرم‌ها ، به صورت رسمی از Mono پشتیبانی کرد , البته Mono در ابتدا به شکل متن باز ( Open Source)‌ بود . با Monoمیشه برای دستگاه‌های مختلف اپ تولید کرد ؛ فرقی هم نمی‌کند برایش ، برای اندروید یا یکی از توزیع ‌های لینوکس باشد . فقط کافی است که شما یکی از زبان‌هایی که از .Net پشتیبانی می‌کنند مثل سی شارپ را یاد بگیرید و بعد برای هر دستگاهی که دوست دارید برنامه بنویسید .NET Coreدر مقابل .NET Frameworkمایکروسافت هر دو زمان اجرا را برای ساخت برنامه ها با دات نت حفظ می کند و در عین حال بسیاری از API های یکسان را به اشتراک می گذارد . این API مشترک ، استاندارد دات نت نامیده می شود .توسعه دهندگان از دات نت فریم ورک برای ایجاد برنامه های دسکتاپ ویندوز و برنامه های مبتنی بر سرور استفاده می کنند . این شامل برنامه های تحت وب ASP.NET می شود . از سوی دیگر ، .NET Coreبرای ایجاد برنامه های کاربردی سرور که بر روی ویندوز ، لینوکس و مک اجرا می شوند استفاده می شود . در حال حاضر از ایجاد برنامه های دسکتاپ با رابط کاربری پشتیبانی نمی کند . توسعه دهندگان می توانند برنامه ها و کتابخانه ها را در VB.NET، C# و F# در هر دو زمان اجرا بنویسند .سی شارپ یک زبان شی گرا است که مشابه سایر زبان های سبک Cاست . منحنی یادگیری نباید برای توسعه دهندگانی که قبلاً با C و زبان های مشابه کار می کنند مشکل ساز باشد .F# یک زبان کراس پلتفرم است که از برنامه نویسی شی گرا نیز استفاده می کند .ویژوال بیسیک در دات نت فریم ورک با پشتیبانی محدود .NET Coreبا NET Core 2.0 موجود است .حالا چه زمانی که برنامه نویسان باید از دات نت فریم ورک استفاده کنند …دات نت فریم ورک با ویندوز توزیع شده است . به طور کلی ، از آن برای ساخت برنامه های دسکتاپ ویندوز و برنامه های سازمانی در مقیاس بزرگ با استفاده از گردش کار دات نت و ابزارهای اتصال داده استفاده می شود .دات نت فریم ورک خدماتی را ارائه می دهد که عبارتند از :· مدیریت حافظه· ایمنی نوع و حافظه· امنیت· شبکه سازی· استقرار برنامه· ساختارهای داده· API هاچه زمانی باید .NET Framework را اجرا نکنیدهمچنین چند موقعیت وجود دارد که در آنها نباید .NET Frameworkرا اجرا کنید . این موارد عبارتند از زمانی که :· چندین سیستم عامل مورد نیاز است· عملکرد و مقیاس پذیری بالا مورد نیاز است· NET Core کار می کند· چارچوب متن باز مورد نیاز استچهار جزء اصلی معماری دات نت وجود دارد :· مشخصات زبان مشترک (CLS) نحوه پیاده سازی اشیاء را تعریف می کند تا در هر جایی که دات نت کار می کند کار کنند . CLS زیرمجموعه ای از Common Type System (CTS)است - که یک روش مشترک را برای توصیف همه انواع تنظیم می کند .· کتابخانه کلاس چارچوب (FCL) یک کتابخانه استاندارد است که کلاس های قابل استفاده مجدد ، رابط ها و انواع مقادیر را جمع آوری می کند .· زمان اجرای زبان مشترک (CLR) ماشین مجازی است که فریم ورک را اجرا می کند و اجرای برنامه های دات نت را مدیریت می کند .· ویژوال استودیو برای ایجاد برنامه های کاربردی مستقل ، وب سایت های تعاملی ، برنامه های کاربردی وب و خدمات وب استفاده می شود .زبان های برنامه نویسی دات نت چیست؟سی شارپ که در سال 2000 با سر و صدای زیادی معرفی شد ، معروف ترین و پرکاربردترین زبان برنامه نویسی دات نت است . این به صورت داخلی توسط مایکروسافت به عنوان بخشی از ابتکار دات نت توسعه داده شد و بیشتر کلاس های کتابخانه استاندارد دات نت به زبان سی شارپ نوشته شده اند . این زبان شی گرا است و به گونه ای طراحی شده است که به اندازه کافی شبیه به C باشد تا برای توسعه دهندگان C، C++ ، جاوا و جاوا اسکریپت، یادگیری و استفاده سریع آن آسان باشد .مایکروسافت در حال حاضر دو زبان برنامه نویسی دیگر را نیز در پیش زمینه دارد که می توان از آنها برای نوشتن برای .NET Framework استفاده کرد . یکی F# است ، یک زبان برنامه نویسی تابعی که بخشی از خانواده زبان های ML است که در نهایت ریشه در LISP دارد. دیگری ویژوال بیسیک ، زبان برنامه نویسی ارجمند و قابل یادگیری مایکروسافت برای توسعه برنامه های کاربردی کلاینت - سرور است . اما اینها فقط نوک کوه یخ هستند : از آنجایی که دات نت از استانداردهای باز تشکیل شده است ، هر کسی می تواند زبانی بنویسد که در بایت کد CILکامپایل می شود و می تواند توسط CLRاجرا شود . و البته در ویکی‌پدیا فهرستی بیش از 20 پروژه زبان CLI دارد . تقریباً همه آنها نشان دهنده پورت های دات نت زبان های موجود ، از پاسکال تا جاوا اسکریپت و حتی COBOL هستند .این واقعیت که این تنوع زبان‌ها می‌توانند در چارچوب دات‌نت وجود داشته باشند ، یکی از نقاط قوت این پلتفرم است . از آنجایی که همه کدها در بایت کد CILکامپایل می شوند ، دات نت واقعاً اهمیتی نمی دهد که آن را به کدام زبان بنویسید . شما می توانید زبانی را بر اساس ترجیحات خود ، نقاط قوت و ضعف مختلف هر زبان ، یا جنبه های مختلف چارچوب دات نت که هر زبان به شما دسترسی می دهد انتخاب کنید ( در اینجا تغییراتی وجود دارد ) . همانطور که اشاره شد ، بیشتر کتابخانه استاندارد به زبان #C نوشته شده بود ، اما این مانع از دسترسی شما به کلاس‌ها از طریق کدهای نوشته شده در سایر زبان‌های CLI نمی‌شود . در واقع ، مؤلفه‌هایی که به زبان‌های مختلف CLIنوشته شده‌اند ، می‌توانند آزادانه در یک برنامه دات‌نت با هم کار کنند .چگونه می توانید کتابخانه های خود را از .NET Frameworkبه .NETجدید انتقال دهید ؟پنج گزینه برای انتقال کتابخانه های شما برای هدف قرار دادن یک پلت فرم جدید دات نت وجود دارد : رها کردن ، به روز رسانی ، فورک ، چند هدف یا پل .در این مقاله ، توضیح می‌دهم که هر گزینه شامل چه مواردی می‌شود ، چه زمانی ممکن است بخواهید آن را انتخاب کنید و چگونه روی آن گزینه اجرا کنید . ما با ساده‌ترین گزینه شروع می‌کنیم ، اما به خاطر داشته باشید که باید برنامه‌ها ، کتابخانه‌ها و برنامه‌های مهاجرت خود را ارزیابی کنید تا مشخص کنید کدام گزینه در هر مورد بهترین است .رها کردناگر برنامه ای برای انتقال کتابخانه خود به .NET 5/6+ ندارید ، برای همیشه یک کتابخانه NET Framework باقی می ماند و در طول عمر خود فقط به روز رسانی های کوچکی دریافت می کند .چه زمانی انتخاب شود" رها کردن " برای کتابخانه‌ای مناسب است که از فناوری‌های منسوخ شده یا بخشی از .NET 5/6+ ( فرم‌های وب ، WCF و WF) به شدت استفاده می‌کند . برنامه‌ها و کتابخانه‌های زیادی در سازمان شما وجود خواهند داشت که از فناوری قدیمی استفاده می‌کنند ، اما بدون نیاز به بازنویسی ، به‌طور نامحدود ادامه خواهند داشت . برنامه های Web Forms یک مثال عالی هستند .برای مثال : شاید شما یک کتابخانه به نام Kramerica.WCF.Utils داشته باشید که فقط در برنامه های مبتنی بر WCF از آن استفاده می کنید . از آنجایی که WCF هرگز بخشی از .NET 5/6+ نخواهد بود ، انتقال آن کتابخانه فایده ای ندارد . فقط Kramerica.WCF.Utils را به حداقل و فقط در صورت نیاز حفظ کنید .به روز رسانی« به‌روزرسانی » کتابخانه‌های شما به معنای مهاجرت از NET Frameworkبه NET 5/6+ است و در عین حال مقداری « اتاق » در شماره‌های نسخه برای نسخه‌های اضطراری حفظ می‌شود .چه زمانی انتخاب شود ؟اگر می خواهید همه برنامه های خود را در مدت زمان کوتاهی انتقال دهید، خوب است کتابخانه های قدیمی خود را به روز کنید و به یکباره به جدید منتقل کنید . این گزینه همچنین برای کتابخانه هایی که فقط توسط تعداد بسیار کمی از برنامه ها مصرف می شوند مناسب است .و اما نحوه اجراکتابخانه ها نسخه بندی شده اند . وقتی دوباره هدف‌گذاری می‌کنید ، خطاهای کد را برطرف می‌کنید و کتابخانه « جدید » را منتشر می‌کنید ، از شماره نسخه اصلی به‌طور قابل توجهی بالاتر استفاده کنید . استفاده از یک نسخه بزرگ (به عنوان مثال، Kramerica.Utils 2.6 تا Kramerica.Utils 5.0) به مصرف کنندگان اطلاع می دهد که تفاوت قابل توجهی بین کتابخانه ها وجود دارد . اما شاید مهمتر از آن ، نسخه های کافی بین قدیمی و جدید را فراهم می کند تا امکان بازگشت به عقب را فراهم کند. در شرایط اضطراری ، اساساً می‌توانید «به گذشته» برگردید و یک نسخه جدید از یک کتابخانه قدیمی ایجاد کنید - اساساً «به دنبال واقعیت حرکت می‌کنید» .برای مثال: Kramerica.MVC.Utils از فناوری MVCاستفاده می کند که می تواند به 5/6+ منتقل شود. این کتابخانه می تواند با کمترین تغییرات در هنگام مهاجرت به روز شود. هنگام مهاجرت، کتابخانه "قدیمی" Kramerica.MVC.Utils 3.1 را نسخه می کنید و "جدید" را به Kramerica.MVC.Utils 5.0 نسخه می کنید .Forkمانند انتخاب File > Save As در سند مایکروسافت ورد قبل از ایجاد تغییرات ، " forking" همه همان کد منبع را در یک مخزن جداگانه کپی می کند . پس از کپی کردن ، می توانید در کتابخانه های خود مهاجرت کنید ، پلت فرم جدید دات نت را هدف قرار دهید ، و یک کتابخانه کاملاً جدید بدون تغییر یا حذف کتابخانه قدیمی خواهید داشت .چه زمانی انتخاب شود ؟اگر می‌خواهید در میان‌مدت تا درازمدت به نسخه NET Framework کتابخانه‌تان نیاز داشته باشید ، باید فورک کنید . همچنین می‌توانید این گزینه را در صورت پیچیده بودن انتقال در نظر بگیرید ( مانند زمانی که بخش‌هایی از NET Framework در کتابخانه شما در NET 5/6+ وجود ندارد ) .یک دستورالعمل برای فورکینگ این است که 80-90٪ کد " همپوشانی " دارند ، اما 10-20٪ به اندازه کافی متفاوت هستند، فوک کردن منطقی است. هنگامی که این نسبت معکوس می شود یا زمانی که مهاجرت بی اهمیت است، فورک کردن شما را با دو پایگاه کد تقریباً یکسان برای نگهداری و آزادسازی جداگانه می گذارد .نحوه اجرا ؟این یک فرآیند نسبتا کوتاه و چهار مرحله ای است :کتابخانه فعلی را فورک کنید .• کد منبع را کپی کنید و نام پروژه / مخزن را به طور مشابه ، مانند Utilsبه UtilsCore تغییر دهید.در فوک، آنچه را که ویژوال استودیو هدف قرار خواهد داد، تغییر دهید.• اگر بعد از این مرحله سعی کنید کامپایل کنید ، تقریباً مطمئناً با خطا مواجه می شوید .رفع خطاهای ایجاد شده توسط هدفگیری مجدد و تست .• این مرحله را تا زمانی که بدون خطا باشید تکرار کنید .کتابخانه را با نام جدیدش منتشر کنید .مثالKramerica.Network.Utils برای ایجاد Kramerica.NetworkCore.Utils فورک شده است .چند هدفایجاد یک کتابخانه بسته NuGet که شامل هر دو نسخه کتابخانه های شما ( نسخه NET Framework و NET 5/6+ ) باشد . این بسیار کارآمد است ، زیرا ویژوال استودیو تصمیم می گیرد که کدام پلتفرم دات نت را هدف قرار دهد .فیلم‌ها را به‌ عنوان یک قیاس در نظر بگیرید : اگر سه‌گانه اصلی جنگ ستارگان را به صورت نسخه چاپی بخرید ، مجموعه ‌ای از دی‌وی‌دی‌ ها و دیسک‌ های Blu-rayرا در همان بسته پیدا خواهید کرد، بنابراین می‌توانید فیلم را روی هر پخش‌ کننده‌ای که در خانه دارید پخش کنید . شما هر دو انتخاب را به طور همزمان دارید، درست مانند یک بسته NuGetچند هدفه . ( البته یک نکته : در حالی که اکثر پخش کننده های Blu-ray اکنون می توانند دی وی دی ها را پخش کنند، ما هیچ مدرکی از جانب مایکروسافت نداریم که دات نت 5/6+ هرگز قادر به استفاده از کتابخانه های Framework باشد . )مثالKramerica.Data.Models از یک بسته NuGetکه فقط شامل یک کتابخانه منفرد سازگار با Framework 4.8 است به بسته ای که شامل چندین کتابخانه، Kramerica.Data.FrameworkModels و Kramerica.Data.CoreModels است تبدیل می شود.Bridgeاگر خوش شانس هستید و کد کتابخانه شما با یک فناوری منسوخ شده به نام NET Standard 2.0 سازگار است، ممکن است بتوانید کتابخانه ای ایجاد کنید که هم در .NET Framework و هم در .NET 5/6+ بدون پیچیدگی چند هدف گیری ..NET Standard سلف .NET Coreبود و تلاش مایکروسافت برای یکپارچه سازی تمام پلتفرم های .NET قبل از .NET 5/6+ بود. این یک فناوری گیج‌کننده است، اما نکته اصلی این است که اگر کتابخانه‌های شما قبلاً.NET Framework 4.7.2 یا بالاتر را هدف قرار داده باشند، ممکن است انتخاب خوبی باشد.ادامه دی‌وی‌دی‌ها و بلوری‌های جنگ ستارگان در همان بسته، هدف قرار دادن دات نت استاندارد 2.0 مانند انتشار یک دیسک است (بیایید آن را «BluDVD» بنامیم) که به طور همزمان یک دی‌وی‌دی و دیسک بلو-ری است و در اکثر موارد قابل پخش است. پخش کننده های بلوری و دی وی دی.نویسنده:حانیه خمسهنام استاد:دکتر مریم حاجی اسمعیلی.دکترای علوم کامپیوتر از دانشگاه کینگستون لندن