<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Nevin Dong's Blog</title><link>http://blogs.technet.com/b/nevin_dongs_blog/</link><description /><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>自己动手打通Windows Store App, Windows Azure Mobile Service和Live Connect services</title><link>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/05/22/windows-store-app-windows-azure-mobile-service-live-connect-services.aspx</link><pubDate>Wed, 22 May 2013 03:03:58 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3574036</guid><dc:creator>Nevin (Naiwen) Dong</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/nevin_dongs_blog/rsscomments.aspx?WeblogPostID=3574036</wfw:commentRss><comments>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/05/22/windows-store-app-windows-azure-mobile-service-live-connect-services.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;在开发Windows 8 Store App中，最简便快捷地实现与Windows Azure Mobile Service的移动应用，就是利用Windows Azure Management Portal（管理门户）所提供的初始项目下载，然后根据自己需要增加定制代码。&lt;/p&gt;  &lt;p&gt;为了更好地管理用户和增加安全性，往往增加身份验证功能，例如与Microsoft Live Connect Services连接，实现对LiveID等的验证。当然，也可以集成第三方（例如Facebook, Twitter, Google等）的身份验证服务。&lt;/p&gt;  &lt;p&gt;具体可见：&lt;a href="http://www.windowsazure.com/en-us/develop/mobile/tutorials/get-started-with-users-dotnet/"&gt;http://www.windowsazure.com/en-us/develop/mobile/tutorials/get-started-with-users-dotnet/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;在实际开发中，更多情况是在一个现有的项目基础上进行扩展，增加对Windows Azure Mobile Service的支持。但在具体开放身份验证环节，即Windows Azure Mobile Service和Live Connect services的联通环节，有时候容易出现问题。&lt;/p&gt;  &lt;p&gt;例如，有的时候，虽然可以弹出身份验证对话框，但却一直出现验证失败的信息提示。有时候会觉得是否是Windows Live出了问题，但经过深入分析会发现，实际上问题出现在自己这里，而且涉及到Store App、Windows Azure Mobile Service、Live Connect services和Visual Studio开发项目环境配置等各个相关环节。&lt;/p&gt;  &lt;p&gt;在Visual Studio 2012调试环境输出窗口中，有时候会发现以下类似的信息：“{YOUR JAVASCRIPT FUNCTION NAME}: The authentication process failed with error: The application requesting authentication tokens is either disabled or incorrectly configured.”就是一个非常典型的例子。&lt;/p&gt;  &lt;p&gt;经过归纳和整理，下面列出一些如何自己动手打通Windows Azure Mobile Service和Live Connect services的相对完整的攻略。&lt;/p&gt;  &lt;p&gt;. Windows Store App开发中心的相关配置&lt;/p&gt;  &lt;p&gt;将自己的应用在Windows Store App开发中心（&lt;a href="https://appdev.microsoft.com/StorePortals/en-US/Home/Index"&gt;https://appdev.microsoft.com/StorePortals/en-US/Home/Index&lt;/a&gt;）进行注册和配置。其中在开发和测试阶段至少（和重点）要配置好App Name及Advanced Features。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/5141.clip_5F00_image002_5F00_5334CB40.jpg"&gt;&lt;img title="clip_image002" style="display: inline;" border="0" alt="clip_image002" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/4101.clip_5F00_image002_5F00_thumb_5F00_3592CA74.jpg" width="644" height="347" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;其中，在Advanced Features中要配置好“Push notifications and Live Connect services info”，这个是实现LiveID身份验证所必需的；如果后续使用Windows Push Notification service (WNS)进行提醒服务，这也是必需的。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/5531.clip_5F00_image004_5F00_4469D3C1.jpg"&gt;&lt;img title="clip_image004" style="display: inline;" border="0" alt="clip_image004" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/1145.clip_5F00_image004_5F00_thumb_5F00_1F3C6388.jpg" width="644" height="347" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;b&gt;[&lt;/b&gt;&lt;b&gt;关键操作]&lt;/b&gt;&lt;b&gt;：&lt;/b&gt;&lt;/font&gt;需要将下面的IDENTITY NAME和PUBLISHER信息记录下来：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/3554.clip_5F00_image006_5F00_0272C8A6.jpg"&gt;&lt;img title="clip_image006" style="display: inline;" border="0" alt="clip_image006" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/1643.clip_5F00_image006_5F00_thumb_5F00_7CF43234.jpg" width="644" height="347" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;b&gt;[&lt;/b&gt;&lt;b&gt;关键操作]&lt;/b&gt;&lt;b&gt;：&lt;/b&gt;&lt;/font&gt;这个信息需要将Visual Studio项目中package.appxmanifest文件的&amp;lt;Identity Name=&amp;quot;{YOUR APP IDENTITY NAME}&amp;quot; Version=&amp;quot;1.0.0.0&amp;quot; Publisher=&amp;quot;YOUR APP PUBLISHER NAME&amp;quot; /&amp;gt;进行替换。&lt;/p&gt;  &lt;p&gt;. Live Connect开发中心的相关配置&lt;/p&gt;  &lt;p&gt;实际上，上面配置“Push notifications and Live Connect services info”的页面已经转到了Live Connect开发中心（&lt;a href="https://manage.dev.live.com/"&gt;https://manage.dev.live.com/&lt;/a&gt;）。&lt;/p&gt;  &lt;p&gt;在之前页面中，通过点击”Authenticating your service”进入到下面的页面：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/8037.clip_5F00_image008_5F00_3F3724AB.jpg"&gt;&lt;img title="clip_image008" style="display: inline;" border="0" alt="clip_image008" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/7725.clip_5F00_image008_5F00_thumb_5F00_1356AAEF.jpg" width="644" height="347" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;b&gt;[&lt;/b&gt;&lt;b&gt;关键操作]&lt;/b&gt;&lt;b&gt;：&lt;/b&gt;&lt;/font&gt;在这里，需要记录Package Security Identifier (SID)和Client Secret的值。&lt;/p&gt;  &lt;p&gt;在Live Connect开发中心仪表盘（https://manage.dev.live.com/?biciid=LcDevPortal），选择要配置的应用名称，然后再设置（Settings）菜单下的API Settings中，首先验证Package Security Identifier (SID)和Client Secret的值和之前记录的一致性，然后将所建立的Windows Azure Mobile Service URL（例如：https://{YOUR MOBILE SERVICE NAME}.azure-mobile.net/）填写到Redirect domain项目中。同时，可以看到已经生成的Package SID。&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;b&gt;[&lt;/b&gt;&lt;b&gt;关键操作]&lt;/b&gt;&lt;b&gt;：&lt;/b&gt;&lt;/font&gt;在这里，需要记录Redirect domain和Package SID的值。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/6052.clip_5F00_image010_5F00_0A1A6FAE.jpg"&gt;&lt;img title="clip_image010" style="display: inline;" border="0" alt="clip_image010" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/4657.clip_5F00_image010_5F00_thumb_5F00_10BD5364.jpg" width="644" height="347" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;. Windows Azure Management Portal（管理门户）的相关配置&lt;/p&gt;  &lt;p&gt;进入所创建的Mobile Service应用中，进入IDENTITY（身份）页面：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/4466.clip_5F00_image012_5F00_65490C9C.jpg"&gt;&lt;img title="clip_image012" style="display: inline;" border="0" alt="clip_image012" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/3362.clip_5F00_image012_5F00_thumb_5F00_7781AD91.jpg" width="644" height="347" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;b&gt;[&lt;/b&gt;&lt;b&gt;关键操作]&lt;/b&gt;&lt;b&gt;：&lt;/b&gt;&lt;/font&gt;在这里，填写之前记录的Client ID和Client Secret的值。&lt;/p&gt;  &lt;p&gt;如果要使用提醒功能，可以再进入PUSH（推送）页面：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/6864.clip_5F00_image014_5F00_15138891.jpg"&gt;&lt;img title="clip_image014" style="display: inline;" border="0" alt="clip_image014" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/0020.clip_5F00_image014_5F00_thumb_5F00_3F9F43A1.jpg" width="644" height="347" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;b&gt;[&lt;/b&gt;&lt;b&gt;关键操作]&lt;/b&gt;&lt;b&gt;：&lt;/b&gt;&lt;/font&gt;在这里，填写之前记录的Client Secret和Package Security Identifier (SID)的值。&lt;/p&gt;  &lt;p&gt;在Mobile Service管理门户网页的下方，点击MANAGE KEYS，进入Manage Access Keys对话框：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/2727.clip_5F00_image016_5F00_08D1C2D0.jpg"&gt;&lt;img title="clip_image016" style="display: inline;" border="0" alt="clip_image016" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/0407.clip_5F00_image016_5F00_thumb_5F00_662D8454.jpg" width="644" height="347" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;b&gt;[&lt;/b&gt;&lt;b&gt;关键操作]&lt;/b&gt;&lt;b&gt;：&lt;/b&gt;&lt;/font&gt;在这里，记录APPLICATION KEY的值。&lt;/p&gt;  &lt;p&gt;. Visual Studio开发项目的相关配置&lt;/p&gt;  &lt;p&gt;在项目中，需要在Reference中增加Live SDK；如果之前没有安装的话，请先下载（&lt;a href="http://msdn.microsoft.com/en-us/live/ff621310.aspx"&gt;http://msdn.microsoft.com/en-us/live/ff621310.aspx&lt;/a&gt;）并安装。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/8228.clip_5F00_image018_5F00_104D0C70.jpg"&gt;&lt;img title="clip_image018" style="display: inline;" border="0" alt="clip_image018" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/2541.clip_5F00_image018_5F00_thumb_5F00_4C492858.jpg" width="644" height="347" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;b&gt;[&lt;/b&gt;&lt;b&gt;关键操作]&lt;/b&gt;&lt;b&gt;：&lt;/b&gt;&lt;/font&gt;在Reference中增加对Live SDK的引用，会自动添加相关文件，例如针对JavaScript，增加wl.js。在相关登录处理页面的程序中，在wl.init过程中，设置redirect url，替换为之前记录的Redirect domain的值。&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;b&gt;[&lt;/b&gt;&lt;b&gt;关键操作]&lt;/b&gt;&lt;b&gt;：&lt;/b&gt;&lt;/font&gt;在相关登录处理页面的程序中，实例化Windows Azure Mobile Service客户端，增加下面的代码，其中，分别替换参数为之前记录的Windows Azure Mobile Service URL和APPLICATION KEY的值：&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;var client = new WindowsAzure.MobileServiceClient(&lt;/p&gt;    &lt;p&gt;&amp;quot; https://{YOUR MOBILE SERVICE NAME}.azure-mobile.net/&amp;quot;,&lt;/p&gt;    &lt;p&gt;&amp;quot;{YOUR MOBILE SERVICE APPLICATION KEY}&amp;quot;&lt;/p&gt;    &lt;p&gt;);&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;现在就可以按照自己的要求，开发相关代码，实现对LiveID等的验证。&lt;/p&gt;  &lt;p&gt;大功告成了吗？且慢，好像还不行。追踪运行时错误信息，发现“The app couldn’t resolve ms-appx://&lt;i&gt;{YOUR IDENTITY NAME}&lt;/i&gt;/undefined because of this error: RESOURCE_NOT_FOUND.”&lt;/p&gt;  &lt;p&gt;看来还忘了什么步骤。不错，在Visual Studio的Solution Explorer中，将应用的项目与Store（商店）关联。&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;b&gt;[&lt;/b&gt;&lt;b&gt;关键操作]&lt;/b&gt;&lt;b&gt;：&lt;/b&gt;&lt;/font&gt;将应用的项目与Store（商店）关联。如下图：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/5025.clip_5F00_image020_5F00_22E1BA8D.jpg"&gt;&lt;img title="clip_image020" style="display: inline;" border="0" alt="clip_image020" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/1108.clip_5F00_image020_5F00_thumb_5F00_7DB44A53.jpg" width="644" height="347" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;运行一下，OK!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3574036" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Azure/">Azure</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Mobile+Services/">Mobile Services</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Windows+8/">Windows 8</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Store+App/">Store App</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Windows+Azure+Mobile+Service/">Windows Azure Mobile Service</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Windows+Store+App/">Windows Store App</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Management+Portal/">Management Portal</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Live+Connect+Services/">Live Connect Services</category></item><item><title>Windows Azure培训包(WATK) 2013年4月版已经新鲜出炉</title><link>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/05/02/windows-azure-watk-2013-4.aspx</link><pubDate>Thu, 02 May 2013 14:14:28 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3570396</guid><dc:creator>Nevin (Naiwen) Dong</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/nevin_dongs_blog/rsscomments.aspx?WeblogPostID=3570396</wfw:commentRss><comments>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/05/02/windows-azure-watk-2013-4.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;五一国际劳动节回来，发现Windows Azure Training Kit最新的四月版已经发布了：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=8396"&gt;http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;当然，值得期待的是什么时候���以拿到相关的中文简体版资源。&lt;/p&gt;  &lt;p&gt;这个版本是在Windows Azure 虚拟机 (Virtual Machines) 和虚拟网络(Virtual Network) GA之后发布的，当然包括了针对IT专业人士(IT Pro)的很多内容更新。&lt;/p&gt;  &lt;p&gt;在目录中，可以看到针对ITPro Camp的内容已经有了很多丰富，对于ITPro而言，这些活动值得期待。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/3364.clip_5F00_image002_5F00_54CB2EDE.jpg"&gt;&lt;img title="clip_image002" style="display: inline;" border="0" alt="clip_image002" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/5282.clip_5F00_image002_5F00_thumb_5F00_538926B0.jpg" width="644" height="348" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;另外一个值得关注的是HDInsight，如下图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/5734.clip_5F00_image004_5F00_454D3E71.jpg"&gt;&lt;img title="clip_image004" style="display: inline;" border="0" alt="clip_image004" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/6366.clip_5F00_image004_5F00_thumb_5F00_0924037A.jpg" width="644" height="349" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Windows Azure HDInsight为快速、便捷地开发大数据应用提供了基于Apache Hadoop的封装服务。&lt;/p&gt;  &lt;p&gt;实际上，还有一些新东东值得关注和尝试：&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;. WebMatrix 3.0 &lt;a href="http://www.microsoft.com/web/webmatrix/"&gt;http://www.microsoft.com/web/webmatrix/&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;这是开发基于Windows Azure WebSite, 利用ASP.net, PHP, Node.js, HTML5等语言的开发利器。&lt;/p&gt;    &lt;p&gt;. Windows Azure on GitHub &lt;a href="https://github.com/WindowsAzure"&gt;https://github.com/WindowsAzure&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;这里提供了大量的开源资源，也充分体现了Windows Azure的开放性特质&lt;/p&gt;    &lt;p&gt;. Windows Azure Training Kit on GitHub &lt;a href="http://windowsazure-trainingkit.github.io/"&gt;http://windowsazure-trainingkit.github.io/&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;实际上，WATK本身也是开源的，大家可以把自己的内容贡献和分享给大家；当然，也可以对WATK内容提供宝贵的反馈意见&lt;/p&gt;&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3570396" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Azure/">Azure</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Windows+Azure+Web+Sites/">Windows Azure Web Sites</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Virtual+Machines/">Virtual Machines</category></item><item><title>如何将SQL Server 2012 sp1 数据库中的数据恢复到低版本数据库中</title><link>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/04/25/sql-server-2012-sp1.aspx</link><pubDate>Thu, 25 Apr 2013 13:29:01 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3569042</guid><dc:creator>Nevin (Naiwen) Dong</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/nevin_dongs_blog/rsscomments.aspx?WeblogPostID=3569042</wfw:commentRss><comments>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/04/25/sql-server-2012-sp1.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;最近遇到一个特别的情形：用户应用系统在SQL Server 2012 sp1数据库中的数据，因为某种原因，要恢复到低版本数据库（例如SQL Server 2008 R2）中。&lt;/p&gt;  &lt;p&gt;当采用常规的备份-恢复等操作的时候，发现数据库无法完成恢复操作。&lt;/p&gt;  &lt;p&gt;从某种意义上讲，这和由低版本向高版本升级相反，但也都涉及到数据库兼容性级别（Database Compatibility Level）及高版本新增对象等因素。可以参考：&lt;a title="http://social.technet.microsoft.com/wiki/contents/articles/7009.sql-server-2012-upgrade-and-application-compatibility.aspx" href="http://social.technet.microsoft.com/wiki/contents/articles/7009.sql-server-2012-upgrade-and-application-compatibility.aspx"&gt;http://social.technet.microsoft.com/wiki/contents/articles/7009.sql-server-2012-upgrade-and-application-compatibility.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" width="505" border="2"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width="174"&gt;         &lt;p align="center"&gt;&lt;b&gt;SQL Server &lt;/b&gt;&lt;b&gt;版&lt;/b&gt;&lt;b&gt;本&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td width="327"&gt;         &lt;p align="center"&gt;&lt;b&gt;Database Compatibility Level&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="174"&gt;         &lt;blockquote&gt;           &lt;p&gt;SQL Server 7&lt;/p&gt;         &lt;/blockquote&gt;       &lt;/td&gt;        &lt;td width="327"&gt;         &lt;p align="center"&gt;&lt;/p&gt;          &lt;p align="center"&gt;70&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="174"&gt;         &lt;p align="center"&gt;&lt;/p&gt;          &lt;p align="center"&gt;SQL Server 2000&lt;/p&gt;       &lt;/td&gt;        &lt;td width="327"&gt;         &lt;p align="center"&gt;&lt;/p&gt;          &lt;p align="center"&gt;80&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="174"&gt;         &lt;p align="center"&gt;&lt;/p&gt;          &lt;p align="center"&gt;SQL Server 2005&lt;/p&gt;       &lt;/td&gt;        &lt;td width="327"&gt;         &lt;p align="center"&gt;&lt;/p&gt;          &lt;p align="center"&gt;90&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="174"&gt;         &lt;p align="center"&gt;&lt;/p&gt;          &lt;p align="center"&gt;SQL Server 2008&lt;/p&gt;       &lt;/td&gt;        &lt;td width="327"&gt;         &lt;p align="center"&gt;&lt;/p&gt;          &lt;p align="center"&gt;100&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="174"&gt;         &lt;p align="center"&gt;&lt;/p&gt;          &lt;p align="center"&gt;SQL Server 2008 R2&lt;/p&gt;       &lt;/td&gt;        &lt;td width="327"&gt;         &lt;p align="center"&gt;&lt;/p&gt;          &lt;p align="center"&gt;105&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="174"&gt;         &lt;p align="center"&gt;&lt;/p&gt;          &lt;p align="center"&gt;SQL Server 2012&lt;/p&gt;       &lt;/td&gt;        &lt;td width="327"&gt;         &lt;p align="center"&gt;&lt;/p&gt;          &lt;p align="center"&gt;110&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;但逆向操作，在某些场景确是不支持的。可以参考：&lt;a href="http://www.mytechmantra.com/LearnSQLServer/Unable_to_Restore_Database_From_Backup.html"&gt;http://www.mytechmantra.com/LearnSQLServer/Unable_to_Restore_Database_From_Backup.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;一个变通的做法是：&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;· 在SQL Server 2012种打开SQL Server Management Studio&lt;/p&gt;    &lt;p&gt;· 选择要备份的数据库，然后点击鼠标右键，在弹出菜单中选择“任务”&lt;/p&gt;    &lt;p&gt;· 选择“产生脚本”，在对话框中，注意请选择“高级选项”，在对话框中选择将生成脚本的服务器版本，这个时候可以选择相关低版本SQL Server 数据库&lt;/p&gt;    &lt;p&gt;· 在低版本SQL Server 数据库中通过执行脚本的方式，恢复数据库&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;具体可见下面的屏幕截图：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/6648.clip_5F00_image002_5F00_2BF4C723.jpg"&gt;&lt;img title="clip_image002" style="display: inline;" border="0" alt="clip_image002" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/1817.clip_5F00_image002_5F00_thumb_5F00_7E0A051B.jpg" width="583" height="330" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3569042" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Upgrade/">Upgrade</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/SQL+Server/">SQL Server</category></item><item><title>如何在Windows Azure 应用中实现发邮件（email）、发短信（SMS）的功能</title><link>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/04/18/windows-azure-email-sms.aspx</link><pubDate>Thu, 18 Apr 2013 07:42:55 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3567572</guid><dc:creator>Nevin (Naiwen) Dong</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/nevin_dongs_blog/rsscomments.aspx?WeblogPostID=3567572</wfw:commentRss><comments>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/04/18/windows-azure-email-sms.aspx#comments</comments><description>&lt;p&gt;如何在Windows Azure 应用中实现发邮件、发短信的功能&lt;/p&gt;  &lt;p&gt;基于Windows Azure的云应用，特别是使用Windows Azure Mobile Service，可以实现与多种设备端的通讯，例如：基于Windows 8的平板、Windows Phone 8手机、iOS平板和手机、Android平板和手机等。&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.technet.com/b/nevin_dongs_blog/archive/2012/09/29/windows-azure-mobile-service-connected-windows-8-metro.aspx"&gt;http://blogs.technet.com/b/nevin_dongs_blog/archive/2012/09/29/windows-azure-mobile-service-connected-windows-8-metro.aspx&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/03/06/windows-azure-android-mobile-services.aspx"&gt;http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/03/06/windows-azure-android-mobile-services.aspx&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.technet.com/b/nevin_dongs_blog/archive/2012/12/21/windows-azure-mobile-services-ios-push-notifications-apns.aspx"&gt;http://blogs.technet.com/b/nevin_dongs_blog/archive/2012/12/21/windows-azure-mobile-services-ios-push-notifications-apns.aspx&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/03/21/windows-azure-mobile-services-html-sdk.aspx"&gt;http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/03/21/windows-azure-mobile-services-html-sdk.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;但除此之外，如何也能够让Windows Azure 应用能够具备邮件功能，通过邮件来提醒；或者通过手机短信的功能来发送提醒呢？毕竟，这两种方式是很多用户，特别是信息工作者常用的通讯方式。目前，在Windows Azure提供的功能清单里，还没有发现相关支持，但一些第三方为此贡献了解决方案。&lt;/p&gt;  &lt;p&gt;对于邮件，可以考虑使用SendGrid来发送邮件，具体请见：&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;从Java应用中来发送邮件：&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh801258.aspx"&gt;http://msdn.microsoft.com/en-us/library/windowsazure/hh801258.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;将邮件功能与Windows Azure Mobile Service结合：&lt;a href="http://www.windowsazure.com/en-us/develop/mobile/tutorials/send-email-with-sendgrid/"&gt;http://www.windowsazure.com/en-us/develop/mobile/tutorials/send-email-with-sendgrid/&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;对于一些高级功能，SendGrid这个服务是要付费的：&lt;a href="http://sendgrid.com/windowsazure.html"&gt;http://sendgrid.com/windowsazure.html&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;对于短信，可以考虑使用Twilio的服务：&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://www.twilio.com/azure"&gt;http://www.twilio.com/azure&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;当然这个服务也不是完全免费的。&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;如果有兴趣的话，其实可以基于Windows Azure开发这方面的服务，也许也是一个不错的盈利应用呢。&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3567572" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Azure/">Azure</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Mobile+Services/">Mobile Services</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Windows+8/">Windows 8</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/connected/">connected</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Windows+Phone+8/">Windows Phone 8</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/iOS/">iOS</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Windows+Azure+Mobile+Service/">Windows Azure Mobile Service</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Android/">Android</category></item><item><title>Windows Azure 虚拟机 (Virtual Machines) 已经GA，IaaS解决方案步入正式运营阶段</title><link>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/04/17/windows-azure-virtual-machines-ga-iaas.aspx</link><pubDate>Wed, 17 Apr 2013 03:45:56 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3567243</guid><dc:creator>Nevin (Naiwen) Dong</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/nevin_dongs_blog/rsscomments.aspx?WeblogPostID=3567243</wfw:commentRss><comments>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/04/17/windows-azure-virtual-machines-ga-iaas.aspx#comments</comments><description>&lt;p&gt;访问微软Windows Azure管理门户 &lt;a href="https://manage.windowsazure.com/"&gt;https://manage.windowsazure.com/&lt;/a&gt;，可以发现Windows Azure 虚拟机 (Virtual Machines) 已经GA，原来的“预览”标签已经不见踪影，这同时也意味着Windows Azure IaaS（基础设施即服务）解决方案进入正式运营阶段。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/4375.clip_5F00_image002_5F00_0559F51A.jpg"&gt;&lt;img title="clip_image002" style="display: inline; background-image: none;" border="0" alt="clip_image002" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/7041.clip_5F00_image002_5F00_thumb_5F00_3CC00648.jpg" width="644" height="384" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;一个显著的变化是Windows Azure 虚拟机 (Virtual Machines)提供了新的选择，支持对更大内存计算需求的支持：&lt;/p&gt;  &lt;p&gt;· A6，4个内核，28GB内存&lt;/p&gt;  &lt;p&gt;· A7，8个内核，56GB内存&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/4572.clip_5F00_image004_5F00_3B7B6D69.jpg"&gt;&lt;img title="clip_image004" style="display: inline; background-image: none;" border="0" alt="clip_image004" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/8233.clip_5F00_image004_5F00_thumb_5F00_7A00BB0F.jpg" width="644" height="383" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;这对于内存密集型的计算类型是个好消息。以前在一些基于私有云虚拟化的测试案例中也经常发现，4到8个核的CPU在很多横向伸缩(Scale-out)的场景中有不错的表现；但内存如果能有更多，则会有更好的性能和并发表现。&lt;/p&gt;  &lt;p&gt;另外一个值得关注的是价格，可以访问Windows Azure定价网站的计算器，获得最新的报价：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.windowsazure.com/zh-cn/pricing/calculator/"&gt;http://www.windowsazure.com/zh-cn/pricing/calculator/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/7776.clip_5F00_image006_5F00_7F6F2BB3.jpg"&gt;&lt;img title="clip_image006" style="display: inline; background-image: none;" border="0" alt="clip_image006" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/8713.clip_5F00_image006_5F00_thumb_5F00_12AFE253.jpg" width="644" height="385" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Windows Azure IaaS极具竞争力的报价也是值得众多伙伴和开发者关注的，毕竟这也是云计算发展的出发点和最终落脚点。&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3567243" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Azure/">Azure</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Virtual+Machines/">Virtual Machines</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/IaaS/">IaaS</category></item><item><title>Windows Azure Mobile Services提供了面向HTML客户端的SDK支持</title><link>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/03/21/windows-azure-mobile-services-html-sdk.aspx</link><pubDate>Thu, 21 Mar 2013 14:20:21 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3560170</guid><dc:creator>Nevin (Naiwen) Dong</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/nevin_dongs_blog/rsscomments.aspx?WeblogPostID=3560170</wfw:commentRss><comments>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/03/21/windows-azure-mobile-services-html-sdk.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;最近，微软发布了面向HTML客户端的Mobile Services的SDK，如下图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/0118.clip_5F00_image002_5F00_36D0984E.jpg"&gt;&lt;img title="clip_image002" style="display: inline; background-image: none;" border="0" alt="clip_image002" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/6036.clip_5F00_image002_5F00_thumb_5F00_74E9B2FF.jpg" width="644" height="385" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;这种最新的HTML客户端整合了跨域资源共享(Cross-origin Resource Sharing, CORS)，CORS是XMLHttpRequest Level 2中新增加的功能。关于这一规范，可见：&lt;a href="http://www.w3.org/TR/cors/"&gt;http://www.w3.org/TR/cors/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;这一新功能，是的移动服务开发者可以更好地开发应用，特别是：&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;· 简单的（Turn-key）结构化存储，更好地开发HTML5/JS应用。这对HTML5开发者是一个好消息。&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;· 更好地支持社交网络身份认证，例如：Microsoft Account, Facebook, Twitter和Google等&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;· 更好地支持服务器端开发，包括定时脚本（Scheduled scripts）、推送提醒服务（Notifications）等&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;具体开发时，需要在Mobile Services的设置(Configure)菜单项中指定Host名称，如下图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/1018.clip_5F00_image004_5F00_57282840.jpg"&gt;&lt;img title="clip_image004" style="display: inline; background-image: none;" border="0" alt="clip_image004" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/6281.clip_5F00_image004_5F00_thumb_5F00_2A32C565.jpg" width="644" height="385" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3560170" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Azure/">Azure</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Mobile+Services/">Mobile Services</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Windows+Azure+Mobile+Service/">Windows Azure Mobile Service</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/CORS/">CORS</category></item><item><title>Windows Azure提供面向Android开发者的Mobile Services</title><link>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/03/06/windows-azure-android-mobile-services.aspx</link><pubDate>Wed, 06 Mar 2013 07:03:54 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3556721</guid><dc:creator>Nevin (Naiwen) Dong</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/nevin_dongs_blog/rsscomments.aspx?WeblogPostID=3556721</wfw:commentRss><comments>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/03/06/windows-azure-android-mobile-services.aspx#comments</comments><description>&lt;p&gt;最近，微软发布了面向Android开发者的Mobile Services的SDK，这也再次体现了Windows Azure作为一个开放性平台，特别是其对开源软件群体的贡献，这个SDK可以通过访问以下地址获得：&lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/WindowsAzure/azure-mobile-services"&gt;https://github.com/WindowsAzure/azure-mobile-services&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;截至目前，已经Windows Azure Mobile Services提供了面向不同开发者的SDK和技术支持，分别是：&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;· Windows Store (Windows 8)&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;· Windows Phone 8&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;· IOS&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;· Android&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;总的来看，Windows Azure Mobile Services为这些移动设备开发者提供了基础性的云服务支持，有了这些服务，“云”+“ 设备”的开发更加容易、更加快捷；而这些服务使得移动设备开发者更加关注自己的业务、应用场景，而不是花太多时间在底层基础设施。而这也正是云计算，特别是Windows Azure Mobile Services这样的大颗粒度服务倍推出的一个原因。&lt;/p&gt;  &lt;p&gt;上面提到的基础性的云服务包括：&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;· 数据存储，这也正是“ 设备”作为与用户交互的端，而对“云”巨大资源的关键性依赖的一个部分。Windows Azure提供了多个存储的技术选择，包括Table、SQL Database等等。&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;· 计算资源，除了“ 设备”自身的计算力（CPU），“云”提供了巨大的、可伸缩的、无时不在计算资源，特别是针对不同业务逻辑、大数据量的计算等。&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;· 通讯，特别是提醒功能，这也是“ 设备”与“云”通过互动来提供业务支持、用户体验的关键环节。此外提醒还包括了即时提醒和预设提醒等不同类型的应用场景。&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;· 安全，特别是身份认证，及权限控制，确保正确的数据范围被正确的人使用。而在实际使用中，不同的身份认证提供商提供的身份，例如LiveID、Google、Facebook等，应该能顺利地使用。&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;此外，Windows Azure Mobile Services还为开发者和IT人员，针对这一服务提供了一些关键性管理功能：&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;· 日志和诊断，便于开发者进行问题追踪和解决。&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;· 伸缩管理，便于根据业务量和成本进行资源的伸缩，例如增加或减少计算资源等。&lt;/p&gt;&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3556721" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Azure/">Azure</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Mobile+Services/">Mobile Services</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Windows+8/">Windows 8</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/connected/">connected</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Windows+Phone+8/">Windows Phone 8</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Store+App/">Store App</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/iOS/">iOS</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Windows+Azure+Mobile+Service/">Windows Azure Mobile Service</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Windows+Store+App/">Windows Store App</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Android/">Android</category></item><item><title>使用Windows Azure Service Management REST API进行伸缩性管理</title><link>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/02/27/windows-azure-service-management-rest-api.aspx</link><pubDate>Wed, 27 Feb 2013 13:18:17 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3555250</guid><dc:creator>Nevin (Naiwen) Dong</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/nevin_dongs_blog/rsscomments.aspx?WeblogPostID=3555250</wfw:commentRss><comments>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/02/27/windows-azure-service-management-rest-api.aspx#comments</comments><description>&lt;p&gt;以自定义的方式对Windows Azure资源进行控制，例如基于预设条件或者基于性能监控结果的自动伸缩管理，将更有效地对Azure资源/服务进行管理。Windows Azure SDK提供了全套API，特别是服务管理的REST API方式，使得这一想法成为可能。&lt;/p&gt;  &lt;p&gt;对于Windows Azure Service Management REST API，可以参考以下网址：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee460799.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee460799.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Windows Azure Service Management REST API的功能支持，与通过其他方式，例如通过Windows Azure Management Portal的交互方式和Windows Azure PowerShell 的命令行方式，是一致的。但不同的是，通过Windows Azure Service Management REST API，可以在自己的应用里、通过程序的方式对Windows Azure服务进行控制。&lt;/p&gt;  &lt;p&gt;对于Windows Azure Management Portal的交互方式和Windows Azure PowerShell 的命令行方式，可以参考：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/02/24/windows-azure-management-portal-windows-azure-powershell.aspx"&gt;http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/02/24/windows-azure-management-portal-windows-azure-powershell.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;针对计算实例的增加或减少的情景，一些关键的API包括：&lt;/p&gt;  &lt;p&gt;. Get Deployment，见：&lt;a href="http://msdn.microsoft.com/en-us/library/ee460804.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee460804.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;. Change Deployment Configuration，见：&lt;a href="http://msdn.microsoft.com/en-us/library/ee460809.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee460809.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;通过REST API可以获得及设置相关的实例配置，例如RoleInstanceList，InstanceSize等。&lt;/p&gt;  &lt;p&gt;此外，针对IaaS，例如Windows Azure Virtual Machine，也可以通过增加/减少VM，或者改变VM的配置，例如将尺寸由“小(Small)”改成“大(Large)”的方式，实现Scale-Out或者Scale-Up，一些关键的API包括：&lt;/p&gt;  &lt;p&gt;. Add Role，见：&lt;a href="http://msdn.microsoft.com/en-us/library/jj157186.aspx"&gt;http://msdn.microsoft.com/en-us/library/jj157186.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;. Delete Role，见：&lt;a href="http://msdn.microsoft.com/en-us/library/jj157184.aspx"&gt;http://msdn.microsoft.com/en-us/library/jj157184.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;. Update Role，见：&lt;a href="http://msdn.microsoft.com/en-us/library/jj157187.aspx"&gt;http://msdn.microsoft.com/en-us/library/jj157187.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;之前，Joseph Fultz发过一篇很不错的文章：&lt;i&gt;Performance-Based Scaling in Windows Azure&lt;/i&gt;，文章给出了一个基于运行性能来进行伸缩的例子，非常有借鉴价值。具体网址如下：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/gg232759.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/gg232759.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;可以将性能计数器收集的功能放在一个Worker Role中，并将收集的性能数据存储在Windows Azure Storage中，然后根据性能是否达到条件来确定是否增加或减少实例数量，如下图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/6428.clip_5F00_image002_5F00_63EB74A6.png"&gt;&lt;img title="clip_image002" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image002" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/4705.clip_5F00_image002_5F00_thumb_5F00_59D6D37B.png" width="573" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;当通过代码来实现自动伸缩的时候，有些因素需要考虑到，例如：&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;· 伸缩性操作提交后需要时间来完成，例如增加1个实例的操作，在提交后可能需要15到20分钟才能完成。&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;· 伸缩性操作提交的时机，因为目前Windows Azure是按照完整小时来计费的，当花费不足1小时也是按照1小时来计费的，考虑到上面提到的时间差，所以提交伸缩性请求的时候需要考虑到这一点，可以更好地节省成本。 最新的报价和付费细节可访问：&lt;a href="http://www.windowsazure.com/en-us/pricing/details/"&gt;http://www.windowsazure.com/en-us/pricing/details/&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;· 并不是所有的应用/服务都适合进行自动伸缩，例如最好是采用无状态设计的。&lt;/p&gt;&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3555250" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Azure/">Azure</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Instance/">Instance</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Scalability/">Scalability</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/REST+API/">REST API</category></item><item><title>最新发布的ASP.NET 和Web Tools 2012.2，及一些改进</title><link>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/02/24/asp-net-web-tools-2012-2.aspx</link><pubDate>Sun, 24 Feb 2013 07:52:18 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3554640</guid><dc:creator>Nevin (Naiwen) Dong</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/nevin_dongs_blog/rsscomments.aspx?WeblogPostID=3554640</wfw:commentRss><comments>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/02/24/asp-net-web-tools-2012-2.aspx#comments</comments><description>&lt;p&gt;最近得知，ASP.NET 和Web Tools 2012.2更新已经发布，这也是针对Visual Studio 2012和.NET 4.5的一些更新，对于Azure应用的开发者，特别是Windows Azure Web Sites，这也是值得尝试的一个工具更新。&lt;/p&gt;  &lt;p&gt;具体可见以下ScottGu的博客：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2013/02/18/announcing-release-of-asp-net-and-web-tools-2012-2-update.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2013/02/18/announcing-release-of-asp-net-and-web-tools-2012-2-update.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;总的看来，一些主要的改进包括：&lt;/p&gt;  &lt;p&gt;. 新的针对ASP.NET Web Forms、ASP.NET MVC和ASP.NET Web API 的Visual Studio项目模版。&lt;/p&gt;  &lt;p&gt;. ASP.NET SignalR实时通讯。详情见：&lt;a href="http://asp.net/signalr"&gt;http://asp.net/signalr&lt;/a&gt;。&lt;/p&gt;  &lt;p&gt;. ASP.NET Web API针对追踪(Trace)、OData的改进，例如路由、元数据、查询合法性验证等。&lt;/p&gt;  &lt;p&gt;. Web Tools改进，例如页审查 (Page Inspector)等。&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3554640" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Azure/">Azure</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Windows+Azure+Web+Sites/">Windows Azure Web Sites</category></item><item><title>使用Windows Azure Management Portal和Windows Azure PowerShell 命令行进行伸缩性管理</title><link>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/02/24/windows-azure-management-portal-windows-azure-powershell.aspx</link><pubDate>Sun, 24 Feb 2013 05:57:41 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3554637</guid><dc:creator>Nevin (Naiwen) Dong</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/nevin_dongs_blog/rsscomments.aspx?WeblogPostID=3554637</wfw:commentRss><comments>http://blogs.technet.com/b/nevin_dongs_blog/archive/2013/02/24/windows-azure-management-portal-windows-azure-powershell.aspx#comments</comments><description>&lt;p&gt;在Windows Azure中开发部署云应用，或者将现有应用迁移到Windows Azure云平台，伸缩性是一个重要的考虑因素，直接关系到云应用资源的按需使用及产生的相关成本。&lt;/p&gt;  &lt;p&gt;伸缩性与应用场景及所使用的云资源密切相关，例如，某些商务网站，当业务请求负荷迅猛增加、超出预设的容量能力上限时，应考虑适量增加资源，例如增加计算实例数量，或者提高计算实例的配置；而当工作负荷较低，则需要考虑是否减少计算实例，或者调低计算实例的配置。此外，例如在某些科学计算场景中，可以根据并行计算（Parallel Computing）任务数量的变化，对资源进行动态的伸缩性控制。&lt;/p&gt;  &lt;p&gt;通常，在Windows Azure中，可以通过Management Portal对服务进行伸缩性配置。例如，下图中对一个运行中的移动服务（Windows Azure Mobile Services）进行调整，在菜单的“Scale”项下，可以看到“模式（Mobile Service Mode）”，可以选择实例的类型，例如是不是共享的模式；“实例规模（Instance Size）”可以选择实例计算资源的尺寸；在“实例数量（Instance Count）”中，可以调整实例的数量，等等。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/6038.clip_5F00_image002_5F00_7E6885EC.jpg"&gt;&lt;img title="clip_image002" style="display: inline; background-image: none;" border="0" alt="clip_image002" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/5556.clip_5F00_image002_5F00_thumb_5F00_63BBE9D3.jpg" width="644" height="384" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;对于其他服务也提供相类似的操作界面，例如下面的WebSites服务：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/4073.clip_5F00_image004_5F00_5438D804.jpg"&gt;&lt;img title="clip_image004" style="display: inline; background-image: none;" border="0" alt="clip_image004" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/1667.clip_5F00_image004_5F00_thumb_5F00_20906BA6.jpg" width="644" height="385" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;此外，另一个利器就是使用Windows Azure PowerShell 命令行。Windows Azure PowerShell为用户，特别是IT人员和开发者提供了强大的脚本环境，使得更方面、高效地进行部署和管控，特别是实现自动化管理。具体资源可以参考：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj156055.aspx"&gt;http://msdn.microsoft.com/en-us/library/windowsazure/jj156055.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;可以在下面的官方网址下载Windows Azure PowerShell工具：&lt;/p&gt;  &lt;p&gt;&lt;a href="https://www.windowsazure.com/en-us/downloads/?fb=en-us"&gt;https://www.windowsazure.com/en-us/downloads/?fb=en-us&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;目前，常用的命令行包括了Windows Azure的管理、Windows Azure SQL Database的管理等，而不断有新的功能支持在推出，包括了对IaaS虚拟机、虚拟网络、移动服务等的支持。&lt;/p&gt;  &lt;p&gt;例如，通过使用Set-AzureRole命令，可以设置Windows Azure role的运行数量。具体命令如下：&lt;/p&gt;  &lt;p&gt;Set-AzureRole [-ServiceName] &amp;lt;String&amp;gt; [-Slot] &amp;lt;String&amp;gt; [-RoleName] &amp;lt;String&amp;gt; [-Count] &amp;lt;Int32&amp;gt; [ &amp;lt;CommonParameters&amp;gt;]&lt;/p&gt;  &lt;p&gt;其中，-Count&amp;lt;Int32&amp;gt; 的值为设定的Windows Azure role的数量。&lt;/p&gt;  &lt;p&gt;此外，可以通过Get-AzureRole命令，获得Windows Azure role的主要信息，包括运行数量等。&lt;/p&gt;  &lt;p&gt;例如，可以通过Management Portal，可以看到一个已经发布到Windows Azure 运行环境的服务的配置信息，该服务的实例数量为2。如下图所示意。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/7446.clip_5F00_image006_5F00_25FEDC4A.jpg"&gt;&lt;img title="clip_image006" style="display: inline; background-image: none;" border="0" alt="clip_image006" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/6064.clip_5F00_image006_5F00_thumb_5F00_44691D33.jpg" width="644" height="384" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;通过使用Set-AzureRole命令，调整设置运行数量为1。如下图所示意：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/4426.clip_5F00_image008_5F00_4DE1DBA9.jpg"&gt;&lt;img title="clip_image008" style="display: inline; background-image: none;" border="0" alt="clip_image008" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/8032.clip_5F00_image008_5F00_thumb_5F00_20EC78CE.jpg" width="644" height="386" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;与此对应，可以通过Management Portal，看到该服务的实例数量，与通过PowerShell获得的信息一致。如下图所示意。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/4745.clip_5F00_image010_5F00_032AEE0F.jpg"&gt;&lt;img title="clip_image010" style="display: inline; background-image: none;" border="0" alt="clip_image010" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-95-27-metablogapi/8547.clip_5F00_image010_5F00_thumb_5F00_3686B16B.jpg" width="644" height="385" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3554637" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Azure/">Azure</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Instance/">Instance</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Windows+Azure+Mobile+Service/">Windows Azure Mobile Service</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Scalability/">Scalability</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/Management+Portal/">Management Portal</category><category domain="http://blogs.technet.com/b/nevin_dongs_blog/archive/tags/PowerShell/">PowerShell</category></item></channel></rss>