ASP编程:aspnetforums 代码中的web计划形式
ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的工具可是什么都要收钱的啊!web|计划一向不怎样了解aspnetforums中的计划形式,大批的利用自界说控件,n-per的布局显得过于庞大。入手下手觉得是由于要loaduserdefskin的原因,明天偶然中看到一篇微软中国社区中的文章,地点http://www.microsoft.com/china/community/Column/93.mspx看事后懂了一些。对照文章和aspnetforums的代码,获益量多。文章内容以下:
专栏作品
意会Web计划形式
袁剑
--------------------------------------------------------------------------------
意会Web计划形式
本文宣布在《程序年龄》2004年1期
择要
本文先容了在.NET框架下使用Web计划形式改善WebForm程序计划的一些基础办法及要点。
关头字
计划形式,ASP.NET,WebForm,MVC,PageController,FrontController,PageCache
目次
?弁言
?典范的WebForm架构
?计划形式
?MVC形式下的WebForm
?PageController形式下的WebForm
?FrontController形式下的WebForm
?PageCache形式下的WebForm
?参考资本
?下载地点
?作者信息
弁言
记得微软方才推出ASP.NET时,给人的震动是开辟Web程序不再是编写传统的网页,而像是在机关使用程序,因此微软称之为WebForm。可是两年后的明天,有相称多的开辟职员仍旧延用写剧本程序的思绪构建一个又一个的WebForm,而没有发扬出ASP.NET的上风,就此本文但愿经由过程实例可以启示读者一些新的思绪。
因为篇幅无限,本文不成能经由过程一个庞大的Web使用来向读者展现分离计划形式的WebForm,可是假如仅仅是一个小程序切实其实没有利用形式的需要。为了便于了解,但愿您能把它设想成是一个年夜型体系中的小模块(假如代码是年夜型体系的一部分那末利用形式就变得十分主要)。
在本文的开端给出了一切源程序的下载地点。
典范的WebForm架构
起首来看一个复杂的使用,数据库计划以下图,Portal是Subject的父表,经由过程portalId举行一对多联系关系,程序必要依据portalId显现分歧的Subject列表。
依照我们编写WebForm一样平常的习气,起首在页面上拖放一个DropDownList、一个DataGrid、一个Button控件:
界面(webForm.aspx):
<formid="webForm"method="post"runat="server">
<asp:DropDownListid="dropDownList"runat="server"></asp:DropDownList>
<asp:Buttonid="button"runat="server"Text="Button"></asp:Button>
<asp:DataGridid="dataGrid"runat="server"></asp:DataGrid>
</form>
然后使用VS.NET代码埋没功效编写的中心代码以下:
后置代码(webForm.aspx.cs):
//页面初始化事务
privatevoidPage_Load(objectsender,System.EventArgse)
{
if(!IsPostBack)
{
stringSQL_SELECT_PORTAL="SELECT*FROMPORTAL";
//利用using确保开释数据库毗连
//毗连字符串寄存在Web.Config文件中便于修正
using(SqlConnectionconn=newSqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]))
{
SqlDataAdapterdataAdapter=newSqlDataAdapter(SQL_SELECT_PORTAL,conn);
DataSetdataSet=newDataSet();
dataAdapter.Fill(dataSet);
//设置下拉列表的数据源与文本域、值域
dropDownList.DataSource=dataSet;
dropDownList.DataTextField="portalName";
dropDownList.DataValueField="portalId";
dropDownList.DataBind();
}
}
}
//Button的Click事务
privatevoidbutton_Click(objectsender,System.EventArgse)
{
stringSQL_SELECT_SUBJECT="SELECT*FROMSUBJECTWHEREportalId={0}";
using(SqlConnectionconn=newSqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]))
{
//用下拉列表选择的值交换失落SQL语句中的待定字符{0}
SqlDataAdapterdataAdapter=newSqlDataAdapter(string.Format(SQL_SELECT_SUBJECT,dropDownList.SelectedValue),conn);
DataSetdataSet=newDataSet();
dataAdapter.Fill(dataSet);
dataGrid.DataSource=dataSet;
dataGrid.DataBind();
}
}
实行了局如图所示,程序将依据下拉列表框选择的值绑定DataGrid,十分典范的一个WebForm架构,表现出ASP.NET事务驱动的头脑,完成了界面与代码的分别。可是细心看看能够从中发明几个成绩:
?对数据库操纵的代码反复,反复代码是软件开辟中相对的“坏滋味”,常常因为某些缘故原由当你修正了一处代码,却健忘要变动别的一处不异的代码,从而给程序留下了Bug的隐患。
?后置代码完整依附于界面,在WebForm下界面的变更远宏大于数据存储布局和会见的变更,当界面改动时您将不能不修正代码以顺应新的页面,有大概将会重写全部后置代码。
?后置代码不但处置用户的输出并且还卖力了数据的处置,假如需求产生变动,好比必要改动数据的处置体例,那末你将几近重写全部后置代码。
一个优异的计划必要每个模块,每种办法只专注于做一件事,如许的布局才明晰,易修正,究竟项目标需求老是在不休变动的,“独一稳定的就是变更自己”,好的程序必定要为变更作出筹办,制止“牵一发而动满身”,以是必定要想举措办理上述成绩,上面让我们来看看计划形式。
计划形式
计划形式形貌了一个不休反复呈现的成绩和对该成绩的中心办理计划,它是乐成的构架、计划及实行计划,是履历的总结。计划形式的观点最早来自于东方修建学,但最乐成的案例首推中国现代的“三十六计”。
MVC形式下的WebForm
MVC形式是一个用于将用户界面逻辑与营业逻辑分别开来的基本计划形式,它将数据处置、界面和用户的举动把持分为:Model-View-Controller。
?Model:卖力以后使用的数据猎取与变动及相干的营业逻辑
?View:卖力显现信息
?Controller:卖力搜集转化用户的输出
View和Controller都依附于Model,可是Model既不依附于View,也不依附于Controller,这是分别的次要长处之一,如许Model能够独自的创建和测试以便于代码复用,View和Controller只必要Model供应数据,它们不会晓得、也不会体贴数据是存储在SQLServer仍是Oracle数据库中大概其余甚么中央。
依据MVC形式的头脑,能够将下面例子的后置代码拆分为Model和Controller,用专门的一个类来处置数据,后置代码作为Controller仅仅卖力转化用户的输出,修正后的代码为:
Model(SQLHelper.cs):封装一切对数据库的操纵。
privatestaticstringSQL_SELECT_PORTAL="SELECT*FROMPORTAL";
privatestaticstringSQL_SELECT_SUBJECT="SELECT*FROMSUBJECTWHEREportalId={0}";
privatestaticstringSQL_CONNECTION_STRING=ConfigurationSettings.AppSettings["ConnectionString"];
publicstaticDataSetGetPortal()
{
returnGetDataSet(SQL_SELECT_PORTAL);
}
publicstaticDataSetGetSubject(stringportalId)
{</p>ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。 ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。 因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题: 如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。 下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助... 学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。 跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组 掌握asp的特性而且一定要知道为什么。 如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
页:
[1]