那些年用过的UI开发平台
屈指算来,在我不长也不能算短的职业生涯中,接触了数代 的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作为松耦合的解释型语言,除了带来便捷之外还带了无数的负面衍生品,譬如安全,譬如代码低可读性、低可维护性等等。
那些年用过的UI开发平台的更多相关文章
- Bootstrap:UI开发平台 sdk
Bootstrap:UI开发平台 Bootstrap是一个易用.优雅.灵活.可扩展的前端工具包,里面包含了丰富的Web组件,包括布局.栅格.表格.表单.导航.按钮.进度条.媒体对象等,基于这些组件,可 ...
- UI标签库的话题:JEECG智能开发平台 BaseTag(样式表和JS标签的引入)
UI标签库专题一:JEECG智能开发平台 BaseTag(样式表和JS引入标签) 1.BaseTag(样式表和JS引入标签) 1.1. 演示样例 <t:base type="jquer ...
- 漫谈GUI开发—各种平台UI开发概况
前言: 在看这边文章前,可以建议看下:图形界面操作系统发展史——计算机界面发展历史回顾 从CS到BS,现在的前端开发,其实也是GUI开发范畴.现今 各平台的UI开发概况 HTML&CSS,Wi ...
- Java快速开发平台,JEECG 3.7.7闪电版本发布,增加多套主流UI代码生成器模板
JEECG 3.7.7 闪电版本发布,提供5套主流UI代码生成器模板 导读 ⊙平台性能优化,速度闪电般提升 ⊙提供5套新的主流UI代码生成器模板(Bootstrap表单+Boots ...
- UI标签库专题二:JEECG智能开发平台Column(列) 子标签
UI标签库专题二:JEECG智能开发平台Column(列) 子标签 1.1. Column(列) 子标签 1.1.1. 演示样例 <t:dgCol title="年龄" ...
- winform快速开发平台->让有限的资源创造无限的价值!
最近一直在维护一套自己的快速开发平台. 主要应对针对C/S架构下的项目.然而对winform这快,还真没有看到过相对好的快速开发平台, 何为快速,在博客园逛了了好久, 预览了很多通用权限管理系统. 确 ...
- 企业 SOA 设计(2)–组件化产品开发平台
上一篇<企业 SOA 设计(1)–ESB 设计>中,写到我们的 SOA 设计分为两个层面来进行:一个是系统间的 SOA 设计,主要通过 ESB 来完成:另一方面则是单个应用系统内部的 SO ...
- 搭建基于 STM32 和 rt-thread 的开发平台
我们需要平台 如果说,SharePoint 的价值之一在于提供了几乎开箱即用的 innovation 环境,那么,智能设备的开发平台也一样.不必每次都从头开始,所以需要固定的工作室和开发平台作为创新的 ...
- SuperMap iClient 7C——网络客户端GIS开发平台 产品新特性
SuperMap iClient 7C是空间信息和服务的可视化交互开发平台,是SuperMap服务器系列产品的统一客户端.产品基于统一的架构体系,面向Web端和移动端提供了多种类型的SDK开发包,帮助 ...
随机推荐
- java高并发_博客-网址-资料 推荐
大概说一下自己作为入门学习java高并发的博客地址,很不错在自己的博客里记录一下:如果能有刷到我的博客的骚年,又刚好想了解java高并发,强烈推荐看看 地址:http://www.itsoku.com ...
- 权限维持-wmi事件
0x01 前言 WMIC扩展WMI(Windows Management Instrumentation,Windows管理工具),提供了从命令行接口和批命令脚本执行系统管理的支持. 在2015年的b ...
- MYSQL中HEX、UNHEX函数
HEX()函数:返回十六进制值的字符串表示形式.注意:并不是十进制转化为十六进制数,而是转化为字符串... UNHEX() 函数: 每对十六进制数字转化为一个字符. 下面是HEX()几个简单的例子: ...
- Spring Security 整合JWT(四)
一.前言 本篇文章将讲述Spring Security 简单整合JWT 处理认证授权 基本环境 spring-boot 2.1.8 mybatis-plus 2.2.0 mysql 数据库 maven ...
- Sublime Text 3 安装 Package Control 结果返回 275309,找不到 Install Package
打开 Preferences->Settings , 查看 ignored-packages 数组中是否有 Package Control,如果有,删除即可.
- Unity混合天空盒
对于不同天气下天空盒的实现. 天空盒时通过天空盒材质更改实现的,新建材质,选择shader/skybox/6sided,然后添加六个天空盒贴图就可以实现天空盒,如果想实现天气变化则需要至少两套贴图,并 ...
- vue-cli 如何使用vue-awesome?
font-awesome 有很多图标字体可供使用,那么,如何在vue中使用呢? 进入重点... 1.安装vue-awesome npm insatll vue-awesome 2.在main.js 注 ...
- Python+Keras+TensorFlow车牌识别
这个是我使用的车牌识别开源项目的地址:https://github.com/zeusees/HyperLPR Python 依赖 Anaconda for Python 3.x on Win64 Ke ...
- git从远程仓库拉取内容或向远程仓库上传内容
一.将本地文件上传到远程仓库步骤 git init git add . git commit -m "初始框架" git remote add origin https://git ...
- 【MySQL】MySQL Workbench快捷键小结
执行当前行,ctrl+enter 执行整篇sql脚本: ctrl+shift+enter 格式化sql语句(美化sql语句):ctrl+b 自动补全:ctrl+space(似乎win10中这个快捷键失 ...