تفاوت Net Core . و Net Framework. با  .Net Standard.
تفاوت Net Core . و Net Framework. با .Net Standard.

چیست؟ .Net Framework

     Net Core . Net Framework. Net Standard.

.Net Frameworkپیاده سازی اصلی از.Netاست که در اوایل دهه2000توسط مایکروسافت برای تولید برنامه های مبتنی بر وب و ویندوز اپلیکیشن ها ساخته شده است. و با زبان های برنامه نویسیC# , Visual Basic , F#می توانیم برای این فریم ورک برنامه نویسی انجام دهیم.

محیط اجرایی.Net Frameworkخدمات متنوعی مانند مدیریت حافظه, همکاری بین زبان ها و... به برنامه های در حال اجرا ارائه می کند و کتابخانه های فراوانی در اختیار برنامه نویسان قرار داده است که سرعت تولید نرم افزار را هم بیشتر کرده.

در دوره رایگان آموزش  asp  تمام این موارد آموزش داده شده اس و بعد از مشاهده به درک درستر از این مفاهیم خواهید رسید.

 

.Net Framework دارای دو مولفه ی اصلی است:

  1. Common Language Runtime (CLR)

   این مولفه اجرای برنامه ها را بر عهده دارد

   2.Base Class Library (BCL)

و این مولفه نیز دارای تعداد بی شماری از کلاس های آزمایش شده است که برنامه نویسان برای تولید نرم افزارهای خود می توانند از این مولفه ها استفاده کنند.

کدهای نوشته شده در.Net Framework  به هر زبانی که باشد به زبان مشترکی به نام Intermediate Language (IL) تبدیل و دریک فایل از نوع .dll  و یا .exe  ذخیره می شوند  و در هنگام اجرای برنامه  توسط  CLR این کدها با استفاده از فرایندی به نام Just-in-time  (JIT)  به کدهای قابل فهم برای زبان ماشین تبدیل می شوند.

 

Net Core.  چیست ؟

 

     

 نوشته ی .Net Core بر روی پس زمینه ی بنفش - .net cor logo

 

با توجه به ظهور دستگاهای مختلف و محاسبات ابری، در چند سال گذشته روند توسعه نرم افزار کاملا تغییر کرده است. تعداد زیادی نرم افزار و خدمات برای سیستم عامل های مختلفی ارائه شده است. معماری نرم افزار ها به سمت میکروسرویس و استفاده از داکر در حال حرکت است.بنابر همین دلایل مایکروسافت شروع به ایجاد یک فریم ورک جدید کرد که بتواند نیاز های فعلی و توسعه نرم افزارهای آینده را در.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 standard

.Net چندین پیاده سازی  مختلف مانند .Net Framework, .Net Core , .Net Micro Framework, Xamarin و ... دارد. که هر کدام از این پیاده سازی ها  تفاوت های زیادی با هم دارند و کدی که شما در یکی از این فریم ورک ها می نویسید نمی تواند در دیگر فریم ورک ها اجرا شود. و برای رفع این مشکل .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 می باشد.

 

  تصویری از ایجاد پروژه در visual stadio 2019

 

مقایسه .Net Framework با .Net Core

.Net Frameworkو.Net Coreدو پیاده سازی متفاوت از.Netهستند و در ادامه این دو را با هم مقایسه می کنیم.

.Net Framework

  1. چارچوب .Net Framework اولین پیاده سازی از .Net است
  2. سورس کد آن در دسترس عموم است اما مایکروسافت اجازه همکاری دیگران در توسعه این فریم ورک را نمی دهد.
  3. یک چارچوب بیشرفته برای توسعه برنامه های تحت دسکتاب که شامل windows forms و WPF می باشد ارائه می دهد.
  4. کتابخانه ی بزرگی از third-party ها ارائه می دهد.
  5. از مدل In-App Deployment پشتیبانی نمی کند.
  6. اگرچه می توان از داکر کانتینرها استفاده کرد. اما اندازه Image آن بسیار بزرگ است  و فقط در کانتینرهای ویندوز قابل نصب است.

.Net Core

  1. .Net Core اخرین پیاده سازی از .Net است، این پیاده سازی کراس پلتفرم است و بر روی ویندوز ، لینوکس ، و Mac Os قابل اجرا است

  2. اوپن سورس است و بجر مایکروسافت دیگران هم می توانند در توسعه کد آن مشارکت کنند.

  3. از توسعه برنامه های دسکتاب تحت ویندوز فرم ها و WPF پشتیبانی می کند. این قابلیت از ورژن 3 به بعد به این فریم ورک اضافه شده است.

  4. .Net Core نیز دارای کتابخانه های third party زیادی است ولی هنوز  تعداد این کتابخانه ها به اندازه .Net Framework نرسیده اند.

  5. از مدل in-app deployment به خوبی پشتیبانی می کند.

  6. به بهترین شکل ممکن کار با داکر کانتینر ها را ارائه می دهد.

 

مقایسه .Net Framework و Net Core با .Net Standard

 

