﻿<?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>博客园-灵感之源</title><link>http://www.cnblogs.com/unruledboy/</link><description>新产品发布：智能网络资源系统</description><language>zh-cn</language><lastBuildDate>Wed, 10 Feb 2010 02:03:17 GMT</lastBuildDate><pubDate>Wed, 10 Feb 2010 02:03:17 GMT</pubDate><ttl>60</ttl><item><title>.NET开源项目的前世和今生系列 之 .NET开源压缩文档处理的前世和今生</title><link>http://www.cnblogs.com/unruledboy/archive/2009/12/25/NETZipDocumentProcessing.html</link><dc:creator>灵感之源</dc:creator><author>灵感之源</author><pubDate>Fri, 25 Dec 2009 06:56:00 GMT</pubDate><guid>http://www.cnblogs.com/unruledboy/archive/2009/12/25/NETZipDocumentProcessing.html</guid><description><![CDATA[<p>阅读: 2360 评论: 29 作者: <a href="http://www.cnblogs.com/unruledboy/" target="_blank">灵感之源</a> 发表于 2009-12-25 14:56 <a href="http://www.cnblogs.com/unruledboy/archive/2009/12/25/NETZipDocumentProcessing.html" target="_blank">原文链接</a></p><h1>序</h1>
<p>这是《.NET开源项目的前世和今生系列》之一，如上一篇《<a class="titlelink" href="http://www.cnblogs.com/unruledboy/archive/2009/12/07/OpenSourceNetDB.html" target="_blank"><font color="#000000" face="Arial"><span style="color: #0000ff">.NET开源数据库的前世和今生</span></font></a>》。这些系列是我对过去10年中了解的.NET开源项目的总结。</p>
<p>&nbsp;</p>
<p>《.NET开源项目的前世和今生系列》的大概结构如下(假如我还有心思写下去的话)：</p>
<ul><li>《<a class="titlelink" href="http://www.cnblogs.com/unruledboy/archive/2009/12/07/OpenSourceNetDB.html" target="_blank"><font color="#000000" face="Arial"><span style="color: #0000ff">.NET开源数据库的前世和今生</span></font></a>》 上、下</li><li>《.NET开源文档处理的前世和今生》：压缩、Office(Word/Excel/PPT/MAPI)、其它(PDF/RTF)</li><li>《.NET开源多媒体处理的前世和今生》：图像、图标、视频、音频、Flash等</li><li>《.NET开源基础库的前世和今生》：Queue、Schedule</li><li>《.NET开源网络访问的前世和今生》：Web服务器、爬虫、MSN、XMPP、IRC、NNTP、统计</li><li>《.NET开源系统交互与安全的前世和今生》：环境/进程/安全/认证 </li></ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h1>前言</h1>
<p>开发行业很多开源的项目，历史我不在这里追溯，既然那么多有心有力的朋友分享了他们的成果，在遵循许可的情况下，我们拿来用就是了。当然，你可以写比开源的更好更适合自己的，但摆着现成的不用那可是罪过啊。不过选择开源项目需要考虑很多：1.项目的协议，会不会造成代码污染；2.项目的生命力，说不定明天作者就不干了，又或者作者过着逍遥自在的生活，几年都不更新一次，你自己接着开发？</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h1>正题</h1>
<h2>&nbsp;</h2>
<h2>Zip</h2>
<p>好吧，相信大部分人都知道<a class="l" onmousedown="return clk(0,'','','res','1','','0CAgQFjAA')" href="http://www.icsharpcode.net/OpenSource/SharpZipLib/" target="_blank"><font size="4"><font color="#2200cc">.NET Zip Library #ziplib (SharpZipLib)</font></font></a>，这是<a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/" target="_blank">SharpDevelop</a>的之父Mike Krueger在写<a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/" target="_blank">SharpDevelop</a>的副产物。目的很单纯：就是想弄个纯c#的读写zip的，不想用InterOp。我之前说过，做开源项目的，多是重口味的。SharpZipLib使用非常广泛，几乎每个需要用到压缩文档的.NET程序都会选择它。它很优秀，确实，虽然在初期对中文支持不好。虽然它的&#8220;双性&#8221;许可比较让人糊涂。但有好事者反复在论坛上问SharpZipLib的许可，作者也坐不住了，在了那套首页特别说明了，LGPL，商业免费。早说嘛，程序员都喜欢瞎折腾。</p>
<p>&nbsp;</p>
<p>既然SharpZipLib那么优秀，那为什么别人还写类似的呢？因为除了重口味，还有轻口味的需求：部分程序还是轻量级的，譬如我。一般需求就是：压缩、解压Zip文档，或者只是压缩、解压一个byte数组。在.NET 2.0之前的1.X时代，我们只能用：Interop + Zlib：<a href="http://www.codeproject.com/KB/files/sharpzlib.aspx?msg=2032588" target="_blank">#zlib - Modifying Archives</a>。但有一些洁癖的，觉得额外用一个Win32的dll很不爽。所以便有了纯C#的<a class="l" onmousedown="return clk(0,'','','res','2','','0CA8QFjAB')" href="http://www.componentace.com/zlib_.NET.htm" target="_blank"><font size="4"><font color="#cc0033">ZLIB</font><font color="#2200cc">.NET</font></font></a>。如果你只是想压缩byte数组：<a id="ctl00_MC_AFR_ctl10_AT" href="http://www.codeproject.com/KB/cs/IMCompressor.aspx" target="_blank"><strong>Better Than Zip Algorithm For Compressing In-Memory Data</strong></a>。在.NET 2.0，引入了System.IO.Compression.DeflateStream和System.IO.Compression.GZipStream。</p>
<p>&nbsp;</p>
<p>如果你想压缩文档：<a href="http://www.codeproject.com/KB/recipes/ZipStorer.aspx" target="_blank">ZipStorer - A Pure C# Class to Store Files in Zip</a>，它还在这里弄了个项目：<a href="http://zipstorer.codeplex.com/" target="_blank"><font color="#3e62a6">ZipStorer - A Pure C# Class to Store Files in Zip</font></a> ，但有一个很要命的问题：它不支持压缩。当然还有支持压缩的：<a id="ctl00_MC_AFR_ctl18_AT" href="http://www.codeproject.com/KB/cs/EncryptedZippC_VJava.aspx" target="_blank"><strong>Encrypted Zipping of Files in C# and Java</strong></a>。</p>
<p>&nbsp;</p>
<p>在.NET 3.x，微软的脑筋终于通了，引入了文档压缩：<a id="ctl00_MC_AFR_ctl02_AT" href="http://www.codeproject.com/KB/files/ZipUnZipTool.aspx" target="_blank"><strong>.NET Framework Zip / UnZip Tool Using the Packaging Namespace</strong></a></p>
<p>&nbsp;</p>
<p>重口味的，还有用J#自带的来弄的，如：<a id="ctl00_MC_AFR_ctl00_AT" href="http://www.codeproject.com/KB/recipes/cpzipstrip2.aspx" target="_blank"><strong>Zip/Unzip using java.util.zip .net namespace and more</strong></a>、<a id="ctl00_MC_AFR_ctl00_AT" href="http://www.codeproject.com/KB/cs/vmeasyzipunzip.aspx" target="_blank"><strong>Zip and Unzip from a C# program using J# runtime</strong></a> 、<a id="ctl00_MC_AFR_ctl12_AT" href="http://www.codeproject.com/KB/cs/unzipC_usingJ_.aspx" target="_blank"><strong>Simple Application to Zip and UnZip files in C# using J#</strong></a>，也有用Windows系统的：<a id="ctl00_MC_AFR_ctl14_AT" href="http://www.codeproject.com/KB/cs/compresswithwinshellapics.aspx" target="_blank"><strong>Compress Zip files with Windows Shell API and C#</strong></a> </p>
<p>&nbsp;</p>
<p>如果你纯粹要求一个足够强大的Zip文档压缩读写库，我建议你用<a href="http://dotnetzip.codeplex.com/" target="_blank"><font color="#3e62a6">DotNetZip Library</font></a> 。它具备了ZIP的所有操作，也很弹性，谁用谁知道～</p>
<p>&nbsp;</p>
<p>除了基本的文档压缩之外，还衍生出了开发项目的自动压缩，如：<a id="ctl00_MC_AFR_ctl08_AT" href="http://www.codeproject.com/KB/macros/zipstudio.aspx" target="_blank"><strong>ZipStudio - A versatile Visual Studio add-in to zip up Visual Studio solutions and projects</strong></a>（项目：<a href="http://zipstudio.codeplex.com/" target="_blank"><font color="#3e62a6">ZipStudio</font></a> ） 、<a id="ctl00_MC_AFR_ctl14_AT" href="http://www.codeproject.com/KB/macros/SolutionZipper.aspx" target="_blank"><strong>SolutionZipper: VS 2005 Add-in Cleans and Zips a Solution in One Step</strong></a>、<a href="http://zipsolution.codeplex.com/" target="_blank"><font color="#3e62a6">Zip Solution</font></a> 、<a href="http://solzip.codeplex.com/" target="_blank"><font color="#3e62a6">SolZip</font></a>、<a id="ctl00_MC_AFR_ctl08_AT" href="http://www.codeproject.com/KB/files/backup2Gmail.aspx" target="_blank"><strong>Backup Project Files to Gmail</strong></a> ，当然还有<a href="http://www.codeproject.com/KB/cs/remotezip.aspx" target="_blank">Extracting files from a remote ZIP archive</a>这种特别的需求。当然，还有更特殊的癖好：<a id="ctl00_MC_AFR_ctl16_AT" href="http://www.codeproject.com/KB/files/infozipdotnet.aspx" target="_blank"><strong>.NET wrapper for Info-ZIP</strong></a>。</p>
<p>&nbsp;</p>
<h2>Cab</h2>
<p>7Zip支持Cab，但我们或许不需要那么大的东西，我们只需要：<a id="ctl00_MC_AFR_ctl06_AT" href="http://www.codeproject.com/KB/files/CABCompressExtract.aspx" target="_blank"><strong>Cabinet File (*.CAB) Compression and Extraction</strong></a>。很不幸，这也是Interop，而且还是用vc++ .net封装的。但我们也有Jim Mischel直接C#封装的：<a class="l" onmousedown="return clk(0,'','','res','1','','0CAkQFjAA')" href="http://www.mischel.com/pubs/cabdotnet/" target="_blank"><font color="#551a8b" size="4">Accessing CAB Files from .NET</font></a><span class="std nobr">&nbsp;</span>。</p>
<p>&nbsp;</p>
<h2>7Zip</h2>
<p>SharpZipLib不支持RAR、ISO、7z、Arj、Cab、Rpm、Wim、Udf、Xar、Dmg等等，等等。天啊，原来SharpZipLib这么差的。。。如果你了解7Zip，其实这些就是7Zip所支持的格式。7Zip是用C写的，为Win32系统提供了COM接口。所以我们也只能用Interop了(我讨厌Interop!)。第一个吃螃蟹的是Eugene Sichkar，他写完 <a href="http://www.codeproject.com/KB/DLL/cs_interface_7zip.aspx" target="_blank">C# (.NET) Interface for 7-Zip Archive DLLs</a>(项目：<a href="http://7zsharp.codeplex.com/" target="_blank"><font color="#3e62a6">7zSharp</font></a> )，继承了光荣的开源传统，不更新了。不过有另外一个牛人接过了他的衣钵：<a href="http://sevenzipsharp.codeplex.com/" target="_blank">SevenZipSharp</a>。当然，你还可以用纯C#读取7z格式：<a href="http://manageddreams.com/csai/ModReader.7z" target="_blank">Port of 7zip archive reader to C#</a> </p>
<p>&nbsp;</p>
<h2>RAR</h2>
<p>你可以用RAR官方的SDK（<a href="http://www.rarlab.com/rar/UnRARDLL.exe" target="_blank">UnRAR.dll</a>）中包含的C#例子来读取，也可以用7Zip来读取RAR，但如果你需要纯C#的，这里有一个新鲜出炉的：<a href="http://nunrar.codeplex.com/" target="_blank"><font color="#3e62a6">NUnrar</font></a>，第一版是不支持中文，而且文件名读取逻辑错误。我提出了之后，作者很快就修正了，可见部分外国的开源作者还是很闲的。。。除了读取，除非给你钱RAR的作者，否则你不能生成RAR文件，专利，有些时候让你很不爽;)</p>
<p>&nbsp;</p>
<p>你想生成RAR又不想给钱？那可以：</p>
<div class="cnblogs_code">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;winRAR&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">@"</span><span style="color: #800000">\WinRAR\WinRAR.exe</span><span style="color: #800000">"</span><span style="color: #000000">;<br /><br />StringBuilder&nbsp;command&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuilder(</span><span style="color: #800000">"</span><span style="color: #800000">&nbsp;a&nbsp;-ep&nbsp;\</span><span style="color: #800000">""</span><span style="color: #800000">&nbsp;+&nbsp;RARFile&nbsp;+&nbsp;</span><span style="color: #800000">"</span><span style="color: #000000">\</span><span style="color: #800000">"</span><span style="color: #800000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #000000">);<br /></span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;Files.Count;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />{<br />&nbsp;&nbsp;&nbsp;command.Append(</span><span style="color: #800000">"</span><span style="color: #800000">\</span><span style="color: #800000">""</span><span style="color: #800000">&nbsp;+&nbsp;Files[i]&nbsp;+&nbsp;</span><span style="color: #800000">"</span><span style="color: #000000">\</span><span style="color: #800000">"</span><span style="color: #800000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #000000">);<br />}<br />ProcessStartInfo&nbsp;info&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ProcessStartInfo(winRAR,&nbsp;command.ToString());<br />Process&nbsp;process&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Process();<br />process.StartInfo&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;info;<br />process.Start();<br />process.WaitForExit();<br /></span></div></div>
<p>&nbsp;</p>
<p><br />当然，你还得先判断一下winrar.exe是否存在。</p>
<p>&nbsp;</p>
<h2>Tar</h2>
<p>SharpZipLib可以对Tar进行读写，另外，你还可以选择：<a class="l" onmousedown="return clk(0,'','','res','8','','0CCYQFjAH')" href="http://code.google.com/p/tar-cs/" target="_blank"><font size="4">tar-cs</font></a><span class="std nobr">&nbsp;</span></p>
<p>&nbsp;</p>
<h2>ISO、VHD、VDI、 XVA、VMDK</h2>
<p>SharpZipLib可以对ISO进行读写，你还可以用<a href="http://isocs.codeplex.com/" target="_blank"><font color="#3e62a6">C# ISO image creator</font></a> 来创建ISO，<a href="http://gomuiso9660.codeplex.com/" target="_blank"><font color="#3e62a6">GomuIso9660</font></a>&nbsp;来读写。另外，还有更专业的：<a href="http://discutils.codeplex.com/" target="_blank"><font color="#3e62a6">.NET DiscUtils</font></a> ，除了ISO，它可以读写VHD, VDI, XVA, VMDK等各种虚拟机的文件！</p>
<p>&nbsp;</p>
<h2>MTF</h2>
<p>MTF，就是Microsoft Tape Format，你可以用<a id="ctl00_MC_AFR_ctl00_AT" href="http://www.codeproject.com/KB/files/BackupReader.aspx" target="_blank"><strong>Reading MTF Backup Files</strong></a>来读取。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h1>题外话</h1>
<p>不要把压缩文件想得太复杂了，不同的格式虽有差异，但大体都是：一个总的文件头，记录多少个文件，偏移，大小等，然后是多个文件头(文件名、压缩前后大小、校验码等)，最后就是压缩后的数据了。所以，主要差异还是文件头和压缩算法。</p>
<p>&nbsp;</p>
<p>除了.zip，.cbz、.jar、.xap、Visual Studio的模板文件等等都是zip文件，只不过扩展名不一样罢了。同样，.cbr也是rar文件。</p>
<p>&nbsp;</p><img src="http://www.cnblogs.com/unruledboy/aggbug/1632047.html?type=1" width="1" height="1" alt=""/><p>评论: 29　<a href="http://www.cnblogs.com/unruledboy/archive/2009/12/25/NETZipDocumentProcessing.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/unruledboy/archive/2009/12/25/NETZipDocumentProcessing.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56800/" target="_blank">Windows 7下MSN无法启动或报错解决方法</a><span style="color:gray">(2010-02-10 10:00)</span><br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>.NET开源数据库的前世和今生(上)</title><link>http://www.cnblogs.com/unruledboy/archive/2009/12/07/OpenSourceNetDB.html</link><dc:creator>灵感之源</dc:creator><author>灵感之源</author><pubDate>Mon, 07 Dec 2009 14:53:00 GMT</pubDate><guid>http://www.cnblogs.com/unruledboy/archive/2009/12/07/OpenSourceNetDB.html</guid><description><![CDATA[<p>阅读: 3001 评论: 26 作者: <a href="http://www.cnblogs.com/unruledboy/" target="_blank">灵感之源</a> 发表于 2009-12-07 22:53 <a href="http://www.cnblogs.com/unruledboy/archive/2009/12/07/OpenSourceNetDB.html" target="_blank">原文链接</a></p><div>后来者可以充分利用前人的成果，在开发界，我们也会这样做。我们可以发现很多.NET的开源项目都是从优秀的Java项目移植过来的：我用得比较多像NHibernate、DotLucene(暂停开发...)、iTextSharp、Quartz.NET等。移植总比从头写轻松多了，不是吗？&nbsp;</div>
<div>&nbsp;</div>
<div>数据存储是软件中不可或缺的组成部分。我们所熟知和使用的，以前有Access，现在有MS SQL Server、Oracle、DB2这些商业数据库，开源的有PHP用得最多的MySQL，有趣的是PHP内置了SQLite。比较少用的如Firebird、PostgreSQL、Berkeley DB(<a href="http://sourceforge.net/projects/libdb-dotnet/" target="_blank">Berkeley DB for .NET</a>)等。</div>
<div>&nbsp;</div>
<div>几年前我写了一些开源项目的随笔，数据库是其中一种，不过当时还没有出现成熟的.NET开源数据库，写得最多的倒是在嵌入式应用最广泛c写的SQLite。我对嵌入式/轻量级的数据库有情结，对SQLite尤甚。SQLite的应用非常广泛，如官方所说的诺基亚开源手机操作系统塞班(Symbian)、Mozilla、Safari、Chrome和非常多的桌面应用等。后来出现了ADO.NET Provider for SQLite(for .Net 1.x的，现在停止开发)，最后出现了现在.NET程序使用最多的来自phxsoftware的<a href="http://sqlite.phxsoftware.com/" target="_blank">System.Data.SQLite</a>，最出名的应用者估计就是飞信了。除了稍微显得有点重口味的<a href="http://sqlite.phxsoftware.com/" target="_blank">System.Data.SQLite</a>，我们还有非常轻口味的<a href="http://code.google.com/p/sqlite-net/" target="_blank">sqlite-net</a>。<a href="http://code.google.com/p/sqlite-net/" target="_blank">sqlite-net</a>还是封装了SQLite.dll，不过它只了16K的代码，而且是OO方式存取数据，可以认为是一个简单的ORM。不过，这些都不是开源的.NET数据库，充其量其实包装(wrapper)，而且是最原始的那种InterOp的做法，连Managed C++都不是。.NET都发展了9年多了，是时候有一个像样的数据库了。即便不是原创的，从Java移植一个成熟的也是不错的。</div>
<div><br /></div>
<div>差不多那个时候，出现了一个人，Mark Tutt，写了第一个.NET数据库(据我所知)：<a href="http://www.codeproject.com/KB/database/sharphsql.aspx" target="_blank">SharpHSQL</a>，这是从Java界应用非常广泛的HSQLDB移植过来的，而HSQLDB又是从HSQL衍生过来的，不过这是另外一个话题了。Mark Tutt移植完了就不继续维护了，这倒不是大问题，问题是他移植的版本根本保存不了数据到文件(所谓的持久化)，在内存中跑完，程序关闭就没了，根本就没法用(你只想用纯内存版另当别论)。</div>
<div><br /></div>
<div>HSQL，这就是SharpHSQL的前世，但今生呢？Mark Tutt之后，andresv接过了<a href="http://sharphsql.codeplex.com/" target="_blank">SharpHSQL</a>，并让它成功地让数据保存到文件。感谢上帝，终于有一个纯.NET的数据库了。另外说一下，andresv还是另外一个不大出名的ORM-<a href="http://retina.codeplex.com/" target="_blank">Retina.NET OR/M</a>的作者。</div>
<div><br /></div>
<div>可以预想到的是，andresv继承了Mark Tutt的&#8220;光荣传统&#8221;，在项目移植完了就不再维护了，以至于HSQLDB发展得红红火火的，SharpHSQL还像个玩具那样弱不禁风。</div>
<div><br /></div>
<div>在HSQL的薪火貌似终止的时候，出现了一个庞然大物让我眼前一亮：<a href="http://developer.novell.com/wiki/index.php/Minosse_Relational_DataBase_System" target="_blank">Minosse Relational DataBase System</a>，一个大型的纯C#开源数据库系统。嗯，不是单纯的引擎，是系统。可惜，开源界最臭名昭著的噩梦又发生在Minosse身上，在经过短暂的狂喜之后，便失去了继续开发的动力。</div>
<div><br /></div>
<div>开源界的.NET数据库再次陷入了静寂。</div>
<div><br /></div>
<div>直到今年，再次风起云涌，一下子冒出了3个重量级的项目：<a href="http://code.google.com/p/csharp-sqlite/" target="_blank">csharp-sqlite</a>、<strong>EffiProz</strong>、<strong>DeveelDB</strong>。</div>
<div><br /></div>
<div>首先说说<a href="http://code.google.com/p/csharp-sqlite/" target="_blank">csharp-sqlite</a>，相信部分同学已经对这个项目有一些了解：这是SQLite最新版本的C#移植版，虽然其作者Noah Hart认为这不能算是移植，而是用C#模拟C。这个移植版是100%二进制兼容SQLite数据库格式的，所以你可以用它来读写SQLite创建的数据库。该作者曾说，这只是一个为了学习C#的练手项目，而且一练就2年多，估计都练到九重天了吧。总的来看，这个作者相当重口味。</div>
<div><br /></div>
<div>同学们肯定想知道这个这个项目的<a href="http://code.google.com/p/csharp-sqlite/wiki/Benchmarks" target="_blank">性能</a>：</div>
<p>&nbsp;</p><span style="line-height: normal; font-family: arial, sans-serif; font-size: 13px" class="Apple-style-span">
<h2 style="font-size: large"><a name="Aug_21,_2009_Updated_to_3.6.17">Aug 21, 2009 Updated to 3.6.17</a></h2><a style="background-image: url(http://www.cnblogs.com/CuteSoft_Client/CuteEditor/Load.ashx?type=image&file=anchor.gif); text-indent: 20px; width: 20px; height: 20px" name="Aug_21,_2009_Updated_to_3.6.17"></a>
<h3 style="background-image: none; padding-bottom: 0.5ex; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0.5em; border-bottom-width: 0px; font-size: medium; border-top: #3366cc 0px solid; border-left-width: 0px; padding-top: 0.5ex; background-origin: initial; background-clip: initial"><a name="Small_Databases">小型数据库</a></h3><a name="Small_Databases">
<p style="max-width: 65em"></p>
<table style="border-collapse: separate">
<tr>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px"></td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px"># 记录数</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">插入</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">查询 2X</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">循环 2X</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">删除</td></tr>
<tr>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">SQLite</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">100,000</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">2.2s</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">3.5s</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">0.3s</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">2.0s</td></tr>
<tr>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">C#-SQLite</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">100,000</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">5.7s</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">4.1s</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">0.3s</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">4.3s</td></tr>
<tr>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">C#/SQLite</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px"></td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">2.6x</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">1.2x</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">1.0x</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">2.2x</td></tr></table>
<p style="max-width: 65em"></p></a>
<h3 style="background-image: none; padding-bottom: 0.5ex; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0.5em; border-bottom-width: 0px; font-size: medium; border-top: #3366cc 0px solid; border-left-width: 0px; padding-top: 0.5ex; background-origin: initial; background-clip: initial"><a name="Larger_Databases">大型数据库</a></h3><a name="Larger_Databases">
<p style="max-width: 65em"></p>
<table style="border-collapse: separate">
<tr>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px"></td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px"># 记录数</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">插入</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">查询 2X</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">循环 2X</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">删除</td></tr>
<tr>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">SQLite</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">1,000,000</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">42.8s</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">43.3s</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">3.0s</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">35.5s</td></tr>
<tr>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">C#-SQLite</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">1,000,000</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">116.0s</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">60.0s</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">2.9s</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">89.2s</td></tr>
<tr>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">C#/SQLite</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px"></td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">2.7x</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">1.4x</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">1.0x</td>
<td style="border-bottom: #aaaaaa 1px solid; border-left: #aaaaaa 1px solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; font-size: 13px; border-top: #aaaaaa 1px solid; border-right: #aaaaaa 1px solid; padding-top: 5px">2.5x<br /><br /></td></tr></table></a></span>
<p>&nbsp;</p>
<p>简单的来看，检索/循环的速度跟SQLite差异不大，插入和删除就只有SQLite的50%不到。</p>
<div><br /></div>
<div>除此之外，最关心的还是怎样获取代码。<a href="http://code.google.com/p/csharp-sqlite/source/checkout" target="_blank">请访问这里获取代码</a>，csharp-sqlite比较特别，没有采用常见的CVS、SVN这两种项目代码控制服务，而用了比较冷门的HG，不过跟TortoiseCVS、TortoiseSVN一样，我们还有<a href="http://bitbucket.org/tortoisehg/stable/downloads/TortoiseHg-0.9.1.1-hg-1.4.1.exe" target="_blank">TortoiseHg</a>，不过同样地让人不爽的是：TortoiseHg一样会强制关闭Explorer.exe来让资源管理器插件生效，现在的安装程序都把自己当大爷，颇为毫不客气。当然，你也可以<a href="http://www.xnlab.com/temp/csharpsqlite.zip" target="_blank">直接点击这里下载</a>，内含最新代码和已编译DLL。</div>
<div><br /></div>
<div>在使用TortoiseHg获取代码之后，就会遇到编译问题，如果你新建一个项目，把*.cs放进去，然后编译，问题就会出来了，因为csharp-sqlite一样学了c那套<a href="http://code.google.com/p/csharp-sqlite/wiki/HowToCompile" target="_blank">复杂的编译条件</a>。</div>
<div><br /></div>
<div>不过，需要注意的是，csharp-sqlite只是Noah Hart的个人行为，跟SQLite的官方没有任何关系，所以当初为了这个项目的名称，还跟SQLite之父D. Richard Hipp<a href="http://code.google.com/p/csharp-sqlite/wiki/LettersFromSQLite" target="_blank">鱼雁传情好几回</a>，最后在承诺撇清与SQLite的官方关系之后(就是不想做额外的售后服务)，才得了这个名字。可见D. Richard Hipp还相当懒惰的。</div>
<div>&nbsp;</div>
<div>csharp-sqlite的实际使用并不是传统的ADO.NET那样，因为它没有提供这个接口，你只能直接调用跟所谓的Native接口。当然，作者还是做了一些封装，你可以用类似Command接口的SQLiteDatabase，进行ExecuteQuery(返回DataTable)、ExecuteNonQuery。</div>
<p>&nbsp;</p>
<p>另外，csharp-sqlite的稳定性还是让人担心的，虽然作者宣称已经通过了SQLite官方的99.99%的测试，但<strong>他却是这样回答是否可以在正式产品中使用的：&#8220;我也想知道，如果你用了，请告诉我情况。&#8221;</strong></p>
<div><br /></div>
<div>有趣的是，Tim Anderson弄了个<a href="http://www.itwriting.com/csharpsqlite/" target="_blank">在Silverlight跑的Quick and dirty版本</a>，不过这仅仅是一个概念验证罢了，因为屏蔽了原来csharp-sqlite中为了实现文件锁而调用的Win32 API，只能单线程跑。值得一说的是，这厮抢注了这个域名相当不错。</div>
<div><br /></div>
<div>最后，我对于作者连基本的代码和编译好的压缩包都不提供这种行为表达相当的不爽和最强烈的反对。</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>ToDo in .NET开源数据库的前世和今生(下):&nbsp;</p>
<p>1.EffiProz</p>
<p>2.DeveelDB</p>
<p>3.DB40</p>
<p>4.Perst4net&nbsp;</p>
<p>5.其它开源数据库</p>
<p style="text-indent: 0px; margin: 5px auto">6.比较&nbsp;</p>
<p>7.n个为什么</p><img src="http://www.cnblogs.com/unruledboy/aggbug/1618989.html?type=1" width="1" height="1" alt=""/><p>评论: 26　<a href="http://www.cnblogs.com/unruledboy/archive/2009/12/07/OpenSourceNetDB.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/unruledboy/archive/2009/12/07/OpenSourceNetDB.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56800/" target="_blank">Windows 7下MSN无法启动或报错解决方法</a><span style="color:gray">(2010-02-10 10:00)</span><br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>ADO.NET Entity Framework支持多Provider</title><link>http://www.cnblogs.com/unruledboy/archive/2008/12/02/ADONETEFProviders.html</link><dc:creator>灵感之源</dc:creator><author>灵感之源</author><pubDate>Tue, 02 Dec 2008 08:39:00 GMT</pubDate><guid>http://www.cnblogs.com/unruledboy/archive/2008/12/02/ADONETEFProviders.html</guid><description><![CDATA[<p>阅读: 2724 评论: 13 作者: <a href="http://www.cnblogs.com/unruledboy/" target="_blank">灵感之源</a> 发表于 2008-12-02 16:39 <a href="http://www.cnblogs.com/unruledboy/archive/2008/12/02/ADONETEFProviders.html" target="_blank">原文链接</a></p><P><STRONG><FONT size=4>前言</FONT></STRONG><BR><BR>EF跟其它ORM的做法不一样，其它ORM是先有Model再自动维护数据库，EF是先有数据库再自动(目前只能手工重建来达到“刷新”的目的)维护Model的。相比其它ORM，EF最要命的是目前不“内置”切换Provider的支持。但微软的开发人员给我们提供了以下思路：</P>
<P>参考代码：<A href="http://code.msdn.microsoft.com/EFQuerySamples">http://code.msdn.microsoft.com/EFQuerySamples</A></P>
<P>参考文章：<A href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3796966&amp;SiteID=1">http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3796966&amp;SiteID=1</A></P>
<P><BR><STRONG><FONT size=4>具体步骤：</FONT></STRONG></P>
<P>0.前提：各个类型的数据库结构完全一致</P>
<P>1.正常添加ADO.NET Entity Data Model(edmx文件)，如FooMSSQL，查看Model属性，元数据项目处理，默认“嵌入输出程序集中”，改为“复制到输出目录”，这样就在输出目录产生了3个文件：FooMSSQL.csdl、FooMSSQL.msl和FooMSSQL.ssdl;</P>
<P>2.如此类推，创建各个类型的数据库模型，如FooOracle、FooSQLite等；</P>
<P>3.对于各个不同类型的数据库，csdl、msl这2种文件的内容是一致的，差异就在于ssdl文件(特定数据库结构描述)；</P>
<P>4.把Foo.Designer.cs代码改名为Entities.cs(名称可随便改)并复制到任意目录，如Schemas，同样复制csdl、msl(只需要一个数据库的)，最终该目录应该有这些文件：<BR>&nbsp;a.Entities.cs<BR>&nbsp;b.Foo.csdl<BR>&nbsp;c.Foo.msl<BR>&nbsp;d.FooMSSQL.ssdl<BR>&nbsp;e.FooOracle.ssdl<BR>&nbsp;<BR>5.修改ssdl文件中的Provider和ProviderManifestToken属性为实际的值；<BR>&nbsp;<BR>6.从项目中排除之前添加的数据库模型文件(*.edmx)；</P>
<P>7.把Entities.cs包括进来，并选择Foo.csdl、Foo.msl、FooMSSQL.ssdl、FooOracle.ssdl的属性为复制到输出目录；</P>
<P>8.在App.config/Web.Config添加各个数据库的Provider支持：在connectionStrings字段，你会发现之前添加的模型相应的ConnectionString已经存在，我们不应该修改它们，因为如果以后我们修改了数据库结构，我们需要重新包含这些edmx文件进来并进行修改；<BR>&nbsp;你应该复制这些ConnectionString，改名，并且更改csdl、msl、ssdl的路径，因为之前IDE生成的是输出到bin目录，而我们实际用的是Schemas目录，如在ASP.NET下：<BR>&nbsp;metadata=~/bin/Oracle.csdl|~/bin/Oracle.ssdl|~/bin/Oracle.msl<BR>&nbsp;改为：<BR>&nbsp;metadata=~/bin/Schemas/Foo.csdl|~/bin/Schemas/FooOracle.ssdl|~/bin/Schemas/Foo.msl<BR>&nbsp;注意csdl和msl文件名已经改变！</P>
<P>9.最终使用：<BR>&nbsp;&nbsp;&nbsp; public static string ConnectionString = ConfigurationManager.ConnectionStrings[ConfigurationManager.AppSettings["ConnectionString"]].ConnectionString;</P>
<P>&nbsp;&nbsp;&nbsp; public static Entities GetContext<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Entities ent = new Entities(ConnectionString);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ent.Connection.Open();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ent;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;注意：ConnectionString为刚才在App.config/Web.Config中新增的，推荐在AppSettings中记录当前使用的Provider的名称，然后就可以随时切换</P>
<P><BR><STRONG><FONT size=4>P.S. EF for Oracle</FONT></STRONG><BR>网站：<A href="http://code.msdn.microsoft.com/EFOracleProvider">http://code.msdn.microsoft.com/EFOracleProvider</A><BR>下载运行，Provider自动添加到GAC</P><img src="http://www.cnblogs.com/unruledboy/aggbug/1346022.html?type=1" width="1" height="1" alt=""/><p>评论: 13　<a href="http://www.cnblogs.com/unruledboy/archive/2008/12/02/ADONETEFProviders.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/unruledboy/archive/2008/12/02/ADONETEFProviders.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56800/" target="_blank">Windows 7下MSN无法启动或报错解决方法</a><span style="color:gray">(2010-02-10 10:00)</span><br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Exio：转换各种文件(如Silverlight)为可执行文件  2.0.0.200</title><link>http://www.cnblogs.com/unruledboy/archive/2008/10/09/exio_2_0_0_200.html</link><dc:creator>灵感之源</dc:creator><author>灵感之源</author><pubDate>Thu, 09 Oct 2008 05:36:00 GMT</pubDate><guid>http://www.cnblogs.com/unruledboy/archive/2008/10/09/exio_2_0_0_200.html</guid><description><![CDATA[<p>阅读: 783 评论: 5 作者: <a href="http://www.cnblogs.com/unruledboy/" target="_blank">灵感之源</a> 发表于 2008-10-09 13:36 <a href="http://www.cnblogs.com/unruledboy/archive/2008/10/09/exio_2_0_0_200.html" target="_blank">原文链接</a></p><P><STRONG>智能实验室－Exio 2.0.0.200<BR></STRONG><BR>转换各种文件(如Silverlight的XAP、图片、媒体、批处理等)转换为可执行文件(或MHT、EML、ZIP等独立文件，并可分析网站、本地网页的所有资源并自动导入，支持Flickr(相册图片)、Twitter(时间线/好友)。自动识别各种格式的的主文件，并智能创建索引内容。<BR><BR><IMG src="http://www.xnlab.com/zh/files/exio.jpg"><BR><BR><B>Exio特色：</B></P>
<DIV>
<UL>
<LI>通用强大 
<UL>
<LI>支持各种压缩格式；RAR、ZIP、7z、CAB 
<LI>支持各种Office文档，如：docx/pptx/xlsx/doc/ppt/xls/xml/wps/dps/et/rtf/pdf； 
<LI>支持各种数据库，如：Access/MS SQL Server/Oracle/DB2/MySQL/PostGres/Interbase/Sybase/Firebird/SQLite/FoxPro/DBF/CSV/DIF/SLK； 
<LI>其它文件格式，如：PSD、TIFF、MHT、EML、Foxmail、Outlook(含Express)、CHM、MSI、Thumbs.DB、收藏夹、聊天/历史记录 
<LI>智能操作，无所不在的快捷方式与体贴的操作与提示； </LI></UL>
<LI>个性体贴：每个功能都有快捷键，详细参看快捷键部分； 
<LI>绿色简便：绝不捆绑任何软件/插件，不用安装！ 
<LI>语言支持：内置对英文的支持，可以根据语言包格式进行对各种语言的本地化 
<LI>完全免费：我们继承免费的精神，为用户提供优良而且免费的服务！ </LI></UL></DIV>
<P><STRONG>□马上下载</STRONG>：<STRONG><A href="http://www.cnblogs.com/Files/unruledboy/exio.zip">Exio</A></STRONG><BR><BR>详细信息，请访问　<STRONG>智能实验室－Exio <A href="http://www.xnlab.com/zh/exio/">官方网站</A></STRONG><BR><BR><BR><A href="http://www.xnlab.com/zh/exio/"><IMG border=0 alt=Exio src="http://www.xnlab.com/zh/files/exiologo.gif"></A></P><img src="http://www.cnblogs.com/unruledboy/aggbug/1307221.html?type=1" width="1" height="1" alt=""/><p>评论: 5　<a href="http://www.cnblogs.com/unruledboy/archive/2008/10/09/exio_2_0_0_200.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/unruledboy/archive/2008/10/09/exio_2_0_0_200.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56800/" target="_blank">Windows 7下MSN无法启动或报错解决方法</a><span style="color:gray">(2010-02-10 10:00)</span><br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>智能实验室－CHM浏览器(CHM Explorer)  2.2.0.220</title><link>http://www.cnblogs.com/unruledboy/archive/2008/08/06/chmexplorer_2_2_0_220.html</link><dc:creator>灵感之源</dc:creator><author>灵感之源</author><pubDate>Wed, 06 Aug 2008 08:26:00 GMT</pubDate><guid>http://www.cnblogs.com/unruledboy/archive/2008/08/06/chmexplorer_2_2_0_220.html</guid><description><![CDATA[<p>阅读: 978 评论: 3 作者: <a href="http://www.cnblogs.com/unruledboy/" target="_blank">灵感之源</a> 发表于 2008-08-06 16:26 <a href="http://www.cnblogs.com/unruledboy/archive/2008/08/06/chmexplorer_2_2_0_220.html" target="_blank">原文链接</a></p><P><IMG border=0 src="http://www.cnblogs.com/Emoticons/emidea.gif" width=19 height=19>怎样获取最新版本？<BR><BR><STRONG>□全新下载</STRONG>：<STRONG><A href="http://www.cnblogs.com/Files/unruledboy/CHMExplorer.zip">CHM浏览器(CHM Explorer)</A></STRONG><BR><BR><BR><STRONG>智能实验室－CHM浏览器(CHM Explorer) 2.2.0.220更新记录：<BR></STRONG><BR>1.修正：XP sp3下不能运行的问题； <BR><BR><BR>详细信息，请访问　<STRONG>智能实验室－CHM浏览器(CHM Explorer) <A href="http://www.smartpim.com/zh/chmexplorer/">官方网站</A></STRONG><BR><BR><BR><A href="http://www.xnlab.com/zh/chmexplorer/"><IMG border=0 alt=CHM浏览器：预览、批量转换CHM文件 src="http://www.xnlab.com/zh/files/chmexplorerlogo.gif"></A></P><img src="http://www.cnblogs.com/unruledboy/aggbug/1262190.html?type=1" width="1" height="1" alt=""/><p>评论: 3　<a href="http://www.cnblogs.com/unruledboy/archive/2008/08/06/chmexplorer_2_2_0_220.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/unruledboy/archive/2008/08/06/chmexplorer_2_2_0_220.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56800/" target="_blank">Windows 7下MSN无法启动或报错解决方法</a><span style="color:gray">(2010-02-10 10:00)</span><br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>智能实验室－杀马(Defendio) 4.33.0.1030</title><link>http://www.cnblogs.com/unruledboy/archive/2008/08/04/defendio_4_33_0_1050.html</link><dc:creator>灵感之源</dc:creator><author>灵感之源</author><pubDate>Mon, 04 Aug 2008 09:35:00 GMT</pubDate><guid>http://www.cnblogs.com/unruledboy/archive/2008/08/04/defendio_4_33_0_1050.html</guid><description><![CDATA[<p>阅读: 726 评论: 1 作者: <a href="http://www.cnblogs.com/unruledboy/" target="_blank">灵感之源</a> 发表于 2008-08-04 17:35 <a href="http://www.cnblogs.com/unruledboy/archive/2008/08/04/defendio_4_33_0_1050.html" target="_blank">原文链接</a></p><IMG height=19 src="http://www.cnblogs.com/Emoticons/emidea.gif" width=19 border=0><FONT color=#ff0000 size=4><STRONG>下载了4.30.0.1000或4.30.0.1002导致不能使用的用户：</STRONG></FONT><BR>删除Defendio.exe.manifest文件后再直接下载替换原来的文件；<BR><BR><BR><IMG height=19 src="http://www.cnblogs.com/Emoticons/emidea.gif" width=19 border=0>怎样获取最新版本？<BR><BR><STRONG>□智能更新</STRONG>：<BR><STRONG>打开杀马(Defendio)，按F9键，或者点左边的服务-》智能更新</STRONG><BR><BR><STRONG>□全新下载</STRONG>：<STRONG><A href="http://www.cnblogs.com/Files/unruledboy/Defendio.zip">杀马(Defendio)</A></STRONG><BR><BR><BR><STRONG>智能实验室－杀马 4.33.0.1050 更新记录：<BR></STRONG><BR>
<P>1.改进：不良网站保护，自动识别多级域名，大大改善了识别率；<BR>2.修正：数据库，一个可能导致不能加载数据的错误；<BR><BR>详细信息，请访问　<STRONG>智能实验室－杀马(Defendio) 官方网站 <A href="http://www.xnlab.com/">http://www.xnlab.com/</A></STRONG><A href="http://www.xnlab.com/zh/defendio/"><BR><BR><IMG alt=杀马：实时防护、全面杀除超过34万威胁 src="http://www.xnlab.com/zh/files/defendiologo.gif" border=0></A></P><img src="http://www.cnblogs.com/unruledboy/aggbug/1260289.html?type=1" width="1" height="1" alt=""/><p>评论: 1　<a href="http://www.cnblogs.com/unruledboy/archive/2008/08/04/defendio_4_33_0_1050.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/unruledboy/archive/2008/08/04/defendio_4_33_0_1050.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56800/" target="_blank">Windows 7下MSN无法启动或报错解决方法</a><span style="color:gray">(2010-02-10 10:00)</span><br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>智能实验室－全能优化(Guardio) 5.10.0.1150</title><link>http://www.cnblogs.com/unruledboy/archive/2008/08/04/guardio_5_10_0_1150.html</link><dc:creator>灵感之源</dc:creator><author>灵感之源</author><pubDate>Mon, 04 Aug 2008 09:33:00 GMT</pubDate><guid>http://www.cnblogs.com/unruledboy/archive/2008/08/04/guardio_5_10_0_1150.html</guid><description><![CDATA[<p>阅读: 632 评论: 1 作者: <a href="http://www.cnblogs.com/unruledboy/" target="_blank">灵感之源</a> 发表于 2008-08-04 17:33 <a href="http://www.cnblogs.com/unruledboy/archive/2008/08/04/guardio_5_10_0_1150.html" target="_blank">原文链接</a></p><BR><IMG height=19 src="http://www.cnblogs.com/Emoticons/emidea.gif" width=19 border=0><FONT color=#ff0000 size=4><STRONG>下载了5.06.0.1100或5.06.0.1102导致不能使用的用户：</STRONG></FONT><BR>删除Guardio.exe.manifest文件后再直接下载替换原来的文件；<BR><BR><BR><IMG height=19 src="http://www.cnblogs.com/Emoticons/emidea.gif" width=19 border=0>怎样获取最新版本？<BR><BR><STRONG>□智能更新</STRONG>：<BR><STRONG>打开全能优化(Guardio)，按F9键，或者主界面-》工具栏-》更新</STRONG>：<BR><BR><STRONG>□全新下载</STRONG>：<STRONG><A href="http://www.cnblogs.com/Files/unruledboy/Guardio.Release.zip">全能优化(Guardio)</A><BR></STRONG><BR><BR><IMG src="http://www.xnlab.com/zh/files/Guardio_Shield.jpg"><BR><BR><STRONG>智能实验室－&nbsp;全能优化(Guardio) 5.10.0.1150 更新记录：<BR><BR></STRONG>1.改进：硬件信息 之 主板，获取主板、BIOS、OEM、配置、板卡、语言、接口、扩展槽、内置定点设备、便携式电池等各种信息；<BR>2.改进：硬件信息 之 CPU，获取外频、最大主频、实际主频、插座、电压、状态、版本等各种信息；<BR>3.改进：硬件信息 之 内存，获取总容量、状态、每个插槽的详细参数等各种信息；<BR>4.改进：硬件信息，添加对超过3500家硬件厂商的识别；<BR>5.改进：使用痕迹清理，添加对XnView、随e(Thooe)、TechSmith SnagIt、FastStone、GoSurf清理的支持，现在可以清理385种痕迹；<BR>6.改进：进程管理，以新的树形列表显示，并可显示每个进程加载了的模块列表，分析可疑进程/模块的速度更快；<BR>7.改进：自动启动加速，合并类型和具体启动项目，以新的树形列表显示；<BR>8.改进：恶意软件清理，增加了威胁等级，以新的树形列表显示，并且改进了加载体验；<BR>9.改进：谁在劫持我，以新的树形列表显示，可显示威胁等级，并且改进了加载体验；<BR>10.改进：系统概览，每个项目的鼠标右键都有体贴的快捷功能；<BR>11.修正：安全信息，IE6表单中某些特殊情况会导致列表加载失败的问题；<BR><BR><BR>详细信息，请访问　<STRONG>智能实验室－全能优化(Guardio) 官方网站 <A href="http://www.xnlab.com/">http://www.xnlab.com/</A><BR><BR><A href="http://www.xnlab.com/zh/guardio/"><IMG alt=全能优化：全面保护和优化您的计算机！ src="http://www.xnlab.com/zh/files/guardiologo.gif" border=0></A></STRONG>
<P>&nbsp;</P><img src="http://www.cnblogs.com/unruledboy/aggbug/1260286.html?type=1" width="1" height="1" alt=""/><p>评论: 1　<a href="http://www.cnblogs.com/unruledboy/archive/2008/08/04/guardio_5_10_0_1150.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/unruledboy/archive/2008/08/04/guardio_5_10_0_1150.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56800/" target="_blank">Windows 7下MSN无法启动或报错解决方法</a><span style="color:gray">(2010-02-10 10:00)</span><br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>不良网站在线查询</title><link>http://www.cnblogs.com/unruledboy/archive/2008/07/29/HarmsiteQuery.html</link><dc:creator>灵感之源</dc:creator><author>灵感之源</author><pubDate>Tue, 29 Jul 2008 06:59:00 GMT</pubDate><guid>http://www.cnblogs.com/unruledboy/archive/2008/07/29/HarmsiteQuery.html</guid><description><![CDATA[<p>阅读: 1229 评论: 2 作者: <a href="http://www.cnblogs.com/unruledboy/" target="_blank">灵感之源</a> 发表于 2008-07-29 14:59 <a href="http://www.cnblogs.com/unruledboy/archive/2008/07/29/HarmsiteQuery.html" target="_blank">原文链接</a></p><A href="http://www.xnlab.com/zh/utils/Harmsite.aspx">不良网站在线查询</A>&nbsp; 可以查询超过19万个不良网站，如恶意软件、色情、广告等网站。<BR><BR><IMG src="http://www.xnlab.com/zh/files/Harmsite.jpg"><BR><BR><BR>点击这里访问 <A href="http://www.xnlab.com/zh/utils/Harmsite.aspx">不良网站在线查询</A>&nbsp;<img src="http://www.cnblogs.com/unruledboy/aggbug/1255595.html?type=1" width="1" height="1" alt=""/><p>评论: 2　<a href="http://www.cnblogs.com/unruledboy/archive/2008/07/29/HarmsiteQuery.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/unruledboy/archive/2008/07/29/HarmsiteQuery.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56800/" target="_blank">Windows 7下MSN无法启动或报错解决方法</a><span style="color:gray">(2010-02-10 10:00)</span><br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Google PageRank在线批量查询+网页嵌入图片代码</title><link>http://www.cnblogs.com/unruledboy/archive/2008/07/28/GooglePageRankOnline.html</link><dc:creator>灵感之源</dc:creator><author>灵感之源</author><pubDate>Mon, 28 Jul 2008 10:43:00 GMT</pubDate><guid>http://www.cnblogs.com/unruledboy/archive/2008/07/28/GooglePageRankOnline.html</guid><description><![CDATA[<p>阅读: 1095 评论: 1 作者: <a href="http://www.cnblogs.com/unruledboy/" target="_blank">灵感之源</a> 发表于 2008-07-28 18:43 <a href="http://www.cnblogs.com/unruledboy/archive/2008/07/28/GooglePageRankOnline.html" target="_blank">原文链接</a></p><STRONG><A href="http://www.xnlab.com/zh/Utils/MyPageRank.aspx">Google PageRank在线批量查询</A></STRONG> 可以批量查询Google PageRank值。<BR><BR><IMG src="http://www.xnlab.com/zh/files/GooglePageRank.jpg"><BR><BR><BR><STRONG>网页嵌入图片代码<BR></STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 你可以使用 <A href="http://www.xnlab.com/zh/Utils/MyPageRank.aspx"><STRONG>Google PageRank在线批量查询</STRONG></A>&nbsp;提供的嵌入式图片，来直接显示你的网站的PageRank。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 譬如：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Google.com&nbsp;&nbsp;&nbsp;<A href="http://www.xnlab.com/" target=_blank><IMG id=PageRankDemo style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; WIDTH: 80px; BORDER-BOTTOM: 0px; HEIGHT: 15px" alt=PageRank src="http://www.xnlab.com/zh/utils/GetPageRank.aspx?s=1&amp;prurl=www.google.com" align=absMiddle></A><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Baidu.com&nbsp;&nbsp; &nbsp;&nbsp;<A href="http://www.xnlab.com/" target=_blank><IMG id=PageRankDemo style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; WIDTH: 62px; BORDER-BOTTOM: 0px; HEIGHT: 19px" alt=PageRank src="http://www.xnlab.com/zh/utils/GetPageRank.aspx?s=2&amp;prurl=www.baidu.com" align=absMiddle></A><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Xnlab.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A href="http://www.xnlab.com/" target=_blank><IMG id=PageRankDemo style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; WIDTH: 80px; BORDER-BOTTOM: 0px; HEIGHT: 19px" alt=PageRank src="http://www.xnlab.com/zh/utils/GetPageRank.aspx?s=3&amp;prurl=www.xnlab.com" align=absMiddle></A><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 163.com&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<A href="http://www.xnlab.com/" target=_blank><IMG id=PageRankDemo style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; WIDTH: 66px; BORDER-BOTTOM: 0px; HEIGHT: 13px" alt=PageRank src="http://www.xnlab.com/zh/utils/GetPageRank.aspx?s=0&amp;prurl=www.163.com" align=absMiddle></A><BR><BR><BR>点击这里访问 <A href="http://www.xnlab.com/zh/Utils/MyPageRank.aspx"><STRONG>Google PageRank在线批量查询</STRONG></A><BR><BR><BR><A 对网页重要性的评估；<BR PageRank><STRONG>什么是PageRank?</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PageRank值的提高可有效提升你的网页在Google搜索引擎中的页面排名，但并不是说PageRank越高则排名越靠前。有一些网站尽管PageRank不算高，但却较一些PageRank高的网站排名还要靠前。所以你应该在对网站优化的同时，也要努力提高网站的PR值。提高PR最佳和最简单的办法在于：<BR>　　 1. 提供有趣、有价值的网站内容，这样站长们会主动和你进行友情链接，从而提高你的外部链接值。<BR>　　 2. 将网站提交到各大搜索引擎，这样可显著改善你的网站在Google上的排名。<BR>　　 3. 可将网站添加到行业门户站点、网上论坛、留言簿等等各种允许添加网址链接的地方。<BR>　　 4. 与其他网站交换链接来提高链接权值。<BR>　　 5. 与其他网站交换链接时首先要查看对方站点是否被Google删除，或是否被Google收录，没有被Google收录的站点最好不要做连接。</A><img src="http://www.cnblogs.com/unruledboy/aggbug/1255020.html?type=1" width="1" height="1" alt=""/><p>评论: 1　<a href="http://www.cnblogs.com/unruledboy/archive/2008/07/28/GooglePageRankOnline.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/unruledboy/archive/2008/07/28/GooglePageRankOnline.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56800/" target="_blank">Windows 7下MSN无法启动或报错解决方法</a><span style="color:gray">(2010-02-10 10:00)</span><br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>智能实验室－专用链转换 1.5.0.150 </title><link>http://www.cnblogs.com/unruledboy/archive/2008/07/28/SpecialLinkio_1_1_0_100.html</link><dc:creator>灵感之源</dc:creator><author>灵感之源</author><pubDate>Mon, 28 Jul 2008 06:37:00 GMT</pubDate><guid>http://www.cnblogs.com/unruledboy/archive/2008/07/28/SpecialLinkio_1_1_0_100.html</guid><description><![CDATA[<p>阅读: 1868 评论: 11 作者: <a href="http://www.cnblogs.com/unruledboy/" target="_blank">灵感之源</a> 发表于 2008-07-28 14:37 <a href="http://www.cnblogs.com/unruledboy/archive/2008/07/28/SpecialLinkio_1_1_0_100.html" target="_blank">原文链接</a></p><P><IMG src="http://www.xnlab.com/zh/files/SpecialLinkio.jpg"><BR><BR><BR><STRONG>专用链转换(SpecialLinkio)</STRONG>是用以双向转换专用链的工具。</P>
<P>特点：<BR>1.支持格式：支持市面上的各种格式，包括网际快车(FlashGet)、迅雷(Thunder)、QQ旋风、、FS2You等；<BR>2.完全免费：我们继承免费的精神，为用户提供优良而且免费的服务！<BR>3.绿色简便：完全绿色软件，绝不捆绑任何软件/插件，只有一个程序文件，不用安装！<BR><BR><STRONG>专用链转换1.5.0.150<BR></STRONG>1.添加对可疑网址的解释支持；<BR><BR><STRONG>点击这里下载：</STRONG><A href="http://www.cnblogs.com/Files/unruledboy/speciallinkio.zip"><FONT color=#1a8bc8><STRONG>专用链转换1.5</STRONG></FONT></A><BR><BR>详细信息，请访问　<STRONG>智能实验室－专用链转换(SpecialLinkio) 官方网站 </STRONG><A href="http://www.xnlab.com/"><FONT color=#1a8bc8><STRONG>http://www.xnlab.com/</STRONG></FONT></A><BR><BR><STRONG>测试链接：<BR></STRONG>&nbsp;&nbsp;&nbsp;迅雷：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; thunder://QUFodHRwOi8vd3d3LnhubGFiLmNvbS96aC9kZWZhdWx0Lmh0bVpa<A href="thunder://QUFodHRwOi8vZm8uZ2FtZWRsLnFxLmNvbS9mdWxsL3FxZmZvMS4wNC5leGVaWg=="></A><BR>&nbsp;&nbsp;&nbsp;QQ旋风：qqdl://aHR0cDovL3d3dy54bmxhYi5jb20vemgvZGVmYXVsdC5odG0=<A href="qqdl://aHR0cDovL2ZvLmdhbWVkbC5xcS5jb20vZnVsbC9xcWZmbzEuMDQuZXhl"></A><BR>&nbsp;&nbsp;&nbsp;Flashget1：flashget://W0ZMQVNIR0VUXWh0dHA6Ly93d3cueG5sYWIuY29tL3poL2RlZmF1bHQuaHRtW0ZMQVNIR0VUXQ==<A href="flashget://W0ZMQVNIR0VUXWh0dHA6Ly8zLmp4ZHgxLmNyc2t5LmNvbS9kb3dubG9hZC9BZ2VsWC5yYXJbRkxBU0hHRVRd"></A><BR>&nbsp;&nbsp;&nbsp;FS2You：fs2you://Y2FjaGVmaWxlMTMuZnMyeW91LmNvbS96aC1jbi9kb3dubG9hZC83OTJiMmJmODUzYWI4MTI5ZGYzOTdkYWQ1OTY3NWM0NS8lRTclODglQjFRJUU1JUE0JUE3JUU3JTlCJTk3OC4wLnJhcnwzNDU2ODI4/<BR>&nbsp;&nbsp;&nbsp;Flashget2：<A href="http://down1.kuaichegame.cn/Zmxhc2hnZXR4Oi8vfG1odHN8VVZGVFIxOVBjR1Z1UW1WMFlWOHdMakF1TUM0Mk1WOHlNREEzTURneE5pNWxlR1VORFE9PXw0MTcxNzU5Mzd8RjFCM0I5OTYzODg2Njg3M0MxNTJBQUJGNTAzRTgyQTJ8Lw==QQSG_OpenBeta_0.0.0.61_20070816.exe">http://down1.kuaichegame.cn/Zmxhc2hnZXR4Oi8vfG1odHN8VVZGVFIxOVBjR1Z1UW1WMFlWOHdMakF1TUM0Mk1WOHlNREEzTURneE5pNWxlR1VORFE9PXw0MTcxNzU5Mzd8RjFCM0I5OTYzODg2Njg3M0MxNTJBQUJGNTAzRTgyQTJ8Lw==QQSG_OpenBeta_0.0.0.61_20070816.exe</A><BR></P><img src="http://www.cnblogs.com/unruledboy/aggbug/1228921.html?type=1" width="1" height="1" alt=""/><p>评论: 11　<a href="http://www.cnblogs.com/unruledboy/archive/2008/07/28/SpecialLinkio_1_1_0_100.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/unruledboy/archive/2008/07/28/SpecialLinkio_1_1_0_100.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56800/" target="_blank">Windows 7下MSN无法启动或报错解决方法</a><span style="color:gray">(2010-02-10 10:00)</span><br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>