معرفي ASP.NET core

معرفي ASP.NET core

بسم الله الرحمن الرحیم

معرفی ASP.NET Core

در این مقاله به یکی از موضوعات مورد بحث ماکروسافت می پردازیم. ASP.NET Core  یك طراحی مجدد قابل توجه از ASP.NET است . در این عنوان از مقاله به معرفی مفاهیم جدید در ASP.NET Core و توضیح اینكه چگونه میتواند به شما در ساخت و توسعه وب اپلیكیشن های مدرن كمك كند خواهیم پرداخت. با ما همراه باشید.

ASP.NET Core

 

بسم الله الرحمن الرحیم

معرفی ASP.NET Core

موضوعاتی كه در این مقاله به آن پرداخته میشود :

ASP.NET Core  چیست؟

چرا ASP.NET Core باید ساخته شود؟

ساختار برنامه ASP.NET core

شروع به كار ASP.NET core

سرویس ها ASP.NET core

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

سرورها ASP.NET core

ریشه وب (webroot) ASP.NET core

تنظیمات ASP.NET core

محیط كاری ASP.NET core

ساخت  رابط گرافیكی و API ها با استفاده از ASP.NET mvc

توسعه سمت کلاینت ASP.NET core

گردآورندگان : Daniel Rath ,   Rick Anderson ,   Shaun Luttin

ASP.NET Core  یك باز طراحی قابل توجه از ASP.NET است . در این عنوان از مقاله به معرفی مفاهیم جدید در ASP.NET Core و توضیح اینكه چگونه میتواند به شما در ساخت و توسعه وب اپلیكیشن های مدرن كمك كند خواهیم پرداخت.

 

ASP.NET Core  چیست ؟

ASP.NET Core یك فریم ورك متن باز و چند پلتفرمی مستقل از بستر اجرا برای ساخت برنامه های مبتنی بر cloud متصل به اینترنت از قبیل وب اپلیكیشن ها ، برنامه های اینترنت اشیا IOT Apps و برنامه های موبایل است . برنامه های ASP.NET Core میتوانند بر روی هسته .net یا روی فریم ورك كامل .net اجرا شوند. ASP.NET Core به منظور محیا كردن یك چارچوب توسعه بهینه شده برای اپلیكیشن هایی كه روی فضای ابری یا روی محیط كاری كاربر (On-Premise) توسعه داده میشوند ، طراحی شده بود.

از اجزا پیمانه ای (Modular) با حداقل سربار تشكیل شده است. یعنی اینكه شما در حالی كه راه حلهای خود را میسازید، انعطاف پذیری را نیز حفظ میكنید .

شما میتوانید برنامه های ASP.NET Core خود را روی ویندوز، مك و لینوكس توسعه داده و اجرا كنید.

ASP.NET Core به صورت متن باز در Github  موجود میباشد.

چرا باید ASP.NET Core ساخت؟

اولین پیش نمایش ASP.NET 15 سال پیش تحت عنوان بخشی از چارچوب كاری .net رونمایی شد.

تا آن زماین میلیونها توسعه دهنده (برنامه ریز) ازآن برای ساخت و اجرای برنامه های تحت وب بزرگ استفاده كرده بودند و در طول سالها ما قابلیت های بسیاری را به آن اضافه كرده و كامل كرده ایم.

ASP.NET Core تعدادی تغییرات طراحی كه نتیجه آن یك فریم ورك بسیار كم حجم تر و پیمانه ای تر میباشد، دارد.

ASP.NET Core دیگر بر پایه system.web.dll نیست بلكه مبتنی بر یكسری پكیج های nugget عملیاتی است، كه به شما این امكان را میدهد كه برنامه خود را بهینه كنید تا فقط پكیج های Nuget ی كه نیاز دارید را قرار دهید.

از فواید محیط سطح برنامه كوچكتر میتوان به امنیت بیشتر، كاهش سرویس و نگهداری ، افزایش كارایی و كاهش هزینه ها در یك مدل Pay-for-what-you-use (برای آنچه استفاده میكنید، پرداخت كنید) اشاره كرد.

با ASP.NET Core شما فواید بنیادین زیر را بدست خواهید آورد .

  • يكپارچگي در ساخت واسط كاربري وب (Web UI) و API هاي وب (Web API)
  • ادغام فريم ورك هاي سمت كلاينت مدرن با جريان هاي كاري توسعه (Development Workflows)
  • يك سيستم پيكربندي مبتني بر محيط كاري و آماده براي استفاده در فضاي ابري (Cloud)
  • تزريق وابستگي داخلي (سرخود)
  • پايپلاين (Pipeline) HttpRequest سبك و پيمانه اي جديد
  • قابليت ميزباني روي IIS يا به صورت خود ميزبان در پردازش مختص شما
  • ساخته شده بر مبناي .net core كه از نسخه سازي صحيح side by side پشتيباني ميكند.
  • كلاً به عنوان بسته هاي Nuget ارائه ميشود.
  • ابراز و تجهيز جديد كه ساخت و توسعه وب مدرن را ساده ميكند.
  • ساخت و اجراي برنامه هاي كاربردي Asp.net‌ با قابليت كار بر روي چند پلتفرم ويندوز ، مك و لينوكس
  • متن باز و جامع

