﻿<?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>博客园-武汉.NET俱乐部</title><link>http://wuhan.cnblogs.com</link><description>武汉.NET俱乐部为方便武汉以及武汉周边地区“广大程序员”、“编程爱好者”或“.NET开发人员”更好的交流.Net技术，为“广大程序员”、“编程爱好者”或“.NET开发人员”提供一个结交朋友、交流技术的平台，通过俱乐部组织的技术交流、会员聚会、培训讲座等系列活动，让俱乐部成员可以面对面的进行技术交流，帮助会员开阔视野、增进知识、积累资源，从而达到提升自我、增强竞争优势。</description><language>zh-cn</language><lastBuildDate>Fri, 04 Jul 2008 13:01:05 GMT</lastBuildDate><pubDate>Fri, 04 Jul 2008 13:01:05 GMT</pubDate><ttl>60</ttl><item><title>高性能的大型系统经验 －－ 将数据分类、并缓存</title><link>http://www.cnblogs.com/zhuweisky/archive/2008/06/27/1231316.html</link><dc:creator>zhuweisky</dc:creator><author>zhuweisky</author><pubDate>Fri, 27 Jun 2008 12:00:00 GMT</pubDate><guid>http://www.cnblogs.com/zhuweisky/archive/2008/06/27/1231316.html</guid><description><![CDATA[摘要: &nbsp;&nbsp;<a href='http://www.cnblogs.com/zhuweisky/archive/2008/06/27/1231316.html'>阅读全文</a><img src ="http://wuhan.cnblogs.comaggbug/1231316.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37528/" target="_blank">[新闻]《福布斯》:暴雪的新一波完美风暴已经到来</a>]]></description></item><item><title>武汉.NET俱乐部新平台上线</title><link>http://www.cnblogs.com/KivenLin/archive/2008/06/25/1229458.html</link><dc:creator>Kiven</dc:creator><author>Kiven</author><pubDate>Wed, 25 Jun 2008 03:22:00 GMT</pubDate><guid>http://www.cnblogs.com/KivenLin/archive/2008/06/25/1229458.html</guid><description><![CDATA[<p align="center"><br />
<br />
<span style="font-size: 18pt">地址不变：http://www.msdnclub.com<br />
<br />
<span style="font-size: 12pt; color: red">注：俱乐部将有自己的LiveMeeting,我将可以同WebCast一样进行在线的技术讲座，我们会定时邀请微软的技术专家及武汉的企业老总或技术总监与大家进行在线的交流，介时我会将连接发到您的邮箱里。</span></span></p>
<img src ="http://wuhan.cnblogs.comaggbug/1229458.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37527/" target="_blank">[新闻]中国互联网公司在哪儿</a>]]></description></item><item><title>（原创）一个JavaScript Function Outliner插件 第四版本 支持内嵌javascript，且可以对javascript进行压缩</title><link>http://www.cnblogs.com/yuyijq/archive/2008/06/24/1229228.html</link><dc:creator>横刀天笑</dc:creator><author>横刀天笑</author><pubDate>Tue, 24 Jun 2008 14:27:00 GMT</pubDate><guid>http://www.cnblogs.com/yuyijq/archive/2008/06/24/1229228.html</guid><description><![CDATA[摘要: <p><img src="http://www.cnblogs.com/images/cnblogs_com/yuyijq/111.jpg" align="right"/><br>改善Visual Studio对JavaScript开发的支持，支持js文件里代码折叠，函数列表，支持嵌入的javascript代码折叠，函数列表。将开发完成后的js代码压缩（去掉注释和空行）集成进Visual Studio开发环境。</p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/yuyijq/archive/2008/06/24/1229228.html'>阅读全文</a><img src ="http://wuhan.cnblogs.comaggbug/1229228.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37526/" target="_blank">[新闻]微软:Silverlight内容也可被搜索引擎检索</a>]]></description></item><item><title>Remoting插件与网关设置</title><link>http://www.cnblogs.com/zhuweisky/archive/2008/06/18/1224484.html</link><dc:creator>zhuweisky</dc:creator><author>zhuweisky</author><pubDate>Wed, 18 Jun 2008 03:09:00 GMT</pubDate><guid>http://www.cnblogs.com/zhuweisky/archive/2008/06/18/1224484.html</guid><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;今天解决一个部署问题，问题是这样的：<br />
&nbsp;&nbsp;&nbsp;&nbsp;我们的平台和GameServer部署在IDC的同一局网中，平台一块网卡配置了2个IP地址。<br />
&nbsp;&nbsp;&nbsp;&nbsp;GameServer通过Remoting访问平台正常，平台通过Remoting回调GameServer也成功，但是GameServer通过Remoting访问平台的动态插件服务时，却抛出Socket异常。<br />
&nbsp;&nbsp;&nbsp;&nbsp;经过检查和尝试，最后发现原来是平台的网关没有配置导致的，网关配置后，GameServer通过Remoting访问平台的动态插件也可以成功了。<br />
&nbsp;&nbsp;&nbsp;&nbsp;但是，网关配置和remoting插件访问有什么关系了？毕竟普通的remoting访问和remoting回调都可以成功啊，还未找到合理的解释。
<img src ="http://wuhan.cnblogs.comaggbug/1224484.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37525/" target="_blank">[新闻]内置AI技术 三星聪明微波炉还能上网</a>]]></description></item><item><title>（原创）一个JavaScript Function Outliner插件 第三个版本  让你的JavaScript代码也支持折叠</title><link>http://www.cnblogs.com/yuyijq/archive/2008/06/16/1222902.html</link><dc:creator>横刀天笑</dc:creator><author>横刀天笑</author><pubDate>Mon, 16 Jun 2008 05:31:00 GMT</pubDate><guid>http://www.cnblogs.com/yuyijq/archive/2008/06/16/1222902.html</guid><description><![CDATA[<p>今天我为大家带来<font face="Verdana">JavaScript Function Outliner</font>插件的第三个版本，在这个版本里我们也可以对JavaScript的代码进行折叠了<br />
不过目前支持折叠的就function<br />
<br />
发布前两个版本后很多朋友加我的Q问我如何安装这个插件，所以我在第二个版本里添加了安装插件的说明，你可以<a href="http://www.cnblogs.com/yuyijq/archive/2008/06/13/1218774.html" target="_blank">点击这里查看</a><br />
<br />
什么也不说还是贴图吧，这个来的快(在这里首先要感谢园子里的<a href="http://jintan.cnblogs.com/" target="_blank">代码乱了</a>，是他提供的资料让我知道如何控制vs的文本编辑器，<br />
如果你觉得这个代码折叠好用就感谢他吧)<br />
<br />
第一个图我还是放那个旧的<br />
<img height="110" alt="" src="http://www.cnblogs.com/images/cnblogs_com/yuyijq/111.jpg" width="563" border="0" /><br />
本版本新增功能图之一（代码折叠之前）<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/yuyijq/addin3_1.jpg" border="0" /><br />
本版本新增功能图之二（展开后）<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/yuyijq/addin3_2.jpg" border="0" /><br />
本版本新增功能图之三（我还给你的JavaScript编辑器上下文菜单增加了两个选项）<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/yuyijq/addin3_3.jpg" border="0" /><br />
over了，就这样<br />
<br />
下面是插件下载文件了，麻烦你更新下以前的版本，sorry<br />
<br />
<br />
再次提醒：如果不知道如何安装插件<a href="http://www.cnblogs.com/yuyijq/archive/2008/06/13/1218774.html" target="_blank">请点击这里</a><br />
<br />
<span style="color: #ff0000">******************************************最新更新*********************************************<br />
根据刚才发布的第三个版本大家提出的意见做了进一步更新<br />
第一：折叠后的function将显示函数名<br />
第二：增加对#region的支持，不过是这种写法：<br />
//#region 这里是注释<br />
...........<br />
//#endregion<br />
<br />
还是看图吧<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/yuyijq/addin3_4.jpg" border="0" /><br />
<br />
文件下载<br />
<br />
<span style="color: #000000"><a href="/Files/yuyijq/Addins2005.rar"><span style="color: #000000">vs2005版本</span></a><br />
<a href="/Files/yuyijq/Addins2008.rar">vs2008版本</a></span></span></p>
<img src ="http://wuhan.cnblogs.comaggbug/1222902.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37524/" target="_blank">[新闻]盛大设文学公司 原新浪博客负责人侯小强任CEO</a>]]></description></item><item><title>MAC地址为FF-FF-FF-FF-FF-FF,接受数据包为0,局域网电脑不能上网的解决办法</title><link>http://www.cnblogs.com/finesite/archive/2008/06/14/1220909.html</link><dc:creator>Kevin  Li</dc:creator><author>Kevin  Li</author><pubDate>Fri, 13 Jun 2008 16:13:00 GMT</pubDate><guid>http://www.cnblogs.com/finesite/archive/2008/06/14/1220909.html</guid><description><![CDATA[<a href="http://www.ibaima.com">&nbsp;&nbsp;&nbsp; 同事的电脑突然蓝屏,他就换了另外一台电脑结果还是不能启动,帮他一键恢复后还没高兴多久就发现不能上网!<a href="http://www.ibaima.com"><br>&nbsp;&nbsp;&nbsp; 由于我们是在局域网由路由器共享上网的,默认都是自动获取ip,我怀疑不能自动获取ip,就手动填写ip,默认网关等数据,未果!一点小插曲,昨晚我就发现它的Mac地址都是F,有点怀疑但当时没有在意,结果花费了两个晚上来搞定这个不能上网的问题!同事还在一旁直夸:电脑高手肯定能搞定,说得我面红耳赤!<br>&nbsp;&nbsp;&nbsp; 发现网上邻居的面板中接受数据包为0,但发送数据包很大! <br>&nbsp;&nbsp;&nbsp; ping 127.0.0.1 能通 说明网卡没有问题<br>&nbsp; &nbsp; ping 填写的ip地址&nbsp; 能通说明网卡驱动正常<br>&nbsp;&nbsp;&nbsp; ping 网关 结果 request timeout 按照网上所说 检查网线、水晶头或者交换机,害的同事重新换根网线,但问题依然!<br><br>&nbsp;&nbsp;&nbsp; 我想到Mac地址都是F的现象,google一下! 发现下面的解决办法,其中的说明也更验证了我的想法.<br>&nbsp;<br>&nbsp;&nbsp;</a></a><a href="http://hi.baidu.com/xy2300/blog/item/3c6ff4f8f8c1cb0fd9f9fdde.html">&nbsp; <strong><font color="#00ff00">MAC地址全为FF-FF-FF-FF-FF-FF的解决办法</font></strong></a><a href="http://tempuri.org/tempuri.html"><a>&nbsp; &nbsp; 一:修改注册表(较复杂)&nbsp; 二:可以按照下面的操作步骤(较简单)<br>&nbsp;&nbsp; "在桌面上的“网上邻居”图标上单击右键，选择“属性”，在弹出的“网络连接”的对话框中，在“本地连接”图标上单击右键，选择“属性”，会弹出一个“本地
连接属性”的对话框，单击“配置”按钮，选择“高级”，选中左栏“属性”中“Network&nbsp;Address”（其实，并非所有的网卡，对物理地址的描述
都用“Network&nbsp;Address”，如Intel的网卡便用“Locally&nbsp;Administered&nbsp;Address”来描述，只要在右栏框中
可以找到“值”这个选项就可以了），然后选中右栏框“值”中的上面一个单选项（非“不存在”），此时便可在右边的框中输入想改的网卡MAC地址，形式如
“000B6AF6F4F9”。点击“确定”按钮，修改就完成了。 "<br><br>&nbsp;&nbsp;&nbsp; 最后别忘了重启电脑!<br><br>&nbsp;&nbsp;&nbsp; ok 问题解决 看到他能上网了,我也很有成就感! :)</a><br></a><img src ="http://wuhan.cnblogs.comaggbug/1220909.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37523/" target="_blank">[新闻]Gmail、Hotmail和Yahoo验证码被攻破</a>]]></description></item><item><title>（原创）一个JavaScript Function Outliner插件  第二个版本</title><link>http://www.cnblogs.com/yuyijq/archive/2008/06/13/1218774.html</link><dc:creator>横刀天笑</dc:creator><author>横刀天笑</author><pubDate>Thu, 12 Jun 2008 16:49:00 GMT</pubDate><guid>http://www.cnblogs.com/yuyijq/archive/2008/06/13/1218774.html</guid><description><![CDATA[摘要: <p><img src="http://www.cnblogs.com/images/cnblogs_com/yuyijq/111.jpg" align="right"/>当我们看到Visual Studio 2008提供的智能感知欢呼的时候，又觉得有些许遗憾。<br>也许有很多人用过Aptana Studio(一个对JavaScript支持很好的IDE，基于Eclipse开发，我一直用其开发RubyOnRails)，<br>是不是羡慕她所提供对JavaScript的强大支持度？比如这个Outliner吧<br>当你的JavaScript文件的代码超过一屏幕的时候，常常为了找到一个function的定义拖来拖去，或者常常使用Find来查找这个function<br>如果vs可以提供一个目录树，显示javascript文件里的所有函数列表，点击树的node的时候快速的跳到该function定义的地方该多好啊，可惜<br>vs没有提供(不知道是不是已经存在这样的插件，不过我好像没找到，所以就自己开发了个)</p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/yuyijq/archive/2008/06/13/1218774.html'>阅读全文</a><img src ="http://wuhan.cnblogs.comaggbug/1218774.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37520/" target="_blank">[新闻]史玉柱称花掉8亿美元不容易 坚持谨慎投资原则</a>]]></description></item><item><title>我在CodePlex上建的开源项目：JavaScript Lexer and Parser(欢迎加入)</title><link>http://www.cnblogs.com/yuyijq/archive/2008/06/09/1216214.html</link><dc:creator>横刀天笑</dc:creator><author>横刀天笑</author><pubDate>Mon, 09 Jun 2008 06:15:00 GMT</pubDate><guid>http://www.cnblogs.com/yuyijq/archive/2008/06/09/1216214.html</guid><description><![CDATA[摘要: <p><img src="http://www.cnblogs.com/images/cnblogs_com/yuyijq/111.jpg" align="right"/>我在CodePlex上建立的开源项目JavaScript的词法语法分析器，项目地址是：http://www.codeplex.com/JSLexerParser ,热烈的欢迎各位达人来共同完善这个项目，关于项目的详细信息请看博客内容，你可以通过上面提供的联系方式和我联系，谢谢<br></p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/yuyijq/archive/2008/06/09/1216214.html'>阅读全文</a><img src ="http://wuhan.cnblogs.comaggbug/1216214.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37519/" target="_blank">[新闻]我乐网(56.com)关停1月 套牢2亿风投</a>]]></description></item><item><title>与人相处的二十四条黄金法则(转载)</title><link>http://www.cnblogs.com/finesite/archive/2008/06/05/1214260.html</link><dc:creator>Kevin  Li</dc:creator><author>Kevin  Li</author><pubDate>Thu, 05 Jun 2008 04:42:00 GMT</pubDate><guid>http://www.cnblogs.com/finesite/archive/2008/06/05/1214260.html</guid><description><![CDATA[<a href="http://www.ibaima.com">1．尽可能鼓励别人。你要称赞他获得的成果――即使是很小的成功。称赞如同阳光，缺少它我们就没有生长的养份。你的称赞永远都不会多余。
<br>2.你要在任何时候都让别人保留脸面。不要让任何人感到难堪，不要贬低别人，不要夸大别人的错误。
<br>3.在别人背后只说他的好话。如果你找不到什么好话说，那你就保持沉默。
<br>4.仔细观察别人，那样你就会发现他做的好事。当你表示赞许的时候，你要充说明理由，这样你的称赞就不会有谄媚之嫌。
<br>5.你要经常引用别人高尚的思想和动机。每个人都希望被别人认为是宽宏而无私的。如果你希望别人有所改善，那么你就做出仿佛他已经拥有了这些优良品质的模样。那样，他会尽一切可能不让人失望的。
<br>6.你尽可能不要批评别人，不得不批评的时候也最好采取间接方式。你要始终对事而不对人。你要向对方表明，你真心喜欢他也愿意帮助他。你永远也不要以书面形式批评别人。
<br>7.你要允许别人偶尔自我感觉良好。你不要吹嘘，而要承认自己也有缺点。你要谦虚谨慎戒骄戒躁。如果你想树敌，你就处处打击别人。如果你想得到朋友，你要得饶人处且饶人。
<br>8.当你犯了错误的时候，你要及时道歉；当你要受到指责的时候，你最好主动负荆请罪。
<br>9.你要多提建议，而不是发号施令。这样做，你可以促进合作关系，而避免引发矛盾。
<br>10.当别人发怒的时候，你要表示理解。他人的怒火常常只是为了引起你的注意。你要给予别人足够的同情和关注――他们需要这些。
<br>11.你要尽可能少说话。你要给别人诉说的机会，而自己甘做一个好的听众。
<br>12.你要让别人相信，主意来自他自己。好主意不在乎其主人是谁，而每个人都情愿相信在按照自己的意愿行事。海洋是溪流的国王，因为它可以广纳百川。
<br>13.你不要打断别人的话，即使当他说错了的时候。当他心里还有事的时候，是不会耐心听你述说的。
<br>14.你要试着从别人的立场上分析事情。印第安人说过："首先要穿别人的鞋走上一段路。"你不要忘了问自己：他这样做是出于什么原因？理解一切意味着宽恕一切。
<br>15.你不要总是有理。你可以比别人聪明，但是你不要告诉对方。你要承认也许是自己错了――这样可以避免一切的争吵。
<br>16.常常赠送一些小礼品――可以没有任何理由的，寻找让别人快乐的途径。在礼物上花费的精力表明了你在他身上花费的心思。
<br><span style="font-size: 18px; line-height: normal;"><span style="font-size: 18px; line-height: normal;">  17.在发生矛盾的时候，你要保持镇静。你首先要倾听对方的意见，努力寻找双方的一致之处，你还要用批评的眼光看待自己，向对方保证考虑他的意见，并对他给予自己的启发表示谢意。<br>  18.你要对别人表示真正感兴趣。你要将此作为自己的口号：对别人感兴趣，而不是自己显示出有趣。你要表示自己正在思考帮助对方的方法。<br>  19.保持微笑。没有比那些从不对人微笑的人更需要微笑的了。<br>  20.要始终称呼对方的全名。这表明你对他的尊重。每个人都愿意听到自己的名字，这比听到任何一个名字的代替品都更让他高兴。当然，为此你要努力记住对方的姓名。<br>  21.你要学会从对方的角度来看待事物。你要问自己：真正需要的是什么？我如何能够让他得利？<br>  22.你要想办法使自己在和每一个人谈话时，包括在电话中，都让对方有好的感觉――首先是对他自己，然后是对你的行为，最后是对你。<br>  23.要尽快宽恕别人，不要记仇。<br>  24.当你想到对方时，要给予他你最好的祝愿</span></span></a><img src ="http://wuhan.cnblogs.comaggbug/1214260.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37518/" target="_blank">[新闻]微软七月安全公告预告:四个重要等级更新</a>]]></description></item><item><title>（原创）一个JavaScript Function Outliner插件</title><link>http://www.cnblogs.com/yuyijq/archive/2008/06/01/1211698.html</link><dc:creator>横刀天笑</dc:creator><author>横刀天笑</author><pubDate>Sun, 01 Jun 2008 13:02:00 GMT</pubDate><guid>http://www.cnblogs.com/yuyijq/archive/2008/06/01/1211698.html</guid><description><![CDATA[摘要: <p><img src="http://www.cnblogs.com/images/cnblogs_com/yuyijq/111.jpg" align="right" width="150" height="60"/>当我们看到Visual Studio 2008提供的智能感知欢呼的时候，又觉得有些许遗憾。<br>也许有很多人用过Aptana Studio(一个对JavaScript支持很好的IDE，基于Eclipse开发，我一直用其开发RubyOnRails)，<br>是不是羡慕她所提供对JavaScript的强大支持度？比如这个Outliner吧<br>当你的JavaScript文件的代码超过一屏幕的时候，常常为了找到一个function的定义拖来拖去，或者常常使用Find来查找这个function<br>如果vs可以提供一个目录树，显示javascript文件里的所有函数列表，点击树的node的时候快速的跳到该function定义的地方该多好啊，可惜<br>vs没有提供(不知道是不是已经存在这样的插件，不过我好像没找到，所以就自己开发了个)</p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/yuyijq/archive/2008/06/01/1211698.html'>阅读全文</a><img src ="http://wuhan.cnblogs.comaggbug/1211698.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37517/" target="_blank">[新闻]雅虎:一颗棋子的起落</a>]]></description></item><item><title>Aspect Oriented Programming(AOP) 介绍</title><link>http://www.cnblogs.com/zhzkl/archive/2008/05/31/1211434.html</link><dc:creator>xwang</dc:creator><author>xwang</author><pubDate>Sat, 31 May 2008 15:47:00 GMT</pubDate><guid>http://www.cnblogs.com/zhzkl/archive/2008/05/31/1211434.html</guid><description><![CDATA[<p><strong>什么是AOP?</strong><br />
:) = Aspect Oriented Programming </p>
<blockquote>
<p>Business Rule&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | (AOP)<br />
Security Permission&nbsp;&nbsp;&nbsp;&nbsp; |<br />
Logging&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | --------------&gt; Business Logic<br />
Database Operations&nbsp;&nbsp; |<br />
Web Service&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | </p>
</blockquote>
<p><strong>为什么AOP?</strong><br />
为了独立业务<br />
<strong>怎样AOP?</strong><br />
举个例子<br />
按照传统的写法写登陆业务</p>
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span><img id="Codehighlighter1_0_21_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_0_21_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_0_21_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_0_21_Closed_Text').style.display='inline';" align="top"  alt="" /><img id="Codehighlighter1_0_21_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_0_21_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_0_21_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_0_21_Open_Text').style.display='inline';" align="top"  alt="" /><span id="Codehighlighter1_0_21_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;">/**/</span><span id="Codehighlighter1_0_21_Open_Text"><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;Traditional&nbsp;Way&nbsp;</span><span style="color: #008000;">*/</span></span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;2</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;isAdministrator&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;3</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">if</span><span style="color: #000000;">(Users.ValidateUser(Context.User.UserName)&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;UserRole.Admministrator)<br />
</span><span style="color: #008080;">&nbsp;4</span><span style="color: #000000;"><img id="Codehighlighter1_125_164_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_125_164_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_125_164_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_125_164_Closed_Text').style.display='inline';" align="top"  alt="" /><img id="Codehighlighter1_125_164_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_125_164_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_125_164_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_125_164_Open_Text').style.display='inline';" align="top"  alt="" /></span><span id="Codehighlighter1_125_164_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_125_164_Open_Text"><span style="color: #000000;">{<br />
</span><span style="color: #008080;">&nbsp;5</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isAdministrator&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;6</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;7</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">isAdministrator)&nbsp;</span><span style="color: #0000ff;">throw</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;NoPermissionExpection();<br />
</span><span style="color: #008080;">&nbsp;8</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Bussiness&nbsp;Code</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;9</span><span style="color: #008000;"><img id="Codehighlighter1_239_534_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_239_534_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_239_534_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_239_534_Closed_Text').style.display='inline';" align="top"  alt="" /><img id="Codehighlighter1_239_534_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_239_534_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_239_534_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_239_534_Open_Text').style.display='inline';" align="top"  alt="" /></span><span id="Codehighlighter1_239_534_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;">/**/</span><span id="Codehighlighter1_239_534_Open_Text"><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;-----------------------------------------------------------------<br />
</span><span style="color: #008080;">10</span><span style="color: #008000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />*&nbsp;&nbsp;&nbsp;Aspect&nbsp;Oriented&nbsp;Programming<br />
</span><span style="color: #008080;">11</span><span style="color: #008000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />*&nbsp;&nbsp;&nbsp;AOP指的是用面向方面的编程来解决面向方面的问题<br />
</span><span style="color: #008080;">12</span><span style="color: #008000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />*&nbsp;&nbsp;&nbsp;一般包含：&nbsp;1.切入点&nbsp;2.方面问题的解决<br />
</span><span style="color: #008080;">13</span><span style="color: #008000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />*&nbsp;&nbsp;&nbsp;在实现中一般加入了动态代理的成分反倒复杂了许多，包含了五个方面<br />
</span><span style="color: #008080;">14</span><span style="color: #008000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />*&nbsp;&nbsp;&nbsp;1.&nbsp;连接点&nbsp;2.&nbsp;接入点&nbsp;3.&nbsp;通知&nbsp;4.方面&nbsp;5.&nbsp;引入<br />
</span><span style="color: #008080;">15</span><span style="color: #008000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />------------------------------------------------------------------</span><span style="color: #008000;">*/</span></span><span style="color: #000000;"><br />
</span><span style="color: #008080;">16</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">Memebership.User.HasPermission)&nbsp;</span><span style="color: #0000ff;">throw</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;NoPermissionExpection();</span><span style="color: #008080;"><br />
</span></div>
<p>关于动态代理的部分<br />
例如：</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000;">[Before(Memebership.User.HasPermission)]<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;ExecuteLogic()<br />
<img id="Codehighlighter1_68_118_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_68_118_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_68_118_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_68_118_Closed_Text').style.display='inline';" align="top"  alt="" /><img id="Codehighlighter1_68_118_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_68_118_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_68_118_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_68_118_Open_Text').style.display='inline';" align="top"  alt="" /></span><span id="Codehighlighter1_68_118_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_68_118_Open_Text"><span style="color: #000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO::&nbsp;Implement&nbsp;the&nbsp;business&nbsp;logic</span><span style="color: #008000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #000000;">}</span></span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;ExecuteEngine<br />
<img id="Codehighlighter1_146_391_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_146_391_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_146_391_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_146_391_Closed_Text').style.display='inline';" align="top"  alt="" /><img id="Codehighlighter1_146_391_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_146_391_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_146_391_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_146_391_Open_Text').style.display='inline';" align="top"  alt="" /></span><span id="Codehighlighter1_146_391_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_146_391_Open_Text"><span style="color: #000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;Run()<br />
<img id="Codehighlighter1_186_389_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_186_389_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_186_389_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_186_389_Closed_Text').style.display='inline';" align="top"  alt="" /><img id="Codehighlighter1_186_389_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_186_389_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_186_389_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_186_389_Open_Text').style.display='inline';" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_186_389_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_186_389_Open_Text"><span style="color: #000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO::&nbsp;Get&nbsp;the&nbsp;attribute&nbsp;to&nbsp;find&nbsp;out&nbsp;if&nbsp;there&nbsp;is&nbsp;a&nbsp;before&nbsp;attribute。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;there&nbsp;is,&nbsp;Run&nbsp;the&nbsp;Arrtibute&nbsp;Method&nbsp;First,&nbsp;&nbsp;then&nbsp;run&nbsp;the&nbsp;ExecuteLogic</span><span style="color: #008000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000;"> <br />
</span></div>
<p><strong>框架</strong><br />
Spring, Aspect# 等等<br />
<strong><br />
关于AOP更多描述：</strong><br />
<a href="http://www.jdon.com/AOPdesign/jdon-aop.htm">http://www.jdon.com/AOPdesign/jdon-aop.htm</a><br />
<a href="http://wayfarer.cnblogs.com/articles/241024.html">http://wayfarer.cnblogs.com/articles/241024.html</a> </p>
 <img src ="http://wuhan.cnblogs.comaggbug/1211434.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37516/" target="_blank">[新闻]Firefox联合搜狐推出奥运浏览器</a>]]></description></item><item><title>Spring.net －－ 目前不支持getter、setter的访问限定符</title><link>http://www.cnblogs.com/zhuweisky/archive/2008/05/29/1210206.html</link><dc:creator>zhuweisky</dc:creator><author>zhuweisky</author><pubDate>Thu, 29 May 2008 10:39:00 GMT</pubDate><guid>http://www.cnblogs.com/zhuweisky/archive/2008/05/29/1210206.html</guid><description><![CDATA[摘要: 如果你使用Spring.net作为你的IOC容器，那么一定要注意这个问题－－Spring.net 目前不支持getter、setter的访问限定符。<br>&nbsp;&nbsp;<a href='http://www.cnblogs.com/zhuweisky/archive/2008/05/29/1210206.html'>阅读全文</a><img src ="http://wuhan.cnblogs.comaggbug/1210206.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37515/" target="_blank">[新闻]Google音乐搜索即将上线</a>]]></description></item><item><title>DataRabbit 轻量的ORM框架（16）－－ Entity缓存</title><link>http://www.cnblogs.com/zhuweisky/archive/2008/05/28/1208982.html</link><dc:creator>zhuweisky</dc:creator><author>zhuweisky</author><pubDate>Wed, 28 May 2008 02:47:00 GMT</pubDate><guid>http://www.cnblogs.com/zhuweisky/archive/2008/05/28/1208982.html</guid><description><![CDATA[摘要: 缓存一些更新频率很低的Entity在内存中，不仅可以提供更好的性能而且可以非常有效地降低数据库的负载。&nbsp;&nbsp;<a href='http://www.cnblogs.com/zhuweisky/archive/2008/05/28/1208982.html'>阅读全文</a><img src ="http://wuhan.cnblogs.comaggbug/1208982.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37514/" target="_blank">[新闻]哪一个 Linux 发行版最流行?</a>]]></description></item><item><title>微软Classifieds Site Starter Kit汉化增强版(GPL协议源码发布)</title><link>http://www.cnblogs.com/finesite/archive/2008/05/27/classifieds_starter_kits.html</link><dc:creator>Kevin  Li</dc:creator><author>Kevin  Li</author><pubDate>Tue, 27 May 2008 14:13:00 GMT</pubDate><guid>http://www.cnblogs.com/finesite/archive/2008/05/27/classifieds_starter_kits.html</guid><description><![CDATA[摘要: <p><img src="http://static.asp.net/asp.net/images/projects/Classifieds.png" align="right"/>微软Classifieds Site Starter Kit汉化增强版(GPL协议源码发布)提供下载</p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/finesite/archive/2008/05/27/classifieds_starter_kits.html'>阅读全文</a><img src ="http://wuhan.cnblogs.comaggbug/1208718.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37513/" target="_blank">[新闻]方兴东证实博客网因业务调整裁员</a>]]></description></item><item><title>批量写数据---将XML数据批量写入数据库</title><link>http://www.cnblogs.com/doll-net/archive/2008/05/24/1206233.html</link><dc:creator>空空儿</dc:creator><author>空空儿</author><pubDate>Fri, 23 May 2008 19:05:00 GMT</pubDate><guid>http://www.cnblogs.com/doll-net/archive/2008/05/24/1206233.html</guid><description><![CDATA[&nbsp;&nbsp;&nbsp; 将数据批量写入数据库的需求是比较多的，方法也有很多种，在.net 里使用程序比较好的方法是<a class="postTitle2" id="AjaxHolder_ctl01_TitleUrl" href="http://www.cnblogs.com/doll-net/archive/2007/07/22/827261.html">使用 Bulk Copy 将大量数据复制到数据库</a> 。如果数据源为XML文件，使用SQL BULK COPY就需要将XML数据导入到DataTable，下面的方法可以直接将XML数据传到SQL SERVER然后处理，另外还可以直接使用T-SQL将XML文件的数据导入到数据库。<br />
这里最主要的是要使用二个系统存储过程：<font face="Verdana">SP_XML_PREPAREDOCUMENT</font> 和 <font face="Verdana">SP_XML_REMOVEDOCUMENT</font><br />
<font face="Verdana">&nbsp;&nbsp;&nbsp; SP_XML_PREPAREDOCUMENT</font> 的功能是：读取XML文件后使用 MSXML 分析器 (Msxmlsql.dll) 对XML数据进行分析，并提供分析后的文档供使用。分析后得到的数据是对 XML 文件中的各节点（元素、属性、文本和注释等）以树状形式表现。分析后的数据存储在&nbsp;SQL Server 的内部缓存中。<br />
<font face="Verdana">&nbsp;&nbsp;&nbsp; SP_XML_REMOVEDOCUMENT 的功能是：根据文档句柄释放文档所占的内存。<br />
&nbsp;&nbsp;&nbsp; 先建立一个XML字符串和一个表：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff"><font face="Verdana">&lt;?xml version="1.0"?&gt;</font><br />
&lt;ROOT</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">USER&nbsp;</span><span style="color: #ff0000">ID</span><span style="color: #0000ff">="1"</span><span style="color: #ff0000">&nbsp;Name</span><span style="color: #0000ff">="SBQCEL"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">USER&nbsp;</span><span style="color: #ff0000">ID</span><span style="color: #0000ff">="2"</span><span style="color: #ff0000">&nbsp;Name</span><span style="color: #0000ff">="PEACELI"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">USER&nbsp;</span><span style="color: #ff0000">ID</span><span style="color: #0000ff">="3"</span><span style="color: #ff0000">&nbsp;Name</span><span style="color: #0000ff">="SHEEPCHANG"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/ROOT</span><span style="color: #0000ff">&gt;</span></div>
&nbsp;&nbsp;&nbsp;
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TABLE</span><span style="color: #000000">&nbsp;Users<br />
(<br />
&nbsp;&nbsp;&nbsp;&nbsp;UserId&nbsp;</span><span style="color: #0000ff">INT</span><span style="color: #000000">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;UserName&nbsp;</span><span style="color: #0000ff">VARCHAR</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">)&nbsp;<br />
)</span></div>
</font>&nbsp;&nbsp; 处理的方法很简单：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">DECLARE</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@HDOC</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INT</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">文档句柄</span><span style="color: #008080"><br />
</span><span style="color: #0000ff">DECLARE</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@XMLSTRING</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">VARCHAR</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">200</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">XML字符串</span><span style="color: #008080"><br />
</span><span style="color: #0000ff">SET</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@xmlString</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #ff0000">'<span style="color: #0000ff"><font style="color: #0000ff"><span style="color: red">&lt;?xml version="1.0"?&gt;<br />
</span></font></span></span><span style="color: #ff0000">&lt;ROOT&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;USER&nbsp;ID="1"&nbsp;Name="SBQCEL"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;USER&nbsp;ID="2"&nbsp;Name="PEACELI"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;USER&nbsp;ID="3"&nbsp;Name="SHEEPCHANG"/&gt;<br />
&lt;/ROOT&gt;</span><span style="color: #ff0000">'</span><span style="color: #000000"><br />
</span><span style="color: #008080">--</span><span style="color: #008080">使用系统存储过程SP_XML_PREPAREDOCUMENT分析XML字符串</span><span style="color: #008080"><br />
</span><span style="color: #0000ff">EXEC</span><span style="color: #000000">&nbsp;SP_XML_PREPAREDOCUMENT&nbsp;</span><span style="color: #008000">@HDOC</span><span style="color: #000000">&nbsp;OUTPUT,&nbsp;</span><span style="color: #008000">@XMLSTRING</span><span style="color: #000000"><br />
</span><span style="color: #008080">--</span><span style="color: #008080">使用OPENXML从SQL&nbsp;Server&nbsp;的内部缓存查询数据</span><span style="color: #008080"><br />
</span><span style="color: #0000ff">INSERT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;Users&nbsp;</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;OPENXML(</span><span style="color: #008000">@HDOC</span><span style="color: #000000">,N</span><span style="color: #ff0000">'</span><span style="color: #ff0000">/ROOT/USER</span><span style="color: #ff0000">'</span><span style="color: #000000">)<br />
</span><span style="color: #0000ff">WITH</span><span style="color: #000000">&nbsp;<br />
(&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;ID&nbsp;</span><span style="color: #0000ff">INT</span><span style="color: #000000">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;Name&nbsp;</span><span style="color: #0000ff">VARCHAR</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">10</span><span style="color: #000000">)<br />
)<br />
</span><span style="color: #008080">--</span><span style="color: #008080">使用系统存储过程SP_XML_REMOVEDOCUMENT释放内存</span><span style="color: #008080"><br />
</span><span style="color: #0000ff">EXEC</span><span style="color: #000000">&nbsp;SP_XML_REMOVEDOCUMENT&nbsp;</span><span style="color: #008000">@HDOC</span></div>
&nbsp;&nbsp; 如果要用T-SQL直接读取一个XML文件并将数据导入到表里，需要做一些额外的处理：先要用<font face="Verdana">XP_CMDSHELL将XML数据读到一个临时表（变量表），然后将每行数据组合成一个字符串，再用上面的方法处理。需要注意的是<font face="Verdana">XP_CMDSHELL以行来处理数据的。下面是一个简单的事例：</font></font><br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">--</span><span style="color: #008080">定义一个变量表临时存储调用XP_CMDSHELL后得到的数据</span><span style="color: #008080"><br />
</span><span style="color: #0000ff">DECLARE</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@TEMP</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TABLE</span><span style="color: #000000"><br />
(<br />
&nbsp;&nbsp;&nbsp;&nbsp;ID&nbsp;</span><span style="color: #0000ff">INT</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">IDENTITY</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">),<br />
&nbsp;&nbsp;&nbsp;&nbsp;XMLSTRING&nbsp;</span><span style="color: #0000ff">VARCHAR</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">200</span><span style="color: #000000">)<br />
)<br />
</span><span style="color: #008080">--</span><span style="color: #008080">使用XP_CMDSHELL将XML文件的数据插入到变量表里</span><span style="color: #008080"><br />
</span><span style="color: #0000ff">INSERT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@TEMP</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">EXEC</span><span style="color: #000000">&nbsp;MASTER.DBO.XP_CMDSHELL&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">TYPE&nbsp;E:\A.XML</span><span style="color: #ff0000">'</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">DECLARE</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@LOOP</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INT</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">循环计数</span><span style="color: #008080"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@COUNT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INT</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">行数</span><span style="color: #008080"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@XMLSTRING</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">VARCHAR</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">200</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">存储XML字符串</span><span style="color: #008080"><br />
</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #008000">@LOOP</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">从第1行开始</span><span style="color: #008080"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@XMLSTRING</span><span style="color: #808080">=</span><span style="color: #ff0000">''</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">初始化</span><span style="color: #008080"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@COUNT</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">COUNT</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@TEMP</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">获得行数</span><span style="color: #008080"><br />
--</span><span style="color: #008080">做一个循环，将数据组合成一个字符串以便处理</span><span style="color: #008080"><br />
</span><span style="color: #0000ff">WHILE</span><span style="color: #000000">&nbsp;(</span><span style="color: #008000">@LOOP</span><span style="color: #808080">&lt;=</span><span style="color: #008000">@COUNT</span><span style="color: #000000">)<br />
</span><span style="color: #0000ff">BEGIN</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@XMLSTRING</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@XMLSTRING</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;XMLSTRING&nbsp;</span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@TEMP</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">WHERE</span><span style="color: #000000">&nbsp;ID&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@LOOP</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">SET</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@LOOP</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@LOOP</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">END</span><span style="color: #000000"><br />
</span><span style="color: #008080">--</span><span style="color: #008080">查看处理结果</span><span style="color: #008080"><br />
</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@XMLSTRING</span></div>
用上面的方法处理后就将一个XML文件的数据组合成一个字符串了，然后就可以用上面的方法将数据导入到数据库了。<br />
<img src ="http://wuhan.cnblogs.comaggbug/1206233.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37512/" target="_blank">[新闻]Sandcastle项目全部开源</a>]]></description></item><item><title>使用动态代理，提高工作效率</title><link>http://www.cnblogs.com/zhuweisky/archive/2008/05/21/1204230.html</link><dc:creator>zhuweisky</dc:creator><author>zhuweisky</author><pubDate>Wed, 21 May 2008 09:42:00 GMT</pubDate><guid>http://www.cnblogs.com/zhuweisky/archive/2008/05/21/1204230.html</guid><description><![CDATA[摘要: &nbsp;&nbsp;<a href='http://www.cnblogs.com/zhuweisky/archive/2008/05/21/1204230.html'>阅读全文</a><img src ="http://wuhan.cnblogs.comaggbug/1204230.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37511/" target="_blank">[新闻]“博客园开发者征途系列” 即将发布重磅级新书</a>]]></description></item><item><title>你知道 typeof(void) 吗？</title><link>http://www.cnblogs.com/zhuweisky/archive/2008/05/21/1203815.html</link><dc:creator>zhuweisky</dc:creator><author>zhuweisky</author><pubDate>Wed, 21 May 2008 02:31:00 GMT</pubDate><guid>http://www.cnblogs.com/zhuweisky/archive/2008/05/21/1203815.html</guid><description><![CDATA[摘要: &nbsp;&nbsp;<a href='http://www.cnblogs.com/zhuweisky/archive/2008/05/21/1203815.html'>阅读全文</a><img src ="http://wuhan.cnblogs.comaggbug/1203815.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37510/" target="_blank">[新闻]Google官方推出Google Talk苹果iPhone版</a>]]></description></item><item><title>igoogle也犯错！</title><link>http://www.cnblogs.com/finesite/archive/2008/05/16/1200706.html</link><dc:creator>Kevin  Li</dc:creator><author>Kevin  Li</author><pubDate>Fri, 16 May 2008 07:15:00 GMT</pubDate><guid>http://www.cnblogs.com/finesite/archive/2008/05/16/1200706.html</guid><description><![CDATA[一觉醒来，打开主页，却碰到这种情形，谁能告诉我怎么调整一下？看起来极不舒服！<br><img src="http://www.cnblogs.com/images/cnblogs_com/finesite/igoogle.jpg" alt="igoogle.jpg" border="0" height="768" width="1024"><br><img src ="http://wuhan.cnblogs.comaggbug/1200706.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37508/" target="_blank">[新闻]研究称Windows使用份额将很快低于90％</a>]]></description></item><item><title>调查一下您对四川灾区的支援情况</title><link>http://www.cnblogs.com/drunkyong/archive/2008/05/15/1198138.html</link><dc:creator>Ray Wu</dc:creator><author>Ray Wu</author><pubDate>Thu, 15 May 2008 04:59:00 GMT</pubDate><guid>http://www.cnblogs.com/drunkyong/archive/2008/05/15/1198138.html</guid><description><![CDATA[<OBJECT id=swfapp codeBase=http://fpdownload.adobe.com/get/flashplayer/current/swflash.cab#version=9,0,15,0 height=300 width=400 align=center classid=clsid:D27CDB6E-AE6D-11CF-96B8-444553540000><PARAM NAME="_cx" VALUE="10583"><PARAM NAME="_cy" VALUE="7938"><PARAM NAME="FlashVars" VALUE="perpage=2&activityid=4849"><PARAM NAME="Movie" VALUE="http://www.sojump.com/FlashApp.swf"><PARAM NAME="Src" VALUE="http://www.sojump.com/FlashApp.swf"><PARAM NAME="WMode" VALUE="Window"><PARAM NAME="Play" VALUE="-1"><PARAM NAME="Loop" VALUE="-1"><PARAM NAME="Quality" VALUE="High"><PARAM NAME="SAlign" VALUE="LT"><PARAM NAME="Menu" VALUE="-1"><PARAM NAME="Base" VALUE=""><PARAM NAME="AllowScriptAccess" VALUE=""><PARAM NAME="Scale" VALUE="NoScale"><PARAM NAME="DeviceFont" VALUE="0"><PARAM NAME="EmbedMovie" VALUE="0"><PARAM NAME="BGColor" VALUE=""><PARAM NAME="SWRemote" VALUE=""><PARAM NAME="MovieData" VALUE=""><PARAM NAME="SeamlessTabbing" VALUE="0"><PARAM NAME="Profile" VALUE="0"><PARAM NAME="ProfileAddress" VALUE=""><PARAM NAME="ProfilePort" VALUE="0"><PARAM NAME="AllowNetworking" VALUE="all"><PARAM NAME="AllowFullScreen" VALUE="false">
     <embed src="http://www.sojump.com/FlashApp.swf" name="swfapp" width="400" height="250" quality="high" scale="noScale" FlashVars="perpage=2&activityid=4849"  SeamlessTabbing="false" swliveconnect="true" pluginspage="http://www.adobe.com/go/getflashplayer" type="application/x-shockwave-flash"></embed></OBJECT><img src ="http://wuhan.cnblogs.comaggbug/1198138.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37507/" target="_blank">[新闻]苹果App Store公布应用程序提交最后期限</a>]]></description></item><item><title>【转载】快速、可伸缩和流式的AJAX代理--跨域持续内容分发</title><link>http://www.cnblogs.com/homer/archive/2008/05/15/ajaxproxy.html</link><dc:creator>红马天下</dc:creator><author>红马天下</author><pubDate>Thu, 15 May 2008 01:45:00 GMT</pubDate><guid>http://www.cnblogs.com/homer/archive/2008/05/15/ajaxproxy.html</guid><description><![CDATA[摘要: Due to browsers' prohibition on cross domain XMLHTTP calls, all AJAX websites must have a server side proxy to fetch content from external domains like Flickr or Digg. From the client-side JavaScript code, an XMLHTTP call goes to the server-side proxy hosted on the same domain, and then the proxy downloads the content from the external server and sends back to the browser. In general, all AJAX websites on the Internet that are showing content from external domains are following this proxy approa&nbsp;&nbsp;<a href='http://www.cnblogs.com/homer/archive/2008/05/15/ajaxproxy.html'>阅读全文</a><img src ="http://wuhan.cnblogs.comaggbug/1197704.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37506/" target="_blank">[新闻]Intel欲打造千核运算</a>]]></description></item></channel></rss>