﻿<?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>博客园-ξ箫音ξ&amp;&amp;高阳（天行健，君子以自强不息；厚德载物! -《周易》）</title><link>http://www.cnblogs.com/xiaoyin_net/</link><description>专注于微软.Net最新技术应用与研究的Blog</description><language>zh-cn</language><lastBuildDate>Sat, 26 Jul 2008 05:17:20 GMT</lastBuildDate><pubDate>Sat, 26 Jul 2008 05:17:20 GMT</pubDate><ttl>60</ttl><item><title>指掌风云，秀玩美---Touch Diamond实拍王之畅游广州白云山（下）</title><link>http://www.cnblogs.com/xiaoyin_net/archive/2008/07/06/1236912.html</link><dc:creator>ξ箫音ξ</dc:creator><author>ξ箫音ξ</author><pubDate>Sun, 06 Jul 2008 08:34:00 GMT</pubDate><guid>http://www.cnblogs.com/xiaoyin_net/archive/2008/07/06/1236912.html</guid><wfw:comment>http://www.cnblogs.com/xiaoyin_net/comments/1236912.html</wfw:comment><comments>http://www.cnblogs.com/xiaoyin_net/archive/2008/07/06/1236912.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/xiaoyin_net/comments/commentRss/1236912.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xiaoyin_net/services/trackbacks/1236912.html</trackback:ping><description><![CDATA[<div class="text">
<p>我们出行4人，在2008年7月5号 周六下午打的的士，大概30分钟到达广州白云山。 来到广州快2个星期才赶上 </p>
<p>唯一一个好天气！ 随身携带Touch Diamond智能PPC，不会遗憾留不住短暂的美丽时光！ </p>
<p><img style="width: 574px; height: 388px;" alt="" src="http://blog.crfly.com/image.axd?picture=IMAGE_061.jpg" height="388" width="574" /> </p>
<p>一路登山，路边的南方植物生长茂盛，很有特色和美感。 </p>
<p><img style="width: 572px; height: 717px;" alt="" src="http://blog.crfly.com/image.axd?picture=IMAGE_064.jpg" height="717" width="572" /> </p>
<p>竹子也非常挺拔和秀丽，充满了生气！ </p>
<p><img style="width: 573px; height: 833px;" alt="" src="http://blog.crfly.com/image.axd?picture=IMAGE_073.jpg" height="833" width="573" /> </p>
<p>下图是我们登山的甬道： </p>
<p><img style="width: 563px; height: 672px;" alt="" src="http://blog.crfly.com/image.axd?picture=IMAGE_086.jpg" height="672" width="563" /> </p>
<p>登山半山顶，俯视广州城市，很壮观！远端还有索道的上下往返，人蛮多的。 </p>
<p><img style="width: 565px; height: 454px;" alt="" src="http://blog.crfly.com/image.axd?picture=IMAGE_092.jpg" height="454" width="565" /> </p>
<p>半山腰不远处有&#8220;黄河石&#8221;景点，据说是来自黄河的源头！ </p>
<p><img style="width: 569px; height: 323px;" alt="" src="http://blog.crfly.com/image.axd?picture=IMAGE_110.jpg" height="323" width="569" /> </p>
<p>山水哗哗的流淌，仿佛看到了黄河母亲河的奔腾不息的精神： </p>
<p><img style="width: 570px; height: 489px;" alt="" src="http://blog.crfly.com/image.axd?picture=IMAGE_114.jpg" height="489" width="570" /> </p>
<p>在山顶的照片，拍的有点暗，:-) </p>
<p><img style="width: 573px; height: 386px;" alt="" src="http://blog.crfly.com/image.axd?picture=_DSC3849.JPG" height="386" width="573" /> </p>
<p>我与同事一行4人，辛苦的登山肚子都咕咕叫，山顶的东西真贵；要了几个菜画了110，拍黄瓜18块一盘， </p>
<p>猪脚又白又硬32....汗一个；谁叫我们饿的任由他们宰呢？ </p>
<p>广州的最高峰摩天岭上传来隆隆的钟声，据说是传递平安和吉祥的声音，哥几个累的够呛不准备去了，继续下行。 </p>
<p>林间的小溪、蜻蜓飞舞，抓拍一个^_^，蜻蜓翅膀紧缩，警惕性满高的。 </p>
<p><img style="width: 583px; height: 354px;" alt="" src="http://blog.crfly.com/image.axd?picture=_DSC3875.JPG" height="354" width="583" /> </p>
<p>天色渐暗，我们在下行的路上，山间的小溪汇聚了个小池塘，山水凉啊洗把脸，里面还有几条鱼： </p>
<p><img style="width: 583px; height: 519px;" alt="" src="http://blog.crfly.com/image.axd?picture=IMAGE_125.jpg" height="519" width="583" /> </p>
<p>路边的小花抓拍： </p>
<p><img style="width: 581px; height: 1068px;" alt="" src="http://blog.crfly.com/image.axd?picture=IMAGE_152.jpg" height="1068" width="581" /> <img style="width: 573px; height: 460px;" alt="" src="http://blog.crfly.com/image.axd?picture=_DSC3895.JPG" height="460" width="573" /> </p>
<p>给我同事的抓拍，林我们中下山中，潺潺流下的山泉： </p>
<p><img style="width: 574px; height: 377px;" alt="" src="http://blog.crfly.com/image.axd?picture=_DSC3899.JPG" height="377" width="574" /> </p>
<p>终于到山底了，在抓拍一个^_^，打车回家：） </p>
<p><img style="width: 576px; height: 475px;" alt="" src="http://blog.crfly.com/image.axd?picture=_DSC3903.JPG" height="475" width="576" /> </p>
<p>Touch Diamond实拍旅游真是太不错了。 </p>
</div>
<img src ="http://www.cnblogs.com/xiaoyin_net/aggbug/1236912.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41314/" target="_blank">[新闻]奥运核心资源被分食 搜狐央视网谁忽悠谁？</a>]]></description></item><item><title>指掌风云，秀玩美---Touch Diamond实拍照片王（上）</title><link>http://www.cnblogs.com/xiaoyin_net/archive/2008/07/06/1236890.html</link><dc:creator>ξ箫音ξ</dc:creator><author>ξ箫音ξ</author><pubDate>Sun, 06 Jul 2008 07:24:00 GMT</pubDate><guid>http://www.cnblogs.com/xiaoyin_net/archive/2008/07/06/1236890.html</guid><wfw:comment>http://www.cnblogs.com/xiaoyin_net/comments/1236890.html</wfw:comment><comments>http://www.cnblogs.com/xiaoyin_net/archive/2008/07/06/1236890.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xiaoyin_net/comments/commentRss/1236890.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xiaoyin_net/services/trackbacks/1236890.html</trackback:ping><description><![CDATA[<div class="text">
<p>Touch Diamond是多普达即将上市的最新顶级产品，今天畅游广州白云山更显它的威力！ </p>
<p>Touch Diamond配备有320万像素，自动对焦技术，着实让我秀了一把；因为轻薄的外形， </p>
<p>出差随身携带非常方便，名片实拍储存功能更为强悍，真不愧为多功能一体的掌上智能电脑。 </p>
<p>工作交际拍名片，识别率高，拍名片直接可以识别后储存成联系人，非常方便。如下图： </p>
<p><img height="452" alt="" src="http://blog.crfly.com/image.axd?picture=MP.jpg" width="248" /> </p>
<p>我出差广州居住的小区挺有特色，与北京不同的是，小区楼宇中心居然建有游泳池； </p>
<p>一天工作劳累的人们可以在傍晚游泳，嬉戏；可能是四季如春的气候，产生的一大小区特色； </p>
<p>旁边竹林，环境优雅。 </p>
<p><img style="width: 508px; height: 1240px" height="1240" alt="" src="http://blog.crfly.com/image.axd?picture=IMAGE_055.jpg" width="508" /> <img style="width: 509px; height: 470px" height="470" alt="" src="http://blog.crfly.com/image.axd?picture=IMAGE_056.jpg" width="509" /> </p>
<p>在工作闲暇之余，我们可以在竹林中用Touch Diamond的FM收音机的功能听听英语，听听单田芳评述...... </p>
<p>倍感惬意。&nbsp; Touch Diamond的FM功能，需要插多普达耳机，具有天线功能，清晰度和效果满不错的。 </p>
<p>如下图： </p>
<img style="width: 278px; height: 523px" height="523" alt="" src="http://blog.crfly.com/image.axd?picture=FM.JPG" width="278" /> </div>
 <img src ="http://www.cnblogs.com/xiaoyin_net/aggbug/1236890.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41314/" target="_blank">[新闻]奥运核心资源被分食 搜狐央视网谁忽悠谁？</a>]]></description></item><item><title>指掌风云，秀玩美---Touch Diamond 随身出行的好伴侣</title><link>http://www.cnblogs.com/xiaoyin_net/archive/2008/07/04/1235673.html</link><dc:creator>ξ箫音ξ</dc:creator><author>ξ箫音ξ</author><pubDate>Fri, 04 Jul 2008 06:57:00 GMT</pubDate><guid>http://www.cnblogs.com/xiaoyin_net/archive/2008/07/04/1235673.html</guid><wfw:comment>http://www.cnblogs.com/xiaoyin_net/comments/1235673.html</wfw:comment><comments>http://www.cnblogs.com/xiaoyin_net/archive/2008/07/04/1235673.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xiaoyin_net/comments/commentRss/1235673.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xiaoyin_net/services/trackbacks/1235673.html</trackback:ping><description><![CDATA[2008年6月24号公司派到广州出差，经过黄河，用Touch Diamond 照相实拍，好像经过了长江，
