<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>博客堂</title><link>http://blog.joycode.com/MainFeed.aspx</link><description>开心编码，开心生活</description><generator>Joycode Version 1.0.0.0</generator><image url="/images/logo.gif" link="http://blog.joycode.com/MainFeed.aspx" title="博客堂" /><item><title>erl 中的分布式</title><link>http://blog.joycode.com/anrs/archive/2008/08/20/115231.aspx</link><pubDate>Wed, 20 Aug 2008 01:03:11 GMT</pubDate><guid isPermaLink="true">http://blog.joycode.com/anrs/archive/2008/08/20/115231.aspx</guid><wfw:comment>http://blog.joycode.com/anrs/comments/115231.aspx</wfw:comment><wfw:commentRss>http://blog.joycode.com/anrs/comments/commentRss/115231.aspx</wfw:commentRss><comments>http://blog.joycode.com/anrs/archive/2008/08/20/115231.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blog.joycode.com/anrs/services/trackbacks/115231.aspx</trackback:ping><source url="http://blog.joycode.com/anrs/rss.aspx">erl 中的分布式</source><description>分布式 Erlang 系统的实现提供了一个基本的安全策略以拒绝来自另一台机器的未授权的访问。两个不同的 erl 实例要实现交互，那他们必须拥有相同的 magic cookie。要创建 magic cookie 最简单的方法是在需要交互的两个 erl 实例的操作系统家目录中各自创建名为 .erlang.cookie 的文本文件。（Windows 系统的家目录由 $HOME 环境变量设定，Linux 系统的家目录则是在命令行中输入不带参数的 cd 命令后进入的那个目录）两个 erl 实例要实现交互，那么他们的 .erlang.cookie 文件内容必须是一行相同的 atom。在 Linux 中的话，还必须给 .erlang.cookie 文件设置相应的权限(400)才可以。&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;除了 magic cookie 外，要实现交互的 erl 实例还需要被设置唯一的名字，以区别开彼此。这个要求可以用 erl -sname NAME 命令行实现。在同一台机器上运行的多个 erl 实例也可以被赋予不同的名字，这样 erl 实例们就能区别开彼此，就可以在同一台机器上模拟分布式 erl 程序的运行了。  下面是来自 GSWE 的代码，但它已经足够清楚的演示了 erl 分布式的一些主要的枝节。&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;0. 代码&lt;br /&gt;
&amp;nbsp;&lt;a href="http://picasaweb.google.com/anders.x.hu/Blog/photo#5236356104734637202" title="点击看大图"&gt;&lt;img alt="点击看大图" src="http://lh5.ggpht.com/anders.x.hu/SKtGIkQn_JI/AAAAAAAAAM4/Yzq4VRQm23g/s400/pingpong.png" /&gt;&lt;/a&gt;  &lt;br /&gt;
&lt;br /&gt;
1. 在一个命令行终端中注册名为 pong 的 erl 实例（GSWE 中称之为 erl 节点），并启动 start_pong 函数等待消息。可以看到 start_pong 函数启动后只是简单的返回了 true，之后你可以继续在这个 erl 实例中做其他事情（我打印了几个字符以把稍后可能接到的消息分隔开来）。&lt;br /&gt;
&amp;nbsp;&lt;a href="http://picasaweb.google.com/anders.x.hu/Blog/photo#5236356109628792834" title="点击看大图"&gt;&lt;img alt="点击看大图" src="http://lh5.ggpht.com/anders.x.hu/SKtGI2fe4AI/AAAAAAAAANI/bwg8dQZhjsQ/s400/pong1.png" /&gt;&lt;/a&gt;  &lt;br /&gt;
&lt;br /&gt;
2. 在另一个终端中注册 ping 实例（我在同一台机器上模拟分布式），并启动 start_ping 函数，入参为刚刚注册的 pong 实例名和机器名（erl 无法识别带 - 字符的机器名，而 ubuntu8.04 的默认机器名是带有 -desktop 后缀的，所以需要先修改机器名，不然此处会报一个错误提示）。&lt;br /&gt;
&amp;nbsp;&lt;a href="http://picasaweb.google.com/anders.x.hu/Blog/photo#5236356110531759538" title="点击看大图"&gt;&lt;img alt="点击看大图" src="http://lh4.ggpht.com/anders.x.hu/SKtGI52xDbI/AAAAAAAAANA/YkiNsWCkqxI/s400/ping.png" /&gt;&lt;/a&gt;  &lt;br /&gt;
&lt;br /&gt;
3. 切换回 pong 实例所在的终端，看到接收的从 ping 实例传来的异步消息已经被打印出来了。  &lt;br /&gt;
&lt;a href="http://picasaweb.google.com/anders.x.hu/Blog/photo#5236356110453220674" title="点击看大图"&gt;&lt;img alt="点击看大图" src="http://lh5.ggpht.com/anders.x.hu/SKtGI5kCpUI/AAAAAAAAANQ/5htK-X1m0Pk/s400/pong2.png" /&gt;&lt;/a&gt;&lt;img src="http://blog.joycode.com/anrs/aggbug/115231.aspx" width="1" height="1" /&gt;</description><dc:creator>Anrs</dc:creator></item><item><title>CodePlex庆祝2周岁生日</title><link>http://blog.joycode.com/soma/archive/2008/08/19/115230.aspx</link><pubDate>Tue, 19 Aug 2008 06:50:15 GMT</pubDate><guid isPermaLink="true">http://blog.joycode.com/soma/archive/2008/08/19/115230.aspx</guid><wfw:comment>http://blog.joycode.com/soma/comments/115230.aspx</wfw:comment><wfw:commentRss>http://blog.joycode.com/soma/comments/commentRss/115230.aspx</wfw:commentRss><comments>http://blog.joycode.com/soma/archive/2008/08/19/115230.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blog.joycode.com/soma/services/trackbacks/115230.aspx</trackback:ping><source url="http://blog.joycode.com/soma/rss.aspx">CodePlex庆祝2周岁生日</source><description>&lt;p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt"&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;原文地址：&lt;a id="bp___v___r___postlist___EntryItems_ctl03_PostTitle" href="http://blogs.msdn.com/somasegar/archive/2008/08/06/codeplex-celebrates-its-2nd-birthday.aspx"&gt;&lt;strong&gt;CodePlex celebrates its 2nd birthday!&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt"&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt"&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;原文发表时间：&lt;a id="bp___v___r___postlist___EntryItems_ctl03_PermaLink" href="http://blogs.msdn.com/somasegar/archive/2008/08/06/codeplex-celebrates-its-2nd-birthday.aspx"&gt;&lt;strong&gt;Wednesday, August 06, 2008 9:31 PM&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt"&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;虽然发布时的情景还列列在目，离我们发布&lt;/span&gt;&lt;a href="http://www.codeplex.com/"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;CodePlex&lt;/span&gt;&lt;/a&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;已经是&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;2&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;年了。我们在&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;2006&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;年的夏天开始启动&lt;/span&gt;&lt;a href="http://www.codeplex.com/"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;CodePlex&lt;/span&gt;&lt;/a&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;作为我们的开源的服务站点。我们的目标始终如一，将继续为开发者提供在开源项目合作中他们所最熟悉的工具。&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt"&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;自从&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;CodePlex&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;站点启动以来，它一直在稳定地成长。最近，跨过了两个主要的里程碑：第一，每个月有一百万用户访问该网站。第二，已经拥有了五千个开源项目。&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;CodePlex&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;项目吸引了很多的读者，并且包括了&lt;/span&gt;&lt;a href="http://www.codeplex.com/AjaxControlToolkit"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;AJAX Control Toolkit&lt;/span&gt;&lt;/a&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;，&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;a href="http://www.codeplex.com/Rawr"&gt;Rawr&lt;/a&gt;&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;（一个&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;.NET&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;的工具用来开发星球大战），以及&lt;/span&gt;&lt;a href="http://www.codeplex.com/IronPython"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;IronPython&lt;/span&gt;&lt;/a&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;项目等。&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt"&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;让我们对该网站所用的技术一瞥，&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;CodePlex&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;是在&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;Team Foundation Server&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;上建立起来的。具体来说，是七台&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;TFS&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;服务器上一共有&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;5&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;，&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;600&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;个项目，配以&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;12&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;，&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;000&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;个项目的开发人员以及有&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;120&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;，&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;000&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;人次的&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;code check-in.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt"&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;开源开发者可以免费使用&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;Visual Studio Team Explorer &lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;客户端，跟&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;CodePlex&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;交互来获得完全集成的开发体验。&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;CodePlex&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;同时支持很多其他的源代码管理客户端，比如&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;TortoiseSVN&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;和&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;TeamPrise&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;，给用户提供了更加灵活的跨平台使用方式。&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-theme-font: minor-fareast; mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN; mso-ansi-language: EN-US; mso-bidi-language: AR-SA"&gt;CodePlex&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-ansi-language: EN-US; mso-bidi-language: AR-SA"&gt;成长的关键在于&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-theme-font: minor-fareast; mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN; mso-ansi-language: EN-US; mso-bidi-language: AR-SA"&gt;CodePlex&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-ansi-language: EN-US; mso-bidi-language: AR-SA"&gt;团队的以客户为本的指导思想。我们基于现场的客户投票结果，来决定开发哪些新功能。比如，上周的发布诸如&lt;/span&gt;&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-theme-font: minor-fareast; mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN; mso-ansi-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;a href="http://blogs.msdn.com/codeplex/archive/2008/03/13/introducing-the-codeplex-projects-stats-pages-10-march-2008-deployment.aspx"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Project Stats&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-ansi-language: EN-US; mso-bidi-language: AR-SA"&gt;，&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-theme-font: minor-fareast; mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN; mso-ansi-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;a href="http://blogs.msdn.com/codeplex/archive/2008/06/10/introducing-code-syntax-highlighting-support-for-browsing-9-june-2008-deployment.aspx"&gt;Code Syntax Highlighting&lt;/a&gt;&lt;span style="COLOR: black"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-ansi-language: EN-US; mso-bidi-language: AR-SA"&gt;以及&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-theme-font: minor-fareast; mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN; mso-ansi-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;a href="http://blogs.msdn.com/codeplex/archive/2008/08/01/ratings-and-reviews-for-codeplex-projects.aspx"&gt;Rating and Reviews&lt;/a&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-theme-font: minor-fareast; mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN; mso-ansi-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;a href="http://blogs.msdn.com/codeplex/archive/2008/08/01/ratings-and-reviews-for-codeplex-projects.aspx"&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-ansi-language: EN-US; mso-bidi-language: AR-SA"&gt;等新功能。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-ansi-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-ansi-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;img style="WIDTH: 468px; HEIGHT: 225px" height="225" width="468" mce_src="http://somasegar.members.winisp.net/images/blog_images/2008_08_06_CodePlex/CodePlex1.jpg" alt="" src="http://somasegar.members.winisp.net/images/blog_images/2008_08_06_CodePlex/CodePlex1.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt"&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;在&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;a href="http://blogs.msdn.com/codeplex/archive/2008/06/10/introducing-code-syntax-highlighting-support-for-browsing-9-june-2008-deployment.aspx"&gt;CodePlex team blog&lt;/a&gt;&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;上，可以找到更多有关&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;CodePlex&lt;/span&gt;&lt;span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 宋体"&gt;的最新情况。&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Namaste!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blog.joycode.com/soma/aggbug/115230.aspx" width="1" height="1" /&gt;</description><dc:creator>soma</dc:creator></item><item><title>新的博客，Web开发者的技巧与诀窍</title><link>http://blog.joycode.com/brada/archive/2008/08/19/115229.aspx</link><pubDate>Tue, 19 Aug 2008 06:32:35 GMT</pubDate><guid isPermaLink="true">http://blog.joycode.com/brada/archive/2008/08/19/115229.aspx</guid><wfw:comment>http://blog.joycode.com/brada/comments/115229.aspx</wfw:comment><wfw:commentRss>http://blog.joycode.com/brada/comments/commentRss/115229.aspx</wfw:commentRss><comments>http://blog.joycode.com/brada/archive/2008/08/19/115229.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blog.joycode.com/brada/services/trackbacks/115229.aspx</trackback:ping><source url="http://blog.joycode.com/brada/rss.aspx">新的博客，Web开发者的技巧与诀窍</source><description>&lt;p&gt;【原文地址】&lt;a href="http://blogs.msdn.com/brada/archive/2008/08/08/new-web-developer-tips-and-tricks-blog.aspx"&gt;New Web Developer Tips and Tricks Blog&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;【原文发表日期】&lt;a href="http://blogs.msdn.com/brada/archive/2008/08/08/new-web-developer-tips-and-tricks-blog.aspx"&gt;08 August 08 07:47&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;我们最近开张了一个非常酷的&lt;a href="http://blogs.msdn.com/webdevelopertips/"&gt;面向Web开发者的“技巧与诀窍”博客系列&lt;/a&gt;。目标是在格式上能够贴近&lt;a href="http://blogs.msdn.com/SaraFord/"&gt;Sara Ford那个成功的“技巧与诀窍”&lt;/a&gt;系列。&lt;/p&gt;  &lt;p&gt;我们有了一个非常好的开头！&lt;/p&gt;  &lt;div style="padding-left: 20px"&gt;   &lt;p&gt;&lt;a href="http://blogs.msdn.com/webdevelopertips/archive/2008/07/23/web-tools-tip-1-powerful-css-tools-to-create-manage-and-apply-styles.aspx"&gt;你知道吗……技巧1 - 创建、管理与应用样式（Style）的强大CSS工具&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.msdn.com/webdevelopertips/archive/2008/07/29/did-you-know-the-style-application-toolbar-works-in-both-auto-and-manual-modes-tip-2.aspx"&gt;技巧2 你知道吗……样式应用（Style Application）工具栏能够在自动（Auto）与手动（Manual）两种模式下工作？&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.msdn.com/webdevelopertips/archive/2008/08/05/tip-3-did-you-know-split-view-could-be-set-vertically-in-vs-2008.aspx"&gt;技巧3 你知道吗……在VS 2008中的分隔视图可以设为垂直&lt;/a&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;接下来的几周内还将有更多……如果你对这些技巧有任何建议，请&lt;a href="http://blogs.msdn.com/brada/contact.aspx"&gt;提交给我&lt;/a&gt;……&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;尽情享受吧！&lt;/p&gt;&lt;img src="http://blog.joycode.com/brada/aggbug/115229.aspx" width="1" height="1" /&gt;</description><dc:creator>tshao</dc:creator></item><item><title>PodCast: Glenn Block谈论Prism、Unity及MEF</title><link>http://blog.joycode.com/brada/archive/2008/08/19/115228.aspx</link><pubDate>Tue, 19 Aug 2008 06:05:32 GMT</pubDate><guid isPermaLink="true">http://blog.joycode.com/brada/archive/2008/08/19/115228.aspx</guid><wfw:comment>http://blog.joycode.com/brada/comments/115228.aspx</wfw:comment><wfw:commentRss>http://blog.joycode.com/brada/comments/commentRss/115228.aspx</wfw:commentRss><comments>http://blog.joycode.com/brada/archive/2008/08/19/115228.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blog.joycode.com/brada/services/trackbacks/115228.aspx</trackback:ping><source url="http://blog.joycode.com/brada/rss.aspx">PodCast: Glenn Block谈论Prism、Unity及MEF</source><description>&lt;p&gt;【原文地址】&lt;a href="http://blogs.msdn.com/brada/archive/2008/08/05/podcast-glenn-block-on-prism-unity-and-mef.aspx"&gt;PodCast: Glenn Block on Prism, Unity, and MEF&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;【原文发表日期】&lt;a href="http://blogs.msdn.com/brada/archive/2008/08/05/podcast-glenn-block-on-prism-unity-and-mef.aspx"&gt;05 August 08 10:10&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://herdingcode.com/"&gt;&lt;img title="herding code" alt="herding code" src="http://herdingcode.com/herdingCode-165px.png" align="right" /&gt; HerdingCode&lt;/a&gt;最近与发布一篇与&lt;a href="http://blogs.msdn.com/gblock/"&gt;Glenn Block&lt;/a&gt;进行的访问播客，他谈论到了&lt;a href="http://www.codeplex.com/CompositeWPF"&gt;Prism&lt;/a&gt;、&lt;a href="http://www.codeplex.com/unity"&gt;Unity&lt;/a&gt;，当然还有&lt;a href="http://code.msdn.microsoft.com/mef"&gt;MEF&lt;/a&gt;！&lt;/p&gt;  &lt;p&gt;&lt;a href="http://herdingcode.com/?p=28"&gt;第11集：Glenn Block谈论Prism、Unity及MEF（第1部分）&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;你一定会喜欢这个快进功能……我就希望我的会议里能用上它，当然我绝不会把Glenn的内容快进的 ;-)&lt;/p&gt;&lt;img src="http://blog.joycode.com/brada/aggbug/115228.aspx" width="1" height="1" /&gt;</description><dc:creator>tshao</dc:creator></item><item><title>100多个PDC的议程发布了</title><link>http://blog.joycode.com/brada/archive/2008/08/19/115227.aspx</link><pubDate>Tue, 19 Aug 2008 05:36:45 GMT</pubDate><guid isPermaLink="true">http://blog.joycode.com/brada/archive/2008/08/19/115227.aspx</guid><wfw:comment>http://blog.joycode.com/brada/comments/115227.aspx</wfw:comment><wfw:commentRss>http://blog.joycode.com/brada/comments/commentRss/115227.aspx</wfw:commentRss><comments>http://blog.joycode.com/brada/archive/2008/08/19/115227.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blog.joycode.com/brada/services/trackbacks/115227.aspx</trackback:ping><source url="http://blog.joycode.com/brada/rss.aspx">100多个PDC的议程发布了</source><description>&lt;p&gt;【原文地址】&lt;a href="http://blogs.msdn.com/brada/archive/2008/08/04/100-pdc-sessions-posted.aspx"&gt;100+ PDC Sessions Posted&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;【原文发表日期】&lt;a href="http://blogs.msdn.com/brada/archive/2008/08/04/100-pdc-sessions-posted.aspx"&gt;04 August 08 07:33&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://microsoftpdc.com/"&gt;&lt;img title="PDC 2008 Brain" alt="PDC 2008 Brain" src="http://microsoftpdc.com/Images/BlogBling/PDC2008Brain.gif" align="right" /&gt;&lt;/a&gt; 我刚刚看到，我们已经发布了新一轮的PDC的议程……近年来，我还是首次没有直接参与PDC的计划。因此，观看这届会议的展开对我来说会是件有趣的事……&lt;/p&gt;  &lt;p&gt;&lt;a href="https://sessions.microsoftpdc.com/public/sessions.aspx"&gt;https://sessions.microsoftpdc.com/public/sessions.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;如果你还没有注册的话，那么赶在8月15前注册，你还有机会获得折扣。&lt;/p&gt;  &lt;p&gt;我想在这里特别强调其中的一部分与我相关的议程，我将乐于倾听您的意见，以及你对今年的PDC的任何其它想法。&lt;/p&gt;  &lt;h5&gt;&amp;#160;&lt;/h5&gt;  &lt;h5&gt;使用IIS7.0及Web Deployment Tool发布Web应用（&lt;strong&gt;&lt;a href="http://channel9.msdn.com/pdc2008/ES15/"&gt;Deploying Web Applications with IIS7.0 and the Web Deployment Tool&lt;/a&gt;&lt;/strong&gt;）&lt;/h5&gt;  &lt;p&gt;在Dev 10中正在进行着一些非常酷的工作，能够以方便得多的方式发布ASP.NET应用到测试环境与运行环境中，以及内部的web farm和更大的host环境中。&lt;/p&gt;  &lt;h5&gt;&amp;#160;&lt;/h5&gt;  &lt;h5&gt;Windows 7: 触摸式计算（&lt;a href="http://channel9.msdn.com/pdc2008/PC03/"&gt;Windows 7: Touch Computing&lt;/a&gt;）&lt;/h5&gt;  &lt;p&gt;把它想象成是面向大众的Surface ;-)&lt;/p&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h5&gt;Deep Dive: 在Silverlight中创建一个优化、图像密集的应用（&lt;a href="http://channel9.msdn.com/pdc2008/PC06/"&gt;Deep Dive: Building an Optimized, Graphics-Intensive App in Silverlight&lt;/a&gt;）&lt;/h5&gt;  &lt;p&gt;我很喜欢这些deep dive的讲座，尤其是伴随着Silverlight 2的发布，我想很多客户也希望看到他们能够发挥Silverlight最大的功效。你们觉得我们是否应该在同一个讲座中涵盖WPF图像处理的基础知识呢？&lt;/p&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h5&gt;Silverlight: 创建商业应用（&lt;a href="http://channel9.msdn.com/pdc2008/PC11/"&gt;Microsoft Silverlight: Building Business Applications&lt;/a&gt;）&lt;/h5&gt;  &lt;p&gt;我与许多对企业级RIA应用深感兴趣的客户进行了交谈，这次谈话将会展示一些模式以及某些未来的产品方向。你们有什么杀手级的场景可供我们作为示例呢？&lt;/p&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h5&gt;ASP.NET: 未来路线图（&lt;a href="http://channel9.msdn.com/pdc2008/PC20/"&gt;ASP.NET: Future Roadmap&lt;/a&gt;）&lt;/h5&gt;  &lt;p&gt;我们应该为此找一个更好记的标题，不过我们的目标是告诉各位，我们正考虑在未来的产品中实现从各位那里收到的关于ASP.NET的方向的建议。同时我们希望能够获得你们的反馈意见。&lt;/p&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h5&gt;ASP.NET MVC: 一套新的创建Web应用的框架（&lt;a href="http://channel9.msdn.com/pdc2008/PC21/"&gt;ASP.NET MVC: A New Framework for Building Web Applications&lt;/a&gt;）&lt;/h5&gt;  &lt;p&gt;你一定得参加一次MVC的讲座——尤其是这一堂，它将力求向你介绍MVC……你们是否认为我们也需要做些更深入的钻研呢？&lt;/p&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h5&gt;Deep Dive: 理解Windows Presentation Foundation的子集Microsoft Silverlight（&lt;a href="http://channel9.msdn.com/pdc2008/PC27/"&gt;Deep Dive: Understanding the Microsoft Silverlight Subset of Windows Presentation Foundation&lt;/a&gt;）&lt;/h5&gt;  &lt;p&gt;.NET最强大之处就在于一种一致的端到端的连续……这堂讲座会展示如何利用Silverlight与WPF之间的兼容性来共享代码与设计，以最大化这两个平台的价值。是否有哪位已经尝试过了？哪些部分运行良好，又有哪些部分是你们需要更多指导的呢？&lt;/p&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h5&gt;Microsoft Internet Explorer 8: 开发者概览（&lt;a href="http://channel9.msdn.com/pdc2008/PC28/"&gt;Microsoft Internet Explorer 8: Developer Overview&lt;/a&gt;）&lt;/h5&gt;  &lt;p&gt;IE8做了大量的工作，使得ajax的开发者能更高效地工作。&lt;/p&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h5&gt;Microsoft Silverlight 2: 控件模型（&lt;a href="http://channel9.msdn.com/pdc2008/PC29/"&gt;Microsoft Silverlight 2: Control Model&lt;/a&gt;）&lt;/h5&gt;  &lt;p&gt;你们是否对了解所有的控件（包括了一些新的控件），以及学会如何最大程度地掌握它们更感兴趣，或者是如何创建你自己的控件呢？&lt;/p&gt;  &lt;h5&gt;&amp;#160;&lt;/h5&gt;  &lt;h5&gt;“Oslo”探索（&lt;a href="http://channel9.msdn.com/pdc2008/TL%2023/"&gt;A Lap around &amp;quot;Oslo&amp;quot;&lt;/a&gt;）&lt;/h5&gt;  &lt;p&gt;Chris Anderson与Don Box的表演又回来了!纯粹为了娱乐,这也是你一定要看的.&lt;/p&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h5&gt;为托管代码开发者在下一版本的Microsoft Visual Studio中实现的并行编程（&lt;a href="http://channel9.msdn.com/pdc2008/TL%2026/"&gt;Parallel Programming for Managed Developers with the Next Version of Microsoft Visual Studio&lt;/a&gt;）&lt;/h5&gt;  &lt;p&gt;我们已看到了对于.NET上的并行计算的热爱这一&amp;quot;地隆&amp;quot;(groundswell)现象……这堂讲座中将会谈到我们正在Visual Studio与.NET中所做的一些很酷的东西，以简化这方面的编程工作。&lt;/p&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h5&gt;在Microsoft Visual Studio中进行敏捷开发（&lt;a href="http://channel9.msdn.com/pdc2008/TL09/"&gt;Agile Development with Microsoft Visual Studio&lt;/a&gt;）&lt;/h5&gt;  &lt;p&gt;虽然我没有深入地参与到这门讲座中，但VS正开始拥抱TDD，重构以及其它的敏捷方法，这真是太棒了！&lt;/p&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h5&gt;C#的未来（&lt;a href="http://channel9.msdn.com/pdc2008/TL16/"&gt;The Future of C#&lt;/a&gt;）&lt;/h5&gt;  &lt;p&gt;有谁能错过Anders Hejlsberg呢？上一届的PDC，Anders为我们介绍了Linq……今年又会是什么呢？&lt;/p&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h5&gt;Microsoft Visual Basic的未来方向（&lt;a href="http://channel9.msdn.com/pdc2008/TL12/"&gt;Future Directions for Microsoft Visual Basic&lt;/a&gt;）&lt;/h5&gt;  &lt;p&gt;公平起见，Paul Vick将会向你展现VB的发展方向……&lt;/p&gt;&lt;img src="http://blog.joycode.com/brada/aggbug/115227.aspx" width="1" height="1" /&gt;</description><dc:creator>tshao</dc:creator></item><item><title>Zune上的Pong</title><link>http://blog.joycode.com/cy/archive/2008/08/18/115226.aspx</link><pubDate>Mon, 18 Aug 2008 15:53:49 GMT</pubDate><guid isPermaLink="true">http://blog.joycode.com/cy/archive/2008/08/18/115226.aspx</guid><wfw:comment>http://blog.joycode.com/cy/comments/115226.aspx</wfw:comment><wfw:commentRss>http://blog.joycode.com/cy/comments/commentRss/115226.aspx</wfw:commentRss><comments>http://blog.joycode.com/cy/archive/2008/08/18/115226.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blog.joycode.com/cy/services/trackbacks/115226.aspx</trackback:ping><source url="http://blog.joycode.com/cy/rss.aspx">Zune上的Pong</source><description>&lt;p&gt;马上就要找工作了（不知谁会要我...），在我学生时代的最后一个暑假里，看书、做题、写code、看奥运、玩实况足球...一个都不能少。同时，作为一个好奇心旺盛的家伙，加上刚入手个4G Flash版的Zune 2，自然要拿XNA 3.0 CTP来玩玩。&lt;/p&gt;
&lt;p&gt;闲话不表，&lt;a href="http://creators.xna.com/en-US/downloads"&gt;XNA&lt;/a&gt; 3.0 CTP开始支持在Zune上开发游戏（可以结合免费的Visual C#&amp;nbsp;2008 Express来用），可是文档还不齐全，官方只放出了个Alien Game的sample，是一个蛮简单的射击游戏。我花了点时间把它的源码读了一遍，发现它所用到的整体架构和在PC上写游戏时用的XNA Framwork几乎如出一辙，推测是其一个子集而已（比如input不支持keyboard，也完全不支持3D加速等等），实际上，在Zune上写的游戏代码只需要修改一些设备相关的输入处理、文件读写的代码就可以直接移植到PC甚至是xbox360上，Zune和xbox360甚至还共用相同的一个GamePad类接口，只不过做了个键映射，不知道3.0正式release的时候会不会有专门对应Zune Pad的一个输入类。然后我又花了几小时在上面尝试写了个小游戏Pong。Pong是世界上最早的video game之一，但不是第一个（&lt;a href="http://en.wikipedia.org/wiki/Pong"&gt;via&lt;/a&gt;）。Youtube上还可以找到最早的Atari Pong的&lt;a href="http://www.youtube.com/watch?v=LPkUvfL8T1I"&gt;游戏视频&lt;/a&gt;和&lt;a href="http://www.youtube.com/watch?v=X53eJ8AWQ9Y&amp;amp;feature=related"&gt;广告&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;在写这个小游戏时，整体感觉用XNA开发游戏的确是非常简单，程序员的主要工作是实现4个函数，&lt;font face="Arial"&gt;Initialize()用来初始化游戏环境；&lt;font face="Arial"&gt;LoadContent()在游戏开始前用于载入资源；UnloadContent()在游戏结束后释放资源；然后就是两个非常重要的函数Update()和Draw()，顾名思义，Update()函数根据玩家的输入更新游戏的逻辑和屏幕上要绘制对象的各种参数，然后交给Draw()函数一股脑画出来，这两个函数在游戏进行过程中循环被调用，周而复始，驱动整个游戏。&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;非常值得一提的是Alien Game sample中实现的一个ScreenManager机制，它把游戏中需要绘制的内容抽象成一个个GameScreen对象，每个GameScreen对象都有自己的Update()和Draw()函数，ScreenManager用一个List&amp;lt;GameScreen&amp;gt;来管理它们，最顶层的GameScreen处于List的尾部。每个时间周期，ScreenManager都会从List的尾部到头依次调用GameScreen的Update()函数，这样可以让输入处理的逻辑从位于上层的GameScreen一层层传递下来，实际上在大多数情况下，只有最上层的GameScreen需要处理输入。然后它会从List的头部到尾依次调用GameScreen的Draw()函数，从而自下而上把整个游戏界面绘制出来。&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;在Deploy到Zune上时，发现会拷入名为mscorlib3_5.dll和System.Xml.dll这样的文件，看来Zune上的XNA运行环境是.NET 3.5的一个子集，难道Zune的操作系统是Windows CE一族派生出来的？从运行情况上看，速度不错，还支持联机debug和设置断点，微软在这一点上一直做得很令人满意:)&lt;/p&gt;
&lt;p&gt;美中不足的是，在调试代码时没有像Windows Mobile SDK里的模拟器可以使用的，我索性直接在一个Windows Game项目中把所有代码和逻辑都调试好后再一次性导入到Zune项目中；而且在正常退出一个游戏时，整个Zune会重启，官方上说这是by design，因为这样of course可以把所有资源都释放干净。。。毕竟是小小一个Zune而不是iPhone，勉强接受吧。。。sample中没有涉及使用Zune上的WiFi和其他设备通信的源码，假如正式版中支持使用WiFi通信的话，我想可以做更多更有趣的游戏！&lt;/p&gt;
&lt;p&gt;下面上图：&lt;/p&gt;
&lt;p&gt;1. 随手设计的游戏图标，板子、小球、一局9分，Pong最鲜明的3个特征:)&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://blog.joycode.com/images/blog.joycode.com/cy/1535/o_GameThumbnail.png" /&gt;&lt;/p&gt;
&lt;p&gt;在Deploy了XNA之后，Zune就会出现games这个新的菜单项，进入就可以看到已经下载的游戏 &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img height="320" alt="" width="240" src="http://blog.joycode.com/images/blog.joycode.com/cy/1535/o_DSCF5367.JPG" /&gt;&lt;img height="320" alt="" width="240" src="http://blog.joycode.com/images/blog.joycode.com/cy/1535/o_DSCF5370.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;2. 游戏主菜单，我采用Zune横放的操作方式，背景和菜单都复用了Alien Game里面的素材 &lt;/p&gt;
&lt;p&gt;&lt;img height="240" alt="" width="320" src="http://blog.joycode.com/images/blog.joycode.com/cy/1535/o_DSCF5358.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;3. 游戏画面，用方向键控制板子（Zune Pad太敏感了，所以我只用按键）&lt;/p&gt;
&lt;p&gt;&lt;img height="240" alt="" width="320" src="http://blog.joycode.com/images/blog.joycode.com/cy/1535/o_DSCF5363.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;4. 两段实际游戏视频，因为边玩边拍的缘故，玩得都很烂。。。如果戴上耳机的话，小球的反弹和得分失分都有不同的音效，而且还可以一边玩游戏一边听歌的（很流畅），在暂停菜单中还可以更换歌曲（抄袭自Alien Game，这里还有个bug，遇上中文歌名就会crash）。在录像中我尝试用一个很老的电脑音箱把声音放出来，可惜声音还是太小了点。 &lt;/p&gt;
&lt;p&gt;&lt;a title="http://www.youku.com/playlist_show/id_2164628.html" href="http://www.youku.com/playlist_show/id_2164628.html"&gt;http://www.youku.com/playlist_show/id_2164628.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;源码释出在：&lt;a href="http://iamyuan.cn/downloads/zunegames.rar"&gt;http://iamyuan.cn/downloads/zunegames.rar&lt;/a&gt;（大量借鉴自Alien Game sample，写得不好，见笑了，小球反弹用的是最简单的反射。。。）&lt;/p&gt;
&lt;p&gt;现在掌机市场基本上被$ony的PSP和任天堂的NDS占领（我有个PSP 2000，可以用第三方逆向工程出来的build chain tool在上头写程序），不知道微软让XNA支持Zune是不是也想涉足掌机这个庞大的消费市场。我认为目前市场上这两个巨头的成功都建立在每个平台上都有非常好玩的独占游戏这一基础上（我就是因为怪物猎人和实况足球这两款游戏而购买了PSP），假如微软能通过一些手段激励开发者在Zune上开发出真正吸引人的大作，这个平台火起来也不是不可能的，当然作为一个游戏机，Zune在硬件上比如屏幕和控制方式也要做相应的改进才行。&lt;/p&gt;
&lt;p&gt;从下面这张拍摄自北京奥运会的照片看，NDS还是蛮有人玩的，没准他们几个就在用wifi连马里奥赛车吧，呵呵&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://blog.joycode.com/images/blog.joycode.com/cy/1535/o_ogds.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;欢迎交流&lt;img alt="" src="http://blog.joycode.com/images/blog.joycode.com/cy/1535/o_emailpic.png" /&gt;&lt;/p&gt;&lt;img src="http://blog.joycode.com/cy/aggbug/115226.aspx" width="1" height="1" /&gt;</description><dc:creator>cy</dc:creator></item><item><title>VS 2008和.NET FX 3.5的Service Pack 1发布了！</title><link>http://blog.joycode.com/soma/archive/2008/08/18/115225.aspx</link><pubDate>Mon, 18 Aug 2008 06:17:00 GMT</pubDate><guid isPermaLink="true">http://blog.joycode.com/soma/archive/2008/08/18/115225.aspx</guid><wfw:comment>http://blog.joycode.com/soma/comments/115225.aspx</wfw:comment><wfw:commentRss>http://blog.joycode.com/soma/comments/commentRss/115225.aspx</wfw:commentRss><comments>http://blog.joycode.com/soma/archive/2008/08/18/115225.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blog.joycode.com/soma/services/trackbacks/115225.aspx</trackback:ping><source url="http://blog.joycode.com/soma/rss.aspx">VS 2008和.NET FX 3.5的Service Pack 1发布了！</source><description>&lt;p class="MsoListParagraph" style="MARGIN: auto 0cm auto 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1"&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 宋体"&gt;原文地址&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 宋体"&gt;：&lt;a id="bp___v___r___postlist___EntryItems_ctl01_PostTitle" href="http://blogs.msdn.com/somasegar/archive/2008/08/11/service-pack-1-for-vs-2008-and-net-fx-3-5-released.aspx"&gt;Service Pack 1 for VS 2008 and .NET FX 3.5 released!&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: auto 0cm auto 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1"&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 宋体"&gt;原文发表时间&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 宋体"&gt;：&lt;a id="bp___v___r___postlist___EntryItems_ctl01_PermaLink" href="http://blogs.msdn.com/somasegar/archive/2008/08/11/service-pack-1-for-vs-2008-and-net-fx-3-5-released.aspx"&gt;Monday, August 11, 2008 10:12 AM&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="Courier New"&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 宋体"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;a style="mso-comment-reference: Yang_1; mso-comment-date: 20080818T1321"&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;自从&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;去年&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;11&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;月，&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;Visual Studio 2008&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;和&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;.NET Framework 3.5&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;成功发布以来，我们收到了很多正面而积极的反馈。同时，开发人员对如何提高产品的可用性提出了很多新颖的点子和建议。&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;基于这些点子和建议，我们在&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;Visual Studio 2008&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;和&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;.NET Framework 3.5&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;的原有基础上，进一步研发。今天，我很高兴地宣布，&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;Visual Studio 2008 SP1&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;和&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;.NET Framework 3.5 SP1&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;正式发布了。&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;在&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;Visual Studio 2008 SP1&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;里，我们主要着力于改进&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;VS 2008&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;的性能和可靠性。这包括，提高用于开发&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;WPF&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;应用程序的设计器（&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;designer&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;）的性能，丰富&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;AJAX&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;应用程序开发工具集以及提升与&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;ADO.NET Entity Framework&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;相关的设计器（&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;designer&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;），使它们能更好的工作在一起。除此之外，还增强了&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;JavaScript&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;开发环境并提升了流水线式的&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;Web&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;站点部署体验。&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;就&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;.NET Framework&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;而言，&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;SP1&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;除了修复客户报告的问题（&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;bugs&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;）以外，我们还为它添加了一些广受期待的新特性。这包括，&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;.NET Framework Client Profile&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;，通过&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;ADO.NET Entity Framework&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;对数据应用程序开发提供更好的支持，&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;ADO.NET Data Services&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;，和最近才发布的&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;SQL Server 2008&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;的完美集成以及针对&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;ASP.NET&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;的一些改进。这些特性会极大地方便开发人员在最新的平台上进行开发。&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;当我们和开发人员交谈的时候，他们经常向我们抱怨由于安装&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;.NET Framework&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;耗时而引起的&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;.NET Framework&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;应用程序的部署问题。我们了解到这是个棘手的问题并在&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;SP1&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;里提供了一个不错的解决方案&amp;mdash;&amp;mdash;&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;.NET Framework Client Profile&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;。&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;.NET Framework Client Profile&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;安装程序仅包括&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;.NET Framework&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;客户端应用程序最常用的一些&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;assemblies&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;和文件。这大大减少了框架的尺寸（从&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;197&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;兆减少到&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;26.5&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;兆，减少了&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;86.5%&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;），使得&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;Windows&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;应用程序的部署变得更快，更容易。此外，通过&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;.NET Framework Client Profile&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;，你也可以将更好的下载和安装体验应用在已有的应用程序上。另一个附加的好处是，我们在&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;service pack&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;里所做的改进，使得与&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;.NET&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;应用程序相关联的服务（&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;services&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;）的性能在&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;Internet Information Services (IIS) 7.0&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;环境里，可获得高达&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;10&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;倍的提升。&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;Web 2.0&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;互联网应用程序和动态互联网网站的开发始终是我们关注的焦点。&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;SP1&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;将包含&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;ASP.NET Dynamic Data&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;。它提供了一个丰富的渐次开发框架，允许进行快速的基于数据驱动的开发而无需撰写一行代码。&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-no-proof: yes"&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"&gt;&lt;/v:path&gt;&lt;o:lock v:ext="edit" aspectratio="t"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1027" style="VISIBILITY: visible; WIDTH: 272.25pt; HEIGHT: 56.25pt" type="#_x0000_t75"&gt;&lt;v:imagedata src="file:///C:\Users\wenbinx\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif" o:href="http://somasegar.members.winisp.net/images/blog_images/2008_08_11_SP1/SQLServer2008.gif"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;img alt="" src="http://somasegar.members.winisp.net/images/blog_images/2008_08_11_SP1/SQLServer2008.gif" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;font face="Courier New"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;Visual Studio 2008 SP1&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;和&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;.NET Framework 3.5 SP1&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;也对最近发布的&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;SQL Server 2008&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;提供了很好的支持。进一步巩固了微软平台作为数据库应用程序开发的龙头地位。&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;.NET Framework 3.5 SP1&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;包含了&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;ADO.NET Data Services&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;和&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;ADO.NET Entity Framework&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;。这提升了数据库编程的抽象程度，并提供一个全新的基于模型的范式（&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;paradigm&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;）以及一个用于开发以数据为导向的&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;Web&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;服务的丰富的标准化框架。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;img alt="" src="http://somasegar.members.winisp.net/images/blog_images/2008_08_11_SP1/2008_8_11_DataService_small.jpg" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;img height="313" width="441" alt="" src="http://somasegar.members.winisp.net/images/blog_images/2008_08_11_SP1/2008_8_11_Entity_small.jpg" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 11pt; COLOR: #993366; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;这次发布的SQL Server 2008对于整个开发者社区来说，是非常重要的一个里程碑。同时对于我个人而言，也是意义非凡。10年前的今天，我带领团队创立了微软印度研发中心（India Development Center）。今天，来自这个中心的研发团队对于SQL Server 2008以及SQL Server Compact 3.5.1的成功发布做出了卓越的贡献。这是SQL发布史上的第一次，为此我感到非常骄傲。在未来的日子里，我将一如既往地支持微软印度研发中心（India Development Center），并见证它取得更丰硕的成果。&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blog.joycode.com/soma/aggbug/115225.aspx" width="1" height="1" /&gt;</description><dc:creator>soma</dc:creator></item><item><title>《Win32 多线程程序设计》</title><link>http://blog.joycode.com/wenmiao/archive/2008/08/17/115222.aspx</link><pubDate>Sun, 17 Aug 2008 11:02:56 GMT</pubDate><guid isPermaLink="true">http://blog.joycode.com/wenmiao/archive/2008/08/17/115222.aspx</guid><wfw:comment>http://blog.joycode.com/wenmiao/comments/115222.aspx</wfw:comment><wfw:commentRss>http://blog.joycode.com/wenmiao/comments/commentRss/115222.aspx</wfw:commentRss><comments>http://blog.joycode.com/wenmiao/archive/2008/08/17/115222.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blog.joycode.com/wenmiao/services/trackbacks/115222.aspx</trackback:ping><source url="http://blog.joycode.com/wenmiao/rss.aspx">《Win32 多线程程序设计》</source><description>&lt;p&gt;《&lt;a href="http://www.douban.com/subject/1231702/?i=0" target="_blank"&gt;Win32 多线程程序设计&lt;/a&gt;》，虽然是专门讲解多线程编程的，可我大致翻了一遍后，反倒觉得没有《&lt;a href="http://www.douban.com/subject/1088045/?i=0" target="_blank"&gt;Windows核心编程&lt;/a&gt;》里面那几章讲得有用和深入。感觉没有必要仔细读了。&lt;/p&gt;  &lt;p&gt;比如说，《&lt;a href="http://www.douban.com/subject/1088045/?i=0" target="_blank"&gt;Windows核心编程&lt;/a&gt;》里面很清楚地说明了，那些线程同步的方法，哪些是用户方式(user mode)，哪些是内核方式(kernel mode)，而且很清楚地告诉你效率究竟相差多少。这样的知识，对具体编程，还是很有帮助的。&lt;/p&gt;  &lt;p&gt;不过《Windows核心编程》这本书的中文名字，翻译的也有点莫名其妙，英文名明明是《Programming Applications for Microsoft Windows》，不知&amp;#8220;核心&amp;#8221;二字从何而来，容易让人误解。&lt;/p&gt;&lt;img src="http://blog.joycode.com/wenmiao/aggbug/115222.aspx" width="1" height="1" /&gt;</description><dc:creator>wenmiao</dc:creator></item><item><title>BI数据级权限解决方案</title><link>http://blog.joycode.com/jasper/archive/2008/08/17/115221.aspx</link><pubDate>Sun, 17 Aug 2008 10:39:07 GMT</pubDate><guid isPermaLink="true">http://blog.joycode.com/jasper/archive/2008/08/17/115221.aspx</guid><wfw:comment>http://blog.joycode.com/jasper/comments/115221.aspx</wfw:comment><wfw:commentRss>http://blog.joycode.com/jasper/comments/commentRss/115221.aspx</wfw:commentRss><comments>http://blog.joycode.com/jasper/archive/2008/08/17/115221.aspx#comment</comments><slash:comments>1</slash:comments><trackback:ping>http://blog.joycode.com/jasper/services/trackbacks/115221.aspx</trackback:ping><source url="http://blog.joycode.com/jasper/rss.aspx">BI数据级权限解决方案</source><description>&lt;p&gt;很久没有在博客堂上发文了，先表示歉意。希望这次的文章能够带给你价值。&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 10.5pt"&gt;关键词：BI、数据权限、Sharepoint、ajax&lt;/span&gt;&lt;/p&gt;
&lt;span style="FONT-SIZE: 10.5pt"&gt;
&lt;div style="TEXT-INDENT: 21pt"&gt;
&lt;p&gt;BI数据分析是目前企业的热门应用，而对企业来说，权限控制是非常重要的，尤其是作为决策用的企业报表。目前基于微软&lt;span&gt;SQL Server体系的BI架构为Integration Services + Analysis Service + Reporting Services，Integration Services和Analysis都属于应用后台的服务，不会在用户前端展现，其权限控制体系不在我们这篇文章的讨论范围内（但是实现数据级权限控制，需要Analysis Services的参与）。而对于前端展示用的企业报表，权限控制体系分为2种：报表级权限和数据级权限。报表级权限较为简单，主要用于控制谁能够看这个报表；数据级权限则比较复杂了，任何人看同一张报表，报表上的数据只能是他有权限查看的数据。简单说，就是总经理看到的数据和经理看到的数据是不一样的，虽然他们在看同一张报表。比较报表级权限和数据级权限，会发现如果实现了数据级权限的控制，那么企业报表是否需要进行权限控制已经不再重要（当然，为了界面友好性，还是应该控制下的）。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这篇文章主要就是讲述基于&lt;span&gt;SQL Server架构的BI数据级权限的解决方案，这也是我给一个德国大型跨国企业客户实施其BI项目中，对方非常重视的一个功能。这里先简单介绍下这个客户和项目，出于保密要求，我把该客户叫做Customer S（简称CS，呵呵，不是那个游戏哦）。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;CS项目前端采用&lt;span&gt;Sharepoint，后台采用SQL Server，主要分析客户S的销售数据。CS的组织结构分为部门、区域；部门和区域是相互交叉的；某个部门的总部人员能够看到全国所有区域的数据；而区域员工则只能看到该区域的数据了。用户能够查看的数据权限，需要在网页上可以进行配置。这就是客户对数据级权限的要求。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;针对这些需求，数据级权限解决方案采用如下架构：&lt;/p&gt;
&lt;p&gt;&lt;img height="277" alt="" width="560" src="http://www.fmblog.cn/file/jasper/20080817182223589.gif" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;报表查看流程说明：&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;用户查看报表 &lt;/li&gt;
    &lt;li&gt;报表从&lt;span&gt;Cube中获取数据&lt;/span&gt; &lt;/li&gt;
    &lt;li&gt;Cube从数据库中（记录用户的数据权限配置）获得访问用户的权限配置，根据配置返回相应的数据 &lt;/li&gt;
    &lt;li&gt;报表显示结果数据 &lt;/li&gt;
&lt;/ol&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;数据权限配置流程说明：&lt;/div&gt;
&lt;ol&gt;
    &lt;li&gt;用户访问数据权限配置页面（由于基于&lt;span&gt;Sharepoint，因此是内嵌数据权限Webpart的Sharepoint页面）&lt;/span&gt; &lt;/li&gt;
    &lt;li&gt;页面获取&lt;span&gt;Cube结构（由于Cube的结构内容很庞大，为了避免网页响应慢，一般通过ajax树状来展示其结构）&lt;/span&gt; &lt;/li&gt;
    &lt;li&gt;用户修改数据权限设置，并且保存到数据库中 &lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;说明：这里面进行数据权限控制的对象为域帐号（可以为域用户或者组）。&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;纵览数据权限实现的这个流程，我们提取出中间几个重要的实现具体讲解解决方案，他们是：&lt;/div&gt;
&lt;ul&gt;
    &lt;li&gt;Cube中如何进行权限控制 &lt;/li&gt;
    &lt;li&gt;设置数据权限时，如何读取&lt;span&gt;Cube结构&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 13pt 0cm"&gt;&lt;strong&gt;&lt;font size="5"&gt;Cube中如何进行权限控制&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: 21pt"&gt;SQL Server Analysis Services本身提供了一种设置&lt;span&gt;Cube数据数据权限的机制。打开Analysis Services，我们可以看到&amp;ldquo;程序集&amp;rdquo;和&amp;ldquo;角色&amp;rdquo;2个条目，他们就是和数据权限设置紧密相关的内容了。如下图所示：&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: 21pt"&gt;&lt;span&gt;&lt;img height="250" alt="" width="356" src="http://www.fmblog.cn/file/jasper/20080817182212730.gif" /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: 21pt"&gt;&lt;span&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;程序集：&lt;/strong&gt;这是一个&lt;span&gt;DLL类库，通过Visual Studio中新建一个Class Library（类库）来实现。主要作用是返回用户能够访问的Cube数据。&lt;/span&gt; &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;角色：&lt;/strong&gt;这是访问用户的角色。在这里面可以设置角色的用户，更重要的是设置&lt;span&gt;Cube调用哪个程序集来获取用户能够访问的数据。&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;我们先来看&lt;span&gt;DataSecurity.dll程序集。这个程序集的代码其实很简单，不会超过30行。其主要流程如下：&lt;/span&gt;&lt;/div&gt;
