【譯】.NET Core 路線圖

原文:blogs.msdn.microsoft.com

自我們發布n.NET Core / ASP.NET Core 1.0 以來,已經有兩個星期了。過去兩個星期我們的團隊好好休整了一下,現在是時候向著下一個目標出發了。我們已看到了大量n.NET Core SDK 的下載和有重要意義的反饋。請繼續向我們提交反饋。

下面是一個關於我們將來可能會如何發展的粗略的時間線。請注意,我們團隊爭取能夠在目標日期達成目標,但仍可能會有變化。

1.0.1 (~2016 八月)

我們正在積極監控 .NET Core SDK 1.0 版本的將在第一個補丁n(1.0.1) 中修復的問題。目前這個補丁的準確推送日期還未決定,但大概會在八月初。下面是我們主要關注的幾個問題:

  • 改善 dotnet build 命令的表現,這將改善n ASP.NET Core 的發布所需時間。
  • dotnet new 命令的n F# 模板將會更新,這些模板將會使用 .NET Core 上最新的n F# alpha 版本。
  • 基於遠程遙測所發現的雜項的修復。

2016 第四季度 / 2017 第一季度

此次更新將成為第一個次要更新,主要關注於將 .xproj/project.json 替換為 .scproj/MSBuild。 項目 (文件) 格式的更新將會是自動的。打開一個n1.0 的項目,將會被更新為新的項目 (文件) 格式。同時也會有關於運行時和庫的功能性的更新和改進。

之前,.NET Core 1.0 包含了 .NET Core 工具的一個被稱之為」Preview 2」的預覽版本。該工具被稱為「preview」的主要原因是我們將會在 1.0 版本後改進工具的使用體驗,那時的 .NETnCore 工具將會更新至」RTM quality」或」stable」版本。

.NET Core 工具

  • 對n .csproj/MSBuild 項目系統的支持。
  • dotnet restore 命令將不再會還原屬於 .NET Core的一部分的包了。
  • 新的用於管理本機的框架的命令。
  • dotnet publish 命令將只打包發布所依賴的包,以優化發行版的大小。

語言 (可用於 .NET Framework 和 .NET Core)

.NET 語言的下一個更新將應用於所有的n.NET 平台。關於這次發布的新特性有很多信息,這裡只是一個簡單的概述 (譯者註:有大量概念目前網上還未有相關的資料,所以強行翻譯了一下並附上原文,歡迎提出更好的建議)n:

  • 將函數式編程的概念引入 .NET 語言中

· n多元組 (Tuples)

· n模式匹配 (Pattern matching)

  • 性能和代碼質量

· n值任務 (Value Tasks)

· n (值類型的) 引用返回 (Ref returns)

· n拋出表達式 (Throw expressions)

· n二進位字面量 (Binary literals)

· n數字分隔符 (Digit separators)

  • 開發者生產力

· n返回類型推斷 (Out vars)

· n本地方法 (Local functions)

這些特性將在nC# 7 中可用。VB 15 也將實現那些影響語言的交互的特性 (多元組,引用返回等) ,但一些特性將會在下次更新中可用 (例如模式匹配) ,或者不在路線圖中 (例如本地方法) 。

除了 C# 和 VB 之外,我們也將發布nF# 的一個新版本。F# 4.1 將包含以下幾件事:

  • 完整的 .NET Core 支持
  • 更好的由 F# 語言服務的工作區支持所帶來的 IDE 體驗
  • 新的語言特性,諸如與ValueTuple 進行互操作的結構元組 (struct tuples) ,更多對將類型標註為結構的支持,支持 fixed 關鍵詞等。

ASP.NET Core

  • 網路套接字
  • URL 重寫中間件
  • Azure

· n應用服務啟動時間的改善

· n應用服務日誌提供器

· nAzure 密碼保險箱提供器

· nAzure AD B2C Support

  • 容器和微服務

· n基於nWebListener 伺服器的ServicenFabric 支持

· nMVC & DI 啟動時間的改善

  • 預覽

· nSignalR

· n視圖頁面 (沒有MVC 控制器的視圖)n

.NET Core 運行時和庫

  • ARM 32/64 支持
  • 更多 Linux 發行版的支持 (從源碼生成)

Entity Framework Core

  • Azure

· n瞬態故障處理 (彈性)

  • 映射

· n自定義類型轉換

· n複雜類型 (值對象)

· n實體入口 API

  • 更新管道

· nCUD 儲存過程

· n更好的批處理n (TVPs)

· n環境事物

  • 查詢

· n穩定性,性能

  • 遷移

· n種子數據

· n穩定性

  • 反向工程

· n多元化

· nVS 項目模板n(UX)

2017 第一季度 / 2017 第二季度

此次更新將帶來大量缺失的 .NET Core API,包括網路,序列化,數據等。在各種不同版本的n.NET 中有著大量通用的不受限於某種應用模型 (WinForms,WPF,ASP.NET 等) 的 BCLn(Base Class Library) 代碼。這些nAPI 將成為同期發布的 .NET Standard 2.0 的一部分,以使n.NET Framework, .NET Core 和 Xamarin 間的nAPI 更加一致。以 .NET Standard 2.0 為目標將很容易寫出可在所有主要n.NET 平台上運行的可移植的代碼。這部分工作的預覽將在我們發布第四/第一季度更新後開始展現。

更好的交流

在未來,我們希望能夠在「我們正在做什麼「這個方面更加的透明。我們計劃以更頻繁的頻率去更新這個博客 (譯者註:blogs.msdn.microsoft.com)n。即將到來的主題大致如下:

  • .NET Core 路線圖 (這篇博文)
  • ASP.NET 即將到來的亮點
  • Entity Framework 即將到來的亮點
  • .NET CLI (命令行工具) 即將到來的亮點
  • .NET Core 支持和更新
  • .NET Core 遙測
  • .NET Standard
  • API 回歸
  • 從n project.json 項目到 .csproj 項目的轉換

下周我們希望展示一些n.csproj/MSBuild 的轉換的例子,和一些關於新功能之一n(ASP.NET, EF or .NET CLI) 的深入探討。

感謝您的觀看,並請繼續向我們提交反饋!

(正文完)

另附上原博評論區一些比較有用的評論及回復的翻譯:

Q: Windows 和 Linux 都會有 ARM32 和nARM64 的支持嗎?

A: 我們將會同時支持兩種架構和兩種操作系統,雖然不同組合將會在不同時間被支持。我們仍在規劃這些項目,所以暫時沒有具體的細節以分享。

Q: 「項目 (文件) 格式的更新將會是自動的。打開一個 1.0 的項目,將會被更新為新的項目 (文件) 格式。」

我應該在哪打開我的項目?假設我是一名 Linux 開發者,並且我只有ndotnet 命令行工具。

nA: 主要將通過一個可以從命令行調用的 dotnet 命令以實現。不同的編輯器將使用同樣的命令以獲得同樣的輸出。

Q: 讓我們來假設有兩種開發者。

第一位決定立刻將他的受歡迎的庫遷移到 .NET Standard 1.x。

優點:

n- 他的庫將可以運行在 Linux/MacOS 上。

n- 所有依賴這個庫的項目也可以開始使用 .NET Core了。

缺點:

n- 他需要花費數周時間去更改他的代碼,以遷移到 .NET Core 上。

n- 他可能需要移除一些功能。

n- 他需要將所有項目文件改成 .xproj/project.json 格式。

n- 2.0 發布以後,他還得把這些文件改回來。

n- 他不會使用任何 2.0 版帶來的 API,因為他已經更改過他的代碼了。

第二位決定等 2.0 版發布。

優點:

n- 他只需花費數小時時間來改造他的代碼

n- 他不需要更改他的 .csproj 文件

n- 他不會被現有的corefx 和 dotnet 命令行工具的 bug 所影響。

缺點:

n- 所有使用了他的庫的項目都必須等待 2.0 的發布。

n- 無法在 Linux/MacOS 上運行他的代碼。(譯者註:應該是指暫時無法運行)

因此我有兩個問題:

n1) 如果所有開發者近期遷移到了 .NET Core 1.0,誰會去使用n2.0?

n2) 既然等到 2.0 再移植那麼容易,那麼為什麼要現在遷移到n.NET Core 上呢?

A: 這是個很貼切的對現狀的描述。你並不是第一個提出這些問題的人。這也解釋了我們為什麼做出這些改變。

我們對 1.0 版本有如下建議:

n- 如果短期內你想將你的 ASP.NET 應用遷移至nLinux/MacOS,請遷移至 1.0 版本。

n- 將 1.0 版本做成新的應用,尤其是如果你樂衷於跨平台和(在其他系統)部署的好處。

n- 使用你認為將來會在遷移至 .NET Core 更加容易時表現良好的應用來嘗試n1.0 版本,為遷移做準備。

以下是譯者的小廣告:MS Intern,如果你有翻譯一些nMS 相關技術的文檔的打算歡迎私信我。


推薦閱讀:

淺談.NET程序集安全簽名
造輪子進度(2017.07.26)
debian(kali Linux) 安裝net Core

TAG:C# | NET | 微软Microsoft |