昨天在 Mac 上手寫了一個最簡單的 ASP.NET 5 程序,直接在 Startup.cs 中經過 Response.WriteAsync() 輸出響應內容,詳見 .NET跨平臺:在Mac上跟着錯誤信息一步一步手寫ASP.NET 5程序。html
今天接着昨天的代碼,用 vim 一步一步手寫一個最簡單的 ASP.NET 5 MVC 程序。json
先建立 Controllers 文件夾:vim
mkdir Controllers && cd $_
接着建立 HomeController.cs 文件:瀏覽器
vi HomeController.cs
在 vim 中輸入下面的代碼並只在退出:app
using Microsoft.AspNet.Mvc; namespace HelloCnblogs { public class HomeController : Controller { public IActionResult Index() { return Content("Hello, Cnblogs! -- ASP.NET 5 MVC"); } } }
而後用 vim 打開 Startup.cs 文件添加 MVC 相關代碼:post
using Microsoft.AspNet.Builder; using Microsoft.Framework.DependencyInjection; namespace HelloCnblogs { public class Startup { public void Configure(IApplicationBuilder app) { app.UseMvcWithDefaultRoute(); } public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } } }
再而後就是用 vim 在 project.json 中添加 MVC 的引用ui
"dependencies":{ "Kestrel": "1.0.0-*", "Microsoft.AspNet.Mvc": "6.0.0-*" }
接下來,就開始運行這個最簡單的 ASP.NET 5 MVC 程序。url
先安裝所引用的包包:spa
dnu restore
而後運行程序:rest
dnx . kestrel
運行成功!
Started
用瀏覽器訪問 http://localhost:8080/ ,獲得的響應內容以下:
Hello, Cnblogs! -- ASP.NET 5 MVC
搞定!
經過此次手寫代碼 ASP.NET 5 MVC 代碼,獲得運行一個簡單 ASP.NET 5 MVC 程序的最小配置:
除了 Controller 以外,project.json 中的配置以下:
{ "commands":{ "kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:8080" }, "dependencies":{ "Kestrel": "1.0.0-*", "Microsoft.AspNet.Mvc": "6.0.0-*" }, "frameworks":{ "dnxcore50": {} } }
Startup.cs 中的代碼以下:
using Microsoft.AspNet.Builder; using Microsoft.Framework.DependencyInjection; namespace HelloCnblogs { public class Startup { public void Configure(IApplicationBuilder app) { app.UseMvcWithDefaultRoute(); } public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } } }