ASP.NET网页设计用.Net完成基于CSS的AJAX开辟(1)
不可能天天有学习.net),我一同学说,你应该早就有作品啦。我惶惶然……后面我先容了我做的.net版的Ajax库(.NET下的复杂AJAX处置库),如今要先容的是一种开辟形式:款式绑定式驱动开辟。款式驱动是我本人定名的,(我也不晓得它叫甚么,嘿嘿)以便区分今朝的哀求驱动式开辟(如struts、webwork等)和事务驱动式开辟(如asp.net、JSF等)。
注释:
1简介
起首,让我们来看看传统的WEB开辟流程:
・哀求驱动:最多见的一类WEB框架完成了以哀求驱动的流程。一个HTTP哀求最近,被一个通用的分发器Servlet
(DispatherServlet)剖析,再被分发到一个对应的使用处置器。处置器顺次处置UI独有的把持逻辑,挪用营业工具和处置会
话形态,筹办一个模子,再转发到视图。
・事务驱动:事务驱动框架的计划方针是将桌面UI编程中出名的事务驱动形式搬到WEB情况中来。其特性是;关于怎样将
表单提交到URL、怎样将URL映照到把持器这些成绩它们不体贴;在事务驱动的框架中,表单组件和监听器接洽在一同,监听器
经由过程事务开挪用。并且,这类框架一般不盘算完成可插拔的试图手艺来出现给特定的模子工具,而是把WEB页看做一写列界面组
件的组合物,每一个组件能够坚持本人的形态,而且晓得怎样出现本人,乃至大概利用分歧界面皮肤。
从下面能够看到一个是传统的MVC架构是开辟,一个是以页面为中央的疾速使用开辟(RAD)二者各有各的优点。
款式驱动式开辟在哀求驱动开辟或事务驱动开辟的基本长进行复杂的封装,在界面层交融了以上二者观点上风,它以最前台
的界面层为基本,经由过程CSS款式或HTC事务绑定界面元从来实行响应背景营业,从而到达实行响应哀求,处置响应的事务的目标
。
款式驱动的上风在于只需把前台元素付与特定的款式,便可完成特别的动能和特定的营业处置,从而削减编码量和编译的
次数,具有“一次编写,各处绑定”的特性。比传统开辟复用性更强。特别是在AJAX年夜行其道的明天,在哀求驱动框架或事务
驱动现有框架的基本上使用款式绑定式开辟基于AJAX的使用,你会发明你的AJAX程序的开辟效力会进步良多,特别是当重复应
用统一(或类似)背景逻辑的情形会更分明,一样,款式绑定式开辟关于面向服务式开辟也具有很年夜的上风。
2基于ASP.NET的款式驱动开辟
款式驱动的操纵不依附与背景完成,asp.net的runat=server能够邪术搬地将前台元素转化为背景的元素,不外如许的转化
依附于特定的元素和背景,好比<inputtype=textrunat=server>如许的确是将input元素扩大成背景可使用的服务器元素
了,可是关于背景来说他要在页面临应的里举行特定的处置,并且inputtype=text只能是inputtype=text也不成能扩大本人
的功效。款式驱动则能够把统统元素、控件或控件中的元素使用JS的壮大功效在前台转换为你想要的功效和效果,然后再送进
原哀求或自界说哀求,从而填补asp.net的一些不敷,“一次编写,各处绑定”的特性也为我们省往了多个页面类写反复代码的
诸多困扰。
大概你会说不是有效户控件吗,很抱愧,用户控件跟前台严峻耦合,你将它拿到一个项目中大概派不上一点用处。
那WEB控件库呢?固然能重用,跟用户控件比不耦合了,可是范围性太强,庞大度高,我以为叫一个一般程序员写一个带模
板项的DataGird能排序的,能够删除、修正、上移下移]能够检察具体信息的控件出来是一件很省事的事。
又有人说了,真笨,我间接拖一个DATAGRID然后再这个基本上加按纽,模板列,排序,具体毗连好欠好啊,还用特地做个
控件吗?有很抱愧的告知你,假如是1000个DATAGIRD,每个都有这些功效的一种或几种,那末你背景够写的了,即便你笼统
出一层、封装出一个专门的DataGirdBuilder类,也够庞大的,各类重载办法,晕。
那末利用款式绑定式的开辟就复杂了,给DataGird个排序的款式(好比CssClass=sort),背景几句代码,大概爽性不写(
你的筹办对照充分),就能够了,再加个列变成删除按钮(好比个中的一个列里ItemStyleCssClass="delbtn"),就能够了,
其余DataGrid不必要排序,那末款式往失落。尔后页面类里干干悄悄。款式绑定后变更的元素传值到一致的营业工具举行处置,
统统都很礼貌。
3完成
使用我之前做过的AJAX库,再分离javascript剧本构建一个如许的库不成成绩。天然,跟做煮饭做菜一样,这里选料十分的
主要,这里我要选用来自DeanEdwards和TinoZijdel的事务操纵剧本库(common.js)和NeilCro~~~~y制造的款式基础操纵库(
css.js)来做好我们这道厚味,噢,固然,另有赫赫有名的prototype.js库.
好了,,前台的制造工序基础完成。
然后就是使用我前一阵子做的AJAX库了。
假定是删除,QueryString:command=delrow&JS天生的参数……
则背景挪用AjaxDelRow.cs
protectedoverridevoidDoAjax()
...{
//汇集参数
stringparlist=request.Params["pars"];
string[]paritem=parlist.Split(|);
Hashtablehash=newHashtable(paritem.Length);
for(inti=0;i<paritem.Length-1;i++)
...{
string[]paritempart=paritem.Split(^);
hash.Add(paritempart,paritempart);
}
boolisDeled=false;
stringtable=request.Params["table"];
//判别来历
if(table!=null)
...{
if(table.Equals("dgBigclassmanage"))//DATAGRID的ID号
...{
//挪用对应营业表面的DAO来删除
//hash["0"]为datagrid的第0列,假定第0传记过去是ID值
isDeled=(newBusinessFacade()).DeleteById(hash["0"].ToString());
}
if(isDeled)
...{
Output("true");
}
else
...{
Output("false");
}
}
AjaxDelRow制造流程请参考.NET下的复杂AJAX处置库
c语言的编译器,几乎是所有新平台都有的。因此从这点上看,c语言的程序,比其他任何语言更加容易跨平台。 目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案. 可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。 业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。 碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。 碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。 这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。
页:
[1]