&lt;span&gt;1.&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;读取访问用户的数据权限设置 &lt;span&gt;2.&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;根据数据权限设置，返回一个能够访问的&lt;span&gt;Dimension数据集MDX字符串&lt;/span&gt;
&lt;div&gt;我们看看如下的主要代码（这个类库也就只需要这样一个&lt;span&gt;CS文件）：&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;namespace&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt"&gt; BI&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: teal"&gt;DataSecurity&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;static&lt;/span&gt; &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; GetDimensionSet(&lt;span style="COLOR: blue"&gt;string&lt;/span&gt; domain_account, &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; dimension)&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt"&gt;// &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt"&gt;方法的名字无所谓，参数比较重要&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // domain_account&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt"&gt;：访问用户的帐号，后面我们会知道是从角色的设置中传入&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // dimension&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt"&gt;：是获取哪个维度的数据。在角色里，需要对每一个维度进行设置&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: 21pt" align="left"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: green"&gt;//return &amp;quot;{[Location].[City].&amp;amp;[Seattle]}&amp;quot;, &lt;/span&gt;&lt;/strong&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: green"&gt;返回的结果示例&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR: teal"&gt;SqlConnection&lt;/span&gt; connection = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;SqlConnection&lt;/span&gt;(connection_string);&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connection.Open();&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR: teal"&gt;SqlCommand&lt;/span&gt; command = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;SqlCommand&lt;/span&gt;(&lt;span style="COLOR: maroon"&gt;&amp;quot;SP_Security_GetDimensionSetByLoginAccount&amp;quot;&lt;/span&gt;, connection);&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; command.CommandType = System.Data.&lt;span style="COLOR: teal"&gt;CommandType&lt;/span&gt;.StoredProcedure;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR: teal"&gt;SqlParameter&lt;/span&gt; p1 = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;SqlParameter&lt;/span&gt;(&lt;span style="COLOR: maroon"&gt;&amp;quot;@domain_account&amp;quot;&lt;/span&gt;, domain_account);&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR: teal"&gt;SqlParameter&lt;/span&gt; p2 = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;SqlParameter&lt;/span&gt;(&lt;span style="COLOR: maroon"&gt;&amp;quot;@dimension&amp;quot;&lt;/span&gt;, dimension);&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; command.Parameters.Add(p1);&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; command.Parameters.Add(p2);&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR: teal"&gt;SqlDataReader&lt;/span&gt; reader = command.ExecuteReader();&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; result_set = &lt;span style="COLOR: blue"&gt;string&lt;/span&gt;.Empty;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR: blue"&gt;int&lt;/span&gt; count = 0;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR: blue"&gt;while&lt;/span&gt; (reader.Read())&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count++;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (result_set != &lt;span style="COLOR: blue"&gt;string&lt;/span&gt;.Empty) result_set += &lt;span style="COLOR: maroon"&gt;&amp;quot;,&amp;quot;&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result_set += (&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;)reader[&lt;span style="COLOR: maroon"&gt;&amp;quot;DimensionSet&amp;quot;&lt;/span&gt;];&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; command.Dispose();&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connection.Close();&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connection.Dispose();&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; &lt;span style="COLOR: maroon"&gt;&amp;quot;{&amp;quot;&lt;/span&gt; + result_set + &lt;span style="COLOR: maroon"&gt;&amp;quot;}&amp;quot;&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; DataSecurity()&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: 21pt"&gt;这个类库的作用很简单，抛开&lt;span&gt;BI不谈，其实他就调用了一个存储过程，把返回结果做了一个字符串拼接，然后返回这个字符串。一般的返回结果会是大致如下：{[Location].[City].&amp;amp;[Seattle]}，这表示用户在Location维度下只能够看到Seattle的数据，其他的城市数据都看不到。当然如果是多个城市，那就是用逗号分隔的列表，比如：{[Location].[City].&amp;amp;[Seattle]，[Location].[City].&amp;amp;[Washington]}。&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: 21pt"&gt;如上所示，字符串拼接很简单，但是这些用户能够访问的具体数据记录在哪呢？这就是用户在网页上设置好数据权限，记录在数据库中的字符串了。&lt;/div&gt;
&lt;div style="TEXT-INDENT: 21pt"&gt;&lt;span style="BACKGROUND: #d9d9d9"&gt;在这里你要更清楚地话，就需要进一步了解MDX，这不在这篇文章的讨论范围之内。&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: 21pt"&gt;我们首先完成了第一步，结下来就是在角色设置里调用这个&lt;span&gt;DataSecurity.dll类库了。这个比较简单，但是繁琐，对于Cube中的每一个维度都需要手动设置。这个步骤根据如下的示意图走就是了，没有什么代码工作。&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: 21pt"&gt;&lt;span&gt;&lt;/span&gt;&amp;nbsp;&lt;img height="502" alt="" width="560" src="http://www.fmblog.cn/file/jasper/20080817182217292.gif" /&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: 21pt"&gt;&lt;span&gt;&lt;/span&gt;&amp;nbsp;
&lt;div&gt;打开&lt;span&gt;SecruityRole角色的属性，进入&amp;ldquo;维度数据&amp;rdquo;中就可以设置数据权限了。每一个需要控制数据权限的维度和属性都需要设置下，基本上设置为一条语句：&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;StrtoSet(BI.DataSecurity.GetDimensionSet(USERNAME, &amp;quot;City&amp;quot;))&lt;/div&gt;
&lt;div&gt;对这个语句解释下：&lt;span&gt;StrtoSet是将字符串转换为MDX里的数据集。USERNAME是访问者的域帐号，City则为我们自定义的参数，表示要获取City属性维度的授权数据。&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: 21pt"&gt;到了这里，我们已经完成了很重要的一步，数据权限的主体已经实现了。但是对于用户来说，他需要有一个前端界面来设置这些数据权限。下面的内容就是为了解决这个问题，不过这里，我只挑出最重要的部分，读取&lt;span&gt;Cube结构来讲，其他的部分你完全可以自己设计。在CS这个项目中，我们是做了如下工作：&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
    &lt;li&gt;所有的设置界面都是&lt;span&gt;Sharepoint Webpart（请参见相关内容）&lt;/span&gt; &lt;/li&gt;
    &lt;li&gt;Webpart中的&lt;span&gt;ajax（这个要单独拿出来说，是因为这个部分比较麻烦），需要用到ajax的原因就是Cube的结构是很大的，如果一次性读出来，肯定是等到花儿也谢了，相信没有人会用他。&lt;/span&gt; &lt;/li&gt;
    &lt;li&gt;后台可以控制哪些维度需要设置数据权限（有些维度不需要设置数据权限，那么就不让他在&lt;span&gt;ajax树中展示出来了）&lt;/span&gt; &lt;/li&gt;
    &lt;li&gt;有自定义的角色，这个角色不同于刚才讲的&lt;span&gt;Cube中的角色。这是用户自己定义的数据权限角色，刚才的角色只需要那一个就足够了。&lt;/span&gt; &lt;/li&gt;
    &lt;li&gt;有了角色自然有搜索、设置用户、设置角色的数据权限、编辑、删除 &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 21pt"&gt;这个都可以根据你的需要进行设计，不一定要完全相同，就比如我用了&lt;span&gt;ajax树来展示Cube结构，但是你可以采用别的方式。&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 21pt"&gt;下面我们就进入下一个重要话题，就是读取&lt;span&gt;Cube的结构（其实在读取这个结构本身，前面的数据权限就已经开始起作用了，没有权限访问的数据不会出现在ajax树中）。&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 13pt 0cm"&gt;&lt;strong&gt;&lt;font size="5"&gt;设置数据权限时，如何读取&lt;span&gt;Cube结构&lt;/span&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: 21pt"&gt;读取&lt;span&gt;Cube的结构，微软已经提供了一套非常丰富的类库给我们。这里就简单介绍下，如果你在具体实现过程中遇到了问题，相信上Google是一个最好的办法。&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: 21pt"&gt;下面我们介绍读取&lt;span&gt;Cube结构的具体内容，首先就是连上你的Cube。这主要通过如下语句完成。&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: teal"&gt;AdomdConnection&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt"&gt; adomdConnection = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;AdomdConnection&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;adomdConnection.ConnectionString = &amp;ldquo;&lt;span style="COLOR: green"&gt;Data Source=localhost;Catalog=MyCube;&amp;rdquo;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;adomdConnection.Open();&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;// &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt"&gt;这里读取具体的Cube结构&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;adomdConnection.Close();&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="FONT-SIZE: 9pt"&gt;adomdConnection.Dispose();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;在连上&lt;span&gt;Cube之后，通过adomdConnection可以读取整个Cube了。主要涉及到如下内容：&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
    &lt;li&g