ASP.Net Core چیست؟ مزایا و محیط این زبان برنامه نویسی

folder_openنرم افزار
commentبدون دیدگاه

ASP.Net Core یک طراحی مجدد و چشمگیر از ASP.Net می باشد. در این مقاله مفاهیم جدید در ASP.Net Core و چگونگی کمک کردن آنها در توسعه برنامه های وب مدرن را توضیح می دهیم.

 

ASP.Net Core

چیست؟ ASP.Net Core

ASP.Net Core یک فریمورک  Open Source (منبع باز) و cross-platform جدید است که برای ساخت برنامه های متصل به اینترنت مانند برنامه های وب، برنامه های اینترنت اشیا و بک اند تلفن همراه به کار می رود. برنامه های ASP.Net Core می توانند بر روی Net Core. یا به صورت کامل روی فریمورک Net. اجرا شوند.

همچنین برای توسعه ی بهینه ی فریمورک برنامه هایی که در cloud یا در محیط گسترش یافته اند طراحی شده است. این فریمورک شامل اجزای modular (مدولار) با حداقل سربار است بنابراین در هنگام ساخت راه حل های خود انعطاف پذیری را حفظ می کند. شما می توانید برنامه های ASP.NET Core خود را از طریق cross-platform در ویندوز، مک و لینوکس توسعه و اجرا کنید. همچنین ASP.Net Core در گیت هاب اوپن سورس می باشد.

 

بیشتر بخوانید: 10 زبان برنامه نویسی برتر در سال 2021

 

چرا باید ASP.Net Core بسازیم؟ 

اولین نسخه پیش نمایش ASP.Net تقریبا 15 سال پیش به عنوان بخشی از فریمورک Net. منتشر شد. از آن زمان تا کنون میلیون ها توسعه دهنده از آن برای ساخت و اجرای برنامه های عالی وب استفاده کرده اند؛ به علاوه در طول این سال ها قابلیت های زیادی به آن اضافه و توسعه داده شده است.

ASP.Net Core دارای تغییراتی در معماری اش می باشد که این تغییرات منجر شده است که این فریمورک بسیار مدولار تر بشود. ASP.Net Core دیگر مبتنی بر System.Web.dII نیست، بلکه مبتنی بر مجموعه ای از دسته های granular و پکیج های کاملا فاکتور شده ی NuGet می باشد.

که این مسئله به شما این امکان را می دهد که برنامه ی خود را فقط با پکیج های NuGet مورد نیازتان بهینه کنید. از مزایای یک برنامه  با پهنای کوچک تر می توان به امنیت بیشتر، کاهش سرویس دهی، بهبود عملکرد و کاهش هزینه ها در (pay-for-what-you-use) مدل پرداختی ای که شما استفاده می کنید، اشاره کرد.

 

با ASP.Net Core پیشرفت های اساسی زیر را به دست می آورید:

  • یک گزارش واحد برای ساخت UI وب و API وب
  • ادغام فریمورک های مدرن client-side و توسعه روند کار
  • دارای یک محیط cloud-ready مبتنی بر سیستم پیکربندی است
  • Built-in dependency injection
  • Light-weight جدید و راه درخواست مدولار HTTP
  • امکان host در IIS یا self-host در فرآیند خودش
  • ساخته شده در Net core. که از نسخه اصلی side-by-side برنامه پشتیبانی می کند
  • به صورت پکیج های NuGet ارسال می شود
  • یک ابزار جدید که توسعه مدرن وب را آسان می کند
  • ساخت و اجرای برنامه های کراس پلتفرم ASP.Net در ویندوز ، مک و لینوکس
  • دارای Community (جامعه) متمرکز و  Open Source (منبع باز) می باشد

 

آناتومی برنامه :

یک برنامه ی ASP.Net Core به سادگی یک برنامه ی Console است که در روش اصلی خود یک سرور وب ایجاد

می کند:

 

ASP.Net Core

 

Main برای ایجاد یک host (میزبان) برای برنامه وب از WebHostBuilder که از الگوی سازنده پیروی می کند، استفاده می کند. این سازنده روش هایی دارد که سرور وب (برای مثال UseKestrel) و کلاس راه اندازی (UseStartUp) را تعریف می کند.

در مثال بالا از وب سرور Kestrel استفاده شده است، اما وب سرور های دیگر را می توان تعیین کرد. در بخش بعدی اطلاعات بیشتری درباره ی UseStartUp خواهیم گفت. WebHostBuilder روش های اختیاری زیادی از جمله UseIISIntegration برای میزبانی در IIS و IIS Express و UseContentRoot را برای مشخص کردن محتوای ریشه ارائه می دهد.

به علاوه روش های ساخت و اجرای IWebHost را ایجاد می کند که host برنامه خواهد بود و شروع به پیروی کردن از درخواست های ورودی HTTP می کند.

 

Startup :

روش UseStartup در WebHostBuilder کلاس Startup را برای برنامه ی شما مشخص می کند.

 

 

ASP.Net Core

 

 

کلاس Startup جایی است که شما line (خط یا سطر) رسیدگی به درخواست را تعریف می کنید و سرویس های مورد نیاز برنامه را پیکربندی می کنید. کلاس Startup باید public (عمومی) باشد که شامل روش های زیر است:

 

 

 

ASP.Net Core

 

 

  • پیکربندی کردن ، خدمات مورد استفاده ی برنامه شما را تعریف می کند. ( مانند : ASP.Net MVC Core framework, Entity Framework Core Identity و… )
  • پیکربندی درخواست middleware (میان افزار) را تعریف می کند.
  • برای جزییات بیشتر می توانید به خود برنامه مراجعه کنید.

 

خدمات و سرویس ها 

خدمات بخشی است که برای مصرف عمومی در یک برنامه در نظر گرفته شده است. و این خدمات از طریق dependency در دسترس قرار می گیرد. ASP.Net Core  شامل یک محتوی ساده ی کنترل وارونگی داخلی (IoC) است که به صورت پیش فرض از سازنده پشتیبانی می کند، اما می تواند به راحتی با IoC انتخابی شما جایگزین شود.

علاوه بر مزیت اتصال آزاد، Dl خدمات را در سراسر برنامه ی شما در دسترس قرار می دهد. به عنوان مثال ورود به سیستم در سرتاسر برنامه ی شما در دسترس است.

 

 Middleware (میان افزار) 

در ASP.Net Core شما درخواست خود را با استفاده از Middleware می نویسید. middleware یا میان افزار ASP.Net Core منطق ناهمزمان یا ناهمگام خود را بر روی HttpContext انجام می دهد؛ سپس یا میان افزار بعدی را به ترتیب فرا می خواند، یا درخواست را مستقیما خاتمه می دهد. شما به طور کلی با استفاده از dependency به پکیج NuGet و فراخوانی متد متناظر IApplicationBuilder در روش پیکر بندی کردن، از  middleware استفاده می کنید.

 

ASP.NET Core با مجموعه ای غنی از middleware(میان افزار) پیش ساخته همراه است:

  • پرونده های ثابت
  • مسیریابی
  • احراز هویت

 

همچنین می توانید middleware (میان افزار) سفارشی خود را تهیه کنید.

به علاوه می توانید از هر middleware مبتنی بر OWIN با ASP.Net Core استفاده کنید. برای جزییات بیشتر درباره ی Net Core (OWIN). می توانید به Open Web Interface مراجعه کنید.

 

سرورها 

مدل میزبانی ASP.NET Core مستقیماً به درخواست ها پاسخ نمی دهد . بلکه برای پیاده سازی درخواست به برنامه ، به پیاده سازی سرور HTTP متکی است. درخواست ارسال شده به عنوان مجموعه ای از ویژگی های interface (رابط ) بسته می شود و سپس برنامه  در HttpContext ساخته می شود.

ASP.NET Core شامل یک سرور وب cross-platform مدیریت شده به نام Kestrel است که معمولاً پشت سر یک وب سرور تولیدی مانند IIS یا nginx اجرا می شود.

 

Content Root (ریشه محتوا) 

content root یا ریشه محتوا مسیر اصلی هر محتوایی است که توسط برنامه استفاده می شود، مانند بازدیدها و محتوای وب. به طور پیش فرض content root همان مسیر پایه ی برنامه ، برای host کردن اجرای برنامه هاست. و همچنین با WebHostBuilder می توان مکان (location) دیگری را هم تعیین کرد.

 

 Web Root (ریشه وب) 

