macOS 下 ASP.NET Core 初體驗

本文出自 我的 github


2016年6月28日微軟在 RedHat 峰會上發布了 .NET Core 1.0、ASP.NET Core 1.0 和 Entity Framework Core 1.0。Net Core 是 .Net 基金會推出的新一代 .Net 平臺,能支持 Windows、macOS 和 Linux 平臺。Windows 平臺下使用 Visual Studio 2015 就可以創建和打開 ASP.NET Core 項目了,今天試試在 macOS 下體驗 ASP.NET Core

安裝 .Net Core SDK

.Net Core SDK 要求 macOS 必須是10.11 (El Capitan) 或者更高版本,幸好我一直都是用最新的系統
安裝 .Net Core SDK 之前要先通過 Homebrew 安裝 OpenSSL

$ brew update
$ brew install openssl
$ brew link --force openssl

下載安裝 .Net Core SDK ,目前微軟在 macOS 平臺下只發布了 .Net Core 的正式版本1.0,.Net Core SDK 能下載到的依舊是 Preview 2 的版本,相信 .Net Core SDK 正式版本很快會發布

參考:.Net Core

第一個 ASP.Net Core 應用

安裝好 .Net Core SDK 之后開始創建一個 Hello World 應用吧

$ mkdir aspnetcoreapp
$ cd aspnetcoreapp
$ dotnet new

更新項目目錄下的 project.json 文件,增加 Kestrel HTTP server 包到 dependencies 中

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0"
    },
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0"
  },
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.0"
        }
      },
      "imports": "dnxcore50"
    }
  }
}

執行 dotnet restore 命令,安裝依賴包

$ dotnet restore

在項目目錄下添加 Startup.cs 文件,代碼如下:

using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;

namespace aspnetcoreapp
{
    public class Startup
    {
        public void Configure(IApplicationBuilder app)
        {
            app.Run(context =>
            {
                return context.Response.WriteAsync("Hello from ASP.NET Core!");
            });
        }
    }
}

更新項目目錄下的 Program.cs 文件,代碼如下:

using System;
using Microsoft.AspNetCore.Hosting;

namespace ConsoleApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseKestrel()
                .UseStartup<Startup>()
                .Build();

            host.Run();
        }
    }
}

在終端執行 dotnet run 命令運行我們創建的應用

$ dotnet run

第一個 ASP.NET Core 引用已經運行起來了!

參考:ASP.NET Core 入門

使用 Xamarin Studio 作為 ASP.NET Core 的集成開發工具

下載和安裝最新版本的 Xamarin Studio

由于 Xamarin Studio 是在線安裝的,再加上國內網絡環境的原因,我們很難在線安裝好它
這里我推薦一個 Xamarin Installtion Mainifest,直接用下載軟件下載所需組件并安裝

安裝開發所需 Add-ins

打開 Xamarin Studio,點擊菜單 Xamarin Studio 下的 Add-ins,在 Add-in Manger 里點擊 Gallery 選項卡,點擊 Repository 下拉菜單,選擇 Manage Repositories ,勾選上 Xamarin Studio Add-in Repository(Alpha channel),然后關閉窗口

在 Add-in Manger 里點擊 Repository 下拉菜單,選擇 Xamarin Studio Add-in Repository(Alpha channel),在 IDE extensions 節點下找到 DNX 和 VSCodeDebugger 并安裝

DNX 為 Xamarin Studio 增加創建 .Net Core 項目的功能,VSCodeDebugger 為 Xamarin Studio 增加.Net Core 項目的調試功能

使用 Xamarin Studio

安裝好 Add-ins 后,重新啟動 Xamarin,點擊菜單 File -> New -> Solution,點擊 Other 的列表項中的 .Net Core,我們看到這里可以創建 .Net Core 控制臺應用 和 .Net Core Web 應用了

我直接從 Github 上拉取了一個 asp.net 的經典 Sample - MusicStore,這個 Sample 是基于 ASP.Net 5(ASP.NET Core 之前的名字)創建的,然后雙擊 MusicStore 目錄下的 MusicStore.sln 文件,直接使用 Xamarin Studio 打開了該解決方案。不過這里報了一個錯誤,可能由于這個項目是在 Windows 下創建的,有一些不兼容吧。不過后面我發現這沒什么影響,因為只有一個叫 MusicStore.Standalone 的項目沒有正確加載,MusicStroe 這個主要項目正確加載了

直接點運行,是可以運行成功的,然后打開 Safari,輸入 http://localhost:5000 可以正常打開 Music Store,Yes!

隨便點了幾下,功能基本正常,不過由于 macOS 下沒有 SQL Server LocalDB,所以 MusicStore 使用的是內存數據庫,也就是說重新啟動應用后,之前的用戶數據會丟失
我在 Register 里下了一個斷點,然后注冊個用戶,斷點這里是可以正常停下并獲取到剛才輸入的信息,調試也基本正常了

由于 Xamarin Studio 原生支持 Git,所以咱們開發的項目可以直接 Push 到遠端倉庫中,這樣一來,使用 Xamarin Studio 進行 ASP.NET Core 應用的開發、調試、部署都沒啥打問題了

結語

微軟從認為 Linux 和開源是“癌癥”,到現在擁抱 Linux 和開源,經歷了很長一段時間,期望微軟在開源領域再創輝煌,也希望越來越多的 Coder 去關注和使用 .Net 技術,因為它真的很棒

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容