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在图书馆数字资源建设中的应用
继阿里云服务商推出轻量服务器后,腾讯云这两年对于轻量服务器的推广力度还是比较大的。实际上对于我们大部分网友用户来说,轻量服务器对于我们网站和一般的业务来说是绝对够用的。反而有些时候轻量服务器的带宽比CVM云服务器够大,配置也够好,更有是价格也便宜,所以对于初期的网站业务来说轻量服务器是够用的。这几天UCLOUD优刻得香港服务器稳定性不佳,于是有网友也在考虑搬迁到腾讯云服务器商家,对于轻量服务器官方...
2021年9月中秋特惠优惠促销来源:数脉科技 编辑:数脉科技编辑部 发布时间:2021-09-11 03:31尊敬的新老客户:9月优惠促销信息如下,10Mbps、 30Mbps、 50Mbps、100Mbps香港优质或BGPN2、阿里云线路、华为云线路,满足多种项目需求!支持测试。全部线路首月五折起。数脉官网 https://my.shuhost.com/香港特价数脉阿里云华为云 10MbpsCN...
ucloud:全球大促活动降价了!这次云服务器全网最低价,也算是让利用户了,UCloud商家调低了之前的促销活动价格,并且新增了1核1G内存配置快杰型云服务器,价格是47元/年(也可选2元首月),这是全网同配置最便宜的云服务器了!UCloud全球大促活动促销机型有快杰型云服务器和通用型云服务器,促销机房国内海外都有,覆盖全球20个城市,具体有北京、上海、广州、香港、 台北、日本东京、越南胡志明市、...
asp.net网页制作为你推荐
操作http操作httpaccess数据库修复求救,ACCESS数据库破坏了,怎么修复?企业建网站企业建网站有什么用?全国企业信息查询有没有可以查全国企业信息的工商查询网站360arp防火墙在哪360ARP防火墙哪里下载?本公司www抢米网什么意思抢小米手机加多宝与王老吉加多宝王老吉有什么区别吗?12306.com如何登录12306
免备案cdn 777te anylink isp服务商 网通服务器托管 hkt 免费网页申请 四核服务器 789电视剧 电信托管 卡巴斯基免费试用版 超级服务器 双12 net空间 中国电信测速网站 免费网络 徐州电信 江苏双线 睿云 汤博乐 更多