仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 646|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计在Visual Studio 2005和ASP.NET 2.0中使...

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:45:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
数据挖掘有点高深的,主要估计就是使用一些算法提取一些实用的数据。学好数据挖掘的话可以应聘baidu或者google,但是一般人家对算法的要求听高的。你最好还是学点应用型的吧。这种主要是研究型的。asp.net|visual|数据"Neverputoffuntilruntimewhatcanbedoneatcompiletime."
DavidGries,CompilerConstructionforDigitalComputers
Introduction
  作为程序员,我们在进修一些新手艺的时分,典范偶然候会是我们最年夜的仇人。指南一般被计划成复杂易懂,但同时内里的怠惰、有效率的乃至是伤害的代码编写会增加。像这类情形最广泛存在的就是在ADO.NET的典范中了。在这篇文章中,我们将看一下数据库中的强范例工具有甚么意义,会让你在你的程序中如许做,只管缺少典范。
  有点出格的是,我们将看到在VisualStudio2005中是怎样创立和利用强范例数据集的。正如这篇文章所探求的,与别的一种弱范例数据存取手艺比拟,强范例数据集供应了很多有益的地方。我们也会在这里看到,用VisualStudio2005创立和利用强范例数据集并没有变得更复杂。想学更多就持续看下往吧。
TheBasicsandBenefitsofStrongly-TypedObjects
  要想分明强范例是甚么意义,你能够先想一想约会。假如你是只身,你会思索跟哪一种范例的人约会呢?你大概有一些特定的尺度(好比安康和有魅力),又大概尺度很复杂或并非很明白。不管你的前提是甚么,当你决意更多地与谁一同的时分,你总会用本人对这一些范例的必定的尺度往权衡思索。假如你很伶俐,你会想一年夜堆来回护本人不受情感创伤。你大概会发明,好比说,与一个酒鬼相处是很不不乱,除非两人之间有一个仔细的干系。可是,让一团体改动是很疾苦而且十分坚苦的。因而,你的伶俐会唆使你让你在这段干系入手下手前就叫停。给你的约会尺度里加一个不饮酒的条目会回护你不会在将来肉痛,而且让你能够更用心的把你的工夫和精神放在更好的候选人身上。
  你大概在惊奇这个推理与编程有甚么干系。不妨,跟我来吧,心爱的读者!ADO.NET数据存取工具是被计划成极富弹性的。当你从数据库中读取数据时,你多是用很多寻常.NETframework同意的的通用范例的工具在事情,除非碰到特别的成绩。使用我们的约会实际,基础上能够把你的相干数据看做是通用工具。“我约会的只需不是太贫苦的就行了。”岂非你就不克不及再明白一点吗?乃至连是人仍是别的生物都没无限制!作为你的伴侣,我乞求你,“多点尺度吧!让你的清单减少一点!”
  正如你假如无视约会的工具是谁会招致未来的干系成绩一样,在你的代码中听任你的objects也会形成一些毛病。而且,假如你让旧的object在你的子程序中漫舞,你大概直到程序运转实行时才会发明这是个成绩。用我们的约会实际来看,在运转时捕获毛病就仿佛你的约会在一间新潮的意年夜利餐馆两头产生疾苦和为难的争持一样。是的,你发明了,假如你在之前先有企图,你就不会在一堆用餐者的凝视中停止这个局面,也不会很为难。只需在你的代码里复杂地使用一些严厉点的尺度,你就能够在程序入手下手编译前捕获到毛病。好比上面这句代码例子:
stringFirstName=myrow.("FirstName").ToString();  
  这个例子中的DataRow是无范例的,了局就是,你必需要用列的名字作字符串往失掉你所必要的值(大概你能够选用这个列在纪录的列汇合中的索引)。幸亏那一列的确存在。DataRow的列的数据范例是object,我们假定这个FirstName列上面的数据范例是string,并且我们在利用之前必需要把它显式转换成string。假如这一列的名字产生变更(比方酿成PersonFirstName),编译器并没有举措关照你。忧郁吧?但你能够不如许的。假如你的代码像上面如许,你的生存就会更复杂,你的代码就会更牢靠。
