為什麼 web 開發人員需要遷移到.NET Core,並使用 ASP.NET Core MVC 構建 web和API
2018 .NET開發者調查報告: .NET Core 是怎麼樣的狀態,這裡我們看到了還有非常多的.net開發人員還在觀望,本文給大家一個建議。這僅代表我的個人意見, 我有充分的理由推薦.net 程序員使用. net core而不是. net Framework。有些人可能不同意我的觀點, 但是分享想法和討論它是好的。.net 程序員或他們所在的團隊總有各種理由說他們的系統還在使用舊系統, 這顯然是企業開發人員的事情。所以, 我將列出一些關於誰應該遷移到使用. net core而不是. net 框架。以下是我的想法:
如果您是舊式Windows 服務、web 應用程序或 web 服務的維護者, 則您需要繼續使用. NET 框架。
如果您的應用程序將部署在舊的 Windows 伺服器上,比如windows 2003/xp, 您需要繼續使用. NET 框架。
如果您確信您的系統近期不會部署到雲中, 那麼您現在就可以繼續使用. NET 框架。
如果您對使用. 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的部分, 您可以點擊每個鏈接以獲取開發的工具。
只需要5分鐘入門使用. NET Core
如果您在移動筆記本上看這篇文章, 請下載並安裝當前操作系統 (Windows、Linux、Mac) 的. NET Core SDK 。您不需要安裝 Visual Studio 2017 就可以使用命令行開發. NET Core應用。你完成安裝 SDK 後, 打開Shell或PowerShell(在 Windows 中)、終端(在 Linux 或 Mac 中), 輸入以下命令:
恭喜您, 你已經使用. NET Core 創建了第一個控制台應用程序。現在, 您可以通過將此應用程序發布到所需的任何平台來部署。在 Mac 機上,
或者安卓(.net core 2 可以直接開發android程序,第一次注意到這個),
下面是runtime identifier catalog 的完整列表。那麼, 這個命令實際上做了什麼:
當我們運行這個命令時, 它實際上是在文件夾中創建一個控制台應用程序項目。如果您查看文件夾, 則應該看到以下文件
文件本身只是一個簡單的Hello world。
using System;
namespace myApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
如果執行此命令,
它將從框中列出可用模板。這是你可能會看到的,
如果用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。你可以參考以下老代碼遷移策略:
如果你的的 web 應用程序使用web form, 則不能直接將其轉換或遷移到 ASP.NET Core。 因為 Web form和 MVC 有著完全不同的體系結構模型。MVC 使用模型、視圖和控制器的分離。也沒有 webform 控制項組件 (如 web 窗體)。ASP.NETCore MVC 使用純 HTML5 元素。當然您可以使用TagHelpers來創建自定義 HTML 屬性, 這些特性將轉換為普通 HTML5。
如果你的 web 應用程序使用的是 ASP.NET MVC 5, 則你可以首先創建一個新的 ASP.NET Core MVC 項目,複製粘貼某些代碼到 ASP.NET Core。這將需要一些調整, 特別是在RazorPage。
如果你的 web 應用程序只是一個 web api , 則你可以首先創建一個新的 ASP.NET Core Web API項目,不是簡單複製一些代碼。這裡需要做些調整, 因為 ASP.NET Core web api 使用的是 web api 2。
使用 HTML5! HTML5 僅用於現代 web 應用程序標準。使用來自W3C(萬維網聯合體) 標準的HTML5。而不僅僅是來自Microsoft Edge、Chrome、Firefox等的標準。因為每個瀏覽器都有自己的功能, 稱為平台標準, 而某些瀏覽器平台功能不成為 W3C 標準。如果只使用 chrome 功能標準, 則 web 可能只會被 chrome 綁定, 並且無法在其他瀏覽器上打開。並非所有瀏覽器都支持其他瀏覽器功能。
響應式布局,響應式布局,響應式布局! 重要的事情要說三遍。我們時常聽到開發者說, "不, 我們不需要響應式布局, 這只是桌面瀏覽器, 我們只是讓它靜態布局"。如果你的網站to c的, 你必須做響應式布局, 因為現在移動時代,更多的用戶將使用他們的ios/android上面的移動瀏覽器查看。
不要在開發項目中直接使用 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 力量與您同在!
※使用CoreRT將.NET Core發布為Native應用程序
※ASP.NET Core MVC 2.1 頂級參數驗證
TAG:dotNET跨平台 |