仓酷云

标题: ASP.NET编程:基于ASP.NET2.0的非HttpModule盗窟版MV... [打印本页]

作者: 逍遥一派    时间: 2015-1-16 22:23
标题: ASP.NET编程:基于ASP.NET2.0的非HttpModule盗窟版MV...
语言是不是不是最重要的?在ASP.NetMVC框架中是利用地点拦阻的,固然很好用,可是装起来太年夜了,设置也贫苦。本文经由过程代码理论,在ASP.Net2.0框架下完成一套浅易的MVC框架。MVC框架难于构建的中央在于Controller与View的分别和分别后数据能够便利地传输。为了坚持代码的简便,将利用ashx文件作为Controller,用aspx页面作为View。讲起来对照费力,把项目文件放下去,而上面只作一个复杂的申明。项目是VS2008的项目,巨细15K。
下载地点:DotNetMVC.rar
起首构建一个Controller基类。
以下为援用的内容:
Controller类
/**
*author:yurow
*http://birdshover.cnblogs.com
*description:
*
*history:createdbyyurow2009-9-207:30:04
*/

usingSystem.Web;
usingSystem.Web.Services;

namespaceDotNetMVC.MVC{
///<summary>
///把持器
///</summary>
[WebService(Namespace="http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
publicabstractclassController<T,K>:IHttpHandler{
///<summary>
///以后哀求
///</summary>
protectedMyRequestRequest;
///<summary>
///输入
///</summary>
protectedHttpResponseResponse;
///<summary>
///前往到View页面的数据
///</summary>
protectedMvcViewData<T,K>ViewData;
///<summary>
///把持器称号
///</summary>
privatestringcontrollerName;
///<summary>
///把持器操纵办法
///</summary>
publicabstractvoidAction();
///<summary>
///实行哀求
///</summary>
///<paramname="context"></param>
publicvoidProcessRequest(HttpContextcontext){
Request=context.Request;
Response=context.Response;
//这里能够用反射的体例举行带参数的操纵,这里为了简化,往失落了这部分
//MethodInfomethod=this.GetType().GetMethod("Action",newType[0]);
//if(method==null){
//thrownewNotImplementedException("没有完成!");
//}
//objectdata=method.Invoke(this,null)asobject;

ViewData=newMvcViewData<T,K>();
Action();
context.Items.Add("MvcViewData",ViewData);
context.Server.Transfer("~/View/"+ControllerName+".aspx",false);
}
///<summary>
///把持称号,不设置默许为View页面与把持器称号同名
///好比,在Login.ashx哀求中,默许挪用View/Login.aspx的页面作为显现页面。
///当登录乐成后,设置其为LoginOK,则会挪用View/LoginOK.aspx
///</summary>
protectedstringControllerName{
get{
if(string.IsNullOrEmpty(controllerName))
returnthis.GetType().Name;
returncontrollerName;
}
set{
controllerName=value;
}
}

publicboolIsReusable{
get{
returnfalse;
}
}
}
}

Controller在ProcessRequest办法中挪用aspx页面,内里设置了一个虚办法Action在详细的ashx文件中重载。
上面是Default.ashx.cs文件的写法
以下为援用的内容:
Default
singDotNetMVC.MVC;

namespaceDotNetMVC{
///<summary>
///$codebehindclassname$的择要申明
///</summary>
publicclassDefault:Controller<string,string>{
publicoverridevoidAction(){

}
}
}

在Controller中,另有两个主要的器材一个是传送给View数据用的,一个是显现哪一个View的(经由过程ControllerName这个属性)
数据库有很多应用领域,但是如果你单单学数据库的话基本上做数据库管理员比较合适而已,跟领域结合的你还得再学习那些领域知识。(其实数据挖掘我真是不懂,本来这学期开了一门课了。
作者: 简单生活    时间: 2015-1-19 10:07
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
作者: 再现理想    时间: 2015-1-24 12:11
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
作者: 老尸    时间: 2015-2-1 10:40
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
作者: 莫相离    时间: 2015-2-7 04:08
Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!
作者: 不帅    时间: 2015-2-20 13:12
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
作者: 精灵巫婆    时间: 2015-3-6 17:09
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
作者: 因胸联盟    时间: 2015-3-13 04:38
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
作者: admin    时间: 2015-3-20 13:07
当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2