تفاوت 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 دارای دو مولفه ی اصلی است:

    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

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

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

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

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

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

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

     

    مقایسه .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

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

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

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

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

     

    .Net Standard

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

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

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

     

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

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

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

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

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

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

    نیاز به استفاده از فناری هایی از .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 می توانید به این مقالات و دوره ها مراجعه کنید.

     


    • نویسنده: احسان بابائی

    ارسال دیدگاه

    برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربری‌تان شوید


    دیدگاه کاربران

    avatar
    مجید
    1400/08/20

    با سلام به شما

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

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

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

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

    avatar
    احسان بابائی
    1400/08/30

    ممنونم از شما


    avatar
    مهناز
    1400/05/05

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


    avatar
    سعید
    1399/08/29

    سلام

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


    avatar
    شکیب
    1399/05/02

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


    avatar
    محمد
    1398/12/13

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


    avatar
    محمد
    1398/12/12

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