﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-魔法花园 － .NET版</title><link>http://www.cnblogs.com/redmoon/</link><description>我关于.NET技术的Blog</description><language>zh-cn</language><lastBuildDate>Thu, 28 Aug 2008 20:29:44 GMT</lastBuildDate><pubDate>Thu, 28 Aug 2008 20:29:44 GMT</pubDate><ttl>60</ttl><item><title>Podcast Publisher——一个综合了多种入门知识的小Web应用</title><link>http://www.cnblogs.com/redmoon/archive/2008/07/15/1243731.html</link><dc:creator>redmoon</dc:creator><author>redmoon</author><pubDate>Tue, 15 Jul 2008 15:44:00 GMT</pubDate><guid>http://www.cnblogs.com/redmoon/archive/2008/07/15/1243731.html</guid><wfw:comment>http://www.cnblogs.com/redmoon/comments/1243731.html</wfw:comment><comments>http://www.cnblogs.com/redmoon/archive/2008/07/15/1243731.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/redmoon/comments/commentRss/1243731.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/redmoon/services/trackbacks/1243731.html</trackback:ping><description><![CDATA[摘要: 一个用于手动生成Podcast的RSS种子的小Web应用。用到了如下几个技术：SQL Server 2005 Express，ASP.NET 2.0 Membership Service，ASP.NET Login Control，SqlDataSource Control，ASP.NET AJAX，LINQ to SQL，LINQ to XML，LINQ to SQL批量删除数据 ，IIS7 URL Rewrite Module。&nbsp;&nbsp;<a href='http://www.cnblogs.com/redmoon/archive/2008/07/15/1243731.html'>阅读全文</a><img src ="http://www.cnblogs.com/redmoon/aggbug/1243731.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41943/" target="_blank">[新闻]轮回－新浪推出Facebook模式的SNS</a>]]></description></item><item><title>LINQBridge让你的LINQ代码可在.NET 2.0下运行</title><link>http://www.cnblogs.com/redmoon/archive/2008/07/11/1241169.html</link><dc:creator>redmoon</dc:creator><author>redmoon</author><pubDate>Fri, 11 Jul 2008 15:29:00 GMT</pubDate><guid>http://www.cnblogs.com/redmoon/archive/2008/07/11/1241169.html</guid><wfw:comment>http://www.cnblogs.com/redmoon/comments/1241169.html</wfw:comment><comments>http://www.cnblogs.com/redmoon/archive/2008/07/11/1241169.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.cnblogs.com/redmoon/comments/commentRss/1241169.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/redmoon/services/trackbacks/1241169.html</trackback:ping><description><![CDATA[<p>假如你已经喜欢上LINQ，并且已经离不开它，一写代码就会用到扩展方法，Lambda表达式和LINQ；但是恰恰，你无法说服你的客户的机器上都装上.NET 3.5，这时候怎么办呢？这时候，LINQBridge可以让你的问题迎刃而解。</p>
<p>LINQBridge是《C# 3.0 in a Nutshell》的作者开发的一个程序集，它重新实现了.NET 3.5中所有标准的查询操作，以及泛型的Func和Action代理（delegate）；通过利用VS2008的多定向（<em>multi-targeting</em>）特性，大家就可以在VS2008中使用C# 3.0的语法编写运行于.NET 2.0上的程序了。LINQBridge支持扩展方法、Lambda表达式和LINQ的基本语法（只能操作LINQ to Objects）。</p>
<p>LINQBridge的工作原理是基于以下几个技术：</p>
<ol>
    <li>.NET 3.5的CLR还是CLR 2.0，.NET 3.5只是添加一些额外的程序集，以及C# 3.0的编译器（主要针对一些新的语法）</li>
    <li>在VS 2008中，不管把target设定为那个版本的.NET，都是使用C# 3.0的编译器（对此，我以前有随笔谈到过，在.NET 2.0中还是直接能用自动属性）</li>
    <li>C# 3.0的新特性其实是基于泛型和匿名代理的基础上的</li>
