之前说过,.Net Framework为所有.Net程序员提供底层支持,第三方开源框架建立在.Net Framework的基础上,专门解决某些特定问题,而应用程序框架则建立在.Net Framework和第三方框架的基础上,为项目开发的方方面面保驾护航。它们的作用虽然都是帮助程序员更好的建立应用程序,但抽象层次不同,从比较原始到更加具体,导致了应用程序框架有一些自己的特点。
第一,没有真正通用的应用程序框架。
由于应用程序类型千差万别,没有哪个应用程序框架能够覆盖所有应用程序的细枝末节,所以真正通用的应用程序框架是不存在的。
有一些应用程序框架确实比较通用,各种项目都能用,但也只是覆盖了应用程序框架的一部分特性而已,可以将这样的框架作为基础,再根据应用程序特点进行扩展。
第二,应用程序框架并非越强大越好。
强大的东西未必就好,强大意味着复杂,学习成本高,如果一个框架要学上一年才能用,那又有谁愿意用?应用程序框架就好像衣服,不是越大越好,太大可能穿着像个唱戏的,合身才是硬道理。所以,应用程序框架要保持尽量简单,在必要的时候还要给框架减肥瘦身。
第三,最好用的应用程序框架来自你自己。
这一点尤其重要。
当下载到别人的应用程序框架时,很少有人直接用到自己的项目上,哪怕这个框架十分强大。除了不合你的口味以外,主要是不太熟悉,对于无法驾驭的框架,你自然无法发挥它的威力,更不要谈扩展。
每个人的编码风格、习惯、经验、水平、领域都不相同,能够让你满意的应用程序框架只能出自自己之手。
没有所谓最好的应用程序框架,对你来说,最好的框架就是符合你的习惯,你最熟悉,能够随时扩展,恰好满足你开发的东西。
第四,应用程序框架技术含量不高,平平无奇。
应用程序框架,并不是很多初学者想像的那么复杂。只要用心学习、观察、整理,都是可以建立自己的应用程序框架的。说白了,就是一些辅助性的代码封装而已。
.Net在市场上以中小型信息系统为主,一般项目的技术含金量都不会太高。
应用程序框架需要建立在第三方技术框架之上,所有较底层的操作全部向下委托,除非不得已,一般不要自己写底层的东西,主要是健壮性和扩展性差,另外浪费时间。当然拿来练练手可以,实际使用还是用开源的。
不过,不要认为技术含量不高,就不用学习了,.Net基础、Js基础、常用设计模式、常用架构模式、TDD、第三方框架都需要了解,不然你拿什么来抽象和封装。不仅要学,而且还需要持续学习。
第五,应用程序框架依靠不断积累逐步增强。
应用程序框架的出发点是代码复用,当你在看书、读博客、四处搜集源码、以及项目开发的过程中,都是应用程序框架增强的大好时机,慢慢你的框架会变得有用。
第六,应用程序框架永无止境。
应用程序框架是开发模式的持续提炼和重构。随着你经验的增长,你会发现代码逐步变得条理清晰,而不是原来那样杂乱无章。但你是否就此止步了呢?仔细观察每一个开发细节,问自己,“这个if判断能省略掉吗”等等。每一次的小改进可能作用并不显著,但长期保持则受益无穷。