天天看點

.NET跨平台:在mac指令行下用vim手寫ASP.NET 5 MVC程式

昨天在 Mac 上手寫了一個最簡單的 ASP.NET 5 程式,直接在 Startup.cs 中通過 Response.WriteAsync() 輸出響應内容。今天接着昨天的代碼,用 vim 一步一步手寫一個最簡單的 ASP.NET 5 MVC 程式。

昨天在 Mac 上手寫了一個最簡單的 ASP.NET 5 程式,直接在 Startup.cs 中通過 Response.WriteAsync() 輸出響應内容,詳見 .NET跨平台:在Mac上跟着錯誤資訊一步一步手寫ASP.NET 5程式。

今天接着昨天的代碼,用 vim 一步一步手寫一個最簡單的 ASP.NET 5 MVC 程式。

先建立 Controllers 檔案夾:

mkdir Controllers && cd $_      

接着建立 HomeController.cs 檔案:

vi HomeController.cs       

在 vim 中輸入下面的代碼并隻在退出:

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 相關代碼:

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 的引用

"dependencies":{
        "Kestrel": "1.0.0-*",
        "Microsoft.AspNet.Mvc": "6.0.0-*"
    }      

接下來,就開始運作這個最簡單的 ASP.NET 5 MVC 程式。

先安裝所引用的包包:

dnu restore      

然後運作程式:

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();
        }
    }
}      

繼續閱讀