﻿<?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>博客园-难得有一片属于seyon的天</title><link>http://www.cnblogs.com/seyon/</link><description>success.aspx?para1＝"要有决心"+para2="要努力"+para3="要有机会"</description><language>zh-cn</language><lastBuildDate>Tue, 14 Oct 2008 05:16:54 GMT</lastBuildDate><pubDate>Tue, 14 Oct 2008 05:16:54 GMT</pubDate><ttl>60</ttl><item><title>[MSDN]Static，迭代器</title><link>http://www.cnblogs.com/seyon/archive/2008/07/17/1245169.html</link><dc:creator>seyon</dc:creator><author>seyon</author><pubDate>Thu, 17 Jul 2008 06:30:00 GMT</pubDate><guid>http://www.cnblogs.com/seyon/archive/2008/07/17/1245169.html</guid><wfw:comment>http://www.cnblogs.com/seyon/comments/1245169.html</wfw:comment><comments>http://www.cnblogs.com/seyon/archive/2008/07/17/1245169.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/seyon/comments/commentRss/1245169.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/seyon/services/trackbacks/1245169.html</trackback:ping><description><![CDATA[<div class="title">static 修饰符<!----></div>
<!-- Content type: Devdiv1. Transform: orcas2mtps.xslt.
    -->
<div id="mainSection">
<div id="mainBody">
<div class="introduction">
<p><span style="color: red">声明类成员属于类，而不属于类的实例。<br />
<br />
<font face="Verdana"><a href="http://msdn.microsoft.com/zh-cn/library/98f28cdx.aspx">http://msdn.microsoft.com/zh-cn/library/98f28cdx.aspx</a><br />
<br />
<span style="color: #000000">逆序迭代器<br />
<br />
</p>
<div class="cnblogs_code"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Stack1&nbsp;:&nbsp;IEnumerable<br />
<img id="Codehighlighter1_34_230_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_34_230_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_34_230_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_34_230_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_34_230_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_34_230_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_34_230_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_34_230_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_34_230_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_34_230_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_53_70_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_53_70_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_53_70_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_53_70_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_53_70_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_53_70_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_53_70_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_53_70_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;a&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_53_70_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_53_70_Open_Text"><span style="color: #000000">{&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">1</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">2</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">3</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;}</span></span><span style="color: #000000">;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;IEnumerator&nbsp;GetEnumerator()<br />
<img id="Codehighlighter1_116_228_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_116_228_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_116_228_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_116_228_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_116_228_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_116_228_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_116_228_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_116_228_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_116_228_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_116_228_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;a.Length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_169_222_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_169_222_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_169_222_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_169_222_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_169_222_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_169_222_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_169_222_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_169_222_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_169_222_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_169_222_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">yield</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;a[a.Length</span><span style="color: #000000">-</span><span style="color: #800080">1</span><span style="color: #000000">-</span><span style="color: #000000">i];<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Page_Load(</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />
<img id="Codehighlighter1_284_388_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_284_388_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_284_388_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_284_388_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_284_388_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_284_388_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_284_388_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_284_388_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_284_388_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_284_388_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;Stack1&nbsp;stack1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Stack1();<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">foreach</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;b&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;stack1)<br />
<img id="Codehighlighter1_355_386_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_355_386_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_355_386_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_355_386_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_355_386_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_355_386_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_355_386_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_355_386_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_355_386_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_355_386_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(b);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>
</span></font></span></div>
</div>
</div>
<img src ="http://www.cnblogs.com/seyon/aggbug/1245169.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42983/" target="_blank">[新闻]Silverlight对Flash 微软打垮Adobe</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>[转]不用合并模块部署水晶报表</title><link>http://www.cnblogs.com/seyon/archive/2008/05/21/1204051.html</link><dc:creator>seyon</dc:creator><author>seyon</author><pubDate>Wed, 21 May 2008 06:40:00 GMT</pubDate><guid>http://www.cnblogs.com/seyon/archive/2008/05/21/1204051.html</guid><wfw:comment>http://www.cnblogs.com/seyon/comments/1204051.html</wfw:comment><comments>http://www.cnblogs.com/seyon/archive/2008/05/21/1204051.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/seyon/comments/commentRss/1204051.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/seyon/services/trackbacks/1204051.html</trackback:ping><description><![CDATA[原文：<font face="Verdana">http://www.cnblogs.com/interboy/archive/2006/09/21/510450.html</font><br />
前几天用VS2005做了个简单的医务系统的演示程序,B/S模式的,里面用到了水晶报表,说实话,这还是我第一次用水晶报表,看了看帮助就开始做,还算是顺利吧,以为是演示用,要求不太高.做完了就发布,然后就把程序给人家了,结果到了人家那水晶报表那块不能看!他说水晶报表发布的时候需要考几个库,VS发布的时候不能自己把dll文件打包放到里面去，我就把那两个文件（CRDesigner.dll，crvspackage.dll，放在VS安装目录的Crystal Reports文件夹里）给人家考了过去，结果还是不行，后来上网查说需要Crystal Reports 合并模块,从网上down了一个，做一个了安装程序把它装上了也行不通，没办法回来了。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;今天参看以下帮助文件，说合并模块可以到<a href="http://www.businessobjects.com/products/dev_zone/net/2005.asp"><font color="#002c99">http://www.businessobjects.com/products/dev_zone/net/2005.asp</font></a>去下载，地址是假的，转到msdn上了。我想合并模块可能不行了，我就开始找Crystal Reports for .NET Framework 2.0 Windows 安装程序，结果发现VS2005的安装目录里已经有这些东西了，<font color="#0000ff"><font style="background-color: #ffffff">Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages这个文件夹里有好多东西，不光是水晶报表，还有框架，中文包</font>，MDAC2.8</font> 以前不知道部署的时候还得从网上down这些东西，现在不用了！<br />
从CrystalReports里把水晶报表装上就可以了！CRRedist2005_x86.msi/CRREdist2005_x86_chs.msi 这两个文件在MSDN里也有描述，下面是摘自MSDN<br />
"如果添加的合并模块多于方案中指定的数目，可能会引起部署问题。将合并模块文件保存在计算机上的 C:\Program Files\Common Files\Merge Modules "<br />
2005需要的合并模块式CrystalReportsRedist2005_X86.msm这个文件夹里没有！<br />
还好问题解决了！<br />
<br />
2008<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
<p>在安装有vs2008的电脑中，找到以下文件夹：<br />
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports10_5。</p>
<p>将该文件夹下的CRRedist2008_x86.msi，安装到在要部署的机器上即可。</p>
<br />
<img src ="http://www.cnblogs.com/seyon/aggbug/1204051.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42981/" target="_blank">[新闻]IBM扩大研究规模 在上海成立研究院</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>从vs2005升级到vs2008的理由 </title><link>http://www.cnblogs.com/seyon/archive/2008/01/10/1032965.html</link><dc:creator>seyon</dc:creator><author>seyon</author><pubDate>Thu, 10 Jan 2008 01:30:00 GMT</pubDate><guid>http://www.cnblogs.com/seyon/archive/2008/01/10/1032965.html</guid><wfw:comment>http://www.cnblogs.com/seyon/comments/1032965.html</wfw:comment><comments>http://www.cnblogs.com/seyon/archive/2008/01/10/1032965.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/seyon/comments/commentRss/1032965.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/seyon/services/trackbacks/1032965.html</trackback:ping><description><![CDATA[摘要: 作者从性能的角度分析了2005和2008的区别，下面是性能表格：&nbsp;&nbsp;<a href='http://www.cnblogs.com/seyon/archive/2008/01/10/1032965.html'>阅读全文</a><img src ="http://www.cnblogs.com/seyon/aggbug/1032965.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42980/" target="_blank">[新闻]eWeek评Google八大“20%项目”</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>[水晶报表]打开报表失败</title><link>http://www.cnblogs.com/seyon/archive/2008/01/04/1025427.html</link><dc:creator>seyon</dc:creator><author>seyon</author><pubDate>Fri, 04 Jan 2008 01:55:00 GMT</pubDate><guid>http://www.cnblogs.com/seyon/archive/2008/01/04/1025427.html</guid><wfw:comment>http://www.cnblogs.com/seyon/comments/1025427.html</wfw:comment><comments>http://www.cnblogs.com/seyon/archive/2008/01/04/1025427.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/seyon/comments/commentRss/1025427.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/seyon/services/trackbacks/1025427.html</trackback:ping><description><![CDATA[只显示一个信息&#8220;打开报表失败&#8221;<br />
<font face="Courier New">http://www.cnblogs.com/zhangpengshou/archive/2007/12/06/984947.html</font><br />
说明了原因，但在不重启服务器的情况下只重启IIS是无法解决问题<br />
后copy一个带源码的项目到IIS中新建虚拟目录，打开居然没有问题<br />
再打开其他虚拟目录也恢复正常
<img src ="http://www.cnblogs.com/seyon/aggbug/1025427.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42979/" target="_blank">[新闻]微软终于发布Silverlight 2正式版</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>水晶报表检索COM类工厂中CLSID为{11BD5260-15B6-412D-80DB-12BB60B8FE50}的组件时失败解决办法</title><link>http://www.cnblogs.com/seyon/archive/2007/12/18/1004745.html</link><dc:creator>seyon</dc:creator><author>seyon</author><pubDate>Tue, 18 Dec 2007 09:07:00 GMT</pubDate><guid>http://www.cnblogs.com/seyon/archive/2007/12/18/1004745.html</guid><wfw:comment>http://www.cnblogs.com/seyon/comments/1004745.html</wfw:comment><comments>http://www.cnblogs.com/seyon/archive/2007/12/18/1004745.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/seyon/comments/commentRss/1004745.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/seyon/services/trackbacks/1004745.html</trackback:ping><description><![CDATA[<p><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/seyon/CR_80040154.jpg" border="0" /><br />
很奇怪，之前一直正常，客户打电话来说出错，才发现服务器和我本地都存在此问题，其后重新安装项目包才解决，项目包中包含了水晶报表module</p>
<img src ="http://www.cnblogs.com/seyon/aggbug/1004745.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42977/" target="_blank">[新闻]微软首次打破先例 Windows 7不再改名</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>DB2连接方法</title><link>http://www.cnblogs.com/seyon/archive/2007/12/14/994654.html</link><dc:creator>seyon</dc:creator><author>seyon</author><pubDate>Fri, 14 Dec 2007 03:13:00 GMT</pubDate><guid>http://www.cnblogs.com/seyon/archive/2007/12/14/994654.html</guid><wfw:comment>http://www.cnblogs.com/seyon/comments/994654.html</wfw:comment><comments>http://www.cnblogs.com/seyon/archive/2007/12/14/994654.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/seyon/comments/commentRss/994654.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/seyon/services/trackbacks/994654.html</trackback:ping><description><![CDATA[<p><font face="Courier New">DB2数据库连接相对SQL和ORACLE比较麻烦些，分为服务器端和客户端，连接包含以下几个步骤：<br />
1.首先将数据库服务端的数据库映射到客户端（因为使用ODBC的原因）<br />
映射命令如下：<br />
</font></p>
<p><font face="Courier New"></p>
<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"><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">Db2cmd<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />Db2<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />//将远程节点192.168.80.207：50001映射为node207本地节点<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />catalog&nbsp;tcpip&nbsp;node&nbsp;node207&nbsp;remote&nbsp;</span><span style="font-weight: bold; color: #800000">192.168</span><span style="color: #000000">.</span><span style="font-weight: bold; color: #800000">80.207</span><span style="color: #000000">&nbsp;server&nbsp;</span><span style="font-weight: bold; color: #800000">50001</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />//映射数据库zcldb到本地node207节点<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />catalog&nbsp;</span><span style="color: #0000ff">database</span><span style="color: #000000">&nbsp;zcldb&nbsp;at&nbsp;node&nbsp;node207<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span></div>
<p>2.新增ODBC，连接到本地DB2映射数据库<br />
3.应用程序连接ODBC<br />
连接字符串：</p>
<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"><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">add&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="DB2ConnectionString"</span><span style="color: #ff0000">&nbsp;connectionString</span><span style="color: #0000ff">="driver={IBM&nbsp;DB2&nbsp;ODBC&nbsp;DRIVER};DSN=localdbname;UID=user;DBALIAS=localdbname;MODE=SHARE;PWD=password;"</span><span style="color: #ff0000">&nbsp;providerName</span><span style="color: #0000ff">="System.Data.Odbc"</span><span style="color: #0000ff">/&gt;</span></div>
</font>
<img src ="http://www.cnblogs.com/seyon/aggbug/994654.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42976/" target="_blank">[新闻]亚马逊EC2云计算计划支持Windows操作系统</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>[转]WEB Service 下实现大数据量的传输 </title><link>http://www.cnblogs.com/seyon/archive/2007/11/09/954114.html</link><dc:creator>seyon</dc:creator><author>seyon</author><pubDate>Fri, 09 Nov 2007 03:00:00 GMT</pubDate><guid>http://www.cnblogs.com/seyon/archive/2007/11/09/954114.html</guid><wfw:comment>http://www.cnblogs.com/seyon/comments/954114.html</wfw:comment><comments>http://www.cnblogs.com/seyon/archive/2007/11/09/954114.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/seyon/comments/commentRss/954114.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/seyon/services/trackbacks/954114.html</trackback:ping><description><![CDATA[摘要: Vs2005里面的,查询12000条记录,设置RemotingFormat= SerializationFormat.Binary;再序列化,通过WebService传输,客户端接收,再反序列化,确实效果大大的优于直接传送DataSet,不仅网络传输中如此,即使本机,性能改善也非常明显.下面分别是WebService里面的方法和客户端反序列化取DataSet的方法.1. 服务器上面取数据,填充数据&nbsp;&nbsp;<a href='http://www.cnblogs.com/seyon/archive/2007/11/09/954114.html'>阅读全文</a><img src ="http://www.cnblogs.com/seyon/aggbug/954114.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42975/" target="_blank">[新闻]鲍尔默失望变希望 幸亏当初未收购雅虎</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>RegisterStartupScript和RegisterClientScriptBlock输出位置的区别</title><link>http://www.cnblogs.com/seyon/archive/2007/11/05/949960.html</link><dc:creator>seyon</dc:creator><author>seyon</author><pubDate>Mon, 05 Nov 2007 08:16:00 GMT</pubDate><guid>http://www.cnblogs.com/seyon/archive/2007/11/05/949960.html</guid><wfw:comment>http://www.cnblogs.com/seyon/comments/949960.html</wfw:comment><comments>http://www.cnblogs.com/seyon/archive/2007/11/05/949960.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/seyon/comments/commentRss/949960.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/seyon/services/trackbacks/949960.html</trackback:ping><description><![CDATA[<font face="Courier New"><font face="Courier New">
<div class="tit">&nbsp;</div>
<p>
<table style="table-layout: fixed">
    <tbody>
        <tr>
            <td>
            <div class="cnt">
            <p><span>Page.Response.Write("&lt;script&gt;var response;&lt;/script&gt;");&nbsp;&nbsp;&nbsp;&nbsp;</span></p>
            <p><span>Page.RegisterStartupScript("RegisterStartupScript","&lt;script&gt;var RegisterStartupScript;&lt;/script&gt;");&nbsp;&nbsp;&nbsp;&nbsp;</span></p>
            <p><span>Page.RegisterClientScriptBlock("RegisterClientScriptBlock","&lt;script&gt;var RegisterClientScriptBlock;&lt;/script&gt;");&nbsp;&nbsp;&nbsp;</span></p>
            <p><span>Response.Write输出后的位置在源文件的第一行. </span></p>
            <p><span>RegisterClientScriptBlock输出后的位置会在&lt;form&gt;的下一行.(在asp.net自带的脚本和一些隐藏域之下). </span></p>
            <p><span><span>RegisterStartupScript</span>输出后的位置会在&lt;/form&gt;的上一行.</span></p>
            <p><span>RegisterClientScriptBlock的原型与RegisterStartupScript相同,两个函数不同在于将其包含的脚本代码写入到HTML文件的不同位置.RegisterClientScriptBlock在 Page 对象的 元素的开始标记后立即发出客户端脚本,RegisterStartupScript则是在Page 对象的 元素的结束标记之前发出该脚本。如果你的脚本有与页面对象(doucument对象)进行交互的语句,则推荐使用RegisterStartupScript,反之如果要想客户端脚本尽可能早的执行，则可以使用RegisterClientScriptBlock或Response.Write。</span></p>
            <span>
            <p>RegisterClientScriptBlock一般返回的是客户端函数的包装，而RegisterStartupScript返回得函数在document装载完成后会执行，类似于我们平时所说的body onload="f()"里面的函数；这两个方法在客户端呈现的代码位置不同，RegisterClientScriptBlock在&lt;form runat=server&gt;之后，而RegisterStartupScript在&lt;/form&gt;之前。</p>
            <p>补充例子：<br />
            ....<br />
            &lt;/HEAD&gt;<br />
            &lt;body MS_POSITIONING="GridLayout"&gt;<br />
            &lt;form name="Form1" method="post" action="WebForm6.aspx" id="Form1"&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type="hidden" name="__VIEWSTATE" value="dDw3MzU1MTQ5MzY7Oz6nugrEg+5T6RC7MTIuLoIrMLQLPw==" /&gt;<br />
            &lt;script&gt;function block(){}&lt;/script&gt;&nbsp;&nbsp;&nbsp; ------------&gt;RegisterClientScriptBlock()方法输出的在这里<br />
            <br />
            <br />
            &lt;input name="TextBox1" type="text" id="TextBox1" style="Z-INDEX: 101; LEFT: 296px; POSITION: absolute; TOP: 120px" /&gt;<br />
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script&gt;function startup(){}&lt;/script&gt; ------------&gt;RegisterStartupScript()方法输出的在这里<br />
            <br />
            &lt;/form&gt;<br />
            &lt;/body&gt;<br />
            &lt;/HTML&gt; </p>
            </span></div>
            </td>
        </tr>
    </tbody>
</table>
</font></font></p>
<img src ="http://www.cnblogs.com/seyon/aggbug/949960.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42974/" target="_blank">[新闻]微软12月举办硬件工程大会 Windows7将首次亮相</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>【转】SOA技术综览</title><link>http://www.cnblogs.com/seyon/archive/2007/11/02/946894.html</link><dc:creator>seyon</dc:creator><author>seyon</author><pubDate>Fri, 02 Nov 2007 05:58:00 GMT</pubDate><guid>http://www.cnblogs.com/seyon/archive/2007/11/02/946894.html</guid><wfw:comment>http://www.cnblogs.com/seyon/comments/946894.html</wfw:comment><comments>http://www.cnblogs.com/seyon/archive/2007/11/02/946894.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/seyon/comments/commentRss/946894.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/seyon/services/trackbacks/946894.html</trackback:ping><description><![CDATA[<p>来源：<font face="Courier New">http://www.cnblogs.com/meil/archive/2007/05/02/734326.html</font><br />
</p>
<div class="postcontent">
<p><strong>什么是SOA?</strong></p>
<p>SOA是一种架构模型，它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础，可以直接被应用调用，从而有效控制系统中与软件代理交互的人为依赖性。</p>
<p>SOA的关键是&#8220;服务&#8221;的概念，W3C将服务定义为：&#8220;服务提供者完成一组工作，为服务使用者交付所需的最终结果。最终结果通常会使使用者的状态发生变化，但也可能使提供者的状态改变，或者双方都产生变化&#8221;。</p>
<p>Service-architecture.com将SOA定义为：&#8220;本质上是服务的集合。服务间彼此通信，这种通信可能是简单的数据传送，也可能是两个或更多的服务协调进行某些活动。服务间需要某些方法进行连接。所谓服务就是精确定义、封装完善、独立于其他服务所处环境和状态的函数。&#8221;<br />
<br />
Looselycoupled.com将SOA定义为：&#8220;按需连接资源的系统。在SOA中，资源被作为可通过标准方式访问的独立服务，提供给网络中的其他成员。与传统的系统结构相比，SOA规定了资源间更为灵活的松散耦合关系。&#8221;</p>
<p>Gartner则将SOA描述为：&#8220;客户端/服务器的软件设计方法，一项应用由软件服务和软件服务使用者组成&#8230;&#8230;SOA与大多数通用的客户端/服务器模型的不同之处，在于它着重强调软件组件的松散耦合，并使用独立的标准接口。&#8221;</p>
<p>Gartner相信BPM和SOA的结合对所有类型的应用集成都大有助益??&#8220;SOA极大的得益于BPM技术和方法论，但是SOA面临的真正问题是确立正确的企业意识，即：强化战略化的SOA计划（针对供应和使用）并鼓励重用。&#8221;</p>
<p>虽然不同厂商或个人对SOA有着不同的理解，但是我们仍然可以从上述的定义中看到SOA的几个关键特性：一种粗粒度、松耦合服务架构，服务之间通过简单、精确定义接口进行通讯，不涉及底层编程接口和通讯模型。<br />
<br />
需着重注意的是，SOA并不是新生事物??大型IT组织成功构建和部署SOA应用已有多年的历史??这要比现有的XML和Web服务长很多。IBM&nbsp;CICS和BEA&nbsp;TUXEDO就是过去被用于构建SOA应用的两种技术范例。</p>
<p>重点说明的是SOA并不是一种现成的技术，而是一种架构和组织IT基础结构及业务功能的方法。SOA是一种在计算环境中设计、开发、部署和管理离散逻辑单元（服务）的模型。这一定义阐明了SOA的范围。</p>
<p>SOA要求开发人员将应用设计为服务的集合。SOA要求开发人员跳出应用本身进行思考，考虑现有服务的重用，或思索他们的服务如何能够被其他项目重用。&#8220;单独的&#8221;、&#8220;独立的&#8221;、&#8220;封装完善的&#8221;服务所具有的一个关键的好处是，可以采用多种不同方法将它们组合成较大型的服务，由此来实现重用。</p>
<p>但是，SOA并不仅仅是一种开发方法??它还具有管理上的优点。例如，现在管理员可直接管理开发人员所构建的相同服务，这远胜于以往管理单个应用的方式。通过分析服务间的交互，SOA可以帮助企业了解何时以及为什么业务逻辑被切实执行了，这使管理员或分析师能够有针对性的优化业务流程。<br />
<br />
<strong>SOA的基本特征</strong></p>
<p>SOA的实施具有几个鲜明的基本特征。实施SOA的关键目标是实现企业IT资产的最大化重用。要实现这一目标，就要在实施SOA的过程中牢记以下特征：<br />
<br />
<strong>1&nbsp;&nbsp;可从企业外部访问</strong></p>
<p>通常被称为业务伙伴的外部用户也能像企业内部用户一样访问相同的服务。业务伙伴采用先进的B2B协议（ebXML或RosettaNet）相互合作。当业务伙伴基于业务目的交换业务信息时，他们就参与了一次会话。会话是业务伙伴间一系列的一条或多条业务信息的交换。会话类型（会话复杂或简单、长或短等）取决于业务目的。<br />
<br />
除了B2B协议外，外部用户还可以访问以Web服务方式提供的企业服务。<br />
<br />
<strong>2&nbsp;随时可用</strong></p>
<p>当有服务使用者请求服务时，SOA要求必须有服务提供者能够响应。大多数SOA都能够为门户应用之类的同步应用和B2B之类的异步应用提供服务。同步应用对于其所使用的服务具有很强的依赖性。<br />
<br />
许多同步应用通常部署在前台，其最终用户很容易受到服务提供者短缺的影响。很多情况下，同步应用利用分布式服务提供者，这样可以响应更多的用户请求。但是，随着提供特定服务功能的服务器数量的增长，出现短缺的可能性也呈指数级上升。<br />
<br />
相比之下，异步应用要更为稳健，因为其采用队列请求设计，因此可以容许出现服务提供者短缺或迟滞的情况。异步应用大多数情况下部署在后台，用户通常不会觉察到短暂的短缺。大部分情况下异步应用能够稳健应对短时间短缺，但是长时间短缺则会引发严重问题。在服务短缺解决、队列引擎将罕见的大量工作推到共享的应用资源中时，可能会出现队列溢出甚至服务死锁。<br />
<br />
服务使用者要求提供同步服务时，通常是基于其自身理解或使用习惯。在多数情况下，采用异步模型可以达到同样的效果，但更能够体现SOA的最佳特性。<br />
<br />
当然，并不是所有情况下都应当采用异步设计模式。但大多数情况下，异步消息可以确保系统在不同负荷下的伸缩性，在接口响应时间不是很短时尤其如此。<br />
<br />
<strong>3&nbsp;&nbsp;粗粒度服务接口</strong></p>
<p>粗粒度服务提供一项特定的业务功能，而细粒度服务代表了技术组件方法。举个例说明最为清楚??向计费系统中添加一个客户是典型的粗粒度服务，而你可以使用几个细粒度服务实现同一功能，如：将客户名加入到计费系统中，添加详细的客户联系方式、添加计费信息等等。<br />
<br />
采用粗粒度服务接口的优点在于使用者和服务层之间不必再进行多次的往复，一次往复就足够。Internet环境中有保障的TCP/IP会话已不再占据主导、建立连接的成本也过高，因此在该环境中进行应用开发时粗粒度服务接口的优点更为明显。<br />
<br />
除去基本的往复效率，事务稳定性问题也很重要。在一个单独事务中包含的多段细粒度请求可能使事务处理时间过长、导致后台服务超时，从而中止。与此相反，从事务的角度来看，向后台服务请求大块数据可能是获取反馈的唯一途径。<br />
<br />
<strong>4&nbsp;分级</strong></p>
<p>一个关于粗粒度服务的争论是此类服务比细粒度服务的重用性差，因为粗粒度服务倾向于解决专门的业务问题，因此通用性差、重用性设计困难。解决该争论的方法之一就是允许采用不同的粗粒度等级来创建服务。这种服务分级包含了粒度较细、重用性较高的服务，也包含粒度较粗、重用性较差的服务。<br />
<br />
在服务分级方面，须注意服务层的公开服务通常由后台系统（BES's）或SOA平台中现有的本地服务组成。因此允许在服务层创建私有服务是非常重要的。正确的文档、配置管理和私有服务的重用对于IT部门在SOA服务层快速开发新的公开服务的能力具有重要影响。<br />
<br />
<strong>5&nbsp;&nbsp;松散耦合</strong></p>
<p>SOA具有&#8220;松散耦合&#8221;组件服务，这一点区别于大多数其他的组件架构。该方法旨在将服务使用者和服务提供者在服务实现和客户如何使用服务方面隔离开来。<br />
<br />
服务提供者和服务使用者间松散耦合背后的关键点是服务接口作为与服务实现分离的实体而存在。这是服务实现能够在完全不影响服务使用者的情况下进行修改。<br />
<br />
大多数松散耦合方法都依靠基于服务接口的消息。基于消息的接口能够兼容多种传输方式（如HTTP、JMS、TCP/IP、MOM等）。基于消息的接口可以采用同步和异步协议实现，Web服务对于SOA服务接口来讲是一个重要的标准。<br />
<br />
当使用者调用一个Web服务时，被调用的对象可以是CICS事务、DCOM或CORBA对象、J2EE&nbsp;EJB或TUXEDO服务等，但这与服务使用者无关。底层实现并不重要。<br />
<br />
消息类Web服务通常是松散耦合和文档驱动的，这要优于与服务特定接口的连接。当客户调用消息类Web服务时，客户通常会发送的是一个完整的文档（如采购订单），而非一组离散的参数。Web服务接收整个文档、进行处理、而后可能或者不会返回结果信息。由于客户和Web服务间不存在紧密耦合请求响应，消息类Web服务在客户和服务器间提供了更为松散的耦合。<br />
<br />
<span class="top11"><strong>6&nbsp;&nbsp;可重用的服务及服务接口设计管理</strong> </p>
<p>&nbsp;</p>
<p>如果完全按照可重用的原则设计服务，SOA将可以使应用变得更为灵活。可重用服务采用通用格式提供重要的业务功能，为开发人员节约了大量时间。设计可重用服务是与数据库设计或通用数据建模类似的最有价值的工作。由于服务设计是成功的关键因此，因此SOA实施者应当寻找一种适当的方法进行服务设计过程管理。<br />
<br />
服务设计管理根本上讲是服务设计问题，服务设计需要在两点间折衷??走捷径的项目战术与企业构建可重用通用服务的长期目标。<br />
<br />
超越项目短期目标进行服务接口的开发和评估是迈向精确定义服务接口的重要一步，同时还需要为接口文档、服务实现文档及所有重要的非功能性特征设立标准。<br />
<br />
在大型组织中实现重用的一个先决条件是建立通用（设计阶段）服务库和开发流程，以保证重用的正确性和通用性。此外，对记述服务设计和开发的服务文档进行评估也是成功利用服务库的关键。<br />
<br />
简言之，不按规则编写服务将无法保证可提供重用性的SOA的成功实施。在执行规则的过程中会产生财务费用，需要在制定SOA实施计划时加以考虑。<br />
<br />
<strong>7&nbsp;&nbsp;标准化的接口</strong></p>
<p>近年来出现的两个重要标准XML和Web服务增加了全新的重要功能，将SOA推向更高的层面，并大大提升了SOA的价值。尽管以往的SOA产品都是专有的、并且要求IT部门在其特定环境中开发所有应用，但XML和Web服务标准化的开放性使企业能够在所部署的所有技术和应用中采用SOA。这具有巨大的意义！<br />
<br />
Web服务使应用功能得以通过标准化接口（WSDL）提供，并可基于标准化传输方式（HTTP和JMS）、采用标准化协议（SOAP）进行调用。例如，开发人员可以采用最适于门户开发的工具轻松创建一个新的门户应用，并可以重用ERP系统和定制化J2EE应用中的现有服务，而完全无须了解这些应用的内部工作原理。采用XML，门户开发人员无须了解特定的数据表示格式，便能够在这些应用间轻松地交换数据。<br />
<br />
你也可以不采用Web服务或XML来创建SOA应用，但是这两种标准的重要性日益增加、应用日趋普遍。尽管目前只有几种服务使用者支持该标准，但未来大多数的服务使用者都会将其作为企业的服务访问方法。<br />
<br />
<strong>8&nbsp;&nbsp;支持各种消息模式</strong></p>
<p>SOA中可能存在以下消息模式。在一个SOA实现中，常会出现混合采用不同消息模式的服务。<br />
<br />
q&nbsp;无状态的消息。使用者向提供者发送的每条消息都必须包含提供者处理该消息所需的全部信息。这一限定使服务提供者无须存储使用者的状态信息，从而更易扩展。<br />
<br />
q&nbsp;有状态的消息。使用者与提供者共享使用者的特定环境信息，此信息包含在提供者和使用者交换的消息中。这一限定使提供者与使用者间的通信更加灵活，但由于服务提供者必须存储每个使用者的共享环境信息，因此其整体可扩展性明显减弱。该限定增强了服务提供者和使用者的耦合关系，提高了交换服务提供者的服务难度。<br />
<br />
q&nbsp;等幂消息。向软件代理发送多次重复消息的效果和发送单条消息相同。这一限定使提供者和消费者能够在出现故障时简单的复制消息，从而改进服务可靠性。<br />
<br />
<strong>9&nbsp;&nbsp;精确定义的服务接口</strong></p>
<p>服务是由提供者和使用者间的契约定义的。契约规定了服务使用方法及使用者期望的最终结果。此外，还可以在其中规定服务质量。此处需要注意的关键点是，服务契约必须进行精确定义。<br />
<br />
META将SOA定义为：&#8220;一种以通用为目的、可扩展、具有联合协作性的架构，所有流程都被定义为服务，服务通过基于类封装的服务接口委托给服务提供者，服务接口根据可扩展标识符、格式和协议单独描述。&#8221;该定义的最后部分表明在服务接口和其实现之间有明确的分界。<br />
<br />
<strong>SOA的优点</strong></p>
<p>了解了SOA的定义和基本特征，最后我们再来看看SOA潜在的优点：</p>
<p>编码灵活性</p>
<p>可基于模块化的低层服务、采用不同组合方式创建高层服务，从而实现重用，这些都体现了编码的灵活性。此外，由于服务使用者不直接访问服务提供者，这种服务实现方式本身也可以灵活使用。</p>
<p>明确开发人员角色&nbsp;&nbsp;</p>
<p>例如，熟悉BES的开发人员可以集中精力在重用访问层，协调层开发人员则无须特别了解BES的实现，而将精力放在解决高价值的业务问题上。</p>
<p>支持多种客户类型</p>
<p>借助精确定义的服务接口和对XML、Web服务标准的支持，可以支持多种客户类型，包括PDA、手机等新型访问渠道。</p>
<p>更易维护</p>
<p>服务提供者和服务使用者的松散耦合关系及对开放标准的采用确保了该特性的实现。<br />
<br />
更好的伸缩性</p>
<p>依靠服务设计、开发和部署所采用的架构模型实现伸缩性。服务提供者可以彼此独立调整，以满足服务需求。</p>
<p>更高的可用性</p>
<p>该特性在服务提供者和服务使用者的松散耦合关系上得以体现。使用者无须了解提供者的实现细节，这样服务提供者就可以在WebLogic集群环境中灵活部署，使用者可以被转接到可用的例程上。</p>
<p>SOA可以看作是B/S模型、XML/Web&nbsp;Service技术之后的自然延伸。SOA将能够帮助我们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式，它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。较之以往，以SOA架构的系统能够更加从容地面对业务的急剧变化。</span></p>
</div>
<img src ="http://www.cnblogs.com/seyon/aggbug/946894.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42973/" target="_blank">[新闻]电脑程序与12位真人聊天 “艾尔博特”骗过3人</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>【SQL2005 ReportingService特性与应用】笔记</title><link>http://www.cnblogs.com/seyon/archive/2007/10/28/940656.html</link><dc:creator>seyon</dc:creator><author>seyon</author><pubDate>Sun, 28 Oct 2007 13:31:00 GMT</pubDate><guid>http://www.cnblogs.com/seyon/archive/2007/10/28/940656.html</guid><wfw:comment>http://www.cnblogs.com/seyon/comments/940656.html</wfw:comment><comments>http://www.cnblogs.com/seyon/archive/2007/10/28/940656.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/seyon/comments/commentRss/940656.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/seyon/services/trackbacks/940656.html</trackback:ping><description><![CDATA[讲解了<font face="Courier New">ReportingService的基础知识，<font face="Courier New">ReportingService</font>集成于SQL2005之一部分，能与VS2005紧密结合<br />
<font face="Courier New"><br />
ReportingService可以采用自带的Report Builder设计简单的报表，改设计器秉承了Microsoft的路线：让更多的人能够参与设计；所以该设计器在定义好数据源后只需拖拖摆摆，并做一些设置就能做出多维报表，图标，普通报表，钻取等。<br />
该设计器还能够通过windows集成验证设置报表角色访问权限，做出的报表支持bs，cs程序以及office程序；<br />
<br />
调用报表设计器只需输入<a href="http://localhost/Reports">http://localhost/Reports</a>(如果只装有SQL2005)<br />
<a href="http://localhost/Reports">http://localhost/Reports$SQL2005</a>(同时装有SQL2000和SQL2005)<br />
访问到<br />
<br />
当然可以通过VS2005新建ReportService项目来设计报表，对比使用Builder则更加随心所欲，能设计出更复杂的报表；<br />
<br />
还有个优点是支持多参数<br />
<br />
和水晶报表对比，应该是各有所长，毕竟水晶报表设置更为多样化，其专业版应能完成其上任务，不过在多维数据的抓取方面不知道有没有<font face="Courier New">ReportingService</font>方便</font></font>
<img src ="http://www.cnblogs.com/seyon/aggbug/940656.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42971/" target="_blank">[新闻]Mozilla发布网页开发工具实验室</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item></channel></rss>