为什么 web 开发人员需要迁移到. NET Core, 并使用 ASP.NET Core MVC 构建 web 和 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
TechnologyFirst Release 2002 (Mature)First Release 2016 (Mature)
Latest Version4.7.2 (Reference Source)2.0.6 (Open Source Software)
SDK Version 2.1.3
SDKWindows 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 Performance57,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/EditorVisual 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 FrameworkWeb 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)
FrontendPlain 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

或者安卓(.net core 2 可以直接开发android程序,第一次注意到这个),

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

它将从框中列出可用模板。这是你可能会看到的,

640?wx_fmt=png

如果用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 Edge、 Chrome、 Firefox等的标准。因为每个浏览器都有自己的功能, 称为平台标准, 而某些浏览器平台功能不成为 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 力量与您同在!


相关文章:

原文地址: http://www.cnblogs.com/shanyou/p/8996748.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321382.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【动态规划】 摆花 【NOIp普及组 2012 第三题】 (ssl 2360/luogu 1077)

摆花摆花摆花 题目大意 有n种花,每种花有ai支,取m支,有多少种取法?(同一种花取第1,第3支和取第1,第2支算一种取法) 解题方法: 用f[i][j]来表示前i种选j支的方案数&…

使用SonarCloud对.NET Core项目进行静态代码分析

本文将介绍如何使用SonarCloud进行.NET Core项目的静态代码分析。SonarCloud是SonarQube提供的基于云的版本,特别针对于开源项目是免费的。首先,在sonarcloud.io创建一个账号,你可以使用Github/BitBucket/Microsoft Live账户进行注册&#xf…

Build 2018,给你带来全新的开发者体验, .NET Core 3.0带来桌面支持

Build 2018 主旨演讲的主题是 Azure 云和 AI、物联网、AR等技术,以及开发者相关内容的宣布。在今天的Build大会上,微软宣布目前已有超过7亿台设备运行Windows 10系统。去年这个数字为5亿。Office 365目前每个月有1.35亿活跃的商业用户,去年为…

《你必须掌握的Entity Framework 6.x与Core 2.0》书籍出版

前言到目前为止写过刚好两百来篇博客,看过我博客的读者应该大概知道我每一篇博客都沿袭着一贯的套路,从前言到话题最终到总结,本文依然是一如既往的套路,但是不是介绍技术,也可说是介绍技术,不过是介绍书中…

.NET Core玩转机器学习

ML.NET 专门为.NET开发者提供了一套跨平台的开源的机器学习框架。ML.NET支持.NET开发者不需要过度专业的机器学习开发经验,就能轻松地训练自己的模型,并且嵌入到自己的应用中。一切尽在.NET之中。ML.NET早期是由Microsoft Research开发,近十年…

【记忆化搜索】【线性化DP】滑雪 (ssl 1202/luogu 1434/pku 1088)

滑雪滑雪滑雪 ssl 1202 luogu 1434 pku 1088 题目大意: 有一个N*M的矩阵,每个位置都有一个数,可以从大的数走向小的数,问可走的路最长是多少 原题 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获…

微软Build 2018展示Visual Studio功能:跨系统云编程

5 月 8 日凌晨消息,微软 Build 2018 开发者大会在今天正式来开帷幕。很明显整场发布会被分为了上下两个部分,上半场如果说是聊一些技术实现和愿景,那下半场就应该说是实战说明了。跨平台云端编程了解下微软在现场展示了 Visual Studio&#x…

利用Skywalking-netcore监控你的应用性能

SkywalkingSkyWalking开源项目由吴晟于2015年创建,同年10月在GitHub上作为个人项目开源。SkyWalking项目的核心目标,是针对微服务、Cloud Native、容器化架构,提供应用性能监控(APM)和分布式调用链追踪能力。2017年11月…

async/await 的基本实现和 .NET Core 2.1 中相关性能提升