<p>不过是夜晚，没拍摄上；Touch Diamond采用的是320万像素，采用自动对焦技术，出行拍摄 </p>
<p>普通相片效果不错。今晚准备游玩珠江夜景，^_^。 </p>
<p>旅行中，玩游戏真不错；目前Mobile 6.1游戏软件众多，使得Touch Diamond功能更强；<br />
结合Touch Diamond小巧轻薄的特点更适合出行随身携带。</p>
<p>1、广州--路经黄河实拍。 </p>
<p><img style="width: 456px; height: 323px" height="323" alt="" src="http://blog.crfly.com/image.axd?picture=IMAGE_048.jpg" width="456" /> </p>
<p>2、广州老站 </p>
<p><img style="width: 522px; height: 455px" height="455" alt="" src="http://blog.crfly.com/image.axd?picture=IMAGE_052.jpg" width="522" /> </p>
<p>3、广州地铁 </p>
<p><img style="width: 519px; height: 377px" height="377" alt="" src="http://blog.crfly.com/image.axd?picture=IMAGE_053.jpg" width="519" /> </p>
<p>4、飞机游戏3D效果 </p>
<p><img height="234" alt="" src="http://blog.crfly.com/image.axd?picture=PPCGame1.jpg" width="419" /> </p>
<p>5、象棋游戏（棋力满强的） </p>
<p><img height="400" alt="" src="http://blog.crfly.com/image.axd?picture=PPCGame2.jpg" width="238" /> </p>
<p>6、明星麻将学员；7、雷电。 </p>
<img height="303" alt="" src="http://blog.crfly.com/image.axd?picture=PPCGame3.jpg" width="199" /> <img height="313" alt="" src="http://blog.crfly.com/image.axd?picture=PPCGame4.jpg" width="194" />
<p>下载地址： </p>
<p><a href="http://blog.crfly.com/file.axd?file=Majong+Academy.zip" rel="enclosure">Majong Academy.zip (173.15 kb)</a> </p>
<p><a href="http://blog.crfly.com/file.axd?file=%e9%9b%b7%e7%94%b5+for+PPC.zip" rel="enclosure">雷电 for PPC.zip (3.09 mb)</a> </p>
<img src ="http://www.cnblogs.com/xiaoyin_net/aggbug/1235673.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41313/" target="_blank">[新闻]微软推新型搜索技术"BrowseRank"挑战谷歌</a>]]></description></item><item><title>指掌风云，秀玩美---Touch Diamond 学习英语的王者</title><link>http://www.cnblogs.com/xiaoyin_net/archive/2008/06/26/1230352.html</link><dc:creator>ξ箫音ξ</dc:creator><author>ξ箫音ξ</author><pubDate>Thu, 26 Jun 2008 04:54:00 GMT</pubDate><guid>http://www.cnblogs.com/xiaoyin_net/archive/2008/06/26/1230352.html</guid><wfw:comment>http://www.cnblogs.com/xiaoyin_net/comments/1230352.html</wfw:comment><comments>http://www.cnblogs.com/xiaoyin_net/archive/2008/06/26/1230352.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnblogs.com/xiaoyin_net/comments/commentRss/1230352.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xiaoyin_net/services/trackbacks/1230352.html</trackback:ping><description><![CDATA[<div class="text">
<p>Touch Diamond智能手机是多普达至今为止顶级的产品，其轻薄和钻石般的墨色外形是有别与其他 </p>
<p>智能手机，功能强大，非常适合随身学习英语的一款机型。 </p>
<p>6月24日公司派去广州出差，乘坐一天一夜的火车（火车安全^_^），有Touch Diamond相伴没有感觉寂寞； </p>
<p>一路上用Touch Diamond玩游戏，打麻将、下象棋，学习英语....感觉很充实。 </p>
<p>1、Touch Diamond系统自带有金山词霸 for Pocket PC v1.2 Build 20080508是目前最新版本； </p>
<p>金山词霸PPC版，功能很强即时查词，中英——英中互译非常方便； </p>
<p><img style="width: 225px; height: 369px" alt="" src="http://blog.crfly.com/image.axd?picture=_DSC3778.jpg" width="225" height="369" /> </p>
<p>2、Touch Diamond系统安装的另一款学习英文软件，个人感觉也非常不错： </p>
<p>Dr.eye Mobile 3.0 for PPC&nbsp;，除了基本功能查词中英互译外，例句比词库丰富； </p>
<p>配有真人发声库（但是在微软Mobile 6.1系统中发声库没装上，可能我没太会用^_^）； </p>
<p><img alt="" src="http://blog.crfly.com/image.axd?picture=Touch+DiamondEY.jpg" width="225" height="437" /> </p>
<p>下载地址： </p>
<p><span style="font-size: 9pt; color: navy; font-family: 'Arial','sans-serif'">PPC</span><span style="font-size: 9pt; color: navy; font-family: 宋体">的下载地址为</span><span style="font-size: 9pt; color: navy; font-family: 'Arial','sans-serif'"><a href="ftp://mpuser:MpUser@203.94.2.140/DreyeMobile.exe">ftp://mpuser:MpUser@203.94.2.140/DreyeMobile.exe</a></span> </p>
<p><span style="font-size: 9pt; color: navy; font-family: 宋体">（主程序）</span><span style="font-size: 9pt; color: navy; font-family: 'Arial','sans-serif'"><a href="ftp://mpuser:MpUser@203.94.2.140/Dreye"><font color="#0000ff">ftp://mpuser:MpUser@203.94.2.140/Dreye</font></a> TrueVoice.CAB</span> </p>
<p><span style="font-size: 9pt; color: navy; font-family: 宋体">（真人发音）</span><span style="font-size: 9pt; color: navy; font-family: 'Arial','sans-serif'"><a href="ftp://mpuser:MpUser@203.94.2.140/DreyeTrueVoice60.exe"><font color="#0000ff">ftp://mpuser:MpUser@203.94.2.140/DreyeTrueVoice60.exe</font></a></span> </p>
<p><span style="font-size: 9pt; color: navy; font-family: 宋体">（真人发音）</span><span style="font-size: 9pt; color: navy; font-family: 'Arial','sans-serif'">&nbsp;</span><span style="font-size: 9pt; color: navy; font-family: 宋体">译典通</span><span style="font-size: 9pt; color: navy; font-family: 'Arial','sans-serif'">PPC</span><span style="font-size: 9pt; color: navy; font-family: 宋体">在多普达俱乐部，华军网，斑马网均有下载销售。</span> </p>
<p><span style="font-size: 9pt; color: navy; font-family: 'Arial','sans-serif'">PPC</span><span style="font-size: 9pt; color: navy; font-family: 宋体">在比特网评测</span><span style="font-size: 9pt; color: navy; font-family: 'Arial','sans-serif'"><a href="http://telecom.chinabyte.com/477/8136477.shtml" target="_parent">http://telecom.chinabyte.com/477/8136477.shtml</a></span><span style="font-size: 9pt; color: navy; font-family: 宋体">，可参考。</span> </p>
<p>3、用Touch Diamond随时随地学英语；结合<a style="color: #000000" class="l" onmousedown="return clk(0,'','','res','16','')" href="http://www.21stcentury.com.cn/article.shtml?sid=33108" target="_blank"><font color="#cc0033">UEI</font><font color="#551a8b">美联国际</font><font color="#cc0033">英语</font></a>会达到不错的效果； </p>
<p>Touch Diamond插入耳机，可以进入播放英语模式；我们搞IT的学习英语时间少，汗啊！ </p>
<p>UEI英语介绍：这是一套非常独特的英语听说训练光盘，总共25张，号称由美国48位顶尖 </p>
<p>语言专家开发（不知是真是假的啊），不需要看书、不需要背单词、背语法，只需要随意地跟着光盘听和说 </p>
<p>就能在很短时间里拥有一口流利纯正的口语（疑惑中....）。 <br />
方便您直接复制到Touch Diamond或者MP3播放器上学习。 </p>
<img alt="" src="http://blog.crfly.com/image.axd?picture=Touch+DiamondUI.jpg" width="309" height="592" /> </div>
 <img src ="http://www.cnblogs.com/xiaoyin_net/aggbug/1230352.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41312/" target="_blank">[新闻]2008年7月26日IT博客精选</a>]]></description></item><item><title>指掌风云，秀玩美---Touch Diamond 钻石中的王者</title><link>http://www.cnblogs.com/xiaoyin_net/archive/2008/06/20/1226304.html</link><dc:creator>ξ箫音ξ</dc:creator><author>ξ箫音ξ</author><pubDate>Thu, 19 Jun 2008 18:59:00 GMT</pubDate><guid>http://www.cnblogs.com/xiaoyin_net/archive/2008/06/20/1226304.html</guid><wfw:comment>http://www.cnblogs.com/xiaoyin_net/comments/1226304.html</wfw:comment><comments>http://www.cnblogs.com/xiaoyin_net/archive/2008/06/20/1226304.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.cnblogs.com/xiaoyin_net/comments/commentRss/1226304.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xiaoyin_net/services/trackbacks/1226304.html</trackback:ping><description><![CDATA[<br />
&nbsp;&nbsp;&nbsp;&nbsp; 在基于Windows Mobile 6.1的多普达Touch Diamond智能手机发布之际，微软联合多普达<br />
公司举办的&#8220;指掌风云，秀玩美——Windows Mobile 智能达人汇&#8220;活动，有幸成为其中之一的爱<br />
好者Windows Mobile发烧玩家；<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp; 在Touch Diamond手机正式上市之前的一个月内，我在第一时间便率先拿到并试用这款颇受业<br />
内和消费者（我也期待N久了...呜呜呜...内心激动的噼里啪啦的,^_^）期待的Windows Mobile<br />
智能手机。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 外观上感觉做工华丽、精致、酷炫、设计人性化十足，联系人的头像定制，很酷的切换联系人<br />
的功能......
<p>
&nbsp;&nbsp;  <img src="http://blog.crfly.com/image.axd?picture=HTCTouchDiamond.jpg" alt="" />
</p>
<p>
( 没有相机，D600照的图惨，汗啊...，借助Autumoon哥们的图炫一个；以后在放更多的原创应</p>
<p>用截图^_^)
</p>
<p>
<img src="file:///C:/Users/ADMINI%7E1/AppData/Local/Temp/moz-screenshot-2.jpg" alt="" /> &nbsp; &nbsp;&nbsp; 第一感觉运行速度快，在启动程序的时候就很明显，即便是启动占用资源很大的&#8220;Dr.eye译典通</p>
<p>&#8221;等软件几乎也就是1.2秒钟左右就开启了。对比起来想起我的老爷车D600...呜呜呜...伤心啊...
</p>
<p>
Touch Diamond 智能是旗舰产品它是目前为止其顶级配置，一流工艺，个性化的配置，并且互为</p>
<p>战略合作伙伴的多普达与HTC共同表示：&#8220;这款划时代意义的杰作将为广大消费者带来最佳的时尚气</p>
<p>息、人文体验以及科技魅力。&#8221;
</p>
<p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 个人感受，Touch  Diamond的设计确实堪称高端智能手机的重大飞跃。HTC首创的TouchFLO</p>
<p>&#174;
3D用户界面，以最直观感性的方式诠释出人机间的互动体验，并搭载了最新的微软Windows Mobile</p>
<p> 6.1
Professional操作系统，超强的硬件配置让Touch Diamond被业内誉为&#8220;钻石王者&#8221;，可谓实至</p>
<p>名归。
</p>
<p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 现在我们来看看Touch Diamond的硬件配置，对于Touch
Diamond的配置应该说是迄今为止</p>
<p>多普达系列手机中最高的了，就处理器方面采用了高通7206A
528MHz的处理器，光看处理器的主频</p>
<p>就已经非常高了（在PPC中），此外，这颗处理器还是ARM11构架的，我们早先接触的Intel PXA272</p>
<p>或者是OMAP850之类的处理器都是ARM9构架的，ARM11和ARM9的差别就相于奔腾2和奔腾1的差</p>
<p>距一样。因此Touch
Diamond的528比起老的采用Xscale机型来说运行的速度更快。当然运行速度快</p>
<p>和大内存也是密不可分的，Touch
Diamond采用了192MB的程序运行内存，也是目前我们使用过的</p>
<p>机型中运行内存最大的机型了。528MHz
CPU，内置4GB存储空间，320万像素自动对焦摄像头，GPS</p>
<p>全球卫星定位导航模块，TouchDiamond以令人目眩的顶级配置，彰显出王者风范。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不仅如此，为了提升产品的用户体验，这次Touch Diamond还装载有HTC开发的新一代的Touch <br />
</p>
<p>3D触控界面，通过更炫目的操作方式，让用户可轻松与联络人、信息、电子邮件、照片、音乐、气象等</p>
<p>信息之间相互连结。此外，Touch Diamond这次也加入了方向感应器，用户在通过HSDPA/HSUPA高</p>
<p>速网络移动上网的时候，不仅可以通过新的操作界面单手缩放或平移网页，只需将
手机向侧边翻转，就可</p>
<p>以自动将网页显示模式进行转换。
</p>
<p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Diamond手感设计的非常好，机身纤薄轻便，但却拥有相当强悍的功能规格。装载有2.8英寸VGA</p>
<p>（480&#215;640像素）分辨率的TFT液晶屏幕，并提供了当前
Windows Mobile 手机最高端的硬件规格。内</p>
<p>置有与索尼爱立信XPERIA X1相同的528 MHz 主频的Qualcomm
MSM7201A处理器（汗一个），拥有</p>
<p>256MB ROM和192MB的RAM
超高容量内存，并具备海量的4GB储存空间（不过手机外部本身没留扩展</p>
<p>卡插槽），不论是执行程序或是装载文件都更游刃有余。Touch Diamond还是一款支持 WCDMA/HSPA <br />
</p>
<p>900/2100MHz双频的3G手机，支持HSPA的HTC
Diamond可高达7.2Mbps的峰值下行速率。 <br />
</p>
<br />
<p>
&nbsp;<img src="http://blog.crfly.com/image.axd?picture=Album+Sample.jpg" alt="" /></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; （Touch Diamond内部自带的图片，很Cool吧，^_^）
</p>
<p>
&nbsp;&nbsp;&nbsp;&nbsp; 苹果的Phone预计在2008年（最快可能在第三个季度）发布3G版的IPhone,所以想购买一款集触摸屏、</p>
<p>网页浏览、3G能于一体的手机，我们又多了一个选择，可以不用再等传闻中的3G版IPhone了，Touch <br />
</p>
<p>Diamond满足了这种需求 --个人觉得它吸取了IPhone等智能手机的很多优点，并且突出了很多人性化交</p>
<p>互优点，感觉像是&#8220;模仿&#8220;了苹果^_^，并可提供快速3G网络接入的突破性装备。
</p>
<p>
&nbsp;&nbsp;&nbsp;&nbsp; 在对第三方软件的开发支持上微软Windows Mobile 6.1
Professional前不久已经发布比较完备的</p>
<p>6.1SDK，支持第三方态度会更加明晰，并且走到了其他厂商的前面。
</p>
<p>
&nbsp;&nbsp;&nbsp; 更多的精彩的功能和应用我会继续向大家介绍&#8230;&#8230;待续中&#8230;&#8230;
</p>
<strong><br />
</strong><span class="STYLE15"><strong>
</strong></span>
<img src ="http://www.cnblogs.com/xiaoyin_net/aggbug/1226304.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41311/" target="_blank">[新闻]微软每年向Apache捐10万美元支持开源软件</a>]]></description></item><item><title>基于微软Synchronization Services双向同步技术在企业项目中的架构应用研究</title><link>http://www.cnblogs.com/xiaoyin_net/archive/2008/06/17/1223914.html</link><dc:creator>ξ箫音ξ</dc:creator><author>ξ箫音ξ</author><pubDate>Tue, 17 Jun 2008 06:29:00 GMT</pubDate><guid>http://www.cnblogs.com/xiaoyin_net/archive/2008/06/17/1223914.html</guid><wfw:comment>http://www.cnblogs.com/xiaoyin_net/comments/1223914.html</wfw:comment><comments>http://www.cnblogs.com/xiaoyin_net/archive/2008/06/17/1223914.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cnblogs.com/xiaoyin_net/comments/commentRss/1223914.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xiaoyin_net/services/trackbacks/1223914.html</trackback:ping><description><![CDATA[摘要: 项目应用场景： 某客户是一个大型集团企业的信息部门，掌管着企业几百台服务器，并且以后会不断扩充； 为了更好的维护信息办的服务器；信息部门需要开发一套维护系统，来记录各个服务器的相关状态信息 （如，IP、所安装在服务器的应用系统和相关信息等），便于维护和查询；客户维护人员可以携带笔记本 脱机即时编写维修服务器相关记录信息（增、删、查、改），客户端联网即可自动同步到服务器最新维护数据。客户要求实现服务&nbsp;&nbsp;<a href='http://www.cnblogs.com/xiaoyin_net/archive/2008/06/17/1223914.html'>阅读全文</a><img src ="http://www.cnblogs.com/xiaoyin_net/aggbug/1223914.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41310/" target="_blank">[新闻]AOL将关闭3个网站以降低成本 集中发力广告</a>]]></description></item><item><title>发布最新C#3.5开发的ReSharper4.0 for VS2005/2008 注册机</title><link>http://www.cnblogs.com/xiaoyin_net/archive/2008/06/17/1223603.html</link><dc:creator>ξ箫音ξ</dc:creator><author>ξ箫音ξ</author><pubDate>Tue, 17 Jun 2008 03:10:00 GMT</pubDate><guid>http://www.cnblogs.com/xiaoyin_net/archive/2008/06/17/1223603.html</guid><wfw:comment>http://www.cnblogs.com/xiaoyin_net/comments/1223603.html</wfw:comment><comments>http://www.cnblogs.com/xiaoyin_net/archive/2008/06/17/1223603.html#Feedback</comments><slash:comments>20</slash:comments><wfw:commentRss>http://www.cnblogs.com/xiaoyin_net/comments/commentRss/1223603.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xiaoyin_net/services/trackbacks/1223603.html</trackback:ping><description><![CDATA[ReSharper是一款微软Microsoft Visual Studio 2005 和Microsoft Visual Studio
.NET
2008和的插件，也是目前ReSharper4.0-VS2005和ReSharper4.0-VS2008编程插件中最强的插件之一,它提供了智能
C#辅助编码功能和实时错误显示功能，并支持重构。提供流行C#代码智能帮助,高亮度显示实时纠错以及重新参数化等功能。ReSharper为C#开发人
员提供许多能够有效提高生产力的功能，这些功能已被成千上万使用IntelliJ
IDEA的Java程序员所采用。ReSharper为C#开发人员提供了许多强有力的特性，极大地提高了开发效率。
<div align="left">
<br />
<img src="http://blog.crfly.com/image.axd?picture=ReSharper1.jpg" alt="" />
</div>
<div align="left">
&nbsp;
</div>
<div align="left">
<img src="http://blog.crfly.com/image.axd?picture=ReSharper2.jpg" alt="" />
</div>
<div align="left">
&nbsp;
</div>
<div align="left">
<img src="http://blog.crfly.com/image.axd?picture=ReSharper3.jpg" alt="" />
</div>
<div align="left">
&nbsp;
</div>
<div align="left">
&nbsp;
</div>
<div align="left">
&nbsp;
使用说明：
</div>
<p>
&nbsp;&nbsp; 1、此注册机算是网络上最豪华的注册机，界面漂亮功能强大；有微型播放器功能,并支持mp3,wma等通用格式。<br />
&nbsp;&nbsp; 2、程序启动后会自动播放&#8220;光&#8221;歌曲，并转到音乐库&#8221;界面，可以在&#8220;播放控制&#8221;选项采取相应操作。<br />
&nbsp;&nbsp;
3、如使用ReSharper 4.0新版注册机，请切换到注册码按钮，输入你自己想要的名字，按生成按钮生成密匙。启动VS
2005/2008菜单，选择ReSharper菜单－License Information－Enter
License，输入用户名和密匙Expiration Date:never 注册成功。<br />
&nbsp;&nbsp; 4、切换到"音乐库"按钮标签，即可选择你要播放的歌曲。如需要添加歌曲，点击歌曲表，按右鼠标，菜单中选择你要播放的文件夹和音乐文件。<br />
&nbsp;&nbsp; 5、有的ReSharper4.0-VS2008版本会没有注册选项，但是你注册过ReSharper4.0-VS2008版本后，2008版本即可解除限制。<br />
&nbsp;&nbsp; <br />
程序特色如下:<br />
1.语法错误高亮显示<br />
2.搜索<br />
3.代码助手<br />
4.自动更正<br />
5.活动模板<br />
6.代码格式化<br />
7.重构<br />
8.代码生成<br />
9.其它特征<br />
10.代码导航<br />
11.代码完成<br />
<br />
&nbsp;&nbsp; 此次注册机是采用Microsoft Visual Studio 2008最新开发技术设计,所以需要安装最新的Microsoft .NET Framework v3.5 正式版和Windows Media Player9.0以上.
</p>
<p>
&nbsp;&nbsp; ReSharper 4.0 for VS2005/2008注册机是目前位置针对ReSharper 4.0版本最好的注册机，能采用破解RSA技术，生成密匙能完全解除程序本身功能和时间的限制。
</p>
<p>
&nbsp;&nbsp; 此程序由本人用.net3.5编写完成。希望此次公布能够为广大.net编程爱好者更多的帮助。如遇到什么问题，请到箫心论坛http://it.crfly.com/ 发帖咨询。&nbsp;
</p>
<p>
&nbsp;ReSharper4.0
</p>
<p>
下载地址：http://download.jetbrains.com/resharper/ReSharperSetup.4.0.msi
</p>
<p>
注册机：&nbsp;
</p>
<p>
<a rel="enclosure" href="http://blog.crfly.com/file.axd?file=crReSharper4.zip">crReSharper4.zip (3.67 mb)</a>
</p>
<img src ="http://www.cnblogs.com/xiaoyin_net/aggbug/1223603.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41310/" target="_blank">[新闻]AOL将关闭3个网站以降低成本 集中发力广告</a>]]></description></item><item><title>发布google在线翻译程序（附源码）</title><link>http://www.cnblogs.com/xiaoyin_net/archive/2008/04/14/1153000.html</link><dc:creator>ξ箫音ξ</dc:creator><author>ξ箫音ξ</author><pubDate>Mon, 14 Apr 2008 08:58:00 GMT</pubDate><guid>http://www.cnblogs.com/xiaoyin_net/archive/2008/04/14/1153000.html</guid><wfw:comment>http://www.cnblogs.com/xiaoyin_net/comments/1153000.html</wfw:comment><comments>http://www.cnblogs.com/xiaoyin_net/archive/2008/04/14/1153000.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cnblogs.com/xiaoyin_net/comments/commentRss/1153000.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xiaoyin_net/services/trackbacks/1153000.html</trackback:ping><description><![CDATA[<div class="postcontent">
<div class="postbody">
<p>需要的朋友可以下载，这几天看到园子里有几个兄弟编写Google的在线翻译；<br />
我也凑一下热闹，网络收集了些资源，自己重新加工了一下，希望能对园子里的朋友有用。<br />
<br />
功能：支持简体中文、法语、德语、意大利语、西班牙玉，葡萄牙语；<br />
大家可以根据自己的需要扩充。<br />
<br />
采用<font face="Verdana">Microsoft Visual Studio 2008</font>设计，需要3.5运行库。 </p>
<p><img alt="" src="http://blog.crfly.cn/image.axd?picture=GoogleTranslator.jpg" height="504" width="559" /><br />
<br />
资源类： </p>
<p><font face="Verdana">/* &#8226;————————————————————————————————&#8226;<br />
&nbsp;&nbsp; | Email:gordon.gao@achievo.com |<br />
&nbsp;&nbsp; | amend:Gordon（高阳）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp; | 2008.4.14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp; &#8226;————————————————————————————————&#8226; */</font> </p>
<p><font face="Verdana">using System;<br />
using System.IO;<br />
using System.Net;<br />
using System.Text;<br />
using System.Threading;</font> </p>
<p><font face="Verdana">namespace RavSoft<br />
{<br />
&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp; /// A framework to expose information rendered by a URL (i.e. a "web<br />
&nbsp;&nbsp;&nbsp; /// resource") as an object that can be manipulated by an application.<br />
&nbsp;&nbsp;&nbsp; /// You use WebResourceProvider by deriving from it and implementing<br />
&nbsp;&nbsp;&nbsp; /// getFetchUrl() and optionally overriding other methods.<br />
&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp; abstract public class WebResourceProvider<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Default constructor.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public WebResourceProvider()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reset();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /////////////<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Properties</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Gets and sets the user agent string.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Agent<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { return m_strAgent; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { m_strAgent = (value == null ? "" : value); }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Gets and sets the referer string.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Referer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { return m_strReferer; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { m_strReferer = (value == null ? "" : value); }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Gets and sets the minimum pause time interval (in mSec).<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public int Pause<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { return m_nPause; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { m_nPause = value; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Gets and sets the timeout (in mSec).<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public int Timeout<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { return m_nTimeout; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { m_nTimeout = value; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Returns the retrieved content.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;value&gt;The content.&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Content<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { return m_strContent; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Gets the fetch timestamp.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public DateTime FetchTime<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { return m_tmFetchTime; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Gets the last error message, if any.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string ErrorMsg<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { return m_strError; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /////////////<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Operations</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Resets the state of the object.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void reset()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_strAgent = "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_strReferer = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_strError = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_strContent = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_httpStatusCode = HttpStatusCode.OK;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_nPause = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_nTimeout = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_tmFetchTime = DateTime.MinValue;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Fetches the web resource.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void fetchResource()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Initialize the provider - quit if initialization fails<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!init())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Main loop<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bool bOK = false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string url = getFetchUrl();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getContent(url);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bOK = (m_httpStatusCode == HttpStatusCode.OK);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (bOK)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parseContent();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (bOK &amp;&amp; continueFetching());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //////////////////<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Virtual methods</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Provides the derived class with an opportunity to initialize itself.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;returns&gt;true if the operation succeeded, false otherwise.&lt;/returns&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected virtual bool init()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { return true; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Returns the url to be fetched.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;returns&gt;The url to be fetched.&lt;/returns&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; abstract protected string getFetchUrl();</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Retrieves the POST data (if any) to be sent to the url to be fetched.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// The data is returned as a string of the form &amp;quot;arg=val [&amp;amp;arg=val]...&amp;quot;.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;returns&gt;A string containing the POST data or null if none.&lt;/returns&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected virtual string getPostData()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { return null; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Provides the derived class with an opportunity to parse the fetched content.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected virtual void parseContent()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Informs the framework that it needs to continue fetching urls.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;returns&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// true if the framework needs to continue fetching urls, false otherwise.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/returns&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected virtual bool continueFetching()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { return false; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ///////////////////////////<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Implementation (members)</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;User agent string used when making an HTTP request.&lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string m_strAgent;</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;Referer string used when making an HTTP request.&lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string m_strReferer;</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;Error message.&lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string m_strError;</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;Retrieved.&lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string m_strContent;</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;HTTP status code.&lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpStatusCode m_httpStatusCode;</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;Minimum number of mSecs to pause between successive HTTP requests.&lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int m_nPause;</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;HTTP request timeout (in mSecs).&lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int m_nTimeout;</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;Timestamp of last fetch.&lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DateTime m_tmFetchTime;</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ///////////////////////////<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Implementation (methods)</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Retrieves the content of the url to be fetched.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;param name="url"&gt;Url to be fetched.&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void getContent<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (string url)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Pause, if necessary<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (m_nPause &gt; 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int nElapsedMsec = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Determine the time elapsed since the last fetch (if any)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (nElapsedMsec == 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (m_tmFetchTime != DateTime.MinValue)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<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; TimeSpan tsElapsed = m_tmFetchTime - DateTime.Now;<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; nElapsedMsec = (int)tsElapsed.TotalMilliseconds;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Pause 100mSec increment if necessary<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int nSleepMsec = 100;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (nElapsedMsec &lt; m_nPause)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thread.Sleep(nSleepMsec);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nElapsedMsec += nSleepMsec;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (nElapsedMsec &lt; m_nPause);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Set up the fetch request<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strUrl = url;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!strUrl.StartsWith("http://"))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strUrl = "http://" + strUrl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strUrl);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; req.AllowAutoRedirect = true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; req.UserAgent = m_strAgent;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; req.Referer = m_strReferer;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (m_nTimeout != 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; req.Timeout = m_nTimeout;</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Add POST data (if present)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strPostData = getPostData();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (strPostData != null)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ASCIIEncoding asciiEncoding = new ASCIIEncoding();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] postData = asciiEncoding.GetBytes(strPostData);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; req.Method = "POST";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; req.ContentType = "application/x-www-form-urlencoded";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; req.ContentLength = postData.Length;</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stream reqStream = req.GetRequestStream();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reqStream.Write(postData, 0, postData.Length);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reqStream.Close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Fetch the url - return on error<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_strError = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_strContent = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpWebResponse resp = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_tmFetchTime = DateTime.Now;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resp = (HttpWebResponse)req.GetResponse();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception exc)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (exc is WebException)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WebException webExc = exc as WebException;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_strError = webExc.Message;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; finally<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (resp != null)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_httpStatusCode = resp.StatusCode;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font> </p>
<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Store retrieved content<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stream stream = resp.GetResponseStream();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StreamReader streamReader = new StreamReader(stream);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_strContent = streamReader.ReadToEnd();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Read failure occured - nothing to do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
<br />
调用：<br />
<br />
</font><font face="Verdana">
<p><font face="Verdana">&nbsp;&nbsp; private void OnTranslate(object sender, System.EventArgs e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Get English text - complain if none<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strEnglish = editEnglish.Text.Trim();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (strEnglish.Equals(String.Empty))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show("Please enter the text to be translated.",<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; "GoogleTranslatorForm Demo",<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; MessageBoxButtons.OK,<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; MessageBoxIcon.Warning);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; editEnglish.SelectAll();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; editEnglish.Focus();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Get translation mode<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GoogleTranslator.Mode mode = GoogleTranslator.Mode.EnglishToFrench;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GoogleTranslator.Mode reverseMode = GoogleTranslator.Mode.FrenchToEnglish;</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (radioGerman.Checked)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mode = GoogleTranslator.Mode.EnglishToGerman;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reverseMode = GoogleTranslator.Mode.GermanToEnglish;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (radioItalian.Checked)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mode = GoogleTranslator.Mode.EnglishToItalian;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reverseMode = GoogleTranslator.Mode.ItalianToEnglish;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (radioSpanish.Checked)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mode = GoogleTranslator.Mode.EnglishToSpanish;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reverseMode = GoogleTranslator.Mode.SpanishToEnglish;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (radioPortugese.Checked)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<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; mode = GoogleTranslator.Mode.EnglishToPortugese;<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; reverseMode = GoogleTranslator.Mode.PortugeseToEnglish;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<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; if (radioChina.Checked)<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; {<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; mode = GoogleTranslator.Mode.EnglishToChina;<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; reverseMode = GoogleTranslator.Mode.ChinaToEnlish;<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; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Translate the text and update the display<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lblStatus.Text = "Translating...";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lblStatus.Update();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GoogleTranslator gt = new GoogleTranslator(mode);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strTranslation = gt.translate(strEnglish);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; editTranslation.Text = strTranslation;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; editTranslation.Update();</font> </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lblStatus.Text = "Reverse translating...";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lblStatus.Update();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gt = new GoogleTranslator(reverseMode);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strReverseTranslation = gt.translate(strTranslation);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; editReverseTranslation.Text = strReverseTranslation;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lblStatus.Text = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
<br />
详细的我就不说了，自己开源码吧。</font> </p>
</font></div>
<p><a href="http://blog.crfly.cn/file.axd?file=GoogleTranslator.src.rar" rel="enclosure">GoogleTranslator.src.rar (96.09 kb)</a> <br />
</p>
<p><a href="http://mp3.baidu.com/singerlist/%CD%F5%E8%DD%F6%CE.html" target="_blank"><br />
</a> </p>
</div>
<img src ="http://www.cnblogs.com/xiaoyin_net/aggbug/1153000.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41309/" target="_blank">[新闻]谷歌网页索引数量突破1万亿个</a>]]></description></item><item><title>北京俱乐部2008.04.12活动,“微软新技术与架构设计应用"PPT</title><link>http://www.cnblogs.com/xiaoyin_net/archive/2008/04/13/1150981.html</link><dc:creator>ξ箫音ξ</dc:creator><author>ξ箫音ξ</author><pubDate>Sun, 13 Apr 2008 01:16:00 GMT</pubDate><guid>http://www.cnblogs.com/xiaoyin_net/archive/2008/04/13/1150981.html</guid><wfw:comment>http://www.cnblogs.com/xiaoyin_net/comments/1150981.html</wfw:comment><comments>http://www.cnblogs.com/xiaoyin_net/archive/2008/04/13/1150981.html#Feedback</comments><slash:comments>24</slash:comments><wfw:commentRss>http://www.cnblogs.com/xiaoyin_net/comments/commentRss/1150981.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xiaoyin_net/services/trackbacks/1150981.html</trackback:ping><description><![CDATA[<p align="justify"><font face="Verdana"><font face="Verdana"><font face="Verdana"><font face="Verdana"><img style="width: 482px; height: 362px" height="362" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xiaoyin_net/IMG_0018.JPG" width="482" border="0" /></font></font><br />
<br />
内容课程大概包括：<br />
<br />
为什么开发管理者需要了解多种框架<br />
几种常见架构特性介绍<br />
通向架构师之门－Pet Shop架构设计<br />
Web Client Software Factory（WCSF）介绍<br />
WCSF(MVP)架构分析与应用<br />
VS2008中Linq的可视化设计<br />
经验分享<br />
参考资源<br />
<br />
北京俱乐部宗旨是为了更多的.net IT人士无私的奉献，提供一起学<br />
习交流的平台；团结了北京地区MVP与相关技术人员互动的交流技<br />
术和朋友的平台；<br />
<br />
通过各行各业的专家互动，相互学习最新技术和解决工作中带来的技术<br />
和职业规划等困惑；从而扩展了您的职业规划和更多发展机会的平台；<br />
欢迎更多的IT相关人员参加。<br />
<br />
再次感谢老葛、DuDu等朋友无私的奉献。<br />
<br />
另外，北京俱乐部活动后，老葛、王涛和北京俱乐部的MVP，<br />
为博客园另一本图书做了宣传；<br />
<br />
</font><font face="Verdana"></p>
<p>祝贺<a title="Anytao的博客" href="http://anytao.cnblogs.com/" target="_blank">王涛(Anytao)</a>兄弟8个月的创作终于完成，并祝愿图书畅销； </p>
<p><span class="book_press">出版社:</span>电子工业出版社 </p>
<p><span class="book_comment">点评:</span>本书内容通俗易懂，形象生动，以清晰的思路和流畅的文笔揭示了.NET华丽面纱下的奇妙世界， </p>
<p>按照认知规律详尽剖析了众多对初学者而言难以理解的概念。 </p>
<p>&nbsp;另外我有意为博客园增加一本图书，项目、团队管理和架构设计内容的图书；<br />
我和俱乐部的MVP们也在积极准备着。 </p>
<p align="justify"></font></p>
<p><a href="http://blog.crfly.cn/file.axd?file=MicrosoftNet.zip" rel="enclosure">MicrosoftNet.zip (844.31 kb)</a> </p>
</font>
<img src ="http://www.cnblogs.com/xiaoyin_net/aggbug/1150981.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41308/" target="_blank">[新闻]预装 Ubuntu 8.04 的 Dell 笔记本发售</a>]]></description></item><item><title>发布CodeBuild.Net代码自动生成器 V2008 2.01(Vs2008)和架构实例源码Demo</title><link>http://www.cnblogs.com/xiaoyin_net/archive/2008/03/16/1108782.html</link><dc:creator>ξ箫音ξ</dc:creator><author>ξ箫音ξ</author><pubDate>Sun, 16 Mar 2008 13:56:00 GMT</pubDate><guid>http://www.cnblogs.com/xiaoyin_net/archive/2008/03/16/1108782.html</guid><wfw:comment>http://www.cnblogs.com/xiaoyin_net/comments/1108782.html</wfw:comment><comments>http://www.cnblogs.com/xiaoyin_net/archive/2008/03/16/1108782.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://www.cnblogs.com/xiaoyin_net/comments/commentRss/1108782.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xiaoyin_net/services/trackbacks/1108782.html</trackback:ping><description><![CDATA[<font face="Verdana">CodeBuild.Net代码自动生成器 V2008 2.01(Vs2008)<br />
<font face="Verdana">Microsoft Visual Studio 2008开发，需要安装运行库。<br />
<br />
支持生成多标签切换等功能，方便代码生成，以后会抽时间把更多的架构模式与新特性增加进去。<br />
另外，包括<font face="Verdana">架构实例源码Demo</font><br />
<br />
<img style="width: 699px; height: 423px" height="423" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xiaoyin_net/CodeBuild.Net.jpg" width="699" border="0" /></font></font>&nbsp;<br />
<br />
<p><a href="http://blog.crfly.cn/file.axd?file=CodeBuildDemo.rar" rel="enclosure">CodeBuildDemo.rar (1.67 mb)</a> </p>
<p><a href="http://blog.crfly.cn/file.axd?file=CodeBuild.Net%e4%bb%a3%e7%a0%81%e8%87%aa%e5%8a%a8%e7%94%9f%e6%88%90%e5%99%a8+V2008+2.01.zip" rel="enclosure">CodeBuild.Net代码自动生成器 V2008 2.01.zip (1.05 mb)</a> <br />
<br />
俺要下载：<font face="Verdana">http://www.ayxz.com/soft/13764.htm</font></p>
<img src ="http://www.cnblogs.com/xiaoyin_net/aggbug/1108782.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41307/" target="_blank">[新闻]金山:360的免费杀毒只能是短期行为</a>]]></description></item><item><title>Windows Server 2008 的十四大最新功能特性技术总结</title><link>http://www.cnblogs.com/xiaoyin_net/archive/2008/03/09/1097927.html</link><dc:creator>ξ箫音ξ</dc:creator><author>ξ箫音ξ</author><pubDate>Sun, 09 Mar 2008 15:08:00 GMT</pubDate><guid>http://www.cnblogs.com/xiaoyin_net/archive/2008/03/09/1097927.html</guid><wfw:comment>http://www.cnblogs.com/xiaoyin_net/comments/1097927.html</wfw:comment><comments>http://www.cnblogs.com/xiaoyin_net/archive/2008/03/09/1097927.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/xiaoyin_net/comments/commentRss/1097927.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xiaoyin_net/services/trackbacks/1097927.html</trackback:ping><description><![CDATA[<p><font face="Verdana">刚刚安装了Windows Server 2008，简单写一下对微软最新产品的体验。</font></p>
<p><font face="Verdana">1、定制的服务器Server Core。从Windows Server 2008开始，系统中那些不是每个用户都用到的功能将会变成可选安装包，取而</font></p>
<p><font face="Verdana">代之的是预先定义好的系统角色(借鉴Linux的优点)。 </font></p>
<p><font face="Verdana">Server Core是Windows Server 2008中一种全新的安装模式，是针对每个版本的核心服务的安装。Server Core只安装Windows </font></p>
<p><font face="Verdana">Server 2008中最核心的服务程序，并且没有图形界面，所有的操作全部由命令行来完成。Server Core不仅安装的时间要比完全版</font></p>
<p><font face="Verdana">本的Windows Server 2008快很多，由于没有可能用不到的服务和图形界面，Server Core也能为服务器争取更多的性能。如果你的</font></p>
<p><font face="Verdana">服务器是配置好后基本不动的那种，例如DNS服务器、WWW服务器、Data服务器等等，那Server Core就是你最好的选择，你可以把</font></p>
<p><font face="Verdana">Server Core看作是微软为特定服务器开发的定制版本。 </font></p>
<p><font face="Verdana">2、功能强大的Powershell </font></p>
<p><font face="Verdana">Powershell是Windows Server 2008中内置的一个命令行工具，但实际上能够完全取代图形界面的管理工具。Powershell不仅仅是</font></p>
<p><font face="Verdana">Cmd命令的升级，其重要改进有三点：第一，Powershell比Cmd拥有更多的命令，在图形界面中可以完成的功能，Powershell都可以</font></p>
<p><font face="Verdana">实现。这一点熟悉Windows Server 2003的朋友应该很清楚，甚至有些无法用图形界面完成的功能，通过Powershell也可以轻松实</font></p>
<p><font face="Verdana">现。第二，Powershell更好的支持脚本管理，这让服务器的管理效率提高了很多。比如建立新账户这样一个简单的操作，一般是通</font></p>
<p><font face="Verdana">过图形界面来完成的，但是如果现在需要建立1万个新账号或100万个新账号，恐怕用图形界面建立就需要很长很长的时间了。这种</font></p>
<p><font face="Verdana">情况下我们可以建立一个脚本，将变量设置成1到100万，再通过Powershell导入脚本运行就可以了。第三，Powershell可以和微软</font></p>
<p><font face="Verdana">今后的几乎所有产品进行衔接。例如对微软Exchange的管理，就可以通过Powershell管理Exchange设置好的脚本来完成。如果将</font></p>
<p><font face="Verdana">Exchange的典型问题解决方案做成脚本，那服务器就可以通过Powershell来完成众多服务器的远程监控和自动解决问题了。</font></p>
<p><font face="Verdana">3、图形的管理中心Server Manager(Windows Server 2008功能异常强大的配置中心) </font></p>
<p><font face="Verdana">Windows Server 2008的Administrator的登录口令安全性提高了很多，你必须使用数字+字母+特出字符或者区分大小写的组合进行</font></p>
<p><font face="Verdana">口令的设置。</font></p>
<p><font face="Verdana">除了Powershell可以对Windows Server 2008进行管理外，Server Manager也可以通过图形的界面对Windows Server 2008进行全面</font></p>
<p><font face="Verdana">的管理。Server Manager的改进之处在于将Windows Server 2003中的各类管理工具，集中展示在一个管理平台之中，大大方便了</font></p>
<p><font face="Verdana">用户对Windows Server 2008的控制。Server Manager还更多的使用了欲知功能来猜测用户的点击意图，以前我们往往会出现想完</font></p>
<p><font face="Verdana">成一个功能，但不记得去那个界面进行设置的情况。所有Server Manager大量的使用超链接，只要用户按照超链接的提示点击，就</font></p>
<p><font face="Verdana">可以找到想要功能的界面了。</font></p>
<p><font face="Verdana">4、更细致的账户权限划分 </font></p>
<p><font face="Verdana">Windows Server 2008在账户权限的划分上也做了很大的调整。在使用Windows Server 2003的时候经常会出现账户权限过大的问题</font></p>
<p><font face="Verdana">，如果赋予一个账户几个权限后往往就要将这个账户放到Administrator的组中，这样这个账户就得到了Administrator组的所有权</font></p>
<p><font face="Verdana">限了。Windows Server 2008在账户权限的划分上更细致了，可以让管理员准确控制账户的权限和更好的管理。 </font></p>
<p><font face="Verdana">5、脱胎换骨的IIS7.0 </font></p>
<p><font face="Verdana">一直以来微软的用户对IIS6.0和IIS5.0都不是很满意，也一直以来期盼微软能发布一个功能更全、性能更强大的IIS服务平台。用</font></p>
<p><font face="Verdana">微软的话来讲，IIS7.0是在IIS6.0的基础上作了翻天覆地的改进，现在的IIS7.0可以算是一个成熟的强大的Web平台了。首先，</font></p>
<p><font face="Verdana">IIS7.0的所有功能全部模块化，而IIS6.0的所有功能是1个模块，这在IIS7.0中，某一个模块受损，不会影响其他模块提供的服务</font></p>
<p><font face="Verdana">的运行。其次，IIS7.0中内部文件的复制技术采用了X拷贝技术，效率比IIS6.0提升了很多，尤其是在大数据量的拷贝情况下提升</font></p>
<p><font face="Verdana">更为明显。Internet Information Services 7.0 简化了 Web 服务器管理。该模块化平台提供了简化的、基于任务的管理界面、</font></p>
<p><font face="Verdana">更好的跨站点控制、安全增强以及集成的 Web 服务健康管理。</font></p>
<p><font face="Verdana">Windows Server 2008 为 Web 发布提供了一个统一平台，该平台集成了 Internet Information Services (IIS) 7.0、ASP.NET、</font></p>
<p><font face="Verdana">Windows 通信基础、Windows Workflow Foundation 和 Windows SharePoint Services 3.0。IIS 7.0 是对现有 Windows Web 服</font></p>
<p><font face="Verdana">务器的主要增强在平台技术集成中，扮演着中心角色。IIS 7.0 通过委派管理、增强的安全性和缩小的攻击面、Web 服务的集成应</font></p>
<p><font face="Verdana">用程序和健康管理以及改进的管理工具等关键功能，帮助开发人员和管理员等最大限度地提高对网络/Internet 接口的控制。</font></p>
<p><font face="Verdana">6、Windows Server虚拟化(全面的虚拟化技术)。微软的Windows Server 2008中将会集成虚拟化功能。 </font></p>
<p><font face="Verdana">微软在并购Virtual PC后，虚拟化技术就成为了Windows Server 2008最大的一个看点。微软在Windows Server 2008展示的虚拟化</font></p>
<p><font face="Verdana">技术不仅仅是Virtual PC虚拟机这么简单，而是服务器虚拟化、桌面虚拟化、应用程序虚拟化和展现层虚拟化的一个整体。微软专</font></p>
<p><font face="Verdana">门开发的Hyper-V(这项技术称作管理技术，是Windows Server 2008发布版的虚拟化技术的基础)技术，加上自家的Windows Server </font></p>
<p><font face="Verdana">2008和Virtual PC估计能让虚拟技术运行更迅速。其应用程序虚拟化可以让应用程序通过往上的发布，完全的为远程用户提供服务</font></p>
<p><font face="Verdana">。例如，你到临时到网吧处理工作，而网吧的计算机上没有安装Word，这种情况在以前就很难解决了。通过应用程序虚拟化技术，</font></p>
<p><font face="Verdana">你就可以登录你企业发布的授权程序，远程的使用虚拟化程序完成操作了。虚拟化技术也能够使用虚拟机技术在一台物理服务器上</font></p>
<p><font face="Verdana">运行多个操作系统。同一台服务器能够多种版本的不同的操作系统，如Windows和Linux等。</font></p>
<p><font face="Verdana">而服务器整合则是其主要的应用场景之一。服务器整合可以极大地提升服务器的利用率（从原本的10~20%提升到60~70%）、可以很</font></p>
<p><font face="Verdana">好地节省服务器采购的费用、可以大大节省电费和降温费用（每台服务器每年的电费和降温费用，超过服务器投资的1/3），更重</font></p>
<p><font face="Verdana">要的是，服务器整合还可以大大提高服务响应的速度。</font></p>
<p><font face="Verdana">问题：一台物理计算机只安装一个关键业务程序。一旦物理硬件损坏，只会影响到该服务器上的关键业务。而采用服务器整合的虚</font></p>
<p><font face="Verdana">拟化技术后，物理主机上可能同时运行多台虚机（每台虚机里跑一个关键业务程序），多个虚机之间可以实现安全隔离。</font><font face="Verdana">这好比把<br />
所有的鸡蛋放在一个篮子里，一旦物理主机硬件损坏，其上的多台虚机，及其中运行的关键业务都会同时中断。&nbsp; </font></p>
<p><font face="Verdana">解决：Hyper-V则支持高可用性群集功能，不管是有计划的主机维护、还是突发的硬件故障，虚机都可以在另外一台主机上快速重</font></p>
<p><font face="Verdana">启，而且服务中断的时间很短，几乎可以忽略不计。</font></p>
<p><font face="Verdana">7、自修复NTFS文件系统。自从DOS时代开始，如果文件系统中发生文件出差问题就意味着磁盘需要脱机进行修复。而在Windows </font></p>
<p><font face="Verdana">Server 2008中，在后台运行的服务能够检测到文件系统的错误并在发现文件出差的情况下启动一个修复进程，而期间并不需要关</font></p>
<p><font face="Verdana">闭服务器。 </font></p>
<font face="Verdana">
<p><br />
8、并行会话创建。在Windows Server 2008之前的系统中，会话创建是一个串行操作。而在终端服务系统中，串行初始化会话会导</p>
<p>致系统出现瓶颈。而这个在Vista和Windows Server 2008中提供的新会话模型至少能够同时对四个会话进行初始化，而且如果服务</p>
<p>器的处理器多于四个时还能够同时初始化更多的会话。 </p>
<p><br />
9、干净的关闭服务。Windows中一个历史性遗留问题是系统关机的过程问题。在XP中，一旦关闭过程开始，系统就会启动一个历时</p>
<p>20秒的计数器。当计数开始后，系统就会向用户发出信号询问是否用户自己中止应用程序。对于Windows Server来说，相同的20秒</p>
<p>机制变成了应用程序的存活时间。 </p>
<p><br />
在Windows Server 2008中这个20秒倒数的机制已经被一个新的服务取代，这个服务会控制应用程序不断的发送程序需要关闭的信</p>
<p>号，只要程序不断保持发送信号那么程序最终会关闭。某些开发人员可能会顾虑这个新服务会让应用程序耗掉太多资源，但从实际</p>
<p>情况看来，性能方面的牺牲物有所值。 </p>
<p><br />
10、内核业务管理器。开发人员可以好好利用这个功能，它能够极大的减少最容易导致系统注册表和文件系统崩溃的发生次数：这</p>
<p>是由于有多个线程同时访问某个资源引起。 </p>
<p><br />
在正式的数据库中，修改过的指令集按顺序先保存在内存中，跟着作为一个业务一次性提交。这种情况下，用户并不能获得数据库</p>
<p>被修改过程中的快照，这些修改看起来是同时进行的。而这一功能最终在Vista和Windows Server 2008的系统注册表中被利用。 </p>
<p><br />
11、SMB2网络文件系统。很久很久以前，SMB就被用作Windows的网络文件系统。而现在，SMB在灵活性、高性能方面已经力不从心</p>
<p>，因此SMB2取而代之。根据内部测试结果显示，在媒体服务器上SMB2的性能是Windows Server 2003的30到40倍之多。 </p>
<p><br />
12、地址空间随机加载(ASLR)。自从它在Vista露面以来，可能这个功能是所有新增功能中最受争议的功能了。ASLR确保同一时间</p>
<p>，在内存中同一区域没有两个相同的操作系统实例被加载。 </p>
<p><br />
13、Windows硬件错误架构(WHEA)。微软最终对硬件错误信息进行了标准化，利用这些面向硬件统一使用相同套接字接口报告的错</p>
<p>误信息，第三方的软件能够方便的迁移并管理问题。 </p>
<p><br />
14、灵活的安全性。Windows Server 2008提供更强的内置安全功能，主要包含BitLocker、RMS、增强防火墙、RODC(Read Only </p>
<p>Domain Controller)、NAP(Network Access Protection)几个方面。BitLocker这个功能，对整个磁盘做加密，Vista中也有此功能</p>
<p>。RMS对所有的Office文档做管理控制，即便文档已经发送给他人，已经不在所有者的手里，所有者仍然可以控制该文档如何被他</p>
<p>人访问。内置的增强防火墙，功能非常强大，管理员可以根据网络不同设置不同的安全策略，如家庭环境与办公环境相比，可能需</p>
<p>要的安全策略就不同。RODC适用于有分支机构的公司，有些分支机构的物理环境不够安全，通过该功能，可以在这种情况保证安全</p>
<p>性。<br />
</font></p>
 <img src ="http://www.cnblogs.com/xiaoyin_net/aggbug/1097927.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41306/" target="_blank">[新闻]江民科技回应杀毒软件免费说 没病不能乱吃药</a>]]></description></item><item><title>基于Web Services建立Asp与Asp.Net之间Session数据桥的应用研究</title><link>http://www.cnblogs.com/xiaoyin_net/archive/2008/01/21/1046641.html</link><dc:creator>ξ箫音ξ</dc:creator><author>ξ箫音ξ</author><pubDate>Sun, 20 Jan 2008 16:54:00 GMT</pubDate><guid>http://www.cnblogs.com/xiaoyin_net/archive/2008/01/21/1046641.html</guid><wfw:comment>http://www.cnblogs.com/xiaoyin_net/comments/1046641.html</wfw:comment><comments>http://www.cnblogs.com/xiaoyin_net/archive/2008/01/21/1046641.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cnblogs.com/xiaoyin_net/comments/commentRss/1046641.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xiaoyin_net/services/trackbacks/1046641.html</trackback:ping><description><![CDATA[<span  style="color: #444444; font-family: tahoma; font-size: 12px; line-height: 17px; ">本文的目的在于提供一种可行的解决方案通过Web Service技术来整合和管理现有的Asp程序到Asp.Net。 此应用解决
