百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 博客教程 > 正文

浅谈.net framework与.net core的区别

connygpt 2024-11-28 08:06 9 浏览

从零开始用C#做产品系列教程索引(.netcore winform) 此前做了一个基于.net core+winform系列教程,今天收到一个提问:既然都不能跨平台,那选择.net core的理由是什么呢?

这个问题字不多,但实际可扩展的内容有很多,不是一两句话能概括清楚的。归根结底在于.net core与.net framework能干的事情都太多了,无法一概而论。我用framework时间不算短,从.net framework 1.1开始做项目有十几年的时间了,但对.net core的使用,我是一个新兵,今年下半年才开始接触,并没有做过真正的项目,可能还有些坑没踩过。以下分别从windows桌面应用和Web应用来谈下我的个人观点,供大家参考。


开发windows桌面应用


功能表现

在windows平台下,framework跟.net core能实现的功能基本是一样的。由于二者无法共享类库,所以第三方类库的使用上是有些差别的。由于历史原因,framework的可能选择更多些,.net core的可能更新快些,但随着时间的推移,天平会向.net core倾斜。

至于性能,有人说.net core比framework快很多。这个我没测试过,不过相比其他语言,framework已经挺快了。

开发环境

实际开发中,感觉目前的VS下,用framework要比.net core更稳定。我在用.net core的时候,vs2019经常会卡死,尤其是做界面UI设计时,framework从来没有这种问题。应该还是某些地方的兼容性做得不够好。

程序发布

虽然都是只能在windows平台运行,但发布方式.net core要有所超越。framework必须依赖framework框架,系统如果没安装framework,那发布的程序就无法运行。而.net core可以选择不同的发布形式,可以独立发布即不依赖框架运行,比如我上面提到的教程,编译后独立运行程序打包完20多M,相比Framework动辄上百M,框架比程序大多了,对用户来说实在不大友好。

兼容性

framework2.0、framework4.0可以运行在老一点的机器上,比如xp,但.net core就没办法了运行了。

跨平台

目前winform方式,.net core和framework都没办法跨平台。但其实.net core是可以跨平台的,只是目前微软还没有推出跨平台的UI框架,计划于11月份要发布的MAUI就是解决这个困境的,可以期待一下。有些人不看好,我是比较乐观的,对微软来说,技术从来都不是最大的问题。

跨平台,.net core大概率是可以实现的,现在做的都可以看成是为了跨平台而做的积累,等到时机成熟了,你可以很容易地实现跨平台,而framework注定是无法跨平台的。


web应用

web开发,现在网上基本上都大谈MVC、VUE等等,很少有人再谈webform了,我其实是有不同看法的。在我看来,framework和.net core完全就是两个不同的体系,分别适应两种不同的定位。

开发模式

framework是界面、逻辑、数据一体。有人把这个称为噩梦,因为他们认为这样混在一起过于混乱。事实上这种方式对个人开发者,开发效率是非常高的。页面拖放一个控件,后台代码查询,数据就呈现了,感觉不好看就调下css,有动态交互就用ajax+jquery,随便做一个页面的话可能几分钟就能看到雏形了,特别适合对界面要求不高、用户交互不多的独立开发者。

.net core是MVC方式,说白了就是前后端分离,前端负责美和用户体验,后端只负责提供提供数据。这种模式天生就是为团队开发而设计的,多人并行作战,缩短项目时间。但是单人开发,就略显臃肿了,本来一个页面就能完成的事,要好几步才能搞出来。

.net core不再支持webform,我觉得对个人开发者是一个损失。但个人开发者从来都不是主流,适应商业才能更好地活下去,微软也一样。

跨平台

.net core在web开发上是可以跨平台的,据说是可以部署在Linux上,只是我没有亲自测试过,不敢断言。framework则完全没办法,只能依赖于windows server的IIS。

不过话说回来,对独立开发者,网站规模不会很大,现在云服务器都是自带授权的,根本没有版权的问题。想节省费用,还是实实在在的考虑如何优化流量吧,这种意义的跨平台对独立开发者实际作用并不大。


总结

对开发Windows桌面应用:

基于原framework框架下已经开发好的项目或产品,没有必要转到.net core再做一遍,因为不会带来实质性的进步;

