世界上只有一种英雄主义,那就是了解生命而且热爱生命的人。——罗曼·罗兰 内容充实的生命就是长久的生命。我们要以行为而不是以时间来衡量生命。 ——小塞涅卡
文章:557篇 音乐:34首 视频:10部 图片:30幅 评论:258条 留言:305条 流量:
  
  当前位置:首页 > 技术天地 >asp.net mvc框架ProMesh.NET

asp.net mvc框架ProMesh.NET

 
来源:网络     加入时间:2008-9-30       浏览量:354 
字体大小():
选择颜色:
 

相关下载:ProMesh.NET MVC Web Framework.rar

在Winson.Framework2.0里已集成了ProMesh.Net框架,由于ProMesh.Net里的内容比较多,我也不一一详细说明了,大家感兴趣的就自己慢慢研究,或者到这里查看官方发布的其他DEMO吧

http://www.codeplex.com/ProMesh/Wiki/View.aspx?title=Walkthrough&referringTitle=Home

如果还不知道ProMesh.Net为何物,请先看看这里:

http://bbs.szblogs.com/showtopic-1548.html

在此我只大概说一下ProMesh.Net的一些基本用法,即针对我的DEMO来进行一些说明:

一、配置

ProMesh.Net利用了反射,对模板进行解释,可将页面文件与后台CS文件完全分离,因此要使用ProMesh.Net,必须在web.config里先做一些配置,在我的DEMO项目里,已做好了相关的配置了,如下代码:

<appSettings>

<!--ProMesh相关设置开始-->

<!--设置模板文件的对应后台文件的程序集-->
<add key="ProMesh.ApplicationClass" value="Winson.BLL.Application,Winson.BLL"/>
<!--设置模板路径-->
<add key="TemplatePath" value="ProMeshDemo/templates"/>
<!--设置默认的主页面名称-->
<add key="DefaultLayout" value="master1"/>
<!--设置默认的语言-->
<add key="DefaultLanguage" value="en"/>
<!--设置网站的虚拟目录,如根目录则使用 / -->
<add key="VirtualDir" value="/winson.web/"/>

<!--ProMesh相关设置结束-->
</appSettings>



然后在<system.web>里的

<!--URL映射,将所有html后缀都进行处理-->
<httpHandlers>
<add verb="*" path="*.html" type="Winson.Utility.UrlRewriter"/>
<!--ProMesh相关设置开始-->
<add verb="*" path="*.ashx" type="Winson.ProMesh.PageHandler,Winson.WControls"/>
<!--ProMesh相关设置结束-->
</httpHandlers>

<httpModules>
<!--ProMesh相关设置开始-->
<add name="ProMeshModule" type="Winson.ProMesh.HttpModule,Winson.WControls"/>
<!--ProMesh相关设置结束-->
</httpModules>



因为我想让此框架思路更清淅,因此自己另外建立了一个BLL的项目,专门用来放置ProMesh.Net的后台代码,其中配置里的