به معرفی .net standard پرداخته و شرح کاملی از قابلیت های .net framework  .net core xamari and .nat standard ارائه شده است

 

از آنجا که .Net Framework و .Net Core هردو پیاده سازی هایی از .Net می باشند می توانیم هردوی آنها را باهم با .Net Standard مقایسه کنیم.

 

.Net Framework و .Net Core

  1. .Net Framework و .Net Core پیاده سازی هایی از .Net هستند

  2. هردو فریم ورک دارای runtime هستند که اجرای برنامه ها را کنترل می کنند.

  3. Class Library ها نیز بخشی از این دو فریم ورک هستند.

  4. در هر یک از این فریم ورک ها می توانیم پروژه از انواع مختلفی را ایجاد کنیم

 

.Net Standard

  1. .Net Standard یک پیاده سازی از .Net نیست

  2.   مجموعه ای ازApi ها را مشخص  می کند که کلیه پیاده سازی  های دات نت باید آنها را پیاده سازی کنند.

  3. ما می توانیم فقط پروژه های نوع کتابخانه کلاس را با آن ایجاد کنیم.

 

از کدام فریم ورک برای توسعه برنامه های خود استفاده کنیم؟

ما باید از.Net Core استفاده کنیم زمانی که:

  1. نیاز داریم برنامه ماcross-platformباشد
  2. می خواهیم معماری میکروسرویس را پیاده سازی کنیم
  3. نیاز داریم از داکر استفاده کنیم
  4. برای تولید سیستم هایی با کارایی بالا و مقیاس پذیری بالا

ما باید از.Net Frameworkاستفاده کنیم:

  1. فقط هدف اجرای برنامه ی ما بر روی سیستم عامل ویندوز است

  2. از کتابخانه ها وthird partyهایی می خواهیم استفاده کنیم که برای.Net Core موجود نیست

  3. نیاز به استفاده از فناری هایی از.Net Frameworkداریم که هنوز توسط.Net Coreارائه نشده است.

از.Net Standard زمانی استفاده می کنیم که :

  1. ما می خواهیم کدهای نوشته شده را در پیاده سازی های مختلف.Netبه اشتراک بگذاریم.

 

بعد از انتخاب فریم ورک مناسب شما برای توسعه که میتونه.Net Coreو یا.Net Frameworkباشه نوبت به انتخاب ورژن.Net Standardمی رسد. مایکروسافت جدولی برای انتخاب ورژن مناسب  تحت عنوان .Net implementation support.   تهیه کرده است.

 

نتیجه گیری

در این مقاله سعی کردیم با.Net core , .Net Framework, .Net Standard اشنا بشویم و تفاوت های آنها را توضیح دادیم. و همچنین بررسی کردیم که چگونه فریم ورک مناسب برای توسعه را انتخاب کنیم. برای آشنایی باپیش نیاز های یادگیریasp.net core وآشنایی باasp.net coreو  دوره آموزشasp می توانید به این مقالات و دوره ها مراجعه کنید.

 

جدیدترین ویدئوهای آموزشی

در بخش TV باگتو، آموزش های کوتاه و جدید را مشاهده نمایید

6 نظرات
  • عکس پروفایل مجید در سایت باگتو
  • |
  • ارسال شده توسط : مجید
  • |
  • زمان : 1400/08/20

با سلام به شما

مطالب بسیار خوب طراحی و دسته بندی شده است

به نظر من مهمترین چیز در برنامه نویسی درک مفاهیم است که شما بسیار بسیار خوب مطالب رو تدریس میفرمایید.

سپاس از شما و سایت خوبتون

موفق باشید دوست عزیز

ممنونم از شما


  • عکس پروفایل مهناز در سایت باگتو
  • |
  • ارسال شده توسط : مهناز
  • |
  • زمان : 1400/05/05

این مقاله خیلی به من کمک کرد، ممنونم.


  • عکس پروفایل سعید در سایت باگتو
  • |
  • ارسال شده توسط : سعید
  • |
  • زمان : 1399/08/29

سلام

خیلی مطلب مفید و کمک کننده ای بود،بسیار متشکرم.


  • عکس پروفایل شکیب در سایت باگتو
  • |
  • ارسال شده توسط : شکیب
  • |
  • زمان : 1399/05/02

مقاله مفیدی بود ممنون


  • عکس پروفایل محمد در سایت باگتو
  • |
  • ارسال شده توسط : محمد
  • |
  • زمان : 1398/12/13

تشکر بابت مقاله های مفیدی که در این سایت قرار میدین


  • عکس پروفایل محمد در سایت باگتو
  • |
  • ارسال شده توسط : محمد
  • |
  • زمان : 1398/12/12

تشکر بابت مقاله های مفیدی که در این سایت قرار میدین



برای ارسال نظر باید وارد حساب کاربری خود شوید
ورود به حساب کاربری ثبت نام

بیش از 50% تخفیف به مناسبت جمعه سیاه
فقط تا پایان امروز