<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>开心编程网 &#187; ASP</title>
	<atom:link href="http://www.kaixinbc.com/category/asp/feed" rel="self" type="application/rss+xml" />
	<link>http://www.kaixinbc.com</link>
	<description>是一个专注于java、.net、asp、jsp、php、C语言、C++语言、Delphi、go语言、MySQL、sql server、linux、oracle、及Web 2.0等的原创IT编程网站，为国内众多的编程爱好者提供一个“平等自由协作创造”的开放式交流环境，提供编程专题文章、编程论坛、资源下载、博客和开源项目等栏目,作者方志凯（fangzhikai）。</description>
	<lastBuildDate>Thu, 15 Jul 2010 01:32:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ASP.NET中防止页面多次提交的代码实现</title>
		<link>http://www.kaixinbc.com/2010/03/asp-net-disable.html</link>
		<comments>http://www.kaixinbc.com/2010/03/asp-net-disable.html#comments</comments>
		<pubDate>Sat, 13 Mar 2010 03:39:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[asp.net]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=472</guid>
		<description><![CDATA[此处提供的代码用来实现当asp.net页面中的某个Button被点击后disable掉该页面中所有的Button，从而防止提交延时导致 的多次提交。基于之前的onceclickbutton脚本.
//ASP.NET中防止页面多次提交的代码:javascript&#60; script  language=&#8221;javascript&#8221;&#62; &#60;  !&#8211; function disableOtherSubmit() {
var obj = event.srcElement;
var objs = document.getElementsByTagName(&#8216;INPUT&#8217;);
for(var i=0; i&#60; objs.length; i++)
{
if(objs[i].type.toLowerCase() == &#8217;submit&#8217;)
{
objs[i].disabled = true;
}
}
} //&#8211;&#62; &#60; /script&#62;//ASP.NET中防止页面多次提交的代码:asp.netpublic  class  PreventMultiClick : System.Web.UI.Page {
protected System.Web.UI.WebControls.Button Button1; protected   System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.LinkButton LinkButton1;  protected  System.Web.UI.WebControls.Button Button3; private void  Page_Load(object sender,  [...]]]></description>
			<content:encoded><![CDATA[<p>此处提供的代码用来实现当asp.net页面中的某个Button被点击后disable掉该页面中所有的Button，从而防止提交延时导致 的多次提交。基于之前的onceclickbutton脚本.</p>
<p>//ASP.NET中防止页面多次提交的代码:javascript&lt; script  language=&#8221;javascript&#8221;&gt; &lt;  !&#8211; function disableOtherSubmit() {</p>
<p>var obj = event.srcElement;</p>
<p>var objs = document.getElementsByTagName(&#8216;INPUT&#8217;);</p>
<p>for(var i=0; i&lt; objs.length; i++)</p>
<p>{</p>
<p>if(objs[i].type.toLowerCase() == &#8217;submit&#8217;)</p>
<p>{</p>
<p>objs[i].disabled = true;</p>
<p>}</p>
<p>}</p>
<p>} //&#8211;&gt; &lt; /script&gt;//ASP.NET中防止页面多次提交的代码:asp.netpublic  class  PreventMultiClick : System.Web.UI.Page {</p>
<p>protected System.Web.UI.WebControls.Button Button1; protected   System.Web.UI.WebControls.Button Button2;</p>
<p>protected System.Web.UI.WebControls.LinkButton LinkButton1;  protected  System.Web.UI.WebControls.Button Button3; private void  Page_Load(object sender,  System.EventArgs e)</p>
<p>{</p>
<p>this.GetPostBackEventReference(this.Button3);</p>
<p>//保证 __doPostBack(eventTarget, eventArgument) 正确注册 if(!IsPostBack)</p>
<p>{</p>
<p>System.Text.StringBuilder sb = new System.Text.StringBuilder();</p>
<p>sb.Append(&#8220;if (typeof(Page_ClientValidate) == &#8216;function&#8217;)</p>
<p>{</p>
<p>if (Page_ClientValidate() == false)</p>
<p>{</p>
<p>return false;</p>
<p>}</p>
<p>}&#8221;); //保证验证函数的执行 sb.Append(&#8220;if(window.confirm(&#8216;are you  sure?&#8217;)==false)  return false; &#8220;);</p>
<p>//自定义客户端脚本 sb.Append(&#8220;disableOtherSubmit(); &#8220;);</p>
<p>// disable所有submit按钮   sb.Append(this.GetPostBackEventReference(this.Button3));</p>
<p>//用__doPostBack来提交，保证按钮的服务器端click事件执行 sb.Append(&#8220;; &#8220;);</p>
<p>Button3.Attributes.Add(&#8220;onclick&#8221;,sb.ToString());</p>
<p>}</p>
<p>} #region Web Form Designer generated code override protected void   OnInit(EventArgs e)</p>
<p>{</p>
<p>// // CODEGEN: This call is required by the ASP.NET Web Form  Designer. //  InitializeComponent();</p>
<p>base.OnInit(e);</p>
<p>}</p>
<p>/// &lt; summary&gt; /// Required method for Designer support &#8211; do  not  modify /// the contents of this method with the code editor. ///  &lt;  /summary&gt; private void InitializeComponent()</p>
<p>{</p>
<p>this.Button3.Click += new System.EventHandler(this.Button3_Click);   this.Load += new System.EventHandler(this.Page_Load);</p>
<p>}</p>
<p>#endregion private void Button3_Click(object sender,  System.EventArgs  e)</p>
<p>{</p>
<p>System.Threading.Thread.Sleep(3000);</p>
<p>Response.Write(&#8220;Hello world!&#8221;);</p>
<p>}</p>
<p>} 此处只是disable掉所有的submit button, 我觉得其它的可提交控件也是可以通过类似的方法来disable的.</p>
<p>以上就是ASP.NET中防止页面多次提交的代码实现。</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F03%2Fasp-net-disable.html&title=ASP.NET%E4%B8%AD%E9%98%B2%E6%AD%A2%E9%A1%B5%E9%9D%A2%E5%A4%9A%E6%AC%A1%E6%8F%90%E4%BA%A4%E7%9A%84%E4%BB%A3%E7%A0%81%E5%AE%9E%E7%8E%B0" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/03/asp-net-disable.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>最简单的ASP分页代码&#8211;ASP源码,ASP分页,ASP培训</title>
		<link>http://www.kaixinbc.com/2010/03/asp-fenye.html</link>
		<comments>http://www.kaixinbc.com/2010/03/asp-fenye.html#comments</comments>
		<pubDate>Wed, 10 Mar 2010 08:59:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=461</guid>
		<description><![CDATA[&#60;%
set conn=server.createobject(&#8220;adodb.connection&#8221;)
conn.open(&#8220;DRIVER=Driver do Microsoft Access (*.mdb);UID=admin;pwd=;dbq=&#8221;&#38;server.mappath(&#8220;1.mdb&#8221;))
set rs=server.createobject(&#8220;adodb.recordset&#8221;)
sql=&#8221;select * from student&#8221;
rs.open sql,conn,3
rs.pagesize=20
if request(&#8220;page&#8221;)&#60;&#62;&#8221;" then
epage=cint(request(&#8220;page&#8221;))
if epage&#60;1 then epage=1
if epage&#62;rs.pagecount then epage=rs.pagecount
else
epage=1
end if
rs.absolutepage=epage
%&#62;
&#60;table border=&#8221;0&#8243; cellpadding=&#8221;0&#8243; cellspacing=&#8221;1&#8243; bgcolor=&#8221;#0000FF&#8221; width=&#8221;80%&#8221; align=&#8221;center&#8221;&#62;
&#60;tr bgcolor=&#8221;#FFFFFF&#8221; align=&#8221;center&#8221;&#62;
&#60;th&#62;&#60;%=rs(0).name%&#62;&#60;/th&#62;&#60;th&#62;&#60;%=rs(1).name%&#62;&#60;/th&#62;&#60;th&#62;&#60;%=rs(2).name%&#62;&#60;/th&#62;
&#60;/tr&#62;
&#60;%
for i=0 to rs.pagesize-1
if rs.bof or rs.eof then exit for
%&#62;
&#60;tr bgcolor=&#8221;#FFFFFF&#8221; align=&#8221;center&#8221;&#62;
&#60;td&#62;&#60;%=rs(0).value%&#62;&#60;/td&#62;&#60;td&#62;&#60;%=rs(1).value%&#62;&#60;/td&#62;&#60;td&#62;&#60;%=rs(2).value%&#62;&#60;/td&#62;
&#60;/tr&#62;
&#60;%
rs.movenext()
next
%&#62;
&#60;/table&#62;
&#60;p align=&#8221;center&#8221;&#62;
&#60;a href=&#8221;"&#62;首页&#60;/a&#62;&#38;nbsp;
&#60;a href=&#8221;index.asp?page=&#60;%=epage-1%&#62;&#8221;&#62;前一页&#60;/a&#62;&#38;nbsp;
&#60;a href=&#8221;index.asp?page=&#60;%=epage+1%&#62;&#8221;&#62;后一页&#60;/a&#62;&#38;nbsp;
&#60;a href=&#8221;index.asp?page=&#60;%=rs.pagecount%&#62;&#8221;&#62;末页&#60;/a&#62;
&#60;/p&#62;
&#60;p align=&#8221;center&#8221;&#62;现在是第&#60;%=epage%&#62;页一共有&#60;%=rs.pagecount%&#62;页&#60;/p&#62;
&#60;%
conn.close()
%&#62;
*****************************************************
表有三个字段,表明为student其他的就不需要改了,那个pagesize也可以改一下,如果记录少的话.
]]></description>
			<content:encoded><![CDATA[<p>&lt;%<br />
set conn=server.createobject(&#8220;adodb.connection&#8221;)<br />
conn.open(&#8220;DRIVER=Driver do Microsoft Access (*.mdb);UID=admin;pwd=;dbq=&#8221;&amp;server.mappath(&#8220;1.mdb&#8221;))<br />
set rs=server.createobject(&#8220;adodb.recordset&#8221;)<br />
sql=&#8221;select * from student&#8221;<br />
rs.open sql,conn,3<br />
rs.pagesize=20<br />
if request(&#8220;page&#8221;)&lt;&gt;&#8221;" then<br />
epage=cint(request(&#8220;page&#8221;))<br />
if epage&lt;1 then epage=1<br />
if epage&gt;rs.pagecount then epage=rs.pagecount<br />
else<br />
epage=1<br />
end if<br />
rs.absolutepage=epage<br />
%&gt;<br />
&lt;table border=&#8221;0&#8243; cellpadding=&#8221;0&#8243; cellspacing=&#8221;1&#8243; bgcolor=&#8221;#0000FF&#8221; width=&#8221;80%&#8221; align=&#8221;center&#8221;&gt;<br />
&lt;tr bgcolor=&#8221;#FFFFFF&#8221; align=&#8221;center&#8221;&gt;<br />
&lt;th&gt;&lt;%=rs(0).name%&gt;&lt;/th&gt;&lt;th&gt;&lt;%=rs(1).name%&gt;&lt;/th&gt;&lt;th&gt;&lt;%=rs(2).name%&gt;&lt;/th&gt;<br />
&lt;/tr&gt;<br />
&lt;%<br />
for i=0 to rs.pagesize-1<br />
if rs.bof or rs.eof then exit for<br />
%&gt;<br />
&lt;tr bgcolor=&#8221;#FFFFFF&#8221; align=&#8221;center&#8221;&gt;<br />
&lt;td&gt;&lt;%=rs(0).value%&gt;&lt;/td&gt;&lt;td&gt;&lt;%=rs(1).value%&gt;&lt;/td&gt;&lt;td&gt;&lt;%=rs(2).value%&gt;&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;%<br />
rs.movenext()<br />
next<br />
%&gt;<br />
&lt;/table&gt;<br />
&lt;p align=&#8221;center&#8221;&gt;<br />
&lt;a href=&#8221;"&gt;首页&lt;/a&gt;&amp;nbsp;<br />
&lt;a href=&#8221;index.asp?page=&lt;%=epage-1%&gt;&#8221;&gt;前一页&lt;/a&gt;&amp;nbsp;<br />
&lt;a href=&#8221;index.asp?page=&lt;%=epage+1%&gt;&#8221;&gt;后一页&lt;/a&gt;&amp;nbsp;<br />
&lt;a href=&#8221;index.asp?page=&lt;%=rs.pagecount%&gt;&#8221;&gt;末页&lt;/a&gt;<br />
&lt;/p&gt;<br />
&lt;p align=&#8221;center&#8221;&gt;现在是第&lt;%=epage%&gt;页一共有&lt;%=rs.pagecount%&gt;页&lt;/p&gt;<br />
&lt;%<br />
conn.close()<br />
%&gt;<br />
*****************************************************<br />
表有三个字段,表明为student其他的就不需要改了,那个pagesize也可以改一下,如果记录少的话.</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F03%2Fasp-fenye.html&title=%E6%9C%80%E7%AE%80%E5%8D%95%E7%9A%84ASP%E5%88%86%E9%A1%B5%E4%BB%A3%E7%A0%81--ASP%E6%BA%90%E7%A0%81%2CASP%E5%88%86%E9%A1%B5%2CASP%E5%9F%B9%E8%AE%AD" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/03/asp-fenye.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP使用MYSQL数据库全攻略</title>
		<link>http://www.kaixinbc.com/2010/03/asp-mysql-gl.html</link>
		<comments>http://www.kaixinbc.com/2010/03/asp-mysql-gl.html#comments</comments>
		<pubDate>Wed, 10 Mar 2010 08:56:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[数据库]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=459</guid>
		<description><![CDATA[MYSQL数据库以它短小、方便、速度快、免费等优点成为很多网站目前首选数据库，但一般都是用PHP+MYSQL相结合来开发各种动态页面，其实ASP也可以使用MYSQL数据库开发动态页面，小弟我也是刚刚学会，不敢独享，所以特写了这篇文章供大伙参考。
我的环境是WINDOWS98+PWS4.0+mysql-3.23.32-win+PHP4
必要的软件：PWS4.0（呵呵，废话）
mysql-3.23.32-win（这个是最新版的）
myodbc-2.50.36-dll（这个是最重要的，MYSQL ODBC的驱动程序，可以到www.mysql.com下载）
第一步：安装MYSQL ODBD的驱动程序，将下载的myodbd-2.50.46-dll文件复制到windows\system目录下(windows2000
是winnt/system32)然后建立一新文件，扩展名为reg（就是注册表文件）,将以下内容复制到该文件中。
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\myodbc driver]
&#8220;UsageCount&#8221;=dword:00000002
&#8220;Driver&#8221;=&#8221;C:\\WINDOWS\\System\\myodbc.dll&#8221;
&#8220;Setup&#8221;=&#8221;C:\\WINDOWS\\System\\myodbc.dll&#8221;
&#8220;SQLLevel&#8221;=&#8221;1&#8243;
&#8220;FileUsage&#8221;=&#8221;0&#8243;
&#8220;DriverODBCVer&#8221;=&#8221;02.50&#8243;
&#8220;ConnectFunctions&#8221;=&#8221;YYY&#8221;
&#8220;APILevel&#8221;=&#8221;1&#8243;
&#8220;CpTimeout&#8221;=&#8221;120&#8243;
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers]
&#8220;myodbc driver&#8221;=&#8221;installed&#8221;
保存后双击该文件，将上面代码注册到WINDOWS注册表中。
如果安装在windows2000中,则Driver和Setup主键的值要做相应改变，这里我想就不用多说了。
如果成功，在控制面板/ODBD数据源的驱动程序里将看到myodbd driver这一项！
第二步：建立ASP文件链接数据库。
这里有两种方法，一种是在ODBC数据源中建立一个系统DSN。后来我发现不建立也可以在ASP中使用MYSQL,方法在下文将讲道。
打开控制面板/ODBD数据源，选择系统DSN,然后添加一个新的DSN,驱动程序选择myodbd driver,会出现一个对话框供输入mysql    相关信息。
Windows DSN name: 所要建立DSN的名称
Mysql Host (name or ip):Mysql服务器的名称或者是IP地址，通常填localhost
Mysql database name:需要使用数据库的名称，数据库在Mysql管理程序中建立。这里我们使用一个例子。数据库名：hc188
里面有数据表：user 数据表有两个字段分别是：username和password,随便插入几个数据。
user:链接数据库的用户名，我填的是root超级用户
password:链接数据库用户密码，如果没有，可以不填
Port(if not 3306)：Mysql在服务器的端口，如果不填默认为3306
SQL command on connect:使用sql命令链接数据库，这项可以不填
填写完毕后选择OK保存。
下面链接数据库的ASP代码！
&#60;%
strConnection = &#8220;dsn=hc188;driver={myodbd driver};server=localhost;uid=root;pwd=;database=hc188&#8243;
Set adoDataConn = Server.CreateObject(&#8220;ADODB.Connection&#8221;)
adoDataConn.Open strConnection
strQuery = &#8220;SELECT * FROM user&#8221;
Set rs = adoDataConn.Execute(strQuery)
If Not rs.BOF Then
%&#62;
&#60;TABLE&#62;
&#60;TR&#62;
&#60;TD&#60;b&#62;username&#60;/b&#62;&#60;/TD&#62;
&#60;TD&#62;&#60;b&#62;password&#60;/b&#62;&#60;/TD&#62;
&#60;/TR&#62;
&#60;%
Do While Not rs.EOF
%&#62;
&#60;TR&#62;
&#60;TD&#62;&#60;%=rs(&#8220;username&#8221;)%&#62;&#60;/TD&#62;
&#60;TD&#62;&#60;%=rs(&#8220;password&#8221;)%&#62;&#60;/TD&#62;
&#60;/TR&#62;
&#60;%
rs.MoveNext
Loop
%&#62;
&#60;/TABLE&#62;
&#60;%
Else
Response.Write(&#8220;Sorry, no data found.&#8221;)
End If
rs.Close
adoDataConn.Close
Set adoDataConn = Nothing
Set rsEmailData = Nothing
%&#62;
第二种方法：我在使用中想过如果不建立系统DSN，是否也可以使用MYSQL数据库呢？结果是可以的。
方法很简单，把上面ASP代码第二行代码改为：
strconnection=&#8221;DefaultDir=;Driver={myodbc driver};database=hc188&#8243;
我奇怪的发现，这种方法连用户名和密码都不需要就可以使用。是不是MYSQL的一个BUG呢？
以上代码全部经测试通过！
]]></description>
			<content:encoded><![CDATA[<p>MYSQL数据库以它短小、方便、速度快、免费等优点成为很多网站目前首选数据库，但一般都是用PHP+MYSQL相结合来开发各种动态页面，其实ASP也可以使用MYSQL数据库开发动态页面，小弟我也是刚刚学会，不敢独享，所以特写了这篇文章供大伙参考。<br />
我的环境是WINDOWS98+PWS4.0+mysql-3.23.32-win+PHP4<br />
必要的软件：PWS4.0（呵呵，废话）<br />
mysql-3.23.32-win（这个是最新版的）<br />
myodbc-2.50.36-dll（这个是最重要的，MYSQL ODBC的驱动程序，可以到www.mysql.com下载）</p>
<p>第一步：安装MYSQL ODBD的驱动程序，将下载的myodbd-2.50.46-dll文件复制到windows\system目录下(windows2000<br />
是winnt/system32)然后建立一新文件，扩展名为reg（就是注册表文件）,将以下内容复制到该文件中。</p>
<p>REGEDIT4</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\myodbc driver]<br />
&#8220;UsageCount&#8221;=dword:00000002<br />
&#8220;Driver&#8221;=&#8221;C:\\WINDOWS\\System\\myodbc.dll&#8221;<br />
&#8220;Setup&#8221;=&#8221;C:\\WINDOWS\\System\\myodbc.dll&#8221;<br />
&#8220;SQLLevel&#8221;=&#8221;1&#8243;<br />
&#8220;FileUsage&#8221;=&#8221;0&#8243;<br />
&#8220;DriverODBCVer&#8221;=&#8221;02.50&#8243;<br />
&#8220;ConnectFunctions&#8221;=&#8221;YYY&#8221;<br />
&#8220;APILevel&#8221;=&#8221;1&#8243;<br />
&#8220;CpTimeout&#8221;=&#8221;120&#8243;<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers]<br />
&#8220;myodbc driver&#8221;=&#8221;installed&#8221;</p>
<p>保存后双击该文件，将上面代码注册到WINDOWS注册表中。<br />
如果安装在windows2000中,则Driver和Setup主键的值要做相应改变，这里我想就不用多说了。<br />
如果成功，在控制面板/ODBD数据源的驱动程序里将看到myodbd driver这一项！</p>
<p>第二步：建立ASP文件链接数据库。<br />
这里有两种方法，一种是在ODBC数据源中建立一个系统DSN。后来我发现不建立也可以在ASP中使用MYSQL,方法在下文将讲道。<br />
打开控制面板/ODBD数据源，选择系统DSN,然后添加一个新的DSN,驱动程序选择myodbd driver,会出现一个对话框供输入mysql    相关信息。<br />
Windows DSN name: 所要建立DSN的名称<br />
Mysql Host (name or ip):Mysql服务器的名称或者是IP地址，通常填localhost<br />
Mysql database name:需要使用数据库的名称，数据库在Mysql管理程序中建立。这里我们使用一个例子。数据库名：hc188<br />
里面有数据表：user 数据表有两个字段分别是：username和password,随便插入几个数据。<br />
user:链接数据库的用户名，我填的是root超级用户<br />
password:链接数据库用户密码，如果没有，可以不填<br />
Port(if not 3306)：Mysql在服务器的端口，如果不填默认为3306<br />
SQL command on connect:使用sql命令链接数据库，这项可以不填<br />
填写完毕后选择OK保存。</p>
<p>下面链接数据库的ASP代码！</p>
<p>&lt;%<br />
strConnection = &#8220;dsn=hc188;driver={myodbd driver};server=localhost;uid=root;pwd=;database=hc188&#8243;<br />
Set adoDataConn = Server.CreateObject(&#8220;ADODB.Connection&#8221;)<br />
adoDataConn.Open strConnection</p>
<p>strQuery = &#8220;SELECT * FROM user&#8221;<br />
Set rs = adoDataConn.Execute(strQuery)<br />
If Not rs.BOF Then<br />
%&gt;<br />
&lt;TABLE&gt;<br />
&lt;TR&gt;<br />
&lt;TD&lt;b&gt;username&lt;/b&gt;&lt;/TD&gt;<br />
&lt;TD&gt;&lt;b&gt;password&lt;/b&gt;&lt;/TD&gt;<br />
&lt;/TR&gt;<br />
&lt;%<br />
Do While Not rs.EOF<br />
%&gt;<br />
&lt;TR&gt;<br />
&lt;TD&gt;&lt;%=rs(&#8220;username&#8221;)%&gt;&lt;/TD&gt;<br />
&lt;TD&gt;&lt;%=rs(&#8220;password&#8221;)%&gt;&lt;/TD&gt;<br />
&lt;/TR&gt;<br />
&lt;%<br />
rs.MoveNext<br />
Loop<br />
%&gt;<br />
&lt;/TABLE&gt;<br />
&lt;%<br />
Else<br />
Response.Write(&#8220;Sorry, no data found.&#8221;)<br />
End If</p>
<p>rs.Close<br />
adoDataConn.Close<br />
Set adoDataConn = Nothing<br />
Set rsEmailData = Nothing<br />
%&gt;</p>
<p>第二种方法：我在使用中想过如果不建立系统DSN，是否也可以使用MYSQL数据库呢？结果是可以的。<br />
方法很简单，把上面ASP代码第二行代码改为：<br />
strconnection=&#8221;DefaultDir=;Driver={myodbc driver};database=hc188&#8243;</p>
<p>我奇怪的发现，这种方法连用户名和密码都不需要就可以使用。是不是MYSQL的一个BUG呢？</p>
<p>以上代码全部经测试通过！</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F03%2Fasp-mysql-gl.html&title=ASP%E4%BD%BF%E7%94%A8MYSQL%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A8%E6%94%BB%E7%95%A5" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/03/asp-mysql-gl.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用Asp+XmlHttp实现RssReader功能</title>
		<link>http://www.kaixinbc.com/2010/02/asp-xmlhttp-rssreader.html</link>
		<comments>http://www.kaixinbc.com/2010/02/asp-xmlhttp-rssreader.html#comments</comments>
		<pubDate>Mon, 01 Feb 2010 06:27:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[rssreader]]></category>
		<category><![CDATA[xmlhttp]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=285</guid>
		<description><![CDATA[&#60;style&#62;
body {margin:10px;background-color:#ffffff;margin-top:6px;}
form{margin:0px;}
* {font:12px tahoma;line-height:140%;color:#000000}
.title {font-weight:bold;color:red;}
.time {font:10px;color:#999999;}
a {text-decoration:none;color:blue;}
&#60;/style&#62;
&#60;script type=&#8221;text/javascript&#8221;&#62;
var switcher=0;
&#60;/script&#62;
&#60;body ondblclick=&#8221;if(switcher==0){document.styleSheets[0].addRule(&#8216;div&#8217;,'display:none&#8217;);switcher=1}else{document.styleSheets[0].addRule(&#8216;div&#8217;,'display:block&#8217;);switcher=0}&#8221;&#62;
&#60;form name=&#8221;rssform&#8221; method=post action=&#8221;"&#62;
RSS资源：&#60;INPUT TYPE=&#8221;text&#8221; NAME=&#8221;RssFeed&#8221; size=60 style=&#8221;height:22px&#8221; value=&#8221;&#60;%=request(&#8220;RssFeed&#8221;)%&#62;&#8221; onfocus=select()&#62; &#60;input type=&#8221;submit&#8221; value=&#8221;Read It&#8221;&#62; &#38;nbsp;&#38;nbsp;双击鼠标可以关闭摘要，只显示标题
&#60;/form&#62;
&#60;hr/&#62;
&#60;%
If(request(&#8220;RssFeed&#8221;)=&#8221;") Then
url=&#8221;/rss2.asp&#8221;
else
url=request(&#8220;RssFeed&#8221;)
End If
Set xml = Server.CreateObject(&#8220;Microsoft.XMLHTTP&#8221;)
xml.Open &#8221;GET&#8221;, url, False
xml.Send
Set xmlDom = server.createObject(&#8220;microsoft.xmldom&#8221;)
xmlDom.async=False
xmlDom.ValidateOnParse=false
xmlDom.load(xml.responseXML)
if xmlDom.ReadyState&#62;2 Then
set oItem=xmlDom.getElementsByTagName(&#8220;item&#8221;)
for i=0 to oItem.length-1
response.write &#8221;&#60;span style=&#8217;font:bold 9px verdana;color:#000000&#8242;&#62;&#8221;&#38;i+1&#38;&#8221;&#60;/span&#62;. &#60;a class=&#8217;title&#8217; href=&#8217;&#8221;&#38;oItem(i).childNodes(1).text&#38;&#8221;&#8216; target=&#8217;_blank&#8217;&#62;&#8221;&#38;oItem(i).childNodes(0).text&#38;&#8221;&#60;/a&#62; &#60;span class=&#8217;time&#8217;&#62;["&#38;oItem(i).childNodes(3).text&#38;"]&#60;br /&#62;&#8221;
response.write &#8221;&#60;div&#62;摘要：&#8221;&#38;oItem(i).childNodes(4).text&#38;&#8221;&#60;/div&#62;&#60;br&#62;&#8221;
next
end if
%&#62;
]]></description>
			<content:encoded><![CDATA[<p>&lt;style&gt;<br />
body {margin:10px;background-color:#ffffff;margin-top:6px;}<br />
form{margin:0px;}<br />
* {font:12px tahoma;line-height:140%;color:#000000}<br />
.title {font-weight:bold;color:red;}<br />
.time {font:10px;color:#999999;}<br />
a {text-decoration:none;color:blue;}<br />
&lt;/style&gt;<br />
&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
var switcher=0;<br />
&lt;/script&gt;<br />
&lt;body ondblclick=&#8221;if(switcher==0){document.styleSheets[0].addRule(&#8216;div&#8217;,'display:none&#8217;);switcher=1}else{document.styleSheets[0].addRule(&#8216;div&#8217;,'display:block&#8217;);switcher=0}&#8221;&gt;<br />
&lt;form name=&#8221;rssform&#8221; method=post action=&#8221;"&gt;<br />
RSS资源：&lt;INPUT TYPE=&#8221;text&#8221; NAME=&#8221;RssFeed&#8221; size=60 style=&#8221;height:22px&#8221; value=&#8221;&lt;%=request(&#8220;RssFeed&#8221;)%&gt;&#8221; onfocus=select()&gt; &lt;input type=&#8221;submit&#8221; value=&#8221;Read It&#8221;&gt; &amp;nbsp;&amp;nbsp;双击鼠标可以关闭摘要，只显示标题<br />
&lt;/form&gt;<br />
&lt;hr/&gt;<br />
&lt;%<br />
If(request(&#8220;RssFeed&#8221;)=&#8221;") Then<br />
url=&#8221;/rss2.asp&#8221;<br />
else<br />
url=request(&#8220;RssFeed&#8221;)<br />
End If</p>
<p>Set xml = Server.CreateObject(&#8220;Microsoft.XMLHTTP&#8221;)<br />
xml.Open &#8221;GET&#8221;, url, False<br />
xml.Send</p>
<p>Set xmlDom = server.createObject(&#8220;microsoft.xmldom&#8221;)<br />
xmlDom.async=False<br />
xmlDom.ValidateOnParse=false<br />
xmlDom.load(xml.responseXML)</p>
<p>if xmlDom.ReadyState&gt;2 Then</p>
<p>set oItem=xmlDom.getElementsByTagName(&#8220;item&#8221;)</p>
<p>for i=0 to oItem.length-1<br />
response.write &#8221;&lt;span style=&#8217;font:bold 9px verdana;color:#000000&#8242;&gt;&#8221;&amp;i+1&amp;&#8221;&lt;/span&gt;. &lt;a class=&#8217;title&#8217; href=&#8217;&#8221;&amp;oItem(i).childNodes(1).text&amp;&#8221;&#8216; target=&#8217;_blank&#8217;&gt;&#8221;&amp;oItem(i).childNodes(0).text&amp;&#8221;&lt;/a&gt; &lt;span class=&#8217;time&#8217;&gt;["&amp;oItem(i).childNodes(3).text&amp;"]&lt;br /&gt;&#8221;<br />
response.write &#8221;&lt;div&gt;摘要：&#8221;&amp;oItem(i).childNodes(4).text&amp;&#8221;&lt;/div&gt;&lt;br&gt;&#8221;<br />
next<br />
end if<br />
%&gt;</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F02%2Fasp-xmlhttp-rssreader.html&title=%E7%94%A8Asp%2BXmlHttp%E5%AE%9E%E7%8E%B0RssReader%E5%8A%9F%E8%83%BD" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/02/asp-xmlhttp-rssreader.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET4.0的新功能 SEO 增强</title>
		<link>http://www.kaixinbc.com/2010/01/asp-net-2.html</link>
		<comments>http://www.kaixinbc.com/2010/01/asp-net-2.html#comments</comments>
		<pubDate>Wed, 27 Jan 2010 11:48:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=196</guid>
		<description><![CDATA[　　ASP.NET4.0提供了一系列新的特性实现网站的 SEO优化，包括：
　　Page类的新属性：Page.MetaKeywords 和 Page.MetaDescription;
　　ASP.NET Web Forms 新的URL路由功能;
　　Response.RedirectPermanent()、Response.RedirectToRoutePermanent()方法等。
　　Page.MetaKeywords 和 Page.MetaDescription属性将生成 html 标记中的 和 ，例如
　　C# 代码
　　Page.MetaDescription = &#8220;ASP.NET 4.0学习站点：http://dotnet.aspx.cc/&#8221;;
　　Page.MetaKeywords = &#8220;孟宪会&#8221;;
　　将生成如下的代码：
　　HTML 代码
　　Response.RedirectPermanent()将进行HTTP 301(Moved Permanently)重定向。
]]></description>
			<content:encoded><![CDATA[<p>　　ASP.NET4.0提供了一系列新的特性实现网站的 SEO优化，包括：</p>
<p>　　Page类的新属性：Page.MetaKeywords 和 Page.MetaDescription;</p>
<p>　　ASP.NET Web Forms 新的URL路由功能;</p>
<p>　　Response.RedirectPermanent()、Response.RedirectToRoutePermanent()方法等。</p>
<p>　　Page.MetaKeywords 和 Page.MetaDescription属性将生成 html 标记中的 和 ，例如</p>
<p>　　C# 代码</p>
<p>　　Page.MetaDescription = &#8220;ASP.NET 4.0学习站点：http://dotnet.aspx.cc/&#8221;;</p>
<p>　　Page.MetaKeywords = &#8220;孟宪会&#8221;;</p>
<p>　　将生成如下的代码：</p>
<p>　　HTML 代码</p>
<p>　　Response.RedirectPermanent()将进行HTTP 301(Moved Permanently)重定向。</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F01%2Fasp-net-2.html&title=ASP.NET4.0%E7%9A%84%E6%96%B0%E5%8A%9F%E8%83%BD+SEO+%E5%A2%9E%E5%BC%BA" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/01/asp-net-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>基于.net平台的web框架搭建</title>
		<link>http://www.kaixinbc.com/2010/01/net-web.html</link>
		<comments>http://www.kaixinbc.com/2010/01/net-web.html#comments</comments>
		<pubDate>Wed, 27 Jan 2010 11:42:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[web2.0]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=193</guid>
		<description><![CDATA[　　最近基于ExtJs和asp.net mvc做了一个系统.来总结下.一起讨论下.
　　一.技术分析
　　1.web数据传输
　　ExtJS作为前端UI展现层,传输数据格式为json或者xml,一般大部分为json.
　　2.asp.net mvc
　　(不要考虑太多mvc其他特性,controller+method就够了)的和路由url很好的符合了这一要求,实现起来很轻松.
　　3.选一款依赖注入容器
　　只要你好好学过一款Ioc组件,概念都还是一样的，做法不同而已,我选的是微软的Unity,
　　这里我并没有把Service配置在xml中,根据我的理解,大部分软件并不需要这么灵活,我就纯注册就够了(其实往往是这样,我们可以问问自己，我们用到了多少功能).因为大部分都是注册一次，永不修改的…真的有必要的时候可以提出
　　Ioc组件很多，个人认为比较强大的还是spring.net,功能非常丰富，还有AOP功能，最主要的是其可以和其他组件结合的很好.
　　容器作为底层服务,主要就是为我们提供灵活性.想办法与现有组件结合,注册相关服务.
　　4.数据库操作(NHibernate)
　　3年前我会选ADO.NET
　　2年前我选Microsoft.Practices.Data.Application
　　1年前我选linq to sql
　　现在我选nhibernate
　　关于NHibernate映射
　　(1)若你是初学者,乖乖的自己手动配吧
　　(2)若你喜欢linq的,有一款FluentNHibernate可供选择(用新技术请考虑风险,玩的没关系)
　　(3)若你映射配置文件玩的很熟悉了,就用NHibernate.Mapping.Attributes挂标签自动生成吧(不推荐用什么代码生成器,都是要重新改的)
　　5.比较java web经典平台
　　比较庆幸,之前有接触过java,java的web编程架构很稳定,3年前如此,现在还是一样,不同的只是版本升级而已,这点.net程序员比较惨的.这也见证了spring,hibernate,struts(webwork)在目前而言是最好的拍档.
　　换成.net平台也就是spring.net(Ioc容器)+nhibernate(orm)+asp.net mvc
　　spring.net和nhibernate都属于java移植产品,所以应该来说资料是非常的多,想学习的人,应该把眼光放到java社区中,收获会很多的,稍微比较下c#和java语言就好了(千万别学了就跑去学java了:)).
　　asp.net mvc对比struts而言,方便了很多,但不同的是java附产品比较多,像asp.net mvc这样的框架,java也有些框架已经开始改进了(看到过,基本上理念是一样的).
　　当然这里均采用的开源路线,大家也可以采用微软自家平台的技术.
　　二.技术串联
　　1.注册容器
　　2.初始化Nhibernate
　　我们都知道Ioc是可以与asp.net mvc结合的
　　3.Nhibernate与容器配合法
　　(1)Nhibernate与spring.net的结合,这里已经有经典例子在了,何谓经典例子,就是大家都这么干,而且也没出什么问题，我也就这么干,确实有点道理的…虽然有时候真不懂为什么这么干。。。呵呵
　　(2)用单例的方式在应用启动时注册,如上法
　　(3)Nhibernate若映射换FluentNHibernate的话,或者加入linq to nh,则整个设计就要重新考虑了
　　我想上面的设计有点意思,特别是加入了linq to nh我的设想是这样的
　　(1)简单查询用linq to nh
　　(2)hql主打,标准查询辅助…
　　(3)若由于对nh框架不熟,导致查不出来，或者遇到速度慢,先上t-sql(原因一般都是自身学的不好造成的，先怀疑自己，怀疑不下去了再去怀疑框架本身…)
　　三.项目细分
　　这里忽略分布式应用,我没具体搞过…
　　Entity项目一个
　　Service接口项目一个
　　Service接口默认实现项目一个
　　Domain项目一个
　　主体辅助类项目一个(放杂七杂八用的)
　　测试项目一个(可选)
　　web相关项目一个(放与web相关的和controller)
　　web主打项目一个(运行项目,主放js用…)
　　基本上最基本的就是这样,你可以细分,也可以把上面很多项目合并为同一项目.
　　若想灵活就多用反射与配置文件
　　四.细化
　　若要完成一般的数据增删改系统的话,我们还可以稍微细化封装,这样的封装是很方便的.
　　1.没有绝对的灵活,需要一定的耦合,ext框架对于后端请求的json数据有一定要求,所以数据转换在所难免,所以准备一些通用的数据类型转换的功能
　　2.对于千篇一律的数据增删改,若无特殊的业务逻辑,可考虑借助asp.net mvc和反射功能完成,这样一个controller的设计可以代替很多个.
　　3.在传json时勿使用延迟加载等特性.
　　4.一个hql配置系统,不要因为某一查询条件改了而重新编写代码,可以考虑做个机制,把hql语句提取出来
　　5.巧用nhibernate拦截机制,日志必不可少
　　6.一套稳定的权限机制
　　7.对于ext,要有一套js加载机制
　　总结起来细化的都是对于不同需求而变化设计的.
　　如果不是很难的项目,花一段时间实践,这种搭配很容易学会.
　　接下来重点还是回到.net framework来学习.
]]></description>
			<content:encoded><![CDATA[<p>　　最近基于ExtJs和asp.net mvc做了一个系统.来总结下.一起讨论下.</p>
<p>　　一.技术分析</p>
<p>　　1.web数据传输</p>
<p>　　ExtJS作为前端UI展现层,传输数据格式为json或者xml,一般大部分为json.</p>
<p>　　2.asp.net mvc</p>
<p>　　(不要考虑太多mvc其他特性,controller+method就够了)的和路由url很好的符合了这一要求,实现起来很轻松.</p>
<p>　　3.选一款依赖注入容器</p>
<p>　　只要你好好学过一款Ioc组件,概念都还是一样的，做法不同而已,我选的是微软的Unity,</p>
<p>　　这里我并没有把Service配置在xml中,根据我的理解,大部分软件并不需要这么灵活,我就纯注册就够了(其实往往是这样,我们可以问问自己，我们用到了多少功能).因为大部分都是注册一次，永不修改的…真的有必要的时候可以提出</p>
<p>　　Ioc组件很多，个人认为比较强大的还是spring.net,功能非常丰富，还有AOP功能，最主要的是其可以和其他组件结合的很好.</p>
<p>　　容器作为底层服务,主要就是为我们提供灵活性.想办法与现有组件结合,注册相关服务.</p>
<p>　　4.数据库操作(NHibernate)</p>
<p>　　3年前我会选ADO.NET</p>
<p>　　2年前我选Microsoft.Practices.Data.Application</p>
<p>　　1年前我选linq to sql</p>
<p>　　现在我选nhibernate</p>
<p>　　关于NHibernate映射</p>
<p>　　(1)若你是初学者,乖乖的自己手动配吧</p>
<p>　　(2)若你喜欢linq的,有一款FluentNHibernate可供选择(用新技术请考虑风险,玩的没关系)</p>
<p>　　(3)若你映射配置文件玩的很熟悉了,就用NHibernate.Mapping.Attributes挂标签自动生成吧(不推荐用什么代码生成器,都是要重新改的)</p>
<p>　　5.比较java web经典平台</p>
<p>　　比较庆幸,之前有接触过java,java的web编程架构很稳定,3年前如此,现在还是一样,不同的只是版本升级而已,这点.net程序员比较惨的.这也见证了spring,hibernate,struts(webwork)在目前而言是最好的拍档.</p>
<p>　　换成.net平台也就是spring.net(Ioc容器)+nhibernate(orm)+asp.net mvc</p>
<p>　　spring.net和nhibernate都属于java移植产品,所以应该来说资料是非常的多,想学习的人,应该把眼光放到java社区中,收获会很多的,稍微比较下c#和java语言就好了(千万别学了就跑去学java了:)).</p>
<p>　　asp.net mvc对比struts而言,方便了很多,但不同的是java附产品比较多,像asp.net mvc这样的框架,java也有些框架已经开始改进了(看到过,基本上理念是一样的).</p>
<p>　　当然这里均采用的开源路线,大家也可以采用微软自家平台的技术.</p>
<p>　　二.技术串联</p>
<p>　　1.注册容器</p>
<p>　　2.初始化Nhibernate</p>
<p>　　我们都知道Ioc是可以与asp.net mvc结合的</p>
<p>　　3.Nhibernate与容器配合法</p>
<p>　　(1)Nhibernate与spring.net的结合,这里已经有经典例子在了,何谓经典例子,就是大家都这么干,而且也没出什么问题，我也就这么干,确实有点道理的…虽然有时候真不懂为什么这么干。。。呵呵</p>
<p>　　(2)用单例的方式在应用启动时注册,如上法</p>
<p>　　(3)Nhibernate若映射换FluentNHibernate的话,或者加入linq to nh,则整个设计就要重新考虑了</p>
<p>　　我想上面的设计有点意思,特别是加入了linq to nh我的设想是这样的</p>
<p>　　(1)简单查询用linq to nh</p>
<p>　　(2)hql主打,标准查询辅助…</p>
<p>　　(3)若由于对nh框架不熟,导致查不出来，或者遇到速度慢,先上t-sql(原因一般都是自身学的不好造成的，先怀疑自己，怀疑不下去了再去怀疑框架本身…)</p>
<p>　　三.项目细分</p>
<p>　　这里忽略分布式应用,我没具体搞过…</p>
<p>　　Entity项目一个</p>
<p>　　Service接口项目一个</p>
<p>　　Service接口默认实现项目一个</p>
<p>　　Domain项目一个</p>
<p>　　主体辅助类项目一个(放杂七杂八用的)</p>
<p>　　测试项目一个(可选)</p>
<p>　　web相关项目一个(放与web相关的和controller)</p>
<p>　　web主打项目一个(运行项目,主放js用…)</p>
<p>　　基本上最基本的就是这样,你可以细分,也可以把上面很多项目合并为同一项目.</p>
<p>　　若想灵活就多用反射与配置文件</p>
<p>　　四.细化</p>
<p>　　若要完成一般的数据增删改系统的话,我们还可以稍微细化封装,这样的封装是很方便的.</p>
<p>　　1.没有绝对的灵活,需要一定的耦合,ext框架对于后端请求的json数据有一定要求,所以数据转换在所难免,所以准备一些通用的数据类型转换的功能</p>
<p>　　2.对于千篇一律的数据增删改,若无特殊的业务逻辑,可考虑借助asp.net mvc和反射功能完成,这样一个controller的设计可以代替很多个.</p>
<p>　　3.在传json时勿使用延迟加载等特性.</p>
<p>　　4.一个hql配置系统,不要因为某一查询条件改了而重新编写代码,可以考虑做个机制,把hql语句提取出来</p>
<p>　　5.巧用nhibernate拦截机制,日志必不可少</p>
<p>　　6.一套稳定的权限机制</p>
<p>　　7.对于ext,要有一套js加载机制</p>
<p>　　总结起来细化的都是对于不同需求而变化设计的.</p>
<p>　　如果不是很难的项目,花一段时间实践,这种搭配很容易学会.</p>
<p>　　接下来重点还是回到.net framework来学习.</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F01%2Fnet-web.html&title=%E5%9F%BA%E4%BA%8E.net%E5%B9%B3%E5%8F%B0%E7%9A%84web%E6%A1%86%E6%9E%B6%E6%90%AD%E5%BB%BA" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/01/net-web.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2009年微软Silverlight十大流行应用</title>
		<link>http://www.kaixinbc.com/2010/01/silverlight-2009.html</link>
		<comments>http://www.kaixinbc.com/2010/01/silverlight-2009.html#comments</comments>
		<pubDate>Tue, 26 Jan 2010 03:02:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[业界动态]]></category>
		<category><![CDATA[asp.net]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=151</guid>
		<description><![CDATA[      微软在2009年12月，发布Silverilght 4 Beta版本，其强大的功能，又一次吸引了众多RIA程序员的眼球，列出十个最流行的Silverlight应用项目如下：
     1. Microsoft SDK for FacebookSNS应用是2009年的热门话题，为了推广Silverlight，微软很快推出了Silverlight FaceBook SDK。
     2. Silverlight 3 和 Expression 3对于应用开发人员和界面设计人员来说，Silverlight Tools和Expression系列是最热门的应用。通过这两个应用，开发人员和设计人员可以快速开发出专业的Silverlight应用。
     3. Silverlight 4 BetaSilverlight 4 的发布，让大家耳目一新，更多新的功能吸引了众多微软技术的追随者。
     4. NASA应用Silverlight技术应用于NASA，NASA使用Silverlight技术播放太空空间站图片组。
     5. Netflix 和 Windows Media CenterNetflix使用Silverlight多媒体技术提供在线电影DVD视频查看服务。
    6. Wimbledon (温布尔顿网球公开赛）温布尔顿网球冠军赛使用Silverlight技术进行在线视频播放。
     7. NBC使用Silverlight技术获得艾美奖NBC使用Silverlight技术提供HD高清2008奥运会转播视频，获得艾美奖。
      8. NAB09的IIS Smooth Streaming洛杉矶NAB 2009使用IIS+Silverlight进行高清视频播放。
      9. 迈克尔杰克逊纪念视频网迈克尔杰克逊的粉丝使用Silverlight技术，创建迈克尔杰克逊的音乐纪念网站。
      10. Silverlight Bing和Bing Map控件微软提供Silverlight Bing Visual Search服务，另外发布了Bing Map控件。
]]></description>
			<content:encoded><![CDATA[<p>      微软在2009年12月，发布Silverilght 4 Beta版本，其强大的功能，又一次吸引了众多RIA程序员的眼球，列出十个最流行的Silverlight应用项目如下：</p>
<p>     1. Microsoft SDK for FacebookSNS应用是2009年的热门话题，为了推广Silverlight，微软很快推出了Silverlight FaceBook SDK。</p>
<p>     2. Silverlight 3 和 Expression 3对于应用开发人员和界面设计人员来说，Silverlight Tools和Expression系列是最热门的应用。通过这两个应用，开发人员和设计人员可以快速开发出专业的Silverlight应用。</p>
<p>     3. Silverlight 4 BetaSilverlight 4 的发布，让大家耳目一新，更多新的功能吸引了众多微软技术的追随者。</p>
<p>     4. NASA应用Silverlight技术应用于NASA，NASA使用Silverlight技术播放太空空间站图片组。</p>
<p>     5. Netflix 和 Windows Media CenterNetflix使用Silverlight多媒体技术提供在线电影DVD视频查看服务。</p>
<p>    6. Wimbledon (温布尔顿网球公开赛）温布尔顿网球冠军赛使用Silverlight技术进行在线视频播放。</p>
<p>     7. NBC使用Silverlight技术获得艾美奖NBC使用Silverlight技术提供HD高清2008奥运会转播视频，获得艾美奖。</p>
<p>      8. NAB09的IIS Smooth Streaming洛杉矶NAB 2009使用IIS+Silverlight进行高清视频播放。</p>
<p>      9. 迈克尔杰克逊纪念视频网迈克尔杰克逊的粉丝使用Silverlight技术，创建迈克尔杰克逊的音乐纪念网站。</p>
<p>      10. Silverlight Bing和Bing Map控件微软提供Silverlight Bing Visual Search服务，另外发布了Bing Map控件。</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F01%2Fsilverlight-2009.html&title=2009%E5%B9%B4%E5%BE%AE%E8%BD%AFSilverlight%E5%8D%81%E5%A4%A7%E6%B5%81%E8%A1%8C%E5%BA%94%E7%94%A8" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/01/silverlight-2009.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP实现网页打开任何类型文件都保存</title>
		<link>http://www.kaixinbc.com/2010/01/asp-save.html</link>
		<comments>http://www.kaixinbc.com/2010/01/asp-save.html#comments</comments>
		<pubDate>Tue, 26 Jan 2010 02:01:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[开源技术]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=106</guid>
		<description><![CDATA[　　当页面上有一个链接指向服务器一个Word文件，当客户端机器有安装Office时，点击链接将调用Word打开浏览;当客户端机器没有安装Office时，点击链接将弹出保存对话框。总结一下即如果浏览器认识文件类型，就会自动打开;如果不认识，则会提示客户保存。可是有时候我们希望不管什么类型文件，都不要打开，直接让客户端保存。要达到这个要求，对于保存在服务器硬盘上的文件就得利用ASPUpload组件的SendBinary方法来实现，而对于保存在数据库中的文件则只须打开记录集，然后将二进制数据直接输出到客户端即可，不过要告诉浏览器文件的MIME类型、文件名称和文件大小。
　　1.服务器端硬盘上的文件
以下是引用片段：
&#60;% 
Dim Upload,FilePath 
Set Upload = Server.CreateObject(&#8220;Persits.Upload&#8221;) 
FilePath = Server.MapPath(&#8220;.&#8221;) &#38; &#8221;\&#8221; &#38; &#8221;2003529213019.txt&#8221; 
&#8216;SendBinary参数说明: 
&#8216;参数一：文件物理路径 
&#8216;参数二：是否将文件的MIME类型等信息传送给浏览器 
&#8216;参数三：文件类型，可以指定具体的MIME类型，但一般都可以使用application/octet-binary 
&#8216;参数四：让客户端保存文件还是直接打开。True：保存；False(默认)：打开 
Upload.SendBinary FilePath,True,&#8221;application/octet-binary&#8221;,True 
%&#62; 
　　2.服务器端数据库中的文件
&#60;% 
Dim objConn,objRs 
Set objConn = Server.CreateObject(&#8220;ADODB.Connection&#8221;) 
Set objRs = Server.CreateObject(&#8220;ADODB.RecordSet&#8221;) 
objConn.open &#8221;Driver={Microsoft Access Driver (*.mdb)};dbq=&#8221; &#38; Server.MapPath(&#8220;db1.mdb&#8221;) 
objRs.open &#8221;select * from t5 where id=2&#8243;,objConn,1,3 
Response.ContentType = &#8221;application/octet-stream&#8221; 
Response.AddHeader &#8221;Content-Disposition&#8221;,&#8221;attachment;filename=&#8221; &#38; objRs(&#8220;filename&#8221;) 
Response.AddHeader &#8221;Content-Length&#8221;,CStr(objRs(&#8220;size&#8221;)) &#8217;此处必须用CStr转换 
Response.BinaryWrite objRs(&#8220;file&#8221;) 
objRs.close 
Set objRs = nothing 
objConn.close 
Set objConn = nothing 
%&#62; 
　　此法要求保存文件时需同时保存文件名及文件大小!若未指定文件名及大小，如果浏览器认识该文件类型，将会自动打开;如果不认识，才会提示客户保存!
]]></description>
			<content:encoded><![CDATA[<p>　　当页面上有一个链接指向服务器一个Word文件，当客户端机器有安装Office时，点击链接将调用Word打开浏览;当客户端机器没有安装Office时，点击链接将弹出保存对话框。总结一下即如果浏览器认识文件类型，就会自动打开;如果不认识，则会提示客户保存。可是有时候我们希望不管什么类型文件，都不要打开，直接让客户端保存。要达到这个要求，对于保存在服务器硬盘上的文件就得利用ASPUpload组件的SendBinary方法来实现，而对于保存在数据库中的文件则只须打开记录集，然后将二进制数据直接输出到客户端即可，不过要告诉浏览器文件的MIME类型、文件名称和文件大小。</p>
<p>　　1.服务器端硬盘上的文件</p>
<p>以下是引用片段：<br />
&lt;% <br />
Dim Upload,FilePath <br />
Set Upload = Server.CreateObject(&#8220;Persits.Upload&#8221;) <br />
FilePath = Server.MapPath(&#8220;.&#8221;) &amp; &#8221;\&#8221; &amp; &#8221;2003529213019.txt&#8221; <br />
&#8216;SendBinary参数说明: <br />
&#8216;参数一：文件物理路径 <br />
&#8216;参数二：是否将文件的MIME类型等信息传送给浏览器 <br />
&#8216;参数三：文件类型，可以指定具体的MIME类型，但一般都可以使用application/octet-binary <br />
&#8216;参数四：让客户端保存文件还是直接打开。True：保存；False(默认)：打开 <br />
Upload.SendBinary FilePath,True,&#8221;application/octet-binary&#8221;,True <br />
%&gt; </p>
<p>　　2.服务器端数据库中的文件</p>
<p>&lt;% <br />
Dim objConn,objRs <br />
Set objConn = Server.CreateObject(&#8220;ADODB.Connection&#8221;) <br />
Set objRs = Server.CreateObject(&#8220;ADODB.RecordSet&#8221;) <br />
objConn.open &#8221;Driver={Microsoft Access Driver (*.mdb)};dbq=&#8221; &amp; Server.MapPath(&#8220;db1.mdb&#8221;) <br />
objRs.open &#8221;select * from t5 where id=2&#8243;,objConn,1,3 <br />
Response.ContentType = &#8221;application/octet-stream&#8221; <br />
Response.AddHeader &#8221;Content-Disposition&#8221;,&#8221;attachment;filename=&#8221; &amp; objRs(&#8220;filename&#8221;) <br />
Response.AddHeader &#8221;Content-Length&#8221;,CStr(objRs(&#8220;size&#8221;)) &#8217;此处必须用CStr转换 <br />
Response.BinaryWrite objRs(&#8220;file&#8221;) <br />
objRs.close <br />
Set objRs = nothing <br />
objConn.close <br />
Set objConn = nothing <br />
%&gt; </p>
<p>　　此法要求保存文件时需同时保存文件名及文件大小!若未指定文件名及大小，如果浏览器认识该文件类型，将会自动打开;如果不认识，才会提示客户保存!</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F01%2Fasp-save.html&title=ASP%E5%AE%9E%E7%8E%B0%E7%BD%91%E9%A1%B5%E6%89%93%E5%BC%80%E4%BB%BB%E4%BD%95%E7%B1%BB%E5%9E%8B%E6%96%87%E4%BB%B6%E9%83%BD%E4%BF%9D%E5%AD%98" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/01/asp-save.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用ASP取出HTML里面的图片地址的函数</title>
		<link>http://www.kaixinbc.com/2010/01/asp-html-pictures.html</link>
		<comments>http://www.kaixinbc.com/2010/01/asp-html-pictures.html#comments</comments>
		<pubDate>Tue, 26 Jan 2010 01:59:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[开源技术]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=104</guid>
		<description><![CDATA[    用ASP取出HTML里面的图片地址的函数主要原理就是用正则判断的属性。这在采集程序中将非常有用。
　　函数如下：
以下是引用片段：
Function ShowPic(str)  
　　Set objRegExp = New Regexp&#8217;设置配置对象   
　　objRegExp.IgnoreCase = True&#8217;忽略大小写   
　　objRegExp.Global = True&#8217;设置为全文搜索   
　　objRegExp.Pattern = &#8221;&#60;img.+?&#62;&#8221;  
　　&#8217;为了确保能准确地取出图片地址所以分为两层配置：首先找到里面的&#60;img&#62;标签，然后再取出里面的图片地址后面的getimgs函数就是实现后一个功能的。   
strs=trim(str)   
Set Matches =objRegExp.Execute(strs)&#8217;开始执行配置   
For Each Match in Matches   
RetStr = RetStr &#38;getimgs( Match.Value )&#8217;执行第二轮的匹配   
Next   
ShowPic = RetStr  
End Function  
Function getimgs(str)   
getimgs=&#8221;"   
Set objRegExp1 = New Regexp   
objRegExp1.IgnoreCase = True   
objRegExp1.Global = True   
objRegExp1.Pattern = &#8221;http://.+?&#8221;"&#8221;&#8216;取出里面的地址   
set mm=objRegExp1.Execute(str)   
For Each Match1 in mm   
getimgs=getimgs&#38;left(Match1.Value,len(Match1.Value)-1)&#38;&#8221;&#124;&#124;&#8221;&#8216;把里面的地址串起来备用   
next   
End Function   
&#8216;取得图片内容  
function getHTTPPage(url)   
on error resume next   
dim http   
set http=server.createobject(&#8220;MSXML2.XMLHTTP&#8221;)&#8217;使用xmlhttp的方法来获得图片的内容   
Http.open &#8221;GET&#8221;,url,false   
Http.send()   
if Http.readystate&#60;&#62;4 then   
exit function   
end if   
getHTTPPage=Http.responseBody   
set http=nothing   
if err.number&#60;&#62;0 then err.Clear   
end function   
&#8216;保存图片  
function saveimage(from,tofile)   
dim geturl,objStream,imgs   
geturl=trim(from)   
imgs=gethttppage(geturl)&#8217;取得图片的具休内容的过程   
Set objStream = Server.CreateObject(&#8220;ADODB.Stream&#8221;)&#8217;建立ADODB.Stream对象，必须要ADO 2.5以上版本   
objStream.Type =1&#8242;以二进制模式打开   
objStream.Open   
objstream.write imgs&#8217;将字符串内容写入缓冲   
objstream.SaveToFile server.mappath(tofile),2&#8242;-将缓冲的内容写入文件   
objstream.Close()&#8217;关闭对象   
set objstream=nothing   
end function   
&#8216;调用实例  
Dim strpic,i,fname  
strpic = ShowPic(&#8220;&#60;DIV align=center&#62;&#60;IMG src=&#8221;"图片地址&#8221;" border=0&#62;&#60;/DIV&#62;&#8221;)  
strpic = Split(strpic,&#8221;&#124;&#124;&#8221;)  
If UBound(strpic) &#62; 0 Then   
For i = 0 To UBound(strpic) - 1  
&#8216;保存图片  
fname=cstr(i&#38;mid(strpic(i),instrrev(strpic(i),&#8221;.&#8221;)))   
saveimage(strpic(i),fname)  
Next  
Else  
End If
]]></description>
			<content:encoded><![CDATA[<p>    用ASP取出HTML里面的图片地址的函数主要原理就是用正则判断的属性。这在采集程序中将非常有用。</p>
<p>　　函数如下：</p>
<p>以下是引用片段：<br />
Function ShowPic(str)  <br />
　　Set objRegExp = New Regexp&#8217;设置配置对象   <br />
　　objRegExp.IgnoreCase = True&#8217;忽略大小写   <br />
　　objRegExp.Global = True&#8217;设置为全文搜索   <br />
　　objRegExp.Pattern = &#8221;&lt;img.+?&gt;&#8221;  <br />
　　&#8217;为了确保能准确地取出图片地址所以分为两层配置：首先找到里面的&lt;img&gt;标签，然后再取出里面的图片地址后面的getimgs函数就是实现后一个功能的。   <br />
strs=trim(str)   <br />
Set Matches =objRegExp.Execute(strs)&#8217;开始执行配置   <br />
For Each Match in Matches   <br />
RetStr = RetStr &amp;getimgs( Match.Value )&#8217;执行第二轮的匹配   <br />
Next   <br />
ShowPic = RetStr  <br />
End Function  <br />
Function getimgs(str)   <br />
getimgs=&#8221;"   <br />
Set objRegExp1 = New Regexp   <br />
objRegExp1.IgnoreCase = True   <br />
objRegExp1.Global = True   <br />
objRegExp1.Pattern = &#8221;http://.+?&#8221;"&#8221;&#8216;取出里面的地址   <br />
set mm=objRegExp1.Execute(str)   <br />
For Each Match1 in mm   <br />
getimgs=getimgs&amp;left(Match1.Value,len(Match1.Value)-1)&amp;&#8221;||&#8221;&#8216;把里面的地址串起来备用   <br />
next   <br />
End Function   <br />
&#8216;取得图片内容  <br />
function getHTTPPage(url)   <br />
on error resume next   <br />
dim http   <br />
set http=server.createobject(&#8220;MSXML2.XMLHTTP&#8221;)&#8217;使用xmlhttp的方法来获得图片的内容   <br />
Http.open &#8221;GET&#8221;,url,false   <br />
Http.send()   <br />
if Http.readystate&lt;&gt;4 then   <br />
exit function   <br />
end if   <br />
getHTTPPage=Http.responseBody   <br />
set http=nothing   <br />
if err.number&lt;&gt;0 then err.Clear   <br />
end function   <br />
&#8216;保存图片  <br />
function saveimage(from,tofile)   <br />
dim geturl,objStream,imgs   <br />
geturl=trim(from)   <br />
imgs=gethttppage(geturl)&#8217;取得图片的具休内容的过程   <br />
Set objStream = Server.CreateObject(&#8220;ADODB.Stream&#8221;)&#8217;建立ADODB.Stream对象，必须要ADO 2.5以上版本   <br />
objStream.Type =1&#8242;以二进制模式打开   <br />
objStream.Open   <br />
objstream.write imgs&#8217;将字符串内容写入缓冲   <br />
objstream.SaveToFile server.mappath(tofile),2&#8242;-将缓冲的内容写入文件   <br />
objstream.Close()&#8217;关闭对象   <br />
set objstream=nothing   <br />
end function   <br />
&#8216;调用实例  <br />
Dim strpic,i,fname  <br />
strpic = ShowPic(&#8220;&lt;DIV align=center&gt;&lt;IMG src=&#8221;"图片地址&#8221;" border=0&gt;&lt;/DIV&gt;&#8221;)  <br />
strpic = Split(strpic,&#8221;||&#8221;)  <br />
If UBound(strpic) &gt; 0 Then   <br />
For i = 0 To UBound(strpic) - 1  <br />
&#8216;保存图片  <br />
fname=cstr(i&amp;mid(strpic(i),instrrev(strpic(i),&#8221;.&#8221;)))   <br />
saveimage(strpic(i),fname)  <br />
Next  <br />
Else  <br />
End If</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F01%2Fasp-html-pictures.html&title=%E7%94%A8ASP%E5%8F%96%E5%87%BAHTML%E9%87%8C%E9%9D%A2%E7%9A%84%E5%9B%BE%E7%89%87%E5%9C%B0%E5%9D%80%E7%9A%84%E5%87%BD%E6%95%B0" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/01/asp-html-pictures.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Moonlight 2.0紧随Silverlight而来</title>
		<link>http://www.kaixinbc.com/2010/01/moonlight-silverlight.html</link>
		<comments>http://www.kaixinbc.com/2010/01/moonlight-silverlight.html#comments</comments>
		<pubDate>Mon, 25 Jan 2010 15:35:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[moonlight]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=68</guid>
		<description><![CDATA[       Moonlight 2.0版本现在可以从Novell的Mono项目网站上下载了，可用于Firefox插件。这个软件允许WMA文件和内容在Linx下执行，并使用微软的 富互联网Silverligh技术。新的版本，原定几个月彰推出，目前是为了广泛兼容Silverlight 2.0。
        当前微软的RIA产品稳定版本是3.0，但公司已经在他的专业开发者大会上推出了4.0测试版。如果Moonligh开发团队能按全的雄心目标，根 据路线图计划Silverlight 3的Linux实现应该在2010年第三季度推出，届时也将推出Moonlight 4 alpha版本。
        有媒体报导引用了Novell产品开发副总裁Miguel de Icaza，他说在Moonlight 2中将包含一些 Silverlight 3介绍中的功能。例如：模块化媒体管道，Ogg和Dirac编解码器，改进了流媒体功能让用户在视频中前进后退几乎看不到延迟。 3D像素渲染没有实现。
         Moonlight的开发者应用程序需要使用Microsoft的Visual Studio开发环境或MonoDevelop，它的2.2版本昨天刚刚发布。Mono runtime包括了Moonlight 2将允许 C#, Ruby, Python和JavaScript开发者为Moonlight开发应用。
         最后还提到了专约问题，微软承诺不会起诉用户和厂商使用Moonlight中的微软技术，这意味着linux发行版，如Ubuntu或Fedora将可以包括Moonlight发行，而不会受到微软诉讼恐惧。
        微软经常使用承诺一词，以后谁知道会不会发生。
]]></description>
			<content:encoded><![CDATA[<p>       Moonlight 2.0版本现在可以从Novell的Mono项目网站上下载了，可用于Firefox插件。这个软件允许WMA文件和内容在Linx下执行，并使用微软的 富互联网Silverligh技术。新的版本，原定几个月彰推出，目前是为了广泛兼容Silverlight 2.0。</p>
<p>        当前微软的RIA产品稳定版本是3.0，但公司已经在他的专业开发者大会上推出了4.0测试版。如果Moonligh开发团队能按全的雄心目标，根 据路线图计划Silverlight 3的Linux实现应该在2010年第三季度推出，届时也将推出Moonlight 4 alpha版本。</p>
<p>        有媒体报导引用了Novell产品开发副总裁Miguel de Icaza，他说在Moonlight 2中将包含一些 Silverlight 3介绍中的功能。例如：模块化媒体管道，Ogg和Dirac编解码器，改进了流媒体功能让用户在视频中前进后退几乎看不到延迟。 3D像素渲染没有实现。</p>
<p>         Moonlight的开发者应用程序需要使用Microsoft的Visual Studio开发环境或MonoDevelop，它的2.2版本昨天刚刚发布。Mono runtime包括了Moonlight 2将允许 C#, Ruby, Python和JavaScript开发者为Moonlight开发应用。</p>
<p>         最后还提到了专约问题，微软承诺不会起诉用户和厂商使用Moonlight中的微软技术，这意味着linux发行版，如Ubuntu或Fedora将可以包括Moonlight发行，而不会受到微软诉讼恐惧。</p>
<p>        微软经常使用承诺一词，以后谁知道会不会发生。</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F01%2Fmoonlight-silverlight.html&title=Moonlight+2.0%E7%B4%A7%E9%9A%8FSilverlight%E8%80%8C%E6%9D%A5" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/01/moonlight-silverlight.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