ProMesh.ApplicationClass即映射后台文件的程序集,在ProMeshDemo目录里的test.aspx文件就是为了测试出这个配置的具体程序集写法而用的,呵呵,与ProMesh.Net无关,大家不需理会
二、使用由于我现在是将文件映射到*.ashx后缀,如果大家想改为其他的,如HTML,就修改上面的配置信息即可,不过如果是HTML,记得在IIS做相关的映射。大家可以先看看DEMO里的效果,直接输入你项目的地址,后缀是ashx的即可,当然这个文件名首先要在BLL项目里有对应的CS后台文件的,如以下地址http://localhost:1969/Winson.Web/index.ashx这样就会直接调用Templates目录里的index.htm模板文件了,怎样,是不是感觉比较COOL? 整个DEMO并没有使用数据库,里面的会员资料均是以数组集合形式即时产生的,大家打开DataService.cs文件就可以知道如何产生这些数据的了在模板文件里大家会看到很多标签,这些标签有部分是系统标签,有部分是在CS文件里去定义的,这些标签运用可以非常灵活,以下将以EntityDemo.htm模板文件做以说明:大家可以看到,这些标签同时支持简单的逻辑判断和循环语句,如foreach的用法与一般的C#语句用法是一样的,这里需要说明的是Employees,这个对象是由BLL项目里原EntityDemo.cs后台文件获得,代码如下:这里的GetList()方法即调用底层获取数据的方法,没什么好说的了,大家自己看代码即可同时大家可以看到,在ProMesh.Net里要将底层数据传上来,是使用了一个叫ViewData的集合,跟踪代码可以发现,这个ViewData最终是由ProMesh.Net里的Table.cs继承过来的,可以看出,最后返回上层的是一个键值对的集合获取了实体对象后,就可以像调用实体一样去写相应的标签了,如上面需显示一个EmployeesID,直接写即可。这里需要注意一点的是,如果要显示对象或者变量,就要使用 的标签,如果要使用逻辑语句,就要使用 的标签ProMesh.Net同时还支持一些web控件的标签使用,请看以下editemployee.htm里的代码:以上代码执行后的效果:很明显,以上代码产生了2个input和一个下拉框控件,要使用控件标签,需使用 那么这些标签又是如何产生的呢?请大家看相应的editemployee.cs文件,此文件里的Form类继承了WebForm,而WebForm也是ProMesh.Net的底层产生的,具体如何实现,我在此也不多说了,大家有兴趣就自己看看底层的代码吧 以下是重要的几句代码呵,看到了吧,对应三个控件的标签就是通过以上代码产生的了,同时还可以指定控件的默认值和校验信息等,真是做得比较COOL啦至于如何为下拉框控件绑定数据源呢?请看以下代码:通过以上代码,即可将表单完整地实现出来了!OK,说了这么多,现在也应该说说这个框架的一些缺点啦,呵呵。之前本来我是想用这个框架来做个项目的,但由于其实现形式必须是模板对应一个CS文件,因此就必须为每个模板写相应的后台文件,当时就感觉这样每个去写后台文件挺麻烦的,而更郁闷的是,使用了这个框架后,所有服务器控件都不能再使用了,包括我自己的SqlPager控件等都不能用了 ,感觉这样写起代码来会辛苦好多啊!不过不管怎样,如果对性能要求较高的项目,使用这个东西还是挺不错的,而且其标签功能也确实挺强大,有兴趣的朋友慢慢研究下吧,呵!好了,对于ProMesh.Net框架,我就先说这么多啦,由于此框架功能也比较强大,太多的细节了,我只是大概说了一下用法,具体的东西还是等大家自己慢慢去体会吧,呵呵,其实我自己也没太深入地去研究,还有很多地方也不太清楚如何使用,如果有朋友研究出来了,非常希望能在此与大家分享一下哦 终于写完了,好久没写过这么长的东西了,写得不好,不要见怪啊!

对本篇文章进行评论
您的称呼: 
您的评论: 

 

上一篇: C#开源资源 下一篇: 无法播放mp3
个人随笔
经典搞笑
技术天地
精彩网页
谈天说地
我的制作
文章排行
  • 北京欢迎你视频下载
  • 绿色风景图
  • 512地震
  • 电影苹果下载
  • 神墓全集下载
  • 澄海3c5.49地图下载
  • 十七大总结
  • 70兰董真实身份
  • 直升机为什么进不去
  • 机器狗病毒
  • 异世之极品奶爸
  • 【概率论与数理统计】在线...
  • b哥的一天下载
  • 声音素材库
  • 卫星信号接收器参数,安装...
  • 国庆节黑板报,国庆节,黑...
  • 奥运100天晚会视频
  • 家有儿女动画版
  • 1069999301
  • 成龙电影全集
  • 各大高校BBS上的100...
  • 电视剧大人物40全集
  • 七界传说第十一卷

  •    推荐分辨率:1024*768  鄂ICP备07011897号   版权所有:西西弗斯(代启蒙)