ساختار برنامه ASP.NET

یك برنامه ASP.NET Core یك برنامه تحت كنترل ساده است كه یك وب سرور در متد Main خود میسازد.

 



using System;
using Microsoft.AspNetCore.Hosting;

namespace aspnetCoreapp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseKestrel()
                .UseStartup()
                .Build();

            host.Run();
        }
    }
}

Main از WebhostBuilder كه از الگوی سازنده برای ساخت یك میزبان برنامه وب پیروی میكند، استفاده میكند.

سازنده، متدهایی دارد كه وب سرور را مشخص میكند(برای مثال UseKestrel و كلاس UseStartup) در مثال بالا  وب سرور kestrel استفاده شده است ولی وب سرور های دیگر نیز میتوانند مشخص شوند.

در قسمت بعد بیشتر در مورد usestartup توضیح خواهیم داد .

Webhostbuilder متد های اختیاری بسیاری را شامل UseIISIntegration برای میزبانی در IIS  و IIS Express و UseContentRoot، برای مشخص كردن ریشه مسیر محتوا ، فراهم میكند.

متدهای Build و run ، Webhost را كه برنامه را میزبانی میكند، و باعث میشود برنامه شروع به شنیدن درخواست های HTTP ورودی كند، میسازد.

 

راه اندازی (Startup) ASP.NET

متد Usestartup  در WebHostBuilder كلاس Startup ‌ را برای برنامه شما مشخص میكند.

 

 



public class Program
{
    public static void Main(string[] args)
    {
        var host = new WebHostBuilder()
            .UseKestrel()
            .UseStartup()
            .Build();

        host.Run();
    }
}


كلاس Startup جاییست كه شما پایپلاین كنترل درخواست را تعریف میكنید و جاییست كه همه سرویس هایی كه توسط برنامه مورد نیاز است ، تنظیم میشود.

كلاس Startup باید Public و شامل متدهای زیر باشد : 

 

 



public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
    }

    public void Configure(IApplicationBuilder app)
    {
    }
}


  • Configure Services ، سرويس هايي را كه توسط برنامه استفاده ميشوند (از قبيل Asp.netmvc core , Entity Framework , Identity و ...) تعريف ميكند.
  • Configure ميانه (Middleware) پايپلاين درخواست را مشخص ميكند.
  • براي جزئيات بيشتر به بخش راه اندازي برنامه رجوع كنيد.

 

 

 

سرويس ها ASP.NET core

 

يكسرويس جزئي است كه در يك برنامه براي مصارف معمول در نظر گرفته شده است.

سرويس ها از طريق تزريق وابستگي فراهم شده اند.

Asp.net core شامل يك ظرف كنترل وارونگي است (IOC) كه به طور پيشفرض تزريق وابستگي را پشتيباني ميكند. اما به سادگي ميتواند با ظرف IOC منتخب شما جايگزين شود.

به علاوه فايده كم كردن وابستگي آن DI سرويس ها را از طريق برنامه شما فراهم ميكنند.

براي مثال logging از طريق برنامه فراهم است . براي جزئيات بيشتر به بخش تزريق وابستگي رجوع كنيد.

Middleware (ميان افزار) –Middleware ها اجزايي از برنامه هستند كه در يك پايپلاين برنامه جهت كنترل درخواست ها و پاسخ ها مونتاژ شده اند.

در Asp.net core شما با استفاده از Middleware پايپلاين درخواست خود را تشكيل ميدهيد.

Asp.net core Middleware منطق غير همگام را روي يك متد HttpContext اجرا ميكند و سپس حتي در دنباله ، ميان افزار بعدي را فراخواني ميكند يا درخواست را به صورت مستقيم خاتمه ميدهد.

شما از middleware عموماً از طريق گرفتن وابستگي روي يك پكيج Nuget و فراخواني متد Usexyz مربوطه بر روي ApplicationBuilder در متد Configure استفاده ميكنيد.

Asp.net core به همراه مجموعه اي غني از Middleware ها ارائه شده است شامل : 

  • فایل های استاتیک
  • مسيريابي
  • شناسايي (Authentication)

 

شما همچنین میتوانید میان افزار اختصاصی خودتان را بنویسید.

