اگر به تاریخچه ASP.NET نگاه کنیم ، خواهیم دید که عمر این محصول ماکروسافت کم هم نیست . حدود 14 سال است که این محصول سرپاست و در حال سرویس دهی به برنامه نویسان حوزه وب می باشد .از روز شروع و تولید این محصول زمان زیادی گذشته و ماکروسافت روزبه روز سعی در بهبود آن داشته ، ولی آنچه تحت عنوان ASP.NET MVC Core 1.0 به بازار آمده ، یک انقلاب واقعی است .
شاید این فرضیه وجود داشته باشد که ASP.NET MVC Core 1.0 عملن همان ASP.NET 4.6 است دیگر، ولی باید با جرات و جدیت اعلام کرد که "خیر" . ماکروسافت این نسخه را جدی از اول نوشته است . این نسخه شاید قابلیتهای یکسانی با نسخه 4.6 داشته باشد ، ولی واقعا از صفر نوشته شده و به صورت محسوسی سبکتر و ماژولارتر است .
ماکروسافت نگران از دست دادن برنامه نویسانش بود . بعد از نابودی Silverlight و عدم توان رقابت با IOS وAndroid ، دیگر چه چیز برای ماکروسافت میماند ؟. در بستر موبایل که برنامه نویسی Windows Mobile با 2 رقیب آن اصلا قابل مقایسه نیست و ماکروسافت شکست را پذیرفته است . تنها جایی که امکان رقابت باNode, Ruby, Python, Java همین بستر وب است و بس. سیستمهای تحت ویندوز یا همان Windows Application ها را که باید مرده به حساب آورد پس تنها صحنه رقابت و جنگ برای ماکروسافت همین بستر وب است . مسئله بعدی Startup ها هستند . آنها به بسترهای Open Source و ارزان نیاز دارند . ماکروسافت با وضعیت قبلی ASP.NET ، اصلا مورد توجه Startup ها قرار نمی گرفت و این بسیار دردناک بود .
حال باید دید چرا این تغییرات می تواند ASP.NET را دوباره به مدار باز گرداند .
با این 4 ویژگی ASP.NET با دیگر محیطها و زبانهای توسعه وب در یک سطح خواهد بود ، مضاعف بر اینکه زبان قدرتمند و زیبای C#.NET همچنان هسته اصلی توسعه باقی خواهد ماند و این یعنی یک برتری بسیار بزرگ نسبت به دیگر زبانها !
جواب را کسی نمی داند ، ولی بر اساس مشاهدات ، باید آنرا هم مرده فرض کنید . روی اسب مرده شرط بندی نکنید و Core 1.0 را برنده بدانید .مسلما ورژن های پایین تر همچنان کار خواهند کرد چنان که ASP Classic هم هنوز بر روی IIS قابل اجراست ، ولی از لحاظ بازار کار ، پشتیبانی و به روز بودن محصول باید Core 1.0 را به عنوان امید اول این جایگاه در نظر بگیریم .
آنچه در حال حاضر از دست من و شما بر می آید این است که آرزو کنیم ماکروسافت خسته نشود و دوباره یک محصول نیمه کاره و دارای خطاهای فاحش به بازار عرضه نکند . باید منتظر بود و دید آیا ماکروسافت این بار محصولی که بتوان به آن افتخار کرد را ارائه می کند یا نه .
میلیون ها برنامه نویس از ASP.NET برای برنامه های تحت وب استفاده کرده اند.
ASP.NET MVC Core در واقع همان ASP.NET می باشد که دوباره طراحی شده و با تغییرات معماری منجر به modular framework شده است.
برای نصب ویژوال استودیو 2017 گزینه های زیر را انتخاب می کنیم :
از منو FileNewProject
بعد از باز شدن کامل پنجره New Project در پنل سمت چپ گزینه Net Core را انتخاب می کنیم
در پنل وسط تب ASP.NET MVC Core Web Application (.NET Core) انتخاب می کنیم
نام پروژه را MvcMovie می گذاریم .
حتما نام پروژه را MvcMovie بگذارید تا namespace ها یکسان باشد و در صورت نیاز با کپی کردن کدها پروژه را بتوانید پیش ببرید.
بعد از باز شدن پنچره New ASP.NET MVC Core Web Application (.NET Core) - MvcMovie
گزینه Web Application را انتخاب کنید و حالت پیش فرض No Authentication باشد.
ویژوال استودیو از یک قالب پیش فرض برای پروژه های MVC استفاده می کند.
شما با وارد کردن یک نام پروژه و انتخاب چند گزینه یک برنامه کاری واقعی دارید.
با استفاده از کلید F5 یا Ctrl+F5 می توانید پروژه ساخته شده را اجرا کنید.
Ctrl+F5 (non-debug mode)
F5 (debug mode)
با استفاده از کلید Ctrl+F5 می توانید بدون دیباگ کردن پروژه اجرا کرده و با تغییر در کد ها ،بدون نیاز به اجرا میتوانید با رفرش کردن مروگر تغییرات را ببینید.
قالب پیش فرض به شما لینک های Home,Contact,About را می دهد
Model-View-Controller (MVC) الگوی معماری این برنامه را به سه قسمت اصلی تقسیم می کند.
الگوی MVC به ما کمک میکند تا برنامه هایمان را قابل تست و راحت تر از برنامه های یکپارچه سنتی به روز کنیم
در یک برنامه MVC نمایش(VIew) ها فقط اطلاعات را نمایش می دهند اما کنترلر(controller ) در تعامل با کاربر می باشد و به ورودی های کاربر واکنش مناسب می دهد
در پنجره Solution Explorer بر روی فولدر Controller راست کلیک کرده و AddNew Item را انتخاب می کنیم
در پنل سمت چپ گزینه Web را انتخاب کرده و در پنل وسط گزینه MVC Controller Class را انتخاب می کنیم و نامش را HelloWorldController می گذاریم.
می توانید کدهای زیر را کپی کنید
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
using Microsoft.AspNetCore.Mvc; using System.Text.Encodings.Web; namespace MvcMovie.Controllers { public class HelloWorldController : Controller { // // GET: /HelloWorld/ public string Index() { return "This is my default action..." ; } // // GET: /HelloWorld/Welcome/ public string Welcome() { return "This is the Welcome action method..." ; } } } |
هر متد (public) در کنترلر (controller ) را می توان به عنوان (HTTP endpoint)خواند.در مثال بالا هر دو متد یک رشته(string) بر می گردانند.HTTP endpoint یک URL قابل جستجو در برنامه وب است مانند: http://localhost:1234/HelloWorld و از پروتکل HTTP استفاده می کند.هر دو متد ما با استفاده از HTTP GET فراخوانی شده اند.
برنامه را با استفاده از Ctrl+F5 (non-debug mode) اجرا می کنیم و در آخر مسیر URL کلمه HelloWorld را اضافه می کنیم.
متد Index یک رشته(string) بر می گرداند.
MVC کنترلر را فراخوانی می کند (به همراه اکشن مورد نظر) بسته به نوع ورودی URL.
حالت پیش فرض URL routing logic که توسط MVC استفاده می شود یک فرمت به شکل زیر است:
1
2
3
4
5
6
|
app.UseMvc(routes => { routes.MapRoute( name: "default" , template: "{controller=Home}/{action=Index}/{id?}" ); }); |
1
2
3
4
5
6
|
// GET: /HelloWorld/Welcome/ // Requires using System.Text.Encodings.Web; public string Welcome(string name, int numTimes = 1) { return HtmlEncoder.Default.Encode($ "Hello {name}, NumTimes is: {numTimes}" ); } |
1
2
3
4
|
public string Welcome(string name, int ID = 1) { return HtmlEncoder.Default.Encode($ "Hello {name}, ID: {ID}" ); } |
1
2
3
4
5
6
|
app.UseMvc(routes => { routes.MapRoute( name: "default" , template: "{controller=Home}/{action=Index}/{id?}" ); }); |
تعداد بازدید: 20 ساعت: 12:01:14
آدرس ایمیل:
info@kermanshah.ir