﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-一只小海豹的Blog</title><link>http://www.cnblogs.com/AlittleSeal/</link><description>专著于多媒体与网络开发！</description><language>zh-cn</language><lastBuildDate>Sat, 11 Oct 2008 12:08:16 GMT</lastBuildDate><pubDate>Sat, 11 Oct 2008 12:08:16 GMT</pubDate><ttl>60</ttl><item><title>基于dotnetnuke的网站全新上线！</title><link>http://www.cnblogs.com/AlittleSeal/archive/2006/02/24/336729.html</link><dc:creator>一只小海豹</dc:creator><author>一只小海豹</author><pubDate>Fri, 24 Feb 2006 02:18:00 GMT</pubDate><guid>http://www.cnblogs.com/AlittleSeal/archive/2006/02/24/336729.html</guid><wfw:comment>http://www.cnblogs.com/AlittleSeal/comments/336729.html</wfw:comment><comments>http://www.cnblogs.com/AlittleSeal/archive/2006/02/24/336729.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/AlittleSeal/comments/commentRss/336729.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/AlittleSeal/services/trackbacks/336729.html</trackback:ping><description><![CDATA[<p><strong style="COLOR: red">一个基于dotnutnuke的网站系统上线了！</strong><br>网站类型：多媒体公司<br>网站标题：河南龙腾多媒体技术制作有限公司<br>网站网址：<a href="http://www.ltdmt.com/">http://www.ltdmt.com</a>&nbsp; <br><br><span style="COLOR: red">网站的一期工程基本完工：</span><br>包括：网站架构、网站设计、dotnetnuke服务器配置设置、dotnetnuke皮肤开发、dotnetnuke容器开发；<br>开发周期：2个月；<br><br><span style="COLOR: red">网站的二期工程目标是：</span><br>1、在dotnetnuke基本模块的基础上汉化、开发一套合适自己的上传、下载模块；<br>2、在dotnetnuke的store模块的基础上汉化、开发商城系统并且使模块支持"支付宝"功能或者银行网络网关，能够在线支付；<br><br><span style="COLOR: red">dotnetnuke皮肤模块开发总结：</span><br>在皮肤的制作过程中，碰到了很多的细节问题，通过网络都一一解决，网上这方面的教程也不少，觉得有几篇最好：<br>1、大厨师的皮肤制作白皮书<br><a href="http://www.cnblogs.com/henry_zjk/archive/2004/11.html">http://www.cnblogs.com/henry_zjk/archive/2004/11.html</a><br>2、nini的皮肤制作总结<br><a href="http://yfsun1.cnblogs.com/articles/309595.html">http://yfsun1.cnblogs.com/articles/309595.html</a><br>3、leeichang的这一篇例子写的最好，也最精彩，基本上把要用的都说完了<br><a href="http://leeichang.cnblogs.com/articles/151325.html">http://leeichang.cnblogs.com/articles/151325.html</a></p>
<p>个人觉得dnn的表现层和数据层的分离已经做的很好了，呵呵，不过我对它整体的skin的思路还是不很清楚，现在正在啃帮助文档，努力中......<br><br><span style="COLOR: #ff0000">最后说说对dnn的使用感受：</span><br>dnn实在是很强大，它最强大的是它的可扩展性，模块的理念和清楚，它解决了现在网络portal平台的基本的企业用户需求，对于一般的企业来说，还是很有吸引力的。</p>
<p>通过这一段或多或少的接触点它的源码，觉得它把微软asp.net的三层及n层开发模型发挥的淋漓尽致，对于学习.net来说确实不错</p>
<p>最后希望喜欢.net的人都来研究它，以促进中国的开源实业！呵呵</p>
<img src ="http://www.cnblogs.com/AlittleSeal/aggbug/336729.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42945/" target="_blank">[新闻]Google股价跌破329美元 61%员工期权价值归零</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>第一次参加微软的TechNet 的培训活动！</title><link>http://www.cnblogs.com/AlittleSeal/archive/2005/12/16/298549.html</link><dc:creator>一只小海豹</dc:creator><author>一只小海豹</author><pubDate>Fri, 16 Dec 2005 07:18:00 GMT</pubDate><guid>http://www.cnblogs.com/AlittleSeal/archive/2005/12/16/298549.html</guid><wfw:comment>http://www.cnblogs.com/AlittleSeal/comments/298549.html</wfw:comment><comments>http://www.cnblogs.com/AlittleSeal/archive/2005/12/16/298549.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/AlittleSeal/comments/commentRss/298549.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/AlittleSeal/services/trackbacks/298549.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;前两天在郑州参加了微软TechNet 的培训活动，感觉的不错，第一次参加微软的培训，这次来的那个专家讲得课是------组策略实践，虽然我自己不是网管，也不是专业的网络人士，但接到微软的邀请信，觉得还是有去的必要，总体感觉上是：微软的客户服务做得很好，做得比较到位，课讲得还算中规中矩，不过个人觉得现场的气氛不是太热烈，估计是人少的缘故吧（感觉有100人左右）。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;现场还有资料和小礼物，总算感觉到微软在产品推广方面下的功夫了（这么个小小活动就这么重视）&nbsp; ！呵呵！<img src ="http://www.cnblogs.com/AlittleSeal/aggbug/298549.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42944/" target="_blank">[新闻]十年祭:昔日明星软件今何在?</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Dotnetnuke3.10.4中配置文件分析</title><link>http://www.cnblogs.com/AlittleSeal/archive/2005/11/03/267701.html</link><dc:creator>一只小海豹</dc:creator><author>一只小海豹</author><pubDate>Thu, 03 Nov 2005 01:53:00 GMT</pubDate><guid>http://www.cnblogs.com/AlittleSeal/archive/2005/11/03/267701.html</guid><wfw:comment>http://www.cnblogs.com/AlittleSeal/comments/267701.html</wfw:comment><comments>http://www.cnblogs.com/AlittleSeal/archive/2005/11/03/267701.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/AlittleSeal/comments/commentRss/267701.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/AlittleSeal/services/trackbacks/267701.html</trackback:ping><description><![CDATA[摘要: 在进行了一系列的试验安装后，我们来看看Dotnetnuke3.10.4中配置文件中到底定义了些什么（Professional.DotNetNuke.ASP.dot.NET.Portals一书中的原话：The Web.config is the central administration file for ASP.NET; it is designed to store configuration&nbsp;&nbsp;<a href='http://www.cnblogs.com/AlittleSeal/archive/2005/11/03/267701.html'>阅读全文</a><img src ="http://www.cnblogs.com/AlittleSeal/aggbug/267701.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42943/" target="_blank">[新闻]六大可能出售IT企业名单：SUN领头或被猎走</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>近期的一个多媒体项目！</title><link>http://www.cnblogs.com/AlittleSeal/archive/2005/10/18/256897.html</link><dc:creator>一只小海豹</dc:creator><author>一只小海豹</author><pubDate>Tue, 18 Oct 2005 01:27:00 GMT</pubDate><guid>http://www.cnblogs.com/AlittleSeal/archive/2005/10/18/256897.html</guid><wfw:comment>http://www.cnblogs.com/AlittleSeal/comments/256897.html</wfw:comment><comments>http://www.cnblogs.com/AlittleSeal/archive/2005/10/18/256897.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/AlittleSeal/comments/commentRss/256897.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/AlittleSeal/services/trackbacks/256897.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 近几个月，我们出版社策划出版了一套中小学信息技术的多媒体光盘，它是为了辅助信息技术教程而开发的，我们出版社的信息技术教程发行的很好，各地区反馈的信息也不错。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 多媒体光盘总共12张，预算20万，属于比较大的一个多媒体项目，我们龙腾多媒体技术制作公司（出版社下属）负责其中的4张，时间紧任务重，每次在拿到剧本后，基本上仅仅剩下2---3个星期的制作开发时间，在全体公司同事的精诚合作下，终于圆满完成，后在多媒体光盘竞标时，又一举竞标成功，呵呵！现贴上几个主界面图，算是个总结！<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;第一张：<img src="http://www.cnblogs.com/images/cnblogs_com/alittleseal/1.jpg" border=0><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 再来一张：<br><img src="http://www.cnblogs.com/images/cnblogs_com/alittleseal/2.jpg" border=0> 
<img src ="http://www.cnblogs.com/AlittleSeal/aggbug/256897.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42942/" target="_blank">[新闻]Linux内核2.6.27正式到来</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>开始学习和使用DNN</title><link>http://www.cnblogs.com/AlittleSeal/archive/2005/10/17/256507.html</link><dc:creator>一只小海豹</dc:creator><author>一只小海豹</author><pubDate>Mon, 17 Oct 2005 08:10:00 GMT</pubDate><guid>http://www.cnblogs.com/AlittleSeal/archive/2005/10/17/256507.html</guid><wfw:comment>http://www.cnblogs.com/AlittleSeal/comments/256507.html</wfw:comment><comments>http://www.cnblogs.com/AlittleSeal/archive/2005/10/17/256507.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/AlittleSeal/comments/commentRss/256507.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/AlittleSeal/services/trackbacks/256507.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 开始学习和使用DNN!<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DNN是一套优秀的开源的内容管理系统，现在准备开始研究和使用它，前一段刚刚研究完Petshop3.0，给我的震撼太大了，不由得感慨asp.net和.net框架的超强的系统框架，更加感慨它们给我们带来的全新的Web开发理念！<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DNN是从Asp.net Portal演变而来，在开源世界有着广泛的支持，它也足够的强大，所以很值得我们asp.net爱好者研究和使用。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 上午安装了DotNetNuke_3.1.0（按照DNNChina介绍的安装方法），并且进行了汉化，使用的是<a id=Comments1_CommentList__ctl3_NameLink href="http://www.cnblogs.com/esshs" target=_blank>二十四画生</a>&nbsp;的中文包，呵呵，我觉得做任何事之前先看看前辈高手们的劳动成果是一件事倍功半的事情，在这里感谢<a id=Comments1_CommentList__ctl3_NameLink href="http://www.cnblogs.com/esshs" target=_blank>二十四画生</a>的劳动成果（但是我们最好先学会是如何进行汉化的，毕竟我们是在学习），他的中文包的网址：<a href="http://esshs.cnblogs.com/archive/2005/06/10/172018.html">http://esshs.cnblogs.com/archive/2005/06/10/172018.html</a>。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 装完后，大致的分析了它的WEB.config文件和整体文件结构，觉得它太庞大了，呵呵，软件还是开源的好，人多力量大，多人的智慧结晶呀！<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;面对这样一个系统，我觉得很有挑战性，学习方案制定如下：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、按部就班的看英文版的Wrox.Professional.DotNetNuke.ASP.dot.NET.Portals；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、试验DNN的管理功能；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3、等对这个系统有个全面的认识后，再对它的源代码中的文档进行翻译和研究；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4、多看博客源高人们的文章：<font color=#223355>灵感之源</font>&nbsp;、<a id=Comments1_CommentList__ctl3_NameLink href="http://www.cnblogs.com/esshs" target=_blank><font color=#223355>二十四画生</font></a>&nbsp;、<a class=headermaintitle id=Header1_HeaderTitle href="http://www.cnblogs.com/henry_zjk/"><font color=#0066aa>大厨师</font></a>......<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5、学会开发DNN站点皮肤、模块，构建个性化的CMS;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><v:shapetype id=_x0000_t75 coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">&nbsp;<v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype></span></p>
<p><span lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br></p>
</span>
<img src ="http://www.cnblogs.com/AlittleSeal/aggbug/256507.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42941/" target="_blank">[新闻]《星际争霸2》一分为三 各种族依次登场</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Petshop3.0学习笔记（四）应用程序接口层</title><link>http://www.cnblogs.com/AlittleSeal/archive/2005/10/10/251711.html</link><dc:creator>一只小海豹</dc:creator><author>一只小海豹</author><pubDate>Mon, 10 Oct 2005 07:47:00 GMT</pubDate><guid>http://www.cnblogs.com/AlittleSeal/archive/2005/10/10/251711.html</guid><wfw:comment>http://www.cnblogs.com/AlittleSeal/comments/251711.html</wfw:comment><comments>http://www.cnblogs.com/AlittleSeal/archive/2005/10/10/251711.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/AlittleSeal/comments/commentRss/251711.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/AlittleSeal/services/trackbacks/251711.html</trackback:ping><description><![CDATA[&nbsp;
<p class=MsoNormal style="TEXT-INDENT: 21pt"><span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">在面向对象的应用程序开发中，类的接口是一个很重要的概念，在<span lang=EN-US>.net</span>框架中，<span lang=EN-US>.net</span>不仅提供了强大的面向对象的特性，而且它也给我们提供了一系列强大的接口供我们使用，好了我们就来看看<span lang=EN-US>petshop3.0</span>中的接口层，从解决方案管理器中的</span><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="FONT-SIZE: 12pt"><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">PetShop.IDAL</span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">命名空间中，我们可以看到几个接口：<span lang=EN-US>IAccount</span>、<span lang=EN-US>IInventory</span>、<span lang=EN-US>IItem</span>、<span lang=EN-US>IOrder</span>、<span lang=EN-US>IProduct</span>、<span lang=EN-US>IProfile</span>，我们以<span lang=EN-US>IAccount</span>为例：<br><span lang=EN-US><o:p></o:p></span></span></span></span><span lang=EN-US style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">using</span><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"> System;<o:p></o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">//References to PetShop specific libraries<o:p></o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">//PetShop busines entity library<o:p></o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">using</span><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"> PetShop.Model;<o:p></o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">namespace</span><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"> PetShop.IDAL<o:p></o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">{<o:p></o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;summary&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> Inteface for the Account DAL<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;/summary&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: blue">public</span> <span style="COLOR: blue">interface</span> IAccount<o:p></o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;summary&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> Authenticate a user<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;/summary&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;param name="userId"&gt;</span><span style="COLOR: green">Unique identifier for a user</span><span style="COLOR: gray">&lt;/param&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;param name="password"&gt;</span><span style="COLOR: green">Password for the user</span><span style="COLOR: gray">&lt;/param&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;returns&gt;</span><span style="COLOR: green">Details about the user who has just logged in</span><span style="COLOR: gray">&lt;/returns&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>AccountInfo SignIn(<span style="COLOR: blue">string</span> userId, <span style="COLOR: blue">string</span> password);<o:p></o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;summary&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> Get a user's address stored in the database<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;/summary&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;param name="userId"&gt;</span><span style="COLOR: green">Unique identifier for a user</span><span style="COLOR: gray">&lt;/param&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;returns&gt;</span><span style="COLOR: green">Address information</span><span style="COLOR: gray">&lt;/returns&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>AddressInfo GetAddress(<span style="COLOR: blue">string</span> userId);<o:p></o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;summary&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> Insert an account into the database<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;/summary&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;param name="account"&gt;</span><span style="COLOR: green">Account to insert</span><span style="COLOR: gray">&lt;/param&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: blue">void</span> Insert(AccountInfo account);<o:p></o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;summary&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> Update an account in the database<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;/summary&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: gray">///</span><span style="COLOR: green"> </span><span style="COLOR: gray">&lt;param name="Account"&gt;</span><span style="COLOR: green">Account information to update</span><span style="COLOR: gray">&lt;/param&gt;<o:p></o:p></span></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: blue">void</span> Update(AccountInfo Account);<o:p></o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">}<o:p></o:p></span></p>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><o:p>&nbsp;</o:p></span></p>
<span style="FONT-SIZE: 12pt; FONT-FAMILY: 新宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'">这个外露的接口，提供了一系列的操纵帐户信息的相关功能的函数，就像接口的定义那样，我们不必了解这个接口具体是如何实现的，只要我们在业务处理层能够好好使用就行了，按我的理解接口是一系列功能的集合，他把应用程序不同的层次划分得很清楚，这样我们在修改底层的数据库处理过程实现的时候就能够不修改业务处理层和表现层的代码，这也是<span lang=EN-US>N</span>层应用程序系统架构模式的好处，层次清晰，不同实现的分离，代码的效率显著提高了，他具有良好的封装特性。</span> 
<img src ="http://www.cnblogs.com/AlittleSeal/aggbug/251711.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42940/" target="_blank">[新闻]IBM花300万美元打造互联网三维虚拟紫禁城</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Petshop3.0学习笔记（一）web.config文档分析</title><link>http://www.cnblogs.com/AlittleSeal/archive/2005/09/28/245666.html</link><dc:creator>一只小海豹</dc:creator><author>一只小海豹</author><pubDate>Wed, 28 Sep 2005 02:17:00 GMT</pubDate><guid>http://www.cnblogs.com/AlittleSeal/archive/2005/09/28/245666.html</guid><wfw:comment>http://www.cnblogs.com/AlittleSeal/comments/245666.html</wfw:comment><comments>http://www.cnblogs.com/AlittleSeal/archive/2005/09/28/245666.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnblogs.com/AlittleSeal/comments/commentRss/245666.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/AlittleSeal/services/trackbacks/245666.html</trackback:ping><description><![CDATA[&nbsp; <span lang=EN-US>Petshop3.0</span><span>是微软<span lang=EN-US>.net</span>框架实例中比较著名的一个，它主要是向大家展示<span lang=EN-US>.net</span>平台在开发企业级应用程序的潜力及性能，附带着和<span lang=EN-US>java</span>版的<span lang=EN-US>Petshop</span>对比对比，作为<span lang=EN-US>.net</span>平台的经典的例子，不能不学，看看它的源代码、分析一下，比看书强<span lang=EN-US>&#8230;&#8230;</span>
<p><span>对于<span lang=EN-US>petshop</span>的分析网上很早都有高手分析，也有一大堆的文章，高手不必看我写的东东，我只是在我学习的时候总结一下而已。</span></p>
<p><strong><span lang=EN-US>web.config</span></strong><span>配置文件是<span lang=EN-US>asp.net</span>编程的关键所在，有了这个配置文件，我们几乎可以设置应用程序的所有功能，我们下面就来看看<span lang=EN-US>Petshop3.0</span>的配置文件：</span></p>
<span lang=EN-US><span style="COLOR: #0000ff">
<p align=left><span lang=EN-US>&lt;?</span><span lang=EN-US>xml</span><span lang=EN-US> </span><span lang=EN-US>version</span><span lang=EN-US>="1.0"</span><span lang=EN-US> </span><span lang=EN-US>encoding</span><span lang=EN-US>="utf-8"?&gt;</span></p>
<p align=left><span lang=EN-US>&lt;</span><span lang=EN-US>configuration</span><span lang=EN-US>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp; </span><span>&lt;</span><span>appSettings</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;!</span><span>-- for information on setting the values for the connection strings see the configTool project --</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>add</span><span> </span><span>key</span><span>="SQLConnString1"</span><span> </span><span>value</span><span>="AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAbJmtxpOFZU2YjybuEjz+xQQAAAACAAAAAAADZgAAqAAAABAAAAD9vUnhT5iWzJSIWGx9sUoIAAAAAASAAACgAAAAEAAAACfL59nwhuC/ABFNOUVS2tRIAAAAtQfoW3y+WlFrK9MBc1HjbhkIH2Yt4vQv7CTCob2xkLsRSA8hI90pDGZd+kDLzldQ/AMJ0DGrvFf/I1fFxxiVir0yKb1KNHLVFAAAAC6KzriblPRM/iMqw/8+G8hnIU7s"</span><span> </span><span>/&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>add</span><span> </span><span>key</span><span>="SQLConnString2"</span><span> </span><span>value</span><span>="AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAbJmtxpOFZU2YjybuEjz+xQQAAAACAAAAAAADZgAAqAAAABAAAAAxObyAdxn9WuE0sA<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="1" UnitName="F">1f</st1:chmetcnv>3B3gAAAAAASAAACgAAAAEAAAAPlv8Kk+7ftwoTCLb/WnOW9IAAAASB0DjNJRWJteiFe4oxb4HBDpo7T6lbzExEXrBmLQAQ5JCgt4bWTu6r3qSlx9k4XbsF4d3YEmXlcHw9srOLqAlHxe6R9kQn2cFAAAADgkn+eg8Z6iFbKOgTTaY5o2d0hN"</span><span> </span><span>/&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>add</span><span> </span><span>key</span><span>="SQLConnString3"</span><span> </span><span>value</span><span>="AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAbJmtxpOFZU2YjybuEjz+xQQAAAACAAAAAAADZgAAqAAAABAAAABJ6O95MIIFNpkb3AJ1pKBYAAAAAASAAACgAAAAEAAAAFz6DD5dwwN8h3yL+eOdg/RQ_AAA0AriHmf0GykPtkrBES6nEN3+SR8/6KiO5s06rgnfaG7vr62FIayefc0AskT3p1ZQio/17gxx835S7bU6nOLfF<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="g">3G</st1:chmetcnv>2FZiTNczIZ3B0cMwEBR0UAAAAhCz5ohhCny8e3e8J+SVfS7wK9D0="</span><span> </span><span>/&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>add</span><span> </span><span>key</span><span>="OraConnString1"</span><span> </span><span>value</span><span>=""</span><span> </span><span>/&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>add</span><span> </span><span>key</span><span>="OraConnString2"</span><span> </span><span>value</span><span>=""</span><span> </span><span>/&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>add</span><span> </span><span>key</span><span>="OraConnString3"</span><span> </span><span>value</span><span>=""</span><span> </span><span>/&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>add</span><span> </span><span>key</span><span>="WebDAL"</span><span> </span><span>value</span><span>="PetShop.SQLServerDAL"</span><span> </span><span>/&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>add</span><span> </span><span>key</span><span>="OrdersDAL"</span><span> </span><span>value</span><span>="PetShop.SQLServerDAL"</span><span> </span><span>/&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>add</span><span> </span><span>key</span><span>="Event Log Source"</span><span> </span><span>value</span><span>=".NET Pet Shop"</span><span> </span><span>/&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp; </span><span>&lt;/</span><span>appSettings</span><span>&gt;</span></span></p>
<p align=left></span></span></span></span></span></span></span></span></span></span></span></span></span><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US>
<p align=left><span lang=EN-US></p>
<span lang=EN-US>--------------------------------------------------------------------------------------------</span>
<p>&nbsp;</p>
<p align=left><span lang=EN-US>&#8220;&lt;/appSettings&gt;&#8221;</span><span>节是一级数据节，可以放置用户定义的和应用程序专用的数据，我们看到在</span><span lang=EN-US>Petshop3.0</span><span>中，它定义了几个</span><span lang=EN-US>sql</span><span>、</span><span lang=EN-US>Oracle</span><span>数据库的连接字符串，因为在安装的时候，我用的是</span><span lang=EN-US>sql</span><span>数据库，所以</span><span lang=EN-US>Oracle</span><span>数据库的连接字符串的第二个键值都为空，这样可以使应用程序进行以后的扩展使用，下面的几个键值对都是要在编程中使用的数据。把这些专有的数据键值对写入到</span><span lang=EN-US>.config</span><span>文件中，确实给编程带来了巨大的好处，我们使用时只要引入</span><span lang=EN-US>System.Configuration</span><span>命名空间，用</span><span lang=EN-US>ConfigurationSettings.AppSettings["SQLConnString1"]</span><span>调用就行了</span></p>
<p align=left><span lang=EN-US>----------------------------------------------------------------------------------------------------------------------</span></p>
<p align=left><span lang=EN-US><span>&nbsp; </span><span><span style="COLOR: #0000ff"><span>&lt;</span><span>runtime</span><span>&gt;</span></p>
<p>&nbsp;</p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>assemblyBinding</span><span> </span><span>xmlns</span><span>="urn:schemas-microsoft-com:asm.v1"&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>qualifyAssembly</span><span> </span><span>partialName</span><span>="PetShop.SQLServerDAL"</span><span> </span><span>fullName</span><span>="PetShop.SQLServerDAL,version=<st1:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="30" Month="12" Year="1899">3.2.1</st1:chsdate>.0,publicKeyToken=a7987b<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="61" UnitName="C">61c</st1:chmetcnv>51ca872,culture=neutral"</span><span> </span><span>/&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;/</span><span>assemblyBinding</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>assemblyBinding</span><span> </span><span>xmlns</span><span>="urn:schemas-microsoft-com:asm.v1"&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>qualifyAssembly</span><span> </span><span>partialName</span><span>="PetShop.OracleDAL"</span><span> </span><span>fullName</span><span>="PetShop.OracleDAL,version=<st1:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="30" Month="12" Year="1899">3.2.1</st1:chsdate>.0,publicKeyToken=a7987b<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="61" UnitName="C">61c</st1:chmetcnv>51ca872,culture=neutral"</span><span> </span><span>/&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;/</span><span>assemblyBinding</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp; </span><span>&lt;/</span><span>runtime</span><span>&gt;</span></span></p>
<p align=left></span></span></span></span></span></span></span></span><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US>-----------------------------------------------------------------</span></p>
<p align=left><span>在运行时中注册</span><span lang=EN-US>PetShop.SQLServerDAL</span><span>和</span><span lang=EN-US>PetShop.OracleDAL</span><span>程序集</span></p>
<p align=left><span lang=EN-US>----------------------------------------------------------------</span></p>
<p align=left><span lang=EN-US><span>&nbsp;<span style="COLOR: #0000ff"><span></span><span>&lt;</span><span>system.web</span><span>&gt;</span></p>
<p>&nbsp;</p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>authentication</span><span> </span><span>mode</span><span>="Forms"&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>forms</span><span> </span><span>name</span><span>="PetShopAuth"</span><span> </span><span>loginUrl</span><span>="SignIn.aspx"</span><span> </span><span>protection</span><span>="None"</span><span> </span><span>timeout</span><span>="60"</span><span> </span><span>/&gt;</span></p>
<div>
<p align=left><span lang=EN-US>&lt;/</span><span lang=EN-US>authentication</span><span lang=EN-US>&gt;</span></p>
</div>
<p align=left></span></span></span></span><span lang=EN-US><span lang=EN-US></p>
<p align=left><span>上面的这一节主要是定义了</span><span lang=EN-US>asp.net</span><span>的身份验证模式为</span><span lang=EN-US>form</span><span>模式，微软也提供了一个</span><span lang=EN-US>formauthenticaition</span><span>的一个类，实现验证方面的任务很方便</span></p>
<p align=left><span lang=EN-US>-----------------------------------------------------------------</span></p>
<p align=left><span lang=EN-US>&nbsp;</span></p>
<p style="COLOR: #0000ff" align=left><span lang=EN-US>&lt;</span><span lang=EN-US>compilation</span><span lang=EN-US> </span><span lang=EN-US>defaultLanguage</span><span lang=EN-US>="c#"</span><span lang=EN-US> </span><span lang=EN-US>debug</span><span lang=EN-US>="false"</span><span lang=EN-US> </span><span lang=EN-US>/&gt;</span></p>
<p align=left><span lang=EN-US>-----------------------------------------------------</span></p>
<p align=left><span>编译为</span><span lang=EN-US>c#</span><span>语言，编译时不进行调试</span></p>
<p align=left><span lang=EN-US>--------------------------------------------------------</span></p>
<p align=left><span lang=EN-US><span style="COLOR: #0000ff"><span lang=EN-US>&lt;</span><span lang=EN-US>customErrors</span><span lang=EN-US> </span><span lang=EN-US>defaultRedirect</span><span lang=EN-US>="Error.aspx"</span><span lang=EN-US> </span><span lang=EN-US>mode</span><span lang=EN-US>="RemoteOnly"</span><span lang=EN-US> </span><span lang=EN-US>/&gt;</span></span></span></p>
<p align=left><span lang=EN-US>--------------------------------------------------------------</span></p>
<p align=left><span>定义管理错误的处理方式，只对本地地址显示它原有的错误，而对远程地址则定位到</span><span lang=EN-US>Error.aspx</span><span>页面，这样可以防止远程访问看到应用程序在发生错误时看到程序中的一些代码或者是一些敏感的数据信息。</span></p>
<p align=left><span lang=EN-US>--------------------------------------------------------------</span></p>
<p style="COLOR: #0000ff" align=left><span lang=EN-US>&lt;</span><span lang=EN-US>globalization</span><span lang=EN-US> </span><span lang=EN-US>requestEncoding</span><span lang=EN-US>="ascii"</span><span lang=EN-US> </span><span lang=EN-US>responseEncoding</span><span lang=EN-US>="ascii"</span><span lang=EN-US> </span><span lang=EN-US>/&gt;</span></p>
<p align=left><span lang=EN-US>--------------------------------------------------------------</span></p>
<p align=left><span>客户端请求的数据的编码方式是</span><span lang=EN-US>ascii</span><span>，响应得数据编码方式也是</span><span lang=EN-US>ascii</span><span>，被包含在请求头中的</span><span lang=EN-US>AcceptCharset</span><span>特性覆盖</span></p>
<p align=left><span lang=EN-US><span>&nbsp;</span><span>-----------------------------------------------------------</span></p>
<p style="COLOR: #0000ff" align=left><span lang=EN-US>&lt;</span><span lang=EN-US>pages</span><span lang=EN-US> </span><span lang=EN-US>buffer</span><span lang=EN-US>="true"</span><span lang=EN-US> </span><span lang=EN-US>enableSessionState</span><span lang=EN-US>="ReadOnly"</span><span lang=EN-US> </span><span lang=EN-US>enableViewState</span><span lang=EN-US>="false"</span><span lang=EN-US> </span><span lang=EN-US>enableViewStateMac</span><span lang=EN-US>="false"</span><span lang=EN-US> </span><span lang=EN-US>smartNavigation</span><span lang=EN-US>="false"</span><span lang=EN-US> </span><span lang=EN-US>/&gt;</span></p>
<p align=left><span lang=EN-US>-----------------------------------------------------------</span></p>
<p align=left><span>定义页面缓存为</span><span lang=EN-US>true</span><span>，状态变量为只读，禁用控件的状态保存机制，不过我们可以在需要用的页面的时候，再打开，职能导航为禁用，职能导航只在高版本的浏览器上起作用</span></p>
<p align=left><span lang=EN-US>-----------------------------------------------------------</span></p>
<p style="COLOR: #0000ff" align=left><span lang=EN-US>&lt;</span><span lang=EN-US>sessionState</span><span lang=EN-US> </span><span lang=EN-US>mode</span><span lang=EN-US>="InProc"</span><span lang=EN-US> </span><span lang=EN-US>timeout</span><span lang=EN-US>="10"</span><span lang=EN-US> </span><span lang=EN-US>/&gt;</span></p>
<p align=left><span lang=EN-US>-----------------------------------------------------------</span></p>
<p align=left><span>定义会话状态管理，这个是靠</span><span lang=EN-US>cookie</span><span>实现的，在每一次的会话当中，服务器都往客户端发送一个会话</span><span lang=EN-US>cookie</span><span>，超时时间为</span><span lang=EN-US>10</span><span>分钟</span></p>
<p align=left><span lang=EN-US><span>&nbsp; </span><span>&lt;/</span><span>system.web</span><span>&gt;</span></p>
<p align=left><span lang=EN-US>-----------------------------------------------------------</span></p>
<p align=left><span>下面的主要是设定在</span><span lang=EN-US>petshop</span><span>这个应用程序当中，对一些</span><span lang=EN-US>web</span><span>页面的访问控制，授权匿名用户不能访问那些页面，如编辑用户、订单生成、订单处理</span><span lang=EN-US>&#8230;..</span><span>页面的安全设置；当然它也支持面向角色的授权机制，这样对于安全权限角色划分的实现上会更加的容易和简单</span><span>。</span></p>
<p align=left><span lang=EN-US>-----------------------------------------------------------</span></p>
<p align=left><span lang=EN-US><span>&nbsp; </span><span><span style="COLOR: #0000ff"><span>&lt;</span><span>location</span><span> </span><span>path</span><span>="EditAccount.aspx"&gt;</span></p>
<p>&nbsp;</p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>system.web</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>authorization</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>deny</span><span> </span><span>users</span><span>="?"</span><span> </span><span>/&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;/</span><span>authorization</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;/</span><span>system.web</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp; </span><span>&lt;/</span><span>location</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp; </span><span>&lt;</span><span>location</span><span> </span><span>path</span><span>="OrderBilling.aspx"&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>system.web</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>authorization</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>deny</span><span> </span><span>users</span><span>="?"</span><span> </span><span>/&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;/</span><span>authorization</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;/</span><span>system.web</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp; </span><span>&lt;/</span><span>location</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp; </span><span>&lt;</span><span>location</span><span> </span><span>path</span><span>="OrderShipping.aspx"&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>system.web</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>authorization</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;</span><span>&lt;</span><span>deny</span><span> </span><span>users</span><span>="?"</span><span> </span><span>/&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;/</span><span>authorization</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;/</span><span>system.web</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp; </span><span>&lt;/</span><span>location</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp; </span><span>&lt;</span><span>location</span><span> </span><span>path</span><span>="OrderProcess.aspx"&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>system.web</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>authorization</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>deny</span><span> </span><span>users</span><span>="?"</span><span> </span><span>/&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;/</span><span>authorization</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;/</span><span>system.web</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp; </span><span>&lt;/</span><span>location</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp; </span><span>&lt;</span><span>location</span><span> </span><span>path</span><span>="MyAccount.aspx"&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>system.web</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>authorization</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;</span><span>deny</span><span> </span><span>users</span><span>="?"</span><span> </span><span>/&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;/</span><span>authorization</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp;&nbsp;&nbsp; </span><span>&lt;/</span><span>system.web</span><span>&gt;</span></p>
<p align=left><span lang=EN-US><span>&nbsp; </span><span>&lt;/</span><span>location</span><span>&gt;</span></span></p>
<p align=left></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US><span lang=EN-US>&lt;/</span><span lang=EN-US>configuration</span><span lang=EN-US>&gt;</span></p>
<p><strong><span lang=EN-US>web.config</span></strong><span>配置文件的功能是很强大的，利用好它能够解决<span lang=EN-US>web</span>应用程序开发中的很多问题。</span></p>
<p><span>现在有一款辅助的<span lang=EN-US>.net</span>工具叫做<span lang=EN-US>Web.Config Editor</span>用它来编辑</span><strong><span lang=EN-US>web.config</span></strong><span>配置文件很方便，大家可以到互联网上找到用一下，呵呵，很方便的。</span></p>
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
<img src ="http://www.cnblogs.com/AlittleSeal/aggbug/245666.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42938/" target="_blank">[新闻]11个处于悬崖边缘的 Web 公司</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Asp.net学习笔记---感悟</title><link>http://www.cnblogs.com/AlittleSeal/archive/2005/09/27/245292.html</link><dc:creator>一只小海豹</dc:creator><author>一只小海豹</author><pubDate>Tue, 27 Sep 2005 09:19:00 GMT</pubDate><guid>http://www.cnblogs.com/AlittleSeal/archive/2005/09/27/245292.html</guid><wfw:comment>http://www.cnblogs.com/AlittleSeal/comments/245292.html</wfw:comment><comments>http://www.cnblogs.com/AlittleSeal/archive/2005/09/27/245292.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/AlittleSeal/comments/commentRss/245292.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/AlittleSeal/services/trackbacks/245292.html</trackback:ping><description><![CDATA[&nbsp;
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 学习</span><span lang=EN-US>.net</span><span>已有一段时间，在感慨它的开发的方便与快捷性的同时，更多的是感受到它的博大与精深，我是</span><span lang=EN-US>basic</span><span>语言的忠实的</span><span lang=EN-US>fans</span><span>，从我接触编程语言时的</span><span lang=EN-US>Qbasic</span><span>，到后来的</span><span lang=EN-US>vb6.0</span><span>，再到现在的</span><span lang=EN-US>vb.net</span><span>，我都是一样的爱不释手。我不是一个编程高手，我的数学不怎么样，脑子也不太聪明，我只是对编程充满了兴趣，每每写出一小段的程序，心里都有一股说不出的美妙，我觉得我的性格就是适合在</span><span lang=EN-US>it</span><span>行业工作。我只是一个靠出卖自己</span><span lang=EN-US>it</span><span>技能混口饭吃的普通人。</span></p>
<p><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2003</span><span>年毕业以后，我所从事的工作更多的是进行多媒体开发，更多的是和</span><span lang=EN-US>authorware</span><span>、</span><span lang=EN-US>director</span><span>、</span><span lang=EN-US>flash</span><span>、静态和动态网页制作打交道，在学校学习的数据结构、算法之类的几乎用不上，然而，现在</span><span lang=EN-US>it</span><span>行业的多媒体发展飞速，现在所说的一切数据类的东西都可以称之为媒体，软件更注重它的美观、它的交互性、它的美妙的用户体验，我的工作也一步步向软件行业靠拢，多媒体作品已经不满足于简单的素材堆积和卡通式的动画效果，更多的是把先进的软件技术融入到多媒体的开发中，就好像现在的</span><span lang=EN-US>web</span><span>应用程序开发一样，这几年的</span><span lang=EN-US>web</span><span>应用程序开发已经和上世纪</span><span lang=EN-US>90</span><span>时年代的</span><span lang=EN-US>web</span><span>开发大不相同，软件工程的应用，工业标准的建立，各种系统架构、开发模式的实践与应用，所有这些（多媒体、</span><span lang=EN-US>web</span><span>、软件）都有大整合的趋势。</span></p>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于编程语言而言，我学的并不多（</span><span lang=EN-US>qbasic</span><span>、</span><span lang=EN-US>c</span><span>、</span><span lang=EN-US>vb</span><span>），也没有用他们开发过任何的桌面软件，我的兴趣在</span><span lang=EN-US>web</span><span>开发上，想想</span><span lang=EN-US>2003</span><span>年的时候，我还在发奋的想用</span><span lang=EN-US>asp</span><span>开发出一套</span><span lang=EN-US>cms</span><span>（内容管理系统），可是正在构思的时候，</span><span lang=EN-US>.net</span><span>的东西已经铺天盖地的出来了，第一次接触</span><span lang=EN-US>.net</span><span>的时候，我就为之疯狂，太强大了，特别是</span><span lang=EN-US>asp.net</span><span>，它就是一个能够方便构建</span><span lang=EN-US>n</span><span>层</span><span lang=EN-US>web</span><span>应用程序的超级平台，在学习过程中，它使我一下子看到了在</span><span lang=EN-US>asp</span><span>中从来没有看到过的东西，让我更好的感知那些成熟的软件开发体系架构、成熟的开发模式、</span><span lang=EN-US>oop&#8230;&#8230;</span><span>太好了，微软终于有了和</span><span lang=EN-US>java</span><span>平台相媲美的平台了，对于我们这些喜欢</span><span lang=EN-US>asp</span><span>的程序员来说，无疑这太好了，我将义无反顾地投入到</span><span lang=EN-US>.net</span><span>平台的学习应用中去。</span></p>
<span>在这里记些笔记，一是想对自己的学习过程的一个记录，二是在努力的工作的同时激励自己更好的进行学习。呵呵</span><span lang=EN-US>&#8230;&#8230;</span> 
<img src ="http://www.cnblogs.com/AlittleSeal/aggbug/245292.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42937/" target="_blank">[新闻]扎克博格：Facebook要先赚吆喝后赚钱</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>《中国豫剧》多媒体光盘项目之中国豫剧大辞典工具查询工具开发总结（四）“可随光盘发行的服务器环境”------------系列文章 </title><link>http://www.cnblogs.com/AlittleSeal/archive/2005/07/20/196545.html</link><dc:creator>一只小海豹</dc:creator><author>一只小海豹</author><pubDate>Wed, 20 Jul 2005 05:23:00 GMT</pubDate><guid>http://www.cnblogs.com/AlittleSeal/archive/2005/07/20/196545.html</guid><wfw:comment>http://www.cnblogs.com/AlittleSeal/comments/196545.html</wfw:comment><comments>http://www.cnblogs.com/AlittleSeal/archive/2005/07/20/196545.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnblogs.com/AlittleSeal/comments/commentRss/196545.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/AlittleSeal/services/trackbacks/196545.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 10pt">在这个项目的开发过程中，我们力求使这个工具的界面看起来美观，因为是多媒体产品吗，保持界面的统一性和交互的统一性都是非常重要的，界面大气、古朴，功能也不弱，内容比较丰富，这样就会使这个产品给客户和豫剧的爱好者们留下深刻的印象。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我们这个产品的winform界面需求基本有以下两点：<br><span style="COLOR: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、窗口界面是不规则窗口；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、窗口里的控件的形状、边框、底纹......可以根据设计师的要求进行制作；<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 看到这里，呵呵，大家都会想，如果这样的话，还不如用Director这一类的程序制作更简单，但要知道，我们软件的功能主要是数据库操作，数据库容量也比较大，用Director这一类这一类的东西，一是：效率不高，二是：虽然有第三方的插件支持，但是都不是免费的、而且谁又敢保证它的效率很高呢？对于这样的应用程序来说VB是最佳选择。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 针对上面的第一点是比较好解决的，因为在VB.net中有很方便的不规则窗口的制作机制，使我们能够很方便的制作出不规类型的窗口。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 但是对于上边的第二点却没有那么容易，我们现在对WinFormUI的设计一般采用四种方法：<br><span style="COLOR: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、利用.net GDI+、ApI开发自定义的空间，但这种方法相对比较复杂，技术难度大，而且会使软件的复杂度提高不少，我们也没有那么多的人力、物力、时间去投入；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、使用Windows Shell Style，现在有很多这样的厂商在做Shell Style，它们都有大量的Dll供我们使用，但是我们以前没有这方面的经验，我们还要对Dll接口熟悉，了解得过程显然存在着不少的未知数；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3、使用FlashUI组件，呵呵，这个好像是比较好的解决方案，Flash有内置的强大的Action语言，有着非常不错的绘图工具，有着对Xml、html的良好的支持，........而且VB.net中使用Flash也不是很难，Flash中的FScommand还能和VB通信，呵呵，真不错，不过复杂度还是高了点，要知道在Flash中开发组件也不是那么容易的，呵呵^_^；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4、使用html、asp、php、aspx......呵呵，对了，这个最容易了，强大的CSS2.0，我们可以对页面上的任何东西进行控制，入门又底，呵呵，终于找到好的方法了；</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其实对于第四种方法，现在的应用程序应用的很多的，举几个例子微软的大百科词典，呵呵，做的太酷了，十足一个强大的多媒体系统，它里面的界面元素基本上都是html的，呵呵，使用了大量的flash元素.......，还有就是著名的安装工具Installshield......太多了，其实这种程序太多了。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我们确定用第四种的方法，在开发的过程中，我们把程序查询界面都做成网页的形式，这时候我们在想为什么我们不能把查询功能作上去呢，也就是用动态页面，这样功能和界面都能保证，呵呵，我们首相想到了可能是叫做netbox的产品，它好像能够实现在光盘上发布一个动态的网站，也就是服务器宿主环境，呵呵，后来又想起来，在msdn上介绍的一个宿主环境Cassini ，它可以宿主Asp.net，于是下下来研究一番，呵呵，不过好像是没有搞得太清楚，呵呵<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 介绍地址为：<a href="http://www.microsoft.com/china/msdn/library/webservices/asp.net/Cassinihostasp.mspx">http://www.microsoft.com/china/msdn/library/webservices/asp.net/Cassinihostasp.mspx</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这个宿主环境也是一个开源的产品，我们都应该好好研究研究。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 它在微软的Asp.net网站上的讨论还是比较多的。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于我们Asp.net开发人员来说，<a href="http://www.asp.net是很好的去处。&nbsp;/">www.asp.net是很好的去处。<br>&nbsp;</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我们可以把这个服务器的宿主环境放在光盘上运行，或者打包到应用程序当中去，在客户端运行，配合Webbowser控件呵呵，就能开发出比较便捷的程序。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不过对于在客户端部署来说，它要求要禁用客户端的iis，这一点不爽。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这时侯大家又会说，我们可以使用Winform去扑捉Webbowser控件的事件从而去进行相关的操作，我们还可以把数据库转换成xml进行相关的数据访问，呵呵，我对Winform去扑捉Webbowser控件的事件没有研究过，个人水平还达不到那种程度，如果有高手知道，一定要教教我。我对ie的编程没有研究......<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在那篇msdn的文章里其实把这个宿主环境的应用已经交待清楚了，我们初步能达到会用就可以了，呵呵<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我们在应用程序在客户端运行应用程序时，可能需要一个启动它服务的代码：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可能是：<span style="COLOR: #0000ff"></p>
<p><span style="FONT-SIZE: 10pt">Private Sub StartService()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim ProcessServer As New Process&nbsp;&nbsp;&nbsp;&nbsp; '*新建一个进程<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim VirString As String</span></p>
<p><span style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Try<br>'*---------开始禁用iis<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProcessServer.StartInfo.FileName = "net.exe"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProcessServer.StartInfo.Arguments = "stop iisadmin /Y"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProcessServer.StartInfo.WindowStyle = ProcessWindowStyle.Hidden<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProcessServer.Start()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProcessServer.WaitForExit()<br>'*---------开始运行服务<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VirString = Replace(Application.StartupPath, "\", "\\")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProcessServer.StartInfo.FileName = Application.StartupPath + "\CassiniWebServer.exe"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProcessServer.StartInfo.Arguments = VirString + "\Dummy 80 /"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProcessServer.StartInfo.WindowStyle = ProcessWindowStyle.Hidden<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProcessServer.Start()<br>'*---------记录进程pid，以便在应用程序结束时杀死进程。<br></span><span style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProcessServerId = ProcessServer.Id<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catch ex As Exception<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show(ex.Message.ToString())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End Try<br>&nbsp;&nbsp;&nbsp; End Sub<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下面是应用程序结束时杀死宿主进程代码<br></span></span></span><span style="FONT-SIZE: 10pt"><span style="COLOR: #0000ff"><span style="FONT-SIZE: 10pt">Private Sub KillProcess()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim ProcessKill As Process = Process.GetProcessById(ProcessServerId)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProcessKill.Kill()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catch ex As Exception<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show(ex.Message.ToString())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End Try<br>&nbsp;<br>&nbsp;&nbsp;&nbsp; End Sub<br></span></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;个人认为，对于我们这个程序来说，这样的一个宿主环境的使用还是有点麻烦，但我的大部分工作时做多媒体方面的开发，我觉得这样的一个宿主环境对于我们使用光盘为载体发布媒体还是大有用处的，关键是如果我们对他的开发原理搞清楚，我们能够学到很多的东西，我们一块来努力！</span></p>
<p><span style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;未完，待续！&gt;&nbsp;</p>
</span>
<img src ="http://www.cnblogs.com/AlittleSeal/aggbug/196545.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42936/" target="_blank">[新闻]金融风暴改写富豪榜排名　巴菲特资产超盖茨</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>《中国豫剧》多媒体光盘项目之中国豫剧大辞典工具查询工具开发总结（三）“关于Ado.net和控件的数据邦定特性”------------系列文章 </title><link>http://www.cnblogs.com/AlittleSeal/archive/2005/07/18/195306.html</link><dc:creator>一只小海豹</dc:creator><author>一只小海豹</author><pubDate>Mon, 18 Jul 2005 09:36:00 GMT</pubDate><guid>http://www.cnblogs.com/AlittleSeal/archive/2005/07/18/195306.html</guid><wfw:comment>http://www.cnblogs.com/AlittleSeal/comments/195306.html</wfw:comment><comments>http://www.cnblogs.com/AlittleSeal/archive/2005/07/18/195306.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/AlittleSeal/comments/commentRss/195306.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/AlittleSeal/services/trackbacks/195306.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在做这个项目的过程中，使用Ado.net和.net数据邦定特性比较多，Ado.net对于上一代的数据库访问类来说，有质的飞跃，效率更高、代码量更少，但是在我实际编程的过程中，还是有很多地方使我迷惑的，我现把我所遇到的问题和解决方法帖出来和大家交流一下：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR: red">1</span><span style="COLOR: red">、Ado.net中DataSet()对象update()方法更新数据的困惑；</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其实对于winform应用程序来说，用Ado.net链接数据库，执行一些存储过程然后把返回的数据放在一个本地的DataSet()对象中，对其进行操作与处理，然后进行更新是一点问题都没有的，但是有一次，在我写一个基于ASP.net的网页时，问题却出来了，我使用了一个datagrid控件，因为为了省事^_^，我使用了它默认的那些邦定特性，让其自动生成了模板去显示，然后实现了其编辑、删除、更新等操作<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 因为自己以前没有ASp.net项目实施的经验，所以以为在Asp.net中datagrid的操作和winform应用程序中的操作差不多，于是在datagrid控件中的<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand事件中，直接就写为：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataSet1.Update("表名")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 呵呵，谁知数据库中根本更新不了，仔细一想，在网络环境中的数据更新肯定不是那么容易的，于是就有了一下的代码，在更新的时候重新和数据库连接，找到要修改的东西，更新的数据库中去，代码可能是：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim dgi As DataGridItem = DataGrid1.Items(e.Item.ItemIndex)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '*找到编辑更新的那一行<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim key As Int32 = CInt(DataGrid1.DataKeys(e.Item.ItemIndex))<br>'*-----------------------------------------------------------把修改过的取出<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim texBox1 As TextBox = DirectCast(dgi.Cells(3).Controls(0), TextBox)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim texBox2 As TextBox = DirectCast(dgi.Cells(4).Controls(0), TextBox)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim texBox3 As TextBox = DirectCast(dgi.Cells(5).Controls(0), TextBox)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim texBox4 As TextBox = DirectCast(dgi.Cells(6).Controls(0), TextBox)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim texBox5 As TextBox = DirectCast(dgi.Cells(7).Controls(0), TextBox)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim texBox6 As TextBox = DirectCast(dgi.Cells(8).Controls(0), TextBox)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim Sql As String = "catalogueInto3"<br>'*-----------------------------------------------------------重新连接到数据库，利用存储过程进行更新<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim ConnString As String = "Data Source=(local); User ID=sa; Password=19791023328; Initial Catalog=Henan_Opera"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim Conn As New System.Data.SqlClient.SqlConnection(ConnString)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Conn.Open()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim Cmd As New System.Data.SqlClient.SqlCommand<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cmd.Connection = Conn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cmd.CommandText = Sql<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cmd.CommandType = CommandType.StoredProcedure<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cmd.Parameters.Add("@lemma_title", texBox1.Text)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cmd.Parameters.Add("@lemma_content", texBox2.Text)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cmd.Parameters.Add("@index_title", texBox3.Text)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cmd.Parameters.Add("@stroke_title", texBox4.Text)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cmd.Parameters.Add("@catalogue_title", texBox5.Text)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cmd.Parameters.Add("@catalogue_key", texBox6.Text)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cmd.Parameters.Add("@id", key)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim Record As Integer = Cmd.ExecuteNonQuery()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Label2.Text = Record<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Conn.Close()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataGrid1.EditItemIndex = -1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BindDataGrid()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catch ex As Exception<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Label2.Text = ex.Message<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Finally<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Conn.Close()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End Try<br>&nbsp;&nbsp;&nbsp; End Sub<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 后来在网上看了一些相关的介绍，用DataAdapter的Update()方法借助CommandBuilder来实现更新，Update()实际上是通过CommandBuilder动态生成sql语句，然后才进行数据库操作，但<font color=#ff0000>如果你在一开始创建DataAdapter时的那个sql语句没有包含有主键的列的话，那CommandBuilder将不会发生作用，代码如下：<br>'*----------------------------------------------------引用其他网站里的东西<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR: #000000">string connstr=ConfigurationSettings.AppSettings["color"];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbConnection conn=new OleDbConnection(connstr);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string sql="select * from member";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbDataAdapter ada=new OleDbDataAdapter(sql,conn);//建立一个DataAdapter对象<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //这里的CommandBuilder对象一定不要忘了,一般就是写在DataAdapter定义的后面<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbCommandBuilder cb=new OleDbCommandBuilder(ada);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataSet ds=new DataSet();//建立DataSet对象<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.Open();//打开连接<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ada.Fill(ds,"mems");//填充DataSet<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.Close();//注意及时关闭连接<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataTable dt=ds.Tables["mems"];//建立一个DataTable对象，方便操作<br><span class=style1 style="COLOR: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dt.PrimaryKey=new DataColumn[]{dt.Columns["id"]};//建立一个主键<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataRow dr=dt.Rows.Find(ids);//根据参数查找到需要修改的行<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 补充一点，如果想设多于两个的主键的话，可以用这个<br><font color=#ff0000><span class=style1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dt.PrimaryKey=new DataColumn[]{dt.Columns["id"],dt.Columns["id2"]};</span><br></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 就是给数组添加两个值，然后使用的时候：<br><span class=style1><font color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object[] keyValues=new object[1]; //这里必须实例化否则会向你要初值<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //而且需要后面方括号中的这个索引范围<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keyValues[0]=(object)key1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keyValues[1]=(object)key2;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...... 另外一种写法<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object[] keyValues={(object)key1,(object)key2};//以楣举方式赋初值</font></span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dr["name"]=names;//对需要修改的记录赋新值<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ada.Update(ds,"mems");//用</span><span style="COLOR: #000000">DataAdapter的Update()方法进行数据库的更新<br>'*---------------------------------------------------------------------------------------<br></span><font color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这段代码我是从其他网站上拷贝出来的，主要是要说明这个方法，仅供参考，我个人对CommandBuilder这个东西理解的不是很深，主要是感觉有这么一种方法，但我觉得这个方法不够透明，呵呵，主要是个人偏好问题，我比较喜欢比较清晰的思路，呵呵，不过这种方法确实也很方便，但我觉得它本质上还是要通过原有的连接和数据在一次建立通道的，不过不是显式的，是通过DataAdapter对象使用新建的一个CommandBuilder对象，产生一个sql的语句再次进行更新的。但另一个关键是要在存储在本地的那个表中找到正在修改的行号，比如&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim key As Int32 = CInt(DataGrid1.DataKeys(e.Item.ItemIndex)) 这一句就是找到了正在修改的行号，而对于datagrid控件来说，要进行编辑、删除操作，首先应建立一个<span style="COLOR: #ff0000">主键......<br></span><span style="COLOR: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、使用Data Access Application Block相关</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DAAB是一个.net组件，是微软enterprise library里的一部份，现在已经出了3.x了，支持对所有的数据库进行存取操作，它实际上把对数据库的访问都封装在了这个Daab中，真是太方便了，再者enterprise library里其他的相关的部分分别是用来开发企业级程序的必备的模块，这个东西是一种实现模式，主要是把企业开发中要面临的共性的东西提炼出来，减少相关的开发投入，使我们有更多的精力去考虑业务逻辑和其他的东西.......希望大家都把这样的好的模块好好研究一下，充实到自己的开发当中去。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR: #ff0000"><font style="COLOR: #ff0000" color=#000000>3、关于控件的数据邦定特性</font><br></span></font></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我在学习vb.net Start kit时里面有一个例子，对控件的数据邦定特性给与了充分的示范，我现在使用vb.net做这方面的工作实在是太方便了，它主要有一个邦定管理器BindingContext和一个邦定对象Binding构成，而且大部分空间都支持邦定的特性，所以这方面的代码量很少，如果我们配合vb.net的事件处理机制，就会在使用数据邦定时事半功倍，vb.net的AddHandler、WithEvents、.........<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;未完，待续......&gt;<br><br><br></p>
<img src ="http://www.cnblogs.com/AlittleSeal/aggbug/195306.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42935/" target="_blank">[新闻]红杉资本发出严重警告：黄金时代已成历史</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item></channel></rss>