﻿<?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>BlogJava-自由,平等,开源,分享</title><link>http://www.blogjava.net/shisanfeng/</link><description>闻道有先后，术业有专攻，如是而已</description><language>zh-cn</language><lastBuildDate>Tue, 07 Oct 2008 12:25:03 GMT</lastBuildDate><pubDate>Tue, 07 Oct 2008 12:25:03 GMT</pubDate><ttl>60</ttl><item><title>Linux 之父十大名言</title><link>http://www.blogjava.net/shisanfeng/articles/206739.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Sun, 08 Jun 2008 19:50:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/206739.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/206739.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/206739.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/206739.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/206739.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
　　Linux 之父 Linus Torvalds 的十大名言，你听说过几句？<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/shisanfeng/31955/o_2245010.jpg" border="0" /><br />
<br />
　　01.　<strong>Software is like sex: it's better when it's free.</strong><br />
<br />
　　　软件就像性，免费的比花钱的好得多。<br />
<br />
　　02.　<strong>Microsoft isn't evil, they just make really crappy operating systems.</strong><br />
<br />
　　　微软并不是魔鬼，只是它的操作系统实在太蹩脚了。<br />
<br />
　　03.　<strong>My name is Linus, and I am your God.</strong><br />
<br />
　　　我是 Linus，我是神。Hia Hia Hia。<br />
<br />
　　04.　<strong>See, you not only have to be a good coder to create a system like Linux, you have to be a sneaky bastard too.</strong><br />
<br />
　　　要想能够创造 Linux 这样得操作系统不只是需要良好得程序员，还得需要一批心理阴暗的混蛋。<br />
<br />
　　05.　<strong>The Linux philosophy is "Laugh in the face of danger". Oops. Wrong One. "Do it yourself". Yes, that's it.</strong><br />
<br />
　　　Linux 的哲学就是&#8220;在危险面前放声大笑&#8221;，呵呵，不是这句，应该是&#8220;一切靠自己，自力更生&#8221;才对。<br />
<br />
　　06.　<strong>Some people have told me they don't think a fat penguin really embodies the grace of Linux, which just tells me they have never seen a angry penguin charging at them in excess of 100 mph.</strong><br />
<br />
　　　很多朋友和我说那只耪企鹅不配代表 Linux 操作系统，因为他们从来没见过一只愤怒的企鹅以 100 迈的速度向他们发起攻击。<br />
<br />
　　07.　<strong>Intelligence is the ability to avoid doing work, yet getting the work done.</strong><br />
<br />
　　　天赋就是事半功倍。<br />
<br />
　　08.　<strong>When you say, "I wrote a program that crashed Windows", people just stare at you blankly and say, "Hey, I got those with the system, for free".</strong><br />
<br />
　　　你骄傲的和别人说&#8220;嘿，我写了个能让 Windows 崩溃的程序&#8221;，他们会说&#8220;哥们，我装 Windows 系统的时候就免费带着了&#8221;。<br />
<br />
　　09.　<strong>I don't doubt at all that virtualization is useful in some areas. What I doubt rather strongly is that it will ever have the kind of impact that the people involved in virtualization want it to have.</strong><br />
<br />
　　　我对虚拟化的技术使用没有任何怀疑，我怀疑的是他们对人的影响。<br />
<br />
　　10.　<strong>Now, most of you are probably going to be totally bored out of your minds on Christmas day, and here's the perfect distraction. Test 2.6.15-rc7. All the stores will be closed, and there's really nothing better to do in between meals.</strong><br />
<br />
　　　大家在圣诞期间可能会非常无聊，现在有好办法了，试试内核 2.6.15-rc7 版吧，茶余饭后的好消遣哦。<br />
<br />
</div>
<img src ="http://www.blogjava.net/shisanfeng/aggbug/206739.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-09 03:50 <a href="http://www.blogjava.net/shisanfeng/articles/206739.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VBScript 的局部变量和全局变量</title><link>http://www.blogjava.net/shisanfeng/articles/206637.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Sun, 08 Jun 2008 02:04:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/206637.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/206637.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/206637.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/206637.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/206637.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
　　<strong>局部变量</strong>：在过程的内部声明而具有局部作用域，过程外部任何命令都不能访问，每次执行过程创建的变量均随此过程的结束而销毁。<br />
　　<strong>全局变量</strong>：在过程的外部声明而具有全局作用域，其值能被 ASP 页面上的任何脚本命令访问和修改，全部变量随脚本运行的结束而消亡。<br />
<br />
</div>
<img src ="http://www.blogjava.net/shisanfeng/aggbug/206637.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-08 10:04 <a href="http://www.blogjava.net/shisanfeng/articles/206637.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VBScript 中函数参数的传递方式</title><link>http://www.blogjava.net/shisanfeng/articles/206636.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Sun, 08 Jun 2008 02:00:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/206636.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/206636.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/206636.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/206636.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/206636.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
将参数传递给过程有两种方式：传址方式和传值方式。<br />
<br />
<strong>传址方式</strong>：是指将变量在内存中的地址传递给过程，过程可直接修改此变量；当执行返回到调用过程时，变量为修改后的值。<br />
<br />
<strong>传值方式</strong>：是指将变量的副本值传递给过程，过程修改这个副本值，但变量的初始值保持不变；当执行返回到调用过程时，变量仍为传递之前的值。<br />
注意：必须以传址方式传递数组，如果试图以传值方式传递，则会出现语法错误。<br />
<br />
<strong>ByRef</strong> 关键字：指示参数以传址方式传递，被调用过程或属性可以更改代码中参数的基础变量的值。<br />
<strong>ByVal</strong> 关键字：指示参数以传值方式传递，被调用的过程或属性不能更改代码中参数的基础变量的值。<br />
<br />
</div>
 <img src ="http://www.blogjava.net/shisanfeng/aggbug/206636.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-08 10:00 <a href="http://www.blogjava.net/shisanfeng/articles/206636.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>表单的 Get 方法与 Post 方法的区别（ASP）</title><link>http://www.blogjava.net/shisanfeng/articles/206634.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Sun, 08 Jun 2008 01:54:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/206634.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/206634.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/206634.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/206634.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/206634.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
　　表单的 Method 属性指定传输信息的格式，其中有两种取值 Get（默认值）和 Post，分别指定两种不同的传输方式。<br />
<br />
　　两者的区别如下：<br />
<br />
　　　　1.　使用 Get 方式时，浏览器将传递的值绑定在页面所有控件上，成为一个查询字符串，且附在被请求页面的 URL 上，当这个请求到达 Web 服务器时，其值由 ASP 的 Request.QueryString 集合收集并提供。而使用 Post 方式时，浏览器将值包装进发送服务器的 HTTP 报头中，通过 Request.Form 集合收集并提供。<br />
<br />
　　　　2.　使用 Post 方式时，当用户重新下载表单时，窗体的值将不再保留，其值为空且必须重新输入。而 Get 方式传递的值被存储为一个链接，将被保留。<br />
<br />
　　　　3.　使用 Get 方式时，浏览器或服务器的 URL 字符串长度存在一定的限制，附有长的字符串可能会引起溢出和字符串的某些字符被截掉，同时查询字符串出现在浏览器的地址栏中，暴露了 HTTP 请求中通过 Web 传递的一些重要数据。而 Post 无上述缺陷。<br />
<br />
　　　　4.　使用 Get 方式时，URL 与查询字符串的结合体不能包含任何空格或其他特殊字符（如 [/][:][?][&amp;] 等），否则 HTTP 请求将出现问题。这些特殊字符是用来分隔 URL 和查询字符串的部分，虽然 IE 能够自动正确地将这些特殊字符转换为加号（+），但其他特殊字符就不能处理了，导致的后果可能会到不了要请求的页面。此时，必须通过 ASP 服务器对象提供的 URLEncode 方法进行变换处理。而 Post 方式则不存在此类问题。<br />
<br />
</div>
 <img src ="http://www.blogjava.net/shisanfeng/aggbug/206634.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-08 09:54 <a href="http://www.blogjava.net/shisanfeng/articles/206634.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VBScript 中 Sub 和 Function 的区别</title><link>http://www.blogjava.net/shisanfeng/articles/206632.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Sun, 08 Jun 2008 01:49:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/206632.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/206632.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/206632.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/206632.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/206632.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
　　将程序按功能分割成若干较小的逻辑部件，这些部件称为过程。<br />
　　过程常用于重复或共享的任务，能有效降低程序编写的复杂性，提高程序执行的效率。<br />
<br />
　　VBScript 的子程序和函数统称为过程，子程序叫 Sub 过程，函数叫 Function 过程。<br />
<br />
　　两者区别：<br />
<br />
　　　　1.　Sub 过程由 Sub 语句开始，End Sub 语句结束；Function 过程由 Function 语句开始，End Function 语句结束。<br />
　　　　2.　Sub 过程执行操作，但是不返回任何值；Function 过程通过过程中的一个或多个语句给过程名赋值，向调用程序返回值。<br />
　　　　3.　调用 Sub 过程时，只需输入过程名或相关参数，也可以使用 Call 语句调用；而调用 Function 过程时，必须将其名称和参数放在赋值语句的右边或表达式中。<br />
<br />
</div>
  <img src ="http://www.blogjava.net/shisanfeng/aggbug/206632.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-08 09:49 <a href="http://www.blogjava.net/shisanfeng/articles/206632.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VBScript 中 IsNull() 和 IsEmpty() 的区别</title><link>http://www.blogjava.net/shisanfeng/articles/206631.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Sun, 08 Jun 2008 01:44:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/206631.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/206631.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/206631.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/206631.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/206631.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
　　Null 与 Empty 不同，Null 值指出变量不包含有效数据，Empty 指出变量未经初始化。<br />
　　Null 与零长度字符串（""）也不同，零长度字符串往往指的是空串。<br />
<br />
<strong>IsEmpty(expression)</strong>： <br />
<br />
　　该函数返回 Boolean 值指明变量是否已被初始化。<br />
　　参数 expression 可以是任意表达式，然而由于 IsEmpty() 函数用于判断一个变量是否已被初始化，故 expression 参数常是一个变量名。<br />
　　如果变量未初始化或显式地设为 Empty，则 IsEmpty() 函数返回 True，否则返回 False。<br />
　　如果 expression 参数包含一个以上的变量，该函数总返回 False。<br />
<br />
　　<strong>典型示例</strong>：<br />
<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">Dim</span><span style="color: #000000">&nbsp;MyVar,MyCheck<br />
MyCheck</span><span style="color: #000000">=</span><span style="color: #0000ff">IsEmpty</span><span style="color: #000000">(MyVar)&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">返回&nbsp;True</span><span style="color: #008000"><br />
</span><span style="color: #000000">MyVar</span><span style="color: #000000">=</span><span style="color: #0000ff">Null</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">赋为&nbsp;Null</span><span style="color: #008000"><br />
</span><span style="color: #000000">MyCheck</span><span style="color: #000000">=</span><span style="color: #0000ff">IsEmpty</span><span style="color: #000000">(MyVar)&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">返回&nbsp;False</span><span style="color: #008000"><br />
</span><span style="color: #000000">MyVar</span><span style="color: #000000">=</span><span style="color: #0000ff">Empty</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">赋为&nbsp;Empty</span><span style="color: #008000"><br />
</span><span style="color: #000000">MyCheck</span><span style="color: #000000">=</span><span style="color: #0000ff">IsEmpty</span><span style="color: #000000">(MyVar)&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">返回&nbsp;True</span></div>
<br />
<strong>IsNull(expression)</strong>：<br />
<br />
　　该函数返回 Boolean 值，指明 expression 是否包含任何有效数据（Null）。<br />
　　参数 expression 可以是任意表达式。<br />
　　如果 expression 为 Null，则 IsNull() 函数返回 True，即表达式不包含任何有效数据，否则返回 False。<br />
　　如果表达式由多个变量组成，则任何组成变量中的 Null 都会使整个表达式返回 Null。<br />
　　使用 IsNull() 函数可以判断表达式是否包含 Null 值。任何包含 Null 的表达式本身就为 Null。<br />
<br />
　　<strong>典型示例</strong>：<br />
<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">Dim</span><span style="color: #000000">&nbsp;MyVar,MyCheck<br />
MyCheck</span><span style="color: #000000">=</span><span style="color: #0000ff">IsNull</span><span style="color: #000000">(MyVar)&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">返回&nbsp;False</span><span style="color: #008000"><br />
</span><span style="color: #000000">MyVar</span><span style="color: #000000">=</span><span style="color: #0000ff">Null</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">赋为&nbsp;Null</span><span style="color: #008000"><br />
</span><span style="color: #000000">MyCheck</span><span style="color: #000000">=</span><span style="color: #0000ff">IsNull</span><span style="color: #000000">(MyVar)&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">返回&nbsp;True</span><span style="color: #008000"><br />
</span><span style="color: #000000">MyVar</span><span style="color: #000000">=</span><span style="color: #0000ff">Empty</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">赋为&nbsp;Empty</span><span style="color: #008000"><br />
</span><span style="color: #000000">MyCheck</span><span style="color: #000000">=</span><span style="color: #0000ff">IsNull</span><span style="color: #000000">(MyVar)&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">返回&nbsp;False</span></div>
<br />
</div>
  <img src ="http://www.blogjava.net/shisanfeng/aggbug/206631.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-08 09:44 <a href="http://www.blogjava.net/shisanfeng/articles/206631.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ASP 中 Insert 和 AddNew 操作的区别</title><link>http://www.blogjava.net/shisanfeng/articles/206630.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Sun, 08 Jun 2008 01:36:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/206630.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/206630.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/206630.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/206630.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/206630.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
