文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>纪念那个死去的ASP.NET CMS系统,附死了的源码

纪念那个死去的ASP.NET CMS系统,附死了的源码

时间:2010-12-12  来源:Loning

    由于当时就认识到.NET WEBFORM效率极其低下(每次数据回发量太大了)、页面元素难以控制,因此在网站前台决定不使用ASP.NET的任何控件,完全基于类似ASP、PHP的输出方式。当时不了解MVC,ASP.NET官方的MVC也没出来。而在web的后台,为了开发的便捷性,使用了WEBFORM,当然后果是十分严重的,最近用chrome打开后台发现菜单错位了,好在IE中还是正常的。但是如果没有WEBFORM,相信我一个人难以做出那么多东西来。便捷的东西就是这样,很难以去控制其中的方方面面,即便是有一些方法能够实现,在真正实现之后发现比自己写一套还要麻烦。

Figure 1 错位了

    该项目是比着PETSHOP做的,因此分了三层,在数据层使用了一个支持ACCESS与MS SQL的组建(其实并不是完全兼容的,只是在这个项目中没用到譬如触发器之类的东西罢了,当时居然还会考虑ACCESS…)。因此对两种数据库有一些兼容性,比较讽刺的是兼容却放在Data Layer来做了,其实自始至终也没实现过其他的Data Layer,然后这个项目就死掉了。

    先说说后台的开发吧。微软还是很强大的,能在WEB上做出事件驱动来。感觉很强大的就是数据绑定功能,在三层的基础上,我只要为每一个Data Source指定一个Business Object,.NET就可以通过反射自动的提供相当多的信息到Grid View,Detail View里面,然后需要修改的地方就是改改每个Column的Name。对于需要特定显示的地方,还可以更改相关控件的模板,在模板中可以用各种各样的控件,而且也是支持绑定的,所以在这一层的工作相当清晰,就是控制数据的表现形式。而且通过Data Source,可以很轻松的实现几个控件的联动。Data Source可以很方便的绑定Business Object提供的方法的相关参数,可以绑定到Request,绑定到某个控件的属性。

Figure 2 后台界面截图

    在后台的开发过程中,对自定义服务器控件,自定义用户控件等都有了一定的了解。控件化的好处就是拿来就用,FCKeditor(现在应该叫CKedirot了)的那个控件很轻松的就融入了系统。还了解到了ASP.NET的权限控制,对目录的权限也可以有,在系统中也加入了相关的配置页面。

    在前台,受朋友开发的ASP系统的影响,引入了使用标签的模板系统。自己写了一套asp.net的小型模板,标签形式都是自定义的,而且是可扩展的,也用了反射。但是现在看来,用反射而又没有做一些处理,效率应当是十分低下的。其基本工作原理就是正则表达式匹配标签,而后通过标签的进行多态,把相关的内容返回然后REPLACE。后期发现确实挺慢的,还引入了缓存,其实就是很傻的放到ASP.NET的内存中,缓存策略也很傻,更改时删掉那个缓存项。

Figure 3 前台某模板界面

    前台直接实现了一个Http Module,这个Module是可配置的,也是通过反射来加载一些模块。现在看来Http Module有点像Router,加载的模块有点像Controller了。

Figure 4 配置节点的一些信息

    前台的交互则是使用的jQuery + Web Service,由于Web Service支持Json的序列化,所以相关数据交互还是很轻松的。

Figure 5 基于Web Service与 JS 的登录系统

    这么多层,代码自然不是全部是自己写的,用了代码生成器来做跟数据库有关的事情。自己下了个模板改了改,就是这样。

    对.NET的配置有了一些了解,譬如如何自定义配置节点。强类型的配置信息还是比较好用的,最近在WINFORM下做配置信息都没那么麻烦的做过了,直接用Settings。也没有比较过二者有何不同,或者就是一样的?

    用户系统则使用了ASP.NET的Membership,挺强大的,而且不用那些登录控件也完全可以实现登录。自己实现了一个Membership Provider,毕竟要使用三层中的Data Layer。

    已经很长时间没动过这个代码了,今天翻硬盘的时候偶然发现的,但是又不忍心删掉,写此文以纪念。

    代码在此提供下载:http://wiisio.qiqikaka.com/kingcms.7z

    用户admin 密码 123456

 

作者:马昊伯 a.loning at gmail.com

出处:http://loning.cnblogs.com/

 

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,否则保留追究法律责任的权利。
相关阅读 更多 +
排行榜 更多 +
吹风机射击 v1.0 安卓版

吹风机射击 v1.0 安卓版

飞行射击 下载
吹风机射击 v1.0 安卓版

吹风机射击 v1.0 安卓版

飞行射击 下载
吹风机射击 v1.0 安卓版

吹风机射击 v1.0 安卓版

飞行射击 下载