<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.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>Saurabh Pant's Weblog </title><link>http://blogs.msdn.com/b/saurabh/</link><description>Ramblings on .NET ...</description><dc:language>en-US</dc:language><generator>Telligent Community 5.6.583.17018 (Build: 5.6.583.17018)</generator><item><title>Deploying Application built using RIA Services RC</title><link>http://blogs.msdn.com/b/saurabh/archive/2010/03/16/ria-services-application-deployment.aspx</link><pubDate>Tue, 16 Mar 2010 07:24:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9979286</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=9979286</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2010/03/16/ria-services-application-deployment.aspx#comments</comments><description>&lt;p&gt;Update :: The official WCF RIA Services troubleshooting guide can now be found &lt;a href="https://mail.microsoft.com/owa/redir.aspx?C=534645f3e3824180a5d757c880e35929&amp;amp;URL=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fff426913(v%3dVS.91).aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Original Post::&lt;/p&gt;
&lt;p&gt;Today at MIX &amp;lsquo;10 we &lt;a href="http://blogs.msdn.com/brada/archive/2010/03/15/silverlight-4-and-ria-services-release-candidate-available-now.aspx" target="_blank" mce_href="http://blogs.msdn.com/brada/archive/2010/03/15/silverlight-4-and-ria-services-release-candidate-available-now.aspx"&gt;announced&lt;/a&gt; the public availability of WCF RIA Services RC bits.&lt;/p&gt;
&lt;p&gt;A few months back, at PDC &amp;lsquo;09 when we released our Beta bits we received strong feedback around making deployment of RIA Services applications easier and asking for more guidance around deployment scenarios.&lt;/p&gt;
&lt;p&gt;With our latest RC bits we believe that we now do have an intuitive deployment story and I cover it in some depth in the blog post below.&lt;/p&gt;
&lt;p&gt;In this blog I talk about Deployment Scenarios for RIA Services RC bits that &lt;a href="http://forums.silverlight.net/forums/t/167013.aspx" target="_blank" mce_href="http://forums.silverlight.net/forums/t/167013.aspx"&gt;only support Dev 10/.NET 4/SL 4&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I do realize a set of folks are still consuming RIA Services Beta bits that only support VS 2008/.NET 3.5/SL 3, primarily because those are &amp;lsquo;Go Live&amp;rsquo; bits. For those folks I will be posting a separate blog soon focusing primarily on deployment using the Beta bits.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;" size="3"&gt;Configuring the Deployment Server&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You have your application ready and it works great on your development machine. Now you want to deploy it to a server and share the awesomeness &amp;hellip;&lt;/p&gt;
&lt;p&gt;The first thing you will need is a server with .NET 4 RC installed. If the server has RIA services installed as well, even better.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;Shared Hosters&lt;/span&gt;:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We have worked with our partner hosters and have the following hosters supporting both .NET 4 RC and RIA Services RC today &amp;hellip;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://labs.discountasp.net/" target="_blank" mce_href="http://labs.discountasp.net/"&gt;DiscountASP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vs2010host.com/" target="_blank" mce_href="http://vs2010host.com/"&gt;OrcsWeb&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: x-small;" size="2"&gt;&lt;a href="http://www.asphostcentral.com/" mce_href="http://www.asphostcentral.com/"&gt;ASPHostCentral&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: x-small;" size="2"&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;NOTE - ASPHostCentral has a set of some blog posts here [&lt;a href="http://webhosting.asphostcentral.com/post/2010/03/02/WCF-RIA-Service-Hosting-WCF-RIA-Service-Configuration-in-a-Shared-HostingServer.aspx" mce_href="http://webhosting.asphostcentral.com/post/2010/03/02/WCF-RIA-Service-Hosting-WCF-RIA-Service-Configuration-in-a-Shared-HostingServer.aspx"&gt;1&lt;/a&gt;, &lt;a href="http://webhosting.asphostcentral.com/post/2010/02/22/WCF-RIA-Service-Hosting-Error-Message-Load-Operation-Failed-for-query-GetUser.aspx" mce_href="http://webhosting.asphostcentral.com/post/2010/02/22/WCF-RIA-Service-Hosting-Error-Message-Load-Operation-Failed-for-query-GetUser.aspx"&gt;2&lt;/a&gt;, &lt;a href="http://webhosting.asphostcentral.com/post/2010/02/22/WCF-RIA-Service-Hosting-Error-Message-This-collection-already-contains-an-address-with-scheme-http.aspx" mce_href="http://webhosting.asphostcentral.com/post/2010/02/22/WCF-RIA-Service-Hosting-Error-Message-This-collection-already-contains-an-address-with-scheme-http.aspx"&gt;3&lt;/a&gt;] to help you with you RIA Services Deployment as well.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;In House Servers&lt;/span&gt;:&lt;/p&gt;
&lt;p&gt;If you are setting up an in house server, you can download .NET 4 RC from &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a9ef9a95-58d2-4e51-a4b7-bea3cc6962cb&amp;amp;displaylang=en" target="_blank" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a9ef9a95-58d2-4e51-a4b7-bea3cc6962cb&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To install RIA Service RC on your server, download the MSI locally from &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c224fdb4-edd0-493a-af1f-474c54a69db8&amp;amp;displaylang=en" target="_blank" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c224fdb4-edd0-493a-af1f-474c54a69db8&amp;amp;displaylang=en"&gt;here&lt;/a&gt; and then run it as such -&lt;/p&gt;
&lt;p&gt;msiexec /i RIAServices.msi /SERVER=true&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;More details on this option are in Deepesh&amp;rsquo;s blog &lt;a href="http://blogs.msdn.com/deepm/archive/2010/03/15/are-you-a-hoster-and-want-to-support-ria-services.aspx" target="_blank" mce_href="http://blogs.msdn.com/deepm/archive/2010/03/15/are-you-a-hoster-and-want-to-support-ria-services.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;BIN Deployment&lt;/span&gt;:&lt;/p&gt;
&lt;p&gt;If you have access to a .NET 4 RC server but do not have permissions to install RIA Services on it, you can choose to carry the RIA Services bits in the Web Applications BIN folder.&lt;/p&gt;
&lt;p&gt;If you are using the Visual Studio Build-&amp;gt;Publish option to deploy your application, make sure the following three assemblies under the Web Application-&amp;gt;References have been marked as Copy Local = True&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image7.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image7.png"&gt;&lt;img style="display: inline; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image7_thumb.png" width="462" height="311" mce_src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image7_thumb.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you are copying the bits over manually to your deployment server, copy the above three assemblies to the Web Applications BIN folder right next to your [WebAppName].dll&lt;/p&gt;
&lt;p mce_keep="true"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;Deploying LINQtoSQL Applications&lt;/span&gt;:&lt;/p&gt;
&lt;p&gt;Starting with RIA Services RC, the RIA Services LINQtoSQL Provider has been moved to the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7b43bab5-a8ff-40ed-9c84-11abb9cda559&amp;amp;displaylang=en" target="_blank" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7b43bab5-a8ff-40ed-9c84-11abb9cda559&amp;amp;displaylang=en"&gt;RIA Services Toolkit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have are deploying an application that uses L2S you will need to either manually deploy the Microsoft.ServiceModel.DomainServices.LinqToSql assembly in your servers GlobalAssemblyCache or make sure it is copied to the Web Apps BIN folder.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;Azure Support&lt;/span&gt;:&lt;/p&gt;
&lt;p&gt;Since RIA Services RC bits only support .NET 4 while Azure currently only support .NET 3.5, it is not possible to deploy a RIA Services RC application to Azure.&lt;/p&gt;
&lt;p&gt;We are working closely with the Azure team to bring .NET 4 support to Azure.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;" size="3"&gt;Configuring IIS&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;RIA Services supports IIS6/IIS7 deployments.&lt;/p&gt;
&lt;p&gt;However WCF (and by association RIA Services) has a limitation that it &lt;strong&gt;does not support MultipleAuthenticationSchemas enabled &lt;/strong&gt;in IIS.&lt;/p&gt;
&lt;p&gt;So if you are using Forms Authentication in your application (if you built your application using the Business Application template, Forms Auth is the default there) you need to make sure that for the IIS VirtualRoot that hosts your WebApp Forms Auth is enabled. Forms Auth + Anonymous will also work fine but Forms Auth + Integrated Auth is not supported.&lt;/p&gt;
&lt;p&gt;Similarly if you are using Windows Authentication in your application (for a default Web Application no Authentication Mode is specified in the Web Config and the default Authentication Mode&amp;nbsp; is Windows) you need to make sure that for your WebApp only Integrated Auth enabled.&lt;/p&gt;
&lt;p&gt;If you do not have access to your servers IIS settings (most hosters will give you an option to choose the Authentication Mode for your Web Application) you will need to work with your Server Administrator to get those changed.&lt;/p&gt;
&lt;p&gt;I talk later about detecting whether IIS is configured correctly for your Web application.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;" size="3"&gt;Deploying the Application&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Once you have the deployment server set up, RIA Services installed or Bin Deployed and IIS configured, deploying the application is as simple as copying the bits over.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;A typical Web Application hosting a Silverlight Application will look something like this -&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image_8.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image_8.png"&gt;&lt;img style="display: inline; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image_thumb_3.png" width="173" height="137" mce_src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image_thumb_3.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The ClientBin folder contains the .xap, while the Bin folder contains the [WebAppName].dll + any bin copied assemblies.&lt;/p&gt;
&lt;p&gt;If everything is in place, browsing to the .aspx should download and launch the Silverlight Application.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you do not see the Silverlight Application being downloaded successfully when you browse to your web site, it is most likely because your ASP.NET server or&amp;nbsp; IIS have not been configured correctly. In this blog I do not dwell on debugging Silverlight deployment issues, there is lot of good material available on that online.&lt;/p&gt;
&lt;p&gt;However if you can download the Silverlight Application fine but your calls to the DomainService are failing, then it is a RIA Services deployment issue. Below I talk in more detail about trouble shooting such failures &amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;" size="3"&gt;Troubleshooting Deployment Issues&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The flow chart below shows the various platform involved in data or error information successfully making it down from a DomainService to the Silverlight Client.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image14.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image14.png"&gt;&lt;img style="width: 455px; display: inline; height: 274px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image14_thumb.png" width="449" height="225" mce_src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image14_thumb.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;CustomErrors:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Exceptions thrown at the DomainServices layer make it down to the Silverlight client and if unhandled show up as client exceptions.&lt;/p&gt;
&lt;p&gt;If the Web App&amp;rsquo;s web.config has Custom Errors enabled (the default is Off), then the exceptions will typically contain enough information to help the user debug the exception.&lt;/p&gt;
&lt;p&gt;&amp;lt;customErrors mode="On"/&amp;gt;&lt;/p&gt;
&lt;p&gt;Since the application worked fine in the development environment and is failing on deployment, the failure typically has to do with the Server environment not being setup correctly. For example, connection string mismatch between development and deployment environments is a common cause of failures.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;404/NotFound&lt;/span&gt;:&lt;/p&gt;
&lt;p&gt;Unfortunately any exception thrown in the RIA Service Host or anywhere lower in the pipeline (WCF/ASP.NET/IIS) all show up in Silverlight as &lt;em&gt;404/NotFound. &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Option #1 - To get to the actual error information an Http diagnostic tool is need. &lt;a href="http://www.fiddler2.com/fiddler2/version.asp" target="_blank" mce_href="http://www.fiddler2.com/fiddler2/version.asp"&gt;Fiddler&lt;/a&gt; is a popular option. It gives you access to the to the Http response body where the actual error information is available.&lt;/p&gt;
&lt;p&gt;Option #2 - Not being able to get the error information in Silverlight is a limitation of the Silverlight&amp;rsquo;s Browser Networking Stack which RIA Services uses internally.&lt;/p&gt;
&lt;p&gt;Another option to get to the error info for debugging is to temporarily get your application to use the &lt;a href="http://msdn.microsoft.com/en-us/library/dd920295(VS.95).aspx" target="_blank" mce_href="http://msdn.microsoft.com/en-us/library/dd920295(VS.95).aspx"&gt;Silverlight Client Networking Stack&lt;/a&gt;. To do so, all you need to do is add the following line of code to your SL Application. It will force all http web request to go via the Client Networking Stack and thus make the error code available on the Client.&lt;/p&gt;
&lt;pre class="csharpcode"&gt;WebRequest.RegisterPrefix(&lt;span class="str"&gt;"http://"&lt;/span&gt;, 
  WebRequestCreator.ClientHttp);&lt;/pre&gt;