　　在 ASP 中常用的把表单数据插入到数据库中的方法有两种，一是 ADO 的 AddNew 方法，一是直接使用 SQL 的 Insert Into 语句。<br />
　　ADO 的 AddNew 方法是将 Insert Into 语句封装了起来，所以，当对大量数据进行操作时，直接使用 SQL 语句将会大大加快存取数据的速度，因为它减少了 ADO 的&#8220;翻译&#8221;时间。<br />
<br />
1.　<strong>直接使用 SQL 的 Insert Into 语句</strong><br />
<br />
　　直接使用 SQL 语句的优点是速度快、占用的资源少，但缺点是不能传递太长的字段内容，而且在字段比较多的情况下不容易检查错误。<br />
　　值得注意的是，字符串字段值中不能喊有单引号（'），否则会出错，解决方法是替换单引号（'）为双引号（"）。<br />
　　此外，当字段较多时还需要注意前面列表中的字段名和 values 后面的值的顺序要一一对应，如果该值为空，可以不填写，但表示分隔的逗号（,）不能省略。<br />
　　而且当加入的字段为字符串字段时，必须要在添加内容的前后加上单引号（'）。<br />
　　另外，在表名的前后打上方括号可以避免与系统表发生冲突，也是保证代码兼容性的一个良好习惯。<br />
<br />
2.　<strong>使用 ADO 的 AddNew 方法</strong><br />
<br />
　　使用 ADO 的 AddNew 方法编写代码比使用 SQL 的 Insert Into 语句编写代码更容易阅读，而且查找错误也要简单一些。<br />
<br />
</div>
 <img src ="http://www.blogjava.net/shisanfeng/aggbug/206630.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-08 09:36 <a href="http://www.blogjava.net/shisanfeng/articles/206630.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ASP 中 Command 对象与 RecordSet 对象的区别</title><link>http://www.blogjava.net/shisanfeng/articles/206629.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Sun, 08 Jun 2008 01:31:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/206629.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/206629.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/206629.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/206629.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/206629.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
　　ASP 提供了 ADO 内置的 3 个主要对象 RecordSet、Connection 和 Command 对 Web 数据库进行操作。<br />
<br />
　　其中，Connection 的主要功能是建立与 Web 数据库的连接；Command 的主要功能是向 Web 数据库传送数据查询的请求；RecordSet 的主要功能是建立数据查询的结果集。<br />
<br />
　　由于 ADO 几乎就是为 Web 数据库应用量身定做的，所以其中的 Command 对象在数据查询方面具有强大的功能。<br />
　　它不仅能够将一般的 SQL 指令送往 Web 数据库服务器，还能够传送带有参数的 SQL 指令，更重要的是还可以传送存储过程，因而能够开发出更具效率的数据库网页。<br />
<br />
　　RecordSet 对象会要求数据库传送所有的数据，那么数据量很大的时候就会造成网络的阻塞和数据库服务器的负荷过重，因此整体的执行效率就会降低。<br />
<br />
　　利用 Command 对象直接调用 SQL 语句，所执行的操作是在数据库服务器中进行的，显然会有很高的执行效率。<br />
特别是在服务器端执行创建完成的存储过程，可以降低网络流量，另外，由于事先进行了语法分析，可以提高整体的执行效率。<br />
<br />
　　RecordSet 对象能够比较好地去理解，但 Command 对象的性能更优越一些，特别是在批量加入数据的情况下。<br />
<br />
</div>
 <img src ="http://www.blogjava.net/shisanfeng/aggbug/206629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-08 09:31 <a href="http://www.blogjava.net/shisanfeng/articles/206629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ASP 基本特征要点</title><link>http://www.blogjava.net/shisanfeng/articles/206627.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Sun, 08 Jun 2008 01:24:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/206627.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/206627.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/206627.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/206627.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/206627.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
<strong>ASP 的特点</strong>：<br />
<br />
　　01.　<strong>无需编译</strong><br />
　　　　ASP 程序直接由 Web 服务器的动态库 asp.dll 解释执行，无需编译和连接。<br />
　　02.　<strong>易于编写和维护</strong><br />
　　　　ASP 源文件为纯文本文件，使用常用的文本编辑工具就可以编写 ASP 程序；同时 ASP 脚本集成于 HTML，编写和维护均比较方便。<br />
　　03.　<strong>独立于浏览器</strong><br />
　　　　由于 ASP 程序在服务器端解释执行，因此客户端用户只需使用系统自带的浏览器，即可浏览采用 ASP 设计的网页。<br />
　　04.　<strong>面向对象</strong><br />
　　　　在 ASP 脚本中可以方便地引用系统组件和 ASP 的内置组件，还能定制其他功能强大的 ActiveX 服务器组件。<br />
　　05.　<strong>数据库操纵功能强大</strong><br />
　　　　ASP 提供 ADO 对象，利用其可以创建交互性很强的页面，实现对后台数据库的各项数据操作功能，从而方便用户控制和管理数据。<br />
　　06.　<strong>执行效率高</strong><br />
　　　　ASP 提供最优化的多线程环境，可在一个进程中创建多个线程以同时为多个浏览者提供服务，既节约服务器的资源，又提高了程序的执行效率。<br />
　　07.　<strong>语言兼容性强</strong><br />
　　　　ASP 能与任何 ActiveX Script 语言相容。除了可使用 VBScript 或 JavaScript 语言以外，还通过插件的方式，使用由第三方所提供的其他脚本语言，如 Perl、Tcl 等。<br />
　　08.　<strong>可扩展性好</strong><br />
　　　　ASP 具有很强的扩展性，开发人员可以根据需要使用 Visual Basic 或 Visual C 等多种语言制作组件供 ASP 程序调用。<br />
　　09.　<strong>安全性高</strong><br />
　　　　ASP 程序在服务器端执行，客户端浏览器看到的只是 HTML 文件，因此可以避免源程序被泄露。<br />
<br />
<strong>ASP 工作原理</strong>：<br />
<br />
　　01.　用户在客户端浏览器地址栏中键入 ASP 文件名，按下&#8220;Enter&#8221;键触发 ASP 请求。<br />
　　02.　浏览器将 ASP 请求通过网络发送给 Web 服务器。<br />
　　03.　Web 服务器接受该请求，并获取正确的 ASP 文件。<br />
　　04.　Web 服务器将该文件发送给特定的 asp.dll 程序。<br />
　　05.　程序逐行解析 ASP 文件，将各个代码段发送到合适的脚本引擎进行编译并运行，然后将结果写入 HTML 流，生成静态 HTML 文件。<br />
　　06.　Web 服务器将 HTML 文件发送给客户端。<br />
　　07.　客户端浏览器解释执行收到的文件，并将其显示在浏览器上。<br />
<br />
<strong>ASP 开发原则</strong>：<br />
<br />
　　01.　采用标准方法：命名约定、目录结构标准化。<br />
　　02.　为客户机/服务器模式而设计。<br />
　　03.　封装业务逻辑。<br />
　　04.　提高资源的利用效率。<br />
　　05.　使用数据库维护复杂的状态。<br />
　　06.　使用 Server.CreateObject 创建对象。<br />
　　07.　提供丰富的疑难解答信息：使用错误日志保存信息。<br />
　　08.　测试性能，可伸缩性和可靠性：使用 Web Application Stress Tool 等负载工具进行压力测试。<br />
　　09.　增加隔离性。<br />
　　10.　不要滥用线程公用组。<br />
<br />
<strong>ASP 技术介绍</strong>：<br />
<br />
　　01.　ASP 是一个 Web 服务器端开发环境，利用它可以产生和执行动态的、互动的、高性能的 Web 服务应用程序。<br />
　　02.　ASP 可以通过 Microsoft Windows 的 COM/DCOM 获得 ActiveX 规模支持，通过 DCOM 和 Transcation Server 获得结构支持。<br />
　　03.　ASP 既不是程序语言，又不是开发工具，而是一种技术框架。<br />
<br />
<strong>ASP 的功能</strong>：<br />
<br />
　　01.　看处理用户通过浏览器提交到 Web 服务器的表单输入，完成用户和服务器端的交互过程。<br />
　　02.　访问服务器端数据库，执行相应的录入、查询、删除和修改等操作。<br />
　　03.　根据服务器的配置读写 Web 服务器端的文件。<br />
　　04.　控制和管理用户的访问权限，限制用户在网站的行为。<br />
　　05.　记录访问者的信息，跟踪用户在网站上的活动并将其存入日志文件。<br />
　　06.　结构 HTML 控件，实现各种形式的网际导航。<br />
<br />
<strong>ASP 的应用</strong>：<br />
<br />
　　01.　建立动态网站。<br />
　　02.　构筑聊天室、论坛、江湖、虚拟社区等网络应用程序。<br />
　　03.　创建站内搜索程序以及网络搜索引擎。<br />
　　04.　开发管理系统、办公系统等信息系统软件。<br />
　　05.　开发电子商务。<br />
　　06.　实现网络远程教学。<br />
<br />
</div>
 <img src ="http://www.blogjava.net/shisanfeng/aggbug/206627.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-08 09:24 <a href="http://www.blogjava.net/shisanfeng/articles/206627.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ASP 变量命名规则</title><link>http://www.blogjava.net/shisanfeng/articles/206625.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Sun, 08 Jun 2008 00:58:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/206625.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/206625.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/206625.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/206625.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/206625.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