stringFirstName=PersonRow.FirstName;
  在这第二个例子中,我们用一个强范例的行,而且我们晓得FirstName属性是string范例的。没有混乱的列名,也没有七零八落的范例转换。编译器已为我们做了范例反省,我们能够宁神的举行别的事情,而涓滴不必忧虑是不是把列名敲对了。
  别的一切的器材都是一样的,以是你一定会坚决果断地利用这类体例,而不再利用通用范例的体例。但请等一下,强范例objects是从那里来的?我也但愿我能够告知你这些objects是主动创立的。可是,正如优秀的干系必要工夫和精神一样,让你的objects强范例也必要分外的勉力。但花在这里的分外工夫相对是值得的,它也节俭了在将来“捉臭虫”时消费的更多的指数级的工夫。
  完成强范例有好几种办法,我们将在这篇文章余下的部分先容怎样在VisualStudio2005中创立强范例的数据集。我们也会把这类做法与别的做法的优弱点作一个对照。
CreatingStrongly-TypedDataSetsinVisualStudio2005
  强范例数据集实在只是把一般数据集的列和表事后界说好,以是编译器已晓得它们包括甚么。代替你仿佛带着棒球手套弄的松懈的包装,强范例数据集正像一个十分符合的手套。而VisualStudio的每次一连的版本都使得数据集强范例化的处置加倍复杂。鄙人面这个例子中,我们将利用SQLServer2005的AdventureWorks数据库。复杂地实行上面一些步骤:
1.翻开VisualStudio,创立一个新的ASP.NET网站。
2.在SolutionExplorer窗口,右键点击新增一个项,选择DataSet。给其定名为AdventureWorks.xsd(见截图)。VisualStudio将保举你把DataSet文件放进App_Code文件来,你只需点批准就能够了。
3.翻开AdventureWorks.xsd以后是计划形式,TableAdapter设置导游将会运转。这时候候,点作废,我们将从ServerExplorer中把所要的表拖出去。
4.在ServerExplorer工具栏中扫瞄找到AdventureWorks数据库。(假如你还没有安装AdventureWorks数据库,你能够往微软的下载页面SQLServer2005SamplesandSampleDatabases下载它和一些别的的SQLServer2005示例)
5.把SalesOrderHeader表和SalesOrderDetail表拖进DataSet的计划窗口。窗口应当会像截图中一样。我们看到的是甚么呢?每当我们增添一个表,VisualStudio就会创立一个强范例DataTable(名字和本来的表一样)和一个TableAdapter。这个DataTable已为我们界说好每列。TableAdapter是我们用来添补表的,默许有一个Fill()办法从原表中失掉每行数据。
  照本来的模样的话,这个强范例数据集将会前往这两个表的一切纪录。可是AdventureWorks数据库包括了很多定单信息,因而为何不创立一个更明白的查询呢?我们能够给TableAdapter工具增添办法来猎取一个特定的子纪录集。右键点击SalesORderHeaderTableAdapter,然后选择Add|Query。选择“UseSQLstatements”后点下一步,然后选择“SELECTwhichreturnsrows”再点下一步。比来,在窗口中输出上面的查询语句(大概可使用QueryBuilder来完成这项事情):
