安裝.NET Core:html
.NET Core 包括.NET Core Runtime 和 .NET Core SDK:git
下載地址請到dotnet官方網站dot.net (dot net),很是的好記,這個網站也是你入門學.NET Core的入口網站,記住這是個必需要去網站。.NET Core 下載的具體地址:https://www.microsoft.com/net/download#core,這裏還列出了注意事項:github
a.雖然.NET Core Runtime 和基礎庫已經1.0 RTM,可是開發工具鏈(.NET Core CLI,Visual studio 和Visual Studio Code) 仍是預覽版,具體能夠參看https://blogs.msdn.microsoft.com/dotnet/2016/05/06/net-core-rc2-improvements-schedule-and-roadmap/web
b.在Windows Servers上部署應用 ,能夠單獨安裝ASP.NET Core Module for IIS 而不須要安裝.NET Core runtime,能夠經過命令行DotNetCore.1.0.0-WindowsHosting.exe OPT_INSTALL_REDIST=0json
c.Mac 系統的最低要求是macOS 10.11 (El Capitan)後端
d..NET Core 在Red Hat 系列服務器上支持的要 RHEL 7 Server,包括CentOS 7 以上,具體參看 https://access.redhat.com/documentation/en/dot-net-core/api
e..NET Core 在Ubuntu上面的支持 須要 Ubuntu 14.04 LTS 和 Ubuntu 16.04 LTS服務器
f.若是以前安裝了.NET Core的beta,rc1,rc2的版本,在安裝以前須要把他們卸載掉,具體參見 stack overflow 的文章。網絡
.NET Core 的具體安裝方法能夠參看文章 .Net Core 系列:一、環境搭建。架構
還有Core的CLI命令請參照張大大的博客:.NET Core 環境搭建和命令行CLI入門
上面一段也是摘自張大大的博客,總結的比我好太多了。
ASP.NET Core 是一個全新的開源、跨平臺框架,能夠用它來構建基於網絡鏈接的現代雲應用程序,好比:Web 應用,IoT(Internet Of Things,物聯網)應用和移動後端等。ASP.NET Core能夠運行在 .NET Core 或完整的 .NET Framework 之上,其架構爲發佈到雲端或本地運行的應用提供了一個最佳的開發框架,由開銷很小的模塊化組件構成,這就保持了你構造解決方案的靈活性。你能夠跨平臺地在Windows、Mac和Linux等設備上開發和運行你的 ASP.NET Core 應用。ASP.NET Core 的源代碼已經在 GitHub 上託管。
1) 在統一的方案中構建Web UI 和 Web API
2) 集成現代客戶端開發框架和工做流
3) 以雲就緒環境爲基礎的配置系統
4) 內置依賴注入
5) 全新、輕量級、模塊化的HTTP請求管道
6) 在IIS或在本身託管進程中託管應用程序的能力。
7) 以.NET Core爲基礎,支持並行應用版本控制。
8) 徹底以 NuGet 程序包方式分發
9) 一組全新的工具,簡化現代Web 開發
10) 在Windows、Mac和Linux等設備上開發和運行 ASP.NET應用
11) 開放源代碼和社區聚焦
如上圖:一個ASP.NET Core應用其實就是一個簡單的控制檯應用程序,只是它在Main方法中建立了一個 Web 服務器而已,
using System.IO; using Microsoft.AspNetCore.Hosting; namespace ProgrammersLiveShow { /// <summary> /// 系統初始化信息 /// </summary> /// 修改記錄: public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .Build(); host.Run(); } } }
Main 使用一個遵循生成器模式的 WebHostBuilder來建立Web應用程序宿主。生成器具備定義web服務器(UseKestrel)和指定啓動類(UseStartup<Startup>())的方法。 上述示例使用的是 Kestrel Web 服務器,但你能夠指定其餘類型的Web 服務器。在下一節中將展現更多 UseStartup 相關的信息。WebHostBuilder 提供了大量的選項方法,包括指定宿主爲 IIS 和 IIS Express 服務器的 UseIISIntegration,指定內容根目錄的 UseContentRoot等。其中Build 和Run方法用於構建 IWebHost的實例,它將被用來掛載應用並開始監聽到來的HTTP請求。
Startup類:
WebHostBuilder上的Startup方法用來指定你的應用程序的啓動類。
該類是定義請求處理管道的地方,也是配置應用須要的服務的地方。Startup類必須是public的,並且必須包含ConfigureServices(IServiceCollection services)和Configure(IApplicationBuilder app)方法。
a) ConfigureServices 定義應用程序中用到的服務(好比:ASP.NET MVC Core 框架,Entity Framework Core,Identity等等)
b) Configure 定義請求處理管道中的中間件
Startup 類的 執行順序:構造 -> configureServices->configure
。
詳情請參考:Startup 和 Middleware(中間件),總結的很不錯。
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": { "dependencies": { "Pls.Service": { "target": "project" } }, "imports": [ "dotnet5.6", "portable-net45+win8" ] } }, "buildOptions": { "emitEntryPoint": true, "preserveCompilationContext": true }, "runtimeOptions": { "configProperties": { "System.GC.Server": true } }, "publishOptions": { "include": [ "wwwroot", "Views", "appsettings.json", "web.config", "Areas", "nlog.config" ], "exclude": [ "bin" ] } }
具體的解釋請看 project.json 引用(中文版的適合英語很差的人翻翻看)。我挑幾個上面用到的解釋解釋:
dependencies:依賴項,定義項目的包依賴項的一個對象,此對象的每一個鍵是包名稱,每一個值包含版本信息。有關詳細信息,請參閱 NuGet 文檔站點上的 依賴項解析文章,類型是Object。
tools:定義用做當前項目工具(而不是用做引用)的包依賴項的一個對象。 此處定義的包可用於生成過程當中運行的腳本,但不可訪問項目自身的代碼,類型是Object。
frameworks:框架,指定此項目支持的框架,如 .NET Framework 或通用 Windows 平臺 (UWP)。 必須是有效的目標框架名字對象 (TFM)。 每一個值都是一個對象,能夠包含特定於此框架的信息以及如下各部分中的屬性,類型是Object
target:限制依賴項以僅匹配 或
projectpackage,類型是String
buildOptions:其屬性控制編譯各個方面的一個對象。 下面列出了有效屬性。 也能夠按框架部分中所述目標框架進行指定,類型是Object。
runtimeOptions:指定在初始化期間向運行時提供的參數,類型是Object。
configProperties:包含用於配置運行時和框架的配置屬性,類型是Object。
System.GC.Server:若要啓用服務器垃圾回收,則爲 ;不然爲 。 默認值爲 。truefalsefalse
emitEntryPoint:若要建立可執行文件,則爲 ;不然爲 。 默認值爲 。truefalsefalse
preserveCompilationContext:若要保留引用程序集和其餘上下文數據以實現運行時編譯,則爲 ;不然爲 。 默認值爲 。truefalsefalse
publishOptions:包含編譯配置的屬性的一個對象,類型是 Object。
include:包含文件以及文件夾,類型是String 或帶有通配模式的 String[]。
exclude:指定要從生成中排除的文件,類型是String 或帶有通配模式的 String[]。
初心商城:初心商城 MVC/.NET羣:159227188