&lt;p&gt;In case you were wondering &amp;ndash; There are certain limitations to using Client networking stack (especially around authentication support) and hence RIA services does not use it as its default networking stack.&lt;/p&gt;
&lt;p&gt;If using Fiddler or the Client stack you are still seeing a 404 response, then that really is the error code the server is returning. We then need to move to the next stage of troubleshooting.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;Browsing to the .SVC&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;For every DomainService, a WCF Service is created at runtime using the ASP.NET feature of Virtual Path Providers. More details on the dynamic .SVC file creation can be found in my blog post &lt;a href="http://blogs.msdn.com/saurabh/archive/2009/11/23/understanding-the-wcf-in-wcf-ria-services.aspx" target="_blank" mce_href="http://blogs.msdn.com/saurabh/archive/2009/11/23/understanding-the-wcf-in-wcf-ria-services.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Since it is a virtual file you will not see a physical .svc in your deployed project, but it will exist at runtime. Being able to browse to the .SVC can be key to debugging RIA Services deployment issues.&lt;/p&gt;
&lt;p&gt;For a given DomainService the path to its .SVC can be determined using the following convention:&lt;/p&gt;
&lt;p&gt;[BaseURI] + [DomainServiceNameWithNamespace].svc with all &amp;ldquo;&lt;b&gt;.&lt;/b&gt;&amp;rdquo; in the DomainServiceFullName replaced by &amp;ldquo;&lt;b&gt;-&lt;/b&gt;&amp;ldquo;&lt;/p&gt;
&lt;p&gt;So HRApp.Web.OrganizationService deployed the domain http://www.RIAServicesApps.com will be exposed as &amp;ndash; http://www.RIAServicesApps.com/HRApp-Web-OrganizationService.svc&lt;/p&gt;
&lt;p&gt;If everything is setup correctly you will see a default WCF Service page, else you will see an error message telling you what is wrong.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image24.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image24.png"&gt;&lt;img style="display: inline; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image24_thumb.png" width="409" height="305" mce_src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image24_thumb.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you get a 404 on browsing to the .SVC, the DomainService was not setup correctly&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image28.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image28.png"&gt;&lt;img style="display: inline; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image28_thumb.png" width="414" height="300" mce_src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/DeployingRIAServicesApplications_F53D/image28_thumb.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;One common cause for this issue is missing sections in the Web config.&lt;/p&gt;
&lt;p&gt;At development time when a DomainService is added to a project using the DomainService Wizard, the right Web Config entries are automatically made by the Wizard. However these entries sometimes get lost at deployment time, especially if the Web Config has to manually be merged for deployment.&lt;/p&gt;
&lt;p&gt;Below are the Web Config sections need by RIA Services -&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;system.webServer&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;modules&lt;/span&gt; &lt;span class="attr"&gt;runAllManagedModulesForAllRequests&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="DomainServiceModule"&lt;/span&gt; &lt;span class="attr"&gt;preCondition&lt;/span&gt;&lt;span class="kwrd"&gt;="managedHandler"&lt;/span&gt;
&lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;modules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;validation&lt;/span&gt; &lt;span class="attr"&gt;validateIntegratedModeConfiguration&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;system.webServer&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;system.web&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;httpModules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="DomainServiceModule"&lt;/span&gt; 
&lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;httpModules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;compilation&lt;/span&gt; &lt;span class="attr"&gt;debug&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="attr"&gt;targetFramework&lt;/span&gt;&lt;span class="kwrd"&gt;="4.0"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;system.web&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;system.serviceModel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;serviceHostingEnvironment&lt;/span&gt; &lt;span class="attr"&gt;&lt;strong&gt;aspNetCompatibilityEnabled&lt;/strong&gt;&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt;
            &lt;span class="attr"&gt;&lt;strong&gt;multipleSiteBindingsEnabled&lt;/strong&gt;&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;system.serviceModel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="kwrd"&gt;If browsing to the .SVC succeeds just fine but communicating with the Domain Service from within the Silverlight Application returns a 404 response code, then most likely your DomainSerivce at runtime is running into an exception in the WCF stack. In the data/error Flow diagram at the beginning of this section I represent these exceptions with the dark blue box. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;WCF Exceptions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="kwrd"&gt;Hitting exceptions in the WCF stack is rare for RIA Services applications. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="kwrd"&gt;One known cause is that you might be hitting the default WCF quota for Maximum number of nodes in a de-serialized graph - &lt;em&gt;'Maximum number of items that can be serialized or deserialized in an object graph is 65536'&lt;/em&gt;. If you are indeed inadvertently sending large amounts of data consider constraining it &lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span class="kwrd"&gt;Another cause could be that RIA Services is running into an exception trying to (de)serialize your Object Graph, though this is very uncommon.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="kwrd"&gt;The only option to get to the bottom of these sort of issues is to enable &lt;a href="http://msdn.microsoft.com/en-us/library/ms730342.aspx" target="_blank" mce_href="http://msdn.microsoft.com/en-us/library/ms730342.aspx"&gt;WCF tracing&lt;/a&gt; in your Web Site.&lt;/span&gt;&lt;span class="kwrd"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;strong&gt;In Conclusion&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="kwrd"&gt;Hopefully the deployment and troubleshooting information above will help you successfully deploy your RIA Services Application. Please do you the comments section to provide feedback or for items not addressed by this blog post.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="kwrd"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9979286" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/RIA+Services/">RIA Services</category></item><item><title>Understanding the WCF in ‘WCF RIA Services’</title><link>http://blogs.msdn.com/b/saurabh/archive/2009/11/23/understanding-the-wcf-in-wcf-ria-services.aspx</link><pubDate>Tue, 24 Nov 2009 07:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9927754</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=9927754</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2009/11/23/understanding-the-wcf-in-wcf-ria-services.aspx#comments</comments><description>&lt;P&gt;At PDC 2009 we (RIA Services Team) announced the re-branding of Microsoft .NET RIA Services to &lt;STRONG&gt;Windows Communication Foundation (WCF) RIA Services.&amp;nbsp; &lt;/STRONG&gt;We backed this branding change with a new Preview release, that has RIA Services built heavily on the WCF stack.&lt;/P&gt;
&lt;P&gt;In this post I plan to talk briefly about the motivation behind aligning RIA Services with WCF and then dig deep into how exactly RIA Services consumes WCF.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;RIA Services on WCF: Best of both worlds&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Ever since we announced RIA Services at MIX '09, we have heard strong customers feedback that they would like a consolidated services story from Microsoft. Acting on that feedback, over the last few months RIA Services has spent a significant amount of effort aligning closely with WCF. The Data Services team at their end has been working on a similar alignment with WCF as well.&lt;/P&gt;
&lt;P&gt;By centering all our service offerings around WCF we are maximizing developer knowledge transfer and skill reuse, both in the short and the long term.&lt;/P&gt;
&lt;P&gt;For more details on the alignment and the motivation behind it please also check out &lt;A href="http://blogs.msdn.com/endpoint/archive/2009/11/18/the-wcf-services-ecosystem.aspx" mce_href="http://blogs.msdn.com/endpoint/archive/2009/11/18/the-wcf-services-ecosystem.aspx"&gt;this post&lt;/A&gt; by the WCF team. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/UnderstandingtheWCFinWCFRIAServices_F638/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/UnderstandingtheWCFinWCFRIAServices_F638/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/UnderstandingtheWCFinWCFRIAServices_F638/image_thumb.png" width=458 height=345 mce_src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/UnderstandingtheWCFinWCFRIAServices_F638/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;I strongly believe that with WCF RIA Services our users get the best of both worlds - &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;They get all the simplicity and productivity of the RIA Services Prescriptive Programming Model and Tooling &lt;/LI&gt;
&lt;LI&gt;And if need be, they can dig deep into our services infrastructure and harness all the power and flexibility that WCF has to offer&amp;nbsp;&lt;STRONG&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Understanding RIA Services use of WCF&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;To help users better understand how RIA Services uses WCF, in the following section I walkthrough what happens under the covers when a user creates a simple DomainService and then communicated with it.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1. &lt;/STRONG&gt;&lt;STRONG&gt;‘Add new DomainService Class’&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Lets assume an application developer opens up the ‘Add new Domain Service Class’ item template and adds a new Domain Service. &lt;/P&gt;
&lt;P&gt;The item template, besides producing a skeletal Domain Service Class, adds the right assembly references and registers an Http modules in the Web.Config. By default it registers an httpModule for Cassini (for Visual Studio F5 experience) and one for IIS, as shown below.&lt;/P&gt;
&lt;DIV class=csharpcode&gt;
&lt;DIV class=csharpcode&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;&lt;SPAN class=kwrd&gt;&amp;lt;?&lt;/SPAN&gt;&lt;SPAN class=html&gt;xml&lt;/SPAN&gt; &lt;SPAN class=attr&gt;version&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="1.0"&lt;/SPAN&gt;?&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;configuration&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;  &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;system.web&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;    &lt;STRONG&gt;&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;httpModules&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/PRE&gt;&lt;PRE&gt;      &lt;STRONG&gt;&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;add&lt;/SPAN&gt; &lt;SPAN class=attr&gt;name&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="DomainServiceModule"&lt;/SPAN&gt; &lt;/STRONG&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=attr&gt;&lt;STRONG&gt;type&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&lt;STRONG&gt;="System.Web.Ria.Services.DomainServiceHttpModule, &lt;/STRONG&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;STRONG&gt;System.Web.Ria"&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;STRONG&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;STRONG&gt;    &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;httpModules&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/PRE&gt;&lt;PRE&gt;    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;compilation&lt;/SPAN&gt; &lt;SPAN class=attr&gt;debug&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="true"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;targetFramework&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="4.0"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt; &lt;/PRE&gt;&lt;PRE class=alt&gt;  &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;system.web&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;  &lt;/PRE&gt;&lt;PRE class=alt&gt;  &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;system.webServer&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;validation&lt;/SPAN&gt; &lt;SPAN class=attr&gt;validateIntegratedModeConfiguration&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="false"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;modules&lt;/SPAN&gt; &lt;SPAN class=attr&gt;runAllManagedModulesForAllRequests&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="true"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;      &lt;STRONG&gt;&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;add&lt;/SPAN&gt; &lt;SPAN class=attr&gt;name&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="DomainServiceModule"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;preCondition&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="managedHandler"&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=attr&gt;&lt;STRONG&gt;type&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&lt;STRONG&gt;="System.Web.Ria.Services.DomainServiceHttpModule, &lt;/STRONG&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;STRONG&gt;System.Web.Ria"&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;STRONG&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;    &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;modules&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;validation&lt;/SPAN&gt; &lt;SPAN class=attr&gt;validateIntegratedModeConfiguration&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="false"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;  &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;system.webServer&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;STYLE type=text/css&gt;





.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;
&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;
&lt;STYLE type=text/css&gt;








.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;
&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE&gt;&lt;SPAN class=kwrd&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;STYLE type=text/css&gt;







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;