<strong>Pascal 标记法</strong>：<br />
<br />
　　变量名的全部单词首字母大写，英文缩写全部为大写。<br />
<br />
<strong>匈牙利类型标记法</strong>：<br />
<br />
　　在以 Pascal 标记法命名的变量前附加一个小写字母（或小写字母序列），说明该变量的类型。<br />
<br />
<strong>自定义综合命名法</strong>：<br />
<br />
　　字符：cr<br />
　　整型：i<br />
　　长整型：l<br />
　　单精度型：f<br />
　　双精度型：d<br />
　　字符串型：s<br />
　　布尔型：b<br />
　　日期时间：t<br />
　　数组：a<br />
　　函数：fn<br />
　　过程：p<br />
　　对象：o<br />
　　集合：c<br />
　　类：cl<br />
　　变型（可变化为任意类型）：v<br />
<br />
</div>
<img src ="http://www.blogjava.net/shisanfeng/aggbug/206625.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-08 08:58 <a href="http://www.blogjava.net/shisanfeng/articles/206625.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决 IIS 6.0 中 .rmvb 格式文件无法在线播放和下载的方法</title><link>http://www.blogjava.net/shisanfeng/articles/206623.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Sun, 08 Jun 2008 00:50:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/206623.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/206623.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/206623.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/206623.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/206623.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
<strong>问题原因：</strong><br />
<br />
　　IIS 早期版本包含通配符 MIME 映射，允许 IIS 处理任何文件而无需考虑扩展名。<br />
　　IIS 6.0 不包含该通配符 MIME 映射，不能处理在 IIS 元数据库中的 MimeMap 节点以外定义的任何类型的扩展名。<br />
<br />
<strong>解决方案：</strong><br />
<br />
　　警告：如果不正确地编辑元数据库，可能会导致严重问题，您可能需要重新安装使用元数据库的所有产品。<br />
　　Microsoft 不能保证能够解决由于您错误地编辑元数据库而导致的问题，编辑元数据库需要您自担风险。<br />
<br />
　　注意：每次编辑元数据库前都要进行备份。<br />
<br />
　　要为特定扩展名定义 MIME 类型，请执行下列步骤：<br />
<br />
　　　　1.　在管理工具窗口中双击 Internet 信息服务（IIS）管理器，打开 IIS 管理控制台（MMC），右键单击本地计算机名称，然后单击属性。<br />
　　　　2.　单击 MIME 类型，单击新建。<br />
　　　　3.　在扩展名框中，键入所需的文件扩展名（例如：.rmvb）。<br />
　　　　4.　在 MIME 类型框中，键入&#8220;application/octet-stream&#8221;。<br />
　　　　5.　应用新设置。现在，IIS 可以处理带有所添加的扩展名的文件。在此示例中，IIS 现在可以处理带有 .rmvb 扩展名的文件。<br />
　　　　6.　重启 IIS WEB 服务，设置既可生效。<br />
<br />
</div>
<img src ="http://www.blogjava.net/shisanfeng/aggbug/206623.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-08 08:50 <a href="http://www.blogjava.net/shisanfeng/articles/206623.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>防止 .mdb 数据库爆库的方法</title><link>http://www.blogjava.net/shisanfeng/articles/206622.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Sun, 08 Jun 2008 00:39:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/206622.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/206622.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/206622.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/206622.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/206622.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
　　对于采用 Access 数据库的网站来说，爆库是绝对危险！<br />
<br />
<strong>1.　对 Access 数据库文件名的设置</strong><br />
<br />
　　在任何 Access 数据库文件名的前面加上一个 # 号，这样做在一定程度上避免数据库被下载。<br />
　　其原因是浏览器在解析 URL 的时候,遇见 # 会以为是锚，这样浏览器就会在页面中搜索锚点，而不是指向一个文件。<br />
　　不过有些下载工具还是会尝试去连接这个 .mdb 数据库文件，它会将 # 号使用 URL 编码变为 %23，这样依然可以下载 .mdb 文件。<br />
<br />
<strong>2.　对 IIS 服务器进行设置</strong><br />
<br />
　　此方法当然是要对你的网站服务器具有控制权了，如果租用的服务器就没法使用该办法了。<br />
　　使用该方法，就算是知道了 .mdb 数据库的路径也完全没有办法下载。<br />
<br />
　　首先，选中你的站点，右键打开&#8220;站点属性&#8221;对话框，选择&#8220;主目录&#8221;标签，点击&#8220;配置&#8221;开打&#8220;应用程序配置&#8221;对话框。<br />
　　然后，在&#8220;应用程序扩展&#8221;中添加一项，&#8220;可执行文件&#8221;为：C:\WINDOWS\system32\inetsrv\asp.dll，&#8220;动作&#8221;为&#8220;限制&#8221;，输入任意字符串（只要不是 get 或 post）都行，如输入 haha。<br />
　　最后，一路&#8220;确认&#8221;即可。<br />
<br />
</div>
<img src ="http://www.blogjava.net/shisanfeng/aggbug/206622.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-08 08:39 <a href="http://www.blogjava.net/shisanfeng/articles/206622.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开源协议介绍</title><link>http://www.blogjava.net/shisanfeng/articles/206104.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Thu, 05 Jun 2008 09:20:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/206104.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/206104.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/206104.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/206104.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/206104.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
<strong>Mozilla Public License</strong><br />
<br />
　　MPL License，允许免费重发布、免费修改，但要求修改后的代码版权归软件的发起者。这种授权维护了商业软件的利益，它要求基于这种软件的修改都要无偿贡献版权给该软件。这样，围绕该软件的所有代码的版权都集中在发起开发人手中。MPL 是允许修改，无偿使用的。MPL 软件对链接没有要求。<br />
<br />
<strong>BSD 开源协议</strong><br />
<br />
　　BSD 开源协议是一个给于使用者很大自由的协议。可以自由的使用，修改源代码，也可以将修改后的代码作为开源或者专有软件再发布。当发布使用了 BSD 协议的代码，或则以 BSD 协议代码为基础做二次开发自己的产品时，需要满足三个条件：<br />
<br />
　　　　1.　如果再发布的产品中包含源代码，则在源代码中必须带有原来代码中的 BSD 协议。<br />
　　　　2.　如果再发布的只是二进制类库/软件，则需要在类库/软件的文档和版权声明中包含原来代码中的 BSD 协议。<br />
　　　　3.　不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。<br />
<br />
　　BSD 代码鼓励代码共享，但需要尊重代码作者的著作权。BSD 由于允许使用者修改和重新发布代码，也允许使用或在 BSD 代码上进行商业软件发布和销售，因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选 BSD 协议，因为可以完全控制这些第三方的代码，在必要的时候可以修改或者二次开发。<br />
<br />
<strong>Apache Licence 2.0</strong><br />
<br />
　　Apache Licence 是著名的非盈利开源组织 Apache 采用的协议。该协议和 BSD 类似，同样鼓励代码共享和尊重原作者的著作权，同样允许代码修改，再发布（作为开源或商业软件）。需要满足的条件：<br />
<br />
　　　　1.　需要给代码的用户一份 Apache Licence。<br />
　　　　2.　如果修改了代码，需要在被修改的文件中说明。<br />
　　　　3.　在延伸的代码中（修改和有源代码衍生的代码中）需要带有原来代码中的协议、商标、专利声明和其他原来作者规定需要包含的说明。<br />
　　　　4.　如果再发布的产品中包含一个 Notice 文件，则在 Notice 文件中需要带有 Apache Licence。可以在 Notice 中增加自己的许可，但不可以表现为对 Apache Licence 构成更改。 <br />
<br />
　　Apache Licence 也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。<br />
<br />
<strong>GPL</strong><br />
<br />
　　GPL 许可证是自由软件的应用最广泛的软件许可证，可以修改程式的一个或几个副本或程式的任何部分，以此形成基于这些程式的衍生作品。必须在修改过的档案中附有明显的说明（修改此档案及任何修改的日期）。必须让发布或出版的作品，包括本程式的全部或一部分，或内含本程式的全部或部分所衍生的作品，允许第三方在此许可证条款下使用，并且不得因为此项授权行为而收费。<br />
<br />
<strong>LGPL</strong><br />
<br />
　　Linux 就是采用了 GPL。GPL 协议和 BSD、Apache Licence 等鼓励代码重用的许可很不一样。GPL 的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用，但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种 Linux，包括商业公司的 Linux 和 Linux 上各种各样的由个人，组织，以及商业软件公司开发的免费软件了。<br />
<br />
　　GPL 协议的主要内容是只要在一个软件中使用（&#8220;使用&#8221;指类库引用，修改后的代码或者衍生代码）GPL 协议的产品，则该软件产品必须也采用GPL 协议，即必须也是开源和免费。这就是所谓的&#8220;传染性&#8221;。GPL 协议的产品作为一个单独的产品使用没有任何问题，还可以享受免费的优势。<br />
<br />
　　由于 GPL 严格要求使用了 GPL 类库的软件产品必须使用 GPL 协议，对于使用 GPL 协议的开源代码，商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库/二次开发。<br />
<br />
　　其它细节如再发布的时候需要伴随 GPL 协议等和 BSD/Apache 等协议的要求类似。<br />
<br />
<strong>Public Domain</strong><br />
<br />
　　公共域授权。将软件授权为公共域，这些软件包没有授权协议，任何人都可以随意使用它。<br />
<br />
<strong>Artistic 许可</strong><br />
<br />
　　使作者保持对进一步开发的控制。<br />
<br />
</div>
<img src ="http://www.blogjava.net/shisanfeng/aggbug/206104.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-05 17:20 <a href="http://www.blogjava.net/shisanfeng/articles/206104.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于 Windows 下的 Web 服务器测试</title><link>http://www.blogjava.net/shisanfeng/articles/205877.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Wed, 04 Jun 2008 09:19:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/205877.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/205877.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/205877.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/205877.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/205877.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
　　随着 Internet 的日益普及，现在基于 B/S 结构的大型应用越来越多，可如何对这些应用进行测试成为日益迫切的问题。有许多测试人员来信问我 B/S 的测试如何做，由于工作较繁忙，对大家提出的问题也是头痛医头脚痛医脚，没有对 Web 的测试过程做一个整体的概述。希望通过本篇能够让大家了解大型 Web 应用是如何来进行测试的。<br />
<br />
　　B/S 下的功能测试比较简单，关键是如何做好性能测试。目前大多数的测试人员认为只要跑一些测试工具证明我的产品是可以达到性能的就 OK 了，为了证明而去测试是没有任何价值的，关键是要发现产品性能上的缺陷，定位问题，解决问题，这才是测试要做的。<br />
<br />
　　首先我们从两个方面分析如何进行 Web 测试，从技术实现上来讲一般的 B/S 结构，无论是 .NET 还是 J2EE，都是多层构架，有界面层、业务逻辑层、数据层。而从测试的流程上来说，首先是发现问题，分析问题，定位问题，再由开发人员解决问题。那么 B/S 的结构的测试如何来做呢？<br />
<br />
　　如何发现问题是我首先要介绍的，在做 Web 测试之前你需要一些资料，比如产品功能说明书，性能需求说明书，不一定很完善，但一定要有，明确测试目标，这是基本的常识，可是我往往看到的是已经开始动手测了，但还不知自己的系统要达到的性能指标是什么。这里我简单讲一下测试的性能指标：<br />
<br />
　　通用指标（指 Web 应用服务器、数据库服务器必需测试项）：<br />
<br />
　　　　Processor Time：指服务器 CPU 占用率，一般平均达到 70% 时，服务就接近饱和；<br />
　　　　Memory Available Mbyte：可用内存数，如果测试时发现内存有变化情况也要注意，如果是内存泄露则比较严重；<br />
　　　　Physicsdisk Time：物理磁盘读写时间情况。<br />
<br />
　　Web 服务器指标：<br />
<br />
　　　　Avg Rps：平均每秒钟响应次数=总请求时间/秒数；<br />
　　　　Avg time to last byte per terstion（mstes）：平均每秒业务角本的迭代次数，有人会把这两者混淆；<br />
　　　　Successful Rounds：成功的请求；<br />
　　　　Failed Rounds：失败的请求；<br />
　　　　Successful Hits：成功的点击次数；<br />
　　　　Failed Hits：失败的点击次数；<br />
　　　　Hits Per Second：每秒点击次数；<br />
　　　　Successful Hits Per Second：每秒成功的点击次数；<br />
　　　　Failed Hits Per Second：每秒失败的点击次数；<br />
　　　　Attempted Connections：尝试链接数。<br />
<br />
　　数据库服务器指标：<br />
<br />
　　　　User 0 Connections：用户连接数，也就是数据库的连接数量；<br />
　　　　Number of deadlocks：数据库死锁；<br />
　　　　Butter Cache hit：数据库 Cache 的命中情况。<br />
<br />
　　上面的指标只是一些通用的指标，起到抛砖引玉的作用，对于不同的应用你还必需作相应的调整，比如程序使用的是 .NET 技术的，则必需加入一些针对性的测试指标。对于这些指标的详细了解，你可以参考 Windows 下面的 SystemMonitor 的帮助与 LoadRunner、ACT 的帮助。对于发现问题，指标的设置非常重要，它会帮你定性的发现一些错误。对于定性的压力测试我就不做过多的分析，工具很多，流行的主要有 LoadRunner、ACT、WAS、WebLoad 各个工具有它的使用范围；其中我各个认为：<br />
<br />
　　　　LoadRunner 最全面，它提供了多种协议的支持，对复杂的压力测试都可以胜任；<br />
　　　　WAS 与 ACT 则对微软的技术支持的比较好，其中 WAS 支持分布式机群测试；<br />
　　　　ACT 则是与 .NET 集成比较好，支持 ViewState（.NET 下控件缓存的支持）的测试。<br />
<br />
　　在这一阶段测试你要不断的跟据系数的测试目标进行变化，一开始由于系统过于庞大，所以我们要分成若干个子系统，各个子系统的性能目标必需明确，主要是并发指标定一个阈值，同时设定一些与系统相关的测试参数，应用服务器，数据库服务器都要有，对达不到阈值的与一些通用参数有问题的子系统进行深入分析。比如它的并发达不到你的要求，证明子系统性能有问题，或是数据库用户连接过高，程序没有释放用户连接等等。这个我们要对子系统进行详细测试，由于 B/S 结构下，图片的请求对性能的影响较大，所以我们对子系统测试时要分两个部分进行：<br />
<br />
　　　　非程序部分，即图片等等；<br />
　　　　应用程序本身。<br />
<br />
　　通过事务或函数的分离，可以把这两块实现单独的测试，具体做法参考各个工具的手册，我这里就不做说明。对子系统的测试参数的设置要求则更高，它有助你后面精确的定位问题，比如对异常、死锁、网络流量等等前面没有注意到的情况的增加；同时你要注意增加测试参数的收集对系统的性能影响比较大，所以一般不要超过 10 个。刚刚介绍的整体的性能测试指标也不要增加很多，这样影响会小一点。最后在这一阶段要说明的是数据库的数据量会很大程度的影响性能，所以要根据前面的性能需求说明书向数据库中模拟相应的数据量，来进行测试，这样才有更高的可信度。<br />
<br />
　　上面所说的是对问题的发现，下面就是分析问题原因，这一步的要求比较高，一般由测试人员与程序员配合完成，当然如果你有相当的开发经验，再做这方面的测试，就更为难得。下面我们说说如何精确定位问题，出现问题的可能性可能有很多种，大致分以下几种：<br />
<br />
　　　　性能达不到目标；<br />
　　　　性能达到目标，但有一些其它的问题，比如异常、死锁。缓存命中过低，网络流量较大；<br />
　　　　服务器稳定性的问题，比如内存泄漏等。<br />
<br />
　　发现这些问题起马的要求要有一款使用的比较称心的性能分析与优化工具，比如微软的 .net 下就有自己开发的工具，对 Borland 的 Java 开发工具中也有类似的工具，但我个人认为更好的工具是 Rose 下的 Purify 与 Quantify，主要是他对.net 与 Java、C++ 都有支持，而且分析效果特别专业。我们先了解一下 Rational Purify。<br />
<br />
　　Rational Purify 能自动找出 Visual C/C++ 和 Java 代码中与内存有关的错误，确保整个应用程序的质量和可靠性。在查找典型的 Visual C/C++ 程序中的传统内存访问错误，以及 Java，C# 代码中与垃圾内存收集相关的错误方面；Rational Quantity 则是一款针对函数级的性能分析利器，使用它你可以从图形化的界面中得到函数调用的时间，百分比与次数，以及子函数所占时间，使你可以更快的定位性能瓶颈。<br />
<br />
　　我们先说性能优化与异常的处理，性能优化有一个原则，即用时间比例最大的进行优化，效果才最明显。比如有个函数它的执行时间为 30 秒，如果你优化了一百倍则执行时间为 0.3 秒，提升了 29.7 秒；而如果它的执行时间为 0.3 秒，优化后为 0.003 秒，实际提升了 0.297 秒，提升的效果并不明显但写过程序的人都知道，后者性能优化的代价更大。<br />
<br />
　　在性能优化的过程中，一般是先数据库，后程序。因为数据库的优化不需要修改程序，修改的风险很小。但如何才能确定是数据库的问题，这就需要技巧，在使用 Quantity 时，你一路分析下去，大多数最终会发现，是数据库查询函数占用时间比较大，比如什么 SqlCmd.ExecuteNoQuery 等等数据库执行函数，这时你就需要分析数据库。<br />
<br />
　　数据库的分析原则是先索引，后存储过程，最后表结构视图的优化。索引的优化是最简单也是通常最有效的方法，如果合理的使用会带来意想不到不到的效果。在这里我要给大家简单的介绍一下我的最爱：SQLProfile、SQL 查询分析器。<br />
<br />
　　Precise SQLProfile 是一个 SQL 语句跟踪器，可以跟踪程序流程使用的 SQL 语句与存储过程，结合查询分析器对 SQL 的分析，可以对索引的优化做出很好的判断，但索引也不是万能的，在增删改较多的表，索引过多会引起这些操作的性能下降，所以判断还是需要一定的经验。同时针对用户使用频度最高的 SQL 进行优化也是最行之有效的，这时我则需要 Precise，它可以观测某一个较长时间内的 SQL 语句的执行情况。<br />
<br />
　　数据库优化的潜能挖光后，如果还是达不到性能要求或是还有问题，则要从程序来进行优化，这是程序员做的事。测试人员要做的，就是告诉他们，哪个函数执行过多引起了性能下降，比如异常过多，某个循环过多，或是 DCOM 调用过多等等，但说服程序员也是一件不容易的事，你要在这一阶段做的出色一定要有几年的编程经验，并且要让程序员感到听你的性能会有提升，这是一件很不容易的事情哦。<br />
<br />
　　内存的分析，一般是一个长期分析的过程，要做好不容易，首先要有长期奋战的准备，其次内存泄漏的分析最好是放在单元测试之中同步进行，而不是要等到最后再去发现问题，当然出了问题也只好面对，一般这类问题都是在服务器运行了很久才暴露出来，一旦发现问题后，则需要定位问题，分析的原则采用子系统相互独立运行，找到最小问题的系统集，或是借助内存分析工具观察内存对象情况，初步定位问题，再用 Purify 进行运行时分析，通常 C++ 内存问题比较多， Java 与 .NET 比较少，一般由 GC 不合理引起。C++ 的内存错误就比较多了，主要常见的有：<br />
<br />
　　　　Array Bounds Read（ABR）：数组越界读<br />
　　　　Array Bounds Write（ABW）：数组越界写<br />
　　　　Beyond stack Read（BSR）：堆栈越界读<br />
　　　　Free Memory Read（FMR）：空闲内存读<br />
　　　　Invalid pointer Read（IPR）：非法指针阅读<br />
　　　　Null Pointer Read（NPR）： 空指针阅读<br />
　　　　Uninitialized Memory Read（UMR）：未初始化内存读写<br />
　　　　Memory Leak：内存泄漏<br />
<br />
　　　　注：如果需要更多的信息，可以参见 Purify 的帮助信息。<br />
<br />
　　顺便提一句，为什么我要说做单元测试时做内存分析比较好，由于单元测试针对的是单一功能，这时结合单元测试案例做内存分析会更快的定位问题，同时由于问题较早的发现，则后期的风险则会减少，当然如果结合代码覆盖工具 PureCoverage 来做就更完美了。<br />
<br />
　　注：本篇只是对 B/S 应用的测试过程作一个整体的描述，对某一个阶段使用的工具只是作大概的介绍，你也可使用你比较熟悉的工具达到相同的目标。<br />
<br />
</div>
<img src ="http://www.blogjava.net/shisanfeng/aggbug/205877.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-04 17:19 <a href="http://www.blogjava.net/shisanfeng/articles/205877.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Web 常用的功能性测试方法</title><link>http://www.blogjava.net/shisanfeng/articles/205858.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Wed, 04 Jun 2008 08:31:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/205858.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/205858.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/205858.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/205858.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/205858.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
01.　<strong>页面链接检查</strong>：每一个链接是否都有对应的页面，并且页面之间切换正确。<br />
<br />
02.　<strong>相关性检查</strong>：删除/增加一项会不会对其他项产生影响，如果产生影响，这些影响是否都正确。<br />
<br />
03.　<strong>检查按钮的功能是否正确</strong>：如 update、cancel、delete、save 等功能是否正确。<br />
<br />
04.　<strong>字符串长度检查</strong>：输入超出需求所说明的字符串长度的内容，看系统是否检查字符串长度，会不会出错。<br />
<br />
05.　<strong>字符类型检查</strong>：在应该输入指定类型的内容的地方输入其他类型的内容（如在应该输入整型的地方输入其他字符类型），看系统是否检查字符类型，会否报错。<br />
<br />
06.　<strong>标点符号检查</strong>：输入内容包括各种标点符号，特别是空格、各种引号、回车键。看系统处理是否正确。<br />
<br />
07.　<strong>中文字符处理</strong>：在可以输入中文的系统输入中文，看会否出现乱码或出错。<br />
<br />
08.　<strong>检查带出信息的完整性</strong>：在查看信息和 update 信息时，查看所填写的信息是不是全部带出，带出信息和添加的是否一致。<br />
<br />
09.　<strong>信息重复</strong>：在一些需要命名，且名字应该唯一的信息输入重复的名字或 ID，看系统有没有处理，会否报错，重名包括是否区分大小写，以及在输入内容的前后输入空格，系统是否作出正确处理。<br />
<br />
10.　<strong>检查删除功能</strong>：在一些可以一次删除多个信息的地方，不选择任何信息，按&#8220;delete&#8221;，看系统如何处理，会否出错；然后选择一个和多个信息，进行删除，看是否正确处理。<br />
<br />
11.　<strong>检查添加和修改是否一致</strong>：检查添加和修改信息的要求是否一致，例如添加要求必填的项，修改也应该必填；添加规定为整型的项，修改也必须为整型。<br />
<br />
12.　<strong>检查修改重名</strong>：修改时把不能重名的项改为已存在的内容，看会否处理，报错。同时，也要注意，会不会报和自己重名的错。<br />
<br />
13.　<strong>重复提交表单</strong>：一条已经成功提交的纪录，back 后再提交，看看系统是否做了处理。<br />
<br />
14.　<strong>检查多次使用 back 键的情况</strong>：在有 back 的地方，back，回到原来页面，再 back，重复多次，看会否出错。<br />
<br />
15.　<strong>Search 检查</strong>：在有 Search 功能的地方输入系统存在和不存在的内容，看 Search 结果是否正确。如果可以输入多个 Search 条件，可以同时添加合理和不合理的条件，看系统处理是否正确。<br />
<br />
16.　<strong>输入信息位置</strong>：注意在光标停留的地方输入信息时，光标和所输入的信息会否跳到别的地方。<br />
<br />
17.　<strong>上传下载文件检查</strong>：上传下载文件的功能是否实现，上传文件是否能打开。对上传文件的格式有何规定，系统是否有解释信息，并检查系统是否能够做到。<br />
<br />
18.　<strong>必填项检查</strong>：应该填写的项没有填写时系统是否都做了处理，对必填项是否有提示信息，如在必填项前加&#8220;*&#8221;。<br />
<br />
19.　<strong>快捷键检查</strong>：是否支持常用快捷键，如 Ctrl+C、Ctrl+V、Backspace 等，对一些不允许输入信息的字段，如选人，选日期对快捷方式是否也做了限制。<br />
<br />
20.　<strong>回车键检查</strong>：在输入结束后直接按回车键，看系统处理如何，会否报错。<br />
<br />
</div>
   <img src ="http://www.blogjava.net/shisanfeng/aggbug/205858.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-04 16:31 <a href="http://www.blogjava.net/shisanfeng/articles/205858.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用 Microsoft Web Application Stress Tool 对 Web 服务器进行压力测试 </title><link>http://www.blogjava.net/shisanfeng/articles/205820.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Wed, 04 Jun 2008 07:09:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/205820.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/205820.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/205820.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/205820.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/205820.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