</ol>
<p>要使用LINQBridge，其实很简单，首先建立一个.NET 2.0的项目，或者把目标框架（<strong>Target Framework</strong>）改为.NET 2.0；然后把LINQBridge.dll引用进来；最后在代码文件中添加相应的命名空间（LINQBridge使用的命名空间和System.Core的一样），就可以编写LINQ代码了。</p>
<p>以后，如果你要升级你的运行环境到.NET 3.5，只需要把LINQBridge的引用替换为System.Core就行了。无需更改任何代码。</p>
<p>如果，程序运行的目标机器上安装了.NET 3.5的话，使用LINQBridge也不会产生任何冲突。</p>
<p>上面谈到的都是要基于VS 2008来开发，当然在C# 2.0和VS 2005中还是可以使用LINQBridge的，但是没有了扩展方法、Lambda表达式和查询语法，查询操作的编写将变得非常笨拙。</p>
<p>LINQBridge不仅对于无法马上部署.NET 3.5的客户机器有用，对于ASP.NET的程序也同样有用，比如你现在拥有一个ASP.NET 2.0空间，但是希望使用新的C# 3.0语法。不过由于LINQBridge不支持LINQ to SQL，所以要访问数据库的话，只有使用其他数据访问技术，如LINQ to NHibernate、LINQ to LLBLGen或LINQ to DB4O等。</p>
<p>LINQBridge是免费使用的，并提供源代码。下载地址和英文详细说明为：<a title="http://www.albahari.com/nutshell/linqbridge.html" href="http://www.albahari.com/nutshell/linqbridge.html">http://www.albahari.com/nutshell/linqbridge.html</a></p>
<img src ="http://www.cnblogs.com/redmoon/aggbug/1241169.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41940/" target="_blank">[新闻]惠普139亿美元完成对EDS的收购</a>]]></description></item><item><title>环保软件——由MSN“绿行者”所想到的</title><link>http://www.cnblogs.com/redmoon/archive/2008/07/08/1237826.html</link><dc:creator>redmoon</dc:creator><author>redmoon</author><pubDate>Mon, 07 Jul 2008 16:09:00 GMT</pubDate><guid>http://www.cnblogs.com/redmoon/archive/2008/07/08/1237826.html</guid><wfw:comment>http://www.cnblogs.com/redmoon/comments/1237826.html</wfw:comment><comments>http://www.cnblogs.com/redmoon/archive/2008/07/08/1237826.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.cnblogs.com/redmoon/comments/commentRss/1237826.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/redmoon/services/trackbacks/1237826.html</trackback:ping><description><![CDATA[<p>今天才看到MSN在搞什么&#8220;绿行者&#8221;签名活动，活动地址如下：<a title="http://show.msn.com.cn/imgreen/" href="http://show.msn.com.cn/imgreen/">http://show.msn.com.cn/imgreen/</a></p>
<p>这是一个很好的公益活动，其中也提到&#8220;如果每人每天少乘一层电梯，1年约可减少3.6公斤的二氧化碳排放。&#8221;</p>
<p>我就在想，这个换算值是怎么得到的，于是搜索了一下，得到如下的一个解释：</p>
<blockquote>
</blockquote>
<p><strong>=================</strong></p>
<p>近年来，全球变暖已成为全世界最关心的环保问题，造成全球变暖的主要原因是大量的温室气体产生，而温室气体的主要组成部分就是二氧化碳（CO2），而二氧化碳的大量排放是现代人类的生产生活造成的，归根到底是大量使用各种化石能源（煤炭、石油、天然气）造成的，根据《京都议定书》的规定，各国纷纷制定了减排二氧化碳的计划。<br />
&nbsp;&nbsp;&nbsp; 通过节约化石能源和使用可再生能源，是减少二氧化碳排放的两个关键。在节能工作中，经常需要统计分析二氧化碳减排量的问题，现将网络收集的相关统计方法做一个简单整理，仅供参考。<br />
<strong>1、二氧化碳和碳有什么不同？<br />
</strong><br />
&nbsp;&nbsp;&nbsp; 二氧化碳（CO2）包含1个碳原子和2个氧原子，分子量为44（C-12、O-16）。二氧化碳在常温常压下是一种无色无味气体，空气中含有约1%二氧化碳。液碳和固碳是生物体（动物植物的组成物质）和矿物燃料（天然气，石油和煤）的主要组成部分。一吨碳在氧气中燃烧后能产生大约3.67吨二氧化碳（C的分子量为12，CO2的分子量为44，44/12=3.67）。<br />
&nbsp;&nbsp;&nbsp; 我们在查看减排二氧化碳的相关计算资料时，有些提到的是&#8220;减排二氧化碳量&#8221;（即CO2），有些提到的是&#8220;碳排放减少量&#8221;（以碳计，即C），因此，减排 CO2与减排C，其结果是相差很大的。因此要分清楚作者对减排量的具体含义，它们之间是可以转换的，即减排1吨碳（液碳或固碳）就相当于减排3.67吨二氧化碳。<br />
<strong>2、节约1度电或1公斤煤到底减排了多少&#8220;二氧化碳&#8221;或&#8220;碳&#8221;？<br />
</strong><br />
&nbsp;&nbsp;&nbsp; 发电厂按使用能源划分有几种类型：一是火力发电厂，利用燃烧燃料（煤、石油及其制品、天然气等）所得到的热能发电；二是水力发电厂，是将高处的河水通过导流引到下游形成落差推动水轮机旋转带动发电机发电；三是核能发电厂，利用原子反应堆中核燃料慢慢裂变所放出的热能产生蒸汽（代替了火力发电厂中的锅炉）驱动汽轮机再带动发电机旋转发电；四是风力发电场，利用风力吹动建造在塔顶上的大型桨叶旋转带动发电机发电称为风力发电，由数座、十数座甚至数十座风力发电机组成的发电场地称为风力发电场。<br />
&nbsp;&nbsp;&nbsp; 以上几种方式的发电厂中，只有火力发电厂是燃烧化石能源的，才会产生二氧化碳，而我国是以火力发电为主的国家（据统计，2006年全国发电总量2.83万亿kWh，其中火电占83.2%，水电占14.7%），同时，火力发电厂所使用的燃料基本上都是煤炭（有小部分的天然气和石油），全国煤炭消费总量的 49%用于发电。<br />
&nbsp;&nbsp;&nbsp; 因此，我们以燃烧煤炭的火力发电为参考，计算节电的减排效益。根据专家统计：每节约 1度（千瓦时）电，就相应节约了0.4千克标准煤，同时减少污染排放0.272千克碳粉尘、0.997千克二氧化碳（CO2）、0.03千克二氧化硫（SO2）、0.015千克氮氧化物（NOX）。<br />
&nbsp;&nbsp;&nbsp; 为此可以推算出以下公式计算：<br />
<strong>节约1度电=减排0.997千克&#8220;二氧化碳&#8221;=减排0.272千克&#8220;碳&#8221;<br />
&nbsp;&nbsp;&nbsp; 节约1千克标准煤=减排2.493千克&#8220;二氧化碳&#8221;=减排0.68千克&#8220;碳&#8221;<br />
&nbsp;&nbsp;&nbsp; 节约1千克原煤=减排1.781千克&#8220;二氧化碳&#8221;=减排0.486千克&#8220;碳&#8221;<br />
</strong><br />
&nbsp;&nbsp;&nbsp; （说明：以上电的折标煤按等价值，即系数为1度电=0.4千克标准煤，而1千克原煤=0.7143千克标准煤）<br />
&nbsp;&nbsp;&nbsp; 根据相关资料报道，CO2（二氧化碳）的碳（C）排放系数（t/tce）（吨/吨标煤）中，国家发改委能源研究所推荐值为0.67、日本能源经济研究所参考值为0.68、美国能源部能源信息署参考值为0.69，与以上的推算值（0.68）基本相当。应该说，该系数与火电厂的发电煤耗息息相关，发电煤耗降低、排放系数自然也有所降低。<br />
&nbsp;&nbsp;&nbsp; 用同样方法，也可以推算出节能所减排的碳粉尘、二氧化硫和氮氧化物的排放系数。<br />
<strong>3、节约1升汽油或柴油减排了多少&#8220;二氧化碳&#8221;或&#8220;碳&#8221;？<br />
</strong><br />
&nbsp;&nbsp;&nbsp; 根据BP中国碳排放计算器提供的资料：<br />
<strong>&nbsp;&nbsp;&nbsp; 节约1升汽油=减排2.3千克&#8220;二氧化碳&#8221;=减排0.627千克&#8220;碳&#8221;<br />
&nbsp;&nbsp;&nbsp; 节约1升柴油=减排2.63千克&#8220;二氧化碳&#8221;=减排0.717千克&#8220;碳&#8221;</strong>
</p>
<p>&nbsp;&nbsp;&nbsp; 物质密度不同重量也不同，1升水重1公斤，原油1升=0.86公斤(1吨=1.17千升=7.35桶)；汽油1升=0.73公斤；煤油1升=0.82公斤；轻柴油1升=0.86公斤；重柴油1升=0.92公斤；1升蒸馏酒=0.912公斤。为此推算：<br />
<strong>&nbsp;&nbsp;&nbsp; 节约1千克汽油=减排3.15千克&#8220;二氧化碳&#8221;=减排0.86千克&#8220;碳&#8221;<br />
&nbsp;&nbsp;&nbsp; 节约1千克柴油=减排3.06千克&#8220;二氧化碳&#8221;=减排0.83千克&#8220;碳&#8221;</strong>
</p>
<p><strong>source:<a title="http://xmecc.smexm.gov.cn/2008-2/2008214165039.htm" href="http://xmecc.smexm.gov.cn/2008-2/2008214165039.htm">http://xmecc.smexm.gov.cn/2008-2/2008214165039.htm</a></strong></p>
<strong>=================<br />
</strong>
<blockquote>
</blockquote>
<p>从我的专业角度来看上面的数据（<strong>节约1度电=减排0.997千克&#8220;二氧化碳&#8221;</strong>）其实是不正确的，或者说比实际的要少。以LCA的观点来看，最终用户消耗一度电，产生的二氧化碳排放，不能仅仅从能量换算这里来看。其实在发电和用电的整个生命过程中，如下几个步骤也产生了二氧化碳的排放：</p>
<ol>
    <li>挖煤运煤也需要消耗额外的能源（比如石油）；</li>
    <li>建火电厂，需要钢铁，水泥等，这些东西的生产过程和运输过程也会产生二氧化碳；</li>
    <li>发电过程，这个自然不必说；</li>
    <li>输电过程，要建立电网，需要用到水泥，钢铁，铜等金属，同样也有额外的二氧化碳；</li>
