﻿<?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>博客园-Leepy's Blogs</title><link>http://www.cnblogs.com/liping13599168/</link><description>专注于ajax技术，windows mobile技术，GIS技术
English(beta)</description><language>zh-cn</language><lastBuildDate>Thu, 28 Aug 2008 10:41:31 GMT</lastBuildDate><pubDate>Thu, 28 Aug 2008 10:41:31 GMT</pubDate><ttl>60</ttl><item><title>分布式缓存系统Memcached简介与实践（转）</title><link>http://www.cnblogs.com/liping13599168/archive/2008/07/30/1256581.html</link><dc:creator>Leepy</dc:creator><author>Leepy</author><pubDate>Wed, 30 Jul 2008 08:19:00 GMT</pubDate><guid>http://www.cnblogs.com/liping13599168/archive/2008/07/30/1256581.html</guid><wfw:comment>http://www.cnblogs.com/liping13599168/comments/1256581.html</wfw:comment><comments>http://www.cnblogs.com/liping13599168/archive/2008/07/30/1256581.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/liping13599168/comments/commentRss/1256581.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/liping13599168/services/trackbacks/1256581.html</trackback:ping><description><![CDATA[摘要: &nbsp;&nbsp;<a href='http://www.cnblogs.com/liping13599168/archive/2008/07/30/1256581.html'>阅读全文</a><img src ="http://www.cnblogs.com/liping13599168/aggbug/1256581.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41940/" target="_blank">[新闻]惠普139亿美元完成对EDS的收购</a>]]></description></item><item><title>利用memcached构建高性能的Web应用程序（转）</title><link>http://www.cnblogs.com/liping13599168/archive/2008/07/30/1256550.html</link><dc:creator>Leepy</dc:creator><author>Leepy</author><pubDate>Wed, 30 Jul 2008 07:49:00 GMT</pubDate><guid>http://www.cnblogs.com/liping13599168/archive/2008/07/30/1256550.html</guid><wfw:comment>http://www.cnblogs.com/liping13599168/comments/1256550.html</wfw:comment><comments>http://www.cnblogs.com/liping13599168/archive/2008/07/30/1256550.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/liping13599168/comments/commentRss/1256550.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/liping13599168/services/trackbacks/1256550.html</trackback:ping><description><![CDATA[摘要: &nbsp;&nbsp;<a href='http://www.cnblogs.com/liping13599168/archive/2008/07/30/1256550.html'>阅读全文</a><img src ="http://www.cnblogs.com/liping13599168/aggbug/1256550.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41940/" target="_blank">[新闻]惠普139亿美元完成对EDS的收购</a>]]></description></item><item><title>数据库设计经验之谈（转载） </title><link>http://www.cnblogs.com/liping13599168/archive/2008/07/20/1247025.html</link><dc:creator>Leepy</dc:creator><author>Leepy</author><pubDate>Sun, 20 Jul 2008 06:16:00 GMT</pubDate><guid>http://www.cnblogs.com/liping13599168/archive/2008/07/20/1247025.html</guid><wfw:comment>http://www.cnblogs.com/liping13599168/comments/1247025.html</wfw:comment><comments>http://www.cnblogs.com/liping13599168/archive/2008/07/20/1247025.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/liping13599168/comments/commentRss/1247025.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/liping13599168/services/trackbacks/1247025.html</trackback:ping><description><![CDATA[摘要: &nbsp;&nbsp;<a href='http://www.cnblogs.com/liping13599168/archive/2008/07/20/1247025.html'>阅读全文</a><img src ="http://www.cnblogs.com/liping13599168/aggbug/1247025.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41939/" target="_blank">[新闻]搜狗五笔输入法发布</a>]]></description></item><item><title>策划正确的配色方案</title><link>http://www.cnblogs.com/liping13599168/archive/2008/07/15/1243241.html</link><dc:creator>Leepy</dc:creator><author>Leepy</author><pubDate>Tue, 15 Jul 2008 03:44:00 GMT</pubDate><guid>http://www.cnblogs.com/liping13599168/archive/2008/07/15/1243241.html</guid><wfw:comment>http://www.cnblogs.com/liping13599168/comments/1243241.html</wfw:comment><comments>http://www.cnblogs.com/liping13599168/archive/2008/07/15/1243241.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/liping13599168/comments/commentRss/1243241.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/liping13599168/services/trackbacks/1243241.html</trackback:ping><description><![CDATA[策划正确的配色方案时必须要有一个判断标准。　　网页设计师策划一个网站需要经过反复多次的思考，而在决定网页配色方案时同样需要经过再三的思量。为了得到更好的策划意见，组织者既应该与合作人员反复进行集体讨论，还应该找一些风格类似的成功站点进行技术分析，一个大型站点是由几层甚至数十层的链接和上百上千种不同风格的网页所构成，所以在需要的时候应该绘制一个合理的层级图。　　如果在一个站点配色方案的策划中只凭设计师的感觉来决定最终的配色方案，则成功的机会就会很少，而且即使成功一次，也保证不了下一次同样能够成功。何况一个设计师好的建议在没有任何根据的情况下也不能说服团队中的其他合作成员。萝卜白菜各有所好，如果团队中的每一个成员都执意主张自己的观点，那么这个团队就会一事无成。　　当然，感觉是设计师的灵魂，没有感觉的设计师就如同一个没有灵魂的躯壳。但光凭感觉也不能够得到好的结果，如果说好的设计等于感觉加一个未知数，那么这个未知数应该就是可以说服其他人的科学合理的理论体系。<br />
<br />
<img alt="" src="http://www.zcool.com.cn/upimg/allimg/070623/0733400.gif" /><br />
<img height="248" alt="" src="http://www.zcool.com.cn/upimg/allimg/070623/0733401.gif" /><br />
<img alt="" src="http://www.zcool.com.cn/upimg/allimg/070623/0733402.gif" /><br />
<img alt="" src="http://www.zcool.com.cn/upimg/allimg/070623/0733403.gif" width="580" /><br />
<img alt="" src="http://www.zcool.com.cn/upimg/allimg/070623/0733404.gif" /><br />
<img alt="" src="http://www.zcool.com.cn/upimg/allimg/070623/0733405.gif" /><br />
<img alt="" src="http://www.zcool.com.cn/upimg/allimg/070623/0733406.gif" /><br />
<img alt="" src="http://www.zcool.com.cn/upimg/allimg/070623/0733407.gif" /><br />
<img alt="" src="http://www.zcool.com.cn/upimg/allimg/070623/0733408.gif" /><br />
<img alt="" src="http://www.zcool.com.cn/upimg/allimg/070623/0733409.gif" /><br />
<img alt="" src="http://www.zcool.com.cn/upimg/allimg/070623/07334010.gif" /><br />
<img alt="" src="http://www.zcool.com.cn/upimg/allimg/070623/07334011.gif" /><br />
<img alt="" src="http://www.zcool.com.cn/upimg/allimg/070623/07334012.gif" /><br />
<img alt="" src="http://www.zcool.com.cn/upimg/allimg/070623/07334013.gif" /><br />
引自：<font face="Verdana">http://www.zcool.com.cn/color/20070623/color_0623J52007.html</font>
<img src ="http://www.cnblogs.com/liping13599168/aggbug/1243241.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41938/" target="_blank">[新闻]新学年开始 大学生适用的十大互联网应用</a>]]></description></item><item><title>在Web站点中创建和使用Rss源(转)</title><link>http://www.cnblogs.com/liping13599168/archive/2008/06/22/1227502.html</link><dc:creator>Leepy</dc:creator><author>Leepy</author><pubDate>Sat, 21 Jun 2008 17:23:00 GMT</pubDate><guid>http://www.cnblogs.com/liping13599168/archive/2008/06/22/1227502.html</guid><wfw:comment>http://www.cnblogs.com/liping13599168/comments/1227502.html</wfw:comment><comments>http://www.cnblogs.com/liping13599168/archive/2008/06/22/1227502.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/liping13599168/comments/commentRss/1227502.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/liping13599168/services/trackbacks/1227502.html</trackback:ping><description><![CDATA[PDF 浏览：<a href="http://www.tracefact.net/document/Creating-and-Consuming-Rss-Feeds-on-Your-Website.pdf" target="_blank">http://www.tracefact.net/document/Creating-and-Consuming-Rss-Feeds-on-Your-Website.pdf</a><br />
源码下载：<a href="http://www.tracefact.net/sourcecode/Creating-and-Consuming-Rss-Feeds-on-Your-Website.rar" target="_blank">http://www.tracefact.net/sourcecode/Creating-and-Consuming-Rss-Feeds-on-Your-Website.rar</a>
<div id="content">
<h1>在Web站点中创建和使用Rss源</h1>
<p style="text-indent: 0pt"><strong>主要参考：</strong><br />
<a href="http://www.dotnetbips.com/articles/f7752830-e39d-46b8-8adf-23c715d442bc.aspx">Creating Rss Feeds For Your Web Site</a><br />
<a href="http://www.dotnetbips.com/articles/4e08e0ff-e933-42b0-87c9-d85f2e17a14e.aspx">Consuming Rss Feeds On Your Web Site</a></p>
<h2>术语表</h2>
<p style="text-indent: 0pt">tag：标签<br />
markup：标记<br />
node：结点<br />
item：条目<br />
entry：入口<br />
Rss Reed：Rss 源</p>
<h2>介绍</h2>
<p>Rss是将你Web站点的内容与其他人分享的标准方式。Rss代表着：<strong>Really Simple Syndication</strong>。它不过是一个标准化的XML标记，用于描述你想要分享的内容。因此Rss是一个在你的内容准备好被其他用户所消费时被广泛接受的格式。一些使用Rss的范例站点有：<a href="http://www.asp.net/">http://www.asp.net/</a>、<a href="http://127.0.0.1/Test/weblogs.asp.net">weblogs.asp.net</a> 和 <a href="http://www.dotnetbips.com/">http://www.dotnetbips.com/</a> 。Dotnetbips.com 通过 Rss 发布新添内容的列表，这个列表可能会被其他的站长放置在他们的站点或目录中。</p>
<h2>Rss的格式</h2>
<p>如同我之前提到的，Rss不过是有着一些特殊标签的XML标记。下面的标记展示了这样一个文档：</p>
<p class="Code">&lt;rss version="2.0"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;channel&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;DotNetBips.com Latest Articles&lt;/title&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;link&gt;www.dotnetbips.com&lt;/link&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;description&gt;DotNetBips.com Latest Articles&lt;/description&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;copyright&gt;Copyright (C) DotNetBips.com. All rights reserved.&lt;/copyright&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;generator&gt;www.dotnetbips.com RSS Generator&lt;/generator&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;item&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;author&gt;Bipin Joshi&lt;/author&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;Using WebRequest and WebResponse&lt;/title&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;link&gt;http://www.dotnetbips.com/displayarticle.aspx?id=239&lt;/link&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;description&gt;Description here&lt;/description&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;pubDate&gt;Sun, 25 Jan 2004 12:00:00 AM GMT&lt;/pubDate&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;/item&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/channel&gt;<br />
&lt;/rss&gt;</p>
<p>让我们仔细看看每一个标记：</p>
<ul>
    <li>&lt;rss&gt;：根结点，拥有一个version(版本)属性，最新版本是 2.0 </li>
    <li>&lt;channel&gt;：rss下的根结点，可以再次包含&lt;channel&gt;结点。&lt;channel&gt;结点可以进一步包含&lt;title&gt;,&lt;link&gt;,&lt;item&gt;结点。 </li>
    <li>&lt;title&gt;：代表Rss源的标题。</li>
    <li>&lt;link&gt;：代表着提供Rss源的站点的URL。</li>
    <li>&lt;description&gt;：关于这个Rss源的更多详细信息。</li>
    <li>&lt;copyright&gt;：详细说明版权信息。</li>
    <li>&lt;generator&gt;：说明产生这个Rss源的应用程序。</li>
