2016-02-01 35 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本机容器中完全支持这两种工作。

希望有所帮助。

相关问题