为什么 web 开发人员需要迁移到. NET Core, 并使用 ASP.NET Core MVC 构建 web 和 API
2018 .NET開發(fā)者調(diào)查報告: .NET Core 是怎么樣的狀態(tài),這里我們看到了還有非常多的.net開發(fā)人員還在觀望,本文給大家一個建議。這僅代表我的個人意見, 我有充分的理由推薦.net 程序員使用. net core而不是. net Framework。有些人可能不同意我的觀點(diǎn), 但是分享想法和討論它是好的。.net 程序員或他們所在的團(tuán)隊總有各種理由說他們的系統(tǒng)還在使用舊系統(tǒng), 這顯然是企業(yè)開發(fā)人員的事情。所以, 我將列出一些關(guān)于誰應(yīng)該遷移到使用. net core而不是. net 框架。以下是我的想法:
如果您是舊式Windows 服務(wù)、web 應(yīng)用程序或 web 服務(wù)的維護(hù)者, 則您需要繼續(xù)使用. NET 框架。
如果您的應(yīng)用程序?qū)⒉渴鹪谂f的 Windows 服務(wù)器上,比如windows 2003/xp, 您需要繼續(xù)使用. NET 框架。
如果您確信您的系統(tǒng)近期不會部署到云中, 那么您現(xiàn)在就可以繼續(xù)使用. NET 框架。
如果您對使用. net 框架沒有任何選擇,比如來自公司的要求, 您需要繼續(xù)使用. net 框架,這種情況對你的發(fā)展是不利的,我勸你學(xué)習(xí).net core, 換家更有追求的公司。
初學(xué)者, 只學(xué)習(xí). NET Core!
如果你是一個初學(xué)者開始學(xué)習(xí) ASP.NET 或 ASP.NET MVC, 你可能并不知道什么是. net Framework和. net ore。不用擔(dān)心!我建議您看下官方文檔https://docs.microsoft.com/zh-cn/aspnet/index?, 您可以輕松地看到比較和差異。下面是我可以分享的一些. net framework和. net core的部分, 您可以點(diǎn)擊每個鏈接以獲取開發(fā)的工具。
| .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
如果您在移動筆記本上看這篇文章, 請下載并安裝當(dāng)前操作系統(tǒng) (Windows、Linux、Mac) 的. NET Core SDK?。您不需要安裝 Visual Studio 2017 就可以使用命令行開發(fā). NET Core應(yīng)用。你完成安裝 SDK 后, 打開Shell?或PowerShell?(在 Windows 中)、終端(在 Linux 或 Mac 中), 輸入以下命令:
dotnet new console -o myApp
cd myApp
dotnet run
恭喜您, 你已經(jīng)使用. NET Core 創(chuàng)建了第一個控制臺應(yīng)用程序。現(xiàn)在, 您可以通過將此應(yīng)用程序發(fā)布到所需的任何平臺來部署。在 Mac 機(jī)上,
dotnet publish --runtime osx-x64
或者安卓(.net core 2 可以直接開發(fā)android程序,第一次注意到這個),
dotnet publish --runtime Android
下面是runtime identifier catalog?的完整列表。那么, 這個命令實(shí)際上做了什么:
dotnet new console -o myApp
當(dāng)我們運(yùn)行這個命令時, 它實(shí)際上是在文件夾中創(chuàng)建一個控制臺應(yīng)用程序項目myApp?。如果您查看文件夾myApp?, 則應(yīng)該看到以下文件
myApp.csproj
Program.cs
文件本身只是一個簡單的Hello world。Program.cs
using System;
??
namespace myApp
{
???? class Program
???? {
???????? static void Main(string[] args)
???????? {
???????????? Console.WriteLine("Hello World!");
???????? }
???? }
}
如果執(zhí)行此命令,
dotnet new --list
它將從框中列出可用模板。這是你可能會看到的,
如果用mvc替換console時, 它將創(chuàng)建一個使用ASP.NET core MVC的 web 應(yīng)用程序項目。
遷移到 ASP.NET Core 意味著遷移到現(xiàn)代 Web 應(yīng)用程序
我可以轉(zhuǎn)移到 ASP.NET Core嗎?簡單的回答當(dāng)然是否,??您不能僅僅是使用 Visual Studio 2017 打開舊的 ASP.NET Web Form或 mvc 5就可以完成轉(zhuǎn)換到 ASP.NET Core mvc。你可以參考以下老代碼遷移策略:
如果你的的 web 應(yīng)用程序使用web form, 則不能直接將其轉(zhuǎn)換或遷移到 ASP.NET Core。 因為 Web form和 MVC 有著完全不同的體系結(jié)構(gòu)模型。MVC 使用模型、視圖和控制器的分離。也沒有 webform 控件組件 (如 web 窗體)。ASP.NETCore MVC 使用純 HTML5 元素。當(dāng)然您可以使用TagHelpers來創(chuàng)建自定義 HTML 屬性, 這些特性將轉(zhuǎn)換為普通 HTML5。
如果你的 web 應(yīng)用程序使用的是 ASP.NET MVC 5, 則你可以首先創(chuàng)建一個新的 ASP.NET Core MVC 項目,復(fù)制粘貼某些代碼到 ASP.NET Core。這將需要一些調(diào)整, 特別是在RazorPage。
如果你的 web 應(yīng)用程序只是一個 web api , 則你可以首先創(chuàng)建一個新的 ASP.NET Core Web API項目,不是簡單復(fù)制一些代碼。這里需要做些調(diào)整, 因為 ASP.NET Core web api 使用的是 web api 2。
使用 HTML5! HTML5 僅用于現(xiàn)代 web 應(yīng)用程序標(biāo)準(zhǔn)。使用來自W3C?(萬維網(wǎng)聯(lián)合體) 標(biāo)準(zhǔn)的?HTML5?。而不僅僅是來自Microsoft Edge、?Chrome、?Firefox等的標(biāo)準(zhǔn)。因為每個瀏覽器都有自己的功能, 稱為平臺標(biāo)準(zhǔn), 而某些瀏覽器平臺功能不成為 W3C 標(biāo)準(zhǔn)。如果只使用 chrome 功能標(biāo)準(zhǔn), 則 web 可能只會被 chrome 綁定, 并且無法在其他瀏覽器上打開。并非所有瀏覽器都支持其他瀏覽器功能。
響應(yīng)式布局,響應(yīng)式布局,響應(yīng)式布局! 重要的事情要說三遍。我們時常聽到開發(fā)者說, "不, 我們不需要響應(yīng)式布局, 這只是桌面瀏覽器, 我們只是讓它靜態(tài)布局"。如果你的網(wǎng)站to c的, 你必須做響應(yīng)式布局, 因為現(xiàn)在移動時代,更多的用戶將使用他們的ios/android上面的移動瀏覽器查看。
不要在開發(fā)項目中直接使用 CSS。使用SASS?或者LESS.。您可以使用 ASP.NET Core輕松完成此項任務(wù)。您甚至可以添加Gulp、Grunt或者webpack來編譯 CSS。
如果您的代碼遵循?S.O.L.I.D Principle?原則進(jìn)行正確的開發(fā), 我相信, 遷移工作應(yīng)該是很容易的, 而不是太多的調(diào)整。但是, 如果您的代碼是意大利面條,則需要進(jìn)行重構(gòu),.NET Core默認(rèn)就使用依賴關(guān)系注入。這是ASP.NET常見最佳實(shí)踐,當(dāng)然是現(xiàn)在做更好, 而不是不做。好處也很多, 你可以學(xué)到一些新的東西, 您的新 web 應(yīng)用程序?qū)⒕哂懈玫男阅? 更加現(xiàn)代化和可維護(hù)性。
對老板說:遷移到. NET Core
我知道你的老板會回答什么, 是的, 那恐怖語句 "兼容嗎?"
我的建議是說: "是的, 它是兼容的! 他們都是. NET。但我們需要一些調(diào)整, 一些需要小的編碼更改,以符合編程的最佳實(shí)踐"
我們需要遷移到.NET Core的精神是, 如果不是現(xiàn)在, 那么何時?現(xiàn)在馬上就有發(fā)布.NET Core 2.1, 一切都改變了。技術(shù)發(fā)生了變化 (現(xiàn)代 Web 應(yīng)用程序、移動、增強(qiáng)現(xiàn)實(shí)等)、基礎(chǔ)結(jié)構(gòu)已更改 (云、AI)、開發(fā)體系結(jié)構(gòu)也已更改 (容器、無服務(wù)器) 等。
咱們這行業(yè)不尊重傳統(tǒng),只尊重創(chuàng)新. --- 微軟CEO Satya Nadella
沒那么容易
答案是肯定的。但是, 并不意味著不可能。它需要勇氣和知識。?愿. NET 力量與您同在!
相關(guān)文章:
.NET Core 在中國的現(xiàn)狀調(diào)研
.NET Core:新的快速開發(fā)平臺
中國到底有多少個.NET 程序員?都在哪個城市寫代碼?
2018 .NET開發(fā)者調(diào)查報告: .NET Core 是怎么樣的狀態(tài)
原文地址: http://www.cnblogs.com/shanyou/p/8996748.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的为什么 web 开发人员需要迁移到. NET Core, 并使用 ASP.NET Core MVC 构建 web 和 API的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 别跟我谈EF抵抗并发,敢问你到底会不会用
- 下一篇: 使用SonarCloud对.NET Co