ریشه وب شما، مستقیما در پروژه ی شما برای static recourses (منابع استاتیک) مانند JS ، CSS و فایل های تصویری به صورت عمومی موجود است. Middleware (میان افزار) فایل های استاتیک به طور پیش فرض فقط پرونده ها را از فهرست web root یا همان ریشه وب ( و زیرشاخه ها ) ارائه می دهد. مسیر web root به طور پیش فرض،content root>wwwroot> است ، اما شما می توانید با استفاده از WebHostBuilder مکان دیگری را نیز تعیین کنید.

 

Configuration (پیکربندی) 

ASP.Net Core از یک مدل پیکربندی جدید برای مدیریت جفت های ساده ی name-value استفاده می کند. این مدل پیکربندی جدید مبتنی بر System.Configuration یا web.config نیست. بلکه از مجموعه ی ارائه دهندگانConfiguration  (پیکربندی) خارج می شود.

ارائه دهندگان پیکربندی داخلی از انواع مختلفی قالب های فایل (XML ، JSON ، INI) و متغیرهای محیطی برای فعال کردن پیکربندی environment-based پشتیبانی می کند. همچنین می توانید تنظیمات پیکربندی سفارشی خود را بنویسید.

 

محیط ها 

محیط ها مانند ” development (توسعه) ” و ” production (تولید) ” یک مفهوم first – class (درجه یک ) در ASP.NET Core هستند و می توانند با استفاده از متغیرهای محیط تنظیم شوند.

 

با استفاده از ASP.NET Core MVC وب UI و API وب ایجاد کنید

  • شما می توانید برنامه های وب well-factored و قابل آزمایش ایجاد کنید که ازالگوی Model-View-Controller (MVC) پیروی می کند.
  • شما می توانید خدمات HTTP را که از چندین قالب پشتیبانی می کنند و همچنین پشتیبانی کامل از گفتگو در مورد محتوا را دارند،بسازید.
  • Razor یک زبان تولیدی برای ایجاد کردن (create) فراهم می کند.
  • تگ های help کد server-side را فعال می کند تا در ایجاد و ارائه ی عناصر HTM در پرونده های Razor مشارکت داشته باشد.
  • با پشتیبانی کامل از قالب بندی داخلی (JSON ، XML) می توانید خدمات HTTP را ایجاد کنید.
  • Bidding Model به صورت اتوماتیک داده ها را از درخواست های HTTP به پارامترهای روش عمل (action method) ترسیم می کند.
  • مدل اعتبارسنجی به طور خودکار اعتبارسنجی client-side و سرور را انجام می دهد.

 

توسعه client-side 

ASP.NET Core برای ادغام یکپارچه با انواع فریمورک های client-side مانند AngularJS ، KnockoutJS و Bootstrap طراحی شده است.

 

13ویژگی اصلی ASP.Net Core که باید بدانید 

  • پشتیبانی از کراس پلت فرم وcontainer
  • عملکرد بالا
  • ناهمگام بودن از طریق async/await
  • چارچوب های متحد MVC و Web API
  • دارای چندین محیط و حالت توسعه
  • Dependency Injection
  • WebSockets & SignalR
  • حفاظت CSRF
  • برنامه های وب “self hosted”
  • Action filters
  • دارای حافظه پنهان خروجی قابل توسعه
  • جهانی سازی و بومی سازی
  • Swagger OpenAPI

 

تفاوت های ASP.Net با ASP.Net Core ؟

ASP.Net Core یک فریمورک کراس پلتفرم و اوپن سورس می باشد که برای ساخت وتوسعه برنامه های ویندوز، مک و لینوکس است. Asp.net از طرف دیگربرای توسعه برنامه های ویندوز استفاده می شود. Asp.Net  و ASP.Net Core هردو runtime  فریمورک هستند.

شکل زیر تفاوت های این دو فریمورک را نشان می دهد:

 

ASP.Net Core

 

نتیجه گیری 

در این مقاله، ما برخی از ویژگی های اصلی ASP.Net Core را که باید از آنها آگاه باشید را بررسی کردیم. برخی جدید هستند و برخی فقط ویژگیهای کلیدی ASP.NET هستند که برای مدتی وجود داشته اند.

 

منبع : www.aspnetcore.readthedocs.io

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.
You need to agree with the terms to proceed

*

code

فهرست