如果你是一个初学者开始学习 ASP.NET 或 ASP.NET MVC, 你可能并不知道什么是. net Framework和. net ore。不用担心!我建议您看下官方文档https://docs.microsoft.com/zh-cn/aspnet/index , 您可以轻松地看到比较和差异。下面是我可以分享的一些. net framework和. net core的部分, 您可以点击每个链接以获取开发的工具。
.NET Framework | .NET Core | |
---|---|---|
Technology | First Release 2002 (Mature) | First Release 2016 (Mature) |
Latest Version | 4.7.2 (Reference Source) | 2.0.6 (Open Source Software) SDK Version 2.1.3 |
SDK | Windows Only (Version 7, 8, 10) | Windows (Version 7, 8, 10), Linux (redhat, Ubuntu >14.04, Fedora, Debian, CentOS 7, openSUSE 24, Oracle Linux 7, SLES 12), Mac |
ASP.NET Performance | 57,843 Request/Seconds (Plain Text) | 1,822,366 Request/Seconds (Plain Text) Here is some real world news as reference: ASP.NET Core – 2300% More Requests Served Per Second. |
Best IDE/Editor | Visual Studio 2017 Community (latest, FREE) | Visual Studio 2017 Community (latest, FREE), Visual Studio Code for Windows, Linux and Mac (FREE), Visual Studio for Mac Community (FREE) |
Web Framework | Web Form, ASP, MVC (Web and Web API) | MVC Core (Web, Razor Page, Web API) |
Entity Framework (ORM) | Entity Framework 6.2 (latest) (Microsoft SQL Server, Oracle, MySQL (Official), PostgreSL, SQLite, IBM Data Server (DB2)) | Entity Framework Core 2.0.1 (latest) (InMemory (for Testing), Microsoft SQL Server, SQLite, PostgreSQL (Npgsql), IBM Data Server (DB2), MySQL (Official), MySQL (Pomelo), Microsoft SQL Server Compact Edition, Devart (MySQL, Oracle, PostgreSQL, SQLite, DB2, and more), Oracle (not yet available), MyCat, Firebird-Community) |
Frontend | Plain MVC, Angular (mostly using MVC) | Plain MVC, Angular, React, and Redux |
如果您在移动笔记本上看这篇文章, 请下载并安装当前操作系统 (Windows、Linux、Mac) 的. NET Core SDK 。您不需要安装 Visual Studio 2017 就可以使用命令行开发. NET Core应用。你完成安装 SDK 后, 打开Shell 或PowerShell (在 Windows 中)、终端(在 Linux 或 Mac 中), 输入以下命令:
dotnet new console -o myApp
cd myApp
dotnet run
恭喜您, 你已经使用. NET Core 创建了第一个控制台应用程序。现在, 您可以通过将此应用程序发布到所需的任何平台来部署。在 Mac 机上,
dotnet publish --runtime osx-x64
或者安卓,
dotnet publish --runtime Android
下面是runtime identifier catalog 的完整列表。那么, 这个命令实际上做了什么:
dotnet new console -o myApp
当我们运行这个命令时, 它实际上是在文件夹中创建一个控制台应用程序项目myApp
。如果您查看文件夹myApp
, 则应该看到以下文件
myApp.csproj
Program.cs
文件本身只是一个简单的Hello world。Program.cs
using System; namespace myApp { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } } }
如果执行此命令,
dotnet new --list
它将从框中列出可用模板。这是你可能会看到的,
如果用mvc替换console时, 它将创建一个使用ASP.NET core MVC的 web 应用程序项目。
我可以转移到 ASP.NET Core吗?简单的回答当然是否, 您不能仅仅是使用 Visual Studio 2017 打开旧的 ASP.NET Web Form或 mvc 5就可以完成转换到 ASP.NET Core mvc。你可以参考以下老代码迁移策略:
如果您的代码遵循 S.O.L.I.D Principle 原则进行正确的开发, 我相信, 迁移工作应该是很容易的, 而不是太多的调整。但是, 如果您的代码是意大利面条,则需要进行重构,.NET Core默认就使用依赖关系注入。这是ASP.NET常见最佳实践,当然是现在做更好, 而不是不做。好处也很多, 你可以学到一些新的东西, 您的新 web 应用程序将具有更好的性能, 更加现代化和可维护性。
我知道你的老板会回答什么, 是的, 那恐怖语句 "兼容吗?"
我的建议是说: "是的, 它是兼容的! 他们都是. NET。但我们需要一些调整, 一些需要小的编码更改,以符合编程的最佳实践"
我们需要迁移到.NET Core的精神是, 如果不是现在, 那么何时?现在马上就有发布.NET Core 2.1, 一切都改变了。技术发生了变化 (现代 Web 应用程序、移动、增强现实等)、基础结构已更改 (云、AI)、开发体系结构也已更改 (容器、无服务器) 等。
咱们这行业不尊重传统,只尊重创新. --- 微软CEO Satya Nadella
答案是肯定的。但是, 并不意味着不可能。它需要勇气和知识。 愿. NET 力量与您同在!