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

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

需要引用System.Windows.Forms.DataVisualization

<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:FormChar="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
xmlns:Char="clr-namespace:System.Windows.Forms.DataVisualization.Charting;assembly=System.Windows.Forms.DataVisualization" xmlns:WinFormHost="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
xmlns:WinFormControls="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" xmlns:local="clr-namespace:WpfApplication1"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid Name="AAA"> <WindowsFormsHost x:Name="myFormsChart" FontSize="8">
<Char:Chart x:Name="chart1" > </Char:Chart>
</WindowsFormsHost> </Grid>
</Window>

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框架里面的东西都被换掉了,还有各种权限问题,屏幕适配问题等等。

以前做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套件,并且达到一样的功能的时候再说吧!

引用

微软抛弃微软.Net了吗?Net技术的未来在哪里-浅谈微软技术路线的更多相关文章

  1. 浅谈Hybrid技术的设计与实现第三弹——落地篇

    前言 接上文:(阅读本文前,建议阅读前两篇文章先) 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 根据之前的介绍,大家对前端与Native的交互应该有一些简单的认识了,很多 ...

  2. 浅谈Hybrid技术的设计与实现第二弹

    前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹——落地篇 接上文:浅谈Hybrid技术的设计与实现(阅读本文前,建议阅读这个先) ...

  3. 浅谈Hybrid技术的设计与实现

    前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹——落地篇 随着移动浪潮的兴起,各种APP层出不穷,极速的业务扩展提升了团队对开发 ...

  4. (转)浅谈Hybrid技术的设计与实现

    转载地址:https://www.cnblogs.com/yexiaochai/p/4921635.html 前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hyb ...

  5. 浅谈Hybrid技术的设计与实现【转】

    https://www.cnblogs.com/yexiaochai/p/4921635.html 前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术 ...

  6. 浅谈PHP技术应用

    序号:1210-41 黑龙江省高等教育自学考试 本科毕业论文 题    目    浅谈PHP技术 学员姓名    夏滟 专    业    计算机及应用 准考证号    010311192585 指导 ...

  7. 浅谈.NET技术公司的实习生培养

    浅谈.NET技术公司的实习生培养 背景 近几年.NET开发者市场的越发不景气,一毕业就选择.NET技术的开发者更是少之又少.一方面是公司效益的日益提高,一方面却是招聘优秀人才的速度总是赶不上公司发展的 ...

  8. 浅谈数据库技术,磁盘冗余阵列,IP分配,ECC内存,ADO,DAO,JDBC

    整理-----数据库技术,磁盘冗余阵列,IP分配, ECC内存,ADO, DAO,JDBC 1.MySQL MySQL是最受欢迎的开源SQL数据库管理系统,它由 MySQL AB开发.发布和支持.My ...

  9. 【ASP.NET 系列】浅谈缓存技术在ASP.NET中的运用

    本篇文章虽不谈架构,但是Cache又是架构中不可或缺的部分,因此,在讲解Cache的同时,将会提及到部分架构知识,关于架构部分,读者可以不用理解,或者直接跳过涉及架构部分的内容 你只需关心Cache即 ...

随机推荐

  1. spring3+quartz2

    听说来自这里www.ydyrx.com 转载的: 最近公司要用定时任务,自己想着学习并完成任务,百度,google,360,必应,能用的搜索都用了,参差不齐,搞了一整天,也没找到一个好的例子.没办法, ...

  2. Bootstrap 模态框(Modal)带参数传值实例

    模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 为了实现父窗体与其的交互,通常需要向其传值,实现 ...

  3. 肯德基收银系统java

    参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零. 2.基本套餐结算和找零. 3.使用优惠 ...

  4. 【udacity】机器学习-神经网络

    Evernote Export 1.神经网络 神经元 细胞的主体称为细胞体,然后有轴突.突触 他们构建的方式是可以调整的 我们会有一些输入的放电信号视为放电频率或输入的强度 X1​w1​X2​w2​X ...

  5. 【剑指Offer】37、数字在排序数组中出现的次数

      题目描述:   统计一个数字在排序数组中出现的次数.例如,输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于数字3在该数组中出现了4次,所以函数返回4.   解题思路:   既然输入的数 ...

  6. android自定义dialog布局

    dialog使用系统自带的有时候不是很美观,就想要自己来设计一个dialog界面,以下就是可以设计的dialog界面: public class CustomDialog extends Dialog ...

  7. stylus解决移动端1像素线等问题

    引用了yo框架中的_border.scss(用来获取yo框架封装的border)   以及   variables.scss(用来获取媒体查询的规则) border($border-width = 1 ...

  8. JDK环境变量设置(linux)

    1.下载jdk1.8版本软件包 2.解压 tar -zxvf jdk1.8.tar.gz mv jdk1.8 /usr/local/ 3.添加环境变量 vim /etc/profile 在文件底部加入 ...

  9. CodeForces 551E GukiZ and GukiZiana

    GukiZ and GukiZiana Time Limit: 10000ms Memory Limit: 262144KB This problem will be judged on CodeFo ...

  10. c++0x11新特性:delete删除函数

    c_plus_plus_0x11.cpp: // c_plus_plus_0x11.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #inc ...