前言这篇文章的开头,笔者想多说两句,不过也是为了以后再也不多嘴这样的话。在日常工作中,笔者接触得最多的开发工作仍然是在 .NET Core 平台上,当然因为团队领导的开放性和团队风格的多样性(这和 CTO 以及主管的个人能…

使用Swashbuckle构建RESTful风格文档

本次和大家分享的是Swagger to WebApi的nuget包Swashbuckle;因为项目需要统一api文档的风格,并要支持多种开发语言(C#,java,python),所以首先想到的是swagger来构建api文档,本章讲解…

【dfs】【bfs】【链表】 求连通分量 (ssl 1759)

求连通分量 ssl 1759 题目大意 由n个点组成的无向图&#xff0c;求连通在一起的点数最大是多少 原题 求一个图的连通分量 Input n 顶点数(<100) 边 Output 连通分量 Sample Input 8 6 3 1 2 2 5 5 4 4 1 8 7 0 0 Sample Output 4 方法一&#xff08;dfs …

发布 Rafy .NET Standard 版本 Nuget 包

去年年中&#xff0c;Rafy 框架的源码就已经支持了 Net Standard 2.0 版本。其开源代码也已经上传到 Github 中&#xff1a;https://github.com/zgynhqf/rafy/tree/NetStandard2.0 。但是这都只是在源码层面支持 NS2.0&#xff0c;并没有发布其正式的 Nuget 包。要使用这个版本…

你关心才值得分享 | K8S网络安全之访问控制技术实践

(请允许我插播下广告&#xff0c;便于其它伙伴了解趣码 Cloud Coder)还是那句话&#xff0c;你关心才值得分享~最近的一起分享就在5.10本周四晚&#xff0c;精彩千万不要错过&#xff01;Hi&#xff0c;你是不是也曾觉得K8S&#xff08; Kubernetes &#xff09;网络安全话题范…

从Xamarin.Essentials谈Xamarin库的封装

编者语&#xff1a;Xamarin在国内的推广还需要努力&#xff0c;其实这真的是移动端开发的一大福音&#xff0c;毕竟用一份代码的时间可以生成iOS/Android/Windows/Linux/macOS/Tizen多个平台&#xff0c;而且是原生的性能。Xamarin在Build 2018发布的新功能有Xamarin.Essential…

【最短路】【图论】【Floyed】牛的旅行(ssl 1119/luogu 1522)

牛的旅行 ssl 1119 luogu 1522 题目大意 有两堆点&#xff0c;每一堆点之中的任何两个点都一定有相连的路线&#xff0c;连接两堆点中的各一个点&#xff0c;使最远的两个点的距离最短 原题 农民John的农场里有很多牧区。有的路径连接一些特定的牧区。一片所有连通的牧区称…

用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识

什么是RESTREST 是 Representational State Transfer 的缩写. 它是一种架构的风格, 这种风格基于一套预定义的规则, 这些规则描述了网络资源是如何定义和寻址的.一个实现了REST这些规则的服务就叫做RESTful的服务.最早是由Roy Fielding提出的.RPC 风格/getUsers/getUser?id1/c…

使用ML.NET预测纽约出租车费

有了上一篇《.NET Core玩转机器学习》打基础&#xff0c;这一次我们以纽约出租车费的预测做为新的场景案例&#xff0c;来体验一下回归模型。场景概述我们的目标是预测纽约的出租车费&#xff0c;乍一看似乎仅仅取决于行程的距离和时长&#xff0c;然而纽约的出租车供应商对其他…

使用ML.NET实现情感分析[新手篇]

在发出《.NET Core玩转机器学习》和《使用ML.NET预测纽约出租车费》两文后&#xff0c;相信读者朋友们即使在不明就里的情况下&#xff0c;也能按照内容顺利跑完代码运行出结果&#xff0c;对使用.NET Core和ML.NET&#xff0c;以及机器学习的效果有了初步感知。得到这些体验后…

潘正磊:再过三五年 AI会变成开发人员的基本概念

在微软Build 2018开发者大会上&#xff0c;微软公司全球开发平台事业部的资深副总裁潘正磊&#xff08;Julia Liuson&#xff09;接受了界面记者在内的采访。潘正磊在微软西雅图总部带领一千多人组成的团队&#xff0c;微软的开发工具&#xff0c;包括Visual Studio&#xff0c…

qMISPlat入门级使用问题解答一

qMISPlat 2.0(业务配置开发平台) 自2018-4-18号正式开源以来&#xff0c;得到了众多.net core爱好者的关注&#xff0c;现将近半个月以来&#xff0c;大家反馈的一些使用配置方面的问题统一作如下解答。如你对qMISPlat不了解&#xff0c;请查看文章qMISPlat产品介绍。一、从码云…