那些年用过的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开发包,帮助 ...
随机推荐
- (19)ASP.NET Core EF创建模型(包含属性和排除属性、主键、生成的值)
1.什么是Fluent API? EF中内嵌的约定将POCO类映射到表.但是,有时您无法或不想遵守这些约定,需要将实体映射到约定指示外的其他对象,所以Fluent API和注解都是一种方法,这两种方法 ...
- python编程系列---多线程共享全局变量出现了安全问题的解决方法
多线程共享全局变量出现了安全问题的解决方法 当多线程共享全局变量时,可能出现安全问题,解决机制----互斥锁:即在在一段与全局变量修改相关的代码中,假设一个时间片不足以完成全局变量的修改,就在这段代码 ...
- 9.Linux用户管理(下)
1. 为用户添加密码 [root才能执行] 1为新用户添加密码{只能是root} {密码尽可能的复杂} [0-9][a-Z][a-Z] [!@#$%^&]* [root@yinwucheng ...
- 在WPF中使用.NET Core 3.0依赖项注入和服务提供程序
前言 我们都知道.NET Core提供了对依赖项注入的内置支持.我们通常在ASP.NET Core中使用它(从Startup.cs文件中的ConfigureServices方法开始),但是该功能不限于 ...
- Spring cloud 学习笔记
前奏 1. 什么是微服务? 微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去耦合,==每一个微服务提供单个业务功能的服务==,一个服务做一件事,从技术角度看就是一种 ...
- JS-SDK
1. 签名 看到网上的大部分问题都集中在签名部分,请大家一定请熟读微信JS-SDK说明文档附录5-常见错误及解决方法 部分. 注意 在计算签名的过程中,如果url总是不对请 实验 首页的url或 ...
- Linux后台运行Jar方法
原文地址:http://blog.csdn.net/c1481118216 https://blog.csdn.net/c1481118216/article/details/53010963 在li ...
- [springboot 开发单体web shop] 3. 用户注册实现
目录 用户注册 ## 创建数据库 ## 生成UserMapper ## 编写业务逻辑 ## 编写user service UserServiceImpl#findUserByUserName 说明 U ...
- linux shell 小技能
环境: [root@test ~]# cat /etc/redhat-release CentOS release 6.5 (Final) [root@test ~]# uname -a Linux ...
- 【原创】go语言学习(二十一)Select和线程安全
目录 select语义介绍和使用 线程安全介绍 互斥锁介绍和实战 读写锁介绍和实战 原子操作介绍 select语义介绍和使用 1.多channel场景 A. 多个channel同时需要读取或写入,怎么 ...