是给.net框架做减法的时候了
概述
.Net框架日渐肥胖,给采用智能客户端或C/S架构的解决方案的部署带来诸多不便,更不用说单机版软件了,本文就此展开牢骚,并试图给出解决方案。
关键字
.Net框架 减肥
正文
Net框架2.0的安装包不过22MB,到3.5竟然突飞猛进到近400MB,光这个玩意儿就得单独占一张普通光盘,虽说企业级产品在服务器端部署时不在乎多这么一张盘,但是如果要在客户端部署,你是分发光盘呢还是去网上下载呢?哪个都够呛!再看JAVA,10几年了,框架的安装包都没增加多少。
据说Windows7预装了.Net3.5SP1,可以避免安装之苦,但是Windows7要想占据主流,绝不是3、2年就能做到的,而大家都知道.Net框架的更新频率远远大于OS的更新频率,所以等Windows7占据主流的时候,.Net框架说不定都发展到6.0了,你还得安装。
windows2008出了core版,windows7据说也比vista精简了不少,为啥.Net就不能瘦瘦身呢?那个原来叫WPF/E的SilverLight,大小才不到5MB,就能实现WPF的大部分功能,而且还可以脱离.Net框架运行IL代码,可见这个瘦身在技术上是完全可行的。现在.Net客户端安装提供的那个profile虽然可以把依赖的框架的大小缩减到25MB,但这顶多算权宜之计,肯定有更好的处理方式。
总结
.Net框架安装包应该只保留一个核心功能,像什么WF、WPF、WCF、WC之类的玩意儿,统统作为plugin提供,用的着才打包进产品,不要像现在,不管用得着用不着,统统塞给你。
------解决方案--------------------
实际上我们想想看,为什么不可以把整个vs开发环境用Silverlight实现呢?源代码放在微软巨大的数据库中,编译也在服务器端执行,如果需要备份源代码可以下载到本地,编译之后的结果可以发布到本地(或者其它网络例如silverlight.live.com),连配置管理服务器都不需要了直接嵌入这个系统的服务中作为vs的一部分提供......如果我是微软,我就说我是一个全世界程序员都需要的“google”。
问题是,人们的习惯要从单机转变为依赖网络,甚至比技术晚10年。也就是说当你有一个好的想法之后,你就要打算推广十年,之后才能广泛接收。
这不是技术能够解决的问题。
------解决方案--------------------目前的趋势应该是在.net平台下WinForm被silverlight逐步取代掉,也就是说以后你用.net开发客户端应用首先想到的应该是基于web的客户端应用,而非桌面窗口。
------解决方案--------------------.net的部署问题一直是制约.net发展的严重问题,基本上开发通用的客户端软件都不敢用.net,让普通用户去装一个20M的.net framework都让人觉得不可接受,.net 3.5居然搞成400M,简直就是五雷轰顶。