屈指算来,在我不长也不能算短的职业生涯中,接触了数代 的UI技术:

  • MFC (Microsoft Foundation Class)- Win32上最强大的Class Library,没有之一。VS唯一的对手Borland出品的C++ Builder同样支持MFC。在Win32时代,MFC配合强大的C++,将MVC Pattern普及到前所未有的地步。虽然我的C++生涯中,使用MFC做界面的时间并不长,但作为当年混迹在CodeProject, CodeGuru的老读者,下载过也尝试过当年那些Rate很高的Control,记得,当年很炫的功能基本都是MFC做出来的,印象比较深的有Docking等等。前不久,偶然发现,现在的Visual Studio Wizard可以轻松生成Docking的框架,真是很有沧桑感。
  • WTL (Windows Template Library) - 这是让当前的CodeProject上口碑极佳的一套类库,依旧是Microsoft的风格——Microsoft用宽容的态度,在MFC所向披靡的情况下,同意了这套类库的产生(据称是ATL团队开发),然后亲手将其扼杀在摇篮。现在想来,这套类库能脱颖而出,可能需要归功于其template的技术基础。如果说COM让功力深厚的Microsoft大拿们都需要花费6个月时间才能顿悟的话,那这套全template的类库无疑给拓展和维护带来了噩梦的感觉。不记得是去年还是前年,我依旧遇到过一个不知template/Generic Programming为何物的C++/Java/C#的程序员却敢在简历上写“精通C++/Java/C#”。
  • WinForm - .Net的开山之作,也是.Net在界面开发层面交出的第一份答卷。很难说这个界面算是成功还是失败,只是我常用的软件中几乎见不到这个类库的成品。我想其根本的原因是其本身无亮点——性能可拓展性都拼不过MFC,而且,随后.Net 3.0版本中,WPF横空出世。
  • WPF - (Windows Presentation Framework),这是Microsoft对UI技术的一次大的变革,不仅在底层从之前的GDI/GD+转换到了DirectX,而且它还统一了Windows平台上界面设计的近乎方方面面。个人觉得,WPF对整个软件行业UI技术最大的革命在于Binding,注意,这个Binding并非常见的Data层面的绑定,而是包含了Command的绑定,换言之,通过Binding理论上可以分开界面设计人员(可以完全不懂代码技术,关注与XAML文件)和代码开发人员(可以彻底不关心界面展现,关注与代码文件),我想,正是基于这个技术平台,Microsoft推出了Blend来配套Visual Studio。基于WPF上的Silverlight成了Microsoft对抗Adobe Flash的不二之选,而随着WPF的发展,PM, MVVM等开发模式又掀起了新一轮谈论,这当然也是软件进化的必然。
  • ASP.Net - 只是粗略看过一下ASP.Net的入门书籍,但ASP.Net在今天还是Microsoft在网络开发上的拳头武器,想必,也有些过人之处吧。
  • HTML5 - 趁着被抓去开发HTML5程序的两个星期,仔细的从HTML5,CSS到JavaScript认真的学了一遍,当然,短短两个星期只能窥豹一斑,但对整个HTML5有了粗略的认知——这是一个尚待成长的平台:其呈现效果、支持程度和调试都完全依赖于Browser,即便支持程度最好的Chrome也一样有各种Gap。同时,JavaScript作为松耦合的解释型语言,除了带来便捷之外还带了无数的负面衍生品,譬如安全,譬如代码低可读性、低可维护性等等。
原本只是本来打算继续写我的Caliburn.Micro学习系列,没想到扯了一路的UI技术,算是纪念吧。
 