</ul>
<p>除了上面的这些标签，还可以有一个或多个&lt;item&gt;标签。Item标签代表着你想要分享的实际条目。比如，文章、博客入口。每个&lt;item&gt;标记进一步包含下面这些子结点。</p>
<ul>
    <li>&lt;title&gt;：代表着这个条目的标题。比如：文章标题。</li>
    <li>&lt;author&gt;：代表着这个条目的作者。比如：文章作者。</li>
    <li>&lt;link&gt;：代表这个条目的URL。比如：文章的URL。</li>
    <li>&lt;description&gt;：包含着这个条目的描述信息。比如：文章的摘要。</li>
    <li>&lt;pubDate&gt;：这个标签包含着这个条目的发布日期。典型的日期格式是：Sun 28 Dec 2003 12:00:00 AM GMT.</li>
</ul>
<h2>采用的方法</h2>
<p>OK，我们已经对Rss的格式做了了解，但是如何使用.Net生成Rss源？.Net有许多XML相关的类。我们将从这些类中使用XML Text Writer来生成 Rss源。但是我们应该开发出一个通用的解决方案以便在任何的web站点中都可以使用。这就意味着我们的代码必须独立于特定的数据库领域或者表。为了达到这个目的，我们将要在VS.NET中创建一个类库。我们Rss的&lt;item&gt;标记的数据源将采用一个Dataset，这个Dataset通常填充自数据库表。这个类将有下面的属性和方法。</p>
<ul>
    <li>
    <h3>属性</h3>
    </li>
    <li>Outputstream：一个源所投递到的stream对象。</li>
    <li>RssTitle：代表&lt;channel&gt;标签下的&lt;title&gt;的特定值。</li>
    <li>PublisherUrl：代表&lt;channel&gt;标签下的&lt;link&gt;标签。</li>
    <li>Description：代表&lt;channel&gt;标签下的&lt;description&gt;值。</li>
    <li>Copyright：代表&lt;channel&gt;标签下的&lt;copyright&gt;值。</li>
    <li>Generator：代表&lt;channel&gt;标签下的&lt;generator&gt;值。</li>
    <li>ItemSource：指定一个包含着item行的Dataset对象。</li>
    <li>ItemTitleField：数据列，代表&lt;item&gt;标签下的&lt;title&gt;标签</li>
    <li>ItemUrlField：数据列，代表&lt;item&gt;标签下的&lt;link&gt;标签。</li>
    <li>ItemDescriptionField：数据列，代表&lt;item&gt;标签下的&lt;description&gt;标签。</li>
    <li>ItemPublicationDateFiled：数据列，代表&lt;item&gt;标签下的&lt;pubDate&gt;标签。</li>
    <li>ItemAuthor：数据列，代表&lt;item&gt;标签下的&lt;author&gt;标签。</li>
</ul>
<h3>方法</h3>
<ul>
    <li>PublishRss：这个静态方法将Rss标记写入到outputstream(输出流)中。</li>
</ul>
<p>下面列出的是上面这些属性和方法的完整程序清单。为了简单和快速地作个示范，我使用了公用字段，而没有使用属性。在实际的应用程序中，应该使用属性。</p>
<p class="Code">using System;<br />
using System.IO;<br />
using System.Data;<br />
using System.Xml;<br />
using System.Collections.Generic;<br />
using System.Text;<br />
<br />
public class Rss {<br />
&nbsp;&nbsp;&nbsp; public Stream OutputStream;<br />
&nbsp;&nbsp;&nbsp; public string RssTitle;<br />
&nbsp;&nbsp;&nbsp; public string PublisherUrl;<br />
&nbsp;&nbsp;&nbsp; public string Description;<br />
&nbsp;&nbsp;&nbsp; public string Copyright;<br />
&nbsp;&nbsp;&nbsp; public string Generator;<br />
&nbsp;&nbsp;&nbsp; public DataSet ItemSource;<br />
&nbsp;&nbsp;&nbsp; public string ItemTitleField;<br />
&nbsp;&nbsp;&nbsp; public string ItemUrlField;<br />
&nbsp;&nbsp;&nbsp; public string ItemDescriptionField;<br />
&nbsp;&nbsp;&nbsp; public string ItemPublicationDateField;<br />
&nbsp;&nbsp;&nbsp; public string ItemAuthor;<br />
<br />
&nbsp;&nbsp;&nbsp; public static void PublishRss(Rss r){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlTextWriter writer = new XmlTextWriter(r.OutputStream, Encoding.UTF8);<br />
writer.WriteStartDocument();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteStartElement("rss");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteAttributeString("version", "2.0");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteStartElement("channel");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteElementString("title", r.RssTitle);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteElementString("link", r.PublisherUrl);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteElementString("description", r.Description);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteElementString("copyright", r.Copyright);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteElementString("generator", r.Generator);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (DataRow row in r.ItemSource.Tables[0].Rows) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteStartElement("item");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteElementString("author", row[r.ItemAuthor].ToString());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteElementString("title", row[r.ItemTitleField].ToString());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteElementString("link", row[r.ItemUrlField].ToString());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteElementString("description", row[r.ItemDescriptionField].ToString());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>writer.WriteElementString("pubDate", Convert.ToDateTime(row[r.ItemPublicationDateField]).ToString("dd MMM yyyy hh:mm:00 "));<br />
</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteEndElement();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteEndElement();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteEndElement();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.Flush();<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p class="note"><strong>NOTE：</strong>这里pubDate的日期格式很重要，当你按上面的代码对pubDate进行格式转换的时候，假如数据库中是 <st1>2007-9-14</st1> 9:58，那么在英文操作系统下，会转换成 &#8220;14 Sep 2007 9:<st1>58&#8221;</st1>,这个是没有问题的。但在中文操作系统下，就变成了 &#8220;14 九月 2007 9:<st1>58&#8221;</st1>。导致的结果就是在IE7中点开rss源的时候，发现日期没有显示。如果你不进行数据格式转换，简单的使用一个 ToString()，结果仍是如此。这里，我是写了一个方法，对它进行了格式转换：</p>
<p class="Code">// ... 省略 ...<br />
<strong>writer.WriteElementString("pubDate", GetRssDate(row[r.ItemPublicationDateField]));<br />
</strong>// ... 省略 ...<br />
<br />
public static string GetRssDate(Object date) {<br />
&nbsp;&nbsp;&nbsp; DateTime rssDate = Convert.ToDateTime(date);<br />
&nbsp;&nbsp; string[] monthName = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };<br />
<br />
&nbsp;&nbsp;&nbsp; StringBuilder sb = new StringBuilder();<br />
&nbsp;&nbsp;&nbsp; sb.Append(rssDate.Day);<br />
&nbsp;&nbsp;&nbsp; sb.Append(" ");<br />
&nbsp;&nbsp;&nbsp; sb.Append(monthName[Convert.ToInt32(rssDate.Month) - 1]);<br />
&nbsp;&nbsp;&nbsp; sb.Append(" ");<br />
&nbsp;&nbsp;&nbsp; sb.Append(rssDate.Year);<br />
&nbsp;&nbsp;&nbsp; sb.Append(" ");<br />
&nbsp;&nbsp;&nbsp; sb.Append(rssDate.ToLongTimeString());<br />
<br />
&nbsp;&nbsp;&nbsp; return sb.ToString();<br />
}</p>
<p>我看到ToString()有一个重载了的方法，接受一个IFormatProvider类型的参数，这个应该是进行格式转换的标准方式，MSDN的范例有点长了，就没有研究下去。如果哪位朋友对这里有好的解决方法，可以在回复在评论中，Thanks。</p>
<p>创建属性就像上面显示的那样容易。PublishRss()方法是我们这里关心的核心内容。我们创建了 System.Xml.XmlTextWriter类的实例。这个类是撰写XML文档的快速方式。在这个例子中，我们传递进一个OutputStream 对象，并确定编码(UTF-8)。然后我们开始写入这个文档的不同部分。我们使用XmlTextWriter类的下面这些方法。</p>
<ul>
    <li>WriteStartDocument()：这个方法写入XML 1.0版本的声明。也就是：</li>
    <li>&lt;?xml version="1.0" encoding="utf-8"?&gt;。当不写这个声明的时候，在FireFox中虽然可以订阅，但是看不到任何条目，也不能进行更新。IE7下正常。</li>
    <li>WriteStartElement：这个方法写入指定标签的起始标记。</li>
    <li>WriteAttributeString：这个方法为当前打开的标签写入属性。</li>
    <li>WriteElementString：这个方法写入一个起始标记和一个结束标记，以及起始和结束标记之间的文本。</li>
    <li>WriteEndElement：这个方法写入当前打开标记的结束标记。不需要在这里指明结束标记的名字，因为在每次嵌套的时候都会在内部(NOTE：属于底层机制)设定。</li>
    <li>Flush：这个方法将所有缓存的output清出到目的位置。</li>
</ul>
<p>注意，你必须恰当地调用 WriteStartElement()和WriteEndElement()方法以生成格式良好的(well formed)XML 文档。</p>
<h2>创建Asp.Net Web窗体</h2>
<p>现在我们已经创建好了一个通用类，我们可以在我们的Web窗体中使用它。假设我们将以Rss源形式发布的数据存储在一个表格（Article）中，这个表格的结构如下：</p>
<ul>
    <li>Title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Varchar(255)</li>
    <li>Description&nbsp;&nbsp;&nbsp;&nbsp; - Varchar(1000)</li>
    <li>Url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Varchar(255)</li>
    <li>Author&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Varchar(50)</li>
    <li>Pubdate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - DateTime</li>
</ul>
<h2>以DataSet形式获取Table内容</h2>
<p>我们将在Asp.Net Web应用程序中创建一个Rss.aspx文件，在CodeBehind中创建一个 GetDataSet()方法。这个方法使用DataAdapter来填充一个Dataset。</p>
<p class="Code">public DataSet GetDataSet() {<br />
&nbsp;&nbsp;&nbsp; SqlConnection conn = new SqlConnection("你的连接字符串");<br />
&nbsp;&nbsp;&nbsp; string sql = "Select * From Article Order By ArticleId Desc";<br />
&nbsp;&nbsp;&nbsp; SqlDataAdapter da = new SqlDataAdapter(sql,conn);<br />
&nbsp;&nbsp;&nbsp; DataSet ds = new DataSet();<br />
<br />
&nbsp;&nbsp;&nbsp; da.Fill(ds, "Article");<br />
&nbsp;&nbsp;&nbsp; return ds;<br />
}</p>
<p>接着，我们创建一个Rss类的实例，设置它的各个属性，然后调用GetDataSet()方法获取DataSet对象。</p>
<p class="Code">protected void Page_Load(object sender, EventArgs e){<br />
&nbsp;&nbsp;&nbsp; DataSet ds = GetDataSet();<br />
&nbsp;&nbsp;&nbsp; Rss rss = new Rss();<br />
&nbsp;&nbsp;&nbsp; rss.OutputStream = Response.OutputStream;<br />
&nbsp;&nbsp;&nbsp; rss.RssTitle = "DotNetBips.com Latest Articles";<br />
&nbsp;&nbsp;&nbsp; rss.PublisherUrl = Request.Url.Host;<br />
&nbsp;&nbsp;&nbsp; rss.Description = "DotNetBips.com - Applying .NET";<br />
&nbsp;&nbsp;&nbsp; rss.Copyright = "Copyright (C) DotNetBips.com.";<br />
&nbsp;&nbsp;&nbsp; rss.Generator = "DotNetBips.com RSS Generator";<br />
&nbsp;&nbsp;&nbsp; rss.ItemSource = ds;<br />
&nbsp;&nbsp;&nbsp; rss.ItemTitleField = "Title";<br />
&nbsp;&nbsp;&nbsp; rss.ItemDescriptionField = "Description";<br />
&nbsp;&nbsp;&nbsp; rss.ItemPublicationDateField = "Pubdate";<br />
&nbsp;&nbsp;&nbsp; rss.ItemUrlField = "Url";<br />
&nbsp;&nbsp;&nbsp; rss.ItemAuthor = "Author";<br />
&nbsp;&nbsp;&nbsp; Response.ContentEncoding = System.Text.Encoding.UTF8;<br />
&nbsp;&nbsp;&nbsp; Response.ContentType = "text/xml";<br />
&nbsp;&nbsp;&nbsp; Rss.PublishRss(rss);<br />
&nbsp;&nbsp;&nbsp; Response.End();<br />
}</p>
<p>当我们获得DataSet后，将ItemSource属性设置为这个DataSet。另外，我们再设置Response对象的ContentEncoding和ContentType属性。然后，调用PublishRss()方法，将这个Rss类的实例传递进去。</p>
<p>OK，现在我们在IE中浏览Rss.aspx页面，应该可以看到如下图所示的画面：</p>
<p><img alt="" src="http://www.tracefact.net/graph/Rss/01.gif" /></p>
<p class="note"><strong>NOTE：</strong>注意，此时 创建Rss源的类名和 Rss.aspx CodeBehind中的Page类名将会一样，都是Rss，所以需要手动修改Rss.aspx.cs 中的Page类名，比如，改为_Rss，则代码如下：<br />
&nbsp;&nbsp; &nbsp;public partial class _Rss : System.Web.UI.Page<br />
&nbsp;&nbsp; 同时，修改HTML页面的 inherints ：<br />
&nbsp;&nbsp; Inherits="_Rss"</p>
<h2>消费Rss源</h2>
<p>创建了Rss源以后，其他的站点可以消费这个Rss源。我会以创建一个显示 <a href="http://www.asp.net/">http://www.asp.net/</a> 最新文章的Web窗体来作为范例。</p>
<p class="note"><strong>NOTE：</strong>我想应该是因为对于发布Rss源的站点来说，使用源的站点是消费者Consumer，所以英文技术文章中使用源通常都用Consume这个词，而不用Use。</p>
<p>为了能通过一个URL来读取XML的数据，我们当然可以使用 WebRequest 和 WebResponse 对象(参考我的文章 <a href="http://www.dotnetbips.com/articles/displayarticle.aspx?id=239">Using WebRequest and WebResponse</a>)。然而，有一个更简单的方法 &#8211; DataSet。</p>
<p>DataSet类有一个叫做ReadXml()的方法，可以从硬盘的文件或者URL中读取XML数据。这个方法读取数据并自动为我们生成所需的DataTable。</p>
<p class="Code">DataSet ds = new DataSet();<br />
ds.ReadXml("http://127.0.1.1/rss.aspx");</p>
<p>这里，我们创建了一个DataSet的实例，并且通过传递URL参数来调用ReadXml()方法。可以根据需要来改变传进去的URL参数。</p>
<p class="note"><strong>NOTE：</strong>我房子暂时没有上网，所以就使用前面所创建的本地Rss源作为演示。</p>
<h2>ReadXml()方法生成的表格</h2>
<p>如果你期望ReadXml()方法会生成一个DataTable，其中包含着链接的列表，你会惊奇地发现实际上会生成三个DataTable。在 RSS 的格式这一小节的XML标记中，我们看到标记是嵌套的，DataSet会在读取数据的时候自动创建相关表。它也会为每个DataTable创建ID字段以便他们可以相互链接。</p>
<p>在这个例子中，你会得到下面构架的 DataTable：</p>
<h3>RSS</h3>
<ul>
    <li>Rss_Id</li>
    <li>Version</li>
</ul>
<h3>Channel</h3>
<ul>
    <li>Title</li>
    <li>Link</li>
    <li>Description</li>
    <li>Language</li>
    <li>Generator</li>
    <li>Channel_Id</li>
    <li>Rss_Id</li>
</ul>
<h3>Item</h3>
<ul>
    <li>Creator</li>
    <li>Title</li>
    <li>Link</li>
    <li>PubDate</li>
    <li>Guid</li>
    <li>Description</li>
    <li>Channel_Id</li>
</ul>
<p>注意一些字段，比如Creator和 Guid 并没有在Rss标记中出现。另外注意DataSet是如何添加Rss_Id和Channel_Id这样的字段来关联DataTable的。</p>
<p>现在我们已经知道了表的结构，让我们编写一些代码来在GridView中显示这些数据。</p>
<h2>在GridView中显示数据</h2>
<p>从Rss源中获得的详细信息来看，第三张表是最重要的，因为它包含了实际的链接数据。这里我们将我们的GridView与第三个DataTable进行绑定。</p>
<p class="Code">GridView1.DataSource = ds.Tables[2].DefaultView;<br />
GridView1.DataBind();</p>
<p>一旦你在PageLoad事件中调用这段代码，可以看到类似下面这样的屏幕截图：</p>
<p><img alt="" src="http://www.tracefact.net/graph/Rss/02.gif" /></p>
<h2>加入浏览器支持</h2>
<p>IE7 和 FireFox 都提供了对Rss的支持，为了使浏览器提供Rss支持，你必须先告诉它们你的站点创建了Rss源。只需要在&lt;head&gt;&lt;/head&gt;标签中加入如下代码即可：</p>
<p class="Code">&lt;link rel="alternate" type="application/rss+xml" title="Your Web Site&#8217;s RSS Feed Title " href="http://www.yourdomain.net/rss.aspx" /&gt;</p>
<p>这时再打开加入上面&lt;link&gt;的页面，会发现IE7的 RSS图标由灰色变成了明亮的桔红色。</p>
<h2>总结</h2>
<p>在这篇文章中，我们了解了什么是RSS，以及如何为你的站点生成RSS源。我们使用XmlTextWriter类来创建Rss标记。我们创建了一个通用类，以便它可以在任何Web应用程序中使用。</p>
<p>随后，我们了解了如何使用DataSet来消费Rss源。Rss源是一个嵌套的XML标记，DataSet自动创建彼此相关的DataTable。第三张表(ITem)包含了Rss源的核心数据。</p>
<p>希望这篇文章能给你带来帮助。</p>
</div>
 <img src ="http://www.cnblogs.com/liping13599168/aggbug/1227502.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41937/" target="_blank">[新闻]Google拟在9月发布自有浏览器 或采用火狐内核</a>]]></description></item><item><title>在ASP.Net中利用JS调用Aspx页面的输出(转)</title><link>http://www.cnblogs.com/liping13599168/archive/2008/06/20/1226302.html</link><dc:creator>Leepy</dc:creator><author>Leepy</author><pubDate>Thu, 19 Jun 2008 18:25:00 GMT</pubDate><guid>http://www.cnblogs.com/liping13599168/archive/2008/06/20/1226302.html</guid><wfw:comment>http://www.cnblogs.com/liping13599168/comments/1226302.html</wfw:comment><comments>http://www.cnblogs.com/liping13599168/archive/2008/06/20/1226302.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/liping13599168/comments/commentRss/1226302.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/liping13599168/services/trackbacks/1226302.html</trackback:ping><description><![CDATA[在实际开发中如新闻系统就需要利用js来调用某分类的新闻等.<br />
<br />
非Codebehind版<br />
Showjs.aspx<br />
----------------------------<br />
&lt;%Response.Write ("document.write('output')")%&gt;<br />
Showjs.html<br />
---------------------------<br />
&lt;script language="JavaScript" Src="Showjs.aspx"&gt;&lt;/script&gt;<br />
这样就可以正常查看showjs.html输出"output"<br />
<br />
Codebehind版<br />
用Vs.Net新建showjs.aspx然后把除此句以外的html代码全部删除<br />
&lt;%@ Page language="c#" Codebehind="showjs.aspx.cs" AutoEventWireup="false" Inherits="Hover.showjs" %&gt;<br />
然后在showjs.aspx.cs里Page_Load()里<br />
Response.Write ("document.write('output')");<br />
这样就能正常输出<br />
否则在Showjs.html里调用此Showjs.aspx时会报脚本错误了<br />
因为当你查看showjs.aspx运行时的html代码你就明白了因为它的输出不光是document.write('output')<br />
还包括aspx的默认文档的html代码所以调用不了！<br />
 <img src ="http://www.cnblogs.com/liping13599168/aggbug/1226302.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41936/" target="_blank">[新闻]微软正在构思将Wi-Fi带入汽车</a>]]></description></item><item><title>解密淘宝网的开源架构</title><link>http://www.cnblogs.com/liping13599168/archive/2008/06/19/1225207.html</link><dc:creator>Leepy</dc:creator><author>Leepy</author><pubDate>Thu, 19 Jun 2008 01:58:00 GMT</pubDate><guid>http://www.cnblogs.com/liping13599168/archive/2008/06/19/1225207.html</guid><wfw:comment>http://www.cnblogs.com/liping13599168/comments/1225207.html</wfw:comment><comments>http://www.cnblogs.com/liping13599168/archive/2008/06/19/1225207.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/liping13599168/comments/commentRss/1225207.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/liping13599168/services/trackbacks/1225207.html</trackback:ping><description><![CDATA[淘宝网，是一个在线商品数量突破一亿，日均成交额超过两亿元人民币，注册用户接近八千万的大型电子商务网站，是亚洲最大的购物网站。那么对于淘宝网这样大规模的一个网站，我猜想大家一定会非常关心整个网站都采用了什么样的技术、产品和架构，也会很想了解在淘宝网中是否采用了开源的软件或者是完全采用的商业软件。那么下面我就简单的介绍一下淘宝网中应用的开源软件。<br />