<p>方案尽可能从实际出发以迭代更新方式的策略把Asp Web服务器内存中的当前Session更新到Asp.Net。</p>
<p>背景:</p>
<p>现有公司的产品OA是采用asp早先的技术开发，需要与目前最新的asp.net产品进行数据交互的应用。现有的asp应用程序</p>
<p>往往采用&#8220;ASP sessions&#8221;，这是一种经典的asp内置模式，即允许数据临时暂存在web服务器内存中，其最大的限制因素就</p>
<p>是asp的session状态是依赖具体的服务器。而另一个更宽范围的解决方案就是很多web服务器都可能别用于根据请求而指向的</p>
<p>任何网络服务器。实际上就是所有的web服务器都像在一个农场中，因而任何在内存中的session状态将不会自动跟随请求。每</p>
<p>个asp服务器提供自己的session状态，除非用户很凑巧的返回统一服务器，造成系统session丢失。</p>
<p>&#160;&#160;&#160;&#160;&#160; 通过使用服务器管理产品（如bigip）来强制用户会同意服务器内的web农场来解决内存中asp seesion因服务器关系而造</p>
<p>成的问题。为了达到这个目的，采用一个cookie在客户端工作，在服务器端来使用，让用户直接可以回到同一个服务器上的</p>
<p>每个reqeust。这样可以限制扩展性，提高可维护性，避免服务器故障的风险（例如：session丢失服务器 失败）。<br />
&#160;<br />
&#160;&#160;&#160;&#160; 　微软Asp.net技术的出现终于解决了这个问题，可以让我们来存储session信息到web server和database或者其他域</p>
<p>server。不错，问题解决了，我们还有必要用asp代码吗？全部扔掉？如果这样做的话就会需要很大代价去重新使用.net来</p>
<p>重写asp。看来还是不可行。另一种比较好的解决方案就是用迭代方法来部分移植代码到新的模型胜过重写asp代码，在这</p>
<p>个过程中如果旧的ASP代码和新的asp.net代码可以有一个共同的session状态而保持正常的工作，那么在整个生命周期中</p>
<p>将会有益于你更好的规避风险.以下提供了几个解决方案从此略上来解决当采用经典的asp sesssion因服务器关系而造成的</p>
<p>问题。</p>
<p>1、用户自定义组或者使用Asp/ADO脚本去实现直接读写用户session数据到数据库；</p>
<p>2、用户自定义组件去直接访问asp.net seesion数据；</p>
<p>3、通过web servieces建立asp到asp.net的桥共享session；&#160;</p>
<p>在本文中，我们将讨论最后一种方案，其中也会包括一些web services与asp/ADO定制数据库，和asp session 池的基本</p>
<p>性能数据比较，呵呵...看完后你自己选择用哪个。</p>
<p>ASP to ASP.NET Bridge / Web-Service 方案</p>
<p>此方案中只是简单的实现了一个从asp到asp.net的web services桥梁，如果你需要用数据库，只需要进行简单的配置（web.</p>
<p>congfig和aspState 数据库）。代码中用来获得和设置session数据的方法写在一个javascirpt中，该文件必须保存在本地asp</p>
<p>程序中。</p>
<p>此javascirpt实现MSXML， http功能以便和server端交互，并负责将这些cookie回收给用户工作站。</p>
<p>优点：</p>
<p>支持与服务器无关的web-farm部署，提高可扩展性简单的实现asp和asp.net的共同session状态松耦合，以sessioni管理</p>
<p>（无连接的HTTP接口， 80端口，可防火墙等）利用久经时间考验的asp.net session实施。</p>
<p>缺点： 比asp session 内存池实现和数据库实现会慢。</p>
<p>&#160;</p>
<p><img src="http://blog.crfly.com/image.axd?picture=ASPWS.gif" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; " /></p>
<p>&#160;</p>
<p>Asp内存共享机制:</p>
<p>&#160;&#160;&#160;&#160; Session是采用类似字典或者哈希表的形势保存在web server内存中，ASP会保持session状态，提过一个特别的key给</p>
<p>用户，当session会话开始时，这个key将保存cookie来纪录客户端发送到服务器的每一项请求，在服务器端，获得cookie</p>
<p>的key,就可以知道request对应的session.这种机制的一个明显的优势就是速度和方便，所有的session都会在一台服务器上</p>
<p>保存，所以很开，但是正如前面所说的，将数据保存在一台服务器也是一个重大缺点，迫使用户返回同一台服务器检索</p>
<p>session数据。这个减少了webform的优势，它只是一种低成本，大淘汰的策略，如果你只想实现简单功能，就可以用它。</p>
<p>优点：</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 内存纪录seesion,速度快,使用标准的ASP代码基础利用久经时间考验的ASP session实施。</p>
<p>缺点：</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;它承载的能力有限，无法大规模开展网络农场（服务器依赖度高） ,服务器故障导致session丢失，内存占有率太大。</p>
<p>&#160;</p>
<p><img src="http://blog.crfly.com/image.axd?picture=ASPDB.gif" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; " /></p>
<p>&#160;</p>
<p>Asp/ADO数据库实现解决方案</p>
<p>&#160;&#160;&#160;&#160;&#160; 建立了一个数据库连接之间的ASP应用服务器和数据库服务器。使数据被存在一个中央数据库或者数据库集群，然后分</p>
<p>别从不同的服务器上的asp程序执行。本文种只给出方案。获取和设置session的代码可以被放进一个javascirpt文件中，支</p>
<p>持基于webservices获取的方法，允许asp取代javascirpt定制数据库模式，直接访问asp.netsession数据（如建立aspstate</p>
<p>数据库）。</p>
<p>优点：</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160; 1、支持不依赖服务器的webform部署；</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160; 2、比asp.net Web服务更快；</p>
<p>缺点：</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160; 1、代码为定制执行(比较死板)；</p>
<p>&#160;&#160;&#160;&#160;&#160; &#160;2、比内存共享ASP sessions 慢；</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160; 3、需要数据库连接，从网络服务器到数据库服务器；</p>
<p><img src="http://blog.crfly.com/image.axd?picture=ASPClassic.gif" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; " /></p>
<p>性能：</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;在下面数据中，列出了每种方案的性能比较，强调的是内存共享aspsession池最快小型用户可以使用，采用数据库的话</p>
<p>也会增加额外的开支，增加成本（除非你很有钱）。减 少网络回传，服务器请求是提高性能的唯一方法，微软的Web应用程</p>
<p>序压力工具，是用来执行测试压力水平的25个线程为1分钟的时间从表中可以明显的看出用内存存储aspsession比另外两种方</p>
<p>式更快。</p>
<p>Method Get Data (ms) Set Data (ms)<br />
&#160;5 values 1 value 5 values 1 value<br />
In-memory ASP Sessions 46 9 34 7<br />
ASP/ASP.NET web service individually 4321 864 3397 679<br />
ASP/ASP.NET web service grouped 711 142 990 198<br />
ASP/ADO database individually 346 69 841 168<br />
ASP/ADO database grouped 163 33 860 172</p>
<p>代码描述ASP机制，在asp中创建sessioni 如下：</p>
<p>Session("Sky") = "Blue";<br />
在其他的页面中访问这些值采用：<br />
var skyString = Session("Sky");</p>
<p>新的API语法：</p>
<p>下面的语法将会代替原来的asp session 语法，目的是在桥的使用中javascript 函数可以进行封装<br />
设置一个关键值对；<br />
设置一个kye-value 类型session 数据，语法和值钱的asp Session 语法很相似，采用下面的代码可以把现有的设置asp session代码替换；</p>
<p>设置sessioni数据：<br />
SetSessionValue("Sky", "Blue");<br />
获取 session :&#160;<br />
var SkyString = GetSessionValue("Sky");<br />
这种方法建议在设置比较少的情况下用<br />
设置多个key-valus对值<br />
这些方法的最大开销在于设置每一个key-value，然后返回给webservice,推荐用以下方法来设置（当超过3对以上的key-values)<br />
设置session<br />
var sessionInfo = NewSession();<br />
sessionInfo.Add(&#8220;Sky&#8221;, "Blue");<br />
sessionInfo.Add(&#8220;Grass&#8221;, &#8220;Green&#8221;);<br />
<br />
SetSession(sessionInfo);</p>
<p>获得session<br />
var sessionInfo = GetSession();<br />
var skyString = sessionInfo.Item(&#8220;Sky&#8221;);<br />
var grassString = sessionInfo.Item(&#8220;Grass&#8221;);<br />
<br />
Java Script Example<br />
&lt;%@ Language="JScript" %></p>
<p>&lt;script language="JScript" runat="server" src="ASPSessionWS.js" /></p>
<p>&lt;%<br />
&#160;&#160;&#160; var sessionInfo = NewSession();<br />
&#160;&#160;&#160; sessionInfo.Item("Sky") = "Blue";<br />
&#160;&#160;&#160; sessionInfo.Item("Grass") = "Green";<br />
&#160;&#160;&#160; SetSession(sessionInfo);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</p>
<p>&#160;&#160;&#160; var retrievedSession = GetSession();<br />
&#160;&#160;&#160; var sSky = retrievedSession.Item("Sky");<br />
&#160;&#160;&#160; var sGrass = retrievedSession.Item("Grass");</p>
<p>&#160;&#160;&#160; Response.Write(sSky + "&lt;br>");<br />
&#160;&#160;&#160; Response.Write(sGrass + "&lt;br>");<br />
%></p>
<p>Visual BASIC Example<br />
&lt;%@ Language="VBSCRIPT" %></p>
<p>&lt;script language="JScript" runat="server" src="ASPSession.js" /></p>
<p>&lt;%<br />
&#160;&#160;&#160; Dim sessionInfo&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br />
&#160;&#160;&#160; Set sessionInfo = NewSession()<br />
&#160;&#160;&#160; sessionInfo.Item("Sky") = "Blue"<br />
&#160;&#160;&#160; sessionInfo.Item("Grass") = "Green"<br />
&#160;&#160;&#160; SetSession(sessionInfo)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</p>
<p>&#160;&#160;&#160; Dim retrievedSession<br />
&#160;&#160;&#160; Set retrievedSession = GetSession()<br />
&#160;&#160;&#160; Dim sSky<br />
&#160;&#160;&#160; sSky = retrievedSession.Item("Sky")<br />
&#160;&#160;&#160; Dim sGrass<br />
&#160;&#160;&#160; sGrass = retrievedSession.Item("Grass")</p>
<p>&#160;&#160;&#160; Response.Write(sSky &amp; "&lt;br>")<br />
&#160;&#160;&#160; Response.Write(sGrass &amp; "&lt;br>")<br />
%></p>
<p>Web Service 实现代码</p>
<p>此webservice有4个简单方法组成，它支持再asp.net sessioni中设置和获得单独的values，以及简化通过装载xml来设置</p>
<p>session变量的复杂度。</p>
<p>public string getSessionValue(string sessionVariable)<br />
public bool setSessionValue(string sessionVariable, string sessionValue)<br />
public string getSessionValues()<br />
public bool setSessionValues(string xmlSessionValues)<br />
为了让asp.net web service能够来支持创建和维护sessions,要通过下面包含在每个方法中的属性，这将返回一个asp.net_</p>
<p>sessionID的cookie到响应中可以作为使用asp Session代码的桥。</p>
<p>[WebMethod(EnableSession=true)]</p>
<p>你也可以增加很多webservices接口来实现其他你想要的功能。</p>
<p>ASP 桥的实现:</p>
<p>Asp端的桥，其实就是一个依赖msxml2.serverXMLhttp COM接口为访问web services的服务端和Scripting.Dictionary 提</p>
<p>供一个哈希表。在当前页中保持一个临时的副本session.</p>
<p>var xmlHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP");<br />
xmlHTTP.open("POST", sURL, false);&#160;&#160;&#160;&#160;<br />
var clientCookie = "" + Request.Cookies("ASP.NET_SessionId");<br />
xmlHTTP.setRequestHeader("cookie", "ASP.NET_SessionId=" +&#160;<br />
&#160; clientCookie + "; path=/;");<br />
.<br />
.<br />
.<br />
Response.Cookies("ASP.NET_SessionId") = httpCookie;<br />
字典对象转化<br />
var dctSession = new ActiveXObject("Scripting.Dictionary");<br />
var re = new RegExp("&lt;SessionItem ", "g");<br />
部署<br />
文件aspseesionws.js必须放在asp程序下，并且在asp.net程序中写上如下代码<br />
&lt;script language="&#8221;Jscript&#8221;" runat="&#8221;server&#8221;" src=&#8221;\Script\ASPSessionWS.js&#8221; ><br />
&lt;/script><br />
采用80端口访问web server,在脚本文件中写如下函数，用来维护session状态<br />
function GetWebService(Function, Parameters)<br />
{<br />
&#160;&#160;&#160; var xmlPayload = "";<br />
&#160;&#160;&#160; var sURL = "<a href="http://www.fullerdata.com/ASPBridge/bridge.asmx" style="text-decoration: none; color: #5c80b1; background-image: url(http://blog.crfly.com/pics/remote.gif); background-repeat: no-repeat; background-attachment: initial; background-color: initial; padding-right: 10px; white-space: nowrap; background-position: 100% 0%; ">http://www.xxxx.com/ASPBridge/bridge.asmx</a>" + "/" +&#160;<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; Function;</p>
<p>总之，采用webservice 建立从遗留的asp session 到新的asp.net 的session，只要的目的是为了采用新的技术整合旧的程序，</p>
<p>允许2个程序共享一个session内容，虽然性能很重要，但是目前还没有更完美的方法完全的把原有程序整合进.net。</p>
</span>
<p>示例下载:<a href="http://blog.crfly.cn/file.axd?file=ASPBridge.rar" rel="enclosure">ASPBridge.rar (5.59 kb)</a> </p>
<img src ="http://www.cnblogs.com/xiaoyin_net/aggbug/1046641.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41305/" target="_blank">[新闻]WCG2008中国区总决赛打响</a>]]></description></item><item><title>微软Asp.Net架构与项目团队管理建设模型分析</title><link>http://www.cnblogs.com/xiaoyin_net/archive/2008/01/20/1045966.html</link><dc:creator>ξ箫音ξ</dc:creator><author>ξ箫音ξ</author><pubDate>Sat, 19 Jan 2008 19:26:00 GMT</pubDate><guid>http://www.cnblogs.com/xiaoyin_net/archive/2008/01/20/1045966.html</guid><wfw:comment>http://www.cnblogs.com/xiaoyin_net/comments/1045966.html</wfw:comment><comments>http://www.cnblogs.com/xiaoyin_net/archive/2008/01/20/1045966.html#Feedback</comments><slash:comments>14</slash:comments><wfw:commentRss>http://www.cnblogs.com/xiaoyin_net/comments/commentRss/1045966.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xiaoyin_net/services/trackbacks/1045966.html</trackback:ping><description><![CDATA[<p>Microsoft Visual Studio 2008 RTM版本已经发布好久了，最近的项目准备用最新的微软技术Microsoft Visual Studio 2008 </p>
<p>RTM ＋Microsoft SQL Server Compact 3.5＋Microsoft SQL Server 2005模型来实现；好的Team应该有学习新技术的探 </p>
<p>索精神， 一个好的管理者，作用和能力不一定是技术狂人，但一定是懂得管理并不断掌握最新技术的人；能在不同的环境， </p>
<p>采用适合 团队的不同的管理方法，（包括用新技术解决技术题，导引事物发展方向），微软人性化的管理方法，使项目组成 </p>
<p>员没有压抑 工作感（愉快的工作），管理目的是使项目组成员在能 把整个团队的探索精神和积极性调动起来，创建一个好 </p>
<p>的工作和学习氛 围，制定一定的宽松的规则，每个人都自觉的遵守和工作，把团队中每个人潜力挖掘出來，发挥到最大， </p>
<p>以一当十，有很强的 向心力并能够帮助团队每个成员确定适合自己的职业规划，这就是一个成 功管理者的价值体现之一。 </p>
<p>微软团队的建设上，不同方式的沟通就是Team具有凝聚力和战斗力的法宝。 </p>
<p>微软方向优秀项目管理者，不能不熟悉MSF(<strong>Microsoft Solutions Framework </strong>)：它是一组建立、开发和实现分布式 </p>
<p>企业系统应用的工作模型、开发准则和应用指南。它帮助企业融合商业和技术的目标，降低采用新技术后系统整体的费用， </p>
<p>以及成功的应用微软技术整合商业过程控制的方法。 </p>
<p>结合很清晰的管理理念，会很轻松的管理好整个团队的项目任务。CodeSmith Professional 是非常优秀的代码生成工具， </p>
<p>它的特点是可编程、可复用、灵活方便的可编程的代码生成工具，它是团队建设模型中不可缺少的武器之一。项目管理者、 </p>
<p>架构师，掌握CodeSmith编程和应用，把你的架构思想智慧融入到工具模板载体中，可以让你的Team不同技术能力的成员， </p>
<p>写出高质量的代码。 </p>
<p><img style="width: 733px; height: 603px" height="603" alt="" src="http://blog.crfly.cn/image.axd?picture=Snap%e9%a5%bf1.jpg" width="733" />&nbsp; </p>
<p>微软Asp.Net架构设计结合项目团队管理建设模型分析设计，我们可以用Pet Shop架构为示例，来组织团体开发模型。 </p>
<p>微软的Microsoft .NET Pet Shop 4.0架构设计，是一个非常优秀的示例；我们可以抽象出它的架构设计，编写CodeSmith模板代码， </p>
<p>生成 符合你的项目，含有架构模式的代码： </p>
<p><img height="273" alt="" src="http://blog.crfly.cn/image.axd?picture=Snap2.jpg" width="437" />&nbsp;&nbsp; <img height="284" alt="" src="http://blog.crfly.cn/image.axd?picture=Snap81.jpg" width="296" /> </p>
<p>&nbsp; </p>
<p>petshop项目示例架构图： </p>
<p><img height="330" alt="" src="http://blog.crfly.cn/image.axd?picture=3.jpg" width="693" /> </p>
<p>Petshop是完全基于面对接口的编程模式，适合团队协同开发，纵向引擎存储的方式编写代码；代码清晰度高，即使是初级程序员 </p>
<p>也会很快的 熟悉架构，轻松短时间上手；可以较少项目开始后的人员流动所带来的风险；缺点是分层太多，不适合单人开发的项 </p>
<p>目，但是可以采用 CodeSmith来代替繁琐重复的基类接口实现的工作。 </p>
<p><img height="321" alt="" src="http://blog.crfly.cn/image.axd?picture=hhh.jpg" width="738" /> </p>
<p>上图是Asp.Net petshop架构缓存与反射机制工厂模式时序图; </p>
<p>写到这，作为项目经理或者系统架构师的您，是否能总结出一套适合你们团队自己的&#8220;Asp.Net架构与项目团队管理建设模型&#8221;呢? </p>
<p>hehe... </p>
<p>下图是，我为团队编写的代码生成器，采用Microsoft Visual Studio 2008开发，支持多标签Vista风格，原打算结合更多的3.5新架 </p>
<p>构代码特性，生成Linq等代码，由于工作时间紧张只能以后慢慢开发吧；过几天修改好程序BUG，我会发上来给大家共享。 <br />
<br />
<img style="width: 744px; height: 571px" height="571" alt="" src="http://blog.crfly.cn/image.axd?picture=ffffsd.jpg" width="744" />&nbsp;</p>
<img src ="http://www.cnblogs.com/xiaoyin_net/aggbug/1045966.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41304/" target="_blank">[新闻]新型的编程语言:eC</a>]]></description></item><item><title>Silverlight整合Asp.net AjAX的技术应用</title><link>http://www.cnblogs.com/xiaoyin_net/archive/2008/01/19/1045863.html</link><dc:creator>ξ箫音ξ</dc:creator><author>ξ箫音ξ</author><pubDate>Sat, 19 Jan 2008 15:43:00 GMT</pubDate><guid>http://www.cnblogs.com/xiaoyin_net/archive/2008/01/19/1045863.html</guid><wfw:comment>http://www.cnblogs.com/xiaoyin_net/comments/1045863.html</wfw:comment><comments>http://www.cnblogs.com/xiaoyin_net/archive/2008/01/19/1045863.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cnblogs.com/xiaoyin_net/comments/commentRss/1045863.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xiaoyin_net/services/trackbacks/1045863.html</trackback:ping><description><![CDATA[摘要: Silverlight 将支持开发人员在创建丰富的web应用程序，我们即将看到web应用的一个在视觉是很有吸引力的浪潮的到来， <br><br>网页将能够利用灵活的媒体播放，动画和矢量图形绘制。这将有利于扩展web应用。本文描述的是一个股票跑马灯的例子。 <br><br>本例选择一个代码为3209的应用股票作为样本，它可以嵌入到现有的代码，并且提供一个比html marquee标签更好查 <br><br>看的ticker。为了能够让用户得到最多的价值，需要有效地通过互联网从服务器获得信息进行交易。 本文将讨论通过整合 <br><br>silverlight和asp.net AjAx来创造一个丰富的b/s应用。同样通过其他途径也能创造出类似的视觉效果，本文的主要焦点是 <br><br>如何这两项技术。通过ajax不断获取新的股票信息抛给silverlight来展现。<br>&nbsp;&nbsp;<a href='http://www.cnblogs.com/xiaoyin_net/archive/2008/01/19/1045863.html'>阅读全文</a><img src ="http://www.cnblogs.com/xiaoyin_net/aggbug/1045863.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41303/" target="_blank">[新闻]免费的BitDefender能复制卡巴斯基的成功吗?</a>]]></description></item><item><title>Visual Studio 2008和ASP.NET 3.5的最新技术探索</title><link>http://www.cnblogs.com/xiaoyin_net/archive/2008/01/19/1045832.html</link><dc:creator>ξ箫音ξ</dc:creator><author>ξ箫音ξ</author><pubDate>Sat, 19 Jan 2008 14:40:00 GMT</pubDate><guid>http://www.cnblogs.com/xiaoyin_net/archive/2008/01/19/1045832.html</guid><wfw:comment>http://www.cnblogs.com/xiaoyin_net/comments/1045832.html</wfw:comment><comments>http://www.cnblogs.com/xiaoyin_net/archive/2008/01/19/1045832.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xiaoyin_net/comments/commentRss/1045832.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xiaoyin_net/services/trackbacks/1045832.html</trackback:ping><description><![CDATA[<h1><span style="font-size: 10pt">ASP.NET 3.5 and Visual Studio 2008为基于Web的开发和设计，带来了巨大的功能性变化，这使得创建标准Web程序比以前更 </span></h1>
<div class="postcontent">
<p>容易。 在运行时中包含的ASP.NET AJAX，增加了新的控件，新的LINQ数据数据能力，增强了对CSS、JavaScript和其他内容 </p>
<p>的支持，Web开 发人员从此迈出了更为重要的一步。 </p>
<p>1、使用AJAX，开发人员可以快速的创建灵活多变、快速响应得用户界面，而实现这些功能，只需要在页面中添加几个服务器控件， </p>
<p>以前AJAX 只是ASP.NET运行时的一个扩展，现在它被集成在.NET平台上，而且能够完成更负责的跨平台任务，创建标准的AJAX </p>
<p>应用程序变得更简单。 </p>
<p>2、<strong>LINQ解决对象与数据对应的问题</strong> </p>
<p>NET Framework 3.5中增加了LINQ查询语言，以前我们在使用SQL查询字符串时总是容易出错；现在，LINQ为C#和VB提供了更 </p>
<p>安全的架构，并提供更智能的支持。对于Web应用程序，ASP.NET中的LinqDataSource数据源控件允许我们轻松的去查询、过滤 </p>
<p>等数据操作。.NET Framework 3.5其他的特性还包括：HashSet集合，DateTime offset支持，diagnostics异常（诊断）处理， </p>
<p>garbage（垃圾回收）集合，更好的线程锁定支持等等。&nbsp; </p>
<p><a href="javascript:ToggleImages('234332002',%20'382541002');"><img height="234" alt="图 1 LINQ 体系结构" src="http://msdn.microsoft.com/msdnmag/issues/07/06/CSharp30/zh/fig01.gif" width="332" border="0" /></a> </p>
<p>　　对象导向是目前程序开发的主流技术，当关系型数据库对应到对象导向的开发方法，要以对象导向的展现方式，存取关系型数据 </p>
<p>库，若没有工具的协助，必须付出相当的成本。一般数据库的应用，结合或参照多个数据表是很普遍的需求，但是利用对象导向技术 </p>
<p>，要实时且灵活的运用资料，目前仍是很费工的事情。针对这样的问题，目前有架构(Framework)层级与程序语言层级两种解决方案 </p>
<p>。 目前网络上开放源码的Hibernate、Borland的ECO(Enterprise Core Objects)、微软未来将推出的ADO.NET vNEXT，均是架构 </p>
<p>层级的 O/R Mapping(对象与关连式数据库对应)解决方案。架构层级O/R Mapping的缺点，在于除错不易，数据对应、属性设定的 </p>
<p>错误，以及 对象查询语言 (Object Query Language)的错误，在执行阶段才会发现问题 </p>
<p>3、在.NET Framework 3.5中，WCF支持创建Web服务（被大多数网络标准协议支持，如SOAP,RSS,JSON,POX等），无论你是 </p>
<p>使用 JSON开 发AJAX程序，还是RSS，或是标准的SOAP Web服务。&nbsp;WCF使你可以轻松的创建终端程序，现在，.NET Framew </p>
<p>ork 3.5 还支持在局部信 任领域（类似一个典型的主机共享环境）创建Web服务。 </p>
<p>4、Visual Studio 2008提供了新的界面，这也算是VS一贯的做法了（界面风格每次都在变）。VS2008去除了设计器和源代码视 </p>
<p>图， 这 使得打开 VS2008的界面比以前更快。新的分割视图，允许你编辑HTML源代码，并查看页面效果。对层叠样式表的支持 </p>
<p>能力大大 增强 。控件的样式可以 立刻显现出来，这也是鼎鼎大名的WYSIWYG（所见即所得），并且VS2008支持嵌套母版页 </p>
<p>开发。&nbsp;&nbsp;在VS2008中，客户端不再仅仅支持标准JavaScript的对象，而且能自动地显示那些自定义的变量和方法，更强的脚本调 </p>
<p>试功能。 </p>
<p>5、在以前的VS中，你只能创建一个版本下的工程（如只能创建2.0版本或1.1版本），在VS2008中，我们可以包含多个版本了， </p>
<p>通过 一个 简单的下 拉操作，你就可以决定要创建哪个版本下的项目（包括2.0，3.0，3.5）。不管采用哪个版本，你都可以 </p>
<p>使用 VS2008提供的新 功能，如在Web开 发中，你可以在旧的项目中，使用VS2008提供的对JavaScript的支持。 </p>
</div>
 <img src ="http://www.cnblogs.com/xiaoyin_net/aggbug/1045832.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41303/" target="_blank">[新闻]免费的BitDefender能复制卡巴斯基的成功吗?</a>]]></description></item></channel></rss>