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在图书馆数字资源建设中的应用
零途云(Lingtuyun.com)新上了香港站群云服务器 – CN2精品线路,香港多ip站群云服务器16IP/5M带宽,4H4G仅220元/月,还有美国200g高防云服务器低至39元/月起。零途云是一家香港公司,主要产品香港cn2 gia线路、美国Cera线路云主机,美国CERA高防服务器,日本CN2直连服务器;同时提供香港多ip站群云服务器。即日起,购买香港/美国/日本云服务器享受9折优惠,新...
今天早上相比很多网友和一样收到来自Linode的庆祝18周年的邮件信息。和往年一样,他们会回顾在过去一年中的成绩,以及在未来准备改进的地方。虽然目前Linode商家没有提供以前JP1优化线路的机房,但是人家一直跟随自己的脚步在走,确实在云服务器市场上有自己的立足之地。我们看看过去一年中Linode的成就:第一、承诺投入 100,000 美元来帮助具有社会意识的非营利组织,促进有价值的革新。第二、发...
农历春节将至,腾讯云开启了热门爆款云产品首单特惠秒杀活动,上海/北京/广州1核2G云服务器首年仅38元起,上架了新的首单优惠活动,每天三场秒杀,长期有效,其中轻量应用服务器2G内存5M带宽仅需年费38元起,其他产品比如CDN流量包、短信包、MySQL、直播流量包、标准存储等等产品也参与活动,腾讯云官网已注册且完成实名认证的国内站用户均可参与。活动页面:https://cloud.tencent.c...
asp.net网页制作为你推荐
操作httpphpcms模板PHPCMS V9模板centos6.5centos7和centos6.5的区别centos6.5linux centos 6.5 怎么安装软件360搜狗奇虎360到底是做什么的?sqlserver数据库sql server数据库是什么 型数据库flashftp下载禁室迷情夜下载地址给我 谢谢要能下载出来的360防火墙在哪里设置360防火墙怎么开启啊 我要9.3的设计eset温州商标注册温州代理注册个商标是怎么收费的?
海外虚拟主机空间 台湾虚拟主机 tk域名注册 域名主机空间 北京vps 域名备案网站 淘宝二级域名 如何注册中文域名 buyvm 香港新世界电讯 xen 搜狗12306抢票助手 空间服务商 免费网站申请 qingyun 我爱水煮鱼 炎黄盛世 秒杀预告 双11秒杀 腾讯实名认证中心 更多