ASP.
NET在图书馆数字资源建设中的应用全成干(厦门大学图书馆,厦门361005)摘要ASP.
NET是一个提供各种网络服务的统一平台,能较好的通过Web页完成数据操作、文件传送等多种功能.
本文简要介绍ASP.
NET实现数据库访问、文件上传、Email发送及Web服务方式.
关键词ASP.
NET数据库Web服务ASP.
NETintheConstructingofLibraryDigitalResourcesQuanChenggan(LibraryofXiamenUniversity,Xiamen361005)AbstractASP.
NETisaprogrammingframeworkbuiltonthecommonlanguageruntimethatcanbeusedonaservertobuildpowerfulWebapplications.
Thispaperintroducesthebasictechnologytoquerythedatabase、uploadfiles、sendemailandpresentWebService.
KeywordsASP.
NETDatabaseWebservices收稿日期:2002-03-08从服务方式来说,图书馆大量数字资源是通过其站点主页提供,随着数据量的爆炸性增长和技术的不断发展,图书馆主页为读者提供数据由原来的静态方式转向动态方式,也就是由读者被动的接收方式转为读者主动获取的方式,在这一转换过程中,网页的动态发布技术起着相当重要的作用.
目前动态页面主要通过公共网关接口(CommonGate-wayInterface,CGI)、HypertextPreprocessor(PHP)、JavaServerPages(JSP)及ActiveServerPages(ASP)等技术实现,在对于这些技术而言,各有各的长处和不足,综合考虑开发难度、维护成本及其功能,ASP具有相当的优势.
不少商业数据库查询和站点的发布都是采用ASP来实现.
但是,ASP运行效率较低,功能上的局限对于图书馆数字资源的网上发布和查询有一定的限制,2002年,美国微软公司正式推出ASPNET技术,在保留了ASP的易开发、维护等众多优点的基础上,吸取JSP、PHP等技术的优点,并增强功能,提高运行效率,较ASP等技术更适于实现图书馆动态页面和数据操作,更好的实现与读者的互动和服务.
本文简要介绍ASP.
NET及其在提供资源中的应用.
1ASP.
NET与ASP运行WINNT4或Windows2000或WindowsXP的服务器上安装Microsoft.
NETFramework就支持ASP.
NET.
ASP.
NET通过后缀名为aspx的文件实现,它是一个统一的平台,以供VB.
NET、JScript及C#等多种语言开发各种网络应用程序,其中C#是由微软公司新开发的下一代编程语言,本文中的全部实例都以C#实现.
开发ASP.
NET程序可以用如同NotePad之类的普通文本编辑工具进行,但是,利用微软公司提供VisualStudio.
Net集成开发工具更为方便.
与ASP不同,ASP.
NET采用编译方式而不是解释方式来运行程序.
ASP.
NET程序第一次运行时被系统编译后缓存,之后的运行速度则会极大的提高.
作者在同一台服务器上对ASP和ASR.
NET进行循环性能测试,ASP.
NET只用少于1秒的时间完成了ASP要用8秒才能完成的2000*2000次循环(循环体功能是获取当前系统时间).
美国微软公司也推荐将所有的Web页面文件后缀(.
htm/.
html)改为ASP.
NET程序文件后缀(.
aspx)以提高Web页面的浏览速度.
ASP.
NET程序可以象ASP程序一样嵌入HTML,例如对于下例ASP程序:姓名:>""thenResponse.
write(Request.
QueryString("T1"))EndIf%>改写为ASP.
NET程序为:第20卷第10期2002年10月情报科学Vol.
20,No.
10October,2002姓名:">但是,微软公司推荐的更为先进的开发思想来开发ASP.
NET程序,对于上例,则可以分写为如下两个文件in-tro.
aspx与intro.
cs,其中intro.
aspx内容为:aspx"method="post"runat="server">Name:asp:textboxid="T1"runat="server"/>asp:buttontext="Lookup"OnClick="SubmitBtn_Click"runat="server"/>asp:Labelid="Labell"runat="server"/>intro.
cs内容为:usingSystem.
Web.
UI;usingSystem.
Web.
UI.
WebControls;publicclassMyCodeBehind:Page{publicLabelLabell;publicvoidSubmitBtn_Click(objectsender,Sys-tem.
EventArgse){Labell.
Text=T1.
Value;}}把页面文件和代码文件分成两个文件及使用了面向对象的开发思想更利于代码的重用和日后的维护.
同时,ASP.
NET提供了大量的服务器端控件和可自定义控件,通过这些控件,开发人员能很方便的实现所需的各种功能.
2ASP.
NET中的数据操作数字图书馆建设工作中,很大一部分工作是数据访问,也就是对各种不同数据源进行数据操作.
ASP.
NET通过ADO.
NET进行数据访问,并有功能强大的服务端控件对数据发布(显示)提供较完善的支持,使得图书馆与读者之间的交互更为简洁和方便.
与数据访问相关的类被封装在Sys-tem.
Data、System.
Data.
SqlClient、System.
Data.
OLEDB等名字空间内.
因此,在使用ADO.
NET中,应用关键字Import引入相关的名字空间.
ADO.
NET支持对目前流行的各种数据源如大型数据库、桌面型数据库及XML文件等,一般而言,ASP.
NET通过ADO.
NET对数据源的访问过程包括如下步骤或是其中的若干个:(1)创建一个数据连接;(2)请求一个记录集合;(3)把记录集合暂存到DataSet;(4)如果需要,返回第2步;(DataSet可以容纳多个数据集合)(5)关闭数据库链路;(6)在DataSet上作所需要的操作.
ADO.
NET中的DataSet在ASP.
NET的地位相当于ASP中的Recordset.
除DataSet外,ASP.
NET还提供了XMLReader、DataReader等其它组件,用户可以根据要求选择不同组件,很方便的对各种数据源实现数据访问.
下面以Sq1Server7中的pubs库为例,说明ASP.
NET是如何利用ADO.
NET进行数据更新和查询操作的.
SqlConnectionmyConnection;protectedvoidPage_Load(ObjectSrc,EventArgsE){myConnection=newSqlConnection("userid=sa;pass-word=Password;initialcatalog=pubs;datasource=serverIP;ConnectTimeout=30")if(!
IsPostBack){BindGrid();}}publicvoidMyDataGrid_Update(Objectsender,Data-GridCommandEventArgsE){//数据更新操作StringupdateCmd="UPDATEAuthorsSETau_id=110110期ASP.
NET在图书馆数字资源建设中的应用@Id,au_lname=@LName,au_fname=@FName,phone=@Phone,"+"address=@Address,city=@City,state=@State,zip=@Zip,contract=@Contractwhereau_id=@Id";SqlCommandmyCommand=newSqlCommand(update-Cmd,myConnection);mCommand.
Parameters.
Add(newSqlParameter("@Id",SqlDbType.
NVarChar.
11));……myCommand.
Connection.
Open();try{myCommand.
ExecuteNonQuery();}catch(SqlExceptione){//这里进行异常处理}myCommand.
Connection.
Close();BindGrid();}publicvoidBindGrid(){//数据选择和显示操作SqlDataAdaptermyCommand=newSqlDataAdapter("select*fromAuthors",myConnection);DataSetds=newDataSet();myCommand.
Fill(ds,"Authors");MyDataGrid.
DataSource=ds.
Tabls["Authors"].
DefaultView;MyDataGrid.
DataBind();}关于数据追加、数据删除其它所有相关的数据库操作,都能使用类似的方式通过SqlCommand的Execute-NonQuery()等方法完成.
对于查询得到的DataSet,则可以绑定到诸如DataGrid、DataList等服务端控件上,通过对其相关属性及事件方法进行设定及编码,就能很方便的实现数据排序、分页显示等原来使用ASP较难实现的功能.
3文件上传、Email发送功能及Web服务除了数据访问较ASP的功能更强大和方便,ASP.
NET还具有了不少适于图书馆与读者进行交互的新特性,如用ASP、PHP或是JSP必须借用第三方组件才能实现或无法实现的文件上传、Email发送及Web服务,ASP.
NET只要用简单的方式就能完成.
(1)文件上传:voidButton1_Click(objectSource,EventArgse){if((FileName.
Value!
="")and(Filel.
PostedFile!
=null)){try{Filel.
PostedFile.
SaveAs("c:\\temp\\"+File-Name.
Value);}catch(Exceptionexc){//异常处理}}}(2)发送Email:MailMessagemail=newMailMessage();mail.
From=发信人地址;mail.
To=收件人地址;mail.
Body="这是一个测试的信件内容";mail.
Subject="信件标题";SmtpMail.
SmtpServer=smtp服务器;SmtpMail.
Send(mail);(3)Web服务:Web服务通过.
asmx文件生成符合WSDL的xml文件提供各种功能.
对于客户而言,只要通过WDSL代理类文件而并不需要知道所使用数据库的名称、用户名及密码等重要信息就能实现服务器提供的功能.
在下面的例子中,作者提供一个对数据操作的Web服务文件.
usingSystem;usingSystem.
Data;usingSystem.
Data.
SqlClient;usingSystem.
Web.
Services;publicclassDataService{[WebMethod]publicDataSetGetTitleAuthors(){SqlConnectionmyConnection=newSqlConnection("user1102情报科学20卷id=sa;password=Password;initialcatalog=pubs;datasource=serverIP;ConnectTimeout=30");SqlDataAdaptermyCommand1=newSqlDataAdapter("select*fromAuthors",myConnection);SqlDataAdaptermyCommand2=newSq1DataAdapter("select*fromTitles",myConnection);DataSetds=newDataSet();myCommand1.
Fill(ds,"Authors");myCommand2.
Fill(ds,"Titles");returnds;}[WebMethod]publicintPutTitleAuthors(DataSetds){returnds.
Tables[0].
Rosws.
Count;}}Web服务被正确提供后,客户使用WSDL.
EXE命令生成代理类文件,然后通过代理类文件就能进行被授权的数据操作.
例如通过下面的代码,客户就可以获得所要数据.
protectedvoidPage_Load(ObjectSrc,EventArgsE){DataServiced=newDataService();DataSetmyData=d.
GetTitleAuthors();if(!
Page.
IsPostBack){Authors_DataGrid.
DataSource=myData.
Tables["Authors"].
DefaultView;Authors_DataGrid.
DataBind();}}Web服务是一项崭新的技术,在实现图书馆数字化建设中的跨库查询、分布式查询等工作可能有较大前景.
从上述对ASP.
NET的简单介绍中可以看出ASP.
NET比ASP、PHP及JSP等较流行的动态页面制作技术功能更强大,功能涉及Web应用程序的各个方面.
在集成开发环境VS.
NET的支持下,开发和维护工作也很方便,很适于数字化图书馆的建设中的数据查询和动态发布.
参考文献1陈茜,张伟.
ASP技术在图书馆网络资源建设中的应用.
情报科学,2001(7)2周艳,时晓难.
利用ASP技术实现图书馆主页上Web数据库的动态查询.
现代图书情报技术,2001(4)3濮德敏.
高校图书馆主页与ASP技术.
大学图书馆学报,2000(3)4曹军.
ASP、PHP和JSP的比较研究.
现代图书情报技术,2001(4)5MicrosoftCo.
ASP.
NETQuickStarthttp:∥www.
gotdotnet.
com/,2001(责任编辑:滕代娣)110310期ASP.
NET在图书馆数字资源建设中的应用
腾讯云轻量应用服务器又要免费升级配置了,之前已经免费升级过一次了(腾讯云轻量应用服务器套餐配置升级 轻量老用户专享免费升配!),这次在上次的基础上再次升级。也许这就是良心云吧,名不虚传。腾讯云怎么样?腾讯云好不好。腾讯云轻量应用服务器 Lighthouse 是一种易于使用和管理、适合承载轻量级业务负载的云服务器,能帮助个人和企业在云端快速构建网站、博客、电商、论坛等各类应用以及开发测试环境,并提供...
数脉科技怎么样?昨天看到数脉科技发布了7月优惠,如果你想购买香港服务器,可以看看他家的产品,性价比还是非常高的。数脉科技对香港自营机房的香港服务器进行超低价促销,可选择10M、30M的优质bgp网络。目前商家有优质BGP、CN2、阿里云线路,国内用户用来做站非常不错,目前E3/16GB阿里云CN2线路的套餐有一个立减400元的优惠,有需要的朋友可以看看。点击进入:数脉科技商家官方网站香港特价阿里云...
Megalayer 商家主营业务是以独立服务器和站群服务器的,后来也陆续的有新增香港、菲律宾数据中心的VPS主机产品。由于其线路的丰富,还是深受一些用户喜欢的,有CN2优化直连线路,有全向国际线路,以及针对欧美的国际线路。这次有看到商家也有新增美国机房的VPS主机,也有包括15M带宽CN2优化带宽以及30M带宽的全向线路。Megalayer 商家提供的美国机房VPS产品,提供的配置方案也是比较多,...
asp.net网页制作为你推荐
政府采购项目招标文件ASPSESSIONIDasp操作http建企业网站建一个企业网站需要多少钱?大概要多久做好?企业电子邮局求:什么是企业邮箱?(企业邮箱与普通个人邮箱的区别是什么?)ym.163.com免费企业邮箱美要求解锁iPhone美版iphone6解锁怎么操作?什么是支付宝支付宝是什么意思asp.net网页制作使用ASP.net技术创建一个网页,如何做?360arp防火墙在哪arp防火墙在哪开额- -360里是哪个?
中国域名注册 国外免费域名网站 sugarhosts idc测评网 360抢票助手 css样式大全 国外网站代理服务器 数字域名 百兆独享 工作站服务器 服务器托管什么意思 购买国外空间 免费mysql数据库 厦门电信 web服务器是什么 独立主机 广州虚拟主机 ncp 认证机构 服务器是什么意思 更多