　　Web 压力测试是目前比较流行的话题，利用 Web 压力测试可以有效地测试一些 Web 服务器的运行状态和响应时间等等，对于 Web 服务器的承受力测试是个非常好的手法。Web 压力测试通常是利用一些工具，例如微软的 Web Application Stress、Linux 下的 Siege、功能全面的 Web-CT 等等，这些都是非常优秀的 Web 压力测试工具。<br />
<br />
　　虽然这些工具给我们测试服务器承受能力带来方便，但是它们的危害却更是惊人，甚至于利用随便一种比较全面的测试工具就可以对一台小型的 Web 服务器发动灾难性的拒绝式攻击。下面我就带大家利用微软的 Web Application Stress 进行一次 Web 压力测试，其目的是为了让大家看到它的巨大危害。<br />
<br />
<strong>一、工具简单介绍</strong><br />
<br />
　　Microsoft Web Application Stress Tool 是由微软的网站测试人员所开发，专门用来进行实际网站压力测试的一套工具。透过这套功能强大的压力测试工具，您可以使用少量的客户端计算机仿真大量用户上线对网站服务所可能造成的影响，在网站实际上线之前先对您所设计的网站进行如同真实环境下的测试，以找出系统潜在的问题，对系统进行进一步的调整、设置工作。就是因为这些特性，才使它具备了 D.O.S 轰炸的功能。<br />
<br />
　　小提示：D.O.S（拒绝服务攻击）通过使你的服务计算机崩溃或把它压跨来阻止你提供服务。简单来说，就是让你的计算机提供可能多的服务从而使你的计算机陷入崩溃的边缘或崩溃。<br />
<br />
<strong>二、工具简单设置</strong><br />
<br />
　　打开 Web Application Stress Tool，很简洁的一个页面，上面是工具栏，左下方是功能选项，右下方是详细设置选项。在对目标 Web 服务器进行压力测试之前，先对它进行一些必要的设置。<br />
<br />
<div style="display: block; text-align: center"><img alt="" src="http://www.blogjava.net/images/blogjava_net/shisanfeng/31955/o_200608023_1.jpg" border="0" /></div>
<br />
　　1. 在&#8220;Settings&#8221;的功能设置中，一个是 Stress level （threads）这里是指定程序在后台用多少线程进行请求，也就是相当于模拟多少个客户机的连接，更加形象的就是说设置多少轰炸的线程数。一般填写 500～1000，因为这个线程数是根据本机的承受力来设置的，如果你对自己的机器配置有足够信心的话，那么设置的越高，轰炸的效果越好。<br />
<br />
<div style="display: block; text-align: center"><img alt="" src="http://www.blogjava.net/images/blogjava_net/shisanfeng/31955/o_200608023_2.jpg" border="0" /></div>
<br />
　　2. 在&#8220;Test Run Time&#8221;中来指定一次压力测试需要持续的时间，分为天、小时、分、秒几个单位级别，你根据实际情况来设置吧！<br />
<br />
　　3. 其余的选项不太重要，这里就不再浪费笔墨，朋友们可以自己尝试一下设置。<br />
<br />
<strong>三、压力测试</strong><br />
<br />
　　工具介绍完了，下面来准备条件：这里与一个朋友商量好进行测试，他是单机上网，机器配置是 CPU Athlon XP2500+、内存 512MB、硬盘 80GB 等，机器配置还不错。他在机器上安装了 IIS，架设了一台对外的 Web 服务器，Web 服务中的程序是动网 7.0。我就利用压力测试工具对这台服务器进行测试。<br />
<br />
　　步骤 1：在工具中点右键，选择 Add 命令，增加了一个新的测试项目：New Script，对它进行设置，在主选项中的 Server 中填写要测试的服务器的 IP 地址。在下方选择测试的 Web 连接方式，这里的方式 Verb 选择 Get，Path 选择要测试的 Web 页面路径，这里填写 /Index.asp，即动网的首页文件。<br />
<br />
<div style="display: block; text-align: center"><img alt="" src="http://www.blogjava.net/images/blogjava_net/shisanfeng/31955/o_200608023_3.jpg" border="0" /></div>
<br />
　　步骤 2：在&#8220;Settings&#8221;的功能设置中将 Stress level （threads）线程数设置为 1000。完毕后，点工具中的灰色三角按钮即可进行测试。测试完毕，等待朋友把任务管理器以及连接查看的截图发过来！<br />
<br />
<div style="display: block; text-align: center"><img alt="" src="http://www.blogjava.net/images/blogjava_net/shisanfeng/31955/o_200608023_4.jpg" border="0" /></div>
<br />
　　攻击开始后，朋友从任务管理器中可以看到 CPU 使用率已经达到 100%，损耗率达到最大。在 CMD 窗口中使用命令 netstat -an，可以看到我的 IP 地址在朋友服务器上的80端口进行了非常多的连接。而且它的 Web 网站已经打不开了，提示过多用户连接，达到了跟 D.O.S 攻击一样的目的。<br />
<br />
<div style="display: block; text-align: center"><img alt="" src="http://www.blogjava.net/images/blogjava_net/shisanfeng/31955/o_200608023_5.jpg" border="0" /></div>
<br />
<div style="display: block; text-align: center"><img alt="" src="http://www.blogjava.net/images/blogjava_net/shisanfeng/31955/o_200608023_6.jpg" border="0" /></div>
<br />
　　试想，如果利用多台肉鸡对一台服务器进行 Web 压力测试，那么对这台服务器来说将是灭顶之灾，所以朋友们在使用它之前一定要慎重考虑。<br />
<br />
</div>
<img src ="http://www.blogjava.net/shisanfeng/aggbug/205820.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-04 15:09 <a href="http://www.blogjava.net/shisanfeng/articles/205820.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>你误入歧途了吗？程序员通往高薪之路的三大关键、五大误区</title><link>http://www.blogjava.net/shisanfeng/articles/205728.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Wed, 04 Jun 2008 02:19:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/205728.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/205728.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/205728.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/205728.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/205728.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
作者：于鹏　出处：中国 IT 实验室　时间：2008-06-03 13:42<br />
<br />
　　我始终认为，对一个初学者来说，IT 界的技术风潮是不可追赶。我时常看见自己的 DDMM 们把课本扔了，去买些价格不菲的诸如 C#、VB.Net 这样的大部头，这让我感到非常痛心。而许多搞不清指针是咋回事的 BBS 站友眉飞色舞的讨论 C# 里面可以不用指针等等则让我觉得好笑。C# 就象当年的 ASP 一样，&#8220;忽如一夜春风来，千树万树梨花开&#8221;，结果许多学校的信息学院成了&#8220;Web 学院&#8221;。96、97 级的不少大学生都去做 Web 了。当然我没有任何歧视某一行业的意识。我只是觉得如果他们把追赶这些时髦技术的时间多花一点在基础的课程上应该是可以走得更远的。<br />
<br />
<strong>一、高薪之路五大误区</strong><br />
<br />
　　初学者对 C# 风潮的追赶其实也只是学习过程中经常遇到的几个误区之一。我将用一些实际的例子来说明这些现象，你可以按部就班的看看自己是不是属于其中的一种或者几种：<br />
<br />
<strong>1. 认为计算机技术等于编程技术</strong><br />
<br />
　　有些人即使没有这个想法，在潜意识中也有这样的冲动。让我奇怪的是，许多信息学院的学生也有这样的念头。认为计算机专业就是编程专业，与编程无关的，或者不太相关的课程他统统都不管，极端的学生只要书上没带&#8220;编程&#8221;两个字他就不看。<br />
<br />
　　其实编程只是计算机技术应用过程中一种复杂性最低的劳动，这就是为什么 IT 业最底层的人是程序员（Coder）。计算机技术包括了多媒体，计算机网络，人工智能，模式识别，管理信息系统等等这些方面。编程工作只是在这些具体技术在理论研究或者工程实践的过程中表达算法的过程。编程的人不一定对计算机技术的了解就一定很高。而一个有趣的现象是，不少大师级的计算机技术研究者是不懂编程的。网上的炒作和现实中良好的工作待遇把编程这种劳动神秘化了。其实每一个程序员心里都明白，自己这些东西，学的时候并不比其它专业难，所以自然也不会高档到哪里去。<br />
<br />
<strong>2. 咬文嚼字的孔已己作风</strong><br />
<br />
　　我见过一本女生的《计算机网络原理》教材，这个女生像小学生一样在书上划满了横杠杠，笔记做得满满的，打印出来一定比教材还厚。我不明白的是，像计算机网络原理这样的课程有必要做笔记？我们的应试教育的确害了不少学生，在上《原理》这一类课程的时候许多学生像学《马列原理》一样逐字背诵记忆。这乃是我见过的最愚蠢的行为。所谓《原理》，即是需要掌握它为什么这样做，学习 why，而不是 how（怎样做）。极端认真的学生背下以太网的网线最大长度，数据帧的长度，每个字段的意义，IP 报头的格式等等，但是忘了路由的原则，忘了 TCP/IP 协议设计的宗旨。总之许多人花了大量的时间把书背得滚瓜烂熟却等于什么也没学。<br />
<br />
　　在学习编程的时候这些学生也是这样，他们确切的记得 C++ 语法的各个细节。看完了 C++ 教程后看《Thinking in C++》（确实是好书），《Inside C++》，《C++ reference》，this C++，that C++ &#8230;&#8230;，然后是网上各种各样的关于 C++ 语法的奇闻逸事，然后发现自己又忘了 C++ 的一些语法，最后回头继续恶补&#8230;。有个师弟就跟我说：&#8220;C++ 太难了，学了这里忘了那里，学了继承忘了模板。&#8221;我的回答道：&#8220;你不去学就容易了。&#8221;我并没有教坏他，只是告诉他，死抠 C++ 的语法就和孔已己炫耀茴香豆的茴字有几种写法一样毫无意义。你根本不需要对的 C++ 语法太关心，动手编程就是了，有不记得的地方一查 MSDN 就立马搞定。我有个结论就是，实际的开发过程中对程序语法的了解是最微不足道的知识。这是为什么我在为同学用 Basic（我以前从没有学过它）写一个小程序的时候，只花了半个小时看了看语法，然后再用半个小时完成了程序，而一个小时后我又完全忘记了 Basic 的所有关键字。<br />
<br />
<strong>3. 不顾基础，盲目追赶时髦技术</strong><br />
<br />
　　终于点到题目上来了。大多数的人都希望自己的东西能够马上跑起来，变成钱。这种想法对一个已经进入职业领域的程序员或者项目经理来说是合理的，而且 IT 技术进步是如此的快，不跟进就是失业。但是对于初学者来说（尤其是时间充裕的大中专在校生），这种想法是另人费解的。一个并未进入到行业竞争中来的初学者最大的资本便是他有足够的时间沉下心来学习基础性的东西，学习 why 而不是 how。时髦的技术往往容易掌握，而且越来越容易掌握，这是商业利益的驱使，为了最大化的降低软件开发的成本。但在 IT 领域内的现实就是这样，越容易掌握的东西，学习的人越多，而且淘汰得越快。每一次新的技术出来，都有许多初学者跟进，这些初学者由于缺乏必要的基础而使得自己在跟进的过程中花费大量的时间，而等他学会了，这种技术也快淘汰了。基础的课程，比方数据结构，操作系统原理等等虽然不能让你立马就实现一个 Linux（这是许多人嘲笑理论课程无用的原因），但它们能够显著的减少你在学习新技术时学习曲线的坡度。而且对于许多关键的技术（比方 Win32 SDK 程序的设计、DDK 的编程）来说甚至是不可或缺的。<br />
<br />
　　举个一个不很恰当的比方：假设学习 VB 编程需要 4 个月，学习基础课程和 VC 的程序设计需要 1 年。那么如果你先学 VB，再来学习后者，时间不会减少，还是 1 年，而反过来，如果先学习后者，再来学 VB，也许你只需要 1 个星期就能学得非常熟练。<br />
<br />
<strong>4. 几个重要的基础课程</strong><br />
<br />
　　如果你是学生，或者如果你有充足的时间。我建议你仔细的掌握下面的知识。我的建议是针对那些希望在 IT 技术上有所成就的初学者。同时我还列出了一些书目，这些书应该都还可以在书店买到。说实在的，我在读其他人的文章时最大的心愿就是希望作者列出一个书单。<br />
<br />
　　<strong>《大学英语》</strong>：不要觉得好笑。我极力推荐这门课程是因为没有专业文档的阅读能力是不可想象的。中文的翻译往往在猴年马月才会出来，而现在的许多出版社干脆就直接把 E 文印刷上去。学习的方法是强迫自己看原版的教材，开始会看不懂，用多了自然熟练。吃得苦下得狠心绝对是任何行业都需要的品质。<br />
<br />
　　<strong>《计算机体系结构和汇编语言》</strong>：关于体系结构的书遍地都是，而且也大同小异，倒是汇编有一本非常好的书《80x86 汇编语言程序设计教程》（清华大学出版社，黑色封面，杨季文著）。你需要着重学习 386 后保护模式的程序设计。否则你在学习现代操作系统底层的一些东西的时候会觉得是在看天书。<br />
<br />
　　<strong>《计算机操作系统原理》</strong>：我们的开发总是在特定的操作系统上进行，如果不是，只有一种可能：你在自己实现一个操作系统。无论如何，操作系统原理是必读的。这就象我们为一个芯片制作外围设备时，芯片基本的工作时序是必需了解的。这一类书也很多，我没有发现哪一本书非常出众。只是觉得在看完了这些书后如果有空就应该看看《Inside Windows 2000》（微软出版社，我看的是 E 文版的，中文的书名想必是《Windows 2000 技术内幕》之类吧）。关于学习它的必要性，ZDNET 上的另一篇文章已经有过论述。<br />
<br />
　　<strong>《数据结构和算法》</strong>：这门课程能够决定一个人程序设计水平的高低，是一门核心课程。我首选的是清华版的（朱战立，刘天时）。很多人喜欢买 C++ 版的，但我觉得没有必要。C++ 的语法让算法实现过程变得复杂多了，而且许多老师喜欢用模块这一东西让算法变得更复杂。倒是在学完了 C 版的书以后再来浏览一下 C++ 的版的书是最好的。<br />
<br />
　　<strong>《软件工程》</strong>：这门课程是越到后来就越发现它的重要，虽然刚开始看时就象看马哲一样不知所云。我的建议是看《实用软件工程》（黄色，清华）。不要花太多的时间去记条条框框，看不懂就跳过去。在每次自己完成了一个软件设计任务（不管是练习还是工作）以后再来回顾回顾，每次都会有收获。<br />
<br />
　　<strong>《Windows 程序设计》</strong>：（北京大学出版社，Petzold 著）我建议任何企图设计 Windows 程序的人在学习 VC 以前仔细的学完它。而且前面的那本《Inside Windows 2000》也最好放到这本书的后面读。在这本书中，没有 C++，没有 GUI，没有控件。有的就是如何用原始的 C 语言来完成 Windows 程序设计。在学完了它以后，你才会发现 VC 其实是很容易学的。千万不要在没有看完这本书以前提前学习 VC，你最好碰都不要碰。我知道的许多名校甚至都已经用它作为教材进行授课。可见其重要。<br />
<br />
　　上面的几门课程我认为是必学的重要课程（如果你想做 Windows 程序员）。<br />
<br />
　　对于其它的课程有这样简单的选择方法：如果你是计算机系的，请学好你所有的专业基础课。如果不是，请参照计算机系的课程表。如果你发现自己看一本书时无法看下去了，请翻到书的最后，看看它的参考文献，找到它们并学习它们，再回头看这本书。如果一本书的书名中带有&#8220;原理&#8221;两个字，你一定不要去记忆它其中的细节，你应该以一天至少 50 页的速度掌握其要领。尽可能多的在计算机上实践一种理论或者算法。你还可以在 CSDN 上阅读到许多书评。这些书评能够帮助你决定读什么样的书。<br />
<br />
<strong>5. 日三省乎己</strong><br />
<br />
　　每天读的书太多，容易让人迷失方向。一定要在每天晚上想想自己学了些什么，还有些什么相关的东西需要掌握，自己对什么最感兴趣，在一本书上花的时间太长还是不够等等。同时也应该多想想未来最有可能出现的应用，这样能够让你不是追赶技术潮流而是引领技术潮流。同时，努力使用现在已经掌握的技术和理论去制作具有一定新意的东西。坚持这样做能够让你真正成为一个软件&#8220;研发者&#8221;而不仅仅是一个 Coder。<br />
<br />
<strong>二、高薪之路三大关键</strong><br />
<br />
<strong>1. 名校毕业&#8800;高薪，就业行业是关键</strong><br />
<br />
　　名校是一块不错的敲门砖，但并非万能。选择行业是重要因素。传统行业经过了多年的发展，对人才的需求已趋于饱和状态，并开始下跌；某些发展中的新兴行业正在崛起，对人才的需求格外旺盛。被称为朝阳行业的 IT 业，在过去 5 年经历了每年 28% 的增长速度，是同期国家 GDP 增长速度的 3 倍。近两年来互联网、软件、电子商务等各个分支行业的兴起，为 IT 业打上了几针强心剂，使其人才吸纳速度加快。就业行业是影响个人职业生涯的重要因素，要获取好的薪资待遇，不能忽视对行业的选择。<br />
<br />
<strong>2. 热门专业&#8800;高薪，是否具备经验是关键</strong><br />
<br />
　　担忧和抱怨社会就业状况，不如深入了解自己找不到工作的症结所在。研究一下各大企业的招聘启事，我们不难发现，企业招纳人才时所考虑的因素不外乎如下几点：学历、专业、技能、经验、性别、形象、户口。在这 7 大因素中，尤以&#8220;技能&#8221;和&#8220;经验&#8221;所占比重最大，是起决定性作用的因素。在 IT 企业的招聘启事中，&#8220;经验&#8221;更是核心中的核心。<br />
<br />
<strong>3. 高学历&#8800;高薪，是否掌握一技之长是关键</strong><br />
<br />
　　没有掌握一技之长，仅凭学历，寸步难行。现在社会竞争压力很大，企业之间也在争夺生存资源，相对于有学历而没有技术的人才，企业更青睐能直接创造效益的技能人才。因此，高学历不代表能拿高薪，关键在于是否掌握一技之长；没有高学历，只要掌握一定的技术之后，也能成为名企青睐的对象。<br />
<br />
<strong>三、编后语</strong><br />
<br />
　　程序员的人生不应该是枯燥无味整天跟机器打交道，希望所有的程序员或者希望成为程序员的朋友，能有丰富多彩地生活，能去除心浮气躁踏踏实实地去学习不断提高自己，能充满热情满怀希望地去面对工作。&#8220;闻道有先后，术业有专攻，如是而已&#8221;，任何事情，只要把它做到及至，都会很成功。<br />
<br />
</div>
<img src ="http://www.blogjava.net/shisanfeng/aggbug/205728.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-06-04 10:19 <a href="http://www.blogjava.net/shisanfeng/articles/205728.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>云计算（Cloud Computing，CC）</title><link>http://www.blogjava.net/shisanfeng/articles/204000.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Fri, 30 May 2008 01:17:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/204000.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/204000.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/204000.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/204000.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/204000.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
<strong>基本原理</strong><br />
<br />
　　云计算（Cloud Computing）是分布式处理（Distributed Computing）、并行处理（Parallel Computing）和网格计算（Grid Computing）的发展，或者说是这些计算机科学概念的商业实现。<br />
　　云计算的基本原理是，通过使计算分布在大量的分布式计算机上，而非本地计算机或远程服务器中，企业数据中心的运行将更与互联网相似。这使得企业能够将资源切换到需要的应用上，根据需求访问计算机和存储系统。<br />
　　这可是一种革命性的举措，打个比方，这就好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也可以作为一种商品进行流通，就像煤气、水电一样，取用方便，费用低廉，最大的不同在于，它是通过互联网进行传输的。<br />
　　云计算的蓝图已经呼之欲出：在未来，只需要一台笔记本或者一个手机，就可以通过网络服务来实现我们需要的一切，甚至包括超级计算这样的任务。从这个角度而言，最终用户才是云计算的真正拥有者。<br />
　　云计算的应用包含这样的一种思想，把力量联合起来，给其中的每一个成员使用。<br />
<br />
<strong>&#8220;云计算&#8221;时代</strong><br />
<br />
　　目前，PC 依然是我们日常工作生活中的核心工具，我们用 PC 处理文档、存储资料，通过电子邮件或 U 盘与他人分享信息。但如果 PC 硬盘坏了，我们会因为资料丢失而束手无策。<br />
　　而在&#8220;云计算&#8221;时代，&#8220;云&#8221;会替我们做存储和计算的工作。&#8220;云&#8221;就是计算机群，每一群包括了几十万台、甚至上百万台计算机。&#8220;云&#8221;的好处还在于，其中的计算机可以随时更新，保证&#8220;云&#8221;长生不老。<br />
　　届时，我们只需要一台能上网的电脑，不需关心存储或计算发生在哪朵&#8220;云&#8221;上，但一旦有需要，我们可以在任何地点用任何设备，如电脑、手机等，快速地计算和找到这些资料。我们再也不用担心资料丢失。<br />
　　&#8220;云计算&#8221;就仿佛银行的自动取款机（ATM），我们出门再也不用随身携带大量现钞，可以根据需要随时取用。<br />
　　PC 时代好比每个人要用电，都得自己购买发电机；而&#8220;云计算&#8221;时代，每个人不必拥有发电机，直接从大型发电厂买电就好。<br />
　　&#8220;云计算&#8221;其实并不是一个新概念，&#8220;云计算&#8221;之前，还有&#8220;网格计算&#8221;（Grid Computing）等等，理念都是关于计算机如何协同发挥作用。<br />
　　云计算是一种新兴的共享基础架构的方法，它可以将巨大的系统池连接在一起以提供各种 IT 服务。很多因素推动了对这类环境的需求，其中包括连接设备、实时数据流、 SOA 的采用以及搜索、开放协作、社会网络和移动商务等这样的 Web 2.0 应用的急剧增长。<br />
　　另外，数字元器件性能的提升也使IT环境的规模大幅度提高，从而进一步加强了对一个由统一的云进行管理的需求。<br />
　　&#8220;云计算+Always-On&#8221;设备被评为&#8220;25 年来最具影响力的十大 IT 技术组合&#8221;。<br />
<br />
　　云计算正在成为一个大众化的词语。但是，问题是似乎每个人对于云计算的理解各不相同。作为一个对互联网的比喻，&#8220;云&#8221;是很容易理解的。但是一旦同&#8220;计算&#8221;联系起来，它的意义就扩展了，而且开始变得模糊起来。有些分析师和公司把云计算仅仅定义为计算的升级版，基本上就是互联网上提供的众多虚拟服务器。另外一些人把云计算定义的更加宽泛，他们认为用户在防火墙保护之外消费的任何事物都处于&#8220;云&#8221;之中。<br />
　　云计算被人们关注是在人们考虑 IT 业到底需要什么之后，人们需要找到一种办法能够在不增加新的投资，新的人力和新的软件的情况下增加互联网的能力和容量。而云计算正好提供了这种可能。<br />
<br />
<strong>云计算形式</strong><br />
<br />
　　<strong>01. SaaS（软件即服务）</strong><br />
　　这种类型的云计算通过浏览器把程序传给成千上万的用户。在用户眼中看来，这样会省去在服务器和软件授权上的开支；从供应商角度来看，这样只需要维持一个程序就够了，这样能够减少成本。SaaS 在人力资源管理程序和 ERP 中比较常用。<br />
　　<strong>02. 实用计算（Utility Computing）</strong><br />
　　这个主意很早就有了，但是知道最近才在提供存储服务和虚拟服务器的公司中新生。这种云计算是为 IT 行业创造虚拟的数据中心使得其能够把内存、I/O 设备、存储和计算能力集中起来成为一个虚拟的资源池来为整个网络提供服务。<br />
　　<strong>03. 网络服务</strong><br />
　　同 SaaS 关系密切，网络服务提供者们能够提供 API 让开发者能够开发更多基于互联网的应用，而不是提供单机程序。<br />
　　<strong>04. 平台即服务</strong><br />
　　另一种 SaaS，这种形式的云计算把开发环境作为一种服务来提供。你可以使用中间商的设备来开发自己的程序并通过互联网和其服务器传到用户手中。<br />
　　<strong>05. MSP（管理服务提供商）</strong><br />
　　最古老的云计算运用之一。这种应用更多的是面向 IT 行业而不是终端用户，常用于邮件病毒扫描、程序监控等等。<br />
　　<strong>06. 商业服务平台</strong><br />
　　SaaS 和 MSP 的混合应用，该类云计算为用户和提供商之间的互动提供了一个平台。比如用户个人开支管理系统，能够根据用户的设置来管理其开支并协调其订购的各种服务。<br />
　　<strong>07. 互联网整合</strong><br />
　　将互联网上提供类似服务的公司整合起来，以便用户能够更方便的比较和选择自己的服务供应商。<br />
<br />
<strong>云计算特点</strong><br />
<br />
　　首先，云计算提供了最可靠、最安全的数据存储中心，用户不用再担心数据丢失、病毒入侵等麻烦。很多人觉得数据只有保存在自己看得见、摸得着的电脑里才最安全，其实不然。你的电脑可能会因为自己不小心而被损坏，或者被病毒攻击，导致硬盘上的数据无法恢复，而有机会接触你的电脑的不法之徒则可能利用各种机会窃取你的数据。此前轰动一时的&#8220;艳照门&#8221;事件据报道不也是因为电脑送修而造成个人数据外泄的吗？<br />
　　反之，当你的文档保存在类似 Google Docs 的网络服务上，当你把自己的照片上传到类似 Google Picasa Web 的网络相册里，你就再也不用担心数据的丢失或损坏。因为在&#8220;云&#8221;的另一端，有全世界最专业的团队来帮你管理信息，有全世界最先进的数据中心来帮你保存数据。同时，严格的权限管理策略可以帮助你放心地与你指定的人共享数据。这样，你不用花钱就可以享受到最好、最安全的服务，甚至比在银行里存钱还方便。<br />
<br />
　　其次，云计算对用户端的设备要求最低，使用起来也最方便。大家都有过维护个人电脑上种类繁多的应用软件的经历。为了使用某个最新的操作系统，或使用某个软件的最新版本，我们必须不断升级自己的电脑硬件。为了打开朋友发来的某种格式的文档，我们不得不疯狂寻找并下载某个应用软件。<br />
　　为了防止在下载时引入病毒，我们不得不反复安装杀毒和防火墙软件。所有这些麻烦事加在一起，对于一个刚刚接触计算机，刚刚接触网络的新手来说不啻一场噩梦！如果你再也无法忍受这样的电脑使用体验，云计算也许是你的最好选择。你只要有一台可以上网的电脑，有一个你喜欢的浏览器，你要做的就是在浏览器中键入 URL，然后尽情享受云计算带给你的无限乐趣。<br />
　　你可以在浏览器中直接编辑存储在&#8220;云&#8221;的另一端的文档，你可以随时与朋友分享信息，再也不用担心你的软件是否是最新版本，再也不用为软件或文档染上病毒而发愁。因为在&#8220;云&#8221;的另一端，有专业的 IT 人员帮你维护硬件，帮你安装和升级软件，帮你防范病毒和各类网络攻击，帮你做你以前在个人电脑上所做的一切。<br />
<br />
　　此外，云计算可以轻松实现不同设备间的数据与应用共享。大家不妨回想一下，你自己的联系人信息是如何保存的。一个最常见的情形是，你的手机里存储了几百个联系人的电话号码，你的个人电脑或笔记本电脑里则存储了几百个电子邮件地址。为了方便在出差时发邮件，你不得不在个人电脑和笔记本电脑之间定期同步联系人信息。买了新的手机后，你不得不在旧手机和新手机之间同步电话号码。<br />
　　对了，还有你的 PDA 以及你办公室里的电脑。考虑到不同设备的数据同步方法种类繁多，操作复杂，要在这许多不同的设备之间保存和维护最新的一份联系人信息，你必须为此付出难以计数的时间和精力。这时，你需要用云计算来让一切都变得更简单。在云计算的网络应用模式中，数据只有一份，保存在&#8220;云&#8221;的另一端，你的所有电子设备只需要连接互联网，就可以同时访问和使用同一份数据。<br />
　　仍然以联系人信息的管理为例，当你使用网络服务来管理所有联系人的信息后，你可以在任何地方用任何一台电脑找到某个朋友的电子邮件地址，可以在任何一部手机上直接拨通朋友的电话号码，也可以把某个联系人的电子名片快速分享给好几个朋友。当然，这一切都是在严格的安全管理机制下进行的，只有对数据拥有访问权限的人，才可以使用或与他人分享这份数据。<br />
　　最后，云计算为我们使用网络提供了几乎无限多的可能，为存储和管理数据提供了几乎无限多的空间，也为我们完成各类应用提供了几乎无限强大的计算能力。想像一下，当你驾车出游的时候，只要用手机连入网络，就可以直接看到自己所在地区的卫星地图和实时的交通状况，可以快速查询自己预设的行车路线，可以请网络上的好友推荐附近最好的景区和餐馆，可以快速预订目的地的宾馆，还可以把自己刚刚拍摄的照片或视频剪辑分享给远方的亲友&#8230;<br />
　　离开了云计算，单单使用个人电脑或手机上的客户端应用，我们是无法享受这些便捷的。个人电脑或其他电子设备不可能提供无限量的存储空间和计算能力，但在&#8220;云&#8221;的另一端，由数千台、数万台甚至更多服务器组成的庞大的集群却可以轻易地做到这一点。个人和单个设备的能力是有限的，但云计算的潜力却几乎是无限的。当你把最常用的数据和最重要的功能都放在&#8220;云&#8221;上时，我们相信，你对电脑、应用软件乃至网络的认识会有翻天覆地的变化，你的生活也会因此而改变。<br />
<br />
<strong>展望未来</strong><br />
<br />
　　互联网的精神实质是自由、平等和分享。作为一种最能体现互联网精神的计算模型，云计算必将在不远的将来展示出强大的生命力，并将从多个方面改变我们的工作和生活。无论是普通网络用户，还是企业员工，无论是 IT 管理者，还是软件开发人员，他们都能亲身体验到这种改变。<br />
<br />
　　另外，云计算编程技术将成为基准的下一代计算机编程结构。<br />
<br />
</div>
<img src ="http://www.blogjava.net/shisanfeng/aggbug/204000.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-05-30 09:17 <a href="http://www.blogjava.net/shisanfeng/articles/204000.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件即服务（Software as a Service，SaaS）</title><link>http://www.blogjava.net/shisanfeng/articles/203970.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Thu, 29 May 2008 17:29:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/203970.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/203970.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/203970.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/203970.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/203970.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
　　软件即服务（Software as a Service，SaaS）是随着互联网技术的发展和应用软件的成熟，而在 21 世纪开始兴起的一种完全创新的软件应用模式。<br />
<br />
　　它与 On-Demand Software（按需软件)、The Application Service Provider(ASP，应用服务提供商)、Hosted Software（托管软件）具有相似的含义。<br />
　　它是一种通过 Internet 提供软件的模式，厂商将应用软件统一部署在自己的服务器上，客户可以根据自己实际需求，通过互联网向厂商定购所需的应用软件服务，按定购的服务多少和时间长短向厂商支付费用，并通过互联网获得厂商提供的服务。<br />
　　用户不用再购买软件，而改用向提供商租用基于 Web 的软件，来管理企业经营活动，且无需对软件进行维护，服务提供商会全权管理和维护软件，软件厂商在向客户提供互联网应用的同时，也提供软件的离线操作和本地数据存储，让用户随时随地都可以使用其定购的软件和服务。<br />
　　对于许多小型企业来说，SaaS 是采用先进技术的最好途径，它消除了企业购买、构建和维护基础设施和应用程序的需要。<br />
　　在这种模式下，客户不再象传统模式那样花费大量投资用于硬件、软件、人员，而只需要支出一定的租赁服务费用，通过互联网便可以享受到相应的硬件、软件和维护服务，享有软件使用权和不断升级，这是网络应用最具效益的营运模式。<br />
<br />
　　SaaS 服务模式与传统的销售软件永久许可证的方式有很大的不同，它是未来管理软件的发展趋势。<br />
<br />
　　SaaS 不仅减少或取消了传统的软件授权费用，而且厂商将应用软件部署在统一的服务器上，免除了最终用户的服务器硬件、网络安全设备和软件升级维护的支出，客户不需要除了个人电脑和互联网连接之外的其它 IT 投资就可以通过互联网获得所需要软件和服务。<br />
　　此外，大量的新技术，如 Web Service，提供了更简单、更灵活、更实用的 SaaS。<br />
　　另外，SaaS 供应商通常是按照客户所租用的软件模块来进行收费的，因此用户可以根据需求按需订购软件应用服务，而且 SaaS 的供应商会负责系统的部署、升级和维护，而传统管理软件通常是买家需要一次支付一笔可观的费用才能正式启动。<br />
<br />
　　SaaS 服务提供商为中小企业搭建信息化所需要的所有网络基础设施及软件、硬件运作平台，并负责所有前期的实施、后期的维护等一系列服务，企业无需购买软硬件、建设机房、招聘 IT 人员，只需前期支付一次性的项目实施费和定期的软件租赁服务费，即可通过互联网享用信息系统。<br />
　　服务提供商通过有效的技术措施，可以保证每家企业数据的安全性和保密性。<br />
　　企业采用 SaaS 服务模式在效果上与企业自建信息系统基本没有区别，但节省了大量用于购买 IT 产品、技术和维护运行的资金，且像打开自来水龙头就能用水一样，方便地利用信息化系统，从而大幅度降低了中小企业信息化的门槛与风险。<br />
<br />
　　具体来说 SaaS 可以为客户带来如下的价值：<br />
<br />
　　　　01. 服务的收费方式风险小，灵活选择模块，备份，维护，安全，升级<br />
　　　　02. 让客户更专注核心业务<br />
　　　　03. 灵活启用和暂停，随时随地都可使用<br />
　　　　04. 按需定购，选择更加自由<br />
　　　　05. 产品更新速度加快<br />
　　　　06. 市场空间增大<br />
　　　　07. 实现年息式的循环收入模式<br />
　　　　08. 有效降低营销成本<br />
　　　　09. 准面对面使用指导<br />
　　　　10. 在全球各地，7*24 全天候网络服务<br />
　　　　11. 不需要额外增加专业的 IT 人员<br />
　　　　12. 大大降低客户的总体拥有成本<br />
<br />
</div>
<img src ="http://www.blogjava.net/shisanfeng/aggbug/203970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-05-30 01:29 <a href="http://www.blogjava.net/shisanfeng/articles/203970.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VBScript 的 Dictionary 对象在服务器端使用时与 Session 对象的冲突</title><link>http://www.blogjava.net/shisanfeng/articles/203689.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Thu, 29 May 2008 00:23:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/203689.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/203689.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/203689.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/203689.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/203689.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
　　微软先后在 2001 年和 2006 年发布了两个 Bug 报告，其中有一个报告说到如果获取一个 checkbox list 的值，存入 dictionaray，再将 dictionary 放入 session，则有可能破坏掉 session 的值。<br />
<br />
　　微软在设计 dictionary 时，本身是为客户端而设计，因此，如果在服务器端使用 dictionary，而又将其放入 session，则有可能损坏 session。<br />
<br />
　　所以，官方不建议在服务器端使用 session。<br />
<br />
　　不过让人奇怪的是，微软明明知道它的 VBScript 有这个 Bug，却没有推出新的版本来修复，而是发布用一种极变态的方法来规避。<br />
<br />
</div><img src ="http://www.blogjava.net/shisanfeng/aggbug/203689.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-05-29 08:23 <a href="http://www.blogjava.net/shisanfeng/articles/203689.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《中国共　产党机关公文处理条例》（1996 年 05 月 03 日）</title><link>http://www.blogjava.net/shisanfeng/articles/202933.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Mon, 26 May 2008 07:22:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/202933.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/202933.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/202933.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/202933.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/202933.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
<span style="display: block; font-weight: bold; font-size: 18px; text-align: center">中国共　产党机关公文处理条例</span><br />
<span style="display: block; text-align: center">（中办发 [1996] 14 号　1996 年 5 月 3 日）</span><br />
<blockquote><a href="#01">第一章　总　则</a><br />
<a href="#02">第二章　公文种类</a><br />
<a href="#03">第三章　公文格式</a><br />
<a href="#04">第四章　行文规则</a><br />
<a href="#05">第五章　公文起草</a><br />
<a href="#06">第六章　公文校对</a><br />
<a href="#07">第七章　公文签发</a><br />
<a href="#08">第八章　公文办理和传递</a><br />
<a href="#09">第九章　公文管理</a><br />
<a href="#10">第十章　公文立卷归档</a><br />
<a href="#11">第十一章　公文保密</a><br />
<a href="#12">第十二章　附　则</a></blockquote><a name="01"></a><span style="font-weight: bold; font-size: 14px">第一章　总　则</span><br />
<br />
　　<strong>第一条</strong>　为适应中国共　产党机关（以下简称党的机关）工作的需要，实现党的机关公文处理工作的科学化、制度化、规范化、制定本条例。<br />
　　<strong>第二条</strong>　党的机关的公文，是党的机关实施领导、处理公务的具有特定效力和规范格式的文书，是传达贯彻党的路线、方针、政策，指导、布置和商洽工作，请示和答复问题，报告和交流情况的工具。<br />
　　<strong>第三条</strong>　公文处理是包抓公文拟制、办理、管理、立卷归档在内的一系列衔接有序的工作。<br />
　　<strong>第四条</strong>　公文处理应当坚持实事求是、按照行文机关要求和公文处理规定进行的原则，做到准确。及时、安全、保密。<br />
　　<strong>第五条</strong>　党的机关的办公厅（室）主管本机关的公文处理工作，并对下级机关的公文处理工作进行业务指导。<br />
　　<strong>第六条</strong>　党的机关的办公厅（室）应当设立秘书部门或者配备秘书人员具体负责公文处理工作，并逐步改善办公手段，努力提高工作效率和质量。秘书人员应当具有较高的政治和业务素质，工作积极，作风严谨，遵守纪律，恪尽职守。<br />
<br />
<a name="02"></a><span style="font-weight: bold; font-size: 14px">第二章　公文种类</span><br />
<br />
　　<strong>第七条</strong>　党的机关公文种类主要有：<br />
　　（一）决议：用于经会议讨论通过的重要决策事项。<br />
　　（二）决定：用于对重要事项作出决策和安排。<br />
　　（三）指示：用于对下级机关布置工作，提出开展工作的原则和要求。<br />
　　（四）意见：用于对重要问题提出见解和处理办法。<br />
　　（五）通知：用于发布党内法规、任免干部、传达上级机关的指示、转发上级机关和不相隶属机关的公文、批转下级机关的公文、发布要求下级机关办理和有关单位共同执行或者周知的事项。<br />
　　（六）通报：用于表彰先进、批评错误、传达重要精神、交流重要情况。<br />
　　（七）公报：用于公布发布重要决定或者重大事件。<br />
　　（八）报告：用于向上级机关汇报工作、反映情况、提出建议，答复上级机关的询问。<br />
　　（九）请示：用于向上级机关请求指示、批准。<br />
　　（十）批复：用于答复下级机关的请示。<br />
　　（十一）条例：用于党的中央组织制定规范党组织的工作、活动和党员行为的规章制度。<br />
　　（十二）规定：用于对特定范围内的工作和事务制定具有约束力的行为规范。<br />
　　（十三）函：用于机关之间商洽工作、询问和答复问题，向无隶属关系的有关主管部门请求批准等。<br />
　　（十四）会议纪要：用于记载会议主要精神和议定事项。<br />
<br />
<a name="03"></a><span style="font-weight: bold; font-size: 14px">第三章　公文格式</span><br />
<br />
　　<strong>第八条</strong>　党的机关公文由版头、份号、密级、紧急程度、发文字号、签发人、标题、主送机关、正文、附件、发文机关署名、成文日期、印章、印发传达范围。主题词、抄送机关、印制版记组成。<br />
　　（一）版头由发文机关全称或者规范化简称加"文件"二字或者加括号标明文种组成，用套红大字居中印在公文首页上部。联合行文，版头可以用主办机关名称，也可以并用联署机关名称。在民族自治地方，发文机关名称可以并用自治民族的文字和汉字印制。<br />
　　（二）份号公文印制份数的顺序号，标注于公文首页左上角。秘密公文应当标明份号。<br />
　　（三）密级，公文的秘密等级，标注于份号下方。<br />
　　（四）紧急程度对公文送达和办理的时间要求。紧急文件应当分别标明&#8220;特急&#8221;、&#8220;加急&#8221;，紧急电报应当分别标明&#8220;特提&#8221;、&#8220;特急&#8221;、&#8220;加急&#8221;、&#8220;平急&#8221;。<br />
　　（五）发文字号由发文机关代字、发文年度和发文顺序号组成，标注于版头下方居中或者左下方。联合行文，一般只标明主办机关的发文字号。<br />
　　（六）签发人上报公文应当在发文字号右侧标注&#8220;签发人&#8221;，&#8220;签发人&#8221;后面标注签发人姓名。<br />
　　（七）标题由发文机关名称、公文主题和文种组成，位于发文字号下方。<br />
　　（八）主送机关主要受理公文的机关。主送机关名称应当用全称或者规范化简称或者同类型机关的统称，位于正文上方，顶格排印。<br />
　　（九）正文公文的主体，用来表达公文的内容，位于标题或者主送机关下方。<br />
　　（十）附件公文附件，应当置于主件之后，与主件装订在一起，并在正文之后、发文机关署名之前注明附件的名称。<br />
　　（十一）发文机关署名应当用全称或者规范化简称，位于正文的右下方。<br />
　　（十二）成文日期一般署会议通过或者领导人签发日期；联合行文，署最后签发机关领导人的签发日期；特殊情况署印发日期。成文日期应当写明年、月、日，位于发文机关署名右下方。决议、决定、条例、规定等不标明主送机关的公文，成文日期加括号标注于标题下方居中位置。<br />
　　（十三）印章除会议纪要和印制的有特定版头的普发性公文外，公文应当加盖发文机关印章。<br />
　　（十四）印发传达范围 加括号标注于成文日期左下角。<br />
　　（十五）主题词按上级机关的要求和《公文主题词表》标注位于抄送机关上方。<br />
　　（十六）抄送机关指除主送机关以外的其他需要告知公文内容的上级、下级和不相隶属机关。抄送机关名称标注于印制版记上方。<br />
　　（十七）印制版记由公文印发机关名称、印发日期和份数组成，位于公文末页下端。<br />
　　<strong>第九条</strong>　公文的汉字从左至右横排；少数民族文字按其书写习惯排印。公文用纸幅面规格可采用 16 开型（长 260 毫米，宽 184 毫米），也可采用国际标准 A4 型（长 297 毫米，宽 210 毫米）。左侧装订。<br />
　　<strong>第十条</strong>　党的机关公文版头的主要形式及适用范围：<br />
　　（一）《中共 XX 文件》用于各级党委发布、传达贯彻党的方针、政策，作出重要工作部署，转发上级机关的文件，批转下级机关的重要报告、请示。<br />
　　（二）中国共　产党 XX 委员会（XX）》用于各级党委通知重要事项、任免干部、批复下级机关的请示、向上级机关报告、请示工作。<br />
　　（三）中共 XX 办公厅（室）文件》、《中共 XX 办公厅（室）（XX）》用于各级党委办公厅（室）根据授权，传达党委的指示，答复下级党委的请示，转发上级机关的文件，批转下级机关的报告、请示、发布有关事项向上级机关报告请示工作。<br />
　　（四）《中共 XX 部文件》、《中共 XX 部（XX）》用于除办公厅（室）以外的党委各部门发布本部门职权范围内的事项，向上级机关报告、请示工作。<br />
<br />
<a name="04"></a><span style="font-weight: bold; font-size: 14px">第四章　行文规则</span><br />
<br />
　　<strong>第十一条</strong>　行文应当确有需要、注重实效、坚持少而精。可发可不发的公文不发，可长可短的公文要短。<br />
　　<strong>第十二条</strong>　党的机关的行文关系，根据各自的隶属关系和职权范围确定。<br />
　　（一）向上级机关行文，应当主送一个上级机关如需其他相关的上级机关问知，可以抄送。不得越级向上级机关行文，尤其不得越级请示问题；因特殊情况必须越级行文时，应当同时抄送被越过的上级机关。<br />
　　（二）向下级机关的重要行文，应当同时抄送发文机关的直接上级机关。<br />
　　（三）党委各部门在各自职权范围内可以向下级党委的相关部门行文。党委办公厅（室）根据党委授权，可以向下级党委行文；党委的其他部门，不得对下级党委发布指示性公文。部门之间对有关问题未经协商一致，不得各自向下行文。<br />
　　（四）同级党的机关、党的机关与其他同级机关之间必要时可以联合行文。<br />
　　（五）不相隶属机关之间一般用函行文。<br />
　　<strong>第十三条</strong>　受双重领导的机关向上级机关行文，应当写明主送机关和抄送机关，由主送机关负责答复其请示事项。上级机关向受双重领导的下级机关行文，应当抄送其另一上级机关。<br />
　　<strong>第十四条</strong>　向上级机关请示问题，应当一文一事，不应当在非请示公文中夹带请示事项。<br />
　　请示事项涉及其他部门业务范围时，应当经过协商并取得一致意见后上报；经过协商未能取得一致意见时，应当在请示中写明。除特殊情况外，请示应当送上级机关的办公厅（室）按规定程序处理，不应直接送领导者个人。<br />
　　党委各部门应当向本级党委请示问题。未经本级党委同意或授权，不得越过本级党委向上级党委主管部门请示重大问题。<br />
　　<strong>第十五条</strong>　对不符合行文规则的上报公文，上级机关的秘书部门可退回下级呈报机关。<br />
<br />
<a name="05"></a><span style="font-weight: bold; font-size: 14px">第五章　公文起草</span><br />
<br />
　　<strong>第十六条</strong>　起草公文应当做到：<br />
　　（一）符合党的路线、方针、政策和国家的法律、法规及上级机关的指示，完整、准确地体现发文机关的意图，并同现行有关公文相衔接。<br />
　　（二）全面、准确地反映客观实际情况，提出的政策、措施切实可行。<br />
　　（三）观点明确，条理清晰，内容充实，结构严谨，表述准确。<br />
　　（四）开门见山，文字精练，用语准确，篇幅简短，文风端正。<br />
　　（五〕人名、地名、时间、数字、引文准确。公文中汉字和标点符号的用法符合国家发布的标准方案，计量单位和数字用法符合国家主管部门的规定。<br />
　　（六）文种、格式使用正确。<br />
　　（七）杜绝形式主义和繁琐哲学。<br />
　　<strong>第十七条</strong>　起草重要公文应当由领导人亲自动手或亲自主持、指导，进行调查研究和充分论证，征求有关部门意见。<br />
<br />
<a name="06"></a><span style="font-weight: bold; font-size: 14px">第六章　公文校对</span><br />
<br />
　　<strong>第十八条</strong>　公文文稿送领导人审批之前，应当由办公厅（室）进行校核。公文校校的基本任务是协助机关领导人保证公文的质量。公文校核的内容是：<br />
　　（一）报批程序是否符合规定；<br />
　　（二）是否确需行文；<br />
　　（三）内容是否符合党的路线、方针、政策和国家的法律、法规及上级机关的批示精神，是否完整、准确地体现发文机关的意图，并同现行有关公文相衔接；<br />
　　（四）涉及有关部门业务的事项是否经过协调并取得一致意见；<br />
　　（五）所提措施和办法是否切实可行；<br />
　　（六）人名、地名、时间、数字、引文和文字表述、密级、印发传达范围、主题词是否准确、恰当，汉字、标点符号、计量单位、数字的用法及文种使用、公文格式是否符合本条例的规定。<br />
　　<strong>第十九条</strong>　文稿如需作较大修改，应当与原起草部门协商或请其修改。<br />
　　<strong>第二十条</strong>　已经领导人审批过的文稿，在印发之前应再作校核。校核的内容同第十条（六）款。经校核如需作涉及内容的实质性修改，须报原审批领导人复审。<br />
<br />
<a name="07"></a><span style="font-weight: bold; font-size: 14px">第七章　公文签发</span><br />
<br />
　　<strong>第二十一条</strong>　公文须经本机关领导人审批签发。重要公文应当由机关主要领导人签发。联合发文，须经所有联署机关的领导人会签。党委办公厅（室）根据党委授权发布的公文，由被授权者签发或者按照有关规定签发。领导人签发公文，应当明确签署意见，并写上姓名和时间。若圈阅，则视为同意。<br />
<br />
<a name="08"></a><span style="font-weight: bold; font-size: 14px">第八章　公文办理和传递</span><br />
<br />
　　<strong>第二十二条</strong>　公文办理分为收文和发文办理。收文办理包括公文的签收、登记、拟办、请办、分发、传阅、承办和催办等程序。公文经起草、校核和领导审批签发后转入发文办理，发文办理包括公文的核发、登记、印制和分发等程序。<br />
　　（一）签收收到有关公文并以签字或盖章的方式给发文方以凭据。签收公文应当逐件清点，如发现问题，应当及时向发文机关查询，并采取相应的处理措施。急件应当注明签收的具体时间。<br />
　　（二）登记公文办理过程中就公文的特征和办理情况进行记载。登记应当将公文标题、密级、发文字号、发文机关、成文日期、主送机关、份数、收发文日期及办理情况逐项填写清楚。<br />
　　（四）拟办秘书部门对需要办理的公文提出办理意见，并提供必要的背景材料，送领导人批示。<br />
　　（五）分发秘书部门根据有关规定或者领导人批示将公文分送有关领导人和部门。<br />
　　（六）传阅秘书部门根据领导人批示或者授权，按照一定的程序将公文送有关领导人阅知或者批示。办理公文传阅应当随时掌握公文去向，避免漏传、误传和延误。<br />
　　（七）承办主管部门对需要办理的公文进行办理。凡属承办部门职权范围内可以答复的事项，承办部门应当直接答复呈文机关；凡涉及其他部门业务范围的事项，承办部门应当主动与有关部门协商办理；凡须报请上级机关审批的事项，承办部门应当提出处理意见并代文稿，一并送请上级机关审批。<br />
　　（八）催办秘书部门对公文的承办情况进行督促检查。催办贯穿于公文处理的各个五一节。对紧急或者重要公文应当及时催办，对一般公文应当定期催办，并随时或者定期反馈办理情况。<br />
　　（九）核发秘书部门在公文正式印发前，对公文的审批手续、文种、格式等进行复核，确定发文字号、分送单位和印制份数。<br />
　　（十）印制应当做到准确、及时、规范、安全、保密。秘密公文应当由机要印刷厂（或一般印刷厂的保密车间）印制。<br />
　　<strong>第二十三条</strong>　公文处理过程中，应当使用符合存档要求的书写材料。需要送请领导人阅批的传真件，应当复制后办理。<br />
　　<strong>第二十四条</strong>　秘密公文应当通过机要交通（或机要通信）传递、密电传输或者计算机网络加密传输，不得密电明传、明电密电混用。<br />
<br />
<a name="09"></a><span style="font-weight: bold; font-size: 14px">第九章　公文管理</span><br />
<br />
　　<strong>第二十五条</strong>　党的机关公文应当发给组织，由秘书部门统一管理，一般不发给予个人。秘书部门应当切实做好公文的管理工作，既发挥公文效用，又有利于公文保密。<br />
　　<strong>第二十六条</strong>　党的机关秘密公文的印发传达范围应当按照发文机关的要求执行，下级机关、不相隶属机关如需变更，须经发文机关批准。<br />
　　<strong>第二十七条</strong>　公开发布党的机关公文，须经发文机关批准。经批准公开发布的公文，同发文机关正式印发的公文具有同等效力。<br />
　　<strong>第二十八条</strong>　复制上级党的机关的秘密公文，须经发文机关批准或者授权。翻印件应当注明翻印机关名称、翻印日期和份数；复印件应当加盖复印机关印记。复制的公文应当与正式印发的公文同样管理。<br />
　　<strong>第二十九条</strong>　汇编上级党的机关的秘密公文，须经发文机关批准或者授权。公文汇编本的密级按照编入公文的最高密级标注并进行管理。<br />
　　<strong>第三十条</strong>　绝密级公文应当由秘书部门指定专人管理，并采取严格的保密措施。<br />
　　<strong>第三十一条</strong>　秘书部门应当按照规定对秘密公文进行清理、清退和销毁，并向主管机关报告公文管理情况。<br />
　　销毁秘密公文，必须严格履行登记手续，经主管领导人批准后，由二人监销，保证不丢失、不漏销。个人不得擅自销毁公文。<br />
　　<strong>第三十二条</strong>　机关合并时，全部公文应当随之合并管理。机关撤销时，需要归档的公文立卷后按照有关规定移交档案部门，其他公文按照有关规定登记销毁。工作人员调离工作岗位时，应当将本人保管、借用的公文按照有关规定移交、清退。<br />
<br />
<a name="10"></a><span style="font-weight: bold; font-size: 14px">第十章　公文立卷归档</span><br />
<br />
　　<strong>第三十三条</strong>　公文办理完毕后，秘书部门应当按照有关规定将公文的定稿、正本和有关材料收集齐全，进行立卷归档。个人不得保存应当归档的公文。<br />
　　<strong>第三十四条</strong>　两个以上机关联合办理的公文，原件由主办机关立卷归档，相关机关保存复制件。机关领导人兼任其他机关职务的，在履行其所兼职务过程中形成的公文，由其兼职的机关立卷归档。<br />
<br />
<a name="11"></a><span style="font-weight: bold; font-size: 14px">第十一章　公文保密</span><br />
<br />
　　<strong>第三十五条</strong>　公文处理必须严格遵守《中华人民共和国保守国家秘密法》及有关保安法规，遵守党的保密纪律，确保党和国家秘密的安全。<br />
　　<strong>第三十六条</strong>　党内秘密公文的密级按其内容及如泄露可能对党和国家利益造成危害的程度划分为&#8220;绝密&#8221;、&#8220;机密&#8221;、&#8220;秘密&#8221;。不公开发表又未标准密级的公文，按内部公文管理。<br />
　　<strong>第三十七条</strong>　发文机关在拟制公文明，应当根据公文的内容和工作需要，严格划分密与非密的界限；对于需要保密的公文，要准确标注其密级。公文密级的变更和解除由发文机关或其上级机关决定。<br />
<br />
<a name="12"></a><span style="font-weight: bold; font-size: 14px">第十二章　附　则</span><br />
<br />
　　<strong>第三十八条</strong>　本条例适用于中国共　产党各级机关。<br />
　　<strong>第三十九条</strong>　本条例由中共中央办公厅负责解释。<br />
　　<strong>第四十条</strong>　本条例自发布之日起施行。<br />
<br />
</div>
<img src ="http://www.blogjava.net/shisanfeng/aggbug/202933.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shisanfeng/" target="_blank">龙震</a> 2008-05-26 15:22 <a href="http://www.blogjava.net/shisanfeng/articles/202933.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《中华人民共和国档案法》（1996 年 07 月 05 日）</title><link>http://www.blogjava.net/shisanfeng/articles/202918.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Mon, 26 May 2008 06:47:00 GMT</pubDate><guid>http://www.blogjava.net/shisanfeng/articles/202918.html</guid><wfw:comment>http://www.blogjava.net/shisanfeng/comments/202918.html</wfw:comment><comments>http://www.blogjava.net/shisanfeng/articles/202918.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shisanfeng/comments/commentRss/202918.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shisanfeng/services/trackbacks/202918.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />
<span style="display: block; font-weight: bold; font-size: 18px; text-align: center">中华人民共和国档案法</span><br />
<span style="display: block; text-align: center">（1987 年 9 月 5 日第六届全国人民代表大会常务委员会第二十二次会议通过）</span> <span style="display: block; text-align: center">（根据 1996 年 7 月 5 日第八届全国人民代表大会常务委员会第二十次会议《关于修改〈中华人民共和国档案法〉的决定》修正）</span><br />
<br />
<blockquote><a href="#01">第一章　总　则</a><br />
<a href="#02">第二章　档案机构及其职责</a><br />
<a href="#03">第三章　档案的管理</a><br />
<a href="#04">第四章　档案的利用和公布</a><br />
<a href="#05">第五章　法律责任</a><br />
<a href="#06">第六章　附　则</a><br />
<a href="#P1">附　件</a></blockquote><a name="01"></a><span style="font-weight: bold; font-size: 14px">第一章　总　则</span><br />
<br />
　　<strong>第一条</strong>　为了加强对档案的管理和收集、整理工作，有效地保护和利用档案，为社会主义现代化建设服务，制定本法。<br />