<br />
　　对于规模稍大的网站来说，其IT必然是一个服务器集群来提供网站服务，数据库也必然要和应用服务分开，有单独的数据库服务器。对于像淘宝网这样规模的网站而言，就是应用也分成很多组。那么下面，我就从应用服务器操作系统、应用服务器软件、Web Server、数据库、开发框架等几个方面来介绍一下淘宝网中开源软件的应用。<br />
<br />
　　<strong>操作系统</strong><br />
<br />
　　我们首先就从应用服务器的操作系统说起。一个应用服务器，从软件的角度来说他的最底层首先是操作系统。要先选择操作系统，然后才是操作系统基础上的应用软件。在淘宝网，我们的应用服务器上采用的是Linux操作系统。Linux操作系统从1991年第一次正式被公布到现在已经走过了十七个年头，在PC Server上有广泛的应用。硬件上我们选择PC Server而不是小型机，那么Server的操作系统供我们选择的一般也就是Linux，FreeBSD, windows 2000 Server或者Windows Server 2003。如果不准备采用微软的一系列产品构建应用，并且有能力维护Linux或者FreeBSD，再加上成本的考虑，那么还是应该在Linux和 FreeBSD之间进行选择。可以说，现在Linux和FreeBSD这两个系统难分伯仲，很难说哪个一定比另外一个要优秀很多、能够全面的超越对手，应该是各有所长。那么在选择的时候有一个因素就是企业的技术人员对于哪种系统更加的熟悉，这个熟悉一方面是系统管理方面，另外一方面是对于内核的熟悉，对内核的熟悉对于性能调优和对操作系统进行定制剪裁会有很大的帮助。而应用全面的优化、提升性能也是从操作系统的优化开始的。<br />
<br />
　　<strong>应用服务器</strong><br />
<br />
　　在确定了服务器的硬件、服务器的操作系统之后，下面我们来说说业务系统的构建。淘宝网有很多业务系统应用是基于JEE规范的系统。还有一些是C C++构建的应用或者是Java构建的Standalone的应用。那么我们要选择一款实现了JEE规范的应用服务器。我们的选择是JBoss Applcation Server。JBoss AS是RedHat的一个开源的支持JEE规范的应用服务器。在几年前，如果采用Java技术构建互联网应用或者企业级应用，在开源软件中的选择一般也就是Apache组织的Tomcat、JBoss的 JBoss AS和Resin。严格意义上讲，Tomcat和Resin并不能算是一个应用服务器，他们是实现了部分J2EE规范的一个容器。而商业软件的选择就是 IBM的WebSphere和BEA的WebLogic。到了现在，除了JBoss AS外，Apache的Geronimo，Sun的Glassfish也都是很优秀的JEE应用服务器。也给现在的开发人员提供了更多的选择。具体对于目前JEE应用服务器的比较。这边就不在赘述。<br />
<br />
　　在应用服务器前端，我们采用了Web Server做了一次转发，我们选择的Web服务器是大名鼎鼎的Apache。几年前，Apache几乎是Linux系统上开源Web Server的唯一选择。那个时候虽然也有一些其他的开源的Web Server，但是从功能和稳定性上来说都无法和Apache相对。在今天来说，Lighty也会是一个非常好的选择。Lighty是一个非常轻量级、占用内存资源也比较少的Web Server。虽然功能上没有Apache强大，但是在不少场景下，性能是非常出色、强于Apache的。而微软的IIS，就只能工作在Windows的系统上了。并且使用IIS的话，基本上也就是选择了ISAPI、ASP或者ASP.NET进行Web应用的开发了。<br />
<br />
　　<strong>数据库</strong><br />
<br />
　　说完了我们采用的操作系统、应用服务器、WebServer后，下面就来谈谈我们的数据库。在淘宝网的应用中，采用了两种关系型数据库管理系统。一个是 Oracle公司的Oracle 10g，另外一个是Sun MySQL的MySQL。Oracle是一款优秀的、广泛采用的商业数据库管理软件。有很强大的功能和安全性，可以处理相对海量的数据。而MySQL是一款非常优秀的开源数据库管理软件，非常适合用多台PC Server组成多点的存储节点阵列(这里我所指的不是MySQL自身提供的集群功能)，每单位的数据存储成本也非常的低廉。用多台PC Server安装MySQL组成一个存储节点阵列，通过MySQL自身的Replication或者应用自身的处理，可以很好的保证容错(允许部分节点失效)，保证应用的健壮性和可靠性。可以这么说，在关系数据库管理系统的选择上，可以考虑应用本身的情况来决定。<br />
<br />
　　一个互联网应用，除了服务器的操作系统，Web Server软件，应用服务器软件，数据库软件外，我们还会涉及到一些其他的系统，比如一些中间件系统、文件存储系统、搜索、分布式框架、缓存系统等等。在淘宝网，这些系统都是自主开发的，没有采用目前商业的或者开源的产品。有些系统，会存在着一些开源的产品或者商业产品。但是，考虑到淘宝网自己的需求和大并发量的压力，这些系统都选择了自主开发框架。<br />
<br />
　　前面谈的都是系统级的产品，下面我们说说开发框架的使用。可能有朋友想问，作为一个如此大规模的网站，淘宝网的Web展现层采用的是什么框架，是怎么实现的呢？曾经也有到淘宝的应聘者问过我这个问题，他问我说是不是用的 struts。我告诉他说不是的。其实淘宝网的Web展现层的框架用的不是struts，不是webwork，不是spring mvc等等。淘宝网的Web展现层的框架用的是集团内部自主开发的一套Web框架。这个框架能够解决一些其他Web框架不能解决的、在淘宝的应用中又会出现并需要解决的问题。在淘宝的多个应用中，也采用了一些开源的框架，比如Spring、iBatis、jBPM、Hessian、Mina等等。这些开源软件的采用为我们构建应用系统提供了很大的帮助。<br />
<br />
　　采用开源软件构建系统，我想有两个很大的好处：<br />
<br />
　　一个是降低成本。假设你有1000台应用服务器，如果你每台服务器上采用的不是JBoss AS或者其他开源的软件，而是使用商业的Oracle BEA的Weblogic或者IBM的WebSphere，那么为这1000台机器的应用购买License的费用是非常高的。<br />
<br />
　　另外一个好处(我觉得最大的好处)是你可以看到软件的源码，你可以研究了解软件内部的工作过程、原理。这对于应用设计、开发、查错、优化都是非常有帮助的。<br />
<br />
　　<strong>淘宝网的开源观</strong><br />
<br />
　　对于开源软件的应用，有些人可能担心质量的问题，有些人可能担心软件本身发展更新的问题，等等。对于质量的问题，我想现在很多的开源软件尤其是一些很著名的开源软件都有很完善的组织，有完善的开发、测试、发布流程。在一个新版本完成前，会有多次的测试版本发布，最后才是正式版。这和商业软件是一样的。并且因为代码公开，反而更加的容易发现错误，提高质量。至于第二个问题，我想跟第一个问题一样，关键是组织和规划而不在是否开源，并且在很多著名的开源软件背后，会有厂商在进行支持。软件本身的发展应该是不会成为问题的，不太会出现软件突然停止发展的情况。<br />
<br />
　　在今后的发展中，我们还是会一如既往的关注开源软件的发展，也还会根据需要采用不同的开源软件。在选择一个开源产品的时候，我会考虑以下几点：<br />
<br />
1. 这个软件目前的功能和它的RoadMap<br />
<br />
2. 软件本身的架构<br />
<br />
3. 该软件开发的活跃度<br />
<br />
4. 该开源软件是否是遵守该领域内的国际规范的<br />
<br />
5. 在同类产品中，要挑选有比较优势的。并且要考虑可能存在的移植代价。这个移植指的是采用了这款开源软件后现有系统的移植，或者是从这个开源软件到其他软件的移植。<br />
<br />
　　对于企业级系统、互联网应用来说，采用开源软件不仅可以降低成本，更重要的是能够真正了解软件的内部工作机制。还可以在现在的基础上进行增强和定制，也能够从开源软件中借鉴到很多好的设计和实现。希望国内能有更多的企业在使用开源软件的同时，也能开源自身的一些软件，或者能够成为一些开源软件的贡献者。而作为淘宝网，我们也会非常积极的参与到开源的活动中，也会努力为开源的发展做出我们应有的贡献。<br />
<br />
<em>作者简介：曾宪杰，现任淘宝网平台架构部架构师。2002年毕业于浙江大学计算机系，先后在中科院下属企业、先锋电子(中国)就职。有丰富的Windows平台、企业级系统设计经验。现主要研究领域包括消息中间件的设计开发、分布式系统、分布式存储。</em><br />
<br />
来自: <a href="http://publish.itpub.net/o/2008-06-18/200806180707423.shtml" target="_blank">itpub</a>
 <img src ="http://www.cnblogs.com/liping13599168/aggbug/1225207.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41935/" target="_blank">[新闻]对比测试：IE8 Beta 2 VS Firefox 3.0.1</a>]]></description></item><item><title>在ASP.NET中实现Model-View-Presenter(MVP) (转)</title><link>http://www.cnblogs.com/liping13599168/archive/2008/03/23/1118193.html</link><dc:creator>Leepy</dc:creator><author>Leepy</author><pubDate>Sat, 22 Mar 2008 16:38:00 GMT</pubDate><guid>http://www.cnblogs.com/liping13599168/archive/2008/03/23/1118193.html</guid><wfw:comment>http://www.cnblogs.com/liping13599168/comments/1118193.html</wfw:comment><comments>http://www.cnblogs.com/liping13599168/archive/2008/03/23/1118193.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/liping13599168/comments/commentRss/1118193.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/liping13599168/services/trackbacks/1118193.html</trackback:ping><description><![CDATA[摘要: [原文地址]Implementing Model-View-Presenter in ASP.NET[原文作者]Alex Mueller[示例代码]下载示例代码介绍我在ASP.NET中使用MVP设计模式已经一年有余，在此之前我在一个使用事件驱动实现的SmartClient应用程序中第一次接触到了MVP模式，与富客户端环境相比，将MVP模式应用到Web环境仍然存在一些问题。本文将介绍这些问题，并提供&nbsp;&nbsp;<a href='http://www.cnblogs.com/liping13599168/archive/2008/03/23/1118193.html'>阅读全文</a><img src ="http://www.cnblogs.com/liping13599168/aggbug/1118193.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41934/" target="_blank">[新闻]iPhone存在严重密码安全漏洞</a>]]></description></item><item><title>C#版 Tag云图控件</title><link>http://www.cnblogs.com/liping13599168/archive/2008/02/21/1076645.html</link><dc:creator>Leepy</dc:creator><author>Leepy</author><pubDate>Thu, 21 Feb 2008 08:32:00 GMT</pubDate><guid>http://www.cnblogs.com/liping13599168/archive/2008/02/21/1076645.html</guid><wfw:comment>http://www.cnblogs.com/liping13599168/comments/1076645.html</wfw:comment><comments>http://www.cnblogs.com/liping13599168/archive/2008/02/21/1076645.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/liping13599168/comments/commentRss/1076645.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/liping13599168/services/trackbacks/1076645.html</trackback:ping><description><![CDATA[摘要: 今天看到TerryLee的一篇文章http://www.cnblogs.com/Terrylee/archive/2008/02/20/1075764.html，其中有一条ASP.NET Tag/Search Cloud Server Control（导读：在Web2.0时代，Tag成为了一个标志，通常一些网站都会采用Tag云图来显示。有“好事者”干脆开发了一个Tag云的ASP.NET服务器控件），里边的源文件是用vb写的，我就把代码改改，转换成C#的了&nbsp;&nbsp;<a href='http://www.cnblogs.com/liping13599168/archive/2008/02/21/1076645.html'>阅读全文</a><img src ="http://www.cnblogs.com/liping13599168/aggbug/1076645.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41931/" target="_blank">[新闻]GC2008：星际争霸2进程报告 微调进程延续</a>]]></description></item><item><title>步步为营VS 2008 + .NET 3.5系列文章索引(转自webabcd)</title><link>http://www.cnblogs.com/liping13599168/archive/2008/02/04/1064232.html</link><dc:creator>Leepy</dc:creator><author>Leepy</author><pubDate>Mon, 04 Feb 2008 03:56:00 GMT</pubDate><guid>http://www.cnblogs.com/liping13599168/archive/2008/02/04/1064232.html</guid><wfw:comment>http://www.cnblogs.com/liping13599168/comments/1064232.html</wfw:comment><comments>http://www.cnblogs.com/liping13599168/archive/2008/02/04/1064232.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/liping13599168/comments/commentRss/1064232.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/liping13599168/services/trackbacks/1064232.html</trackback:ping><description><![CDATA[<p>作者：<a href="http://webabcd.cnblogs.com/" target="_blank">webabcd</a><br />
