﻿<?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>博客园-BLACK JACK</title><link>http://www.cnblogs.com/jackielin/</link><description>Get busy living, or get busy dying. </description><language>zh-cn</language><lastBuildDate>Thu, 28 Aug 2008 23:49:59 GMT</lastBuildDate><pubDate>Thu, 28 Aug 2008 23:49:59 GMT</pubDate><ttl>60</ttl><item><title>据可靠小道消息VS 2008 SP1 RTM 将在下周一发布</title><link>http://www.cnblogs.com/jackielin/archive/2008/08/08/1263724.html</link><dc:creator>J. Lin</dc:creator><author>J. Lin</author><pubDate>Fri, 08 Aug 2008 06:14:00 GMT</pubDate><guid>http://www.cnblogs.com/jackielin/archive/2008/08/08/1263724.html</guid><wfw:comment>http://www.cnblogs.com/jackielin/comments/1263724.html</wfw:comment><comments>http://www.cnblogs.com/jackielin/archive/2008/08/08/1263724.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/jackielin/comments/commentRss/1263724.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/jackielin/services/trackbacks/1263724.html</trackback:ping><description><![CDATA[<p>SQL Server 2008 RTM 已经发布，并且可以从MSDN下载。</p> <p><a href="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/50540eb5d4d8_C7F8/sql08rtm_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="81" alt="sql08rtm" src="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/50540eb5d4d8_C7F8/sql08rtm_thumb.png" width="764" border="0"></a> </p> <p>说明的文字里面提到VS 2008 SP 1在8月11号后就可以下载了。注意是说August 11后就能下载（准确说是从Aug 12算起），而不是要到August 11之后的某天才能下载。不知道我理解的对不对。</p> <p>另外，Danny在system.data.objects的blog上也说<a href="http://blogs.msdn.com/dsimmons/archive/2008/08/06/ef-v1-delivered-by-vs-2008-net-3-5-sp1-is-almost-here-and-the-net-rocks-podcast-announcing-it-is-already-here.aspx">EF v1 is almost here</a>.</p>   <img src ="http://www.cnblogs.com/jackielin/aggbug/1263724.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41943/" target="_blank">[新闻]轮回－新浪推出Facebook模式的SNS</a>]]></description></item><item><title>Configuration Section Designer 自定义配置设计器</title><link>http://www.cnblogs.com/jackielin/archive/2008/03/20/1114544.html</link><dc:creator>J. Lin</dc:creator><author>J. Lin</author><pubDate>Thu, 20 Mar 2008 04:15:00 GMT</pubDate><guid>http://www.cnblogs.com/jackielin/archive/2008/03/20/1114544.html</guid><wfw:comment>http://www.cnblogs.com/jackielin/comments/1114544.html</wfw:comment><comments>http://www.cnblogs.com/jackielin/archive/2008/03/20/1114544.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://www.cnblogs.com/jackielin/comments/commentRss/1114544.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/jackielin/services/trackbacks/1114544.html</trackback:ping><description><![CDATA[<p>这东西真的很棒。如果你的系统里需要定义类似Community Server里那样复杂的配置文件的话，它可是帮上大忙了。</p>
<p>不仅可以生成配置类，还能生成schema和sample，外部的自定义类型也能方便的设定。</p>
<p>另外项目还是开源的，地址：</p>
<p><a title="" href="http://www.codeplex.com/csd" target="_blank">http://www.codeplex.com/csd</a></p>
<p>废话不多说了，大家自己玩吧。</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/ConfigurationSectionDesigner_AC47/image_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="687" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/ConfigurationSectionDesigner_AC47/image_thumb.png" width="1008" border="0" /></a></p>
<p>&nbsp;</p>
<p><strike>Update:&nbsp; 刚才发现新发布的1.1版本似乎有点问题，大家可以先下1.0.2的用<br />
</strike>Update: 1.1.1修复安装包已放出</p>
<img src ="http://www.cnblogs.com/jackielin/aggbug/1114544.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>Linq to Sql: 批量删除之投机取巧版</title><link>http://www.cnblogs.com/jackielin/archive/2008/03/07/1095602.html</link><dc:creator>J. Lin</dc:creator><author>J. Lin</author><pubDate>Fri, 07 Mar 2008 10:53:00 GMT</pubDate><guid>http://www.cnblogs.com/jackielin/archive/2008/03/07/1095602.html</guid><wfw:comment>http://www.cnblogs.com/jackielin/comments/1095602.html</wfw:comment><comments>http://www.cnblogs.com/jackielin/archive/2008/03/07/1095602.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/jackielin/comments/commentRss/1095602.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/jackielin/services/trackbacks/1095602.html</trackback:ping><description><![CDATA[<p>前些天看了Jeffrey<a title="" href="http://www.cnblogs.com/JeffreyZhao/archive/2008/03/05/linq-to-sql-batch-delete-extension.html" target="_blank"><u>扩展LINQ to SQL：使用Lambda Expression批量删除数据</u></a>。说实话解析表达式生成Where Condition的那部分代码基本没看懂（事实是代码太多实在是没耐心看）。</p> <p>根据Linq to Sql原有的设计，解析Query得到DbCommand应该是SqlProvider干的事，只是现在这个SqlProvider只从IReaderProvider出(事实上MS也没设计个IUpdateProvider或者IDeleteProvider来着)，所以也只对SELECT感冒。搞的咱们只能在DataContext里自力更生了。</p> <p>不过既然已经有了可以生成SELECT的IReaderProvider，稍微把SELECT语句改造一下不就能得到DELETE了吗！基本思路：</p> <p><span style="background: #fffff3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="background: #fffff3; color: blue">public static int </span><span style="background: #fffff3">DeleteAll&lt;TEntity&gt;(</span><span style="background: #fffff3; color: blue">this </span><span style="background: #fffff3; color: #2b91af">Table</span><span style="background: #fffff3">&lt;TEntity&gt; table, </span><span style="background: #fffff3; color: #2b91af">Expression</span><span style="background: #fffff3">&lt;</span><span style="background: #fffff3; color: #2b91af">Func</span><span style="background: #fffff3">&lt;TEntity, </span><span style="background: #fffff3; color: blue">bool</span><span style="background: #fffff3">&gt;&gt; predicate)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="background: #fffff3; color: blue">where </span><span style="background: #fffff3">TEntity : </span><span style="background: #fffff3; color: blue">class<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="background: #fffff3">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="background: #fffff3; color: #2b91af">IQueryable </span><span style="background: #fffff3">query = table.Where(predicate);</span><span style="background: #fffff3"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="background: #fffff3; color: #2b91af">DbCommand </span><span style="background: #fffff3">com = dc.GetCommand(query);</span></p> <p><span style="background: #fffff3"></span><span style="background: #fffff3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="background: #fffff3; color: green">//TODO:改造sql语句<br></p></span> <p><span style="background: #fffff3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="background: #fffff3; color: blue">return </span><span style="background: #fffff3">com.ExecuteNonQuery();<br></span><span style="background: #fffff3">&nbsp;</span><span style="background: #fffff3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }</span></p> <p>这里直接拿直接拿where生成的query来GetCommand，得到的sql语句大致如下：</p> <p>SELECT <em>fields</em>...<em> </em>FROM <em>tableName </em>AS <em>TableAlias </em>WHERE <em>Condition</em></p> <p>&nbsp;</p> <p>我们的目标是改造成：</p> <p>DELETE FROM <em>tableName</em> WHERE <em>Condition</em></p> <p>&nbsp;</p> <p>可见关键是得到tableName，用正则是首选。不过这里还有一个缺陷就是只能用expression来做删除不能用linq query，比如我想这样：</p> <p><span style="background: #fffff3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="background: #fffff3; color: blue">var </span><span style="background: #fffff3">query = </span><span style="background: #fffff3; color: blue">from </span><span style="background: #fffff3">item </span><span style="background: #fffff3; color: blue">in </span><span style="background: #fffff3">context.Items<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="background: #fffff3; color: blue">where </span><span style="background: #fffff3">item.Name.StartsWith(</span><span style="background: #fffff3; color: #a31515">"XX"</span><span style="background: #fffff3">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="background: #fffff3; color: blue">select </span><span style="background: #fffff3">item;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; context.DeleteAll(query);</span></p> <p><span>看来要把DeleteAll放到DataContext里，不过这样有风险，有可能会接受到无法转换的SELECT语句，增加判断必不可少。</span></p> <p><span>最终完成如下：</span></p><pre class="code"><span style="background: #fffff3">    </span><span style="background: #fffff3; color: blue">public static class </span><span style="background: #fffff3; color: #2b91af">DataContextEx
    </span><span style="background: #fffff3">{
        </span><span style="background: #fffff3; color: blue">public static int </span><span style="background: #fffff3">DeleteAll(</span><span style="background: #fffff3; color: blue">this </span><span style="background: #fffff3; color: #2b91af">DataContext </span><span style="background: #fffff3">dc, </span><span style="background: #fffff3; color: #2b91af">IQueryable </span><span style="background: #fffff3">query)
        {
            </span><span style="background: #fffff3; color: #2b91af">DbCommand </span><span style="background: #fffff3">com = dc.GetCommand(query);

            </span><span style="background: #fffff3; color: #2b91af">Regex </span><span style="background: #fffff3">reg = </span><span style="background: #fffff3; color: blue">new </span><span style="background: #fffff3; color: #2b91af">Regex</span><span style="background: #fffff3">(</span><span style="background: #fffff3; color: #a31515">"^SELECT[\\s]*(?&lt;Fields&gt;.*)[\\s]*FROM[\\s]*(?&lt;Table&gt;.*)[\\s]*AS[\\s]*(?&lt;TableAlias&gt;.*)[\\s]*WHERE[\\s]*(?&lt;Condition&gt;.*)"</span><span style="background: #fffff3">,
                                    </span><span style="background: #fffff3; color: #2b91af">RegexOptions</span><span style="background: #fffff3">.IgnoreCase);

            </span><span style="background: #fffff3; color: #2b91af">Match </span><span style="background: #fffff3">match = reg.Match(com.CommandText);

            </span><span style="background: #fffff3; color: blue">if </span><span style="background: #fffff3">(!match.Success)
                </span><span style="background: #fffff3; color: blue">throw new </span><span style="background: #fffff3; color: #2b91af">ArgumentException</span><span style="background: #fffff3">(</span><span style="background: #fffff3; color: #a31515">"Cannot delete this type of collection"</span><span style="background: #fffff3">);

            </span><span style="background: #fffff3; color: blue">string </span><span style="background: #fffff3">table = match.Groups[</span><span style="background: #fffff3; color: #a31515">"Table"</span><span style="background: #fffff3">].Value.Trim();
            </span><span style="background: #fffff3; color: blue">string </span><span style="background: #fffff3">tableAlias = match.Groups[</span><span style="background: #fffff3; color: #a31515">"TableAlias"</span><span style="background: #fffff3">].Value.Trim();
            </span><span style="background: #fffff3; color: blue">string </span><span style="background: #fffff3">condition = match.Groups[</span><span style="background: #fffff3; color: #a31515">"Condition"</span><span style="background: #fffff3">].Value.Trim().Replace(tableAlias, table);

            com.CommandText = </span><span style="background: #fffff3; color: blue">string</span><span style="background: #fffff3">.Format(</span><span style="background: #fffff3; color: #a31515">"DELETE FROM {0} WHERE {1}"</span><span style="background: #fffff3">, table, condition);

            </span><span style="background: #fffff3; color: blue">if </span><span style="background: #fffff3">(com.Connection.State != System.Data.</span><span style="background: #fffff3; color: #2b91af">ConnectionState</span><span style="background: #fffff3">.Open)
                com.Connection.Open();

            </span><span style="background: #fffff3; color: blue">return </span><span style="background: #fffff3">com.ExecuteNonQuery();
        }


        </span><span style="background: #fffff3; color: blue">public static int </span><span style="background: #fffff3">DeleteAll&lt;TEntity&gt;(</span><span style="background: #fffff3; color: blue">this </span><span style="background: #fffff3; color: #2b91af">Table</span><span style="background: #fffff3">&lt;TEntity&gt; table, </span><span style="background: #fffff3; color: #2b91af">Expression</span><span style="background: #fffff3">&lt;</span><span style="background: #fffff3; color: #2b91af">Func</span><span style="background: #fffff3">&lt;TEntity, </span><span style="background: #fffff3; color: blue">bool</span><span style="background: #fffff3">&gt;&gt; predicate)
            </span><span style="background: #fffff3; color: blue">where </span><span style="background: #fffff3">TEntity : </span><span style="background: #fffff3; color: blue">class
        </span><span style="background: #fffff3">{
            </span><span style="background: #fffff3; color: #2b91af">IQueryable </span><span style="background: #fffff3">query = table.Where(predicate);

            </span><span style="background: #fffff3; color: blue">return </span><span style="background: #fffff3">table.Context.DeleteAll(query);
        }
    }</span></pre><a href="http://11011.net/software/vspaste"></a>
