本着多年的无知,一直以为自己可以做出一个适合自己和自己所在的团队的模板分析的这样的一个东西,但随着时间的推移,我感觉我离这个目标是越来越远了,因为今天的我常常会否定昨天的我的工作成果.
几个月前我实现过一个类似微软的使用方式的一个模板分析类,并且在实际的软件开发中应用,随着应用的深入和客户的需求越越来越明确,我深深地感觉到它的功能实在是太弱了.分析和总结了原模板的优缺点后,我打算重新设计自己的新的模板分析类.
原模板的最主要的优点是简单明了;而最不好的缺点是功能有限;最要命的缺陷是使用非树型数据结构,不利于功能的扩充.
其功能有限的表现是最明显不过的了,只提供了一个Repeater标签,一个label标签,和一个view标签,而且未提供父子标签之间的数据引用的手段.这在实际的MVC开发的方式中是很不足的.而且在实际的开发中我发现,我们有时候真的很需要一个实现重复内容的标签而原有模板并未提供的就是把一个页面上的某一个原素不加修改地在另一个地方显示出来,虽然这从分析上讲是没必要的,但客户的需要往往是比较独特的.另外,我体会比较深的就是,从后台CS代码加载前台HTML文件显示数据的方式不是特别适合AJAX横行的开发潮流,因为这样会出现很多类似的重复代码.当然,我们可以使用母板页的这样的一个技术来解决这样的一类的问题,不过我现在倒是在想,我们能不能只在CS代码里提供服务而通过模板标签去调用这样的一些服务的方式来解决这个问题.也就是说,每一个CS类它只干它所能做的事情,也就是说提供数据,而最终的显示是在模板标签这一层来完成.由此在想到了ProMesh.NET 这个项目,它的实现基本上是类似这样的一种形式的.
说了这么多旧方案的不是,现在我再来说说新方案的目标.新的模板分析类的首要目标是,它本身是一个小小的语言,具备简单的if,for,while,do,foreach结构 ,支持简单的字符运算和数学运算,...