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在图书馆数字资源建设中的应用
Hostio是一家成立于2006年的国外主机商,提供基于KVM架构的VPS主机,AMD EPYC CPU,NVMe硬盘,1-10Gbps带宽,最低月付5欧元起。商家采用自己的网络AS208258,宿主机采用2 x AMD Epyc 7452 32C/64T 2.3Ghz CPU,16*32GB内存,4个Samsung PM983 NVMe SSD,提供IPv4+IPv6。下面列出几款主机配置信息。...
spinservers美国圣何塞机房的独立服务器补货120台,默认接入10Gbps带宽,给你超高配置,这价格目前来看好像真的是无敌手,而且可以做到下单后30分钟内交货,都是预先部署好了的。每一台机器用户都可以在后台自行安装、重装、重启、关机操作,无需人工参与! 官方网站:https://www.spinservers.com 比特币、信用卡、PayPal、支付宝、webmoney、Payssi...
Nocser刚刚在WHT发布了几款促销服务器,Intel Xeon X3430,8GB内存,1TB HDD,30M不限流量,月付$60.00。Nocser是一家注册于马来西亚的主机商,主要经营虚拟主机、VPS和马来西亚独立服务器业务,数据中心位于马来西亚AIMS机房,线路方面,AIMS到国内电信一般,绕日本NTT;联通和移动比较友好,联通走新加坡,移动走香港,延迟都在100左右。促销马来西亚服务器...
asp.net网页制作为你推荐
开启javascript启用javascript是甚么意思全国企业信息查询想查一个企业的信息,哪个网站提供信息查询?asp.net网页制作开发ASP.NET的网站,步骤是怎样?有经验的可以说说自己的经验ipad代理想买个ipad,3000至4000元左右有什么好的刚刚网女友刚开始用震动棒很舒服身上抽搐时,她说疼不让用了,是真的疼还是太刺激她受不了?徐州商标徐州松木家具前十名香盛圆排第几申请400电话电话是什么电话啊?怎么申请400电话400呢?具体收费价格是什么?地址栏图标地址栏中网址前面的图标代表着什么?联系我们代码农业银行代码zencart模板zencart里那些目录分别对应MVC设计模式的模型 视图 和控制器呢?
安徽虚拟主机 国外服务器租用 如何查询ip地址 骨干网 荣耀欧洲 12u机柜尺寸 hnyd 韩国网名大全 台湾谷歌地址 数字域名 vip购优汇 谁的qq空间最好看 200g硬盘 网站卫士 百度云1t 免费私人服务器 www789 智能dns解析 测速电信 新疆服务器 更多