<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>恐龙志 - evolve the web!</title>
        <link>http://www.w3cool.com/</link>
        <description>The Place where deploy our Ideas and Paranoeas!</description>
        <language>zh-cn</language>
        <copyright>Copyright 2010</copyright>
        <lastBuildDate>Fri, 05 Dec 2008 21:04:46 +0800</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>ASP.NET MVC的WebSite模式（with mvc membership）</title>
            <description><![CDATA[<p>&nbsp;&nbsp; 一直极其讨厌web application,感觉不干净，不符合个人喜好完美纯净的代码的癖好，再加上不是单页程序集，性能也大打折扣。所以这次在决定用asp.net MVC写这个网站的时候花了一点时间移到Web site模式下面来。</p><p>&nbsp;&nbsp;&nbsp;&nbsp; 其实不是很麻烦，修改Web Site的web.config文件，在&lt;httpHandlers&gt;处添加MvcHttpHandler，在&lt;httpModules&gt;处添加UrlRoutingModule。IIS7可以配置一下WebServer，和web application模式下的webconfig一样。所有的CodeBehind都修改为CodeFile，Global.asax要删除重建一下，因为web site网站模式下结构并不一样，把原来那个RegisterRoutes方法拷贝进去即可。然后拷贝Content和Views两个文件夹复制到Web Site的根目录下，把Controllers和Models两个文件夹复制到Web Site的App_code文件夹下。或者另外再建一个工程也可以。</p><p>&nbsp;&nbsp;&nbsp;&nbsp; 然后就是集成了一下codeplex上的asp.net mvc membership. 有了一个简单的用户管理界面，管理员用户asministrator 密码<b>n2!1jLR8bL]{1:&nbsp; </b><b>。</b></p><p><b><img class="mt-image-center" style="display: block; margin: 0px auto 20px; text-align: center" height="527" alt="aaaaa.jpg" width="815" src="http://www.w3cool.com/2008/12/05/aaaaa.jpg" /></b></p><p><b>&nbsp;&nbsp;&nbsp; 下载这个压缩文件，添加到你的解决方案即可。</b></p><p><a href="http://www.w3cool.com/2008/12/05/mvcmenbership.website.www.rar">mvcmenbership.website.www.rar</a>&nbsp;&nbsp;<br />&nbsp;</p>]]></description>
            <link>http://www.w3cool.com/2008/12/05/aspnet_mvcwebsitewith_mvc_membership.html</link>
            <guid>http://www.w3cool.com/2008/12/05/aspnet_mvcwebsitewith_mvc_membership.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">.Net Framework</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">编程|Coding</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">asp.net</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">membership</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">mvc</category>
            
            <pubDate>Fri, 05 Dec 2008 21:04:46 +0800</pubDate>
        </item>
        
        <item>
            <title>一种更高效率的ISAPI整合IIS与Tomcat_JSP的方式(非jk)</title>
            <description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天发现一种极好的整合IIS和JSP的方法，毫无疑问java在windows下运行比在linux运行效率要高(大约4%)，同比IIS比Apache的IO能力强，在不考虑了lisence的问题下，笔者一直在考虑在windows下部署java的生产环境，尽管笔者的很大程度的工作是管理的维护linux服务器，但是发现很多时候windows还是最好的选择，当然是在得到一样优秀的维护和管理的前提下，一直以来很头疼的就是Tomcat和IIS的整合，在windows下肯定不会考虑使用apache，apache在windows下的表现太差了。笔者使用了2个月时间仔细研读和修改apache 2.29版的windows版源代码(哈哈，不专业了apache的源代码是可移植C++不分版本)试图优化apache的IO。 最终不得不放弃，Apache的构架上不如IIS,在windows上表现始终不如意，所以还是考虑用IIS整合tomcat.</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IIS整合Tomcat的传统方式是JK,通过8009端口做代理，这样做缺点很多，当然优点也很多，优点我就不说了。这样的缺点是实际上要socket一次，笔者认为除非在一台IIS+多个Tomcat，或者IIS和tomcat不在一台服务器上时才有必要使用。在大多数情况，也就是IIS和Tomcat在同一台服务器上时，完全可以用一种高效的办法.</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 答案其实就是asp.net里的ihttphandle, 使用asp.net的ISAPI handle劫持要转发的页面（图方便，有达人直接写一个C++的ISAPI也行，.net基于jit效率也没得说），<strong>直接把他rewrite到8080端口上，</strong>也就是实际上IIS和Tomcat没有任何通信。图片、js、html全部IIS处理，这个小程序只处理URL。也就是我写的这个JSP ihttphandle直接取tomcat 的response 作为IIS的response。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下载 <a href="http://www.w3cool.com/upload/JSP_iHttpHandle.rar">JSP_iHttpHandle.dll</a> (.net 3.5)&nbsp; 拷贝到站点的bin目录。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 修改web.config添加：</p><p>&lt;!-- JSP ihttpHandle 配置 --&gt; <br /><span style="background-color: #c0c0c0"><span style="color: #003300">&lt;add path=&quot;*.jsp&quot; verb=&quot;GET,POST&quot; type=&quot;<strong>com.w3cool.web.jsp.TomcatRequestHandler</strong>&quot; /&gt; <br />&lt;add path=&quot;*.xhtml&quot; verb=&quot;GET,POST&quot; type=&quot;<strong>com.w3cool.web.jsp.TomcatRequestHandler</strong>&quot; /&gt; <br />&lt;add path=&quot;/servlet/*&quot; verb=&quot;GET,POST&quot; type=&quot;<strong>com.w3cool.web.jsp.TomcatRequestHandler</strong>&quot; /&gt; <br /></span></span>&lt;!-- JSP ihttpHandle 配置 --&gt;</p><p>然后在 站点属性&nbsp; -&gt; &quot;home directory&quot; -&gt;Configuration -&gt;</p><p>把.jsp .xhtml你要tomcat处理的内容加在aspnet_isapi.dll上，当然也可以图方便设定一个WildCard</p><p><a href="http://www.w3cool.com/WindowsLiveWriter/ISAPIIISJSPjk_1624/j1_2.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="440" alt="j1" width="425" border="0" src="http://www.w3cool.com/WindowsLiveWriter/ISAPIIISJSPjk_1624/j1_thumb.jpg" /></a></p><p>好了。现在就可以看看效果</p>]]></description>
            <link>http://www.w3cool.com/2008/09/09/isapi_iis_jsp_jk_tomcat.html</link>
            <guid>http://www.w3cool.com/2008/09/09/isapi_iis_jsp_jk_tomcat.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">.Net Framework</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Java/JSP</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">系统|System</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">项目|Projects</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">iis</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">java</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">jk</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">tomcat</category>
            
            <pubDate>Tue, 09 Sep 2008 17:34:06 +0800</pubDate>
        </item>
        
        <item>
            <title>.Net的运行效率问题</title>
            <description><![CDATA[<p>&#160;&#160;&#160;&#160;&#160;&#160; CLR只执行本机的机器代码。有两种方式产生本机的机器代码：实时编译（JIT）和预编译方式（产生native image）。详细了解了JIT,基本上每个人都知道的是，所有.Net语言都将被编译成为一个叫做IL汇编的中间语言。但是计算机是如何执行这个中间代码的，却是很多人不知道，甚至理解错误了的。</p>  <table cellspacing="0" cellpadding="0" width="699" border="0"><tbody>     <tr>       <td valign="top" width="146"><img src="http://msdn.microsoft.com/msdnmag/issues/05/04/NGen/fig01.gif" /></td>        <td valign="top" width="551">         <p>&#160;&#160;&#160;&#160;&#160;&#160; JIT是.NET程序运行的重要部件之一，全称是即时编译器。我刚才说的误解，就是很多人（绝对不是少数，问了很多c++程序员，10个有9个这种想法）都以为JIT其实就是跟JVM差不多的东西，是一个Interpreter，在运行时读取IL汇编代码，然后模拟成x86代码（也就是俗称的虚拟机）。但是事实上，.NET使用的是更为高级的技术。 .Net程序被加载入内存以后，当某段IL代码被第一次运行的时候，JIT编译器就会将这段IL代码，全部编译成本地代码，然后再执行。这也就是为什么.NET程序第一次运行都启动很慢的原因！ 随.NET库，微软还附带了一个工具，可以事先将.NET程序所有的IL代码都编译成本地代码并保存在缓存区中，这样一来，这个程序就跟c++编译的一模一样了，没有任何区别，运行时也可以脱离JIT了（这里不要混淆了，这里不是说可以脱离.NET库，而是说不需要在进行即时编译这个过程了）。所以，.NET和Java运行效率还是有些区别的，当然在执行高IO实时程序时也许仍然不如C++，因为还有在.net framework里面的appDomain的限制。 </p>          <p>&#160;&#160;&#160;&#160;&#160;&#160; Java JIT也曾经是Borland的亮点，.net的JIT想法极有可能就来自Borland，但是在架构了由于不用考虑平台的问题大大优于.net.</p>          <p>&#160;&#160;&#160;&#160;&#160;&#160; 所以在编译系统中，笔者的主张还是&quot;<strong>原生才是硬道理</strong>&quot;。</p>       </td>     </tr>   </tbody></table>]]></description>
            <link>http://www.w3cool.com/2008/08/29/net.html</link>
            <guid>http://www.w3cool.com/2008/08/29/net.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">.Net Framework</category>
            
            
            <pubDate>Fri, 29 Aug 2008 22:03:33 +0800</pubDate>
        </item>
        
        <item>
            <title>Iconv for windows - 编码转换</title>
            <description><![CDATA[<p>最近剽窃一个开源项目项目，把东西往自己的项目里面拖的时候发现，TMD原来是欧洲人写的，用的 windows-1252的编码，怎么办。还好熟悉iconv呵呵。拷到linux下一转就好了，但是SCP来来去去很麻烦，决定写一个windows下的iconv，和linxu的iconv的参数不一样的是-s 代表搜索子目录：</p>

<p>具体用法:<br />
-f From CodePage 源编码<br />
-t To Codepage 目标编码<br />
-s SubDirectory   递归检索子目录<br />
-v Verbose 显示转化日志<br />
eg:<br />
    iconv *.bat -p C:\\MyProject -f Windows-1252 -t utf-8 -v -s	</p>

<p><strong>*.bat </strong> 文件名一定要放在第一个参数呢。呵呵</p>

<p>下载文件:<br />
<span class="mt-enclosure mt-enclosure-file"><a href="http://www.w3cool.com/2007/12/18/iconv.exe">iconv.exe</a></span></p>

<p><span class="mt-enclosure mt-enclosure-file"><a href="http://www.w3cool.com/2007/12/18/iconv.exe">iconv.exe</a></span><br />
</p>]]></description>
            <link>http://www.w3cool.com/2007/12/18/iconv_for_windows.html</link>
            <guid>http://www.w3cool.com/2007/12/18/iconv_for_windows.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">.Net Framework</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">编码|.NetIconv</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">编程|Coding</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">项目|Projects</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">iconv</category>
            
            <pubDate>Tue, 18 Dec 2007 14:16:09 +0800</pubDate>
        </item>
        
        <item>
            <title>开源一个的Asp.net公共上传文件程序</title>
            <description><![CDATA[<p>
<span class="mt-enclosure mt-enclosure-image">程序很小，目的是为了解决所有web应用图片和文章上传</span></p>
<p>思路是这样的:任何一个web应用程序提交的都是一个表单，表单内有文件域。<br />这里这个上传文件拦截到这个form提交的所有文件域，处理上传，并将文件域改名为同名的文本域，文本域的内容就是成功上传的URL,如果失败返回为空，然后redirect到目标的信息页。样就很容易实现img.xxxxxx.com的效果，也能购方便的将论坛博客的上传分离，所要做的就是将上传的action改为该程序的上传处理地址，默认为 /i/up.aspx<br />
<span class="mt-enclosure mt-enclosure-image"><img class="mt-image-left" style="FLOAT: left; MARGIN: 0px 20px 20px 0px" height="441" alt="file.JPG" src="http://www.w3cool.com/2007/12/23/file.JPG" width="728" /></span>原理图</p>
<p>配置文件:<br />
<p></p>
<p><br />&lt;uploaderconfig&gt;</p>
<p>&lt;applications&gt;&lt;!--可以有多个--&gt;</p>
<p>&lt;uploaderapplication&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;id&gt;bbs_uploadfile&lt;/id&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&lt;refererdomain&gt;bbs.cnhubei.com&lt;/refererdomain&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;refererurl&gt;http://bbs.cnhubei.com/post_upload.asp(.*)&lt;/refererurl&gt; &lt;!--调用合法的URL,可以使用正则表达式--&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;successurl&gt;&lt;/successurl&gt;&lt;!--成功后返回页面--&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;errorurl&gt;&lt;/errorurl&gt;&lt;!--出现错误返回页面--&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;domain&gt;img.cnhubei.com&lt;/domain&gt;&lt;!--目标URL--&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;localfolder&gt;D:\Host\img.cnhubei.com&lt;/localfolder&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&lt;allowedextensions&gt;.gif|.jpg|.jpeg|.png|.bmp|.tif|.iff|.swf|.swi|.mid|.wav|.mp3|.rmi|.cda|.avi|.mpg|.mpeg|.ra|.ram|.wov|.asf&lt;/allowedextensions&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;allowedextensionssize&gt;350000|350000|350000|350000|350000|350000|35000|750000|35000|50000|35000|50000|50000|50000|50000|50000|50000|50000|50000|50000|50000&lt;/allowedextensionssize&gt;&lt;!--限制文件上传大小和上传的扩展名，上下对应--&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;folderparse&gt;^UploadFile|yyyyMM|dd|HH&lt;/folderparse&gt;&lt;!--文件存放规则--&gt;</p>
<p>&lt;/uploaderapplication&gt;</p>
<p>&lt;/uploaderconfig&gt;</p>
<p>&nbsp;</p>
<p>bbs.cnhubei.com使用动网论坛，修改后上传文件均改为 img.cnhubei.com 分离图片后论坛的运行效率得到有效的改观</p>
<p>源代码下载:&nbsp; 
<span class="mt-enclosure mt-enclosure-file"><a href="http://www.w3cool.com/2007/12/07/DotNetCommonUpload.rar">DotNetCommonUpload.rar</a></span></p>]]></description>
            <link>http://www.w3cool.com/2007/12/06/aspnet.html</link>
            <guid>http://www.w3cool.com/2007/12/06/aspnet.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">.Net Framework</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">上传|CommonUpload</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">编程|Coding</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">项目|Projects</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">asp.net</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">上传</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">配置文件</category>
            
            <pubDate>Thu, 06 Dec 2007 02:50:17 +0800</pubDate>
        </item>
        
        <item>
            <title>ContentType - 备忘</title>
            <description><![CDATA[<table cellspacing="1" cellpadding="0" width="100%" summary="" border="0">
    <tbody>
        <tr>
            <td width="33%">application/activemessage<br />
            application/andrew-inset<br />
            application/applefile<br />
            application/atomicmail<br />
            application/dca-rft<br />
            application/dec-dx<br />
            application/mac-binhex40 hqx<br />
            application/mac-compactpro cpt<br />
            application/macwriteii<br />
            application/msword doc<br />
            application/news-message-id<br />
            application/news-transmission<br />
            application/octet-stream bin dms lha lzh exe class<br />
            application/jsp jsp<br />
            application/oda oda<br />
            application/pdf pdf<br />
            application/postscript ai eps ps<br />
            application/powerpoint ppt<br />
            application/remote-printing<br />
            application/rtf rtf<br />
            application/slate<br />
            application/wita<br />
            application/wordperfect5.1<br />
            application/x-bcpio bcpio<br />
            application/x-cdlink vcd<br />
            application/x-compress Z<br />
            application/x-cpio cpio<br />
            application/x-csh csh<br />
            application/x-director dcr dir dxr<br />
            application/x-dvi dvi<br />
            application/x-gtar gtar<br />
            application/x-gzip gz<br />
            application/x-hdf hdf<br />
            application/x-httpd-cgi cgi<br />
            application/x-java-jnlp-file jnlp<br />
            application/x-koan skp skd skt skm<br />
            image/x-xpixmap xpm<br />
            image/x-xwindowdump xwd</td>
            <td width="33%">
            <p>application/x-sv4cpio sv4cpio<br />
            application/x-sv4crc sv4crc<br />
            application/x-tar tar<br />
            application/x-tcl tcl<br />
            application/x-tex tex<br />
            application/x-texinfo texinfo texi<br />
            application/x-troff t tr roff<br />
            application/x-troff-man man<br />
            application/x-troff-me me<br />
            application/x-troff-ms ms<br />
            application/x-ustar ustar<br />
            application/x-wais-source src<br />
            text/dtd dtd<br />
            text/xsl xsl<br />
            text/xml XML ent cat style<br />
            application/jsp jsp<br />
            application/zip zip<br />
            audio/basic au snd<br />
            audio/mpeg mpga mp2<br />
            audio/x-aiff aif aiff aifc<br />
            audio/x-pn-realaudio ram<br />
            audio/x-pn-realaudio-plugin rpm<br />
            audio/x-realaudio ra<br />
            audio/x-wav wav<br />
            chemical/x-pdb pdb xyz<br />
            image/gif gif<br />
            image/ief ief<br />
            image/jpeg jpeg jpg jpe<br />
            image/png png<br />
            image/tiff tiff tif<br />
            image/x-cmu-raster ras<br />
            image/x-portable-anymap pnm<br />
            image/x-portable-bitmap pbm<br />
            image/x-portable-graymap pgm<br />
            image/x-portable-pixmap ppm<br />
            image/x-rgb rgb<br />
            image/x-xbitmap xbm<br />
            application/x-latex latex</p>
            </td>
            <td width="33%">message/external-body<br />
            message/news<br />
            message/partial<br />
            message/rfc822<br />
            multipart/alternative<br />
            multipart/appledouble<br />
            multipart/digest<br />
            multipart/mixed<br />
            multipart/parallel<br />
            text/html html htm<br />
            text/plain txt<br />
            text/richtext rtx<br />
            text/tab-separated-values tsv<br />
            text/x-setext etx<br />
            text/x-sgml sgml sgm<br />
            video/mpeg mpeg mpg mpe<br />
            video/quicktime qt mov<br />
            video/x-msvideo avi<br />
            video/x-sgi-movie movie<br />
            x-conference/x-cooltalk ice<br />
            x-world/x-vrml wrl vrml<br />
            text/vnd.wap.wml wml<br />
            application/vnd.wap.wmlc wmlc<br />
            text/vnd.wap.wmlscript wmls<br />
            application/vnd.wap.wmlscriptc wmlsc<br />
            image/vnd.wap.wbmp wbmp<br />
            text/css css<br />
            text/vnd.sun.j2me.app-descriptor jad <br />
            application/java-archive jar <br />
            video/3gp 3gp <br />
            video/3gpp mp4<br />
            application/x-mif mif<br />
            application/x-netcdf nc cdf<br />
            application/x-sh sh<br />
            application/x-shar shar<br />
            application/x-stuffit sit</td>
        </tr>
    </tbody>
</table>]]></description>
            <link>http://www.w3cool.com/2007/11/21/contenttype.html</link>
            <guid>http://www.w3cool.com/2007/11/21/contenttype.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">.Net Framework</category>
            
            
            <pubDate>Wed, 21 Nov 2007 18:20:51 +0800</pubDate>
        </item>
        
    </channel>
</rss>