</ol>
<p>所以说，用一度电产生的&#8220;二氧化碳&#8221;要大于0.997千克。就算是水力发电，也同样存在建造大坝，水轮机生成，大坝蓄水造成植物腐烂产生二氧化碳等问题。</p>
<p>据说，</p>
<p>那么大家一定会问，那么是多少呢？我也不知道，只是在中国不知道（为什么？两个字——落后）。日本、欧洲，甚至越南都能算的出来。</p>
<p>当然，我现在也正是为了这个而努力。我们开发了相关的LCA分析软件（国际上比较著名的有SimaPro，Gabi等）；但是基础数据很难收集和获得。</p>
<p>好了，说道这里，该来说一下：什么是环保软件了——就是使用软件的方式来支持环境保护事业的，或者在节能方面进行了考虑的软件。</p>
<p>上面的后半句话，引出了另外一个概念——可持续计算。以后的IT系统，不仅要考虑安全性，稳定性，可用性，可扩展性，可伸缩性等外，还需要考虑一个可持续性（可持续发展）的问题。毕竟，环境问题已经非常严重，尤其中国更是！！</p>
<p>前几天，微软发布了一个新站点：<a href="http://www.microsoft.com/environment/">Microsoft Environment: Innovating to Improve Our Planet</a></p>
=====================
<blockquote>
</blockquote>
<p>这一站点主要关注软件如何从技术角度帮助人们和企业共同维护环境的持续性。该站点包括的内容有：Windows Server 2008 如何节能的白皮书，购买个人电脑时也考虑节能的因素的视频短篇等等。该站点是从技术角度描述微软数据中心的独到之处，即出于节能方面考虑动力的管理，虚拟化理论如何被应用到环境保护中去。 </p>
<p>source : <a title="http://www.cnbeta.com/articles/58761.htm" href="http://www.cnbeta.com/articles/58761.htm">http://www.cnbeta.com/articles/58761.htm</a></p>
<blockquote>
</blockquote>
<p>=====================<br />
</p>
<p>另外，可持续计算的相关文章这里有一些：<a title="http://technet.microsoft.com/en-us/magazine/cc462910.aspx" href="http://technet.microsoft.com/en-us/magazine/cc462910.aspx">http://technet.microsoft.com/en-us/magazine/cc462910.aspx</a></p>
<p>接下来，我愿意和大家更多的分享一些环保软件和可持续计算的东西。</p>
<p>（PS：此文放在首页，只为让更多的人来关注环境问题，且和软件技术还是相关的。请dudu谅解和支持！）</p>
<img src ="http://www.cnblogs.com/redmoon/aggbug/1237826.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41939/" target="_blank">[新闻]搜狗五笔输入法发布</a>]]></description></item><item><title>如何在现有通过AttachDbFilename连接的Sql Express数据库上设置membership</title><link>http://www.cnblogs.com/redmoon/archive/2008/06/23/1228005.html</link><dc:creator>redmoon</dc:creator><author>redmoon</author><pubDate>Mon, 23 Jun 2008 03:30:00 GMT</pubDate><guid>http://www.cnblogs.com/redmoon/archive/2008/06/23/1228005.html</guid><wfw:comment>http://www.cnblogs.com/redmoon/comments/1228005.html</wfw:comment><comments>http://www.cnblogs.com/redmoon/archive/2008/06/23/1228005.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/redmoon/comments/commentRss/1228005.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/redmoon/services/trackbacks/1228005.html</trackback:ping><description><![CDATA[<p>这几天，想弄一个小网站，打算用asp.net service来处理登录等问题，但是之前我已经建立好了一个数据库“MyDB”，打算在这个MyDB上添加membership等的数据表和存储过程。</p> <p>然后查了资料，都是这样的：</p> <h3><a href="http://www.cnblogs.com/kangtr/archive/2005/12/11/295135.html">[ASP.NET 2.0 Security FAQs]如何设置SQL Server或SQL Express数据库，使其支持Membership、Profiles和Role </a></h3> <p>使用<strong>Aspnet_regsql.exe</strong>来配置确实很方便，不过，它只能读取到数据库引擎中附加的数据库，而对于我的MyDB却找不到，主要原因是，我的连接字符串是这样配置：AttachDbFilename=|DataDirectory|\MyDB.mdf</p> <p>不过，我想到一个技巧，就是先在VS中关闭对MyDB的连接，然后在SQL Server Management Studio中附加这个MyDB，然后就可以使用<strong>Aspnet_regsql.exe</strong>来配置。</p> <p>配置完成后，在从数据库中Detach掉。</p> <p>最后启动ASP.NET Configuration来进行数据库的配置。</p><img src ="http://www.cnblogs.com/redmoon/aggbug/1228005.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41938/" target="_blank">[新闻]新学年开始 大学生适用的十大互联网应用</a>]]></description></item><item><title>Zune XNA 开发（一，Hello Zune）</title><link>http://www.cnblogs.com/redmoon/archive/2008/06/18/1224608.html</link><dc:creator>redmoon</dc:creator><author>redmoon</author><pubDate>Wed, 18 Jun 2008 05:41:00 GMT</pubDate><guid>http://www.cnblogs.com/redmoon/archive/2008/06/18/1224608.html</guid><wfw:comment>http://www.cnblogs.com/redmoon/comments/1224608.html</wfw:comment><comments>http://www.cnblogs.com/redmoon/archive/2008/06/18/1224608.html#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://www.cnblogs.com/redmoon/comments/commentRss/1224608.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/redmoon/services/trackbacks/1224608.html</trackback:ping><description><![CDATA[<ul> <li>购买一个Zune，Zune 1代，2代都可以，4G，8G，30G，80G都可以。  <li>从<a href="http://www.zune.net">www.zune.net</a>下载安装ZuneSoftware，同时要把Zune升级到2.5的固件（firmware），如何升级请参考相关文档。  <li>安装Visual Studio 2008 标准版（或更高），或者Visual C# 2008 Express Edition  <li>下载<a href="http://www.cnblogs.com/redmoon/archive/2008/06/13/1219149.html">XNA Game Studio 3.0 CTP</a>，并安装  <li>把Zune通过数据线连接到电脑，如果Zune Software打开的话，要把其关闭。  <li>现在打开VS 2008，在“Tools”上选择“Launch XNA Game Studio Device Center”，来启动游戏设备的管理器，如图：</li></ul> <p><a href="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/ZuneXNAHelloZune_A24B/image_4.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/ZuneXNAHelloZune_A24B/image_thumb_1.png" width="644" height="398"></a> </p> <ul> <li>在“XNA Game Studio Device Center”上点击“Add Device”，选择“Zune”，这时会列出你连接到电脑上的Zune，其中的名称是在通过ZuneSoftware上设置好，如图：</li></ul> <p><a href="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/ZuneXNAHelloZune_A24B/image_6.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/ZuneXNAHelloZune_A24B/image_thumb_2.png" width="644" height="369"></a> </p> <ul> <li>点击“Next”，则XGS连接你的Zune设备，最后显示成功连接Zune设备的信息，如果只有一个设备的话，它就被设置为默认设备。  <li>接着，用VS创建一个Zune Game的项目，如下图：</li></ul> <p><a href="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/ZuneXNAHelloZune_A24B/image_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/ZuneXNAHelloZune_A24B/image_thumb.png" width="605" height="484"></a> </p> <ul> <li>在创建好项目后，为了更好的测试Zune游戏，可以创建一个Windows的copy，就是在ZuneXNA1项目上，右键，选择“Create Copy of Project for Windows”，则会自动创建一个Windows XNA项目，如图：</li></ul> <p><a href="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/ZuneXNAHelloZune_A24B/image_8.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/ZuneXNAHelloZune_A24B/image_thumb_3.png" width="275" height="347"></a> </p> <ul> <li>在项目中的“Content”节点上，右键，“Add”，“New Item”，在显示出的对话框中，选择“Sprite Font”，输入名称“Tahoma.spritefont”；这个实际上就是添加一个字体XML描述文件到项目来引用系统中的字体，当然要添加的字体在Windows系统中要存在（在这里你可以首先添加一些比较艺术化的字体到系统中，再这里引用），对于其中的内容，添加后VS就自动打开，你可以看到其中有FontName，Size等描述。  <li>在Content中添加的每一个文件，都系统处理为Asset文件（对于这个，以后的文章我们来深入探讨），对于每个Asset文件都可以设置“Asset Name”，选择文件，切换到属性窗口，就可以编辑“Asset Name”。对于上述的Tahoma.spritefont文件，默认的Asset Name就是“Tahoma”。  <li>打开Game1.cs文件，在构造器方法中添加如下代码（此代码其实对于设备来说可以不添加，但是其可以修改Windows的项目和Zune的分辨率（320x240）一样，以方便调试）：</li></ul> <p><a href="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/ZuneXNAHelloZune_A24B/image_10.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/ZuneXNAHelloZune_A24B/image_thumb_4.png" width="489" height="164"></a> </p> <ul> <li>在Game1类中添加一个SpriteFont本地变量，如：SpriteFont _tahomaSprite;  <li>在Game1类中的LoadContent方法里面，加载我们添加的字体描述文件，如：_tahomaSprite = Content.Load&lt;SpriteFont&gt;("Tahoma");</li></ul> <p><a href="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/ZuneXNAHelloZune_A24B/image_12.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/ZuneXNAHelloZune_A24B/image_thumb_5.png" width="621" height="273"></a> </p> <ul> <li>在Game1类中的Draw方法中，添加输出文字的代码，如：</li></ul> <p><a href="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/ZuneXNAHelloZune_A24B/image_14.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/ZuneXNAHelloZune_A24B/image_thumb_6.png" width="644" height="167"></a> </p> <ul> <li>在上面的代码中，第一行，是把整个屏幕清空，并填充上黑色背景，spriteBatch.Begin()和spriteBatch.End()是开始和结束Sprite的输出过程，spriteBatch.DrawString(_tahomaSprite, "Hello Zune", Vector2.Zero, Color.White)这句就是使用定义好的字体Sprite，使用“Hello Zune”字符串，在Vector2定义的位置（Zero表明是X，Y都是0），输出字体颜色为白色的内容。  <li>接下来，该进行调试了，为了方便调试，可以先把Zune的项目“Unload”掉，以Windows的副本来进行调试，如：</li></ul> <p><a href="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/ZuneXNAHelloZune_A24B/image_16.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/ZuneXNAHelloZune_A24B/image_thumb_7.png" width="177" height="244"></a> </p> <ul> <li>现在重新加载Zune项目，并设为启动项目，按F5，就可以看到VS把我们开发的游戏的程序集和内容文件（被编译为xnb文件）部署到Zune中，并启动。  <li>现在你应该可以在Zune看到“Hello Zune”的字样了。</li></ul> <p>本文中的项目的源代码：<a href="http://www.91files.com/?9IBWXR8RNTYXRP975OJF">http://www.91files.com/?9IBWXR8RNTYXRP975OJF</a></p> <p>本文是Zune XNA开发的基础入门，其中的内容参考了<a title="http://blogs.msdn.com/dawate/archive/2008/05/08/xna-games-on-the-zune-a-brief-how-to.aspx" href="http://blogs.msdn.com/dawate/archive/2008/05/08/xna-games-on-the-zune-a-brief-how-to.aspx">http://blogs.msdn.com/dawate/archive/2008/05/08/xna-games-on-the-zune-a-brief-how-to.aspx</a></p> <p>我打算把Zune XNA 开发写成一个系列，在下面一篇文章，我会介绍Texture2D的初级使用。</p><img src ="http://www.cnblogs.com/redmoon/aggbug/1224608.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41937/" target="_blank">[新闻]Google拟在9月发布自有浏览器 或采用火狐内核</a>]]></description></item><item><title>XNA Game Studio 3.0 CTP让Zune不仅仅是媒体播放器</title><link>http://www.cnblogs.com/redmoon/archive/2008/06/13/1219149.html</link><dc:creator>redmoon</dc:creator><author>redmoon</author><pubDate>Fri, 13 Jun 2008 03:42:00 GMT</pubDate><guid>http://www.cnblogs.com/redmoon/archive/2008/06/13/1219149.html</guid><wfw:comment>http://www.cnblogs.com/redmoon/comments/1219149.html</wfw:comment><comments>http://www.cnblogs.com/redmoon/archive/2008/06/13/1219149.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.cnblogs.com/redmoon/comments/commentRss/1219149.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/redmoon/services/trackbacks/1219149.html</trackback:ping><description><![CDATA[<p>2008-5-8 XNA Game Studio 3.0 CTP悄悄发布了，下面引用其他网站的介绍：</p>
<blockquote>
<p>今天，微软发布了XNA Game Studio 3.0游戏开发工具的首个社区技术预览版（CTP），最大的亮点就是支持Zune游戏。 </p>
<p>XNA Game Studio 3.0正式版预计到今年年底才会发布，目前的CTP预览版仅支持Zune游戏开发，尚不支持Xbox 360游戏。除了Zune游戏外，该开发工具还能够访问Zune播放器中存储的非DRM保护音乐，允许开发者自定义游戏背景音乐，或开发出实时音乐虚拟游戏等等。另外，使用它开发的游戏还能够支持ad-hoc点对点互联，支持多台Zune无线联机对战。 </p>
<p>XNA Game Studio 3.0 CTP仅支持32位Windows系统，需要Visual Studio 2008 Standard Edition或以上开发环境的支持（必须安装C#，或至少安装Visual C# 2008 Express Edition）。现在网络上已经有首批Zune游戏放出，可以通过XNA Game Studio 3.0 CTP在Zune上安装试玩。 </p>
<p>下载地址 </p>
<p>Visual C# 2008 Express Edition<br />
<a href="http://www.microsoft.com/express/vcsharp/Default.aspx">http://www.microsoft.com/express/vcsharp/Default.aspx</a> </p>
<p>Microsoft XNA Game Studio 3.0 CTP<br />
<a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=DF4AF56A-58A7-474C-BFD0-7CF8ED3036A3&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyId=DF4AF56A-58A7-474C-BFD0-7CF8ED3036A3&amp;displaylang=en</a> </p>
<p>Zune游戏 </p>
<p>《Galactic Wars 3》<br />
<a href="http://focusedgames.com/downloads/GW3_050708.zip">http://focusedgames.com/downloads/GW3_050708.zip</a><br />
《Allien Aggressors》针对Zune 30<br />
<a href="http://nick.gravelyn.com/2008/05/07/alien-aggressors-zune-edition/">http://nick.gravelyn.com/2008/05/07/alien-aggressors-zune-edition/</a> </p>
<p>source：<a title="http://www.17tech.com/news/2008050859060.shtml" href="http://www.17tech.com/news/2008050859060.shtml">http://www.17tech.com/news/2008050859060.shtml</a></p>
</blockquote>
<p>同时官方网站也给出了一个示例：AlienGame，<a title="http://creators.xna.com/en-us/zune_development" href="http://creators.xna.com/en-us/zune_development">http://creators.xna.com/en-us/zune_development</a>： </p>
<p><img src="http://creators.xna.com/assets/cms/images/Alien_Zune2.jpg" alt="" />  </p>
<p>这个示例中的源代码值得好好学习一下，尤其它的ScreenManager文件夹包含了开发游戏的一些基础功能。如果我后面有时间的话，会和大家分享一下对这个示例剖析。 </p>
<p>对于Zune 游戏抱有热情的人还有这位：<a href="http://www.zunexna.com/">http://www.zunexna.com/</a>，上面的一些博客文章对于Zune的游戏开发很有用的。 </p>
<p>另外对于Zune玩家，<a href="http://www.zuneboards.com/">http://www.zuneboards.com</a>是绝对不能错过的网站，<a href="http://www.zuneboards.com/forums/zune-games-171/">http://www.zuneboards.com/forums/zune-games-171/</a>下面有好几个游戏和应用程序（包括Clock，Calculator，Instant messaging）。 </p>
<p>我在上面收集了一些Zune Game，打包上传到这里了 ：<a title="http://www.fs2you.com/files/9810075c-38f5-11dd-a51a-00142218fc6e/" href="http://www.fs2you.com/files/9810075c-38f5-11dd-a51a-00142218fc6e/">http://www.fs2you.com/files/9810075c-38f5-11dd-a51a-00142218fc6e/</a> </p>
<p>之前，我也谈到过对Zune支持游戏的看法： </p>
<blockquote>
<p>Zune既要vs iPod，又要vs PSP。<br />
不过Zune现在销量不是很好。其实功能和iPod没有太大区别，主要是iPod认同感多得多。<br />
对于PSP来说，感觉Zune终归不是专业的游戏机，没有内置GPU，按钮操作不是针对游戏的。但是不排除Zune 三代会提供更好的游戏体验，反正现在Zune的游戏开发平台基本已经铺通。</p>
</blockquote>
<p>在知道Zune可以支持XNA开发游戏后，我就在想Zune里面应该内置了一个.NET，但之前一直有这样的疑惑： </p>
<blockquote>
<p>我一直没有搞懂Zune用的是那个版本的.NET，是.NET CF还是.NET Micro，还是专门定制的。<br />
反正，我往Zune部署游戏的时候，首先部署了mscorlib，System，Microsoft.Xna.Framework等程序集。<br />
但是加载程序集和JIT方面的东西，没有部署，应该是已经和firmware集成在一起了。<br />
我看到Zune的about里面，有Bootloader 1613，Xldr 2.2.1040.0的字样，这个应该就是.NET的启动内核了。</p>
</blockquote>
<p>不过现在我知道了，刚刚为了研究Zune UI Framework（这个下面来说），才发现Zune内部使用的是.NET CF（3.5版本），但和标准的.NET CF 3.5又有所不同，子版本和大小都不一样，包含的命名空间和类是否相同，我没有深入研究。</p>
<table border="1" bordercolor="" cellpadding="2" cellspacing="0" width="400">
    <tbody>
        <tr>
            <td valign="top" width="132">&nbsp;</td>
            <td valign="top" width="133">XNA for Zune</td>
            <td valign="top" width="133">.NET CF 3.5</td>
        </tr>
        <tr>
            <td valign="top" width="132">mscorlib</td>
            <td valign="top" width="133">3.5.8044（168KB）</td>
            <td valign="top" width="133">3.5.7283（209KB）</td>
        </tr>
        <tr>
            <td valign="top" width="132">system</td>
            <td valign="top" width="149">3.5.8044（64KB）</td>
            <td valign="top" width="165">3.5.7283（109KB）</td>
        </tr>
        <tr>
            <td valign="top" width="132">system.xml</td>
            <td valign="top" width="149">3.5.8044（92KB）</td>
            <td valign="top" width="165">3.5.7283（101KB）</td>
        </tr>
    </tbody>
