0 Asp.Net Core 項目實戰之權限管理系統(0) 無中生有
1 Asp.Net Core 項目實戰之權限管理系統(1) 使用AdminLTE搭建前端
2 Asp.Net Core 項目實戰之權限管理系統(2) 功能及實體設計
3 Asp.Net Core 項目實戰之權限管理系統(3) 通過EntityFramework Core使用PostgreSQL
4 Asp.Net Core 項目實戰之權限管理系統(4) 依賴注入、倉儲、服務的多項目分層實現
5 Asp.Net Core 項目實戰之權限管理系統(5) 用戶登錄
6 Asp.Net Core 項目實戰之權限管理系統(6) 功能管理
7 Asp.Net Core 項目實戰之權限管理系統(7) 組織機構、角色、用戶權限
8 Asp.Net Core 項目實戰之權限管理系統(8) 功能菜單的動態加載
0 前言
http://www.cnblogs.com/fonour/p/5848933.html
學習的最好方法就是動手去做,這里以開發一個普通的權限管理系統的方式來從零體驗和學習Asp.net Core。項目的整體規划大致如下:
技術路線
- Asp.net Core Mvc
- EntityFrameworkCore
- Bootstrap AdminLTE
- PostgreSQL
實現功能
- 組織機構管理
- 角色管理
- 用戶管理
- 功能管理
- 權限管理
1 開發環境准備
1、安裝Visual Studio 2015,我這里安裝的是專業版。
2、安裝.NET Core SDK相關
需要安裝Visual Studio 2015 update3和NET Core 1.0.0 - VS 2015 Tooling
2 新建項目
打開Visual Studio 2015,選擇項目保存路徑,輸入項目名稱及解決方案名稱,新建一個Asp.Net Core Web Application (.NET Core)項目。
為了更好的理解Asp.net Core的一些東西,我這里選擇了空模板
創建好的項目是長這個樣子的
解決方案中相關文件大致說明
- wwwroot 存放js,css,images等靜態資源
- Program.cs 應用程序入口
- Startup.cs 應用程序相關啟動項配置,包含ConfigureServices和Configure兩個方法,前者負責服務的配置,后者負責http請求管道的配置。
- project.json 項目的基礎配置文件
刪除示例頁面Project_Readme.html,此時我們直接F5運行程序,界面輸出HelloWorld,這是因為Stratup.cs中
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.Run(async (context) => { await context.Response.WriteAsync("Hello World!"); }); }
3 Mvc基本應用
3.0 添加MVC依賴項引用
添加MVC引用有兩種方法。
1 通過project.json
打開project.json文件,在dependencies部門增加Microsoft.AspNetCore.Mvc的引用,當你輸入時,Visual Studio會有自動的提示,非常貼心方便。
"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",
"Microsoft.AspNetCore.Mvc": "1.0.0"
},
2 通過NuGet
通過NuGet管理器搜索Microsoft.AspNetCore.Mvc添加引用,或直接在程序包管理器控制台輸入命令Install-Package Microsoft.AspNetCore.Mvc即可完成Mvc引用的添加。
3.1 添加控制器
右鍵添加項目文件夾,命名為Controllers,右鍵Controllers文件夾,添加一個名字為HomeController的控制器。
3.2 添加視圖
右鍵項目添加Views文件夾,右鍵Views文件夾添加一個Home文件夾,與HomeController控制器相對應,在Home文件夾下新建一個名稱為Index的視圖文件。
將Index.cshtml的內容修改為
<h1>Hello,Asp.Net Core MVC</h1>
3.3 添加MVC服務及Http請求管道處理
1 添加MVC服務
修改Startup.cs的ConfigureServices方法如下
public void ConfigureServices(IServiceCollection services) { services.AddMvc(); }
2 添加Http請求管道處理
修改Startup.cs的Configure方法如下
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseMvcWithDefaultRoute(); //app.Run(async (context) => //{ // await context.Response.WriteAsync("Hello World!"); //}); }
F5運行程序,可以看到已經可以按照mvc的默認路由機制解析了。
4 Asp.Net Core默認的兩種寄宿方式
Asp.Net Core應用程序默認提供IIS服務和Kestrel服務兩種寄宿方式,意味着Asp.Net Core應用程序可以脫離IIS運行,這也是跨平台的基礎。在Program.cs文件中可以看到這種服務的添加。
public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .Build(); host.Run(); }
Visual Studio的默認啟動選項為IIS Express,即采用IIS服務方式,我們可以通過以下兩種方式使用Kestrel服務運行我們的程序
1 在VS的啟動選項中選擇我們的項目名稱同名的選項,然后F5運行。
2 在項目文件夾根目錄,按住Shift鍵,點擊鼠標右鍵,單擊“在此處打開命令窗口”菜單,輸入dotnet run命令。
會提示應用程序服務已經啟動,並且地址為http://localhost:5000,我們打開瀏覽器輸入這個地址,可以看到頁面輸出了我們預期的結果,與使用IIS服務是同樣的效果。
可以在Program.cs通過使用UseUrls方法修改應用程序的地址。
public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseUrls("http://localhost:8000") .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .Build(); host.Run(); }