در این قسمت قصد داریم به بررسی بیشتر فایلهای موجود در Root یک پروژه ASP.NET Core 1 بپردازیم. خوب در ابتدا نگاهی به فایل Project.Json خواهیم انداخت.
بسمه تعالی
ASP.NET Core 1 – قسمت دوم
در این قسمت قصد داریم به بررسی بیشتر فایلهای موجود در Root یک پروژه ASP.NET Core 1 بپردازیم. خوب در ابتدا نگاهی به فایل Project.Json خواهیم انداخت.
فایل Project.Json حاوی عمده ترین تنظیمات پروژه و در Format یک فایل Json میباشد .
اولین آیتم مهم ، Version میباشد .
"version": "1.0.0-*"
این ورژن تایین کننده ورژن پروزه ای است که در حال تولید و توسعه آن میباشیم .
یکی از بخشهای کلیدی دیکر این فایل ، بخش dependencies می باشد .اگر هر گونه Library در پروژه نیاز باشد ، این قسمت باید Update شود تا در سطح پروژه بتوان از آن Library استفاده کرد . همانطور که میدانید Nuget در .NET نقش مدیریت Dependency ها را بر عهده داشت و در این ورژن نقشی پر رنگتر هم بر عهده دارد . هر گونه افزایش یا کاهش Library در این مدل پروژه های دانت نت سبب Update شدن Project.Json خواهد شد .
خوب حالا اجازه بدهید مثلن یک MVC Dependency به این پروژه اضافه کنیم .
به سراغ فایل مورد نظر رفته و لاین زیر را در قسمت dependencies اضافه کنید .
"Microsoft.AspNet.Mvc": "6.0.0-beta5"
همین روند را میتوان با کلیک راست روی پروژه و از طریق Nuget هم انجام داد . اگر در PreRelease ها در Nuget بگردید و MVC 6 را بیابید با زدن دکمه Install خواهید دید که باز فایل Project.Json دستخوش تغییر شده و این Library به پروژه شما افزوده خواهد شد .
قسمت بعدی درون این فایل ، قسمت FrameWork می باشد . در این Section ، عملن Framework مورد استفاده تایین خواهد شد .
خوب اگر به این قسمت نگاه کنید 2 آیتم مشاهده خواهید کرد .
- "frameworks": {
-
- "dnx451": { },
-
- "dnxcore50": { }
اولی یعنی Dnx451 عملن ورژن اصلی دات نت است که بر روی سیستم شما توسط VS.NET نصب شده و در بر گیرنده همه هسته بزرگ دات نت میباشد .
DnxCore50 به معنای نسخه DotnetCore می باشد که توسط تصویر زیر میتوانید مشاهده کنید که حتی بر روی دیگر OS ها هم فابلیت نصب و استفاده دارد .
خوب حالا به سراغ قسمت Refrences در Solution Explorer برویم . آنجا هم مشاهده خواهید کرد که همین 2 آیتم مشاهده خواهند گردید .
اگر این Node را بازتر کنیم ، نقش Nuget را در Package های مختلف خواهید دید . علاوه بر این ریز Dependency ها و مازولهایی که برای Run شدن یک پروژه واقعی نیاز دارید را مشاهده خواهید کرد .
فولدر دیگری که در این دست پروژه ها قابل مشاهده است ، WWWROOT میباشد . این فولدر به WebRoot هم معروف است چرا که اگر مثلن محتوای Static داشته باشید ، باید آنرا درون این فولدر قرار دهید تا بتوان به عنوان Root پروژه از آنها استفاده کرد . در قسمتهای بعدی در این مورد به صورت عملی صحبت خواهیم کرد .
و اما فایل Startup.CS که نقشی اساسی در این مدل پروژه ها دارد . اگر با ورژنهای قبلی ASP.NET کار کرده باشید ، حتما الان دنبال Global.asxc میگردید تا با نوشتن کد درون آن به ازای هر Http Request بتوان آن کدها را Run نمود . شاید به دنبال WebConfig هم بگردیم که آن هم در این دست پروژه ها نیست . نقش هر 2 این فایلها را Startup.CS بر عهده دارد .
درون این فایل یک کلاس به نام Startup وجود دارد . درون این کلاس میتوان Configuration ها و ... را اعمال نمود . وقتی بخواهم یک پروژه واقعی را در این سلسله مقالات آغاز کنم ، شاهد تغییرات لازم در این فایل خواهید بود . فعلن فقط دو متد اصلی را ببینید
- public void ConfigureServices(IServiceCollection services)
-
- {
-
- }
-
- public void Configure(IApplicationBuilder app)
-
- {
-
- app.Run(async (context) =>
-
- {
-
- await context.Response.WriteAsync("Hello World!!!!!!!!!");
-
- });
-
- }
متد ConfigureService در عمل سبب ایجاد یک Http Processing Pipeline خواهد شد .این تنظیمات مشخص کننده چگونگی برخورد پروژه من با Http Request ها خواهد بود . الان پروزه من فقط Hello Word را نشان میدهد. اگر نوع رفتار دیگری مورد نظر باشد ، باید درون این متد کد نوشته و نوع برخورد آن با درخواستها تغییر کند . در قسمتهای بعدی مفصل در مورد این متد مجبوریم صحبت کنیم .
و اما متد ConfigureServices
این متد جهت ایجاد تنظیمات Component های پروژه وجود دارد . به عنوان مثال Dependency Injection یکی از مباحثی است باید از طریق این متد Handle شود .
خوب در بخش بعدی خواهید دید چگونه فایلهای توضیح داده شده را دستخوش تغییر قرار داده و نوع رفتار پروژه را تغییر خواهیم داد . در قسمت بعدی یک پیام درون یک Json File قرار میدهم و بعد آنرا توسط پروزه در Browser صدا خواهم زد . یعنی در عمل دیگر یک متن Hard Code شده وجود نداشته و یک نوع Request وافعی تر خواهیم داشت.
عملن از قسمت بعدی به صورت ملموس از Core 1 و خواص آن در جهت وجود یک پروژه عملی استفاده خواهیم کرد .