若是你是一個初學者開始學習 ASP.NET 或 ASP.NET MVC, 你可能並不知道什麼是. net Framework和. net ore。不用擔憂!我建議您看下官方文檔https://docs.microsoft.com/zh-cn/aspnet/index , 您能夠輕鬆地看到比較和差別。下面是我能夠分享的一些. net framework和. net core的部分, 您能夠點擊每一個連接以獲取開發的工具。html
.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 中), 輸入如下命令:html5
dotnet new console -o myApp
linux
cd myApp
dotnet run
恭喜您, 你已經使用. NET Core 建立了第一個控制檯應用程序。如今, 您能夠經過將此應用程序發佈到所需的任何平臺來部署。在 Mac 機上,android
dotnet publish --runtime osx-x64
webpack
或者安卓,ios
dotnet publish --runtime Android
git
下面是runtime identifier catalog 的完整列表。那麼, 這個命令實際上作了什麼:程序員
dotnet new console -o myApp
github
當咱們運行這個命令時, 它其實是在文件夾中建立一個控制檯應用程序項目myApp
。若是您查看文件夾myApp
, 則應該看到如下文件web
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 力量與您同在!