2016-02-01 13 views
0

我開始理解.NET堆棧跨平臺的命名約定。 特別是此頁解釋得好: http://blog.tonysneed.com/2016/01/22/ef6-asp-net-core-mvc6/目標.NET4.6或.NET Core 1用於綠地開發?

我開始一個個人項目,這將是完全的綠地,看到它作爲一個機會來了解所有這些新技術。但是,我想重新使用來自使用衆所周知的庫的其他MVC5應用程序的代碼。特別是對於基礎設施&管道系統,我使用了一些着名的庫,如StructureMap,AutoMapper和數據持久性EF(EF 4/5)。

由於我應該使用哪個版本沒有限制,我應該從頭開始並使用最新的ASP.NET Core 1.0,.NET Core 1.0和EF Core 1.0,或者僅使用它會跨平臺嗎?換句話說,如果我永遠不會運行這個任何東西,但Windows,並希望與圖書館不兼容的最小痛苦我堅持與.NET4.6?

我基本上想利用這個機會能夠學習新的東西,而不會影響我的應用程序的未來可移植性。 即使在Windows上,MS最終是否會使.NET Core 1成爲默認設置?

回答

2

它不`噸期待MS會之間作出選擇兩個原因:.NET Core is essentially a fork of the NET Framework

事實上,當你想get it from official source你將仍然面臨着兩難的。

Asp.net核心擁有Go Live許可證,微軟會給予支持,並且是ready for productionwhich to choose

Diclaimer: 我的答案的其餘部分可依據的意見了......

如果你不有約束,例如你需要仍然不支持的功能,如SignalR,我至今分享我類似的經歷:

我開始與核心mvc6網頁API

當我需要WCF它不是那麼容易 - >see here

然後不得不使用4.5框架針對性類庫 - >you can easily now reference這些所有的迴繞將在Visual Studio可以自動完成

我不得不通過IIS發佈的障礙找到更多的方法 - >for example

底線:

大部分地方有新frequent releases

單獨解決的感覺,我在這些問題一開始是我將盡快跳出來爲阻止實施出現 ,越來越自信地變化,實際上,你越能學會它就能擁有靈活的解決方案。

我只能補充一點,你可能想要去的documentation的快速閱讀,並有更多的線索

+0

因此,總而言之,在沒有使用.NET Core 1.0的情況下,有什麼意義? – user183872

+0

免責聲明:我沒有看到任何和我喜歡它,但每個人都有類似難題背後的不同業務原因 – vinjenzo

+0

https://docs.microsoft.com/en-us/dotnet/articles/standard/choosing-core-framework-服務器 – vinjenzo

2

我通過這次辯論去和.NET核心解決;六個月後,一些生產部署,我相信這是正確的決定。這裏有幾個問題可能會澄清你的決定:

  1. 您是否正在構建一個與.NET Core的'甜蜜點'相匹配的後端服務 - 即。一個網站或網頁/ REST API或兩者?根據我的經驗,.NET Core對此非常完美,並且已經運行良好,儘管EFCore仍在成熟並且工具仍在改變。
  2. 是否要構建WCF服務和其他特定於Windows的技術?一般而言,您希望堅持使用完整的.NET框架,如here所述。通過一些工作可以從.NET Core Web API調用WCF服務。
  3. 消息隊列 - RabbitMQ現在擁有.NET Core支持,我認爲MSMQ您可能有問題 - 最好的情況是您需要引用完整的框架庫。
  4. 如果您需要任何基於Windows的GUI(WCF或Winforms),請使用完整的.NET框架。
  5. 構建作爲Windows服務運行的後臺進程 - 通常使用.NET Core不支持的完整.NET Framework,儘管您可以在.NET Core中編寫它併爲其構建完整的.NET服務包裝器 - 可能現在值得除非你也希望能夠在其他平臺上運行該進程。
  6. 如果你想要運行跨平臺的選項(我做過),你必須使用.NET Core。
  7. 如果您想使用Docker進行部署(因爲我有) - .NET Core似乎更關注於此,但在新的Windows 2016本機容器中完全支持這兩種工作。

希望有所幫助。

相關問題