新的项目建议直接上.net core,做好业务与UI的分离设计,毕竟未来有跨平台可期;

对开发Web应用:

技术比较全面的个人开发者,我还是建议Framework,毕竟开发效率高。

在公司做项目的,那还是老老实实的.net core吧,公司讲究的是团队配合。


相关推荐

3分钟让你的项目支持AI问答模块,完全开源!

hello,大家好,我是徐小夕。之前和大家分享了很多可视化,零代码和前端工程化的最佳实践,今天继续分享一下最近开源的Next-Admin的最新更新。最近对这个项目做了一些优化,并集成了大家比较关注...

干货|程序员的副业挂,12个平台分享

1、D2adminD2Admin是一个完全开源免费的企业中后台产品前端集成方案,使用最新的前端技术栈,小于60kb的本地首屏js加载,已经做好大部分项目前期准备工作,并且带有大量示例代码,助...

Github标星超200K,这10个可视化面板你知道几个

在Github上有很多开源免费的后台控制面板可以选择,但是哪些才是最好、最受欢迎的可视化控制面板呢?今天就和大家推荐Github上10个好看又流行的可视化面板:1.AdminLTEAdminLTE是...

开箱即用的炫酷中后台前端开源框架第二篇

#头条创作挑战赛#1、SoybeanAdmin(1)介绍:SoybeanAdmin是一个基于Vue3、Vite3、TypeScript、NaiveUI、Pinia和UnoCSS的清新优...

搭建React+AntDeign的开发环境和框架

搭建React+AntDeign的开发环境和框架随着前端技术的不断发展,React和AntDesign已经成为越来越多Web应用程序的首选开发框架。React是一个用于构建用户界面的JavaScrip...

基于.NET 5实现的开源通用权限管理平台

??大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标!??今天小编推荐一款基于.NE...

StreamPark - 大数据流计算引擎

使用Docker完成StreamPark的部署??1.基于h2和docker-compose进行StreamPark部署wgethttps://raw.githubusercontent.com/a...

教你使用UmiJS框架开发React

1、什么是Umi.js?umi,中文可发音为乌米,是一个可插拔的企业级react应用框架。你可以将它简单地理解为一个专注性能的类next.js前端框架,并通过约定、自动生成和解析代码等方式来辅助...

简单在线流程图工具在用例设计中的运用

敏捷模式下,测试团队的用例逐渐简化以适应快速的发版节奏,大家很早就开始运用思维导图工具比如xmind来编写测试方法、测试点。如今不少已经不少利用开源的思维导图组件(如百度脑图...)来构建测试测试...

【开源分享】神奇的大数据实时平台框架,让Flink&Spark开发更简单

这是一个神奇的框架,让Flink|Spark开发更简单,一站式大数据实时平台!他就是StreamX!什么是StreamX大数据技术如今发展的如火如荼,已经呈现百花齐放欣欣向荣的景象,实时处理流域...

聊聊规则引擎的调研及实现全过程

摘要本期主要以规则引擎业务实现为例,陈述在陌生业务前如何进行业务深入、调研、技术选型、设计及实现全过程分析,如果你对规则引擎不感冒、也可以从中了解一些抽象实现过程。诉求从硬件采集到的数据提供的形式多种...

【开源推荐】Diboot 2.0.5 发布,自动化开发助理

一、前言Diboot2.0.5版本已于近日发布,在此次发布中,我们新增了file-starter组件,完善了iam-starter组件,对core核心进行了相关优化,让devtools也支持对IAM...

微软推出Copilot Actions,使用人工智能自动执行重复性任务

IT之家11月19日消息,微软在今天举办的Ignite大会上宣布了一系列新功能,旨在进一步提升Microsoft365Copilot的智能化水平。其中最引人注目的是Copilot...

Electron 使用Selenium和WebDriver

本节我们来学习如何在Electron下使用Selenium和WebDriver。SeleniumSelenium是ThoughtWorks提供的一个强大的基于浏览器的开源自动化测试工具...

Quick 'n Easy Web Builder 11.1.0设计和构建功能齐全的网页的工具

一个实用而有效的应用程序,能够让您轻松构建、创建和设计个人的HTML网站。Quick'nEasyWebBuilder是一款全面且轻巧的软件,为用户提供了一种简单的方式来创建、编辑...