معرفی ASP.NET5

دوشنبه 2 شهریور 1394

در این مقاله قصد داریم به معرفی مفاهیم جدید درASP.NET5 بپردازیم و همچنین توضیح می دهیم که چگونه به توسعه برنامه های کاربردی وب کمک می کند

معرفی ASP.NET5

ASP.NET5 چیست؟

ASP.NET5 یک فریم ورک Open-Source و Cross-platform ( روی سیستم عامل های مختلف میزبانی می شود) برای ایجاد برنامه های مدرن وب مبتنی بر ابر با استفاده ازNET. می باشد.

آن را دوباره و از ابتدا ایجاد کرده اند تا یک فریم ورک توسعه بهینه سازی برای برنامه هایی که  روی ابر مستقر می شوند یا روی سرورهای فیزیکی اجرا می شوند، داشته باشیم. ASP.NET5 شامل کامپوننت های modular با حداقل سربار می باشد. بنابراین در حین ساخت solutionهای برنامه خود می توانیم انعطاف پذیری را حفظ کنیم. برنامه های کاربردی ASP.NET5 خود را می توانیم cross-platform برروی سیستم عامل های ویندوز، مک، لینوکس توسعه داده و اجرا کنیم.

چرا ASP.NET5 ساخته شده است:

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

با ASP.NET5 مقداری تغییرات در معماری آن انجام شده است که هسته فریم ورک وب را کم حجم و کوچکتر و بیشتر modular نموده است.

ASP.NET5 دیگر بر اساس System.Web.dll نیست در عوض بر اساس یک مجموعه granular و فاکتور های خوب پکیج های NuGet هستند که به ما اجازه می دهند  تا بر اساس نیاز خود برنامه را بهینه کنیم.

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

ASP.NET5 متناسب با نیازهای برنامه های کاربردی وب مدرن ساخته شده است و شامل 

گزارش یکپارچه برای ساختن Web Ui و web Aps که با فریم ورک های سمت کلاینت و workflows توسعه ادغام شده اند.

ASP.NET5، همچنین با معرفی تنظیمات مبتنی بر محیط و فراهم کردن پشتیبانی پیش فرض از dependency injection به نحوی طراحی شده است که cloud-ready باشد.

ASP.NET5، برای گسترده تر کردن طیف مخاطبان خود از محیط توسعه cross-platform Windows, Mac، ،Linux  پشتیبانی می کند. ASP.Net 5 به طورکلی OpenSource بوده و از همه انجمن ها دعوت به همکاری و سهیم شدن کرده است.

ASP.NET5 با یک سیستم پروژه جدید ویژوال استودیو می اید که همچنین رابط Command Line

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

به طور خلاصه با ASP.NET5 ارتقاهای بنیادی زیر به دست می آید:

1. معماری جدید، کم حجم و ماژولار HTTP Request

2. امکان میزبانی بر روی IIS یا self-host بر روی فرایند خود

3. کتابخانه ها همگی از طریق NuGet packages در دسترس می باشند

4. پشتیبانی یکپارچه از ایجاد و استفاده از NuGet packages

5. یک web stack واحد برای Web UI و Web API

6. تنظیمات Cloud-Ready مبتنی بر محیط

7. پشتیبانی پیش فرض از dependency injection

8. ابزارهای جدید که توسعه وب به شکل مدرن را ساده تر کرده است.

9. ایجاد و اجرا بر روی پلت فرم های مختلف ویندوز، مک و لینوکس

10. openSource بودن و تمرکز بر روی انجمن ها

ساختمان نرم افزارASP.NET 5

نرم افزارهای ASP.NET 5 با استفاده ازمحیط توسعه جدید NET. به نام DNX ساخته واجرا می شود. هر پروژه 5 ASP.NET یک پروژه DNX می باشد. ASP.NET 5 از طریق بسته های نرم افزاری میزبانی با DNX ادغام می شود.

نرم افزار5 ASP.net با استفاده از کلاس public Startup تعریف می شود.

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

     public void Configure(IApplicationBuilder app)
     {
     }
}

متد configureService سرویس هایی را که با برنامه ما کار می کنند، تعریف می کند و متد configure مشخص می کند که چه میان افزاری معماری درخواست ما را می سازد.

سرویس ها:

سرویس کامپوننتی است که برای مصارف معمولی در یک برنامه استفاده می شود. سرویس ها از طریق dependency injection در دسترس قرار می گیرند. ASP.NET 5 شامل یک نگه دارنده پیش فرض مبدل کنترل (inversion of control) و یا به اختصار (IoC) می باشد که به طور پیش فرض از  constructor injection پشتیبانی می کند، اما به سادگی می تواند با نگه دارنده IoC دلخواه شما جایگزین شود.

سرویس ها در ASP.NET 5 به سه صورت می باشد: singleton، scoped و transient.

سرویس  transient، هر زمان که نگه دارنده درخواست کند ایجاد خواهد شد. سرویس scoped فقط زمانی ایجاد می شود که قبلا در scope جاری ایجاد نشده باشد. برای web application، نگه دارنده scope برای هر درخواست ایجاد می شود، بنابراین می توانید scoped service را در هر درخواست در نظر بگیرید. سرویس singleton تنها یکبار ایجاد می شود.

میان افزار:

در ASP.NET 5، ما request pipeline خود را با استفاده از میان افزار (middleware) می نویسیم. میان افزار ASP.NET 5 یک منطقی را به صورت آسنکرون روی HttpContext اجرا می کند و سپس به طور اختیاری میان افزار بعدی را invoke می کند و یا به طور مستقیم درخواست را خاتمه می دهد. عموما برای استفاده از میان افزار ها، extention method مربوط به آنها را روی ApplicationBuilder که در متد configure قرار دارد invoke می کنیم.

ASP.NET 5 به طور پیش فرض با مجموعه قدرتمندی از میان افزارها ارائه می شود:

- کار با فایل های استاتیک

- روتینگ(Routing)

- تشخیص(Diagnostics)

- احراز هویت (Authentication)

همچنین می توانید میان افزار سفارشی خود را ایجاد نمایید. حتی می توانید از هریک از میان افزارهای مبتنی بر OWIN در کنار ASP.NET 5 استفاده کنید.

سرورها:

مدل ASP.NET Application Hosting به طور مستقیم درخواست ها را دریافت نمی کند و به جای آن به یک پیاده سازی HTTP Server وابسته است.

ASP.NET 5 برای اجرا روی IIS و یا self-hosting بر روی فرایند خود، از پشتیبانی سرور بهره می گیرند. در ویندوز می توانید برنامه خود را با استفاده از WebListener Server که مبتنی بر HTTP.sys است، خارج از IIS میزبانی کنید. همچنین می توانید با استفاده از وب سرور kesterl که به صورت cross-platform می باشد، برنامه خود را در محیطی غیر ویندوزی میزبانی نمایید.

web root:

web root برنامه شما، مکان root ای است که در پروژه شما درخواست های HTTP رسیده مدیریت می شوند. Web root یک برنامه ASP.NET 5 با استفاده از property به نام web root در فایل json پروژه شما پیکربندی می شود.

پیکربندی:

ASP.NET 5، از یک مدل پیکربندی جدید برای مدیریت جفت مقدار-کلیدهای ساده استفاده می کند که براساس System.Confiquration و web.config نمی باشد. این مدل تنظیمات جدید، از مجموعه مرتب شده فراهم کنندگان پیکربندی انتخاب شده اند. ارائه دهندگان پیکربندی پیش فرض از فرمت های مختلف فایل مانند XML، JSON و INI و همچنین متغیرهای محلی برای پیکربندی و تنظیمات مبتنی بر محیط پشتیبانی می کنند. محیط های توسعه در ASP.NET 5 مانند Production و Developement مفاهیم مهمی هستند که می توان به وسیله متغیرهای محلی آنها را تنظیم کرد:

// Setup configuration sources.
var configuration = new Configuration()
    .AddJsonFile("config.json")
    .AddJsonFile($"config.{env.EnvironmentName}.json", optional: true);

if (env.IsEnvironment("Development"))
{
    // This reads the configuration keys from the secret store.
    // For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
    configuration.AddUserSecrets();
}
configuration.AddEnvironmentVariables();
Configuration = configuration;

ASP.NET 5 برای ادغام با انواع فریم ورک های سمت کلاینت مانند AngularJS، KnockoutJS و Bootstrap طراحی شده است.

 

 

 

 

 

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

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

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید