2015-10-14 43 views
1

當你創建一個基於你在project.jsonproject.json frameworrks元素是什麼意思和使用哪個框架?

"frameworks": { 
    "dnx451": { }, 
    "dnxcore50": { } 
    }, 

以下框架元素的ASP.NET項目模板在Visual Studio 2015年一個新的項目如果添加一個類庫解決方案框架元素的外觀像這樣:

"frameworks": { 
    "dotnet": { } 
    } 

現在什麼是這些不同的框架,我需要所有這些框架?例如,如果我想讓這個庫從sql server訪問數據,我可以使用dnx451還是我必須使用dotnet?

在早期版本的ASP.NET 5中,建議刪除dnxcore50。這仍然是這樣嗎?爲什麼你會使用dnx451而不是dnxcore50?

也是什麼版本的.NET「dotnet」框架指的是?

回答

2

Visual Studio將針對frameworks部分中列出的所有框架交叉編譯所有代碼。所以:

dnx451dnx46等等。這是一個完整的.NET框架,啓動期間DNX將啓動安裝版本的.NET Framework 4.5.1或4.6左右。

dnxcore50是使用CoreCLR運行時和CoreFX庫的新.NET Core - 微軟的開源項目,是.NET Framework的子集,設計爲可移植和跨平臺。如果您不針對它進行編譯,並且不關心.NET Core提供的跨平臺開發或其他好處,那麼您可以擺脫它。另一方面,如果.NET Core不提供WCF(服務器端),WPF,反射API(只有一個子集),應用程序域等功能,則必須刪除它。從SQL Server訪問數據通過ADO.NET SqlClientEntity Framework 7

dotnet可以老實說,我不知道它是什麼 - 當前文檔沒有提及這些框架的存在,或者它提供了可以在這裏使用有效字符串的任何列表。 Visual Studio工具在解析框架中似乎非常自由(例如,'451' == 'net451')。它編譯.NET 4.0至少對我來說... ilspy

斯科特艾倫有一個blog post他如何選擇dnx的味道。 還有關於如何選擇正確的.NET文檔頁面here(在我看來很粗略)。

您可能會感興趣在尋找corefx的源代碼來檢查.NET Core是否提供了您所需的軟件包。

+0

我發現這個:https://oren.codes/2015/06/09/pcls-net-core-dnx-and-uwp/其中Oren Novotny解釋了你可能在'frameworks'中使用的不同風味。非常翔實,但不解釋如何選擇。並且可能已經過時(6月寫的文章) – pg0xC