<p><span style="background: #fffff3"><br>&nbsp;</p></span>注：reg表达式取自MSDN Forum<img src ="http://www.cnblogs.com/jackielin/aggbug/1095602.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41939/" target="_blank">[新闻]搜狗五笔输入法发布</a>]]></description></item><item><title>[CSS Hack] border-color:transparent &amp; filter+ClearType bug</title><link>http://www.cnblogs.com/jackielin/archive/2007/08/22/865854.html</link><dc:creator>J. Lin</dc:creator><author>J. Lin</author><pubDate>Wed, 22 Aug 2007 10:25:00 GMT</pubDate><guid>http://www.cnblogs.com/jackielin/archive/2007/08/22/865854.html</guid><wfw:comment>http://www.cnblogs.com/jackielin/comments/865854.html</wfw:comment><comments>http://www.cnblogs.com/jackielin/archive/2007/08/22/865854.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cnblogs.com/jackielin/comments/commentRss/865854.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/jackielin/services/trackbacks/865854.html</trackback:ping><description><![CDATA[<p>IE6不支持设置transparent为边框的颜色。</p> <p>例如：<br><font color="#008040">border:solid 1px transparent;</font></p> <p><a href="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/CSSHackbordercolortransparent_F5B2/tb1.gif" atomicselection="true"><img height="504" alt="tb1" src="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/CSSHackbordercolortransparent_F5B2/tb1_thumb.gif" width="320"></a> </p> <p>解决方法：<br><font color="#008000">border:solid 1px transparent;<br>/*set an unused color to be index color*/<br>_border-color:tomato; /*For IE6-*/<br>/*then remove this indexed color*/<br>_filter:chroma(color=tomato);/*For IE6-*/</font></p> <p>结果如下：<br><a href="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/CSSHackbordercolortransparent_F5B2/tb2.gif" atomicselection="true"><img height="291" alt="tb2" src="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/CSSHackbordercolortransparent_F5B2/tb2_thumb.gif" width="369"></a> </p> <p>边框是没了，可字体怎么。。。<br>主意，以上现象是只有在打开系统的ClearType时才会看到的，如果把ClearType关掉就没问题了，见下：<br><a href="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/CSSHackbordercolortransparent_F5B2/tb3.gif" atomicselection="true"><img height="291" alt="tb3" src="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/CSSHackbordercolortransparent_F5B2/tb3_thumb.gif" width="369"></a>&nbsp;<br>关于这个问题的一个演示页面：<br><a title="http://icant.co.uk/sandbox/msieopacityissue/" href="http://icant.co.uk/sandbox/msieopacityissue/">http://icant.co.uk/sandbox/msieopacityissue/</a><br>另：<br><a title="http://www.hedgerwow.com/360/bugs/fix-ie-opacity-text.html" href="http://www.hedgerwow.com/360/bugs/fix-ie-opacity-text.html">http://www.hedgerwow.com/360/bugs/fix-ie-opacity-text.html</a></p> <p>解决方法：<br><font color="#008040">border:solid 1px transparent;<br>background-color:#BFDBFF;<br>/*set an unused color to be index color*/<br>_border-color:tomato; /*For IE6-*/<br>/*then remove this indexed color*/<br>_filter:chroma(color=tomato);/*For IE6-*/</font>&nbsp; </p> <p><a href="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/CSSHackbordercolortransparent_F5B2/tb4.gif" atomicselection="true"><img height="510" alt="tb4" src="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/CSSHackbordercolortransparent_F5B2/tb4_thumb.gif" width="293"></a>&nbsp;<br>搞了半天边框是透明了，底色又不透明了，汗！！！</p> <img src ="http://www.cnblogs.com/jackielin/aggbug/865854.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41938/" target="_blank">[新闻]新学年开始 大学生适用的十大互联网应用</a>]]></description></item><item><title>ASP.NET AJAX 1.0 &amp; AJAX Control Toolkit 在iframe中的"access denied"错误</title><link>http://www.cnblogs.com/jackielin/archive/2007/02/07/643411.html</link><dc:creator>J. Lin</dc:creator><author>J. Lin</author><pubDate>Wed, 07 Feb 2007 05:22:00 GMT</pubDate><guid>http://www.cnblogs.com/jackielin/archive/2007/02/07/643411.html</guid><wfw:comment>http://www.cnblogs.com/jackielin/comments/643411.html</wfw:comment><comments>http://www.cnblogs.com/jackielin/archive/2007/02/07/643411.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/jackielin/comments/commentRss/643411.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/jackielin/services/trackbacks/643411.html</trackback:ping><description><![CDATA[<p>在iframe或frame中使用另一个域名的ASP.NET AJAX或Toolkit页面，会得到cross-domain access denied错误。<br><a href="http://weblogs.asp.net/bleroy/default.aspx" target=_blank>Bleroy</a>&nbsp;和&nbsp;<a href="http://blogs.msdn.com/delay/default.aspx" target=_blank>Delay</a>&nbsp;分别post了两篇文章，详细讲述了引起问题的原因以及如何解决。如果你也遇到了这个问题可以参考。<br><br>1. <a href="http://weblogs.asp.net/bleroy/archive/2007/01/31/how-to-work-around-the-quot-access-denied-quot-cross-domain-frame-issue-in-asp-net-ajax-1-0.aspx" target=_blank>How to work around the access denied cross-domain frame issue in ASP.NET Ajax 1.0</a><br>2. <a href="http://blogs.msdn.com/delay/archive/2007/02/05/safely-avoiding-the-access-denied-dialog-how-to-work-around-the-access-denied-cross-domain-iframe-issue-in-the-ajax-control-toolkit.aspx" target=_blank>Safely avoiding the "access denied" dialog [How to: Work around the access denied cross-domain IFRAME issue in the AJAX Control Toolkit]</a><br><br>太忙，暂不翻译了。</p>
<img src ="http://www.cnblogs.com/jackielin/aggbug/643411.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>Aptana使用入门一：Code Assist</title><link>http://www.cnblogs.com/jackielin/archive/2006/11/07/Aptana1.html</link><dc:creator>J. Lin</dc:creator><author>J. Lin</author><pubDate>Tue, 07 Nov 2006 15:17:00 GMT</pubDate><guid>http://www.cnblogs.com/jackielin/archive/2006/11/07/Aptana1.html</guid><wfw:comment>http://www.cnblogs.com/jackielin/comments/553559.html</wfw:comment><comments>http://www.cnblogs.com/jackielin/archive/2006/11/07/Aptana1.html#Feedback</comments><slash:comments>21</slash:comments><wfw:commentRss>http://www.cnblogs.com/jackielin/comments/commentRss/553559.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/jackielin/services/trackbacks/553559.html</trackback:ping><description><![CDATA[摘要: 前两天我在《不可多得的Javascript(AJAX)开发工具 － Aptana》一文中简单介绍了Aptana。大家都很关注，同时也提了很多问题。因为Aptana相关的内容比较多，不可能在一篇里全部讲完，所以我想就问题比较多的几方面陆续写几篇小文。希望能对大家有所帮助。本人也是刚刚开始使用Aptana，有不对的地方请大家包含。&nbsp;&nbsp;<a href='http://www.cnblogs.com/jackielin/archive/2006/11/07/Aptana1.html'>阅读全文</a><img src ="http://www.cnblogs.com/jackielin/aggbug/553559.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>What we can do in "Page" class 页面基类功能扩展汇总</title><link>http://www.cnblogs.com/jackielin/archive/2006/11/06/PageClass.html</link><dc:creator>J. Lin</dc:creator><author>J. Lin</author><pubDate>Sun, 05 Nov 2006 17:44:00 GMT</pubDate><guid>http://www.cnblogs.com/jackielin/archive/2006/11/06/PageClass.html</guid><wfw:comment>http://www.cnblogs.com/jackielin/comments/551101.html</wfw:comment><comments>http://www.cnblogs.com/jackielin/archive/2006/11/06/PageClass.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/jackielin/comments/commentRss/551101.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/jackielin/services/trackbacks/551101.html</trackback:ping><description><![CDATA[摘要: 扩展页面基类可以实现太多功能了，本篇是我平时用到的一些功能的整理。<br>包括：企业库操作简化，Theme选择器，语言选择器，AJAX，ViewState存储等。&nbsp;&nbsp;<a href='http://www.cnblogs.com/jackielin/archive/2006/11/06/PageClass.html'>阅读全文</a><img src ="http://www.cnblogs.com/jackielin/aggbug/551101.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>不可多得的Javascript(AJAX)开发工具 － Aptana</title><link>http://www.cnblogs.com/jackielin/archive/2006/11/05/550422.html</link><dc:creator>J. Lin</dc:creator><author>J. Lin</author><pubDate>Sat, 04 Nov 2006 17:18:00 GMT</pubDate><guid>http://www.cnblogs.com/jackielin/archive/2006/11/05/550422.html</guid><wfw:comment>http://www.cnblogs.com/jackielin/comments/550422.html</wfw:comment><comments>http://www.cnblogs.com/jackielin/archive/2006/11/05/550422.html#Feedback</comments><slash:comments>44</slash:comments><wfw:commentRss>http://www.cnblogs.com/jackielin/comments/commentRss/550422.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/jackielin/services/trackbacks/550422.html</trackback:ping><description><![CDATA[<p>自从开始做Web开发起，一直都没有找到一个很让人满意的Javascript开发工具。从Editplus、Dreamweaver到FrontPage、Visual Studio，没有一样是很称手的。你是不是还在为Visual Studio中的那一点点智能提示感到兴奋不已？的确VS比其他的好那么一点点，但是相对于VS中的C#、VB等来说对javascript的支持实在是太少了。</p>
<p>下面我要向你介绍一款非常优秀的Javascript(AJAX) 开发工具：<a href="http://www.aptana.com/">Aptana</a>。应为它实在太棒了，所以我忍不住想向你推荐它。</p>
<p>Aptana中的智能提示称为 <strong>Code Assist</strong>，相当于VS中的Intellisense。<br><a href="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/JavascriptAJAXAptana_121F/code_assist%5B2%5D.png" atomicselection="true"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=193 src="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/JavascriptAJAXAptana_121F/code_assist_thumb.png" width=428 border=0></a> <br>看到后面的浏览器图标了吗？那是<strong>浏览器兼容性</strong>的提示。如果你是一个JS老鸟你应该知道那对开发者来说有多重要。</p>
<p>不仅仅是javascript，智能提示的范围还包括DOM 1,2 for HTML：<a href="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/JavascriptAJAXAptana_121F/screenshot_html_code_assist%5B2%5D.png" atomicselection="true"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=213 src="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/JavascriptAJAXAptana_121F/screenshot_html_code_assist_thumb.png" width=570 border=0></a> <br>CSS：<br><a href="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/JavascriptAJAXAptana_121F/screenshot_css_code_assist%5B1%5D.jpg" atomicselection="true"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=273 src="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/JavascriptAJAXAptana_121F/screenshot_css_code_assist_thumb%5B1%5D.jpg" width=557 border=0></a> <br>看到后面的黄框框了吗？那是VS里称为Quick Info的东西。</p>
<p>错误提示 －－ 一个都不能少：<br><a href="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/JavascriptAJAXAptana_121F/screenshot_problems_view_integrated%5B1%5D.jpg" atomicselection="true"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=575 src="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/JavascriptAJAXAptana_121F/screenshot_problems_view_integrated_thumb%5B1%5D.jpg" width=494 border=0></a> </p>
<p>Doument outline（文档结构）CSS、HTML、JS统一显示：<br><a href="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/JavascriptAJAXAptana_121F/screenshot_outline_integrated%5B6%5D.png" atomicselection="true"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=535 src="http://www.cnblogs.com/images/cnblogs_com/jackielin/WindowsLiveWriter/JavascriptAJAXAptana_121F/screenshot_outline_integrated_thumb%5B6%5D.png" width=490 border=0></a> </p>
<p>代码折叠、项目管理这些小菜不用讲了，都支持。Aptana还有很丰富的在线文档，是以wiki形式不断更新的，当然在连线的情况下你可以在Aptana中直接访问这些文档。</p>
<p>最新版的Aptana（0.2.6）已经开始支持Debug了，不过要通过Firefox插件的形式。</p>
<p>Aptana是一个java开源项目（.NET程序员应该扪心自问了吧），现在还在beta阶段（从版本号你就可以看出来了）。所以它是跨平台的。你在windows上运行它可能会觉得有一点点慢（比VS快多了）。其实Aptana的内存占用很少，才2M多，不过JVM...我就不想说什么了。</p>
<p>幸运的是你可以通过javascript扩展它，这里是它的<a href="http://www.aptana.com/dev/api/ide/aptana_ide_0.2.6/">API</a>。</p>
<p>Aptana还有太多让人惊艳的地方，你一定要自己用过了才知道。</p>
<img src ="http://www.cnblogs.com/jackielin/aggbug/550422.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>右键菜单快速打开VS 2005 Website项目</title><link>http://www.cnblogs.com/jackielin/archive/2006/10/28/542430.html</link><dc:creator>J. Lin</dc:creator><author>J. Lin</author><pubDate>Fri, 27 Oct 2006 17:18:00 GMT</pubDate><guid>http://www.cnblogs.com/jackielin/archive/2006/10/28/542430.html</guid><wfw:comment>http://www.cnblogs.com/jackielin/comments/542430.html</wfw:comment><comments>http://www.cnblogs.com/jackielin/archive/2006/10/28/542430.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/jackielin/comments/commentRss/542430.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/jackielin/services/trackbacks/542430.html</trackback:ping><description><![CDATA[这个是很久以前就在用的，今天突然发觉家里的机器上居然没装。一下忘了怎么弄，搞了半天才搞好。特此记录背忘。<br><br>实现效果：在文件夹上右键，选择“Open as Visual Studio Website”，VS自动打开并加载此文件夹为一个Website项目<br><img height="338" alt="" src="http://www.cnblogs.com/images/cnblogs_com/jackielin/blog/open.JPG" width="425" border="0"><br><br><img height="468" alt="" src="http://www.cnblogs.com/images/cnblogs_com/jackielin/blog/open2.JPG" width="531" border="0"><br><br>步骤：<br>1。在VS2005中选择 Toos/Macros/Macros IDE<br>2。选中MyMacros项目，并添加一个一个module，命名为“<font face="Courier New" size="2">Website</font>”<br>3。代码<br> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">Public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">Module</span><span style="color: #000000">&nbsp;Website<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Sub</span><span style="color: #000000">&nbsp;OpenWebsite(</span><span style="color: #0000ff">Optional</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">ByVal</span><span style="color: #000000">&nbsp;path&nbsp;</span><span style="color: #0000ff">As</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">String</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">If</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">String</span><span style="color: #000000">.Compare(path,&nbsp;</span><span style="color: #0000ff">String</span><span style="color: #000000">.Empty)&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">Then</span><span style="color: #000000"><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">MsgBox</span><span style="color: #000000">(</span><span style="color: #000000">"</span><span style="color: #000000">Must&nbsp;supply&nbsp;a&nbsp;folder&nbsp;path&nbsp;to&nbsp;the&nbsp;OpenWebsite&nbsp;macro</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;MsgBoxStyle.OkOnly)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Else</span><span style="color: #000000"><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Dim</span><span style="color: #000000">&nbsp;webPkg&nbsp;</span><span style="color: #0000ff">As</span><span style="color: #000000">&nbsp;VsWebSite.VSWebPackage<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webPkg&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DTE.GetObject(</span><span style="color: #000000">"</span><span style="color: #000000">WebPackage</span><span style="color: #000000">"</span><span style="color: #000000">)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webPkg.OpenWebSite(path,&nbsp;VsWebSite.OpenWebsiteOptions.OpenWebsiteOption_None,&nbsp;</span><span style="color: #0000ff">False</span><span style="color: #000000">)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">End</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">If</span><span style="color: #000000"><br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">End&nbsp;Sub</span><span style="color: #000000"><br><br></span><span style="color: #0000ff">End&nbsp;Module</span><span style="color: #000000"><br></span></div>4。在References中添加“VsWebSite.Interop.dll”<br>5。将以下内容存成“OpenWebsite.reg”并运行<br> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"> <p>Windows Registry Editor Version 5.00</p> <p>[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\OpenVSWeb]</p> <p>@="Open as Visual Studio Website"</p> <p>[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\OpenVSWeb\command]</p> <p>@="devenv.exe /command <a>\\\"Macros.MyMacros.Website.OpenWebsite</a> %1\\\""<br></p></div><img src ="http://www.cnblogs.com/jackielin/aggbug/542430.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>SQL Server 2005 SP1 安装问题</title><link>http://www.cnblogs.com/jackielin/archive/2006/05/11/397600.html</link><dc:creator>J. Lin</dc:creator><author>J. Lin</author><pubDate>Thu, 11 May 2006 11:19:00 GMT</pubDate><guid>http://www.cnblogs.com/jackielin/archive/2006/05/11/397600.html</guid><wfw:comment>http://www.cnblogs.com/jackielin/comments/397600.html</wfw:comment><comments>http://www.cnblogs.com/jackielin/archive/2006/05/11/397600.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/jackielin/comments/commentRss/397600.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/jackielin/services/trackbacks/397600.html</trackback:ping><description><![CDATA[<a href="http://www.vsteamsystemcentral.com/cs/blogs/applied_team_system/archive/category/1005.aspx">http://www.vsteamsystemcentral.com/cs/blogs/applied_team_system/archive/category/1005.aspx</a><br><br><a href="http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=01fbed6b-cb29-417e-ad24-56183fb91593">http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=01fbed6b-cb29-417e-ad24-56183fb91593</a>
<img src ="http://www.cnblogs.com/jackielin/aggbug/397600.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41930/" target="_blank">[新闻]科学家在世界最大对撞机中观察到首批粒子</a>]]></description></item></channel></rss>