</table>
<p>好了，现在来说说Zune UI Framework（或者说XNA UI Framework）。我们知道XNA Framework是用于开发游戏的，所以它只提供了针对图像，2D，3D操作的功能，但要开发一个应用程序（我说的是Application，而非Game）的话，一个易于编程的UI Framework是必要的。</p>
<p>当然开发简单的应用，如Clock的话，自己使用XNA的Graphic命名空间就可以完成。</p>
<p>要开发XNA UI Framwork，有两种方式：基于XNA提供的图形库开发一套Windows Forms，或基于图形库开发一套WPF（Windows Presentation Foundation）。</p>
<p>第一种方式，已经有人在做了：<a title="http://forums.xna.com/forums/p/2396/68400.aspx" href="http://forums.xna.com/forums/p/2396/68400.aspx">http://forums.xna.com/forums/p/2396/68400.aspx</a></p>
<p>不过它这个&#8220;User Interface in Xna&#8221;还只是XNA上的，主要针对Windows和XBOX，如图：</p>
<p><img src="http://msmvps.com/photos/valentin/images/916786/original.aspx" alt="" /> </p>
<p>不知道这个东西能否移植到Zune上。毕竟针对Zune的XNA都还是有所区别的。</p>
<p>第二种方式，就是我想到了，基于XNA的图形库，以及Zune版本的.NET CF，来实现一个Zune版本的WPF。这个不是天方夜谭，其实WPF已经出现在了.NET Micro里了，这里有一个<a href="http://bansky.net/blog/2008/01/tetris-game-in-dot-net-micro-framework/">示例</a>，也是游戏。我截了个图，大家看一下.NET Micro的命名空间：</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/XNAGameStudio3.0CTPZune_95A5/image_2.png"><img style="border: 0px none ;" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/redmoon/WindowsLiveWriter/XNAGameStudio3.0CTPZune_95A5/image_thumb.png" border="0" width="244" height="171" /></a> </p>
<p>现在我们要做的就是把这个Tiny WPF移植到Zune上。</p>
<p>其实，还有第三种，就是微软推出可运行于Zune下的Silverlight版本（本质上和第二种类似）。</p>
<p>对于Zune UI Framework只是我个人的想法，要实现还需要不断的研究。</p>
<p>=============</p>
<p>最后说一下，对于想体验Zune游戏的朋友，买个Zune是必须的。如果你是MVP，应该可以在微软的商店买到（不过据说现在已经US Only了）。不过，现在淘宝上有工厂流出的次品（是外观有问题，功能没问题，配件无法确定是否正品），也比较便宜，700RMB，Zune 8G。我就是买的这个。</p>
<p>这里是我的Zune 8G（桃红色，没办法没有黑色了）：</p>
<p><a title="http://picasaweb.google.com/redmoon17/Temp/photo#5211209217067685458" href="http://picasaweb.google.com/redmoon17/Temp/photo#5211209217067685458">http://picasaweb.google.com/redmoon17/Temp/photo#5211209217067685458</a></p>
<p><a title="http://picasaweb.google.com/redmoon17/Temp/photo#5211209262034293618" href="http://picasaweb.google.com/redmoon17/Temp/photo#5211209262034293618">http://picasaweb.google.com/redmoon17/Temp/photo#5211209262034293618</a></p>
<img src ="http://www.cnblogs.com/redmoon/aggbug/1219149.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41936/" target="_blank">[新闻]微软正在构思将Wi-Fi带入汽车</a>]]></description></item><item><title>Silverlight 2 Beta 2发布</title><link>http://www.cnblogs.com/redmoon/archive/2008/06/07/1215508.html</link><dc:creator>redmoon</dc:creator><author>redmoon</author><pubDate>Sat, 07 Jun 2008 02:50:00 GMT</pubDate><guid>http://www.cnblogs.com/redmoon/archive/2008/06/07/1215508.html</guid><wfw:comment>http://www.cnblogs.com/redmoon/comments/1215508.html</wfw:comment><comments>http://www.cnblogs.com/redmoon/archive/2008/06/07/1215508.html#Feedback</comments><slash:comments>38</slash:comments><wfw:commentRss>http://www.cnblogs.com/redmoon/comments/commentRss/1215508.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/redmoon/services/trackbacks/1215508.html</trackback:ping><description><![CDATA[<p>早就知道Silverlight 2 Beta 2要在本周末发布。昨晚没有等到。今天一早终于等到了。</p>
<h3><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=50A9EC01-267B-4521-B7D7-C0DBA8866434&amp;displaylang=en">Microsoft Silverlight Tools Beta 2 for Visual Studio 2008</a></h3>
<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=bce7684a-507b-4fc6-bc99-6933cd690cab&amp;DisplayLang=en">The Microsoft&#174; Silverlight&#8482; 2 SDK Beta 2 Documentation</a><br />
<br />
<a target="_blank" href="https://www.microsoft.com/downloads/details.aspx?FamilyID=ba7b510d-0646-4d06-9834-cb82d669872a">Microsoft Silverlight 2 Software Development Kit</a> <br />
<h4><a href="http://download.microsoft.com/download/8/5/8/858627dc-9aa3-4f86-bb3d-729204927da3/Blend.en.msi">Expression Blend 2.5 June Preview</a></h4>
<h4><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=457b17b7-52bf-4bda-87a3-fa8a4673f8bf">Deep Zoom Composer</a></h4>
<p>另外，很多重要的控件开发商，也在逐步推出Silverlight 2的控件了</p>
<p><strong><a href="http://labs.componentone.com/Sapphire/?utm_source=silverlight.net&amp;utm_medium=banner&amp;utm_campaign=silverlight">ComponentOne Studio&#174; for Silverlight Pre-release</a></strong></p>
<h5><a href="http://www.devexpress.com/Products/NET/Components/Silverlight/Grid/">AgDataGrid Suite for Silverlight</a></h5>
<h5>AgDataGrid是免费的，有源代码的哦，不过现在还下载不到。</h5>
<h5>DevExpress出品的控件，我之前用过，确实很好用；其实C1的我也用过，各有千秋。以后我会两个都试用一下。</h5>
<p>下面是一些新特性：</p>
<ul>
    <li><strong>UI Framework:</strong> Beta 2 includes improvements in animation support, error handling and reporting, automation and accessibility support, keyboard input support, and general performance. This release also provides more compatibility between Silverlight and WPF.  </li>
    <li><strong>UI框架的加强</strong>：Beta 2 包含在动画支持、错误处理和报表，自动化和易访问性方面的支持、键盘输入的支持和常用性能方面都有所提高。这个版本也提供了在Silverlight和WPF之间更好的兼容性。 </li>
    <li><strong>Rich Controls:</strong> Beta 2 includes a new templating model called Visual State Manager that allows for easier templating for controls. Other features include the introduction of a TabControl, text wrapping and scrollbars for TextBox.&nbsp; DataGrid additions include Autosize, Reorder, Sort, performance increases and more. Most controls are now in the runtime instead of packaged with the application.  </li>
    <li><strong>丰富的控件</strong>：Beta 2包含了新的称为视觉状态管理器（Visual State Manager）的模板化模型，允许对控件进行更容易的模板化。也包含了其他的一些控件和特性：如TabControl、TextBox的文本折行和滚动条支持。DataGrid额外添加了Autosize、Reorder、Sort、性能提高等等。很多控件现在已经加入到运行时的程序集了，而不是和应用程序打包在一起了。 </li>
    <li><strong>Networking Support:</strong> Beta 2 includes improved Cross Domain support and security enhancements, upload support for WebClient, and duplex communications (&#8220;push&#8221; from server to Silverlight client).  </li>
    <li><strong>网络支持</strong>：Beta 2包含了对跨域支持的加强和安全方面的加强，WebClient支持上传和双向同学（以及从服务器&#8220;推&#8221;数据到Silverlight客户端） </li>
    <li><strong>Rich Base Class Library:</strong> Beta 2 includes improved threading abilities, LINQ-to-JSON, ADO.NET Data Services support, better support for SOAP and other improvements to make networking and data handling easier.  </li>
    <li><strong>丰富的基类库</strong>：Beta 2包含了线程功能的增强，LINQ to JSOn、ADO.NET Data Services的支持，对SOAP更好的支持，以及让网络和数据处理更容易的其他增强。 </li>
    <li><strong>Deep Zoom:</strong> Beta 2 introduces a new XML-based file format for Deep Zoom image tiles as well as a new MultiScaleTileSource that enables existing tile databases to utilize Deep Zoom. Better, event driven notification for zoom/pan state is another improvement in Silverlight 2 Beta 2.</li>
    <li><strong>Deep Zoom更好的支持</strong>：Beta 2引入了针对Deep Zoom图像块的基于XML的文件格式，以及一个新的MultiScaleTileSource对象来实现把现存的图片块数据库转换为Deep Zoom。针对缩放更好的，事件驱动的提醒是Silvelight 2 Beta 2中的有一个增强。</li>
</ul>
<img src ="http://www.cnblogs.com/redmoon/aggbug/1215508.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41935/" target="_blank">[新闻]对比测试：IE8 Beta 2 VS Firefox 3.0.1</a>]]></description></item><item><title>Moonlight已经可以下载，目前是0.6版</title><link>http://www.cnblogs.com/redmoon/archive/2008/05/16/1200003.html</link><dc:creator>redmoon</dc:creator><author>redmoon</author><pubDate>Fri, 16 May 2008 02:16:00 GMT</pubDate><guid>http://www.cnblogs.com/redmoon/archive/2008/05/16/1200003.html</guid><wfw:comment>http://www.cnblogs.com/redmoon/comments/1200003.html</wfw:comment><comments>http://www.cnblogs.com/redmoon/archive/2008/05/16/1200003.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/redmoon/comments/commentRss/1200003.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/redmoon/services/trackbacks/1200003.html</trackback:ping><description><![CDATA[<p>汶川地震中，Novell发布了<a href="http://www.go-mono.com/moonlight/">Moonlight</a> 0.6版，同时支持Silverlight 1.0和Silverlight 2.0，称之为Profile 1.0和Profile 2.0.</p> <p>Moonlight是一个开源的项目，主要就是基于Mono（一个开源的CLI的实现）将微软Silverlight 移植到了 Unix 系统上。Moonlight 是由Novell开发的，不是微软的项目，但微软对Moonlight进行了帮助。</p> <p>随着Moonlight的发布，微软RIA平台逐步成型。</p> <p>关于Moonlight，我随后会逐步发一些文章来介绍。目前的情况还是无法定神。</p> <p>PS：汶川是被震到了，成都是被吓到了。引用<a href="http://blog.joycode.com/svs/archive/2008/05/14/115115.aspx">Sunwei</a>的话说：</p> <blockquote> <p>还有主要的恐惧不是来源于那次主震，而是接连不断的余震，震动的不是大楼，而是震得是你的心，不断地折磨你，摧毁你的意志，说不怕都瞎扯。所以要不断地给自己信号，冷静没什么事了。 <p>目前本人还没有出来呢，但情况还好，可以接受了。就是睡觉不踏实，经常感觉有震动，由于神经高度紧张，有点像地动仪了。</p></blockquote><img src ="http://www.cnblogs.com/redmoon/aggbug/1200003.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41934/" target="_blank">[新闻]iPhone存在严重密码安全漏洞</a>]]></description></item><item><title>《.NET Web 高级开发》或许应该改名？</title><link>http://www.cnblogs.com/redmoon/archive/2008/04/17/1158952.html</link><dc:creator>redmoon</dc:creator><author>redmoon</author><pubDate>Thu, 17 Apr 2008 15:19:00 GMT</pubDate><guid>http://www.cnblogs.com/redmoon/archive/2008/04/17/1158952.html</guid><wfw:comment>http://www.cnblogs.com/redmoon/comments/1158952.html</wfw:comment><comments>http://www.cnblogs.com/redmoon/archive/2008/04/17/1158952.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/redmoon/comments/commentRss/1158952.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/redmoon/services/trackbacks/1158952.html</trackback:ping><description><![CDATA[<p>这本书的写作是一个痛苦的过程。这个痛苦在于——写的过程中才明白是这样难表达出自己的一些想法，而这些想法要书写成文字又是那么的难深入；所以一度想放弃，最后还是被动完成。</p> <p>或许是被这个书名所累，也许改成《.NET Web开发全面入门》更恰当些！</p> <p>罪过！悔也！</p><img src ="http://www.cnblogs.com/redmoon/aggbug/1158952.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41931/" target="_blank">[新闻]GC2008：星际争霸2进程报告 微调进程延续</a>]]></description></item><item><title>Silverlight for Google Picasa</title><link>http://www.cnblogs.com/redmoon/archive/2008/04/13/1151775.html</link><dc:creator>redmoon</dc:creator><author>redmoon</author><pubDate>Sun, 13 Apr 2008 14:42:00 GMT</pubDate><guid>http://www.cnblogs.com/redmoon/archive/2008/04/13/1151775.html</guid><wfw:comment>http://www.cnblogs.com/redmoon/comments/1151775.html</wfw:comment><comments>http://www.cnblogs.com/redmoon/archive/2008/04/13/1151775.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://www.cnblogs.com/redmoon/comments/commentRss/1151775.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/redmoon/services/trackbacks/1151775.html</trackback:ping><description><![CDATA[<p>继<a href="http://www.codeplex.com/eatwpf">EatSilverlight</a>之后，我又创建了一个Silverlight的开源项目，有兴趣的朋友一起来弄啊！</p>
<p><a href="http://code.google.com/p/silverlight-picasa/">SilverlightPicasa</a>是一个Google相册的Silverlight Client。</p>
<p>先说实现技术：</p>
<p>方案1，在Silverlight中使用Google GData的.NET Library，结果&#8230;&#8230;，GDataAPI是使用.NET 1.1实现的，不是针对完整版的.NET，其中利用很多Component Model的东西，集合使用CollectionBase，这些在Silverlight都不支持；这种方案是最好的，可惜要把GDataAPI迁移到.NET 2.0，再迁移到Silverlight 2.0，困难重重啊。对此我还专门提交了一个Issue，结果也是无果，这个Issue可以访问这里以获得详情：<a title="http://code.google.com/p/google-gdata/issues/detail?id=119" href="http://code.google.com/p/google-gdata/issues/detail?id=119">http://code.google.com/p/google-gdata/issues/detail?id=119</a></p>
<p>方案2：使用WebClient + LINQ to XML来Cross Domain访问Google的ATOM接口，可惜啊不知道是微软的Silverlight不完善，还是Google的GData有问题。现在的Silverlight 2对Cross Domain Call是支持了，但是只支持<code>crossdomain.xml文件在HOST上的ROOT位置，并且是自动加载的；而Google又装怪，非要把<code>crossdomain.xml</code>放在<code><a href="http://photos.googleapis.com/data/crossdomain.xml">http://photos.googleapis.com/data/crossdomain.xml</a>；Flex倒是有</code></code>System.security.loadPolicyFile("http://photos.googleapis.com/data/crossdomain.xml"); 可以自定义加载。所以，Google负责GData for .NET的开发人员就干脆告诉我Silverlight 2不支持cross domain calls。所以此方案也作罢。<br />
</p>
<p>为此，我也给微软提交了一个建议：<a title="https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=337970&amp;SiteID=212" href="https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=337970&amp;SiteID=212">https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=337970&amp;SiteID=212</a></p>
<pre>方案3：回到Silverlight 1.1处理cross domain call的老方法上，在Web Site中创建一个Web Service（也可用WCF Service），在Web Site中引用GDataAPI的相关程<br />
序集；在Web Site中定义一些实体类，在Web Service中的WebMethod中使用GDataAPI来获取数据，并映射为自定义的实体类返回给Silverlight Client。我目前的实现<br />
方式就是这样。</pre>
<pre>方案4：待到Silverlight有LoadPolicyFile方法后，还是利用WebClient + LINQ to XML来Cross Domain访问Google的ATOM接口。<br />
这是最佳方案（懒得和GDataAPI for .NET纠缠）。</pre>
<pre>再说说功能：</pre>
<pre>由于现在使用Web Service实现跨域代理，所以暂时不考虑验证以及需要权限的操作，则目前想到的功能为：</pre>
<ul>
    <li><font face="Courier New">输入某个用户名称，列出这个用户的所有public的album，可以用很炫的效果来列出</font></li>
    <li><font face="Courier New">选择每个album，列出其中的photos，可以用很炫的效果来列出</font></li>
    <li><font face="Courier New">可以对album中的photos进行slidshow</font></li>
</ul>
<p><font face="Courier New">有兴趣的朋友，可以访问：<a title="http://code.google.com/p/silverlight-picasa/" href="http://code.google.com/p/silverlight-picasa/">http://code.google.com/p/silverlight-picasa/</a> ，来加入，也希望有兴趣的Designer能加入。</font></p>
<img src ="http://www.cnblogs.com/redmoon/aggbug/1151775.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41930/" target="_blank">[新闻]科学家在世界最大对撞机中观察到首批粒子</a>]]></description></item></channel></rss>