<br />
<br />
介绍<br />
<font face="Courier New"><font face="Verdana"><font face="Verdana"><font face="Verdana"><font face="Verdana"><font face="Verdana"><font face="Verdana"><font face="Verdana"><font face="Verdana"><font face="Verdana"><font face="Verdana"><font face="Verdana"><font face="Verdana"><font face="Courier New"><font face="Courier New"><font face="Courier New">步步为营VS 2008 + .NET 3.5系列文章索引</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>：VS 2008新特性、<font face="Courier New">C# 3.0新特性</font>、<font face="Courier New">LINQ查询操作符</font>、<font face="Courier New">DLINQ(LINQ to SQL)</font>、<font face="Courier New">XLINQ(LINQ to XML)<br />
</font></font><br />
<br />
<font face="Courier New">1、<a href="http://www.cnblogs.com/webabcd/archive/2007/10/09/917775.html" target="_blank"><font face="Courier New">步步为营VS 2008 + .NET 3.5(1) - VS 2008新特性之Multi Targeting（多定向）、Web Designer and CSS（集成了CSS的web设计器）和Nested Master Page（嵌套母版页）</font></a><br />
介绍<br />
&#183;Multi Targeting（多定向）：<font face="Verdana">发人员就可以明确地指定.NET Framework 2.0或者3.0或者3.5版本，VS会自动地过滤Intellisense、工具箱控件、模板等诸如此类的东西</font><br />
&#183;Web Designer and CSS（集成了CSS的web设计器）：增加了&#8220;拆分&#8221;设计视图，增加了&#8220;<font face="Verdana">管理样式</font>&#8221;、&#8220;<font face="Verdana">应用样式</font>&#8221;和&#8220;<font face="Verdana">CSS属性</font>&#8221;，<font face="Verdana">&#8220;视图&#8221;菜单中增加了&#8220;标尺和网格&#8221;、&#8220;可视辅助&#8221;和&#8220;格式标记&#8221;</font><br />
&#183;Nested Master Page（嵌套母版页）：支持母版页的多层嵌套<br />
<br />
<font face="Courier New">2、<a href="http://www.cnblogs.com/webabcd/archive/2007/10/10/918913.html" target="_blank"><font face="Courier New">步步为营VS 2008 + .NET 3.5(2) - VS 2008新特性之JavaScript Intellisense and Debugging（JavaScript的智能感知和调试）</font></a><br />
</font>介绍<br />
<font face="Verdana"><font face="Verdana">VS 2008可以非常完美地支持JavaScript和ASP.NET AJAX的智能感知和调试。.NET 3.5内置了ASP.NET AJAX，并且UpdatePanel终于可以支持WebPart了。</font></font><br />
<br />
<font face="Courier New">3、<a href="http://www.cnblogs.com/webabcd/archive/2007/10/11/920349.html" target="_blank"><font face="Courier New">步步为营VS 2008 + .NET 3.5(3) - C# 3.0新特性之Automatic Properties（自动属性）、Object Initializers（对象初始化器）、Collection Initializers（集合初始化器）和Extension Methods（扩展方法）</font></a><br />
</font>介绍<br />
&#183;Automatic Properties（自动属性）<br />
&#183;Object Initializers（对象初始化器）<br />
&#183;Collection Initializers（集合初始化器）<br />
&#183;Extension Methods（扩展方法）<br />
<br />
<font face="Courier New">4、<a href="http://www.cnblogs.com/webabcd/archive/2007/10/12/921748.html" target="_blank"><font face="Courier New">步步为营VS 2008 + .NET 3.5(4) - C# 3.0新特性之LambdaExpressions（Lambda表达式）、QuerySyntax（查询语法）和AnonymousTypes（匿名类型）</font></a><br />
介绍<br />
&#183;LambdaExpressions（Lambda表达式）<br />
&#183;QuerySyntax（查询语法）<br />
&#183;AnonymousTypes（匿名类型）<br />
<br />
<font face="Courier New">5、<a href="http://www.cnblogs.com/webabcd/archive/2007/10/15/924254.html" target="_blank"><font face="Courier New">步步为营VS 2008 + .NET 3.5(5) - LINQ查询操作符之Select、Where、OrderBy、OrderByDescending、GroupBy、Join、GroupJoin及其对应的查询语法</font></a><br />
</font>介绍<br />
&#183;Select - <font face="Verdana">Select选择；延迟</font><br />
&#183;Where - <font face="Verdana">Where查询；延迟</font><br />
&#183;OrderBy - <font face="Verdana">按指定表达式对集合正序排序；延迟</font><br />
&#183;OrderByDescending - <font face="Verdana">按指定表达式对集合倒序排序；延迟</font><br />
&#183;GroupBy - <font face="Verdana">分组；延迟</font><br />
&#183;Join - <font face="Verdana">Join查询；延迟</font><br />
&#183;GroupJoin - <font face="Verdana">分组Join查询；延迟</font><br />
&#183;以上查询操作符所对应的查询语法<br />
<br />
<font face="Courier New">6、<a href="http://www.cnblogs.com/webabcd/archive/2007/10/16/925610.html" target="_blank"><font face="Courier New">步步为营VS 2008 + .NET 3.5(6) - LINQ查询操作符之Distinct、Union、Concat、Intersect、Except、Skip、Take、SkipWhile、TakeWhile、Single、SingleOrDefault、Reverse、SelectMany</font></a><br />
</font>介绍<br />
&#183;Distinct - <font face="Verdana">过滤集合中的相同项；延迟</font><br />
&#183;Union - <font face="Verdana">连接不同集合，自动过滤相同项；延迟</font><br />
&#183;Concat - <font face="Verdana">连接不同集合，不会自动过滤相同项；延迟</font><br />
&#183;Intersect - <font face="Verdana">获取不同集合的相同项（交集）；延迟</font><br />
&#183;Except - <font face="Verdana">从某集合中删除其与另一个集合中相同的项；延迟</font><br />
&#183;Skip - <font face="Verdana">跳过集合的前n个元素；延迟</font><br />
&#183;Take - <font face="Verdana">获取集合的前n个元素；延迟</font><br />
&#183;SkipWhile - <font face="Verdana">直到某一条件成立就停止跳过；延迟</font><br />
&#183;TakeWhile - <font face="Verdana">直到某一条件成立就停止获取；延迟</font><br />
&#183;Single - <font face="Verdana">根据表达式返回集合中的某一元素；<font face="Courier New">不延迟</font></font><br />
&#183;SingleOrDefault - <font face="Verdana">根据表达式返回集合中的某一元素（如果没有则返回默认值）；<font face="Courier New">不延迟</font></font><br />
&#183;Reverse - <font face="Verdana">对集合反向排序；延迟</font><br />
&#183;SelectMany - <font face="Verdana">Select选择（一对多）；延迟</font><br />
<br />
<font face="Courier New">7、<a href="http://www.cnblogs.com/webabcd/archive/2007/10/17/926855.html" target="_blank"><font face="Courier New">步步为营VS 2008 + .NET 3.5(7) - LINQ查询操作符之First、FirstOrDefault、Last、LastOrDefault、ElementAt、ElementAtOrDefault、Contains、Any、All、Count、LongCount、Sum、Min、Max、Average、Aggregate、Cast、DefaultIfEmpty、SequenceEqual、OfType、ToArray、ToList、ToDictionary</font></a><br />
</font>介绍<br />
&#183;First<font face="Verdana">&nbsp;- 返回集合中的第一个元素；不延迟</font><br />
&#183;FirstOrDefault<font face="Verdana">&nbsp;- 返回集合中的第一个元素（如果没有则返回默认值）；不延迟</font><br />
&#183;Last<font face="Verdana">&nbsp;- 返回集合中的最后一个元素；不延迟</font><br />
&#183;LastOrDefault<font face="Verdana">&nbsp;- 返回集合中的最后一个元素（如果没有则返回默认值）</font><br />
&#183;ElementAt<font face="Verdana">&nbsp;- 返回集合中指定索引的元素；不延迟</font><br />
&#183;ElementAtOrDefault<font face="Verdana">&nbsp;- 返回集合中指定索引的元素（如果没有则返回默认值）；不延迟</font><br />
&#183;Contains<font face="Verdana">&nbsp;- 判断集合中是否包含有某一元素；不延迟</font><br />
&#183;Any<font face="Verdana">&nbsp;- 判断集合中是否有元素满足某一条件；不延迟</font><br />
&#183;All<font face="Verdana">&nbsp;- 判断集合中是否所有元素都满足某一条件；不延迟</font><br />
&#183;Count<font face="Verdana">&nbsp;- 返回集合中的元素个数，返回int；不延迟</font><br />
&#183;LongCount<font face="Verdana">&nbsp;- 返回集合中的元素个数，返回long；不延迟</font><br />
&#183;Sum<font face="Verdana">&nbsp;- 集合应为数字类型集合，求其和；不延迟</font><br />
&#183;Min<font face="Verdana">&nbsp;- 返回集合的最小值；不延迟</font><br />
&#183;Max<font face="Verdana">&nbsp;- 返回集合的最大值；不延迟</font><br />
&#183;Average<font face="Verdana">&nbsp;- 集合应为数字类型集合，求其平均值；不延迟</font><br />
&#183;Aggregate<font face="Verdana">&nbsp;- 根据输入的表达式获取一个聚合值；不延迟</font><br />
&#183;Cast<font face="Verdana">&nbsp;- 将集合转换为强类型集合；延迟</font><br />
&#183;DefaultIfEmpty<font face="Verdana">&nbsp;- 查询结果为空则返回默认值；延迟</font><br />
&#183;SequenceEqual<font face="Verdana">&nbsp;- 判断两个集合是否相同；不延迟</font><br />
&#183;OfType<font face="Verdana">&nbsp;- <font face="Verdana">过滤集合中的指定类型<font face="Verdana">；延迟</font></font></font><br />
&#183;ToArray<font face="Verdana">&nbsp;- 将集合转换为数组；不延迟</font><br />
&#183;ToList<font face="Verdana">&nbsp;- 将集合转换为List&lt;T&gt;集合；不延迟</font><br />
&#183;ToDictionary<font face="Verdana">&nbsp;- 将集合转换为&lt;K, V&gt;集合；不延迟</font><br />
<br />
<font face="Courier New">8、<a href="http://www.cnblogs.com/webabcd/archive/2007/10/18/928353.html" target="_blank"><font face="Courier New">步步为营VS 2008 + .NET 3.5(8) - DLINQ(LINQ to SQL)之面向对象的添加、查询、更新和删除</font></a><br />
</font>介绍<br />
<font face="Courier New">以Northwind为示例数据库，DLINQ(LINQ to SQL)之完全面向对象的添加操作、查询操作、更新操作和删除操作</font><br />
<br />
<font face="Courier New">9、<a href="http://www.cnblogs.com/webabcd/archive/2007/10/19/929803.html" target="_blank"><font face="Courier New">步步为营VS 2008 + .NET 3.5(9) - DLINQ(LINQ to SQL)之执行SQL语句的添加、查询、更新和删除</font></a><br />
介绍<br />
<font face="Courier New">以Northwind为示例数据库，DLINQ(LINQ to SQL)之执行指定SQL语句的添加操作、查询操作、更新操作和删除操作</font><br />
<br />
<font face="Courier New">10、<a href="http://www.cnblogs.com/webabcd/archive/2007/10/22/932632.html" target="_blank"><font face="Courier New">步步为营VS 2008 + .NET 3.5(10) - DLINQ(LINQ to SQL)之调用存储过程的添加、查询、更新和删除</font></a><br />
介绍<br />
<font face="Courier New">以Northwind为示例数据库，DLINQ(LINQ to SQL)之调用指定存储过程的添加操作、查询操作、更新操作和删除操作</font><br />
<br />
<font face="Courier New">11、<a href="http://www.cnblogs.com/webabcd/archive/2007/10/23/933896.html" target="_blank"><font face="Courier New">步步为营VS 2008 + .NET 3.5(11) - DLINQ(LINQ to SQL)之大数据量分页、延迟执行和日志记录</font></a><br />
介绍<br />
<font face="Courier New">以Northwind为示例数据库，DLINQ(LINQ to SQL)之结合GridView控件和ObjectDataSource控件演示大数据量分页，同时介绍延迟执行和日志记录</font><br />
<br />
<font face="Courier New">12、<a href="http://www.cnblogs.com/webabcd/archive/2007/10/24/935450.html" target="_blank"><font face="Courier New">步步为营VS 2008 + .NET 3.5(12) - DLINQ(LINQ to SQL)之事务处理和并发处理</font></a><br />
</font>介绍<br />
<font face="Courier New">以Northwind为示例数据库，DLINQ(LINQ to SQL)之事务处理和并发处理</font><br />
<br />
<font face="Courier New">13、<a href="http://www.cnblogs.com/webabcd/archive/2007/10/25/936861.html" target="_blank"><font face="Courier New">步步为营VS 2008 + .NET 3.5(13) - DLINQ(LINQ to SQL)之用户自定义函数、在不同的DataContext之间做更新、缓存、获取信息、数据加载选项和延迟加载</font></a><br />
介绍<br />
<font face="Courier New">以Northwind为示例数据库，DLINQ(LINQ to SQL)之调用标量值用户自定义函数；调用表值用户自定义函数；使用数据加载选项加载数据；相关信息的获取；字段的延迟加载；在不同的DataContext之间做更新；缓存 </font><br />
<br />
<font face="Courier New">14、<a href="http://www.cnblogs.com/webabcd/archive/2007/10/26/938122.html" target="_blank"><font face="Courier New">步步为营VS 2008 + .NET 3.5(14) - XLINQ(LINQ to XML)之针对XML文件的添加、查询、更新和删除</font></a><br />
介绍<br />
<font face="Courier New">以某一XML文件为例，XLINQ(LINQ to XML)之针对XML文件的添加操作、查询操作、更新操作和删除操作</font><br />
<br />
<br />
OK</font></font></font></font></font></font></font></p>
 <img src ="http://www.cnblogs.com/liping13599168/aggbug/1064232.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41930/" target="_blank">[新闻]科学家在世界最大对撞机中观察到首批粒子</a>]]></description></item><item><title>开始学习VS2008+.net3.5咯 :)</title><link>http://www.cnblogs.com/liping13599168/archive/2008/02/04/1064230.html</link><dc:creator>Leepy</dc:creator><author>Leepy</author><pubDate>Mon, 04 Feb 2008 03:53:00 GMT</pubDate><guid>http://www.cnblogs.com/liping13599168/archive/2008/02/04/1064230.html</guid><wfw:comment>http://www.cnblogs.com/liping13599168/comments/1064230.html</wfw:comment><comments>http://www.cnblogs.com/liping13599168/archive/2008/02/04/1064230.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/liping13599168/comments/commentRss/1064230.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/liping13599168/services/trackbacks/1064230.html</trackback:ping><description><![CDATA[<p>搞技术的就是要不断接受新技术，完善自己<img src="http://www.cnblogs.com/Emoticons/qface/055242240.gif"  alt="" />！</p>
 <img src ="http://www.cnblogs.com/liping13599168/aggbug/1064230.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41930/" target="_blank">[新闻]科学家在世界最大对撞机中观察到首批粒子</a>]]></description></item><item><title>在IE7下使用Fiddler</title><link>http://www.cnblogs.com/liping13599168/archive/2008/01/15/1039041.html</link><dc:creator>Leepy</dc:creator><author>Leepy</author><pubDate>Mon, 14 Jan 2008 16:38:00 GMT</pubDate><guid>http://www.cnblogs.com/liping13599168/archive/2008/01/15/1039041.html</guid><wfw:comment>http://www.cnblogs.com/liping13599168/comments/1039041.html</wfw:comment><comments>http://www.cnblogs.com/liping13599168/archive/2008/01/15/1039041.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/liping13599168/comments/commentRss/1039041.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/liping13599168/services/trackbacks/1039041.html</trackback:ping><description><![CDATA[<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;不知道大家有没有发现IE7里面Fiddler有时候不能拦截请求，原因是我们调试大多采用了localhost,但是很糟糕的是在IE7中不能通过localhost验证，所以觉得IE7中只能调试带有主机名的地址，后来发现在localhost后面加个&#8220;."，即localhost.，诶，居然可以通过调试了，也不知道怎么回事呢！不过既然能用了就行<img src="http://www.cnblogs.com/Emoticons/msn/tongue_smile.gif"  alt="" />!</p>
