Net Framework. چیست؟
Net Framework. پیاده سازی اصلی از Net. است که در اوایل دهه 2000 توسط مایکروسافت برای تولید برنامه های مبتنی بر وب و ویندوز اپلیکیشن ها ساخته شده است. و با زبان های برنامه نویسی #C# , Visual Basic , F می توانیم برای این فریم ورک برنامه نویسی انجام دهیم.
محیط اجرایی Net Framework. خدمات متنوعی مانند مدیریت حافظه, همکاری بین زبان ها و... به برنامه های در حال اجرا ارائه می کند و کتابخانه های فراوانی در اختیار برنامه نویسان قرار داده است که سرعت تولید نرم افزار را هم بیشتر کرده.
در دوره رایگان آموزش asp تمام این موارد آموزش داده شده اس و بعد از مشاهده به درک درستر از این مفاهیم خواهید رسید.
Net Framework. دارای دو مولفه ی اصلی است:
Common Language Runtime (CLR)
این مولفه اجرای برنامه ها را بر عهده دارد
2.Base Class Library (BCL)
و این مولفه نیز دارای تعداد بی شماری از کلاس های آزمایش شده است که برنامه نویسان برای تولید نرم افزارهای خود می توانند از این مولفه ها استفاده کنند.
کدهای نوشته شده درNet Framework. به هر زبانی که باشد به زبان مشترکی به نام Intermediate Language (IL) تبدیل و دریک فایل از نوع dll. و یا exe. ذخیره می شوند و در هنگام اجرای برنامه توسط CLR این کدها با استفاده از فرایندی به نام Just-in-time (JIT) به کدهای قابل فهم برای زبان ماشین تبدیل می شوند.
Net Core. چیست ؟
با توجه به ظهور دستگاهای مختلف و محاسبات ابری، در چند سال گذشته روند توسعه نرم افزار کاملا تغییر کرده است. تعداد زیادی نرم افزار و خدمات برای سیستم عامل های مختلفی ارائه شده است. معماری نرم افزار ها به سمت میکروسرویس و استفاده از داکر در حال حرکت است.بنابر همین دلایل مایکروسافت شروع به ایجاد یک فریم ورک جدید کرد که بتواند نیاز های فعلی و توسعه نرم افزارهای آینده را در .Net برآورده سازد.
از این رو مایکروسافت فریم ورک جدیدی به نام Net Core. تولید کرد. این فریم ورک یک پیاده سازی جدید از .Net است که که قابلیت اوپن سورس و کراس پلتفرم را دارد و امکانات زیادی از Net. که از قبل وجود داشت به استفاده کنندگان ارائه می دهد. اما تفاوت های زیادی با Net Framework. دارد.
قابلیت های Net Core. عبارتند از
cross-platform
Open Source
class libraries
runtime
compilers
و از زبان های #c# , VB , F برای برنامه نویسی آن استفاده می شود. این فریم ورک این قابلیت را دارد که کدهای نوشته شده را در معماری های x64 , x86 , ARM اجرا نماید و همچنین با پشتیبانی از دستورات command line قابلیت های برای دپلوی اتوماتیک در اختیار ما قرار می دهد، Net Core. را می توانیم با Docker هم استفاده کنیم.
در حال حاضر تمام تمرکز تیم توسعه مایکروسافت بر روی Net Core. است و تمام توان خود را برای توسعه و پیشرفت این فریم ورک به کار گرفته است. البته به گفته خود شرکت مایکروسافت Net Framework. هم با سرعتی کندتر در حال توسعه است. ولی نمی تواند انتظارات زیادی برای پیشرفت Net Framework. را داشته باشیم.
Net Standard. چیست؟
Net. چندین پیاده سازی مختلف مانند .Net Core , .Net Micro Framework, Xamarin و Net Framework. ... دارد. که هر کدام از این پیاده سازی ها تفاوت های زیادی با هم دارند و کدی که شما در یکی از این فریم ورک ها می نویسید نمی تواند در دیگر فریم ورک ها اجرا شود. و برای رفع این مشکل Net Standard. ارائه شد.
Net Standard. یک پیاده سازی از Net. نیست، و مجموعه ای از Api ها است که کلیه ی پیاده سازی های Net. باید ارائه دهند. در واقع وقتی ما از Net Standard. استفاده می کنیم مشکل اشتراک کد در همه سیستم عامل ها و پیاده سازی ها برای Net. برطرف می گردد.
اشتباهاتی در مورد Net Standard.
کسانی که تازه وارد دنیای Net. شده اند و یا آشنایی با Net. ندارند فکر می کنند که Net Standard. هم یک نوع پیاده سازی از Net . می باشد و انتظار یک فریم ورک را از آن دارند. اگر ویژوال استادیو 2019 را باز کنیم و بخواهیم یک پروژه جدید رو از نوع Class Library ایجاد کنیم سه گزینه برای انتخاب به ما نمایش می دهد Class Library (.Net Standard) , Class Library (.Net Framework) , Class Library (.Net Core) .
اگر توضیحات مربوط به Class Library (.Net Standard) , Class Library (.Net Core) را مطالعه کنیم به ترتیب نوشته که سکوی هدف Net Standard. و Net Core. می باشد. که به نظرم این متن یک اشتباه از سمت تیم توسعه ویژال استادیو می باشد و ممکن است خیلی ها را گمراه کند و فکر کنند که Net Standard. هم یک نوع پیاده سازی از Net . می باشد.
مقایسه Net Framework. با Net Core.
Net Framework. و Net Core. دو پیاده سازی متفاوت از Net. هستند و در ادامه این دو را با هم مقایسه می کنیم.
Net Framework.
- چارچوب Net Framework . اولین پیاده سازی از Net. است
- سورس کد آن در دسترس عموم است اما مایکروسافت اجازه همکاری دیگران در توسعه این فریم ورک را نمی دهد.
- یک چارچوب بیشرفته برای توسعه برنامه های تحت دسکتاب که شامل windows forms و WPF می باشد ارائه می دهد.
- کتابخانه ی بزرگی از third-party ها ارائه می دهد.
- از مدل In-App Deployment پشتیبانی نمی کند.
- اگرچه می توان از داکر کانتینرها استفاده کرد. اما اندازه Image آن بسیار بزرگ است و فقط در کانتینرهای ویندوز قابل نصب است.
Net Core.
Net Core. اخرین پیاده سازی از Net. است، این پیاده سازی کراس پلتفرم است و بر روی ویندوز ، لینوکس ، و Mac Os قابل اجرا است
اوپن سورس است و بجر مایکروسافت دیگران هم می توانند در توسعه کد آن مشارکت کنند.
از توسعه برنامه های دسکتاب تحت ویندوز فرم ها و WPF پشتیبانی می کند. این قابلیت از ورژن 3 به بعد به این فریم ورک اضافه شده است.
Net Core. نیز دارای کتابخانه های third party زیادی است ولی هنوز تعداد این کتابخانه ها به اندازه Net Framework .نرسیده اند.
از مدل in-app deployment به خوبی پشتیبانی می کند.
به بهترین شکل ممکن کار با داکر کانتینر ها را ارائه می دهد.
مقایسه Net Framework. و Net Core. با Net Standard.
از آنجا که Net Framework. و Net Core. هردو پیاده سازی هایی از .Net می باشند می توانیم هردوی آنها را باهم با Net Standard. مقایسه کنیم.
Net Framework. و Net Core.
Net Framework. و Net Core. پیاده سازی هایی از Net . هستند
هردو فریم ورک دارای runtime هستند که اجرای برنامه ها را کنترل می کنند.
Class Library ها نیز بخشی از این دو فریم ورک هستند.
در هر یک از این فریم ورک ها می توانیم پروژه از انواع مختلفی را ایجاد کنیم
Net Standard.
Net Standard. یک پیاده سازی از Net. نیست
مجموعه ای از Api ها را مشخص می کند که کلیه پیاده سازی های دات نت باید آنها را پیاده سازی کنند.
ما می توانیم فقط پروژه های نوع کتابخانه کلاس را با آن ایجاد کنیم.
از کدام فریم ورک برای توسعه برنامه های خود استفاده کنیم؟
ما باید از Net Core. استفاده کنیم زمانی که:
- نیاز داریم برنامه ما cross-platform باشد
- می خواهیم معماری میکروسرویس را پیاده سازی کنیم
- نیاز داریم از داکر استفاده کنیم
- برای تولید سیستم هایی با کارایی بالا و مقیاس پذیری بالا
ما باید از Net Framework. استفاده کنیم:
فقط هدف اجرای برنامه ی ما بر روی سیستم عامل ویندوز است
از کتابخانه ها و third party هایی می خواهیم استفاده کنیم که برای Net Core. موجود نیست
نیاز به استفاده از فناری هایی از Net Framework. داریم که هنوز توسط Net Core. ارائه نشده است.
از Net Standard. زمانی استفاده می کنیم که :
- ما می خواهیم کدهای نوشته شده را در پیاده سازی های مختلف Net. به اشتراک بگذاریم.
بعد از انتخاب فریم ورک مناسب شما برای توسعه که میتونه Net Core. و یا Net Framework. باشه نوبت به انتخاب ورژن Net Standard. می رسد. مایکروسافت جدولی برای انتخاب ورژن مناسب تحت عنوان Net implementation support. تهیه کرده است.
نتیجه گیری
در این مقاله سعی کردیم با Net core -.Net Framework- .Net Standard آشنا شویم و تفاوت های آنها را توضیح دادیم. و همچنین بررسی کردیم که چگونه فریم ورک مناسب برای توسعه را انتخاب کنیم. برای آشنایی با پیش نیاز های یادگیری asp.net core و آشنایی با asp.net core و دوره آموزش asp می توانید به این مقالات و دوره ها مراجعه کنید.
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید