تفاوت 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 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 . می باشد.

     

      تصویری از ایجاد پروژه در 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

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