شما میتوانید از هر میان افزار مبتنی بر OWIN با ASP.NET Core  استفاده كنید.

برای جزئیات بیشتر به OWIN (Open web interface for net) رجوع كنید.

 

سرور ها در ASP.NET core

مدل میزبانی ASP.NET Core به صورت مستقیم به درخواست ها گوش نمیدهد. بلكه بیشتر بستگی به پیاده سازی سرور HTTP برای ارسال درخواست به برنامه دارد.

درخواست ارسال شده به عنوان مجموعه ای از واسط های ویژگی كه برنامه آنها را در یك متد HttpContext مینویسد، بسته بندی میشود.

ASP.NET Core یك وب سرور چند پلتفرمی مدیریت شده است به نام Kestrel كه شما معمولا آن را پشت یك وب سرور مثل IIS و nginx اجرا میكنید.

 

ریشه محتوا )Content Root) ASP.NET core

 

ریشه محتوا مسیر پایه ای است به سمت هر محتوایی كه توسط برنامه از آن استفاده میشود.

مانند view های آن و محتویات تحت وب.

به طور پیشفرض ریشه محتوا همان مسیر پایه اجرایی است كه برنامه را میزبانی میكند. یك مسیر جایگزین میتواند با WebhostBuilder مشخص شود.

 

ریشه وب (Web Root) ASP.NET core

Web Root  برنامه ، مسیری در پروژه است برای منابع Public و Static مانند CSS ،  JS و تصاویر.

میان افزار فایل های استاتیك تنها فایلهایی از فهرست و زیرفهرست های ریشه وب به طور پیش فرض ارائه خواهند داد.

مسیر Web Root به طور پیش فرض /wwwroot است اما شما میتوانید یك مسیر دیگر را با ستفاده از WebHostbuilder مشخص كنید.

 

پیكربندی (ConfigurationASP.NET core

ASP.NET Core یك مدل پیكربندی جدید برای هندل كردن (كنترل كردن) جفت های دستوری "نام- مقدار" استفاده میكند.

 

مدل پیكربندی جدید بر اساس System.Configuration  یا Web.config نیست بلكه از یك مجموعه مرتب از تامین كنندگان پیكربندی گرفته شده است.

 

تامین كنندگان پیكربندی داخلی فایلها با فرمت های متنوعی را مانند (XML – Json – INI) و متغیر های محیطی برای فعال كردن تنظیمات مبتنی بر محیط ، پشتیبانی میكنند.

شما همچنین میتوانید تامین كننده پیكربندی مخصوص خود را بنویسید.

برای اطلاعات بیشتر به بخش پیكربندی(Configuration) مراجعه كنید.

 

محیط (Enviroments) در ASP.NET core

محیط ها مانند "محیط توسعه" و "محیط تولید" ، ایده های دست اول در ASP.NET Core هستند و میتوانند توسط متغیر های محیطی ست شوند .

برای اطلاعات بیشتر میتوانید به بخش كار با محیط های چندگانه مراجعه كنید.

 

ساخت واسط كاربری وب و API های وب با استفاده از ASP.NET Core MVC

 

  • شما ميتوانيد برنامه هاي تحت وب عملياتي  و قابل تست كه از الگوي MVC پيروي ميكند، بسازيد. MVC و Testing  را ببينيد.
  • ميتوانيد سرويس هاي HTTP كه از فرمت هاي چندگانه پشتيباني ميكند و پشتيباني كامل از مذاكرت محتوا ميكند، بسازيد .
  • رجوع كنيد به قالب بندي داده ي پاسخ
  • Razor يك زبان مولد براي ساخت ويو ها ارائه ميدهد.
  • Helper tag ها كد سمت سرور را براي شركت كردن در ساخت و پردازش المان هاي HTML از فايلهاي Razor فعال ميكنند.
  • شما ميتوانيد سرويس هاي HTTP با پشتيباني كامل از مذاكره محتوا با استفاده از قالب هاي داخلي  و سفارشي (JSON , XML) بسازيد .
  • اتصال مدل (Model Binding) به طور خودكار داده را از درخواست هاي HTTP به پارامتر هاي متد عمل (Action Method parameters) نگاشت ميكند.
  • اعتبار سنجي مدل به طور خودكار اعتبارسنجي سمت سرور و كلاينت را انجام ميدهد

 

 

توسعه سمت كلاینت ASP.NET core

 

ASP.NET Core  به منظور ادغام بدون درز با فریم ورك های سمت كلاینت متنوعی شامل AngularJS , KnockoutJS , BootStrap طراحی شده است .

بخش توسعه سمت كلاینت ASP.NET core  به زودی منتشر میگردد.

 

 

امیدواریم مطلب فوق مورد توجه شما قرار گرفته باشد.

مجموعه ABLY

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس