标签:软件 编译 pip ice 目的 wmi 没有 可扩展性 高版本
.Net Core是下一件大事吗?我已经使用了一段时间了,我倾向认为它是。事实上,我们推测,在2018年,对这项技术熟练的开发人员将会有巨大的需求。但是它和.Net Framework的区别是什么?你需要知道什么才能有效的使用了它们。在这篇文章中,我们会解释主要的不同点和指导怎么确保最好的使用它们。
在以前,.Net Framework只能工作在Window设备上。Xamarin和Mono项目致力于将.Net移植到移动设备、MacOS和Linux。.Net Core提供了一套标准的基本库让其在windows、linux、macos、移动设备可以使用。
.Net 有下面四个部分组成:
微软维护的两个运行时,它们有许多相同的API。这个共享的API就是所谓的.Net Stand.
开发者使用.Net framework去创建Window桌面应用和基础服务应用。它包含Asp.Net web应用程序。.Net Core被用于创建服务应用让它能运行在Windows、Linux和Mac上。它目前还不支持创建桌面应用。开发者可以在两个运行中用VB.Net 、C#和F#编写程序。C#是面向对象的语言。对于工作在C和其相似语言的人来说,学习曲线应该不是问题。F#是跨平台语言同时也是面向对象的语言。Visual Basic在.Net Framework中可用,在.Net Core2.0对其支持有限。
.Net Core是一个跨平台的和开源的框架,它可以在任何平台开发。通常它被使用在云应用程序或将大型企业应用程序重构为微服务。所以应该什么时候使用呢?
当一个应用程序需要运行在多个平台像Windows、Linux和MacOS使用。这些操作系统已经被支持作为开发工作站(支持的操作系统正在增长)。
容器和微服务架构经常在一起使用。因为它是轻量级和模块化的,.Net Core很好的工作在容器中。服务器应用可以跨平台部署到Docker容器中。.Net Framework也可以使用容器,但是镜像太大了。
微软推荐用.Net Core和Asp.Net Core来获取最高的性能和拓展性。当成百个微服务被使用,这变的很重要。应该需要较少数量的服务器和虚拟机。所获取的效率和可扩展性可以转化为除了节约成本之外更好的用户体验。
要在.NET中以不同版本的框架安装依赖项的应用程序,开发人员需要使用.NET Core。 可以使用不同版本的.NET在同一台服务器上运行多个服务。
一些开发人员更喜欢用轻量级的编辑器和命令行来工作。.Net Core有命令行接口已经支持所有的平台。它要求最小的安装在生产机器上。
有一个问题:.Net Core还没有全部支持.Net 的库和拓展。在某些情况下,它可能不是当前最好的选择,但是,随着持续发展,它最终可能适用于大多数用例。 考虑以下情况:
是不被支持的。你不得不使用mont去制作适合macOS的.Net 桌面应用程序。
微软有计划实现它在ASP.NET Core。
.Net Core现在还不支持WCF。取而代之,你需要使用ASP.NET Core MVC创建REST API。
.Net Core2.0提供了.Net Framework和.Net Core的兼容。但是仍然有类库没有被实现的兼容问题。尽管如此,这将有助于将许多类库连接到.Net Core。
一些.Net Framework功能在.Net Core中没有。比如EF Core是不同EF v6的。
如果你的程序需要访问注册表、WMI或者其他的Window API,它是不能工作的。.Net Core被设计跟系统无关。
微软和社区再持续更新,但是还没有全部支持。
它计划在.Net Core2.1中被支持.
它可以与Docker和Window容器一起使用,并且使用它是可行的。
代替迁移、替换应用程序。比如开发者可以写一个新的web service用Asp.Net Core。
.Net Core正在被广泛的使用,如果你工作在.Net Framework类库在.Net Core中没有被兼容,仍然需要使用.Net Framework。NuGet是.NET和其他Microsoft开发平台的免费和开源软件包管理器。
开发的项目中在.Net Core中还不可用
下面这些情况不应该使用.Net Framework:
这设计到的不仅仅是知道第三方依赖关系是什么。如果要用程序运行在.Net Core上,应该如何依赖那些第三方依赖福关系,以及如果他们不运行,需要知道该应用程序需要做什么。
NuGet软件包很容易检查,因为它通常在NuGet的网站上有描述依赖,并且软件包为每个平台都有一组文件夹。 您还可以查看该包的页面上的依赖关系,然后查找具有以下任一名称的文件夹或条目。
如果依赖关系不是NuGet包,则ApiPort工具可以检查依赖关系的可移植性。
与.NET Core 2.0一起使用的新功能,兼容性可以引用尚未转换为使用.NET Standard的.NET Framework软件包。 请确保彻底测试这些软件包,因为如果他们使用不受支持的API,它们可能仍然存在问题。
.NET标准库旨在用于所有.NET运行时,因此定位.NET标准库是构建跨平台类库的最佳方式。
有八个平台可以在不同程度上提供多个版本。 如果项目的目标版本较低,则无法引用以较高版本为目标的项目。 选择所有项目中使用的最低.NET标准版本。 下面是每个.NET标准版本的图表,显示了它们运行的特定区域:
所有要移植的项目都需要针对.NET Framework 4.6.2。 这将确保用于.NET Framework特定目标的API替代品可用于不受支持的API。这可以在Visual Studio中用“Target Framework”命令轻松完成并重新编译这些项目。
文章翻译来源为.NET Core vs .NET Framework: How to Pick a .NET Runtime for an Application
.Net Core vs .Net Framework 如何为一个应用程序选择一个运行时
标签:软件 编译 pip ice 目的 wmi 没有 可扩展性 高版本
原文地址:https://www.cnblogs.com/MicroHeart/p/9050044.html