ProMesh学习笔记-初体验
来源:互联网 发布:红手指同类软件 编辑:程序博客网 时间:2024/06/08 17:43
前天从堂子里看到了ProMesh.net这个MVC框架,感觉不错。
所以下载下来学习一下,下载ProMesh-19618.zip
所有项目中引用了Activa.ProMesh.Dll,请大家自行引用
开始学习(之前已经把网站提供的Demo打开看了一下),准备自己使用框架搭建一个网站
第一步,建立ProMeshStudy工程,添加ProMeshStudy网站项目和ProMeshMyClass类库项目。网站项目作为表示层,包含Template、Css、Js、Image等;类库项目作为相对应的业务逻辑,包含Application、Controller等。
第二步,在ProMeshMyClass中添加一个静态类,在此类中添加静态方法Init();在系统启动时,ProMesh会根据设定调用此类的Init()方法来对系统进行初始化操作。比如默认的页面扩展名是".ashx",我们可以修改成".aspx";增加AjaxProvider等。
这里我使用的类是:
第三步,在网站项目中配置ProMesh。打开web.config在AppSettings中添加Application,指向你自己添加的静态类
<add key="ProMesh.ApplicationClass" value="ProMeshMyClass.MyApplications,ProMeshMyClass"/>
添加HttpModule
<add name="ProMeshModule" type="Activa.ProMesh.HttpModule,Activa.ProMesh"/>
添加HttpHandler
<add verb="*" path="*.aspx" type="Activa.ProMesh.PageHandler,Activa.ProMesh"/>
第四步,添加基本模板
默认模板地址是templates目录,在网站项目中添加此目录。默认模板页面是master.htm,请添加到模板目录下,内容如下:
第五步,添加controller
请在ProMeshMyClass项目中添加一个新类,例如index,此类继承自Activa.ProMesh.Controller类。给此类添加一个void Run()方法内容增加ViewData["Hello"] = "Hello World!";类如下:
第六步,添加对应controller的模板页面,在templates中添加与你刚刚增加类同名的htm文件,这里是index.htm
内容如下:
$[Hello]
[]中间是你刚刚ViewData的Key
第七步:F5
◎◎“。。发生错误了,未将对象引用到实例,PageHandler.cs的_internalHandler.ProcessRequest(ProMeshHttpContext.Current);这行
我跟踪了整个过程后,发现了几个问题点。不知道是我配置的问题还是应该修改过了。修改地方如下:
WebAppConfig.cs 此行private static string _pageExtension = ".ashx";//edit 原来是"ashx";
此行else if (!value.StartsWith("."))//edit 原来是else if(!_pageExtension.StartsWith("."))
修改完毕,运行OK。:)
所以下载下来学习一下,下载ProMesh-19618.zip
所有项目中引用了Activa.ProMesh.Dll,请大家自行引用
开始学习(之前已经把网站提供的Demo打开看了一下),准备自己使用框架搭建一个网站
第一步,建立ProMeshStudy工程,添加ProMeshStudy网站项目和ProMeshMyClass类库项目。网站项目作为表示层,包含Template、Css、Js、Image等;类库项目作为相对应的业务逻辑,包含Application、Controller等。
第二步,在ProMeshMyClass中添加一个静态类,在此类中添加静态方法Init();在系统启动时,ProMesh会根据设定调用此类的Init()方法来对系统进行初始化操作。比如默认的页面扩展名是".ashx",我们可以修改成".aspx";增加AjaxProvider等。
这里我使用的类是:
1 public static class MyApplications
2 {
3 public static void Init()
4 {
9 WebAppConfig.PageExtension = "aspx";
10 }
11 }
2 {
3 public static void Init()
4 {
9 WebAppConfig.PageExtension = "aspx";
10 }
11 }
第三步,在网站项目中配置ProMesh。打开web.config在AppSettings中添加Application,指向你自己添加的静态类
<add key="ProMesh.ApplicationClass" value="ProMeshMyClass.MyApplications,ProMeshMyClass"/>
添加HttpModule
<add name="ProMeshModule" type="Activa.ProMesh.HttpModule,Activa.ProMesh"/>
添加HttpHandler
<add verb="*" path="*.aspx" type="Activa.ProMesh.PageHandler,Activa.ProMesh"/>
第四步,添加基本模板
默认模板地址是templates目录,在网站项目中添加此目录。默认模板页面是master.htm,请添加到模板目录下,内容如下:
Master模板页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ProMeshStudy WebSite</title>
</head>
<body>
<div>
$[_VIEW_]
</div>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ProMeshStudy WebSite</title>
</head>
<body>
<div>
$[_VIEW_]
</div>
</body>
</html>
第五步,添加controller
请在ProMeshMyClass项目中添加一个新类,例如index,此类继承自Activa.ProMesh.Controller类。给此类添加一个void Run()方法内容增加ViewData["Hello"] = "Hello World!";类如下:
Controller类
using System;
using System.Collections.Generic;
using System.Text;
using Activa.ProMesh;
namespace ProMeshMyClass.PageController
{
public class index : Controller
{
public void Run()
{
ViewData["Test"] = "Hello World!";
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Activa.ProMesh;
namespace ProMeshMyClass.PageController
{
public class index : Controller
{
public void Run()
{
ViewData["Test"] = "Hello World!";
}
}
}
第六步,添加对应controller的模板页面,在templates中添加与你刚刚增加类同名的htm文件,这里是index.htm
内容如下:
$[Hello]
[]中间是你刚刚ViewData的Key
第七步:F5
◎◎“。。发生错误了,未将对象引用到实例,PageHandler.cs的_internalHandler.ProcessRequest(ProMeshHttpContext.Current);这行
我跟踪了整个过程后,发现了几个问题点。不知道是我配置的问题还是应该修改过了。修改地方如下:
WebAppConfig.cs 此行private static string _pageExtension = ".ashx";//edit 原来是"ashx";
此行else if (!value.StartsWith("."))//edit 原来是else if(!_pageExtension.StartsWith("."))
修改完毕,运行OK。:)
- ProMesh学习笔记-初体验
- [学习笔记] C++ 初体验
- java初体验学习笔记
- Electron初体验,学习笔记
- AndroidThings学习笔记--初体验
- [学习笔记]markdown初体验
- Arduino学习笔记 - 初体验 Blink
- jQuery 学习笔记 一 初体验
- jQuery 学习笔记 一 初体验《二》
- jQuery 学习笔记 一 初体验《三》
- ExtJs 学习笔记 一 初体验
- Hibernate学习笔记之初体验
- IOS学习笔记-OC初体验
- 【Linux 学习笔记】gcc初体验
- Ajax学习笔记(1、初体验)
- Docker学习笔记(一)Docker初体验
- keras学习笔记之安装初体验
- JPA学习笔记-EJB-01JPA初体验
- W39D040A------512 K X 8 CMOS FLASH MEMORY
- WinCE 编程实验(第四章 储存管理)
- 消息钩子函数入门
- WinCE 编程实验(第五章 Windows CE的储存管理)
- 函数调用和异常捕捉的区别
- ProMesh学习笔记-初体验
- 可卑的发明
- WinCE 编程实验(第六章 装置管理)
- 3G 牌照终于发放了
- HTTP协议基础
- WinCE 编程实验(第七章 使用者接口与图形子系统)
- WRK简介
- KDnuggets:2008数据挖掘最大的应用和趋势的投票
- WinCE 编程实验(第八章 动态链接库的载入分析)