爲何 web 開發人員須要遷移到. NET Core, 並使用 ASP.NET Core MVC 構建 web 和 webservice/API

2018 .NET開發者調查報告: .NET Core 是怎麼樣的狀態,這裏咱們看到了還有很是多的.net開發人員還在觀望,本文給你們一個建議。這僅表明個人我的意見, 我有充分的理由推薦.net 程序員使用. net core而不是. net Framework。有些人可能不一樣意個人觀點, 可是分享想法和討論它是好的。.net 程序員或他們所在的團隊總有各類理由說他們的系統還在使用舊系統, 這顯然是企業開發人員的事情。因此, 我將列出一些關於誰應該遷移到使用. net core而不是. net 框架。如下是個人想法:

  1. 若是您是舊式Windows 服務、web 應用程序或 web 服務的維護者, 則您須要繼續使用. NET 框架。
  2. 若是您的應用程序將部署在舊的 Windows 服務器上,好比windows 2003/xp, 您須要繼續使用. NET 框架。
  3. 若是您確信您的系統近期不會部署到雲中, 那麼您如今就能夠繼續使用. NET 框架。
  4. 若是您對使用. net 框架沒有任何選擇,好比來自公司的要求, 您須要繼續使用. net 框架,這種狀況對你的發展是不利的,我勸你學習.net core, 換家更有追求的公司。
初學者, 只學習. NET Core!

若是你是一個初學者開始學習 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

 

只須要5分鐘入門使用. NET Core

若是您在移動筆記本上看這篇文章, 請下載並安裝當前操做系統 (Windows、Linux、Mac) 的. NET Core SDK 。您不須要安裝 Visual Studio 2017 就可使用命令行開發. NET Core應用。你完成安裝 SDK 後, 打開Shell PowerShell (在 Windows 中)、終端(在 Linux 或 Mac 中), 輸入如下命令:html5

dotnet new console -o myApp
cd myApp
dotnet run
linux

恭喜您, 你已經使用. NET Core 建立了第一個控制檯應用程序。如今, 您能夠經過將此應用程序發佈到所需的任何平臺來部署。在 Mac 機上,android

dotnet publish --runtime osx-x64webpack

或者安卓,ios

dotnet publish --runtime Androidgit

下面是runtime identifier catalog 的完整列表。那麼, 這個命令實際上作了什麼:程序員

dotnet new console -o myAppgithub

當咱們運行這個命令時, 它其實是在文件夾中建立一個控制檯應用程序項目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 意味着遷移到現代 Web 應用程序

我能夠轉移到 ASP.NET Core嗎?簡單的回答固然是否,  您不能僅僅是使用 Visual Studio 2017 打開舊的 ASP.NET Web Form或 mvc 5就能夠完成轉換到 ASP.NET Core mvc。你能夠參考如下老代碼遷移策略:

  1. 若是你的的 web 應用程序使用web form, 則不能直接將其轉換或遷移到 ASP.NET Core。 由於 Web form和 MVC 有着徹底不一樣的體系結構模型。MVC 使用模型、視圖和控制器的分離。也沒有 webform 控件組件 (如 web 窗體)。ASP.NETCore MVC 使用純 HTML5 元素。固然您可使用TagHelpers來建立自定義 HTML 屬性, 這些特性將轉換爲普通 HTML5。
  2. 若是你的 web 應用程序使用的是 ASP.NET MVC 5, 則你能夠首先建立一個新的 ASP.NET Core MVC 項目,複製粘貼某些代碼到 ASP.NET Core。這將須要一些調整, 特別是在RazorPage。
  3. 若是你的 web 應用程序只是一個 web api , 則你能夠首先建立一個新的 ASP.NET Core Web API項目,不是簡單複製一些代碼。這裏須要作些調整, 由於 ASP.NET Core web api 使用的是 web api 2。
  4. 使用 HTML5! HTML5 僅用於現代 web 應用程序標準。使用來自W3C (萬維網聯合體) 標準的 HTML5 。而不只僅是來自Microsoft EdgeChromeFirefox等的標準。由於每一個瀏覽器都有本身的功能, 稱爲平臺標準, 而某些瀏覽器平臺功能不成爲 W3C 標準。若是隻使用 chrome 功能標準, 則 web 可能只會被 chrome 綁定, 而且沒法在其餘瀏覽器上打開。並不是全部瀏覽器都支持其餘瀏覽器功能。
  5. 響應式佈局,響應式佈局,響應式佈局! 重要的事情要說三遍。咱們時常聽到開發者說, "不, 咱們不須要響應式佈局, 這只是桌面瀏覽器, 咱們只是讓它靜態佈局"。若是你的網站to c的, 你必須作響應式佈局, 由於如今移動時代,更多的用戶將使用他們的ios/android上面的移動瀏覽器查看。
  6. 不要在開發項目中直接使用 CSS。使用SASS 或者LESS.。您可使用 ASP.NET Core輕鬆完成此項任務。您甚至能夠添加Gulp、Grunt或者webpack來編譯 CSS。

若是您的代碼遵循 S.O.L.I.D Principle 原則進行正確的開發, 我相信, 遷移工做應該是很容易的, 而不是太多的調整。可是, 若是您的代碼是意大利麪條,則須要進行重構,.NET Core默認就使用依賴關係注入。這是ASP.NET常見最佳實踐,固然是如今作更好, 而不是不作。好處也不少, 你能夠學到一些新的東西, 您的新 web 應用程序將具備更好的性能, 更加現代化和可維護性。

對老闆說:遷移到. NET Core

我知道你的老闆會回答什麼, 是的, 那恐怖語句 "兼容嗎?"

個人建議是說: "是的, 它是兼容的! 他們都是. NET。但咱們須要一些調整, 一些須要小的編碼更改,以符合編程的最佳實踐"

咱們須要遷移到.NET Core的精神是, 若是不是如今, 那麼什麼時候?如今立刻就有發佈.NET Core 2.1, 一切都改變了。技術發生了變化 (現代 Web 應用程序、移動、加強現實等)、基礎結構已更改 (雲、AI)、開發體系結構也已更改 (容器、無服務器) 等。

我們這行業不尊重傳統,只尊重創新. --- 微軟CEO Satya Nadella

沒那麼容易

答案是確定的。可是, 並不意味着不可能。它須要勇氣和知識。 願. NET 力量與您同在!

相關文章
相關標籤/搜索