为何 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 力量与您同在!

相关文章
相关标签/搜索