个人资料

主页 博客 留言板 搜索
跳过导航链接首页 > 博客列表 > 博客正文

微软抛弃微软.Net了吗?Net技术的未来在哪里,浅谈微软技术路线

分类

Winform:优点是简单易学,缺点是界面做不好看,适应能力很差。

Wpf:微软结合了显卡渲染技术推出的界面设计方式,模仿html推出了自己的xaml,winform能实现的wpf都能实现,因为wpf有一个WindowsFormsHost控件,他是为托管winform控件做准备的,比如wpf没有chart控件,可以直接托管一个winform下面chart。比如:

需要引用System.Windows.Forms.DataVisualization

      


wpf可以做出自适应布局,做出更炫的动画,所以wpf是很值得学习的,完全可以替代winform,实际上我已经很久不碰winform了。winform和wpf之间转换是相当容易的,因为.net框架是一样的,变化不大,唯一阻碍就是xaml,但wpf同样可以拖控件,还能说什么呢。

Uwp:uwp是wpf的进化也是wpf的退化,为什么这么说?先说说uwp的优点吧,uwp的优点就是跨平台(这里所谓的平台仅仅是微软自己的平台,wp和pc for win),这可以说是进化,退化就是很多wpf的功能被uwp扔掉了,而且编译出的程序只能在windows应用商店发布,也就是说uwp非常封闭。wpf使用的是传统的.net框架,做出来的是exe程序,uwp使用的是新的.net core框架,做出来的是appx,这个appx只能运行在win10手机和pc系统中。


熟悉.net的都知道messagebox和openfiledialog,新的.net core框架在uwp使用openfilepicker和contentdialog等替代来实现同样的功能。微软为什么要这么做?!因为为了适配移动端,.net原来的东西根本就没考虑过要运行在手机上,所以微软进行了重写,所以如果你很熟悉wpf,很熟悉xaml,那么恭喜你你很容易做出uwp的界面,但是也只是仅此而已,因为你熟悉的很多.net框架里面的命名空间和类都被换掉了,还有各种权限问题,屏幕适配问题等等。这些都是转入UWP开发将会遇到的问题。

以前做wpf我很喜欢用messagebox来debug,做uwp就老老实实用debug.writeline,这些是天然的鸿沟阻碍你从wpf转向uwp,还有uwp令人诟病的封闭问题,编译出的程序只能提交到应用商店才能发布,想在qq官网下载qq for uwp?抱歉,你需要跳转到微软商店来下载。可能小一点的软件大家觉得也没什么,但是考虑到中国的墙技术,微软商店下载的速度从来就没快过,还经常瘫痪,下一点大的软件那真是因垂死听啊!

话题转回来,.net技术过时了吗?从微软的技术路线来看,正在进行.net和.net core框架的合并,从目前的情况来看,.net的功能是强于.net core的,就目前windows桌面程序而言,.net 的能力碾压.net core技术。所以wpf仍然是未来桌面程序开发的主流发展方向(前提是使用.net语言),至于uwp?以我目前的观点,只适合发布一些小型程序。什么时候微软能用uwp发布自己的vs和office套件,并且达到一样的功能的时候再说吧




作为一个业余的uwp个人开发者,我发表一下自己对UWP未来发展的观点。

先说桌面端

uwp唯一的优势可能就是跨平台,功能上并不比wpf强大,因为这是新的.net core开源架构,你没看错,微软已经开源了。不过旧的net framework仍然不开源。开源的这是个什么东西?就是个阉割版的net framework,可以跨平台,但是由于是新的完全比不上net framework几十年的积累(具体多少年不祥,时间应该不短)。总结就是.net core开源框架还是个小娃娃,干不了重活。
      再说移动端
微软手机出货量太少,以我一个开发者的角度,微软整个uwp移动端已经初步具有和安卓苹果系统的一拼之力,xamarin是个好东西,c#是个好语言。但这一切并不足以让微软立足移动端,重要还是要看生态。况且市场上wp手机缺乏新机,用户极少,开发者积极性不高。我想微软的田牌wp新机应该已经在路上了,或者已经死在胎里。后者可能性不大。为什么呢?因为如果移动端死了,那新的net core框架除了开源,又有什么意义呢?
       最后说说看法

uwp的优势是跨平台,所以uwp想要发力必须从移动端入手,发展的过程让人越来越沮丧。个人觉得UWP最大的优势大概就是打通移动端和桌面端,然而现在windows phone基本已经死了,风传的surface phone也是遥遥无期、前途未卜,目前看UWP似乎只剩下了PC和二合一这样的平板设备,但在这种生产力环境下已经有了很成熟的exe体系了,各种软件应有尽有,无论从消费者角度还是从开发者角度似乎都找不到很好的理由转向UWP,同样的使用环境(因为wp端基本已死)为何要重复开发,何况目前来看,多数UWP应用还存在大大小小的问题,很难和exe匹敌,

至于说分发途径,个人感受来说,目前PC端的软件似乎主要是两个途径推广,一是大厂出手,推广宣传;二是先从移动端入手,获得认同之后再开发桌面端。windows的软件安装容易且开放,软件种类也多,是否像mac一样需要一个统一的分发平台是个问题,从闭环体系开始发展,强制统一分发容易,但已经开放成这样再想从头收束发放问题,无论从消费者还是从开发者方面,阻力都太多,说实话感觉这种行为是在开倒车,如果是从打造跨平台应用立足,是另外一回事,但现在已无移动端,变成了单纯的桌面端问题,性质不同了,预期也不同了,

微软的发力方向和真实意图:微软的native编译是真正跨平台的,目前已经实现PCL可移植类库,从早期的MONO的.NET一直发展到现在,微软的意图很明显:云和跨平台!目前.net core架构还是不成熟,但已初具规模,更新速度很快,我们也看到市面上Unity这样的跨平台游戏引擎(第三世代)大规模流行,可能有人觉得unity已经够火了,但我认为目前仅仅是起点而已,未来跨平台工具,像Xamarin等将会越来越完善,目前xamarin(.uwp)不完善的原因还是因为.net core不完善,微软的野心一直很大:一次编译到处运行的不仅仅是云技术。

songshizhao
最初发表2017/2/21 23:48:51 最近更新2017/2/21 23:48:51 9555
为此篇作品打分
10