那些年用过的UI开发平台的更多相关文章

  1. Bootstrap:UI开发平台 sdk

    Bootstrap:UI开发平台 Bootstrap是一个易用.优雅.灵活.可扩展的前端工具包,里面包含了丰富的Web组件,包括布局.栅格.表格.表单.导航.按钮.进度条.媒体对象等,基于这些组件,可 ...

  2. UI标签库的话题:JEECG智能开发平台 BaseTag(样式表和JS标签的引入)

    UI标签库专题一:JEECG智能开发平台 BaseTag(样式表和JS引入标签) 1.BaseTag(样式表和JS引入标签) 1.1. 演示样例 <t:base type="jquer ...

  3. 漫谈GUI开发—各种平台UI开发概况

    前言: 在看这边文章前,可以建议看下:图形界面操作系统发展史——计算机界面发展历史回顾 从CS到BS,现在的前端开发,其实也是GUI开发范畴.现今 各平台的UI开发概况 HTML&CSS,Wi ...

  4. Java快速开发平台,JEECG 3.7.7闪电版本发布,增加多套主流UI代码生成器模板

    JEECG 3.7.7 闪电版本发布,提供5套主流UI代码生成器模板 导读 ⊙平台性能优化,速度闪电般提升           ⊙提供5套新的主流UI代码生成器模板(Bootstrap表单+Boots ...

  5. UI标签库专题二:JEECG智能开发平台Column(列) 子标签

    UI标签库专题二:JEECG智能开发平台Column(列) 子标签  1.1. Column(列) 子标签 1.1.1. 演示样例 <t:dgCol title="年龄" ...

  6. winform快速开发平台->让有限的资源创造无限的价值!

    最近一直在维护一套自己的快速开发平台. 主要应对针对C/S架构下的项目.然而对winform这快,还真没有看到过相对好的快速开发平台, 何为快速,在博客园逛了了好久, 预览了很多通用权限管理系统. 确 ...

  7. 企业 SOA 设计(2)–组件化产品开发平台

    上一篇<企业 SOA 设计(1)–ESB 设计>中,写到我们的 SOA 设计分为两个层面来进行:一个是系统间的 SOA 设计,主要通过 ESB 来完成:另一方面则是单个应用系统内部的 SO ...

  8. 搭建基于 STM32 和 rt-thread 的开发平台

    我们需要平台 如果说,SharePoint 的价值之一在于提供了几乎开箱即用的 innovation 环境,那么,智能设备的开发平台也一样.不必每次都从头开始,所以需要固定的工作室和开发平台作为创新的 ...

  9. SuperMap iClient 7C——网络客户端GIS开发平台 产品新特性

    SuperMap iClient 7C是空间信息和服务的可视化交互开发平台,是SuperMap服务器系列产品的统一客户端.产品基于统一的架构体系,面向Web端和移动端提供了多种类型的SDK开发包,帮助 ...

随机推荐

  1. RF自定义库和关键字

    1:在D:\work_software\python\Lib\site-packages 文件夹下, 新建python package文件夹 ,例如我的是TestLibrary 建好后的完整路径:D: ...

  2. 让你如“老”绅士般编写 Python 命令行工具的开源项目:docopt

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  3. Java学习笔记之基础语法(数据类型)

    8种基本数据类型    整型:   byte[1字节]          short[2字节]        int[4字节]         long[8字节]      1,四种整型之间的区别:申 ...

  4. 使PC端网页宽度自适应手机屏幕大小

    有时候我们会纠结PC页面在手机页面上无法正常显示,超出屏幕,有些内容看不到,现在又了下面的代码,可以做到自适应手机端的屏幕宽度: 在html的<head>中增加一个meta标签: < ...

  5. 第一章、Python环境搭建

    一.安装Python解释器 Windows下   Python开发环境搭建 1.官网下载: https://www.python.org/downloads/ 2.选择对应的版本 3.双击运行 4.选 ...

  6. Leetcode(7)整数反转

    Leetcode(6)Z字形变换 [题目表述]: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 第一次:转字符串处理 执行用时:40 ms: 内存消耗:11.6MB 效果: ...

  7. human_pose_estimation_demo的再进一步研究

    这次研究的主要是速度问题,后来还获得了其它方面的收获. 1.原始的抽帧       对于这样一个问题,想提高速度,能够想到的最简单.最直接的方法就是“抽帧”.比如添加一个计数器 这里,只有当Sumof ...

  8. Java IO_001.File类--文件或文件夹相关操作

    Java IO之File对象常用操作 File类:用于文件或文件夹或网址相关联的操作.可以关联或不关联文件(即关联不存在的文件).构造函数有: public File(String pathname) ...

  9. Leetcode Tags(13)Tree

    1.前序.中序.后序递归方式遍历二叉树 public void preOrderRecur(Node T) { if (T != null) { System.out.print(T.val + &q ...

  10. Java基础(三十四)String、StringBuffer类和数据缓冲区Buffer类

    一.String类 1.创建字符串对象 创建字符串对象有两种方法:直接用“=”或者使用“new String(...)” String aStr = "TMZ"; String b ...