為什么 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的部分, 您可以點擊每個鏈接以獲取開發的工具。

  .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 中), 輸入以下命令:

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 意味着遷移到現代 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 力量與您同在!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM