前面有朋友介绍了Activa.ProMesh这个WEB开发框架.看起来觉得用起来蛮不错的.就学习了下,用了点时间做了个blog示例,示例演示:
http://cnblogs.icastle.com.cn/index.ashx
blog例子下载地址:

http://cnblogs.icastle.com.cn/newblog.rar
之前提供的数据库表结构不完整,现在加上了,并且有数据库备份文件,另外项目使用VS.NET2008开发的,所以很抱歉,有要打开的,只有自己降到VS2005了

另外推荐下我同事弄的代码片段网,有用的代码片段都可以来这里发布哦
http://www.codesnippets.cn

 觉得ProMesh学习起来还是很简单的,例子也很容易看懂. 稍微研究下相关的方法都能了解个大概. 
下面把基本配置说下,很简单

1.引用Activa.ProMesh.dll
2.配置web.config文件,下面是我的配置
 1开源的.net MVC框架ProMesh.NET学习<?xml version="1.0" encoding="utf-8"?>
 2开源的.net MVC框架ProMesh.NET学习
 3开源的.net MVC框架ProMesh.NET学习<configuration>
 4开源的.net MVC框架ProMesh.NET学习  
 5开源的.net MVC框架ProMesh.NET学习  <appSettings>
 6开源的.net MVC框架ProMesh.NET学习    <add key="ProMesh.ApplicationClass" value="Blog.Web.Application, Blog.Web"/>
 7开源的.net MVC框架ProMesh.NET学习  </appSettings>
 8开源的.net MVC框架ProMesh.NET学习  
 9开源的.net MVC框架ProMesh.NET学习    <system.web>
10开源的.net MVC框架ProMesh.NET学习        <!-- 
11开源的.net MVC框架ProMesh.NET学习            设置 compilation debug="true" 可将调试符号插入
12开源的.net MVC框架ProMesh.NET学习            已编译的页面中。但由于这会 
13开源的.net MVC框架ProMesh.NET学习            影响性能,因此只在开发过程中将此值 
14开源的.net MVC框架ProMesh.NET学习            设置为 true。
15开源的.net MVC框架ProMesh.NET学习        -->
16开源的.net MVC框架ProMesh.NET学习        <compilation debug="false">
17开源的.net MVC框架ProMesh.NET学习
18开源的.net MVC框架ProMesh.NET学习        </compilation>
19开源的.net MVC框架ProMesh.NET学习        <!--
20开源的.net MVC框架ProMesh.NET学习            通过 <authentication> 节可以配置 ASP.NET 用来 
21开源的.net MVC框架ProMesh.NET学习            识别进入用户的
22开源的.net MVC框架ProMesh.NET学习            安全身份验证模式。 
23开源的.net MVC框架ProMesh.NET学习        -->
24开源的.net MVC框架ProMesh.NET学习        <authentication mode="Windows" />
25开源的.net MVC框架ProMesh.NET学习        <!--
26开源的.net MVC框架ProMesh.NET学习            如果在执行请求的过程中出现未处理的错误,
27开源的.net MVC框架ProMesh.NET学习            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
28开源的.net MVC框架ProMesh.NET学习            开发人员通过该节可以配置
29开源的.net MVC框架ProMesh.NET学习            要显示的 html 错误页
30开源的.net MVC框架ProMesh.NET学习            以代替错误堆栈跟踪。
31开源的.net MVC框架ProMesh.NET学习
32开源的.net MVC框架ProMesh.NET学习        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
33开源的.net MVC框架ProMesh.NET学习            <error statusCode="403" redirect="NoAccess.htm" />
34开源的.net MVC框架ProMesh.NET学习            <error statusCode="404" redirect="FileNotFound.htm" />
35开源的.net MVC框架ProMesh.NET学习        </customErrors>
36开源的.net MVC框架ProMesh.NET学习        -->
37开源的.net MVC框架ProMesh.NET学习      <httpHandlers>
38开源的.net MVC框架ProMesh.NET学习        <add verb="*" path="*.ashx" type="Activa.ProMesh.PageHandler, Activa.ProMesh"/>
39开源的.net MVC框架ProMesh.NET学习      </httpHandlers>
40开源的.net MVC框架ProMesh.NET学习      <httpModules>
41开源的.net MVC框架ProMesh.NET学习        <add name="ProMeshModule" type="Activa.ProMesh.HttpModule, Activa.ProMesh"/>
42开源的.net MVC框架ProMesh.NET学习      </httpModules>
43开源的.net MVC框架ProMesh.NET学习    </system.web>
44开源的.net MVC框架ProMesh.NET学习
45开源的.net MVC框架ProMesh.NET学习</configuration>
46开源的.net MVC框架ProMesh.NET学习

httpHandler和httpModule就按照上面的配置.path="*.ashx"改成你想要的扩展名.
设置ProMesh.ApplicationClass,注意value="Blog.Web.Application, Blog.Web",后面一个Blog.Web是程序集名称,不是namespace
<add key="ProMesh.ApplicationClass" value="Blog.Web.Application, Blog.Web"/>

配置Application.cs代码
 1开源的.net MVC框架ProMesh.NET学习using System;
 2开源的.net MVC框架ProMesh.NET学习using Activa.ProMesh;
 3开源的.net MVC框架ProMesh.NET学习
 4开源的.net MVC框架ProMesh.NET学习
 5开源的.net MVC框架ProMesh.NET学习namespace Blog.Web
 6}

