官網:https://dotnet.github.io/
linux
Net Core Api:nginx
https://docs.microsoft.com/en-us/dotnet/api/?view=netcore-1.1git
https://docs.microsoft.com/en-us/aspnet/core/api/
github
ASP.NET Core 是一個跨平臺的高性能開源框架。具備以下優勢:docker
ASP.NET Core 徹底做爲 NuGet 包的一部分提供。 藉助 NuGet 包,能夠將應用優化爲只包含必需的依賴項。 較小的應用圖面區域的優點包括:提高安全性、減小維護和提升性能。數據庫
NetCore是一個開源的模塊化的Framework,不論是Web或移動設備都在同一個Framework下運行。apache
並且NetCore也能夠在不一樣的操做系統上運行,包括Windows、Linux、MACOS。實現了跨平臺。npm
NetCore在發佈程序時不用事先安裝NetFramework而是經過Nuget下載。避免下載安裝NetFramework編程
如上圖所示,NetCore和NetFramework都是Net Standard Library的實現,一種是跨平臺,一種是Windows下特有api
Net Standard Library是跨操做系統的關鍵所在,定義了一組接口,每一個操做系統都有各自的實現。
Net Core經過nuget能夠動態下載當前操做系統的實現,從而實現跨操做系統。
Net Core依賴於Nuget,容許本地application在部署時動態下載,比Net Framework更簡單快速輕便
Net Core的系統構成,最上層是應用層,用於UI開發。
CoreFX是公共庫,實現了Net Standard Library。包括了經常使用的系統級操做。
Net Core包含兩種運行時(Core CLR、Core RT),
CoreCLR是一種基於即時編譯程序的運行時。使用跨平臺開源的編譯器RyuJIT,
Core RT是使用提早編譯器(AOT)的運行時。既可使用RyuJIT來實現AOT編程也可使用其餘編譯器。
用於將C#或VB代碼編譯爲程序集(assembly),編譯過程是一個管道時的處理過程一共包含4個步驟
1. Parser解析:根據語法對源代碼進行解析
2. Declaration聲明:爲代碼生成元數據,元數據是一個數據表的集合,描述了數據類型和成員
3. Bind綁定:將生成的IL代碼與描述它的元數據綁定在一塊兒,生成託管模塊
4. Emit生成:將一個或多個託管模塊合併生成程序集
RyuiJIT負責在程序運行中須要執行某一個方法,須要將已經編譯好的IL轉換成本機的機器碼。
新一代的JIT編譯器,第一次實現了AMD64的架構。
.Net Core是ASP.NET的一個重要的從新設計。
.Net Core是一個新的開源和跨平臺框架,用於構建現代基於雲的互聯網鏈接的應用程序。
.Net Core應用程序能夠在Net Core或完整的Net Framework上運行。
能夠在Windows、Mac、Linux上跨平臺開發和運行ASP.NET Core應用程序。在Github上開源
ASP.NET Core徹底做爲nuget的一部分,藉助nuget包,能夠將應用優化爲只包含必須的依賴項。
ASP.NET Core 與經常使用的客戶端框架和庫(包括:Angular、React、BootStrap)無縫集成。
ASP.NET Core由Net Standard庫組成。面向Net Core有如下幾個優點
使用dotnet命令,能夠建立Net Core項目
dotnet new : 直接建立一個 Hello World項目(控制檯)
dotnet new -t:能夠指定生成項目,Console,Web,Lib,xunittest(例如:dotnet new -t Web)
dotnet restore:還原項目依賴包
dotnet run:執行項目
dotnet ef : 須要添加 Microsoft.EntityFrameworkCore.Tools.DotNet 只能修改csproj文件
<ItemGroup> <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" /> </ItemGroup>
dotnet ef -h:幫助說明
dotnet ef migrations add initial:執行遷移
dotnet ef database update:更新代碼到數據庫
Startup 提供了應用程序的入口,而且每一個應用程序都存在,充當應用程序的啓動點。NetCore會在主程序集中搜索名Startup類。
使用Hosting:Application能夠配置鍵。若是類的命名符合Startup,則會加載它。多個同名類,會根據命名空間加載。
選擇其中的一個,匹配項目的根命名空間優先,不然按照字母排列中的命名空間的第一個類。
Configure方法用於指定如何相應每個HTTP請求。更加複雜的管道配置,能夠封裝 中間件,並擴展到IApplicationBuilder上。
方法必須接受一個IApplicationBuilder參數,能夠指定一些額外的服務,IHostingEnvironment、ILoggerFactory。
這些服務會被注入進來
ConfigureServices方法
用來配置用於應用程序內的服務。 經過參數獲取一個IServiceCollection實例並可選的返回IServiceProvider。
ConfigureServices須要在Configure方法以前被調用。由於MVC的某些功能須要從ConfigureServices中請求某些服務。
而這些服務須要在接入請求管道以前先被加入CongureServices中。
IServiceCollection中使用擴展方法來包裝含有大量配置細節的ConfigureServices。
可以使用 EF、Identity、MVC。經過依賴注入能夠將服務加入到服務容器中,使其在容器中可使用。
在這裏也可使用默認的依賴注入
services.AddSingleton<ITodoRepository,TodoRepository>();
中間件是用於組成應用程序管道來處理請求和響應的組件。
管道內的每一個組件均可以選擇是否將請求交給下一個組件,並在管道中調用下一個組件以前和以後執行某些操做。
請求委託被用來創建請求管道,請求委託處理每個HTTP請求。
經過IApplicationBuilder類型的Run、Map、Use擴展方法來配置,並在Setup類中傳給Configure方法。
位於請求管道內的中間件組件負責調用管道中下一個組件,或適時短路調用鏈。
¥
參考文獻:
npm和bower .net Core爲什麼改變 .net core系列文章
若是咱們引用jQuery或者Bootstrap,會提示讓咱們使用Bower,那麼介紹一下Bower的概念
Npm和Bower二者都是包管理器,是.Net Core新出的特性。
佔位符