در این فصل با Project.Json آشنا می شوید.این فایل از فرمت نشانه‌ گذاری شیء جاوااسکریپت (JSON) برای ذخیره اطلاعات پیکربندی استفاده می‌کند و واقعاً قلب یک برنامه NET. است. بدون این فایل، نمی‌توان یک پروژه ASP.NET Core داشته باشید. در اینجا، برخی از مهم‌ ترین ویژگی‌ های این فایل را بررسی خواهیم کرد. در قسمت سمت چپ روی فایل Project.Json دابل کلیک کنید.

در حال حاضر، پیاده‌سازی کد پیش‌ فرض در فایل project.json به صورت زیر است:

{
   "dependencies": {
      "Microsoft.NETCore.App": {
         "version": "1.0.0",
         "type": "platform"
      },
      "Microsoft.AspNetCore.Diagnostics": "1.0.0",
      "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
      "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
      "Microsoft.Extensions.Logging.Console": "1.0.0"
   },
   "tools": {
      "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
   },
   "frameworks": {
      "netcoreapp1.0": {
         "imports": ["dotnet5.6", "portable-net45+win8"]
      }
   },
   "buildOptions": {
      "emitEntryPoint": true,
      "preserveCompilationContext": true
   },
   "runtimeOptions": {
      "configProperties": {
         "System.GC.Server": true
      }
   },
   "publishOptions": {
      "include": ["wwwroot", "web.config" ]
   },
   "scripts": {
      "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath%
         --framework %publish:FullTargetFramework%" ]
   }
}

همان‌طور که مشاهده می‌کنیم، اطلاعات نسخه در بالای این فایل وجود دارد. این شماره نسخه‌ای است که برنامه شما هنگام ساخت آن استفاده خواهد کرد.

نسخه‌ی این فایل 1.0.0 هست، اما بخش مهم‌ترش وابستگی‌ها (dependencies) هست.

اگه برنامه‌ی شما قراره کار مفیدی انجام بده، نیاز به کتابخانه‌ها و فریم‌ورک‌هایی داره که وظایف مختلفی مثل ذخیره و بازیابی داده از پایگاه داده یا نمایش HTML پیچیده رو انجام بدن.

در این نسخه از ASP.NET Core، مدیریت وابستگی‌ها با مدیر بسته‌ی NuGet انجام می‌شه.

NuGet چند ساله که توی دنیای .NET استفاده می‌شه، ولی الان روش اصلی مدیریت وابستگی‌ها همینه. یعنی کتابخانه‌ها و فریم‌ورک‌هایی که نیاز دارید، به شکل بسته‌های NuGet ارائه می‌شن.

تمام بسته‌های NuGet که برنامه‌ی شما بهشون نیاز داره، توی فایل project.json ذخیره می‌شن.

در این فایل چند وابستگی (dependency) داریم، مثل:

"Microsoft.AspNetCore.Diagnostics": "1.0.0", 
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0", 
"Microsoft.Extensions.Logging.Console": "1.0.0

می توان دید که در این فایل برخی وابستگی ها وجود دارد و احتمالاً وابستگی‌های دقیق تا زمان انتشار نهایی ASP.NET تغییر خواهند کرد.

زمانی که میخواهید یک وابستگی جدید مثل چارچوب ASP.NET MVC اضافه کنید، به سادگی میتوان در این فایل project.json تایپ یا با کمک IntelliSense  بهره‌مند خواهید شد که شامل نه تنها نام بسته، بلکه شماره نسخه‌ها نیز می‌شود، همان‌طور که در تصویر زیر نشان داده شده است.

همچنین می‌توان از رابط کاربری (UI) استفاده کنید. با کلیک راست بر روی References در Solution Explorer و سپس انتخاب گزینه Manage NuGet Packages، می‌توان بسته‌های نصب‌ شده فعلی را مشاهده کنید.

این بسته‌ها همان بسته‌هایی هستند که در فایل project.json شما وجود دارند و همچنین می‌توان به بخش Browser بروید و بسته‌ های دیگری را اضافه کنید، از جمله بسته‌ های پیش‌ انتشار. به عنوان مثال، می‌توان چارچوب MVC را به این پروژه نصب کنید.

اگر این بسته را در حال حاضر با استفاده از دکمه Install نصب کنید، این بسته در فایل project.json ذخیره خواهد شد.

بخش frameworks نیز یکی دیگر از بخش‌های مهم project.jsonاست. این بخش به ASP.NET می‌گوید که کدام یک از چارچوب‌های NET. را برنامه شما می‌توان استفاده کند.

frameworks": { 
   "netcoreapp1.0": { 
      "imports": [ 
         "dotnet5.6", 
         "portable-net45+win8" 
      ] 
   } 
},

در این مورد، همانطور که میبنید netcoreapp1.0 ارچوب استفاده‌ شده در پروژه است.  همچنین می‌توان چارچوب کامل NET. را که هنگام نصب Visual Studio نصب می‌شود، شامل کنید.

این همان چارچوب NET. است که در بسیاری از نسخه‌های سیستم‌عامل ویندوز گنجانده شده است.

این چارچوب NET. است که ۱۵ سال است وجود دارد و شامل چارچوب‌هایی است که همه چیز را از برنامه‌ نویسی وب تا برنامه‌ نویسی دسکتاپ انجام می‌دهد.

این یک چارچوب بزرگ است که فقط بر روی ویندوز کار می‌کند.

netcoreapp1.0 چارچوب NET Core. است. این یک چارچوب چند سکویی است و می‌تواند بر روی پلتفرم‌های مختلف، نه تنها ویندوز بلکه همچنین OS X و لینوکس کار کند.

این چارچوب ویژگی‌های کمتری نسبت به چارچوب کامل NET. دارد، اما تمام ویژگی‌هایی که برای توسعه وب ASP.NET Core نیاز داریم را داراست.

توسعه دهندگان
آناهیتا ملکی