|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。假如你是一个履历丰厚的ASP/ADO开辟员但又没有实验过.NET,那末最好如今就入手下手试一试。为了让你体味到.NET,我们将把微软Access数据库(你也能够SQLServer大概Oracle数据库替换)毗连到互联网并检索和显现某些数据。这个例子即必要InformationInternetServices(IIS)也必要.NET框架。你能够在这儿下载.NET框架。假如你想试用收费的APS.NET开辟情况,那末能够从WebMatrix下载它。
对服务器控件的先容
静态服务器页面(ActiveServerPage,ASP)是微软第一个用于毗连数据库和Web的Web手艺。ASP.NET完整是其传统言语(即ASP)的重写。你能够同时利用这二者,这是由于二者文件的扩大名相区分(.NET页利用的是.aspx扩大名,而ASP利用.asp扩大名)。
你在ASP.NET中写的年夜多半代码将在Web服务器上运转,但前往到客户的仅仅是HTML。幸亏,.NET供应了很多与尺度HTML控件类似的新控件,以下拉式列表和文本框。表A列出了最经常使用的服务器(server)控件。
表A
罕见server控件
控件功效
<asp:Buttonid="button1"Text="Press"runat="server"/>在页面上创立一个尺度按钮
<asp:Calendarrunat="server"/>创立日历(calendar)
<asp:DropListid="list1"runat="server">创立一个下拉式列表
<asp:ListBoxid="listbox"rows="4"runat="server">创立基础列表框
<asp:TextBoxid="txtbox"runat="server"/>创立尺度文本框
.NET服务器控件有一个长处,即它是创立在Web服务器上(而不是像HTML那样在页面中创立控件)。因而,它们能够在发送到客户之行进行处置。比方,你既能够在页中也能够在服务器端举行内容考证。这也就意味着你能够在页中考证内容,然后在服务器端从头举行考证。
在年夜多半情形下,你能够经由过程复杂的增加组件的办法来创立一个.NET控件:
runat="server"
与之对应的HTML元素代码以下:
<asp:control_nameid="controlID"runat="server"/>
有些开辟工具的用法乃至更复杂。比方,VisualStudio.NET可让你经由过程拖放Web页上的控件来创立服务器控件。
除这些服务器真个尺度HTML控件,ASP.NET还供应了一套考证控件(validationcontrols):
RequiredFieldValidation控件哀求一个数值。
CompareValidator控件对照两个控件中的数值,如当用户被请求两次输出电子邮件地点时,用来考证两次输出是不是不异。
RangeValidator控件用来判别条目值是不是在一个值域以内。
RegularExpressionValidator控件用正则表达式来考证控件输出。
CustomValidator控件用来让你输出考证码。
ValidationSummary用来显现一个页面所用到的一切准确的考证的清单。
利用ADO.NET
你也许熟习ADO,不外ADO.NET倒是一种全新的言语。可是没有干系,这二者之间有充足多的类似的地方,学会怎样利用新的工具并非坚苦的事。毗连到数据库一共有三个步骤:
1.导进一个.NET名字空间来创建毗连。
2.创立一个ADO.NETDataReader工具来猎取数据。
3.创立一个ADO.NETRepeater工具来显现数据。
对.NET来讲,名字空间是一个新的观点,以是在ADO中没有和它对应的器材。在ADO中,毗连是经由过程供应字符串和一个Connection大概Command工具来创建起来的。DataReader对应于ADO的Recordset;而Reperter是一个server控件,它用来在一个模板的基本上显现数据。
创立ADO.NET毗连
为了从数据库中检索数据,你必要ADO.NET。假如你熟习IIS和Web文件条理,那末你大概不需任何匡助就能够创建一个例子。你也能够依照我们的演示历程往做,先把Northwind(一个Access数据库例子)拷贝到你的当地硬盘中。我们的例子在一个名为nettest的Web文件夹下。拷贝粘贴(大概输出)上面的代码到一个文本编纂器中并把它保留为nettest.aspx。
如今,导进一个.NET名字空间,如许你就能够利用OLEDB数据库了:
<%@ImportNamespace="System.Data.OleDb"%>
PageLoad事务将实行毗连到Northwind数据库的代码,Server.mappath将前往包括该数据库的物理路径,如代码清单A所示。
毗连字符串
假如你想毗连到SQLServer(用一个OLEDB毗连),你可使用上面的语句:
"Provider=sqloledb;DataSource=Martin;InitialCatalog=NorthWind;IntegratedSecurity=SSPI;"
假如你用的是Oracle,你能够用上面的语句:
"Provider=msdaora;DataSource=OracleDataBase;UserId=YourUserName;Password=YourPassword;"
connectionstrings.com供应了很多关于毗连的信息,个中包括了每种大概情形下的毗连字符串。
创立ADO.NET工具
下一步就是创立一个DataReader工具,它用来保留你但愿显现的数据。上面的代码利用了Command工具的ExecuteReader办法,如许就创立了一个保留了Northwind客户数据库中一切纪录的DataReader工具。
cnn.Open()
sql="SELECTCompanyName,ContactName,Address,CityFROMCustomers"
cnn=NewOleDbCommand(sql,cnn)
dbread=cnn.ExecuteReader()
用Reaperter控件来显现数据
如今,经由过程绑定上一步创立的DataReader工具,你就能够用一个Reperter控件来显现数据。Reaperter控件可让你创立一个复杂的模板(比方,HTML表),对查询所前往的每行数据都反复这个操纵。
用HerderTemplate块来创立初始的表布局;数据将呈现在ItemTemplate(表的行和列)块中。比方,上面的代码为我们的客户数据创立一个表头,它用来唆使新近SQL语句所前往的字段:
<HeaderTemplate>
<tableborder="1"width="100%">
<tr>
<th>CompanyName</th>
<th>ContactName</th>
<th>Address</th>
<th>City</th>
</tr>
</HeaderTemplate>
与别的的ASP.NET工具分歧,Repeater工具没有现成的结构(layout)和款式;你必需界说你本人的结构和款式。前往数据的每行都显现在ItemTemplate块中。上面的剧本中每个字段都包括了一个单位(cell)(在HTML表中):
<ItemTemplate>
<tr>
<td><%#Container.DataItem("CompaName")%></td>
<td><%#Container.DataItem("ContactName")%></td>
<td><%#Container.DataItem("Address")%></td>
<td><%#Container.DataItem("City")%></td>
</tr>
</ItemTemplate>
模板代码在HTML的body标签中而在剧本界说以外――固然你不克不及从下面的例子中看出这一点。
扫瞄.NET页
清单B中的代码用来在扫瞄器中显现客户数据(用HTML表模板显现各个数据条目)。
把这些剧本复制粘贴就任何一个文本编纂器中,并保留为.aspx格局的文件。然后把该文件另存大概拷贝到Web根目次下(本例的根目次为wwwroot
ettest)。启动你的扫瞄器并输出符合的地点,如许翻开了这个文件。当扫瞄器载进该文件后(如图A所示),扫瞄器将显现一个复杂的HTML网页,个中包括了SQL语句的哀求所前往的数据。
图A
扫瞄器中的.NET页面
你还能够改善页面的表面。比方,经由过程增加别的模板块来改动每行的色彩。AlternatingItem.Template块能够改动每个表单位的背景色彩。上面的剧本会把单位的背景改成黄色(FFFF00):
<AlternatingItemTemplate>
<trbgcolor="#FFFF00">
<td><%#Container.DataItem("companyname")%></td>
<td><%#Container.DataItem("contactname")%></td>
<td><%#Container.DataItem("address")%></td>
<td><%#Container.DataItem("city")%></td>
<td><%#Container.DataItem("Region")%></td>
</tr>
</AlternatingItemTemplate>
为了对别的一切行起感化,把AlternatingItemTemplate块放到ItemTemplate块以后。
大节
只管.NET并非出格奇怪的东东,但假如你还没有完成从传统ASP到ASP.NET的腾跃,那末如今入手下手也不迟。假如你在ASP和ADO范畴有着丰厚的履历,那末这个转换将会相称的复杂。
实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。 |
|