&lt;P&gt;&lt;STRONG&gt;2.&lt;/STRONG&gt; &lt;STRONG&gt;Domain Service Code&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The developer then goes ahead and adds Business logic to his DomainService.The methods exposed via the DomainService can be broken into two broad categories – &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;CRUD operations –&lt;/STRONG&gt; Query, Update, Named Update and Delete operations. These operations follow the RIA Services prescriptive guideline and rely on the RIA Services framework. This is added functionality that RIA Services introduces on top of WCF and is not available to Core WCF Services.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Service Operation/ Invoke&amp;nbsp;Operations&lt;/STRONG&gt; - These are [Invoke] operation in the RIA Services terminology and Service Operations in WCF terminology. These methods are independent of the RIA Services concept of ChangeSet (ChangeSet applies only to the CRUD operations above) and are ‘Online/Direct’ methods that communicate with the Server immediately when invoked.&lt;/P&gt;
&lt;P&gt;Below is the code for the OrganizationService DomainService we use in our canonical &lt;A href="http://code.msdn.microsoft.com/RiaServices/Release/ProjectReleases.aspx?ReleaseId=2387" mce_href="http://code.msdn.microsoft.com/RiaServices/Release/ProjectReleases.aspx?ReleaseId=2387"&gt;RIA Services walkthrough&lt;/A&gt;.&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;&lt;SPAN class=kwrd&gt;namespace&lt;/SPAN&gt; HRApp.Web&lt;/PRE&gt;&lt;PRE&gt;{&lt;/PRE&gt;&lt;PRE class=alt&gt;    [EnableClientAccess()]&lt;/PRE&gt;&lt;PRE&gt;    &lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;class&lt;/SPAN&gt; OrganizationService : &lt;/PRE&gt;&lt;PRE class=alt&gt;        LinqToEntitiesDomainService&amp;lt;AdventureWorks_DataEntities&amp;gt;&lt;/PRE&gt;&lt;PRE&gt;    {&lt;/PRE&gt;&lt;PRE class=alt&gt;        &lt;SPAN class=preproc&gt;#region&lt;/SPAN&gt; CRUD    &lt;/PRE&gt;&lt;PRE&gt;        &lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; IQueryable&amp;lt;Employee&amp;gt; GetEmployee(){…}        &lt;/PRE&gt;&lt;PRE class=alt&gt;        &lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; InsertEmployee(Employee employee) {…}        &lt;/PRE&gt;&lt;PRE&gt;        &lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; UpdateEmployee(Employee currentEmployee) {…}        &lt;/PRE&gt;&lt;PRE class=alt&gt;        &lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; DeleteEmployee(Employee employee) {…}&lt;/PRE&gt;&lt;PRE&gt;        &lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; IQueryable&amp;lt;Employee&amp;gt; GetSalariedEmployee(){…}&lt;/PRE&gt;&lt;PRE class=alt&gt;        [RequiresAuthentication()]&lt;/PRE&gt;&lt;PRE&gt;        &lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; ApproveSabbatical(Employee current) {…}   &lt;/PRE&gt;&lt;PRE class=alt&gt;        &lt;SPAN class=preproc&gt;#endregion&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;    &lt;/PRE&gt;&lt;PRE class=alt&gt;       &lt;SPAN class=preproc&gt;#region&lt;/SPAN&gt; ServiceOperations&lt;/PRE&gt;&lt;PRE&gt;        &lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; Echo(&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; msg) {…}&lt;/PRE&gt;&lt;PRE class=alt&gt;        &lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; DateTime GetServerDateTime(){…}&lt;/PRE&gt;&lt;PRE&gt;       &lt;SPAN class=preproc&gt;#endregion&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;    }&lt;/PRE&gt;&lt;PRE&gt;}&lt;/PRE&gt;&lt;/DIV&gt;
&lt;STYLE type=text/css&gt;


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;

&lt;P&gt;&lt;B&gt;3. WCF Channel on Client&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;The RIA Services Framework on the Client contains a &lt;EM&gt;WebDomainClient:DomainClient&lt;/EM&gt; whose purpose is to help the SL client communicate with a WCF service represention of the Domain Service. The &lt;EM&gt;WebomainClient &lt;/EM&gt;uses a WCF Client Chanel for this cummunication.&lt;/P&gt;
&lt;P&gt;The&amp;nbsp;Channel is created by using WCF’s ChannelFactory and by passing to it a WCF Service Contract that was generated from the Domain Service (more on the contract creation later). The ChanelFactory creates a WCF client proxy based on the supplied contract. The generated proxy takes care of communication/(de)serialization between Client and Server.&lt;/P&gt;
&lt;P&gt;The RIA Services &lt;EM&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/ee707370(VS.91).aspx" mce_href="http://msdn.microsoft.com/en-us/library/ee707370(VS.91).aspx"&gt;DomainContext&lt;/A&gt;&amp;nbsp;&lt;/EM&gt;utilizes the &lt;EM&gt;WebDomainClient &lt;/EM&gt;for Client-Server communication and the context itself is WCF agnostic.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;4. &lt;/B&gt;&lt;B&gt;Dynamic .SVC generation&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;By default DomainServices do not have a physical .SVC file generated for them at Design Time. &lt;/P&gt;
&lt;P&gt;However each DomainService has a virtual .SVC associated with it. The .SVC represents the WCF Service that services requests for that particular DomainService. For a given DomainService the path to its .SVC can be determined using the following convention: &lt;/P&gt;
&lt;P&gt;[SilverlightApplicationBaseURI] + [DomainServiceFullName].svc (With all “&lt;B&gt;.&lt;/B&gt;” replaced by “&lt;B&gt;-&lt;/B&gt;“)&lt;/P&gt;
&lt;P&gt;So HRApp.Web.OrganizationService is exposed as – &lt;A href="http://[ApplicationBaseURI]/HRApp-Web-OrganizationService.svc" mce_href="http://[ApplicationBaseURI]/HRApp-Web-OrganizationService.svc"&gt;http://[ApplicationBaseURI]/HRApp-Web-OrganizationService.svc&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;At RunTime when the first request (within a particular Application Domain) is made for a DomainService's .SVC file , the registered httpModules intercept the call and RIA Services writes out an in memory .SVC file on the fly.&lt;/P&gt;
&lt;P&gt;Below is what the dynamically generated svc file looks like for the OrganizationService defined above - &lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;&amp;lt;%@ ServiceHost Service=”HRApp.Web.OrganizationService” &lt;/PRE&gt;&lt;PRE&gt;Factory=”System.Web.Ria.DomainServiceHostFactory”&lt;/PRE&gt;&lt;PRE class=alt&gt;%&amp;gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;STYLE type=text/css&gt;


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;

&lt;STYLE type=text/css&gt;


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;

&lt;DIV class=csharpcode&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;The .SVC refers to the DomainService Type and a ServiceHostFactory. The default RIA Services&amp;nbsp; HostFactory instantiates the default RIA Services ServiceHost, which in turn is responsible for extracting the WCF Service Contract from the DomainService (See the ‘Generating a WCF Contract’ paragraph below for more details) and also for hosting the service. &lt;/P&gt;
&lt;P&gt;A request for the DomainService .SVC in any folder under the Web Application root is redirected to [WebAppRoot]/Services/[DomainService].svc using ASP.net URL rewriting. The service is thus accessible under any folder in the WebApp. Hence even if a&amp;nbsp;.XAP is moved around under the hosting Web App Root, the Silverlight App's relative reference to the DomainService is not broken.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;NOTE - If a physical .svc file with the right file name (as per convention) is present in the ~/Services folder, that is used to define the Service Contract and no virtual .SVC file is generated. &lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;5. &lt;/B&gt;&lt;B&gt;Generating the WCF Contract:&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Each WCF service needs to have a &lt;A href="http://msdn.microsoft.com/en-us/library/system.servicemodel.description.servicedescription.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.servicemodel.description.servicedescription.aspx"&gt;ServiceDescription&lt;/A&gt; and one or more &lt;A href="http://msdn.microsoft.com/en-us/library/system.servicemodel.description.contractdescription.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.servicemodel.description.contractdescription.aspx"&gt;ContractDescriptions&lt;/A&gt; for it. &lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/system.servicemodel.servicehost.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.servicemodel.servicehost.aspx"&gt;ServiceHosts&lt;/A&gt; are responsible for extracting descriptions from a service and hosting the service. The standard ServiceHost in WCF produces descriptions based on WCF attributes such as [ServiceContract] and [OperationContract]. In RIA Services we provide a custom ServiceHost which does this based on a RIA Service Attributes and Conventions.&lt;/P&gt;
&lt;P&gt;Here is how DomainService operations are mapped to the WCF Contract:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Query operations – &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Each Query operation shows up as a ServiceOperation in the WCF Contract, but with its signature modified. &lt;/P&gt;
&lt;P&gt;The ServiceHost creates an operation description for each query operation. The return type is changed to QueryResult&amp;lt;T&amp;gt; such that it can return additional information such as count. It also adds a QueryOperationBehavior which through a custom operation Invoker takes care of applying cache policies, validating parameters and composing queries.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Insert, Update, Delete operations – &lt;/B&gt;&lt;/P&gt;
&lt;P&gt;For all CUD operations the ServiceHost generates one top-level SubmitChanges operation description. Again, it adds a custom behavior which injects a custom operation invoker. The signature of SubmitChanges is &lt;EM&gt;ChangeSet SubmitChanges(ChangeSet changeSet)&lt;/EM&gt;. The returned ChangeSet contains auto-generated values from the server.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Invoke Operations – &lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Invoke Operations are the RIA Services equivalent of WCF ServiceOperations. All Invoke Operations show up in the WCF Contract as Service Operations. &lt;/P&gt;
&lt;P&gt;For the OrganizationService Domain Service we had defined earlier, below is what the WCF Contract looks like to the “Add Service Reference” dialog - &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/UnderstandingtheWCFinWCFRIAServices_F638/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/UnderstandingtheWCFinWCFRIAServices_F638/image_6.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 397px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 202px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/UnderstandingtheWCFinWCFRIAServices_F638/image_thumb_2.png" width=296 height=143 mce_src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/UnderstandingtheWCFinWCFRIAServices_F638/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Attached to this post is also the full generated WCF Contract for the OrganizationService (the file was produced by doing an Add Service Reference to the Domain Service's WCF endpoint)&lt;/P&gt;
&lt;P&gt;&lt;B&gt;6. &lt;/B&gt;&lt;B&gt;Default Endpoints:&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;The RIA Services ServiceHost creates the following endpoints by default -&amp;nbsp; &lt;/P&gt;
&lt;P&gt;a) For Silverlight Client: SOAP w/binary endpoint. Address = “binary”, Binding = CustomBinding consisting of HttpTransportBindingElement and BinaryMessageEncodingBindingElement.&lt;/P&gt;
&lt;P&gt;b) For AJAX Client: JSON REST endpoint. Address = “”, Binding = WebHttpBinding w/JSON as the format.&lt;/P&gt;
&lt;P&gt;c) For other clients : SOAP w/XML endpoint. Address = “soap”, Binding = BasicHttpBinding consisting of HttpTransportBindingElement and TextMessageEncodingBindingElement.&lt;/P&gt;
&lt;P&gt;The blog post &lt;A href="http://blogs.msdn.com/brada/archive/2009/11/22/ria-services-a-domainservice-is-a-wcf-service-add-service-reference.aspx" target=_blank mce_href="http://blogs.msdn.com/brada/archive/2009/11/22/ria-services-a-domainservice-is-a-wcf-service-add-service-reference.aspx"&gt;here&lt;/A&gt; describes how one can consume the SOAP XML endpoint in a WindowsForms application. &lt;A href="http://code.msdn.microsoft.com/RiaServices/Release/ProjectReleases.aspx?ReleaseId=3587" target=_blank mce_href="http://code.msdn.microsoft.com/RiaServices/Release/ProjectReleases.aspx?ReleaseId=3587"&gt;Here&lt;/A&gt; is a Sample of the same endpoint being consumed in a WPF application.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Summary&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Above we discussed in some detail how RIA Services uses WCF under the covers. Hopefully this helps folks better understand the RIA Services alignment with WCF.&lt;/P&gt;
&lt;P&gt;In a future post I&amp;nbsp; plan to discuss how WCF extensibility (e.g. custom behaviors) can be applied to Domain Services. In the meanwhile &lt;A href="http://code.msdn.microsoft.com/RiaServices/Release/ProjectReleases.aspx?ReleaseId=3576" target=_blank mce_href="http://code.msdn.microsoft.com/RiaServices/Release/ProjectReleases.aspx?ReleaseId=3576"&gt;here&lt;/A&gt; is a Sample that demos this.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9927754" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-09-92-77-54/Add-Service-Reference-Generated-WCF-Contract-_2E00_cs" length="48212" type="text/plain" /><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/Silverlight/">Silverlight</category><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/RIA+Services/">RIA Services</category></item><item><title>.NET RIA Services</title><link>http://blogs.msdn.com/b/saurabh/archive/2009/03/19/net-ria-services.aspx</link><pubDate>Thu, 19 Mar 2009 19:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9491030</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=9491030</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2009/03/19/net-ria-services.aspx#comments</comments><description>&lt;P&gt;Over the last year&amp;nbsp;I have been working on &lt;A title=".NET RIA Services" href="http://silverlight.net/forums/t/80529.aspx" mce_href="http://silverlight.net/forums/t/80529.aspx"&gt;.NET RIA Services&lt;/A&gt;, a preview of which just went public at MIX.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/brada/" mce_href="http://blogs.msdn.com/brada/"&gt;Brad Abrams&lt;/A&gt; does a great job on his blog of answering the obvious question you might have - &lt;A href="http://blogs.msdn.com/brada/archive/2009/03/19/what-is-net-ria-services.aspx" mce_href="http://blogs.msdn.com/brada/archive/2009/03/19/what-is-net-ria-services.aspx"&gt;What is .NET RIA Services?&lt;/A&gt;.&amp;nbsp;Also be sure to check out his &lt;A href="http://videos.visitmix.com/MIX09/T40F" mce_href="http://videos.visitmix.com/MIX09/T40F"&gt;session at MIX&lt;/A&gt; on the same topic. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.nikhilk.net/" mce_href="http://www.nikhilk.net/"&gt;Nikhil Kothari&lt;/A&gt; presented a great &lt;A href="http://videos.visitmix.com/MIX09/T41F" mce_href="http://videos.visitmix.com/MIX09/T41F"&gt;session&lt;/A&gt; on .NET RIA Services at MIX as well.&lt;/P&gt;
&lt;P&gt;A good resource for getting started with RIA Services is &lt;A href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=RiaServices&amp;amp;DownloadId=5147" mce_href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=RiaServices&amp;amp;DownloadId=5147"&gt;this wakthrough&lt;/A&gt; that guides you through building your first Silverlight RIA Services Application. Once you are ready to dig deeper into individual feature areas, &lt;A href="http://download.microsoft.com/download/F/B/8/FB8CA635-296B-487F-965C-8148F08B5319/riaservicesoverviewpreview.pdf" mce_href="http://download.microsoft.com/download/F/B/8/FB8CA635-296B-487F-965C-8148F08B5319/riaservicesoverviewpreview.pdf"&gt;this doc&lt;/A&gt; should help with that. If like me you learn by stepping through working code, you will find the sample applications &lt;A href="http://code.msdn.microsoft.com/RiaServices" mce_href="http://code.msdn.microsoft.com/RiaServices"&gt;here&lt;/A&gt;&amp;nbsp;helpful.&lt;/P&gt;
&lt;P&gt;As with any preview release &lt;A href="http://silverlight.net/forums/53.aspx" mce_href="http://silverlight.net/forums/53.aspx"&gt;feedback&lt;/A&gt; is welcome and greatly appreciated.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9491030" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/RIA+Services/">RIA Services</category></item><item><title>.NET Framework 3.5 - Client Application Services</title><link>http://blogs.msdn.com/b/saurabh/archive/2008/05/16/net-framework-3-5-client-application-services.aspx</link><pubDate>Sat, 17 May 2008 00:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8515038</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=8515038</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2008/05/16/net-framework-3-5-client-application-services.aspx#comments</comments><description>&lt;P&gt;I&amp;nbsp;wrote the blog post below about 6 months back and just realised that I never actually got around to posting it. I the spirit of 'better late than never' here it is ...&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&amp;nbsp;&lt;/B&gt;&lt;B&gt;.NET Framework 3.5 - Client Application Services&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;In .NET Framework 3.5, ASP.NET&lt;INS cite=mailto:Saurabh%20Pant dateTime=2007-08-30T17:41&gt; &lt;/INS&gt;provides built in &lt;A href="http://msdn2.microsoft.com/en-us/library/bb547119(VS.90).aspx#Examples" mce_href="http://msdn2.microsoft.com/en-us/library/bb547119(VS.90).aspx#Examples"&gt;Web Application Services&lt;/A&gt; that provide access to features such as forms authentication, roles, and profile properties. These services provide building blocks to enable super-common scenarios and as a result can provide significant productivity wins and time-savings for developers. &lt;/P&gt;
&lt;P&gt;The &lt;A href="http://msdn2.microsoft.com/en-us/library/bb384339(VS.90).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/bb384339(VS.90).aspx"&gt;Client Application Services&lt;/A&gt; feature enables the Client developers to seamlessly leverage these Web Application Services from within their Client Applications. The feature also supports Occasionally Connect scenarios, enabling connected client applications to continue working even on loss of connectivity. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image002_2.gif" mce_href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image002_2.gif"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=184 alt=clip_image002 src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image002_thumb.gif" width=244 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image002_thumb.gif"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Consider the following scenario facilitated by this feature …&lt;/P&gt;
&lt;P&gt;An enterprise leverages .NET 3.5 and exposes Authentication, Roles and Profile Application Services from their existing web servers. The enterprise has a mixture of Ajax, Silverlight and Rich Client applications, all of which are used by a typical employee on daily basis. The employee can now use one set of credentials to logon to all these applications and any preferences/settings modified at one location are reflects for all applications.&amp;nbsp; When the employee is away from the corporate network, say on a flight, she can still continues to use her Client Application by logging on in the offline mode using the same credentials. Also, say an employee gets promoted to be a manager, all the enterprise needs to do is add her to the manager role on the server and now managerial data is available to her across all her web and client applications. &lt;/P&gt;
&lt;P&gt;The heavy lifting involved in enabling the scenario above today lies in the underlying plumbing code; With Client Application Services in .NET 3.5 this plumbing is now taken care of by the framework itself, significantly boosting developer productivity.&lt;/P&gt;
&lt;P&gt;Let’s walk through a scenario and see how easy it is to now add Web Settings support to your application -&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Part 1: Create the web site – &lt;/P&gt;
&lt;P&gt;1. In Orcas Beta2, Create a new ASP.NET Web Application &lt;/P&gt;
&lt;P&gt;2. Set the authentication mode to Windows Authentication&lt;/P&gt;
&lt;P&gt;&amp;lt;authentication mode="windows"/&amp;gt;&lt;/P&gt;
&lt;P&gt;3. Fill in the profile section of the web.config.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;lt;profile enabled="true"&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;properties&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;add name="Text" type="string" readOnly="false" defaultValue="DefaultText" serializeAs="String" allowAnonymous="false"/&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;add name="Color" type="string" readOnly="false" defaultValue="white" serializeAs="String" allowAnonymous="false" /&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;/properties&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;/profile&amp;gt;&lt;/P&gt;
&lt;P&gt;4. Enable this property to be accessed via web services by adding this section to Web Config&lt;/P&gt;
&lt;P&gt;&amp;lt;system.web.extensions&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;scripting&amp;gt;&lt;/P&gt;
&lt;P&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;&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;&amp;nbsp; &amp;lt;webServices&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;profileService enabled="true" readAccessProperties="Text, Color" writeAccessProperties="Text, Color"/&amp;gt;&lt;/P&gt;
&lt;P&gt;Part 2: Create the Client Application – &lt;/P&gt;
&lt;P&gt;1. Right click on the solution and add a new project (works the same for WPF or WinForms)&lt;/P&gt;
&lt;P&gt;2. Right click on the new client project and select properties&lt;/P&gt;
&lt;P&gt;3. In the Services tab, enable application services, select windows auth and fill in the services url for the Web Settings Service. For now it is the development server URL, in production this would be your ASP.NET web site.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image004_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image004_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=207 alt=clip_image004 src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image004_thumb.jpg" width=244 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image004_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;4. In the settings tab, click on “Load Web Settings” ... this will pull down all the metadata for the profile properties defined on the server for the Windows User you are currently working as. ( If you were using Forms Authentication in your Application you would be prompted by the designer to enter you Forms Credentials before being able to download the settings meta data)&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image006_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image006_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=207 alt=clip_image006 src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image006_thumb.jpg" width=244 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image006_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;We are now ready to go!&amp;nbsp; We can have strongly typed, async read-write access to your Web settings.&amp;nbsp; These settings will stay in sync no matter where you change them (WinForms/WPF/Asp.Net/AJAX/Silverlight Application), they are reflected everywhere!&lt;/P&gt;
&lt;P&gt;Examples:&lt;/P&gt;
&lt;P&gt;Windows Forms code – &lt;/P&gt;
&lt;P&gt;private void Form1_Load(object sender, EventArgs e)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BackColor = Color.FromName(Properties.Settings.Default.Color);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void button1_Click(object sender, EventArgs e)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Properties.Settings.Default.Color = this.textBox1.Text;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BackColor = Color.FromName(Properties.Settings.Default.Color);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Properties.Settings.Default.Save();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image008_2.gif" mce_href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image008_2.gif"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=244 alt=clip_image008 src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image008_thumb.gif" width=238 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image008_thumb.gif"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;ASP.NET Server side code – &lt;/P&gt;
&lt;P&gt;function loadColor()&lt;/P&gt;
&lt;P&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; {&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;&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;/P&gt;
&lt;P&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;&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;&amp;nbsp; Sys.Services.ProfileService.load(["Color"], loadCompleteCallback, loadSaveFailed, "");&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&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;/P&gt;
&lt;P&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; function btnSaveColor()&lt;/P&gt;
&lt;P&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;/P&gt;
&lt;P&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;&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;&amp;nbsp; Sys.Services.ProfileService.properties["Color"] = document.form1.theColor.value;&lt;/P&gt;
&lt;P&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;&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;&amp;nbsp; Sys.Services.ProfileService.save(null, saveCompleteCallback, loadSaveFailed, "");&lt;/P&gt;
&lt;P&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;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image010_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image010_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=198 alt=clip_image010 src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image010_thumb.jpg" width=244 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh/WindowsLiveWriter/.NETFramework.5ClientApplicationServices_C17F/clip_image010_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Source Code:&lt;/P&gt;
&lt;P&gt;The attached sample code contains the above Client scenario enabled with additional Forms Authentication (Login/Logout), Roles and Offline support. &lt;/P&gt;
&lt;P&gt;It also contains a Web Site with using the same Authentication and Profile service.&lt;/P&gt;
&lt;P&gt;Additional Resources:&lt;/P&gt;
&lt;P&gt;Web Application Services Overview …&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/bb547119(VS.90).aspx#Examples" mce_href="http://msdn2.microsoft.com/en-us/library/bb547119(VS.90).aspx#Examples"&gt;http://msdn2.microsoft.com/en-us/library/bb547119(VS.90).aspx#Examples&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Client Application Services Overview …&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/bb384339(VS.90).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/bb384339(VS.90).aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb384339(VS.90).aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Client Application Services end to end walkthrough …&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/winformsue/archive/2007/05/20/client-application-services-in-windows-forms-end-to-end-walkthrough-available.aspx" mce_href="http://blogs.msdn.com/winformsue/archive/2007/05/20/client-application-services-in-windows-forms-end-to-end-walkthrough-available.aspx"&gt;http://blogs.msdn.com/winformsue/archive/2007/05/20/client-application-services-in-windows-forms-end-to-end-walkthrough-available.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8515038" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-08-51-50-38/ClientApplicationServices-_2D00_-Sample.zip" length="119771" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/Client+Application+Services/">Client Application Services</category></item><item><title>VS Live 2008 Orlando - Silverlight 2 Talk</title><link>http://blogs.msdn.com/b/saurabh/archive/2008/05/13/vs-live-2008-orlando-silverlight-2-talk.aspx</link><pubDate>Tue, 13 May 2008 19:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8500860</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=8500860</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2008/05/13/vs-live-2008-orlando-silverlight-2-talk.aspx#comments</comments><description>&lt;P&gt;Later today,&amp;nbsp;I present @ &lt;A class="" title="VS Live Orlando 2008" href="http://vslive.com/2008/orlando/" mce_href="http://vslive.com/2008/orlando/"&gt;VS Live&lt;/A&gt; the following talk ...&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A class="" id=vm12 title=vm12 name=vm12&gt;&lt;/A&gt;Building Rich Internet Application using Microsoft Silverlight 2.0&lt;/STRONG&gt;&lt;BR&gt;In this session, we will build a Video Search Web Site using Silverlight 2.0. The session will demo – how to use Visual Studio to create a Sliverlight applications, how to create UI using XAML markup and code, how to retrieve data from a web service, how to manipulate &amp;nbsp;data with XML and LINQ, how to persist user settings using local storage, how to interact with browser using HTML DOM, how to use the SL OpenFile dialog etc …&lt;/P&gt;
&lt;P&gt;Attached are the Source code/Presentaion/DemoScript for the talk .&lt;/P&gt;
&lt;P&gt;Guthrie’s Silverlight Tips, Tricks, Tutorials and Links Page are available &lt;A class="" href="http://weblogs.asp.net/scottgu/pages/silverlight-posts.aspx" mce_href="http://weblogs.asp.net/scottgu/pages/silverlight-posts.aspx"&gt;here&lt;/A&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The MIX sessions I referred to are available online &lt;A class="" href="http://sessions.visitmix.com/" mce_href="http://sessions.visitmix.com/"&gt;here&lt;/A&gt;.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In particular, the talk above was modeled after Joe Stegman and Mike Harsh's&amp;nbsp;&lt;A class="" href="http://sessions.visitmix.com/" mce_href="http://sessions.visitmix.com/"&gt;&lt;FONT color=#006ff7&gt;MIX 08 session&lt;/FONT&gt;&lt;/A&gt; of the same name, the code for which is availabe &lt;A class="" href="http://blogs.msdn.com/mharsh/archive/2008/03/05/slides-and-demos-from-my-mix-08-talk.aspx" mce_href="http://blogs.msdn.com/mharsh/archive/2008/03/05/slides-and-demos-from-my-mix-08-talk.aspx"&gt;&lt;FONT color=#006ff7&gt;here&lt;/FONT&gt;&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The UX Skin that&amp;nbsp;I demoed was created by Corrina and she has bloged about it &lt;A class="" href="http://blogs.msdn.com/corrinab/archive/2008/03/24/a-new-control-skin-set.aspx" mce_href="http://blogs.msdn.com/corrinab/archive/2008/03/24/a-new-control-skin-set.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The page demoing the Silverlight 2 Beta 1 controls is available &lt;A class="" href="http://blogs.msdn.com/kathykam/archive/2008/03/05/silverlight-2-beta-1-control-samples.aspx" mce_href="http://blogs.msdn.com/kathykam/archive/2008/03/05/silverlight-2-beta-1-control-samples.aspx"&gt;here&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Enjoy !!!&lt;BR&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8500860" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-08-50-08-60/VS-Live-_2D00_-Upload.zip" length="3260256" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/Silverlight/">Silverlight</category></item><item><title>Avanade Tech Summit - Silverlight Talk </title><link>http://blogs.msdn.com/b/saurabh/archive/2008/04/22/avanade-tech-summit-silverlight-talk.aspx</link><pubDate>Tue, 22 Apr 2008 23:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8417221</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=8417221</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2008/04/22/avanade-tech-summit-silverlight-talk.aspx#comments</comments><description>&lt;P&gt;I am presenting at the Avanade Tech Summit in Seattle today on "Building a Rich Internet Application using Silverlight 2.0". Slides for the presentaion are attached to this post ...&lt;/P&gt;
&lt;P&gt;The App I plan to build on stage is the same one Joe Stegman and Mike Harsh built during their &lt;A class="" href="http://sessions.visitmix.com/" mce_href="http://sessions.visitmix.com/"&gt;MIX 08 session&lt;/A&gt; of the same name, and the code for which is availabe &lt;A class="" href="http://blogs.msdn.com/mharsh/archive/2008/03/05/slides-and-demos-from-my-mix-08-talk.aspx" mce_href="http://blogs.msdn.com/mharsh/archive/2008/03/05/slides-and-demos-from-my-mix-08-talk.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8417221" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-08-41-72-21/AvanadeSLTalk.pptx" length="788525" type="application/vnd.openxmlformats-officedocument.pres" /></item><item><title>Smart Client: Whats new in Orcas?</title><link>http://blogs.msdn.com/b/saurabh/archive/2007/03/26/smart-client-whats-new-in-orcas.aspx</link><pubDate>Mon, 26 Mar 2007 13:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1951439</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=1951439</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2007/03/26/smart-client-whats-new-in-orcas.aspx#comments</comments><description>&lt;P&gt;Am presenting the following talk at DevConnections today - &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;VMS311:&amp;nbsp;Smart Clients: What's New in Visual Studio "Orcas"?&lt;BR&gt;&lt;/STRONG&gt;&lt;A class="" href="http://blogs.msdn.com/saurabh" mce_href="http://blogs.msdn.com/saurabh"&gt;&lt;STRONG&gt;Saurabh&amp;nbsp;Pant&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;Visual Studio "Orcas" is about making the rapid application development experience even easier. In this overview we will introduce new features that allow Smart Clients to go where they never have before: including Occasionally Connected Systems, SQL Server Compact Edition, Client App Services, N-Tier Data, ClickOnce Deployment enhancements, as well as out-of-the-box ways to future proof your existing applications: including Windows Forms / WPF Integration, and Vista enhancements. Add to that the designer productivity enhancements and see an exciting new wave of smart client development.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you were at the session&amp;nbsp;the side deck is attached to this post as promised. &lt;/P&gt;
&lt;P&gt;As always feedback/thoughts are welcome. Feel free to contact me through this blog is you would like additional information on any of the technologies discussed.&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1951439" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-01-95-14-39/NewInOrcas_5F00_DevConn07.pptx" length="1154467" type="application/vnd.openxmlformats-officedocument.pres" /><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/Silverlight/">Silverlight</category></item><item><title>Live From Redmond: Client Application Services in Orcas</title><link>http://blogs.msdn.com/b/saurabh/archive/2006/11/27/live-from-redmond-client-application-services-in-orcas.aspx</link><pubDate>Tue, 28 Nov 2006 00:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1161335</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=1161335</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2006/11/27/live-from-redmond-client-application-services-in-orcas.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;[Update]&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;My&amp;nbsp;introductory post&amp;nbsp;to Client Application Services is available here &lt;A href="http://blogs.msdn.com/saurabh/archive/2008/05/16/net-framework-3-5-client-application-services.aspx"&gt;http://blogs.msdn.com/saurabh/archive/2008/05/16/net-framework-3-5-client-application-services.aspx&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;[Original Post]&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;Continuing further along in with our "Live from Redmond" series I shall be presenting the following talk on Nov 27th ...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;Have attached the&amp;nbsp;slide deck from the talk. The actual presentation&amp;nbsp;can be viewed online at any time through the registration link below.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Arial&gt;&lt;SPAN&gt;Live From Redmond: Client Application Services in Orcas&lt;/SPAN&gt;&amp;nbsp;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;STRONG&gt;27th Nov&amp;nbsp;2006 &lt;/STRONG&gt;[&lt;A class="" title="Click here to register" href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032312759&amp;amp;EventCategory=4&amp;amp;culture=en-US&amp;amp;CountryCode=US" target=_blank mce_href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032312759&amp;amp;EventCategory=4&amp;amp;culture=en-US&amp;amp;CountryCode=US"&gt;&lt;FONT color=#006ff7&gt;Click&amp;nbsp;here to register&lt;/FONT&gt;&lt;/A&gt;]&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;SPAN id=eventInfo_lblEventDescription&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;Client Application Services&amp;nbsp;are&amp;nbsp;a new set of features in Orcas that&amp;nbsp;enable application to authenticate users, get roles for the&amp;nbsp;user and persisting&amp;nbsp;user settings&amp;nbsp;on a server.&amp;nbsp;These&amp;nbsp;Client Application Services work in conjugation with the Web Application Services&amp;nbsp;for Authentication, Roles and Profiles also new in Orcas.&amp;nbsp;Additionally these Client Application Services support Occasionally Connected Applications by supporting offline Authenticatoin, Roles and Profiles,&amp;nbsp;where they work&amp;nbsp;against a local cache instead of an online server.&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;This webcast will&amp;nbsp;provide an introduction Client Application Services&amp;nbsp;as well as examples of how&amp;nbsp;to use the services in you own applications.&lt;/SPAN&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1161335" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-01-16-13-35/ClientApplicationServices-MSDN-Talk.ppt" length="965632" type="application/vnd.ms-powerpoint" /><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/Windows+Forms/">Windows Forms</category><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/Client+Application+Services/">Client Application Services</category></item><item><title>Live From Redmond: Configuring ClickOnce to best work for your deployment scenario</title><link>http://blogs.msdn.com/b/saurabh/archive/2006/11/06/live-from-redmond-configuring-clickonce-to-best-work-for-your-deployment-scenario.aspx</link><pubDate>Mon, 06 Nov 2006 20:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1001860</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=1001860</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2006/11/06/live-from-redmond-configuring-clickonce-to-best-work-for-your-deployment-scenario.aspx#comments</comments><description>&lt;SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Arial&gt;&lt;SPAN&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;[Update 11/27]&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;The talk is now available online &lt;A class="" title="Download - Configuring ClickOnce to best work for your deployment scenario" href="http://download.microsoft.com/download/3/1/5/3158fa6f-2319-402a-9b07-e746e28a1f9d/Nov7%20Clickonce%20Tips%20and%20Tricks.wmv" mce_href="http://download.microsoft.com/download/3/1/5/3158fa6f-2319-402a-9b07-e746e28a1f9d/Nov7 Clickonce Tips and Tricks.wmv"&gt;here&lt;/A&gt;&amp;nbsp;[Click &lt;A class="" title="Zipped Download - Configuring ClickOnce to best work for your deployment scenario" href="http://download.microsoft.com/download/3/1/5/3158fa6f-2319-402a-9b07-e746e28a1f9d/Nov7%20Clickonce%20Tips%20and%20Tricks.zip" mce_href="http://download.microsoft.com/download/3/1/5/3158fa6f-2319-402a-9b07-e746e28a1f9d/Nov7 Clickonce Tips and Tricks.zip"&gt;here&lt;/A&gt; for zipped download]&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;[Update 11/07]&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;Attaching the Slide Deck from the presentation&amp;nbsp;to the post.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;[Original Post]&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;Continuing with our highly popular "Live from Redmond" series I shall be presenting the following ClickOnce talk on Nov 7th ...&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Arial&gt;&lt;SPAN&gt;Live From Redmond: Configuring ClickOnce to best work for your deployment scenario&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;STRONG&gt;7th Nov&amp;nbsp;2006 &lt;/STRONG&gt;[&lt;A class="" title="Click here to register" href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032312753&amp;amp;EventCategory=4&amp;amp;culture=en-US&amp;amp;CountryCode=US&amp;amp;Action=Preview" target=_blank mce_href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032312753&amp;amp;EventCategory=4&amp;amp;culture=en-US&amp;amp;CountryCode=US&amp;amp;Action=Preview"&gt;Click&amp;nbsp;here to register&lt;/A&gt;]&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;The “ClickOnce”&amp;nbsp;feature&amp;nbsp;in&amp;nbsp;.Net 2.0 brings the ease of web deployment and update to Smart Client Applications&amp;nbsp;in&amp;nbsp;an enterprise.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;Are you an enterprise developing Line Of Business applications&amp;nbsp;inhouse and want to know how best to deploy them internally using ClickOnce?&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;Are you a vendor and want to know how best to package your applications using ClickOnce so that they can be deployed by multiple enterprises?&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;Is the cross browser support important to your application and you want to know what ClickOnce offers in this space?&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;This webcast will discuss recommendations from the ClickOnce team&amp;nbsp;on&amp;nbsp;how ot best leverage ClickOnce for common deployment scenarios like above.&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;It&amp;nbsp;will&amp;nbsp;discuss the options available with the current release of ClickOnce and how these scenarios are even better enabled in Orcas.&lt;/SPAN&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1001860" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-01-00-18-60/Clickonce-MSDN-Talk.ppt" length="1280000" type="application/vnd.ms-powerpoint" /><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/ClickOnce/">ClickOnce</category></item><item><title>Live From Redmond series - Talk Resources</title><link>http://blogs.msdn.com/b/saurabh/archive/2006/08/23/live-from-redmond-series-talk-resources.aspx</link><pubDate>Wed, 23 Aug 2006 20:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:714987</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=714987</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2006/08/23/live-from-redmond-series-talk-resources.aspx#comments</comments><description>&lt;P&gt;An Overview of Windows Forms in Microsoft Visual Studio 2005&lt;/P&gt;
&lt;P&gt;For all the folks that logged into&amp;nbsp;my MSDN talk today morning&amp;nbsp;here is the slide deck from the talk. The talk being demo intensive the deck might not be super helpful but it does have the resources slide which will direct you to&amp;nbsp;where you can get the samples I displayed during the talk.&lt;/P&gt;
&lt;P&gt;I'll also&amp;nbsp;update this post as soon as&amp;nbsp;we have the talk posted online ...&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=714987" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-00-71-49-87/MSDNTalk.ppt" length="512000" type="application/vnd.ms-powerpoint" /><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/Windows+Forms/">Windows Forms</category></item><item><title>Upcoming team webcasts - Live From Redmond series</title><link>http://blogs.msdn.com/b/saurabh/archive/2006/08/22/upcoming-team-webcasts-live-from-redmond-series.aspx</link><pubDate>Wed, 23 Aug 2006 08:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:713685</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=713685</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2006/08/22/upcoming-team-webcasts-live-from-redmond-series.aspx#comments</comments><description>&lt;P&gt;As part of the Live From Redmond Series of talks I shall be presenting a talk&amp;nbsp;on Aug 23rd - &lt;/P&gt;
&lt;P&gt;"An Overview of Windows Forms in Microsoft Visual Studio 2005".&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Windows Forms application development takes a giant step forward in Visual Studio 2005. This session provides an overview of the new Windows Forms feature set, as well as explores the RAD development environment. See how ClickOnce deployment technology brings the ease of Web deployment to Windows Forms applications. See demonstrations of how Windows Forms and Visual Studio 2005 make it easy to build professional looking applications. Walk through improvements to the Windows Forms designers, including demonstrations of snap lines and smart tags. This session also give a quick high level demonstration of how easy it is to build Office applications that use Windows Forms components.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;FONT face="Times New Roman" size=3&gt;For client developers here is a list of all upcoming webcasts (see left pane of the Windows Forms website &lt;/FONT&gt;&lt;A href="http://www.windowsforms.net/" mce_href="http://www.windowsforms.net/"&gt;&lt;FONT face="Times New Roman" size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt; for the more detailed list):&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480" cellSpacing=0 cellPadding=0 border=1 class="MsoTableGrid"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 41.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" vAlign=top width=55&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;Date&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 3in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=288&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;Title&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 74.7pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=100&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;Speaker&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 110.7pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=148&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;Registration URL&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 41.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=55&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: right" align=right&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;FONT size=2&gt;16-Aug&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 3in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=288&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;FONT size=2&gt;Smart Client: Offline Data Synchronization and Caching for Smart Clients&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 74.7pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=100&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;A href="http://blogs.msdn.com/stevelasker/" mce_href="http://blogs.msdn.com/stevelasker/"&gt;&lt;FONT size=2&gt;Steve Lasker&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 110.7pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=148&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;A href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032303880%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e" mce_href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032303880%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;&lt;FONT size=2&gt;Click here&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 2"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 41.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=55&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: right" align=right&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;FONT size=2&gt;23-Aug&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 3in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=288&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;FONT size=2&gt;Windows Forms: An Overview of Windows Forms in Microsoft Visual Studio 2005&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 74.7pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=100&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;A href="http://blogs.msdn.com/saurabh/default.aspx" mce_href="http://blogs.msdn.com/saurabh/default.aspx"&gt;&lt;FONT size=2&gt;Saurabh Pant&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 110.7pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=148&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;A href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032303891%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e" mce_href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032303891%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;&lt;FONT size=2&gt;Click here&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 3"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 41.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=55&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: right" align=right&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;FONT size=2&gt;30-Aug&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 3in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=288&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;FONT size=2&gt;Visual Studio: Developing Local and &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:place w:st="on"&gt;Mobile&lt;/st1:place&gt; Data Solutions with SQL Server Everywhere&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 74.7pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=100&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;A href="http://blogs.msdn.com/stevelasker/" mce_href="http://blogs.msdn.com/stevelasker/"&gt;&lt;FONT size=2&gt;Steve Lasker&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 110.7pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=148&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;A href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032303889%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e" mce_href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032303889%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;&lt;FONT size=2&gt;Click here&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 4"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 41.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=55&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: right" align=right&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;FONT size=2&gt;13-Sep&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 3in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=288&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;(WinFX) Windows Forms: How to Leverage Windows Forms and Windows Presentation Foundation in a Single Hybrid Application&lt;/SPAN&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 74.7pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=100&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=2&gt;&lt;st1:PersonName w:st="on"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;Scott Morrison&lt;/SPAN&gt;&lt;/st1:PersonName&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 110.7pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=148&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;A href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032303883%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e" mce_href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032303883%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;&lt;FONT size=2&gt;Click here&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 5; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 41.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=55&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: right" align=right&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;FONT size=2&gt;20-Sep&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 3in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=288&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;FONT size=2&gt;Windows Forms: Solutions to the Most Common Windows Forms Development Challenges&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 74.7pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=100&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=2&gt;&lt;st1:PersonName w:st="on"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;Scott Morrison&lt;/SPAN&gt;&lt;/st1:PersonName&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 110.7pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=148&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;A href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032303886%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e" mce_href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032303886%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;&lt;FONT size=2&gt;Click here&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=713685" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/Windows+Forms/">Windows Forms</category></item><item><title>TechEd 2006</title><link>http://blogs.msdn.com/b/saurabh/archive/2006/06/13/629712.aspx</link><pubDate>Tue, 13 Jun 2006 19:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:629712</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=629712</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2006/06/13/629712.aspx#comments</comments><description>&lt;P&gt;[Update] &lt;BR&gt;Have attached the TechEd Slide Deck. The resources section for the deck will alos direct you to the sample code that I demoed during the presentation.&lt;/P&gt;
&lt;P&gt;[Original Post]&lt;BR&gt;Am in Boston this week for TechEd ... and just got done with my talk titled "Windows Forms in Visual Studio 2005: An Overview".&lt;BR&gt;I had planned to post the slide deck, demos, resources from the talk posted on my blog but have been having connectivity issues getting to WindowsForms.net server that hosts by blog files. Will have them uploaded by end of week at the latest ...&lt;/P&gt;
&lt;P&gt;Also I will be at the Technical Learning Centre - Dev Discussion Area on Wednesday 12:00-3:00 and Friday 9:00-4:00. If you happen to be at TechEd and have WindowsForms/ClickOnce questions feel free to stop by.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=629712" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-00-62-97-12/DEV221_5F00_Pant.ppt" length="726016" type="application/vnd.ms-powerpoint" /><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/Windows+Forms/">Windows Forms</category></item><item><title>ClickOnce coverage in the 'Windows Forms User Education' team blog </title><link>http://blogs.msdn.com/b/saurabh/archive/2006/05/28/609705.aspx</link><pubDate>Mon, 29 May 2006 05:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:609705</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=609705</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2006/05/28/609705.aspx#comments</comments><description>&lt;P&gt;Jay Allen of the Windows Forms User Education team has some good coverage of ClickOnce issues on their team blog. Definately worth checking out ...&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/winformsue/archive/category/11821.aspx"&gt;http://blogs.msdn.com/winformsue/archive/category/11821.aspx&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=609705" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/ClickOnce/">ClickOnce</category></item><item><title>ClickOnce and FireFox</title><link>http://blogs.msdn.com/b/saurabh/archive/2006/03/02/541988.aspx</link><pubDate>Thu, 02 Mar 2006 13:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:541988</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>30</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=541988</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2006/03/02/541988.aspx#comments</comments><description>&lt;P&gt;Firstly sorry for the delay in this messaging from ClickOnce. Judging by the passionate opinions I have heard around the community on this issue, this is a blog we should have posted a while back. &lt;/P&gt;
&lt;P&gt;[Hanselman's Blog - &lt;A href="http://www.hanselman.com/blog/PermaLink.aspx?guid=7ce42ccd-e531-4d43-a93f-73483c0afd3d"&gt;http://www.hanselman.com/blog/PermaLink.aspx?guid=7ce42ccd-e531-4d43-a93f-73483c0afd3d&lt;/A&gt;]&lt;BR&gt;[Sven Groot's Blog - &lt;A href="http://channel9.msdn.com/ShowPost.aspx?PostID=138273"&gt;http://channel9.msdn.com/ShowPost.aspx?PostID=138273&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;[Lady bug - &lt;A href="http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=5b309bf8-370d-4571-8ce2-aaebb525488b"&gt;http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=5b309bf8-370d-4571-8ce2-aaebb525488b&lt;/A&gt; ]&lt;/P&gt;
&lt;P style="MARGIN-RIGHT: 0px"&gt;Geting to business; In the V2.0 release of the Framework, ClickOnce &lt;STRONG&gt;does not&lt;/STRONG&gt; have support for FireFox.&amp;nbsp;&lt;BR&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I do discuss later in this post how application publishers can use the ClickOnce shortcut files to allow FireFox users to install Clickonce applications.&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;ClickOnce &lt;STRONG&gt;does&lt;/STRONG&gt; work on machines where FireFox is the default browser,&amp;nbsp;if the user clicks on the deployment manifest in IE. &lt;BR&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;There is an issues users hit here if their application carries a bootstrapper package, again a workaround is mentioned&amp;nbsp;later in the post.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;And yes we are actively looking into &lt;STRONG&gt;remedying&lt;/STRONG&gt; this in the &lt;STRONG&gt;next release&lt;/STRONG&gt; of the Framework. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What happens when I click on a ClickOnce deployment in FireFox&lt;/STRONG&gt;?&lt;/P&gt;
&lt;P&gt;ClickOnce provides an implemention of the IE mime handler interface for the mime type &lt;EM&gt;application/x-ms-application&lt;/EM&gt; which is associated with .application files on servers hosting ClickOnce application. Hence when a user clicks on a .application in IE our mime handler is invoked which downlods the .application file and fires up the ClickOnce install.&lt;/P&gt;
&lt;P&gt;When a user clicks on a .application in FireFox the FireFox equivalent of the Open/Save dialog comes up. Once the .application file is downloaded to the local&amp;nbsp;macine&amp;nbsp;(to the FireFox cache on Open and to a user specified location on Save)&amp;nbsp;it is run form there firing up ClickOnce. ClickOnce now parses the locally downloaded .application and tries to download the actual application manifest it refers to. If the .application&amp;nbsp;contains a relative path to the application manifest ClickOnce will try to find it relative to the .application in the FireFox temp folder and fail. If it is a full Url to the application manifest ClickOnce fails anyway, this time due to a security check we have that does not allow the .application and the corresponding application bits to be in different security zones.&lt;/P&gt;
&lt;P&gt;There have been Plugins written by the FireFox community &lt;BR&gt;[e.g. &lt;A href="http://www.softwarepunk.com/cohelper/"&gt;http://www.softwarepunk.com/cohelper/&lt;/A&gt;] where they parse the application after it has been downloaded and read the deploymentProvider Url from it. They then use the undocumented Apis&amp;nbsp;for invoking ClickOnce with the URL as a parameter [rundll32 dfshim.dll,ShOpenVerbApplication URL ]. I have never tried the approach above, but would believe it works. &lt;BR&gt;&amp;nbsp;&lt;BR&gt;From the ClickOnce teams perspective we would advise users against parsing the ClickOnce manifest and relying on its format for we could inadvertently break you in future manifest updates. Also since the &amp;lt;deploymentProvider&amp;gt; tag is only needed in Shell Visible installed ClickOnce applications this solution does not work for Online ClickOnce Apps.&lt;/P&gt;
&lt;P&gt;For out next release we are looking into what we can do to provide a simple public way for the FireFox community to build plugins for ClickOnce support. Stay tuned ...&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How do ClickOnce Shortcuts help me get ClickOnce support on FireFox?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Anytime a shell visible installed ClickOnce App is downloaded to a machine, we create a ClickOnce shortcut (.AppRef-MS) for the application under Progrmas-&amp;gt;Publisher-&amp;gt;Product.AppRef-MS.&lt;BR&gt;The contents of this shortcut file look something like this -&lt;A href="http://foo/Bar/Dummy.Application#Dummy.app"&gt;http://Foo/Bar/Dummy.Application#Dummy.app&lt;/A&gt;, Culture=neutral, PublicKeyToken=XXXXXXXXXXXX, processorArchitecture=msil&lt;BR&gt;As you can see it contains the Url&amp;nbsp;to the .application and the identity of the deployment manifest modulo version.&lt;/P&gt;
&lt;P&gt;These ClickOnce shortcuts&amp;nbsp;are designed so that they can be&amp;nbsp;emailed to people&amp;nbsp;and when&amp;nbsp;ckicked on,&amp;nbsp;on&amp;nbsp;a machine which does not have the corrsponding application already installed they cause the application to be installed and launched.&lt;/P&gt;
&lt;P&gt;Now asuming you have an ClickOnce application (Shell Visible Installed App - Not an Online App) you want to publish to your clients who use FireFox, all you need to do is generate the shortcut file and publish it on your server (If you have both IE and FireFox users you could have a seperate link saying "FireFox users click here" so that IE users still get the default behavior). Once the user click on an .appref-MS in FireFox the Open/Save dialog comes up. Once the .appref-MS has been downloaded to the local machine and run it will invoke ClickOnce, which in turn will download the .application from the URL specified in the shortcut and install the App. &lt;/P&gt;
&lt;P&gt;This solution works with out any FireFox changes. Remember though that .appref-MS files can only be generated for Shell Visible Installed ClickOnce Apps.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;What about client machines where FireFox is the default browser but the user clicks on the .application in IE?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This scenario just works.&lt;/P&gt;
&lt;P&gt;There is one caveat though. If your Application carries a bootstrapper along with it to install prerequisites before the actual ClickOnce install, then your scenario might be broken. The bootstrapper after it has installed the prerequisites starts the actual ClickOnce install by launching the .application URL in the default browser (in this case FireFox) even if the user had originally clicked on an IE session to launch the bootstrapper.&lt;/P&gt;
&lt;P&gt;There however is a easy workaround for this [http://channel9.msdn.com/ShowPost.aspx?PostID=138879] which I have recommended to users earlier with good success.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Again in closing let me&amp;nbsp;reitterate, we are actively working on having a better XBrowser story for our next release.&lt;/P&gt;
&lt;P&gt;Comments are welcome as usual.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=541988" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/ClickOnce/">ClickOnce</category></item><item><title>ClickOnce and permission elevation prompting in the internet zone</title><link>http://blogs.msdn.com/b/saurabh/archive/2006/02/28/540878.aspx</link><pubDate>Wed, 01 Mar 2006 01:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:540878</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>22</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=540878</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2006/02/28/540878.aspx#comments</comments><description>&lt;P&gt;The Decision -&amp;nbsp;&lt;BR&gt;With the .Net Framework V2.0 release of ClickOnce, any ClickOnce App deployed from the internet zone can prompt the user for permission elevation.&lt;/P&gt;
&lt;P&gt;For the earlier Beta2 release of ClickOnce, prompting had been explicitly disabled for internet applications that were&amp;nbsp;not Authenticode signed. We consciously reversed this decision for the final release.&lt;/P&gt;
&lt;P&gt;This decision of Microsoft has been questioned by a few in the ClickOnce/Security community. Though they do not agree with our decision, most of these blogs do try to be balanced and put forth both sides of the argument. However reading through a few community posts generated by these blogs, I&amp;nbsp; did get a sense that there was a perception that this was a change pushed into the release by Microsoft at the last minute due to pressure from a few large customers. &lt;/P&gt;
&lt;P&gt;I plan to articulate out here more clearly our thinking behind this change and hopefully debunk this perception.&lt;/P&gt;
&lt;P&gt;The Thinking Behind It - &lt;BR&gt;Non authenticode signed Internet ClickOnce applications were prevented from elevating in Beta2 with the primary goal to get user feedback on this decision so we could make a more informed decision for the final release.&lt;/P&gt;
&lt;P&gt;The Beta2 feedback helped us realize that it was important to have a consisitent IE security model for Managed and UnManaged exes, diverging in the model was confusing and muddled our security messaging.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;We also got a strong push to enable this scenario from hobbyist/non commercial/community/open source App developers who wanted to deploy their applications using ClickOnce but could not afford (both in terms of time and money) to get an Authenticode certificate.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Let's consider the scenario below ...&lt;BR&gt;Jen is a .Net entusiast and a golf fanatic. She writes a .Net Golf Handicap calculator that unfortuantely needs Intranet (Not Internet) zone permissions to run. Jen wants to share this App on her homepage with her golfing friends and would also like them to get updates as she adds new functionality to her program; ClickOnce is the ideal choice of deployment technology for her.&lt;/P&gt;
&lt;P&gt;If ClickOnce forced Jen to have an Authenticode certificate before she could share her App she would soon be looking at other deployment options. She could decide to just write the App in native code and share the exe. The native exe (even a Managed exe for that matter) would now be downloaded and run with Fulltrust on local machine, not a big security win. &lt;/P&gt;
&lt;P&gt;Today instead Jen can use ClickOnce to downloaded her App and run in the Intranet sandbox. She also gets to keep her app current with ClickOnce and potentially push down required updates for issues she wants patched immediately. &lt;BR&gt;&amp;nbsp;&lt;BR&gt;If we flipped the scenario around to where Jen was the author of a malicious Addware App and wanted to prompt the user from the internet zone she can very easily do it today. ClickOnce has not opened up a new security hole here. We just extent the current IE security model. There are no default scenarios where you can cause a user prompt to come up using ClickOnce where you couldn't for unmanaged Exes.&lt;/P&gt;
&lt;P&gt;Also there have been comparisions of ClickOnce with ActiveX in the past and the fact that unsigned ActiveX controls from the internet zone are now blocked by IE has been used as an argument for pushing for similar behavior in Clickonce. ClickOnce and ActiveX are naturally two totally independent technologies, but if parallels have to be drawn we see ourselves closer to exes than ActiveX, and hence as discussed above have tried to maintain the same security expereince that currently exists for exes.&lt;/P&gt;
&lt;P&gt;Configuring Prompting - &lt;BR&gt;The current ClickOnce prompting model is highly configurable.&lt;BR&gt;Enterprises can also specifically disable prompting for&amp;nbsp;particular zones or they can use the trusted publisher list to whitelist their ClickOnce applications to run without prompting and disable all prompting. &lt;BR&gt;[MSDN - &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwinforms/html/clickoncetrustpub.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwinforms/html/clickoncetrustpub.asp&lt;/A&gt;]&lt;BR&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=540878" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/ClickOnce/">ClickOnce</category></item><item><title>File Patching</title><link>http://blogs.msdn.com/b/saurabh/archive/2006/01/25/517613.aspx</link><pubDate>Thu, 26 Jan 2006 00:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:517613</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=517613</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2006/01/25/517613.aspx#comments</comments><description>&lt;P&gt;While upgrading from v1.0 to v2.0 of an ClickOnce application,&amp;nbsp;files/assemblies that have remained unchanged (have the same hash) across the update are not redownloaded from the server. Instead they are just copied over locally in the Clickonce store from the v1.0 to v2.0 app folder.&amp;nbsp;This is totally transparent to the user except for the Dowload Progress Bar moving much quicker&amp;nbsp;due to the local copy.&lt;/P&gt;
&lt;P&gt;Keep in mind file patching is only across two versions of the same application i.e. the Deployment Manifest of the two applications has to have&amp;nbsp;the same identity, modulo version. &lt;BR&gt;Also the patching is at file level not the binary level, hence if only a few bits in a dll have changed Clickonce will still download the entire dll.&lt;/P&gt;
&lt;P&gt;File Patching also works for assemblies downloaded using the DownloadFileGroup() APIs.&lt;/P&gt;
&lt;P&gt;File Patching does NOT work currently for Data files (writeableType="applicationData").&lt;/P&gt;
&lt;P&gt;Know Issue - &lt;BR&gt;Our FilePatching model for assemblies (even strong assemblies) is based entirely on file hash. &lt;BR&gt;Projects when rebuilt in VS often cause the same assemblies (exacly same source) to have different hashes. Hence if you are rebuilding your entire v2.0 solution its possible that assemblies that have not changed in terms of functionality will still have a different hash and hence be redownloaded by ClickOnce instaed of being copied locally.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=517613" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/ClickOnce/">ClickOnce</category></item><item><title>ClickOnce Team Blog</title><link>http://blogs.msdn.com/b/saurabh/archive/2006/01/11/511777.aspx</link><pubDate>Thu, 12 Jan 2006 01:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:511777</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=511777</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2006/01/11/511777.aspx#comments</comments><description>&lt;P&gt;The ClickOnce team now has a team blog at &lt;A HREF="/clickonce"&gt;http://blogs.msdn.com/clickonce&lt;/A&gt;&lt;BR&gt;Keep checking it out for tips and tricks, announcamants and other information on the ClickOnce technology and team.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=511777" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/ClickOnce/">ClickOnce</category></item><item><title>Sunday brunch and blogs ...</title><link>http://blogs.msdn.com/b/saurabh/archive/2005/12/04/499968.aspx</link><pubDate>Mon, 05 Dec 2005 06:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:499968</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=499968</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2005/12/04/499968.aspx#comments</comments><description>&lt;P&gt;Had Sunday brunch with a friend of mine, Arpan, a Product Manager with the SharePoint team.&lt;/P&gt;
&lt;P&gt;The discussion turned to Presentation tips and techniques, resulting in this blog - &lt;BR&gt;&lt;a href="http://blogs.msdn.com/arpans/archive/2005/12/04/499944.aspx"&gt;http://blogs.msdn.com/arpans/archive/2005/12/04/499944.aspx&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=499968" width="1" height="1"&gt;</description></item><item><title>WindowsForms.Net</title><link>http://blogs.msdn.com/b/saurabh/archive/2005/11/15/493237.aspx</link><pubDate>Wed, 16 Nov 2005 06:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:493237</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=493237</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2005/11/15/493237.aspx#comments</comments><description>&lt;P&gt;Just updated WindowsForms.Net with bunch of Windows Forms 2.0 goodies ...&lt;BR&gt;&lt;A href="http://www.windowsforms.net/Default.aspx?tabindex=5&amp;amp;tabid=60"&gt;http://www.windowsforms.net/Default.aspx?tabindex=5&amp;amp;tabid=60&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=493237" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/Windows+Forms/">Windows Forms</category></item><item><title>On a personal note ...</title><link>http://blogs.msdn.com/b/saurabh/archive/2005/11/15/493092.aspx</link><pubDate>Wed, 16 Nov 2005 00:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:493092</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=493092</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2005/11/15/493092.aspx#comments</comments><description>&lt;P&gt;After my 3 year stint at shipping a quality ClickOnce for you guys,&amp;nbsp;I have moved over to some new challenges. I joined the Windows Forms Team as a Program Manager a few weeks back. This&amp;nbsp;should give me a chance to contribute to effective Smart Client Development beyond&amp;nbsp;the realm of Deployment and App Model. &lt;/P&gt;
&lt;P&gt;Will continue to blog on ClickOnce Whidbey, for have a bunch of thoughts that I need to share out ... &lt;BR&gt;Naturally will also&amp;nbsp;blog on newer Winforms/ClickOnce features that I get to be part of through my new role.&lt;/P&gt;
&lt;P&gt;Stay Tuned !&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=493092" width="1" height="1"&gt;</description></item><item><title>Top X ways to learn about ClickOnce</title><link>http://blogs.msdn.com/b/saurabh/archive/2005/10/28/486106.aspx</link><pubDate>Fri, 28 Oct 2005 11:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:486106</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=486106</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2005/10/28/486106.aspx#comments</comments><description>&lt;P&gt;Sameer Bhangar the Test Lead on ClickOnce project recently internally sent out a list of the top ways to learn about ClickOnce. &lt;BR&gt;Is by no way the authoratative or complete list but definately good starting point. This should serve as a good resource for anyone ramping up on ClickOnce. &lt;BR&gt;Feel free to recommend other resources&amp;nbsp;and I'll add them in here. &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Top X ways to learn about ClickOnce - &lt;/P&gt;
&lt;P&gt;ClickOnce Discussion Forums:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; External forum - &lt;A href="http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=6"&gt;http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=6&lt;/A&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - As I as have mentioned earlier in my blogs, the forum is the ideal site to go to with ClickOnce issues, bugs, feature request and even general discussion on App Model/Deployment. It is looked at regularly by the ClickOnce product team who do a great of following up on the posts.&lt;/P&gt;
&lt;P&gt;Microsoft sites:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Smart Client Dev Center Home: &lt;A href="http://msdn.microsoft.com/smartclient/understanding/windowsforms/2.0/features/clickonce.aspx"&gt;http://msdn.microsoft.com/smartclient/understanding/windowsforms/2.0/features/clickonce.aspx&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MSDN content on ClickOnce - &lt;A href="http://msdn2.microsoft.com/en-us/library/wh45kb66(en-us,vs.80).aspx"&gt;http://msdn2.microsoft.com/en-us/library/wh45kb66(en-us,vs.80).aspx&lt;/A&gt;.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Video of Jamie Cool the PM on the Winforms/ClickOnce team demoing ClickOnce - &lt;A href="http://channel9.msdn.com/ShowPost.aspx?PostID=15303"&gt;http://channel9.msdn.com/ShowPost.aspx?PostID=15303&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Article by Brian Noyes on configuring trust with ClickOnce - &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwinforms/html/clickoncetrustpub.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwinforms/html/clickoncetrustpub.asp&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Article on ClickOnce and Regfree COM - &lt;A href="http://msdn.microsoft.com/msdnmag/issues/05/04/RegFreeCOM/default.aspx"&gt;http://msdn.microsoft.com/msdnmag/issues/05/04/RegFreeCOM/default.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Overview article by Brian Noyes - &lt;A href="http://msdn.microsoft.com/msdnmag/issues/04/05/ClickOnce/"&gt;http://msdn.microsoft.com/msdnmag/issues/04/05/ClickOnce/&lt;/A&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Bit old so some specifics may have changed but overall is accurate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&lt;BR&gt;Non-Microsoft sites:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ClickOnce Publisher Certificates - &lt;A href="http://geekswithblogs.net/kobush/archive/2005/05/30/41068.aspx"&gt;http://geekswithblogs.net/kobush/archive/2005/05/30/41068.aspx&lt;/A&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Links to various ClickOnce related material - &lt;A href="http://www.installsite.org/pages/en/clickonce.htm"&gt;http://www.installsite.org/pages/en/clickonce.htm&lt;/A&gt;.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;VS Support for ClickOnce - &lt;A href="http://www.ondotnet.com/pub/a/dotnet/2004/10/11/clickonce.html"&gt;http://www.ondotnet.com/pub/a/dotnet/2004/10/11/clickonce.html&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Another VS walkthrough - &lt;A href="http://www.15seconds.com/issue/041229.htm"&gt;http://www.15seconds.com/issue/041229.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Few Blog references to ClickOnce:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Saurabh's blog - &lt;A HREF="/saurabh/"&gt;http://blogs.msdn.com/saurabh/&lt;/A&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - The one stop Authoratative ClickOnce Resource (well Sammer's mail didn't&amp;nbsp;say&amp;nbsp;so&amp;nbsp;but it should have :-) ) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A href="http://mtaulty.com/blog/(5re21u3e1v3wjmm1qhgybqfo)/archive/2004/07/05/524.aspx"&gt;http://mtaulty.com/blog/(5re21u3e1v3wjmm1qhgybqfo)/archive/2004/07/05/524.aspx&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A href="http://mtaulty.com/blog/(32qtav45kx5a5zeb2taste3j)/archive/2004/07/06/525.aspx"&gt;http://mtaulty.com/blog/(32qtav45kx5a5zeb2taste3j)/archive/2004/07/06/525.aspx&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=486106" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/ClickOnce/">ClickOnce</category></item><item><title>MSI installed ClickOnce Apps?</title><link>http://blogs.msdn.com/b/saurabh/archive/2005/08/02/446711.aspx</link><pubDate>Tue, 02 Aug 2005 20:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:446711</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=446711</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2005/08/02/446711.aspx#comments</comments><description>&lt;P&gt;Am at TechReady1 conference in Seattle today, helping proctor the ClickOnce labs. The labs have not been too busy so With some free time at hand am back to ramblings on Clickonce ....&lt;/P&gt;
&lt;P&gt;MSI installed ClickOnce Apps?&lt;/P&gt;
&lt;P&gt;This is a scenario request that keeps comming up. &lt;BR&gt;Currently there is no support around installing an application using MSI and updating it via Clickonce.&lt;BR&gt;A user could however have an MSI package that installs that configures the machine and then fires off a ClickOnce .application to install the App which can then be updated via ClickOnce.&lt;BR&gt;Alternatively ClickOnce could carry an MSI package as a custom bootstraper, so that it will be run before the Application is installed.&lt;/P&gt;
&lt;P&gt;Both the solutions above though break the isolated, non-impactful ClickOnce Application Model and do not have a clean unistall story. &lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=446711" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/ClickOnce/">ClickOnce</category></item><item><title>The manifest has no XML signature</title><link>http://blogs.msdn.com/b/saurabh/archive/2005/07/06/436208.aspx</link><pubDate>Wed, 06 Jul 2005 22:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:436208</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=436208</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2005/07/06/436208.aspx#comments</comments><description>&lt;P&gt;Seeing the following ClickOnce error log?&amp;nbsp; Well your ClickOnce manifests are not signed ...&lt;/P&gt;
&lt;P&gt;System.Deployment.Application.InvalidDeploymentException (ManifestParse)&lt;BR&gt;&amp;nbsp; - Exception reading manifest from &lt;A href="http://foo.application/"&gt;http://foo.application&lt;/A&gt;: the manifest could be invalid or the file could not be opened.&lt;BR&gt;&amp;nbsp; ...&lt;BR&gt;&amp;nbsp; --- Inner Exception ---&lt;BR&gt;&amp;nbsp; System.Deployment.Application.ValidationFailedException (Unknown subtype)&lt;BR&gt;&amp;nbsp; - The manifest has no XML signature.&lt;/P&gt;
&lt;P&gt;But I did sign the manifest while publishing in VS?&lt;/P&gt;
&lt;P&gt;Check if your project includes assemblies with spaces in their name. &lt;BR&gt;There is a known Beta2 bug which causes VS to barf on signing manifest if the project includes Assemblies with spaces in the name.&lt;BR&gt;Renaming the Assemblies in the easy workaround.&lt;BR&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=436208" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/ClickOnce/">ClickOnce</category></item><item><title>ClickOnce MSDN WebCast</title><link>http://blogs.msdn.com/b/saurabh/archive/2005/06/28/433403.aspx</link><pubDate>Tue, 28 Jun 2005 20:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:433403</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=433403</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2005/06/28/433403.aspx#comments</comments><description>&lt;P&gt;Just got out of a ClickOnce MSDN WebCast titled "Building a ClickOnce Toolkit".&lt;BR&gt;It was hosted by William Steele and you can get more info on it, on his blog at&lt;BR&gt;&lt;A href="/wsteele/archive/2005/06/28/433313.aspx"&gt;http://blogs.msdn.com/wsteele/archive/2005/06/28/433313.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I was primarily there to represent the ClickOnce development team and take questions. &lt;BR&gt;An interestign experience overall, great to see the buzz around ClickOnce. &lt;/P&gt;
&lt;P&gt;Some interesting questions from users, will try to address them in my future blogs.&lt;/P&gt;
&lt;P&gt;Am even more convinced that we need a official ClickOnce Team blog ... Need to get more people blogging.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=433403" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/ClickOnce/">ClickOnce</category></item><item><title>ClickOnce online discussion forum</title><link>http://blogs.msdn.com/b/saurabh/archive/2005/06/17/430243.aspx</link><pubDate>Fri, 17 Jun 2005 23:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:430243</guid><dc:creator>Saurabh Pant [MSFT]</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/saurabh/rsscomments.aspx?WeblogPostID=430243</wfw:commentRss><comments>http://blogs.msdn.com/b/saurabh/archive/2005/06/17/430243.aspx#comments</comments><description>&lt;P&gt;The ClickOnce Online discussion forum is at - &lt;A href="http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=6"&gt;http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=6&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;It is looked at&amp;nbsp;regularly by the ClickOnce product team and is ideal to get ansewers to your ClickOnce design/implementation questions.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=430243" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/saurabh/archive/tags/ClickOnce/">ClickOnce</category></item></channel></rss>