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

或者安卓(.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

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

如果用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

为什么 web 开发人员需要迁移到. NET Core, 并使用 ASP.NET Core MVC 构建 web 和 API相关推荐

  1. 有抱负的Web开发人员应考虑的6件事

    Becoming a web developer can be as challenging as working out every day. 成为网络开发人员就像每天锻炼一样具有挑战性. It's ...

  2. 二次开发photoshop_Photoshop 101:Web开发人员简介

    二次开发photoshop 介绍 (Introduction) Often, when working as web developer, we need to integrate templates ...

  3. selinux会阻碍挂载嘛_为什么追求完美可能会阻碍您成为新手Web开发人员

    selinux会阻碍挂载嘛 by Rick West 由里克·韦斯特(Rick West) 为什么追求完美可能会阻碍您成为新手Web开发人员 (Why striving for perfection ...

  4. “我不是个优秀的 Web 开发人员,我只是擅长搜索谷歌”

    [CSDN 编者按]Khaliq Gant 是一名有着八年工作经验的全栈 Web 开发人员,正是他创建了网站Dev Diaries(https://www.dev-diaries.com/).但是尽管 ...

  5. 有抱负的 Web 开发人员应该在 2021 年学习的 10 件事

    大家好,如果您是一名 Web 开发人员,并且想知道 2021 年应该学习哪些内容以将您的技能提升到一个新的水平,或者想在 2021 年成为一名前端开发人员,但不确定哪些技术.工具.框架.语言,和图书馆 ...

  6. web开发技术情况_如何在不失去思想的情况下成为Web开发人员

    web开发技术情况 by Julie Torres 通过朱莉·托雷斯(Julie Torres) 如何在不失去思想的情况下成为Web开发人员 (How to Become a Web Develope ...

  7. VS Code 新扩展,面向 Web 开发人员调试 DOM

    微软项目经理 Paul Gildea  发博说,他们针对 Web 开发人员,发布了一个新的 VS Code 扩展-- Elements for Microsoft Edge,这个扩展还是一个预览版,目 ...

  8. Web开发人员月报2018年9月

    第三期! 如果您错过了过去的两个月,请在 此处 和 此处查看 . 如果这是您第一次来- 成为网络开发人员是一种绝佳的职业选择. 您有很多工作机会,可以在世界各地工作,并且可以解决难题. 然而,一件困难 ...

  9. web.g.cs_我没有CS学位而从零开始成为Web开发人员的旅程(以及我从中学到的东西......

    web.g.cs by Sergei Garcia 通过谢尔盖·加西亚(Sergei Garcia) 我没有CS学位而从零开始成为Web开发人员的旅程(以及从中学到的东西) (My journey t ...

最新文章

  1. 【radar】毫米波雷达-相机-激光雷达融合相关论文汇总(特征融合、RPN融合、弱监督融合、决策融合、深度估计、跟踪)(5)
  2. 初识JavaScript(二)
  3. UA MATH566 统计理论1 充分统计量
  4. 用package.json配置NodeJS项目的模块声明
  5. 云栖大会|十年阿里云存储进化史:今天最好的表现就是明天最低的要求
  6. 自动特征工程、NAS、超参调优和模型压缩,微软开源的NNI一库搞定!
  7. 第十届常州国际动漫艺术周
  8. 承接各类软件开发项目
  9. 为什么越有钱的人越轻松
  10. golang 定义一个空切片_Golang切片 一个隐讳的坑
  11. linux wget安装mysql_linux安装mysql
  12. 《逆袭进大厂》之C++篇49问49答(绝对的干货)
  13. IDEA构建Spring源码
  14. 智方8000系房地产进销存管理系统 flash软件下载
  15. PTA---计算天数
  16. CS_2022_01
  17. python 标签_Python DataFrame中 打标签/归类 的6种方法
  18. KVM管理虚拟机:常用命令
  19. day15-Linux的优化
  20. 【附源码】计算机毕业设计SSM人脸识别考勤系统

热门文章

  1. Optaplanner终于支持多线程并行运行 - Multithreaded incremental solving
  2. 多线程-单生产单消费模型
  3. python字符串格式化方法 format函数的使用
  4. 重装系统后恢复oracle数据
  5. 纯IPv6环境App适配的坑
  6. 添加CSS的四种方式
  7. 第2天.make的学习(第二部分)对伪目标的理解
  8. 文件用户如何将一个有界面的正常app和一个或多个越狱插件.deb同时安装到手机上...
  9. 【Silverlight5矢量打印】如何用C#代码检测打印机和驱动是否支持PostScript
  10. EF 更新大量的数据时出现重复键错误