SELECT
SalesOrderID,RevisionNumber,OrderDate,DueDate,ShipDate,
Status,OnlineOrderFlag,SalesOrderNumber,PurchaseOrderNumber,
AccountNumber,CustomerID,ContactID,SalesPersonID,TerritoryID,
BillToAddressID,ShipToAddressID,ShipMethodID,CreditCardID,
CreditCardApprovalCode,CurrencyRateID,SubTotal,TaxAmt,Freight,
TotalDue,Comment,rowguid,ModifiedDate
FROMSales.SalesOrderHeader
WHERE(OrderDate>@OrderDate)
  这个SQL查询是一个复杂的SELECT查询,用了一个@OrderDate参数以选择了局。这将使我们不必前往数据库中的一切纪录。坚持“FillaDataTable”和“ReturnaDataTable”复选框的选中,点完成。把这个SELECT语句加完以后你的计划器如今应当像截图一样,在SalesOrderHeaderTableAdapter上面多了一个查询。
  强范例数据集创建起来今后,我们就能够容易地用几行代码在ASP.NET页面中把数据显现出来。在网站里新建一个ASP.NET页面并转到计划形式。拖一个GridView控件到下面,保存它的ID为GirdView1。然后到源代码页中,在文件的上方将AdventureWorksTableAdapters定名空间引进(在c#内里语法是usingAdventureWorksTableAdapters;)。最初在Page_Load事务里增添上面的代码:
//CreatetheSalesOrderHeaderTableAdapter
SalesOrderHeaderTableAdaptersalesAdapter=
newSalesOrderHeaderTableAdapter();
//GetordersthattookplaceafterJuly1st,2004
AdventureWorks.SalesOrderHeaderDataTableOrders=
salesAdapter.GetDataBy(newDateTime(2004,7,1));
//BindtheorderresultstotheGridView
this.GridView1.DataSource=Orders;
this.GridView1.DataBind();
  代码十分复杂。我们创立一个SalesORderHeaderTableAdapter的实例以添补数据表。这里要注重的是,分歧于一般的DataTable,我们声了然一个SalesORderHeaderDataTable范例的工具,我们挪用GetDateBy()办法,传送一个DateTime工具来添补数据。这里也要注重,猎取的命令也是强范例的,因而我们必需传送一个DateTime工具,而不是一个一般的工具。上面的截图便是下面代码示例的了局。
  除用代码把了局集绑定到GridView外,你也能够用一个ObjectDataSource,把它的TypeName属性设成AdventureWorksTableAdapters.SalesOrderHeaderTableAdapter,把它的SelectMethod设置成GetData大概GetDataBy。
除毗连数据库不必要写代码以外,利用强范例数据集的另外一年夜长处是不存在编译器没法反省的埋伏在我们的代码中的列名字符串。我们也不必要举行任何范例转换。假如数据库架构产生改动,只需更新AdventureWorks.xsd文件,我们就会发明一切相干的改动在编译时主动完成了。
OtherTechniquesforGeneratingStrongly-TypedData-AccessApplications
  除利用强范例数据集的地方,另有别的的办法能够在你的程序中完成强范例。你能够创立比DataSets更轻量级而且更切合你数据库的自界说类。也有一些第三方软件开辟者开辟了主动完成这一历程的工具。个中一个对照出格的也是我对照喜好的是LLBLGenPro,我已经写过关于它的一本书:RapidC#WindowsDevelopment:VisualStudio2005,SQLServer2005,andLLBLGenPro。(你能够在我的网站上收费浏览此书1/3的内容。)另外一个很接待的工具是CodeSmith。乃至微软也在开辟一个叫DLINQ的小工具,但仍在测试当中,估量最少要等一下年才会推出。
  假如你利用VisualStudio的强数据集办法,无可置疑,个中一个长处即是你不必要购置别的软件。一切的这些办理计划都有分歧的特性亲睦处,但最次要的优点是牢靠,毛病少,花更少的工夫调试。也更简单往反省数据库架构改动所酿成的影响并作保护。但愿你已熟悉到强范例的优点。祝开辟好运(约会也是)!
ByJosephChancellor
Attachments
Downloadthecodeexaminedinthisarticle
AbouttheAuthor
JosephChancellorisaC#developerinSouthernCaliforniawhohashadhisfairshareofrelationaltrauma.Heappreciatesallkindsoffeedbackandsuggestions.VisithisblogorreadthefirstfivechaptersofhisbookonVisualStudio2005,SQLServer2005,andLLBLGenPro.
我以前很喜欢Serv-U,自从它用Java重写之后我就再也没用过,实在是太慢了,我宁可用IIS搭建FTP,虽然IIS搭建FTP在权限管理上很不灵活。
谁可相欹 该用户已被删除
沙发
 楼主| 发表于 2015-1-19 05:25:14 | 只看该作者
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
乐观 该用户已被删除
板凳
发表于 2015-1-24 06:57:24 | 只看该作者
Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。
飘灵儿 该用户已被删除
地板
发表于 2015-1-31 21:39:49 | 只看该作者
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
深爱那片海 该用户已被删除
5#
发表于 2015-2-6 23:39:27 | 只看该作者
ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。
兰色精灵 该用户已被删除
6#
发表于 2015-2-19 02:31:44 | 只看该作者
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
柔情似水 该用户已被删除
7#
发表于 2015-3-6 12:24:39 | 只看该作者
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
灵魂腐蚀 该用户已被删除
8#
发表于 2015-3-13 00:57:04 | 只看该作者
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
小妖女 该用户已被删除
9#
发表于 2015-3-20 07:43:50 | 只看该作者
关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 04:01

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表