<img src ="http://www.cnblogs.com/liping13599168/aggbug/1039041.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41929/" target="_blank">[新闻]阿里巴巴利润增1.36倍</a>]]></description></item><item><title>javascript让firefox支持innerText</title><link>http://www.cnblogs.com/liping13599168/archive/2008/01/05/1027428.html</link><dc:creator>Leepy</dc:creator><author>Leepy</author><pubDate>Sat, 05 Jan 2008 15:55:00 GMT</pubDate><guid>http://www.cnblogs.com/liping13599168/archive/2008/01/05/1027428.html</guid><wfw:comment>http://www.cnblogs.com/liping13599168/comments/1027428.html</wfw:comment><comments>http://www.cnblogs.com/liping13599168/archive/2008/01/05/1027428.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/liping13599168/comments/commentRss/1027428.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/liping13599168/services/trackbacks/1027428.html</trackback:ping><description><![CDATA[摘要: firefox浏览器不支持innerText的JS属性，本文利用一段javascript代码实现firefox对于innerText的支持&nbsp;&nbsp;<a href='http://www.cnblogs.com/liping13599168/archive/2008/01/05/1027428.html'>阅读全文</a><img src ="http://www.cnblogs.com/liping13599168/aggbug/1027428.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41928/" target="_blank">[新闻]Google Gears覆盖四大浏览器 Safari版推出</a>]]></description></item><item><title>我的2007，我的奋斗</title><link>http://www.cnblogs.com/liping13599168/archive/2007/12/23/1011627.html</link><dc:creator>Leepy</dc:creator><author>Leepy</author><pubDate>Sun, 23 Dec 2007 09:55:00 GMT</pubDate><guid>http://www.cnblogs.com/liping13599168/archive/2007/12/23/1011627.html</guid><wfw:comment>http://www.cnblogs.com/liping13599168/comments/1011627.html</wfw:comment><comments>http://www.cnblogs.com/liping13599168/archive/2007/12/23/1011627.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://www.cnblogs.com/liping13599168/comments/commentRss/1011627.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/liping13599168/services/trackbacks/1011627.html</trackback:ping><description><![CDATA[摘要: 看到博客园里面有这么多朋友都对“我的2007”各抒己见，我也想对于即将过去的2007做个总结吧，首先，我要感谢DUDU把我带到了这个充满技术色彩和技术硝烟的程序员大家园――博客园，我大概是从去年10月份注册的吧，到现在已经陪伴我一年多了，而当时（大四上学期）也是自己现在公司开始了自己的实习，实际上就是“创业”，一群年轻的小伙们，我觉得这段时间技术上的提升给我带来了莫大的帮助！所以，我先对DUDU同志给予最深刻的祝愿：祝博客园越办越好，祝DUDU事业上节节攀升！&nbsp;&nbsp;<a href='http://www.cnblogs.com/liping13599168/archive/2007/12/23/1011627.html'>阅读全文</a><img src ="http://www.cnblogs.com/liping13599168/aggbug/1011627.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41927/" target="_blank">[新闻]Internet Explorer 8 Beta 2 发布</a>]]></description></item><item><title>用GridView编辑更新独立的单元格</title><link>http://www.cnblogs.com/liping13599168/archive/2007/12/16/996526.html</link><dc:creator>Leepy</dc:creator><author>Leepy</author><pubDate>Sun, 16 Dec 2007 03:32:00 GMT</pubDate><guid>http://www.cnblogs.com/liping13599168/archive/2007/12/16/996526.html</guid><wfw:comment>http://www.cnblogs.com/liping13599168/comments/996526.html</wfw:comment><comments>http://www.cnblogs.com/liping13599168/archive/2007/12/16/996526.html#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://www.cnblogs.com/liping13599168/comments/commentRss/996526.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/liping13599168/services/trackbacks/996526.html</trackback:ping><description><![CDATA[摘要: 在asp.net 中，GridView允许你通过EditIndex属性来修改数据的一行，同样也必须进行整行更新。<br>你可能不想对整行进行更新，并且常规更新是利用EditItemTemplate，在它内部放上编辑状态所要显示的控件；而事实上，你可能只对其中一个单元格感兴趣，比如用上DropDownList来进行单元格筛选，而常规必须整行成编辑状态，那怎样才能直接只让一个独立的单元格成编辑状态呢？那就是本篇文章所要做的事情。&nbsp;&nbsp;<a href='http://www.cnblogs.com/liping13599168/archive/2007/12/16/996526.html'>阅读全文</a><img src ="http://www.cnblogs.com/liping13599168/aggbug/996526.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41924/" target="_blank">[新闻]中国软件协会：SAP羞辱国产软件是不正当竞争</a>]]></description></item></channel></rss>