3.开始写Controller
所有的Controller都要继承PageController类,每个Controller都对应一个同名template,template默认放在templates目录下,例如我有一个indexController,在templates下应该有一个index.htm文件.框架默认要建一个master.htm,会应用到所有的Controller,
master.htm代码
开源的.net MVC框架ProMesh.NET学习<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
开源的.net MVC框架ProMesh.NET学习    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
开源的.net MVC框架ProMesh.NET学习
<html xmlns="http://www.w3.org/1999/xhtml">
开源的.net MVC框架ProMesh.NET学习    
<head>
开源的.net MVC框架ProMesh.NET学习    
</head>
开源的.net MVC框架ProMesh.NET学习    
<body>
开源的.net MVC框架ProMesh.NET学习    $[_VIEW_]
开源的.net MVC框架ProMesh.NET学习    
</body>
开源的.net MVC框架ProMesh.NET学习
</html>
开源的.net MVC框架ProMesh.NET学习
$[_VIEW_],即是要替换的内容

login.cs
 1开源的.net MVC框架ProMesh.NET学习using System;
 2开源的.net MVC框架ProMesh.NET学习using System.ComponentModel;
 3开源的.net MVC框架ProMesh.NET学习using Activa.ProMesh;
 4开源的.net MVC框架ProMesh.NET学习using Activa.CoolStorage;
 5开源的.net MVC框架ProMesh.NET学习using Blog.Domain;
 6开源的.net MVC框架ProMesh.NET学习
 7开源的.net MVC框架ProMesh.NET学习namespace Blog.Web.Controllers
 8

上面是我的loginController,刚才说了默认所有Controller应用master.htm模版,这里通过[Layout("u/blogmaster")]重新指定新的母版页,即templates/u/blogmaster.htm文件,[Url("u/blog")]即指定访问地址,这里地址是u/blog.ashx. 上面说了,每个Controller对应同名的template,可以定义 
[View("u/blog")]自己指定view模版
Run是Controller的入口,使用ViewData["posts"]向模版传递变量,下面是模版代码

posts是一个IList,所以这里
<!--$[foreach post in posts]-->
<!--$[endfor]-->
进行遍历输出数据,上面就是模版引擎的语法。还是很简单的。和monorails有点区别,也容易理解

开源的.net MVC框架ProMesh.NET学习<div id="columnwrap">
开源的.net MVC框架ProMesh.NET学习    
开源的.net MVC框架ProMesh.NET学习
<div id="content-main">
开源的.net MVC框架ProMesh.NET学习        
开源的.net MVC框架ProMesh.NET学习
<h1>$[user.UserName]的博客</h1>
开源的.net MVC框架ProMesh.NET学习
<h2 class="deck"><!--博客介绍--></h2>
开源的.net MVC框架ProMesh.NET学习
开源的.net MVC框架ProMesh.NET学习
开源的.net MVC框架ProMesh.NET学习
<!--$[foreach post in posts]-->
开源的.net MVC框架ProMesh.NET学习
<h2>
开源的.net MVC框架ProMesh.NET学习    
<href="~/u/showinfo.ashx?id=$[post.PostId]">$[post.Title]</a>&nbsp;[$[post.Cate.CateName]]
开源的.net MVC框架ProMesh.NET学习
</h2>
开源的.net MVC框架ProMesh.NET学习
<class='date'>发布于$[post.PostDate] <href="~/u/blog.ashx?uid=$[post.User.UserId]">$[post.User.UserName]</a> <class="rss" href="#">RSS</a></p>
开源的.net MVC框架ProMesh.NET学习
<div>
开源的.net MVC框架ProMesh.NET学习
<p>
开源的.net MVC框架ProMesh.NET学习$[post.Summary]
开源的.net MVC框架ProMesh.NET学习
</p>
开源的.net MVC框架ProMesh.NET学习
开源的.net MVC框架ProMesh.NET学习
</div>
开源的.net MVC框架ProMesh.NET学习
<class="small"><href="~/u/showinfo.ashx?id=$[post.PostId]">阅读全文 &raquo;</a></p>
开源的.net MVC框架ProMesh.NET学习
<!--$[endfor]-->
开源的.net MVC框架ProMesh.NET学习
开源的.net MVC框架ProMesh.NET学习
<div id="content-secondary" align="center">
开源的.net MVC框架ProMesh.NET学习    
</p>
开源的.net MVC框架ProMesh.NET学习    页数
开源的.net MVC框架ProMesh.NET学习    
</p>
开源的.net MVC框架ProMesh.NET学习
</div>
开源的.net MVC框架ProMesh.NET学习
</div>
开源的.net MVC框架ProMesh.NET学习
<!-- END #content-main -->
开源的.net MVC框架ProMesh.NET学习
<div id="content-related" class="sidebar">
开源的.net MVC框架ProMesh.NET学习
<!--$[render "../../templates/u/menu.htm"]-->
开源的.net MVC框架ProMesh.NET学习
</div>
开源的.net MVC框架ProMesh.NET学习

这样一个基本的例子就可以运行了。里面还有很多细节的使用。我在例子中一种效果都使用了多种方法来测试,可以看看例子的使用




数据库建表文件在DataBase目录里
数据库连接在Global.cs文件里个性
开源的.net MVC框架ProMesh.NET学习            if (!CSConfig.HasDB())
            }
基本就可以运行了

相关文章: