<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>You can check out any time you like, but you can never...</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/kashif/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/kashif/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 05:16:07 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Architecting Cloud Services for Resiliency</title>
      <link>https://docs.microsoft.com/archive/blogs/kashif/architecting-cloud-services-for-resiliency</link>
      <pubDate>Thu, 14 Jun 2012 00:39:00 GMT</pubDate>
      <dc:creator><![CDATA[kalam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kashif/2012/06/14/architecting-cloud-services-for-resiliency/</guid>
      <description><![CDATA[Yesterday, DavidMak and I presented a session on architecting for resiliency. With the advent of...]]></description>
      <content:encoded><![CDATA[<blockquote>
<p>Yesterday, <a href="http://davidmakogon.com/">DavidMak</a> and I presented a session on architecting for resiliency. With the advent of cloud it has become even more important to make considerations&nbsp;for intermittent failures, dropped connections, server failovers, etc.</p>
</blockquote>
<p>Here are some of the key considerations</p>
<p><em>Design for failure</em></p>
<ol>
<li>Hardware/Software failure is inevitable</li>
<li>People make operational errors that cause failures</li>
<li>At cloud scale, low frequency failures happen everyday</li>
</ol>
<p>Netflix had <a href="http://techblog.netflix.com/2011/07/netflix-simian-army.html">blogged</a> on their approach to testing for failures and this is what saved them from an&nbsp;buckling under&nbsp;when <a href="http://www.eweek.com/c/a/Cloud-Computing/Final-Thoughts-on-the-FiveDay-AWS-Outage-236462/">AWS&nbsp;suffered an extended outage&nbsp;in the Virginia DC</a> bringing down the likes of Reddit, Quora etc. Netflix's lessons can be used as a guide to designing for failure.</p>
<p><em>Resiliency schemes</em></p>
<p>&ndash; <strong>Application resiliency (proactive / reactive)</strong></p>
<ol><ol>
<li><a href="http://msdn.microsoft.com/en-us/library/hh680934(v=PandP.50).aspx">Retry policies</a> (handle dropped connections on SQL Azure and Windows Azure Storage, employ back-off schemes)</li>
<li>Avoiding single points of failure (what if DB becomes unavailable, could consider providing degraded experience &ndash; site goes into read-only mode with all data being cached)</li>
<li>Handling throttling (employ multiple caches or use dedicated caches to fight cache throttling, on the storage side employ multiple storage accounts for logically dividing the application data, diagnostics data should live in its own storage account)</li>
<li>Queues, idempotency &amp; poison messages (idempotency implies&nbsp;that an operation would produce the same results no matter how many times&nbsp; it is performed)</li>
<li>Internal IP address changes (lost connections) on role recycle (WCF communication based on IP, running MongoDB)</li>
<li>Extensive diagnostics / logging (this is not for preventing failures but more of after the fact provisions to diagnose and prevent recurring failures in the solution)</li>
</ol></ol>
<p>&ndash; <strong>High Availability (proactive)</strong></p>
<blockquote>
<p>&ndash; Out-Of-The-Box capabilities</p>
<ol>
<li>Admin-free HA</li>
<li>ACID properties maintained by fabric</li>
<li>Automated failover</li>
<li>Dynamic routing of db connections</li>
<li>Redundancy</li>
<li>Windows Azure SQL DB availability SLA</li>
<li>Windows Azure Compute availability SLA</li>
<li>Live Upgrades (hot swap or upgrade domains)</li>
<li><a href="http://msdn.microsoft.com/en-us/gg197529">Windows Azure Traffic Manager</a></li>
</ol>
<p>&ndash; Data</p>
<ol>
<li>Queues for writing to multiple destinations</li>
<li><a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh456371.aspx">Data sync</a></li>
<li>CDN edge nodes</li>
</ol>
<p>&ndash; Client configurations to multiple service endpoints (thick client connecting to service endpoints could load these from configuration with multiple endpoints listed and if one is unavailable &ndash; try the next one)</p>
</blockquote>
<p>&ndash; <strong>Disaster Recovery</strong> (<strong>Reactive</strong> - Datacenter failures, Human errors, bugs)</p>
<blockquote>
<p>&ndash; Building for lowest common denominator (provides flexibility if the service is down in all DCs, allows flexibility to move to other providers/on-premise; this is very rare scenario and thus might not be the top driver in design)</p>
<p>&ndash; Windows Azure Storage</p>
<ol>
<li><a href="http://blogs.msdn.com/b/windowsazurestorage/archive/2011/09/15/introducing-geo-replication-for-windows-azure-storage.aspx">Geo-replication</a>&nbsp;for tables and blobs</li>
<li>RPO and RTO</li>
<li>Datacenter implications (co-location of compute with storage might be lost)</li>
</ol>
<p>&ndash; Windows Azure SQL Database</p>
<ol>
<li>DB Copy + Import / Export to Windows Azure Storage</li>
<li>On Roadmap:&nbsp; <a href="http://northamerica.msteched.com/contentcatalog?track=Windows%20Azure#fbid=ukfhw7c_Ojt?contentcatalogKeyword=nosov&amp;Categories=&amp;Timeslot=&amp;Speaker=&amp;Day=&amp;Start=&amp;Finish=&amp;oc=&amp;take=20&amp;skip=-20&amp;sort=ExternalTracks&amp;_suid=133967429012106308834062074258">Point in Time Backup / Restore</a> (Watch TechEd session on Business Continuity Solutions for Windows Azure SQL Database)</li>
<li>On Roadmap: <a href="http://northamerica.msteched.com/contentcatalog?track=Windows%20Azure#fbid=ukfhw7c_Ojt?contentcatalogKeyword=nosov&amp;Categories=&amp;Timeslot=&amp;Speaker=&amp;Day=&amp;Start=&amp;Finish=&amp;oc=&amp;take=20&amp;skip=-20&amp;sort=ExternalTracks&amp;_suid=133967429012106308834062074258">Geo DR</a> (Configurable RPOs, Multiple geo-secondaries)</li>
<li>Data Sync</li>
</ol>
<ul>
<li>Easy to configure and use (++)</li>
<li>No transactional consistency (--)</li>
</ul>
<p>&ndash; ACS (Can take PIT backups of namespace, rules, mapping etc. using the PS cmdlets; Windows Azure takes bacup of ACS namespaces once a day from DR perspective; from a more granular backup scheme - use the cmdlets)</p>
<p>&ndash; Service Bus (do not use queues for data, use them for commands &ndash; this allows data associated with commands to be stored in blobs and thus readily available in a DR scenario.)</p>
</blockquote>
<p>Would love to hear what other patterns/solutions you use today.</p>]]></content:encoded>
    </item>
    <item>
      <title>Meet the new Windows Azure</title>
      <link>https://docs.microsoft.com/archive/blogs/kashif/meet-the-new-windows-azure</link>
      <pubDate>Thu, 07 Jun 2012 14:55:00 GMT</pubDate>
      <dc:creator><![CDATA[kalam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kashif/2012/06/07/meet-the-new-windows-azure/</guid>
      <description><![CDATA[This afternoon 6/7, ScottGu announced an extensive set of new Windows Azure features. There are 3...]]></description>
      <content:encoded><![CDATA[<p>This afternoon 6/7, ScottGu announced an extensive set of new Windows Azure features. There are 3 main previews now available &ndash; Windows Azure Media Services, Virtual Machines and Windows Azure Websites. You can sign up for these features @ <a href="http://account.windowsazure.com/PreviewFeatures">http://account.windowsazure.com/PreviewFeatures</a> and experience the new management portal @ <a href="http://manage.windowsazure.com">http://manage.windowsazure.com</a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/42/85/metablogapi/6558.IaaSPreview_2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-42-85-metablogapi/6558.IaaSPreview_5F00_2.png"><img style="display: inline; border: 0px;" title="IaaSPreview" border="0" alt="IaaSPreview" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/42/85/metablogapi/5076.IaaSPreview_thumb.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-42-85-metablogapi/5076.IaaSPreview_5F00_thumb.png" width="244" height="212" /></a></p>
<p></p>
<p></p>
<p>Try it out &ndash; would love to hear the experiences.</p>
<p>Highlights of announcements from today</p>
<p>&middot; <b>Windows Azure Virtual Machines</b> enable the moving of workloads on virtual hard disks (VHDs) between on-premises environments and the cloud.&nbsp; Windows Azure supports both Windows and Linux VHD images, which can be customized or chosen from a pre-populated gallery.&nbsp; With the commonly supported VHD format, developers and IT Pros can move existing workloads like a SQL Server database or an existing line-of-business application into Windows Azure to create greater scale, lower cost or deploy to new users.&nbsp;</p>
<p>&middot; <b>Windows Azure Virtual Network </b>enables the creation, extension and management of virtual private networks into Windows Azure.&nbsp; Organizations can now more effectively and securely extend their corporate networks into the cloud.&nbsp;</p>
<p>&middot; <b>Windows Azure Web Sites </b>makes building .NET, Node.js, Java and PHP web experiences easier and cheaper than ever while supporting deployment techniques like Git and FTP and framework applications like WordPress, Joomla!, DotNetNuke, Umbraco and Drupal that web developers already know and trust.<b> </b></p>
<p>&middot; <b>Python support, new Tools&nbsp; </b>The new Windows Azure SDK (June 2012) includes updated support for Java, PHP and .NET and adds Python support, while providing 100% command line support for developers using a Windows PC or a Mac.&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>ESRI UC Presentation – Windows Azure Platform for Enterprises</title>
      <link>https://docs.microsoft.com/archive/blogs/kashif/esri-uc-presentation-windows-azure-platform-for-enterprises</link>
      <pubDate>Tue, 12 Jul 2011 13:22:41 GMT</pubDate>
      <dc:creator><![CDATA[kalam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kashif/2011/07/12/esri-uc-presentation-windows-azure-platform-for-enterprises/</guid>
      <description><![CDATA[Here is the content I presented at the ESRI User Conference. Please let me know of there are any...]]></description>
      <content:encoded><![CDATA[<p>Here is the content I presented at the ESRI User Conference. Please let me know of there are any questions or comments</p>  <p><a title="1488.ESRI UC Deck June 2011 Final.pdf" href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/42/85/1488.ESRI%20UC%20Deck%20June%202011%20Final.pdf" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-42-85/1488.ESRI-UC-Deck-June-2011-Final.pdf">1488.ESRI UC Deck June 2011 Final.pdf</a></p>  <p>Thanks,</p>  <p>Kashif</p>]]></content:encoded>
    </item>
    <item>
      <title>Application Patterns for the Cloud</title>
      <link>https://docs.microsoft.com/archive/blogs/kashif/application-patterns-for-the-cloud</link>
      <pubDate>Sat, 07 Aug 2010 01:57:56 GMT</pubDate>
      <dc:creator><![CDATA[kalam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kashif/2010/08/07/application-patterns-for-the-cloud/</guid>
      <description><![CDATA[Cloud computing requires an architecture shift and new development models. Traditional application...]]></description>
      <content:encoded><![CDATA[<p></p>  <p>Cloud computing requires an architecture shift and new development models. Traditional application and data architecture does not enable optimal elastic scalability and maximum utilization of shared infrastructure. To build Cloud-friendly applications that will maximize benefits, development teams must apply Cloud application design patterns to build systems that exhibit parallelism, multi-tenancy, autonomy, distributed interactions, declarative definitions, separation of concerns, and federation. Cloud applications are not simply web applications deployed on external provider infrastructure. Cloud applications represent an evolution of the application model away from sequential processing, synchronous interactions, shared resources, and static clusters. There are some core issues that development teams should look at while architecting for the cloud:</p>  <p>· Manage resource capacity to ensure consumer demand is satisfied while maximizing resource utilization</p>  <p>· Scale workload processing and increase performance while minimizing infrastructure spend</p>  <p>· Allocate, provision, monitor, manage, and administer resources across multiple tenants</p>  <p>· Operation’s desire to right-size the infrastructure. </p>  <p>· Is the application architecture flexible enough to deploy on any topology while meeting deterministic performance requirements?</p>  <p>1. Cloud Web Application (Scalability): Host traditional Web apps and interactive apps that compose two or more data sources and services. These include traditional hosted Web applications, emerging composed applications that may utilize two or more data sources and services. These applications need automatic scale-out and scale-down capabilities. An application like Facebook is a good example. In such scenarios the organization may be a startup that wants to spend little capital on infrastructure while being able to handle increasing demand. Or suppose the application’s load will vary significantly, with occasional spikes in the midst of long periods of lower usage. An online ticketing site might display this pattern, for example, as might news video sites with occasional hot stories, sites that are used mostly at certain times of day, and others. Running this kind of application in a conventional data center requires always having enough machines on hand to handle the peaks, even though most of those systems go unused most of the time. If the application is instead built on the cloud, the organization running it can expand the number of instances it’s using only when needed, then shrink back to a smaller number. Since cloud charging is usage-based, this is likely to be cheaper than maintaining lots of mostly unused machines. E.g. A start-up creating a social networking application expecting to spend little capital on infrastructure.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/42/85/metablogapi/5611.clip_image001_2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-42-85-metablogapi/5611.clip_5F00_image001_5F00_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image001" border="0" alt="clip_image001" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/42/85/metablogapi/7380.clip_image001_thumb.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-42-85-metablogapi/7380.clip_5F00_image001_5F00_thumb.png" width="244" height="184" /></a></p>  <p>2. Transactional, LOB app (24x7): ISVs are trying to continuously innovate and bring feature rich applications to their user base while continually building to differentiate from their competitors and offering solutions in a frictionless manner with lower costs to the end customers. With advent of agile development methods; ship cycles are shrinking and the traditional 3-year product cycles are being reduced to less than a year where the ISV offers new features and components 2-3 times a year. A SaaS model also lowers the burden of maintenance on ISVs as they now need to manage only 2 versions of their applications (current and previous) while end-customers do not need to invest in infrastructure and IT resources to run these applications. Typical architecture in this category will follow the traditional 3-tier model with front end-middle tier-back-end database; this kind of an application fits well with the growth pattern scenario; the application can be run as single tenant or multi-tenant where a multi-tenant application will have additional benefit of cost optimizations for running the application. An e.g. of such an application is Acumatica ERP where Acumatica is targeting the SMB space with their offering and are managing the SLAs with their customers or with the VAR channel which sells their offering on Windows Azure while in turn being the customer for WAP and handling provisioning; administration and scaling of the app for their user base. E.g. SugarCRM; Acumatica</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/42/85/metablogapi/4555.clip_image002_2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-42-85-metablogapi/4555.clip_5F00_image002_5F00_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/42/85/metablogapi/1325.clip_image002_thumb.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-42-85-metablogapi/1325.clip_5F00_image002_5F00_thumb.png" width="244" height="184" /></a></p>  <p>3. Parallel Computing applications: Large-scale parallel execution of compute tasks. Normally these tasks execute for a short period of time utilizing more compute and storage resources. There are the parallel computing applications that need to perform multiple tasks in parallel so that a huge project can be executed in a short period of time. There are plenty of examples of this: rendering at a film special effects house, new drug development in a pharmaceutical company, financial modeling at a bank, and more. While it’s possible to maintain a large cluster of machines to meet this occasional need, it’s also expensive. Cloud computing can instead provide these resources as needed, offering something like an on-demand supercomputer. Again, paying for the one-time-only large capacity that cloud computing can provide is a cost-effective solution. E.g. A newspaper decides on digitization of reports for better Web consumption; InterGrid (GreenButton)</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/42/85/metablogapi/6710.clip_image003_2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-42-85-metablogapi/6710.clip_5F00_image003_5F00_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image003" border="0" alt="clip_image003" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/42/85/metablogapi/7217.clip_image003_thumb.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-42-85-metablogapi/7217.clip_5F00_image003_5F00_thumb.png" width="244" height="184" /></a></p>  <p>4. Analytical applications: Analytical processing executes various analytical and data mining algorithms over the same data again and again. There are lots of situations where Web-accessible software also needs to initiate work that runs in the background, independently from the request/response part of the application. For example, think of analytical applications whose main function is to run processor-intensive operations and data mining, often over the same data many times, or about a video sharing web application that needs to accept browser requests, perhaps from a large number of simultaneous users. Some of those requests will upload new videos, each of which must be processed and stored for later access. Making the user wait while this processing is done wouldn’t make sense. Instead, the part of the application that accepts browser requests should be able to initiate a background task that carries out this work. Based on the rate of traffic, the background processing requirements could be smooth or sporadic and on occasion, require access to a great deal of storage capacity and processor availability all at once. There is no need to pay for such huge capacity twenty-four hours a day, seven days a week, however, so cloud services are appealing. E.g. A financial company executing Monte Carlo simulations on financial data to assess risk periodically </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/42/85/metablogapi/7612.clip_image004_2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-42-85-metablogapi/7612.clip_5F00_image004_5F00_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/42/85/metablogapi/3581.clip_image004_thumb.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-42-85-metablogapi/3581.clip_5F00_image004_5F00_thumb.png" width="244" height="184" /></a></p>  <p>5. Building block service: A building block service is an example of a cloud component/service which fills a gap within the platform. Consider a cloud provider which provides monitoring data for services running on its cloud and applications can leverage to automatically scale by increasing or decreasing the number of instances for a particular scale unit within the application. Now every ISV could use the management APIs within their application and build this functionality or an ISV could build this functionality as a component that could be leveraged by other ISVs to scale their solution. This would be a canonical example of a building block service which by itself has no use or function but once employed within another service can provide significant value. The ManageAxis solution by Cumulux is an example of such a service – it enables businesses to manage, monitor and deploy applications on the Microsoft Azure cloud infrastructure. Manage Axis enables monitoring of critical KPIs, automatically scale cloud applications and enables deployment automation of Windows Azure applications</p>  <p>6. Collaboration: service / data sharing between partners and customers: This application pattern can have numerous uses such as multi-enterprise integration, B2B &amp; e-commerce applications; supply chain management, health and life sciences and domain specific services to name a few </p>  <p>a. E.g. SCM vendors shares inventory levels with partners; in PLM space CAD designer shares models with co-work</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/42/85/metablogapi/2437.clip_image005_2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-42-85-metablogapi/2437.clip_5F00_image005_5F00_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image005" border="0" alt="clip_image005" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/42/85/metablogapi/0602.clip_image005_thumb.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-42-85-metablogapi/0602.clip_5F00_image005_5F00_thumb.png" width="244" height="184" /></a></p>  <p>7. S+S pattern: Software + Services represent an industry shift towards a design approach that is neither exclusively software-centric nor browser-centric. By deeply and genuinely combining the best aspects of software with the best aspects of cloud-based services, we can deliver more compelling solutions for consumers, developers and businesses. Across the industry, Software + Services is growing as a model strategy – as evidenced by the emergence of hybrid scenarios on PCs, mobile phones and other devices that meld services and software together. The idea for the ISV is to augment their existing on-premise offering with cloud based services which provide value-added differentiation to end-customers. An example would be Bing Maps 3D – the application is installed and runs on the client but leverage Bing maps service for building the 3D models upon.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/42/85/metablogapi/2043.clip_image006_2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-42-85-metablogapi/2043.clip_5F00_image006_5F00_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/42/85/metablogapi/3823.clip_image006_thumb.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-42-85-metablogapi/3823.clip_5F00_image006_5F00_thumb.png" width="244" height="184" /></a></p>  <p>8. Microsoft “Dallas” data provider: The “Dallas” service allows ISVs to monetize information as a service. There are numerous examples where ISVs have datasets which they could potentially license to customers - ESRI (geographical shape files); WETA (digital renderers shared with production houses). In such scenarios the ISV publishing data to “Dallas” is building an important service for the cloud which not only builds mindshare for the Windows Azure Platform but also promotes consumers of this service to build their applications on the WAP.</p>  <p>9. BI / Reporting: Another application pattern involves providing BI as a service. With the advent of data, the ability to provide mining and intelligence on specific datasets is becoming increasingly important for companies to remain competitive and build optimization in their manufacturing, selling and marketing processes. Today Business Intelligence tools have significant costs putting them out of reach from smaller ISVs. With the ability to provide BI as a service even smaller ISVs could include reporting and analysis solutions in their applications and provide greater value to end customers. This can also be helpful to ISVs building custom databases which don’t allow for traditional BI. </p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Azure MSDN offer extended to 16 months</title>
      <link>https://docs.microsoft.com/archive/blogs/kashif/windows-azure-msdn-offer-extended-to-16-months</link>
      <pubDate>Thu, 22 Jul 2010 21:08:25 GMT</pubDate>
      <dc:creator><![CDATA[kalam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kashif/2010/07/22/windows-azure-msdn-offer-extended-to-16-months/</guid>
      <description><![CDATA[&#160;  Good news for Windows Azure developers using their MSDN Premium or Professional subscription...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>Good news for Windows Azure developers using their MSDN Premium or Professional subscription for Windows Azure compute, storage, transactions, bandwidth, SQL Azure database and AppFabric connections and transactions – you can now avail the WA MSDN offer for <strong>8 additional months </strong>(making the offer valid for a total of 16 months from the commencement of service usage). Read all the details @ <a title="http://msdn.microsoft.com/en-us/subscriptions/ee461076.aspx" href="http://msdn.microsoft.com/en-us/subscriptions/ee461076.aspx">http://msdn.microsoft.com/en-us/subscriptions/ee461076.aspx</a>. </p>]]></content:encoded>
    </item>
    <item>
      <title>Project “Houston” CTP now available</title>
      <link>https://docs.microsoft.com/archive/blogs/kashif/project-houston-ctp-now-available</link>
      <pubDate>Wed, 21 Jul 2010 16:39:58 GMT</pubDate>
      <dc:creator><![CDATA[kalam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kashif/2010/07/21/project-houston-ctp-now-available/</guid>
      <description><![CDATA[&#160;  Are you a SQL Azure user - developing without SQL Server Management Studio or VS2010 to...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>Are you a SQL Azure user - developing without SQL Server Management Studio or VS2010 to access your SQL Azure database from a design tool to model your database and tables, query execution, adding/updating table data – well then this announcement is for you!</p>  <p>Microsoft® Project Code-Named “Houston” is a lightweight and easy to use database management tool for SQL Azure databases. It is designed specifically for Web developers and other technology professionals seeking a straightforward solution to quickly develop, deploy, and manage their data-driven applications in the cloud. Project “Houston” provides a web-based database management tool for basic database management tasks like authoring and executing queries, designing and editing a database schema, and editing table data. <b>It is now available on <a href="https://www.sqlazurelabs.com/">SQL Azure Labs</a>.</b></p>  <p>Check it out!</p>]]></content:encoded>
    </item>
    <item>
      <title>InterGrid brings power of the cloud to desktop users by using the Windows Azure Platform</title>
      <link>https://docs.microsoft.com/archive/blogs/kashif/intergrid-brings-power-of-the-cloud-to-desktop-users-by-using-the-windows-azure-platform</link>
      <pubDate>Wed, 14 Jul 2010 09:57:43 GMT</pubDate>
      <dc:creator><![CDATA[kalam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kashif/2010/07/14/intergrid-brings-power-of-the-cloud-to-desktop-users-by-using-the-windows-azure-platform/</guid>
      <description><![CDATA[InterGrid, an ISV based out of New Zealand, provides on-demand HPC solutions for ISVs and prosumers...]]></description>
      <content:encoded><![CDATA[<p>InterGrid, an ISV based out of New Zealand, provides on-demand HPC solutions for ISVs and prosumers (professional consumers). If you are an ISV that builds compute intensive desktop applications that are ‘embarrassingly parallel’ then you can integrate InterGrid’s GreenButton plug-in within your app to provide your end users with the possibility of leveraging the cloud to process compute heavy workloads and complete their jobs in minutes instead of hours. The plug-in could provide a unique value prop for your end users.</p>  <p>For more details regarding the solution and its use of the Windows Azure Platform – check out <a href="http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=4000007883">InterGrid Case Study</a></p>  <p>/Kashif</p>]]></content:encoded>
    </item>
    <item>
      <title>a1b2c3</title>
      <link>https://docs.microsoft.com/archive/blogs/kashif/a1b2c3</link>
      <pubDate>Thu, 01 Apr 2010 08:47:00 GMT</pubDate>
      <dc:creator><![CDATA[kalam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kashif/2010/04/01/a1b2c3/</guid>
      <description><![CDATA[Just a few days back, I was talking to a friend of mine who is an avid user of the iPhone. He was...]]></description>
      <content:encoded><![CDATA[<P>Just a few days back, I was talking to a friend of mine who is an avid user of the iPhone. He was lamenting about the fact that he had lost a bunch of his data as he had been locked out of his phone. His 18 month&nbsp;old daughter had entered 10 wrong passwords while playing with the phone, requiring him to restore his image from an old back up he had.</P>
<P>&nbsp;This raised an interesting point for me, for a while I had been displeased by the a1b2c3&nbsp;screen,&nbsp;having entered the wrong pin # on my&nbsp;WM phone (the feature gets activated after 2 wrong entries)&nbsp;but the incident with my friend made me realize that this feature was child proofing the phone against an unwanted wipe/lockout. I wonder why iPhone didn't implement this feature - it probably doesn't satisfy their user experience mantra. The lock out issue leads us to the importance of backing up ones data&nbsp;on a regular basis.</P>
<P>&nbsp;As we are talking about backups, I wanted to bring up the topic of storage solutions in the cloud. This is an easy and&nbsp;cheap&nbsp;mechanism to make sure your data remains available to you in case your hard drive dies. The Windows Azure blob storage allows for terabytes of data to be stored and replicated automatically in the cloud - thus keeping your data highly available and redundant&nbsp;while taking account of disaser recovery&nbsp;scenarios. For more details on Windows Azure blob storage - check out <A href="http://go.microsoft.com/fwlink/?LinkId=153400" mce_href="http://go.microsoft.com/fwlink/?LinkId=153400">http://go.microsoft.com/fwlink/?LinkId=153400</A></P>
<P>One backup service that I really like is MozyHome, check out <A href="http://mozy.com/home">http://mozy.com/home</A>. Would love to know what you are using for your data backup needs. Please leave a comment.</P>
<P>Thanks,</P>
<P>Kashif</P>
<P mce_keep="true">&nbsp;</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>Windows Azure Billing and Administration</title>
      <link>https://docs.microsoft.com/archive/blogs/kashif/windows-azure-billing-and-administration</link>
      <pubDate>Tue, 30 Mar 2010 21:32:23 GMT</pubDate>
      <dc:creator><![CDATA[kalam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kashif/2010/03/30/windows-azure-billing-and-administration/</guid>
      <description><![CDATA[As one looks to on-board the Windows Azure Platform it is important to understand the billing and...]]></description>
      <content:encoded><![CDATA[<p><font size="2">As one looks to on-board the </font><a href="http://www.windowsazure.com"><font size="2">Windows Azure Platform</font></a><font size="3"><font size="2"> it is important to understand the billing and administration functionality and workflows. The first thing to look at is the end-2-end workflow.</font> </font></p>  <p>To begin with examine the <a href="http://www.microsoft.com/windowsazure/offers/">Offers page</a> and specifically look out at details based on the country that you will be billed out of – for e.g. the United States offer sheet looks like the following </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kashif/WindowsLiveWriter/WindowsAzureBillingandAdministration_12DA8/image_2.png" original-url="http://blogs.msdn.com/blogfiles/kashif/WindowsLiveWriter/WindowsAzureBillingandAdministration_12DA8/image_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kashif/WindowsLiveWriter/WindowsAzureBillingandAdministration_12DA8/image_thumb.png" original-url="http://blogs.msdn.com/blogfiles/kashif/WindowsLiveWriter/WindowsAzureBillingandAdministration_12DA8/image_thumb.png" width="545" height="410" /></a> </p>  <p>where as for Ireland it looks like the <a href="http://www.microsoft.com/windowsazure/offers/popup.aspx?lang=en&amp;locale=en-IE&amp;offer=COMPARE_PUBLIC">following</a>. Note that subscription offers are heavily discounted in the range of 52%-54% compared to the consumption based pricing.</p>  <p>Once you have reviewed the offers and decided to select a specific one by clicking the ‘Buy’ button, you will be redirected to the Microsoft Online Commerce Portal (once you have signed in using a Windows Live ID – this could be an existing ID or a new one associated with any existing email account) and complete a profile some profile data for MOCP site. You can then choose the services you want to purchase/subscribe and check out which takes you to the payment site. There are 2 modes of payment – credit card or purchase order. Purchase order option is currently limited to subscribers with payments of more than $500 a month (in US) or $250 a month (outside US).</p>  <p>Once the purchasing is complete – users are directed to service activation, where they can choose a service name for the subscription. Once the service is activated, the next step is to assign a service administrator. By default the account owner is the service administrator but a different live id can be assigned. This will help delineate the billing from development where account owner control billing and the development team controls the service administration, configuration, deployment and provisioning aspects. A mail confirmation is sent out to the account owner and service administrator once the service activation is complete and the dev portal can be accessed.</p>  <p>To consider some of the details around account ownership, Windows Live ID, service administrator, subscription, services and roles – examine the following diagram</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kashif/WindowsLiveWriter/WindowsAzureBillingandAdministration_12DA8/image_6.png" original-url="http://blogs.msdn.com/blogfiles/kashif/WindowsLiveWriter/WindowsAzureBillingandAdministration_12DA8/image_6.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kashif/WindowsLiveWriter/WindowsAzureBillingandAdministration_12DA8/image_thumb_2.png" original-url="http://blogs.msdn.com/blogfiles/kashif/WindowsLiveWriter/WindowsAzureBillingandAdministration_12DA8/image_thumb_2.png" width="449" height="301" /></a> </p>  <p>As you can interpret an account can have multiple subscriptions, each subscription has a 1:1 mapping with a project (within dev portal); Each project can create up to 6 services. Each service can have up-to 5 roles and 2 set of environments, production and staging. A project can spin up to 20 small compute instances or an equivalent combination of L,M,XL compute instances; Also each project can have 5 associated storage accounts (the blobs and containers within an account are unlimited). The # of instances for a project/service can be increased by working with the Windows Azure Business Desk. Start <a href="http://microsoft.com/windowsazure/support">here</a>. </p>  <p>There is 1 Administrator assignable per project and one overall account owner. Once service administrator is assigned the account owner doesn’t have access to the project in the dev portal. The service administrator cannot access billing information in MOCP. The service administrator can be changed at any time by logging into MOCP.</p>  <p>Consider you are running 2 services with Service #1 having 1 Web Role with 2 small instances and 1 Worker Role with 2 Large instances (equivalent to 8 small instances) – this implies you will have 10 small instances remaining for your Service #2.</p>  <p>Hope this write up provides some information around the current billing and administration model – to conclude, I am including a set of FAQ that one might find helpful.</p>  <p>- Once an app is deployed, resources get allocated to it irrespective of whether it is in Stopped/Suspended/Running state. Thus if you are not running an app – ideally delete the deployment</p>  <p>- Staging and production environments are identical in the Azure platform and thus cost the same</p>  <p></p>  <p></p>  <p>- Leverage <a href="https://roianalyst.alinean.com/msft/AutoLogin.do?d=176318219048082115">TCO</a> and <a href="http://neudesic.cloudapp.net/azureroi.aspx">ROI</a> tools to understand Azure costs</p>  <p>- Commercial availability for Windows Azure: </p>  <p>In Jan 2010, Austria, Belgium, Canada, Denmark, Finland, France, Germany, Ireland, India, Italy, Japan, Netherlands, New Zealand, Norway, Portugal, Singapore, Spain, Sweden, Switzerland, UK, and the United States.   <br />In the April 2010 timeframe we expect availability to expand to Australia, Brazil, Chile, Colombia, Costa Rica, Cyprus, Czech Republic, Greece, Hong Kong, Hungary, Israel, Luxemburg, Malaysia, Mexico, Peru, Philippines, Poland, Puerto Rico, Romania, and Trinidad and Tobago.</p>  <p>- Follow the billing info on the MOCP portal – the info is delayed by 12-24 hours</p>]]></content:encoded>
    </item>
    <item>
      <title>Silverlight 2 Beta 2 - an overview</title>
      <link>https://docs.microsoft.com/archive/blogs/kashif/silverlight-2-beta-2-an-overview</link>
      <pubDate>Tue, 23 Sep 2008 12:51:00 GMT</pubDate>
      <dc:creator><![CDATA[kalam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kashif/2008/09/23/silverlight-2-beta-2-an-overview/</guid>
      <description><![CDATA[If you are based in the US and had a chance to experience Olympics 2008 over the web on...]]></description>
      <content:encoded><![CDATA[<P>If you are based in the US and had a chance to experience Olympics 2008 over the web on <A href="http://nbcolympics.com/" mce_href="http://nbcolympics.com">http://nbcolympics.com</A> - you probably saw some of the power of Silverlight for immersive media experiences. Silverlight 2 Beta 2 enables much more than media experiences so let us look at some of these aspects in detail .</P>
<P>Let us start with the <STRONG>Application Model </STRONG>for Silverlight2. The install is a one-time (system wide) phenomenon and updates happen automatically to the runtime and would not require a browser restart. The instantiation of the Silverlight application can be done via the &lt;object &gt; tag or programmatically using the Silverlight javascript. On the server hosting the Silverlight content, the correct mime-type needs to be set (XAP - Application/x-silverlight-app). The application package contains the app.dll, business assembly and the manifest file. Once the XAP is loaded all the objects are available in memory - this implies less round-tripping, better performance. Offline scenarios can rely on the IsolatedStorage feature for building durable experiences. All Silverlight applications can use a splash screen which is composed of pure XAML and javascript. There are also events raised which can be handled as the Silverlight content is downloaded the first time around. There can be multiple plug-in instances per-page and one App-domain per instance. Exception handling can be done by using the plug-in's onError event.</P>
<P>Next, lets look at <STRONG>Controls</STRONG>. Silverlight ships with a rich and functional control set. For layout, the following controls are available - Canvas, Panel, StackPanel, Grid. Other feature controls include Button, Calendar, CheckBox, DataGrid, DateTimePicker, GridSplitter, Hyperlink, ListBox, Popup, Radio, Slider, Toggle, Tooltip and this list will continue to grow. Silverlight also has a strong partner ecosystem building domain specific controls. Another important aspect in using framework control is the ability to style and apply skins to the controls to get the desired rendering. Silverlight fully supports these mechanisms and shown below are examples of applying skins and styles to the TreeView control to change its look and feel. The first image is the normal rendering, the second image applies styling to change background and imagery and the final image shows the transformation of the Treeview control into a dial-based UI to highlight full control over the UI. There are also ASP.Net controls available based on Silverlight - such as MediaPlayer control and the XAML control.</P>
<P><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_2.png" original-url="http://blogs.msdn.com/blogfiles/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_2.png"><IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=230 alt=image src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_thumb.png" original-url="http://blogs.msdn.com/blogfiles/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_thumb.png" width=244 border=0 mce_src="http://blogs.msdn.com/blogfiles/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_thumb.png"></A> <A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_4.png" original-url="http://blogs.msdn.com/blogfiles/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_4.png"><IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=230 alt=image src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_thumb_1.png" original-url="http://blogs.msdn.com/blogfiles/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_thumb_1.png" width=200 border=0 mce_src="http://blogs.msdn.com/blogfiles/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_thumb_1.png"></A> <A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_6.png" original-url="http://blogs.msdn.com/blogfiles/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_6.png"><IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=230 alt=image src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_thumb_2.png" original-url="http://blogs.msdn.com/blogfiles/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_thumb_2.png" width=380 border=0 mce_src="http://blogs.msdn.com/blogfiles/kashif/WindowsLiveWriter/Silverlight2Startyourengines_93E6/image_thumb_2.png"></A> </P>
<P>Another important feature in this regard is the VisualStateManager which provides a notion of state and transition and supports visual transition along with minimizing state explosion. Silverlight also supports <STRONG>Animations</STRONG>&nbsp; - changing the value of a property over time, use different animation (double/color/point/object) and interpolating(linear/discrete/spline) types. Animations can be defined both declaratively and programmatically.</P>
<P>Another key aspect for Silverlight is <STRONG>Media</STRONG>. The key tenets for&nbsp; Silverlight in this space are - highest quality, lowest cost of operation, best overall user experience, and monetization. There is support for VC-1, WMV, WMA, mp3, and WMA 10 Pro. One of the most feature for media capabilities is the support for DRM, this is applicable for streaming content. The support for playlists allows for delivery of a set of assets to any user. The 3 primary types of playlist are</P>
<UL>
<LI>.asx - resides on the client PC, simple to author and deploy, the urls are exposed to the client, ad content can be skipped </LI>
<LI>.wsx - resides on streaming server, can hide location of assets from the client, seek/skip disabled </LI>
<LI>.isx - web playlist, requested from web server which returns obfuscated urls for client playlist, location of assets remains hidden </LI></UL>
<P>As Silverlight content is displayed in the browser - it is important to understand the <STRONG>Browser Integration</STRONG> capabilities. This feature allows for seamless communication between javascript and .Net in the browser. There are 3 core scenarios - .Net functions exposed in browser and called from within javascript, javascript code on Html page could come from .Net code-behind and manipulate the Xaml tree from javascript (this is supported in Silverlight 1.0 only) . A Silvelright object can be registered as scriptable and specific members can be attributed with [Scriptable Member] to enable calling from javascript. For manipulating the Html DOM the HtmlPage class can be used.</P>
<P>An important aspect of any application is <STRONG>Data</STRONG>, so let us look at this in Silverlight 2. The first thing you will notice is LINQ support - in addition to LINQ to Xml and LINQ to objects, we now have support for LINQ to JSON. There is also support for in-memory filtering and sorting, compile-time syntax checking and 2-way binding support. DataTemplates are used for UI representation of data and can exist in Content controls or Item control. DataGrid is the main control for data and it supports data-binding, scrolling, row selection, text/template.checkbox columns, skinning, editing, resizable rows and columns, auto-sizing for rows and columns, frozen columns, filtering, detail view etc.</P>
<P>Finally a web application warrants a strong <STRONG>Networking</STRONG> support, so let us look at the Silverlight 2 networking features. One of the primary things to take note of is the WebClient - this supports asynchronous, cross-domain access to network assets. The HttpWebRequest and HttpWebResponse classes are also available and provide fine grained control of Http messaging. This allows to consume existing form-based assets. Silverlight supports WCF based services for consumption. SOAP-based web services can expose WSDL and deploy the x-domain xml and ClientAccessPolicy.xml to support access from other servers. Socket based communications require a policy server to be defined. The first handshake with the policy server determines which ports/protocols acceptable to connect.</P>
<P>One fun feature I wanted to touch upon to get everyone excited around Silverlight is <STRONG>DeepZoom </STRONG>- see it in action <A href="http://memorabilia.hardrock.com/" mce_href="http://memorabilia.hardrock.com/">here</A> (zoom-in and out to see the feature in action. This really provides a seamless viewing and zooming experience for large images or sparse images (more resolution in some parts of the image than others). The way this functions is to load only required data for showing a specific part of the image. The lowest resolution tiles are shown first and then higher quality tiles blend in. The DeepZoom composer tool can be used to transform regular images to multi-scale images so that these are ready for consumption.</P>
<P>Hopefully, this primer gets you to look at Silverlight more closely.&nbsp; </P>]]></content:encoded>
    </item>
  </channel>
</rss>