.Net Core 会逆袭成为最受欢迎开发平台吗?
本文由葡萄城技术团队于博客园原创并首发
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。
.Net Core 是什么?
最新.Net Core 热词霸占了各个技术热搜,看来微软近年来发布的 .Net Core 还是成功了引起了大家的热烈讨论。如果您对微软熟悉,肯定是很了解.Net 平台,但是随着互联网的兴起,好像微软这个霸主的地位有所撼动。
.NET Core 是.NET Framework的新一代版本,是微软开发的第一个跨平台 (Windows、Mac OSX、Linux) 的应用程序开发框架(Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台。.Net Core也是微软在一开始发展时就开源的软件平台[1],由于 .NET Core 的开发目标是跨平台的因此 .NET Core 会包含 .NET Framework 的类别库,但与 .NET Framework 不同的是 .NET Core 采用包化 (Packages) 的管理方式,应用程序只需要获取需要的组件即可,与 .NET Framework 大包式安装的作法截然不同,同时各包亦有独立的版本线 (Version line),不再硬性要求应用程序跟随主线版本。
重点来啦:
- 跨平台:可在 Windows、macOS 和 Linux 操作系统上运行
- 跨体系结构保持一致:在多个体系结构(包括 x64、x86 和 ARM)上以相同的行为运行代码
- 命令行工具:包括可用于本地开发和持续集成方案中的易于使用的命令行工具。
- 部署灵活:可以包含在应用或已安装的并行(用户或系统范围安装)中。 可搭配 Docker 容器使用
- 兼容性: .NET Core 通过 .NET Standard 与 .NET Framework、Xamarin 和 Mono 兼容
- 开放源代码: .NET Core 平台是开放源代码,使用 MIT 和 Apache 2 许可证。 .NET Core 是一个 .NET Foundation 项目
- 强劲性能:超强的后台性能,超出.Net Framework
- 支持命令行执行所有操作
.Net Core 当前的现状是什么
目前可以看到很多传统行业的信息系统也在逐渐升级平台,而且很多大的互联网公司也已经使用,毕竟一次开发即可实现跨平台的部署及应用,也是减少成本的重要体现。
可以确定.Net Core 是未来的发展趋势。 .Net FrameWork也会延续使用,毕竟短期内迁移一些大型项目是很有难度的,而且也不太可能。.Net Core 和.Net FrameWork 的关系就如同是新能源汽车和传统稳定的油耗汽车。油耗汽车已经经历了多年的发展,技术非常成熟稳定,可以放心自由的使用。而新能源汽车是一个新兴的技术,也是未来将要取待传统技术的未来发展方向,所以使用.Net Core 开发项目必须越早越好。
.Net Core 与. Net FrameWork 对比:
.NET Core |
.NET Framework |
跨平台 (OS platform): 支持Windows, Linux, 及 macOS |
仅支持在 Windows运行 |
安装过程是独立,端对端,可以在同一计算器中为应用程序指定独立的.Net Core 版本。 |
一台计算机上的所有应用程序都在同一.NET Framework版本上运行 |
高性能:在集合,数学,正则表达式,字符串,文件等方面都有提升。. |
高兼容性 |
开源: 基于.NET平台既可以根据 MIT或 Apache 2 授权 |
与最广泛的NuGet软件包,第三方库和内部库兼容 |
v2.0 实现了.NET Standard 2.0¹ |
v4.6.1+ 以上版本支持s .NET Standard 2.0 |
使用.Net Core 优势:
1. 支持在任何平台部署,跨平台几乎没有任何成本
2. 庞大的.Net 标准库支持
3. 面向高性能的服务器开发,基于 微软 Azure云的平台优势,已提供高性能的服务。
4. 高性能和可移植性
5. 兼容多平台
如何平滑的迁移项目至.Net Core 平台
很多原有的项目是基于.Net FrameWork 开发的,可能是 Windows. WPF, ASP.NET MVC,那本身的局限是只能在Windows系统部署外,还涉及到一些核心功能的实现。传统框架的种种不足,需要大的突破和改变。这意味着打破变化,但结果是值得期待的。
迁移原有项目到新的.Net Core 平台意味着你可以保留旧项目的所有核心业务功能,不需要重构整个项目,从0开始开发。以下是我们根据经验给出了几类的应用的迁移难度。
项目类型 |
迁移难易程度 |
Web 应用: ASP.NET MVC |
简单 |
WebForm 应用 |
不建议迁移,因为.Net Core 支持 WebForm |
Windows 应用 (Universal Framework) |
不需要迁移 |
Windows 应用(基于Sliverlight) |
简单 |
WPF 及WinForms 桌面应用 |
复杂 |
控制台应用 |
简单 |
1. 迁移还是重构
如果针对前端项目,迁移是最佳选择,毕竟前端代码均可复用,唯一要改动的就是后端代码。尽管.Net Core 和.Net Frame Work 项目都是基于C# 语言做开发的,然而两者是不同的运行机制。所以如果是后端很重的项目,还是建议重写,这样也会利用一些新技术的优势。
2. NuGet 包
在迁移之前,需要确认引用的.Net 标准库是否在.Net Core中支持或丢弃,如果不支持的话,就需要考虑如何用新的包代替或者当前功能的重构。
.Net 标准包是在.Net 4.6.1 和.Net Core 中都可使用的,所以只需要可以使用该技术升级旧的PCL。如果你添加了.Net 标准库的引用,同样也可以在.Net Core 项目中使用。
3. Html / JavaScript / CSS 复用
可以将这些文件直接复制到.NET Core解决方案中。 但是,请确保更改代码中的文件路径,例如CSS中的图像路径。 因为经典的ASP.NET / MVC模板使用“ / Content /”目录,而.NET Core使用“ / css /”,“ / js /”,“ / lib /”等。对此没有任何限制,它们只是约定而已 。
如何选择.Net Core 的开发工具
在开发项目时候,新的平台和技术总是带给你项目的一些新的重大突破功能,比如性能,比如核心功能提升,所以不仅我们的项目要一直跟随升级,我们所选择的开发工具,也要紧跟技术前沿,甚至要领先于我们的项目升级进度,为我们开发项目始终提供最有力的技术支持。
.NET Core是多平台应用程序的未来。 如我们所见,.NET Core提供了传统框架不支持的强大的本机新功能。 另一方面,.NET Core并不完全支持所有现有的应用程序类型进行迁移,尤其是那些与Windows OS紧密集成的应用程序类型,因此必须仔细考虑并计划这些挑战。
所以我们在选择新平台的同时,也需要考虑一些辅助开发的工具。以及这些工具在该领域的技术背景,是否足够稳定,是否有足够明确的未来,甚至比我们更能预先跟踪未来的技术栈,以始终在我们迁移新项目的时候提供辅助工具。
这里推介一些支持.Net Core 平台的开发控件:
- API Protability Tool。这是一款辅助.net开发者在不同的开发框架上迁移源代码工程的静态代码审查工具。由于.net framework具有多个历史版本,并且.net core以及Xamarin等开发框架在基础类库中实现API数量和类型有很多的不一致情况。.net开发者想把自身源代码升级到更高的.net版本或者迁移到其他的.net开发框架上,会面临很多API调用不兼容的问题。该工具就是帮助.net开发者审查.net项目的源代码,并生成审查报告,快速帮助开发人员找到不兼容代码行以及协助评估迁移工作量。
- PostMan,Postman是一款支持跨平台的应用程序,用来帮助开发者快速构建和测试REST API 服务。Postman可以模拟HTTP请求的所有谓词,用于REST API的测试。
- Visual Studio Code , Visual Studio Code是跨操作系统平台的轻量级代码编辑器。支持绝大多数主流语言编译和调试的能力。
综上所述,无论从其性能和生态上预测,.NET Core 都极有可能成为最受欢迎的开发平台,不过,当前国内仅有腾讯、阿里等厂家愿意试水,葡萄城作为一家具备30多年开发经验的软件厂商,同样也在持续对.NET控件进行更新迭代。
如果您有 .NET Core及其衍生技术和开发工具的需求,请访问葡萄城官网了解详情。
.Net Core 会逆袭成为最受欢迎开发平台吗?的更多相关文章
- [转帖]浪潮openstack的逆袭
扬长补短 浪潮云平台的逆袭 http://blog.itpub.net/11310314/viewspace-2564083/ 浪潮并不是最早加入OpenStack的国内厂商,却实现同比303.1%的 ...
- 从前端到全栈:JavaScript逆袭之路
JavaScript如何做到上天入地无所不能?JavaScript真的能一统江湖吗? 背景 近年来,前端技术日新月异,前端已经不仅仅是网页,更多的开始由狭义向广义发展. 先后涌现出了具备后端能力的no ...
- 面渣逆袭:Java并发六十问,快来看看你会多少道!
大家好,我是老三,面渣逆袭 继续,这节我们来盘一盘另一个面试必问知识点--Java并发. 这篇文章有点长,四万字,图文详解六十道Java并发面试题.人已经肝麻了,大家可以点赞.收藏慢慢看!扶我起来,我 ...
- 面渣逆袭:Java基础五十三问,快来看看有没有你不会的!
大家好,我是老三, 面渣逆袭 系列继续.这节我们回到梦开始的地方--Java基础,其实过了萌新阶段,面试问基础就问的不多,但是保不齐突然问一下.想一下,总不能张口高并发.闭口分布式,结果什么是面向对象 ...
- 面渣逆袭:RocketMQ二十三问
基础 1.为什么要使用消息队列呢? 消息队列主要有三大用途,我们拿一个电商系统的下单举例: 解耦:引入消息队列之前,下单完成之后,需要订单服务去调用库存服务减库存,调用营销服务加营销数据--引入消息队 ...
- 面渣逆袭:Spring三十五问,四万字+五十图详解
大家好,我是老三啊,面渣逆袭 继续,这节我们来搞定另一个面试必问知识点--Spring. 有人说,"Java程序员都是Spring程序员",老三不太赞成这个观点,但是这也可以看出S ...
- Javascript:一个屌丝的逆袭
HTML负责结构, CSS负责展示, 而我(加上AJAX, JSON) 负责逻辑.于是前端编程三剑客形成了. http://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExN ...
- 屌丝逆袭--Asp.net快速入门学习教程 第1晚
本人屌丝一名,因工作原因,不能白天学习编程,所以只能做夜猫子学习编程,期待一天能逆袭成一名高帅富的技术大牛(靠,都想到流口水了........囧). 本教程记录本屌丝学习Asp.net的过程,大牛就飞 ...
- 小课堂Week10 例外处理设计的逆袭Part3
小课堂Week10 例外处理设计的逆袭Part3 今天是<例外处理设计的逆袭>这本书阅读的第三天,也是最后一天,我们会主要通过实例,对Part2中提出的例外处理等级进行解读. Level1 ...
随机推荐
- JQuery踩过的坑,遇到就记下
1 乱用选择器 坑人指数:200 JQuery选择器调用代价很大,反复调用效率更低.应采用缓存对象的方法或采用链式调用的方式. //错误的写法 $("#button").click ...
- Jenkins 实现 ldap认证
使用自己搭建的openldap: 使用Test LdapSetting测试的结果: 所测试的用户在:svn,jenkins,gitlab,sonarqube,wpsadmin组下 若用户不在jenki ...
- Node教程——API接口开发(Node版的CRUD通用接口的搭建)(MangoDB+Express_Version2)
1. 概述 时间跨度有点大,之前就跟大家唠嗑过一些知识点,也开启了一个Node书写一个后台api项目的开始,出于各种原因,迟迟没有更新博文.现在我把这个坑填上,如果你还有阅读过我之前的文章,我建议你先 ...
- MySQL数据库回表与索引
目录 回表的概念 1.stu_info表案例 2.查看刚刚建立的表结构 3.插入测试数据 4.分析过程 5.执行计划 回表的概念 先得出结论,根据下面的实验.如果我要获得['liu','25']这条记 ...
- webpack4多页应用HTML按需添加入口依赖chunk【html-webpack-plugin & html-inline-entry-chunk-plugin】
在webpack4中使用splitChunkPlugin时,根据需要将公共代码拆分为多个依赖后,需要在创建htmlWebpackPlugin时候按需引入对应入口文件依赖的chunk.但是html-we ...
- Codeforces1176B(B题)Merge it!
B. Merge it! You are given an array aanna1,a2,…,ana1,a2,…,an In one operation you can choose two ele ...
- Jquery动画,排队与并发
一.事件绑定 1.鼠标事件:模拟触发 什么是模拟触发? 虽然没有点在按钮上,也可以触发按钮的事件处理函数. 如何:$元素.trigger("事件名") 即使没有点在指定的元素上,也 ...
- pipeline的使用示例
搭建就不说了,直接示例如何使用pipeline. 一.以下输入参数:版本号为字符参数,按文档更新的是文本参数. 二.脚本对更新内容的处理如下: file_update_list="/home ...
- 《机器学习_07_03_svm_核函数与非线性支持向量机》
一.简介 前两节分别实现了硬间隔支持向量机与软间隔支持向量机,它们本质上都是线性分类器,只是软间隔对"异常点"更加宽容,它们对形如如下的螺旋数据都没法进行良好分类,因为没法找到一个 ...
- 网页导出成word文档的默认视图方式问题
网页导出成word文档的默认视图方式问题 一般保存后的word文档默认是“Web版式视图”打开,这样会给客户的感觉不是真正的word文档,必须实现打开就是“页面视图” 1. 修改<html> ...