<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Infosys | Microsoft</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/microsoft/" />
    <link rel="self" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft/atom.xml" />
   <id>tag:www.infosysblogs.com,2010:/microsoft/1</id>
    <link rel="service.post" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1" title="Infosys | Microsoft" />
    <updated>2010-02-05T04:25:28Z</updated>
    <subtitle>Infosys Microsoft Alliance and Solutions blog</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.2ysb5-20051201</generator>
 
<entry>
    <title>Win 7 - KB954430 installation issue</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/microsoft/2010/02/win_7_kb954430_installation_is.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=479" title="Win 7 - KB954430 installation issue" />
    <id>tag:www.infosysblogs.com,2010:/microsoft//1.479</id>
    
    <published>2010-02-05T04:15:01Z</published>
    <updated>2010-02-05T04:25:28Z</updated>
    
    <summary>Kb954430 update appearing for install again and again on Win 7</summary>
    <author>
        <name>Atul Gupta</name>
        
    </author>
            <category term="Win 7" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/microsoft/">
        <![CDATA[<p>Recently Windows update had a security update for Microsoft XML Core Services 4.0 Service Pack 2 as KB954430. Like all updates I got prompted to install it, which I did and happily continued to work. But this update had a mind of its own and it would keep popping up again and again and again.... </p><p>Every time I would shutdown my Win 7 Laptop, I would see the exclamation icon on the shutdown button showing that an update was pending installation. I also went to Windows update screen and installed it directly from there. Every time it would give a success message, but would popup again shortly. So much so, that I have it reflecting close to 30 times in my update history. </p><p>Finally searching online gave some hints. Most queries were for Vista, but I assumed that the solutions may work for Win 7 as well. What worked for me finally was to go to add remove programs wizard,&nbsp;uninstalled <em>MSXML 4.0 SP2 (KB954430)</em>&nbsp;and then installed this update again. Since then, I have been able to rest in peace :-).</p>]]>
        
    </content>
</entry>
<entry>
    <title>Touch Typing</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/microsoft/2010/02/touch_typing.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=478" title="Touch Typing" />
    <id>tag:www.infosysblogs.com,2010:/microsoft//1.478</id>
    
    <published>2010-02-04T09:03:27Z</published>
    <updated>2010-02-04T09:10:05Z</updated>
    
    <summary>Touch typing</summary>
    <author>
        <name>Atul Gupta</name>
        
    </author>
            <category term="General" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/microsoft/">
        <![CDATA[<p>This topic has got nothing to do with Win 7 and Touch that I have been discussing in some of <a href="http://www.infosysblogs.com/microsoft/win_7/" target="_blank">my earlier blogs</a>, but is more about typing style. Check details <a href="http://en.wikipedia.org/wiki/Touch_typing" target="_blank">here</a>.&nbsp;I came across <a href="http://flowingdata.com/2010/02/02/the-most-efficient-way-to-type/" target="_blank">this interesting blog</a> today, that talks about various typing styles and how the fingers move across the keyboard. Personally I have been using the touch typing style for many years now. Having the ability to type at a speed matching your thoughts can make a person highly productive and efficient. </p><p>If you ask me, I feel that everyone working with computers should learn typing. </p>]]>
        
    </content>
</entry>
<entry>
    <title>My First Tryst with Certificates</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/microsoft/2010/01/my_first_tryst_with_certificat.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=477" title="My First Tryst with Certificates" />
    <id>tag:www.infosysblogs.com,2010:/microsoft//1.477</id>
    
    <published>2010-01-27T11:26:05Z</published>
    <updated>2010-01-28T04:00:49Z</updated>
    
    <summary>I recently worked with Windows Azure Service Management REST API to programmatically use few groovy operations on hosted services like creating/ upgrading deployment, getting deployment status etc. These features need authenticated requests....</summary>
    <author>
        <name>Divya Sharma</name>
        
    </author>
            <category term="Cloud Computing" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/microsoft/">
        <![CDATA[I recently worked with <a href="http://msdn.microsoft.com/en-us/library/ee460799.aspx">Windows Azure Service Management REST API</a> to programmatically use few groovy operations on hosted services like creating/ upgrading deployment, getting deployment status etc. These features need authenticated requests.]]>
        <![CDATA[<p><a href="http://msdn.microsoft.com/en-us/library/ee460782.aspx">Authentication</a> is done with certificates, which follows a three step process &ndash; <br />1.&nbsp;Create Certificate &ndash; using <a href="http://msdn.microsoft.com/en-us/library/bfsktky3(VS.80).aspx">makecert</a> utility or manually <br />2.&nbsp;Upload Certificate File(.cer) on Azure Portal <br />3.&nbsp;Attach Certificate with HTTP request &ndash; using .cer file or certificate thumbprint </p><p><br />The utility I created worked perfectly fine and one of my colleague also wanted to use it. I shared the executable and certificate (.cer file) with him. He installed the certificate and provided the thumbprint of the certificate to use the utility. When executed a request, it gave error &quot;The remote server returned an error: (403) Forbidden&quot;. </p><p><br />On further investigation I found that this issue is because the other system did not have the private key of the certificate. When .cer file is installed in certificate store, it doesn't install the private key along. Therefore, when user attaches the thumbprint of this installed certificate or this .cer file with the request, the response is forbidden. Even though the certificate file (.cer) sent along with request is same as the certificate file uploaded on Azure, the user is not authorized to perform this operation in absence of private key. The below diagram explains both of the scenarios; first: when user has both public key and private key and second: when user has only public key &ndash;<br /><img height="448" src="http://www.infosysblogs.com/microsoft/CertificateScenario.jpg" width="499" border="0" />&nbsp;<br />&nbsp;<br />So the problem is - <strong>how do I share my certificate with others such that they can authenticate their request to perform an operation; specifically in the distributed development scenarios.</strong> <br />The solution which we implemented is, exporting the certificate along with private key. Following are the steps performed for it &ndash; <br />1.&nbsp;Create the certificate with exportable private key. &ndash;pe option with makecert utility <br />2.&nbsp;While exporting the certificate, select export the private key option and select .pfx format <br />3.&nbsp;Provide the password and generate a .pfx file. <br />4.&nbsp;This .pfx file can be shared with the team along with the password. <br />5.&nbsp;They will have to provide the same password while installing this certificate. </p><p><br />Now they can also use the application using the same certificate; although programmatically using the certificate will by default prompt for the password for authorization. This prompt can be suppressed by modifying the local security policy of the machine called as &ldquo;System Cryptography: Force strong key protection for user keys stored on the computer&rdquo;. By default value of this policy is &ldquo;User must enter a password each time they use a key&rdquo;. It can be changed to &ldquo;User input is not required when new keys are stored and used&rdquo;; however this is not recommended.</p>]]>
    </content>
</entry>
<entry>
    <title>Percentage Fitment Anomaly – Gosh! Did I just over-sell/under-sell the product to my client?</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/microsoft/2010/01/percentage_fitment_anomaly_gos.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=476" title="Percentage Fitment Anomaly – Gosh! Did I just over-sell/under-sell the product to my client?" />
    <id>tag:www.infosysblogs.com,2010:/microsoft//1.476</id>
    
    <published>2010-01-21T12:18:34Z</published>
    <updated>2010-01-21T12:25:49Z</updated>
    
    <summary>Place: Could be anywhere in the world! Actors: Consultant (Jerry) and Client (Tom)The Conversation:Tom: So now that you know my needs; can you tell me what is the percentage fitment for the product you are recommending?Jerry: Well, this depends on...</summary>
    <author>
        <name>Sachin Bery</name>
        
    </author>
            <category term="Microsoft Dynamics" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/microsoft/">
        <![CDATA[<strong>Place</strong>: Could be anywhere in the world! <p class="MsoNormal" style="margin: 0in 0in 10pt"><strong>Actors</strong>: Consultant (Jerry) and Client (Tom)</p><p class="MsoNormal" style="margin: 0in 0in 10pt"><u>The Conversation:</u></p><p class="MsoNormal" style="margin: 0in 0in 10pt"><strong>Tom</strong>: So now that you know my needs; can you tell me what is the percentage fitment for the product you are recommending?</p><p class="MsoNormal" style="margin: 0in 0in 10pt"><strong>Jerry</strong>: Well, this depends on how you see it; but I can assure you it&rsquo;s a good fitment. Nothing will meet your needs out of the box.</p><p class="MsoNormal" style="margin: 0in 0in 10pt"><strong>Tom</strong>: Can you be more specific? What is the fitment in percentage terms &ndash; 40%, 60% or 80%</p><p class="MsoNormal" style="margin: 0in 0in 10pt"><strong>Jerry</strong>: Ok, let me get back to you on this by tomorrow</p><p class="MsoNormal" style="margin: 0in 0in 10pt"><em>Jerry lists out all requirements and puts them in an excel sheet; gives a fitment of &ndash; &lsquo;Out of Box&rsquo;, &lsquo;Customization&rsquo;, &lsquo;Not Applicable&rsquo; to each requirement line. And yes, here is the pivot with number of requirements in each bracket. Ready for next day</em></p><p class="MsoNormal" style="margin: 0in 0in 10pt"><strong>Jerry</strong>: Good Morning Tom; here is the analysis. As I had mentioned yesterday you have a 70% fitment; 20% will be met with customization and 10% are not possible with the product. Net-Net a good 70% fitment is what I see here. </p><p class="MsoNormal" style="margin: 0in 0in 10pt"><strong>Tom</strong>: Hmmn. Looks ok to me. Let&rsquo;s discuss the statement of work.</p><p class="MsoNormal" style="margin: 0in 0in 10pt"><strong>Jerry</strong>: Sure, Drinks anyone??</p>]]>
        <![CDATA[<p class="MsoNormal" style="margin: 0in 0in 10pt">Well, I would not like to spoil the party here; but guess there is an inherent anomaly in the above approach. And it is not only the consultants, but the clients also to be blamed for that. </p><p class="MsoNormal" style="margin: 0in 0in 10pt">Consultants for not bringing out the perspective to the client and the client for his hurriedness in getting a budget sign-off overlooks that this &lsquo;percentage&rsquo; seen in isolation is like asking a question to a married couple &ndash; &ldquo;<strong>What is the percentage compatibility between you</strong>?&rdquo;. Can you get an honest answer or do the parties have a mechanism to simply tell this? I am married for 5 years and do not have an answer to that yet. </p><p class="MsoNormal" style="margin: 0in 0in 10pt">This small question &ndash; &ldquo;What is the percentage fitment?&rdquo; assumed a lot of things &ndash; </p><ol><li><div class="MsoNormal" style="margin: 0in 0in 10pt">All requirement lines are of equal importance</div></li><li><div class="MsoNormal" style="margin: 0in 0in 10pt">All requirement lines are of equal impact (i.e. if they are not met)</div></li><li><div class="MsoNormal" style="margin: 0in 0in 10pt">All requirement lines will require equal effort to achieve in the product</div></li><li><div class="MsoNormal" style="margin: 0in 0in 10pt">All requirements lines are independent and have no cross-dependencies (parent-child relationships)</div></li><li><div class="MsoNormal" style="margin: 0in 0in 10pt">All requirements lines define the universal set of business needs and there are no further changes foreseen</div></li><li><div class="MsoNormal" style="margin: 0in 0in 10pt">All requirements lines have an equal risk profile</div></li></ol><p class="MsoNormal" style="margin: 0in 0in 10pt"><strong><u>Solution</u></strong></p><p class="MsoNormal" style="margin: 0in 0in 10pt">My personal approach is&nbsp;to consider all the above parameters and then come out with a fitment which is a true indicator of the amount of effort, time, resources and cost which the client would incur to achieve the envisaged business benefits. </p><p class="MsoNormal" style="margin: 0in 0in 10pt">There could be 90% of the lines available out of box but remaining 10% may need an effort which is 10 times the effort required for meeting 90% needs and the risk may be much higher as lot of ground-up&nbsp;customizations can lead to higher chances of failure as well. </p><p class="MsoNormal" style="margin: 0in 0in 10pt">On the other hand; another product may be meeting only 60% of the requirement lines, but the remaining 40% may be met with simpler customizations. This can be due to &lsquo;framework&rsquo; nature of the product i.e. the product could have been developed in such a way that it provides the basic framework with all business functionalities leaving it to the service providers to customize it to the need of the client. It need not be over-engineered and boast of best-of-breed features which are never used. </p><p class="MsoNormal" style="margin: 0in 0in 10pt">I call this paradigm as &ldquo;Total Benefits &amp; Solution Fitment Framework&rdquo;. This may take more time; but this gives a better insight into the &lsquo;compatiblity aspect&rsquo; which is necessary for this marriage to last. Please feel free to express your views on this.</p><p class="MsoNormal" style="margin: 0in 0in 10pt">And before i take your leave- </p><p class="MsoNormal" style="margin: 0in 0in 10pt"><strong><em>Tom, Hope you have got the point. I am very much on your side!</em></strong></p><p class="MsoNormal" style="margin: 0in 0in 10pt"><strong><em>Jerry, No offense, was just trying to help!</em></strong></p>]]>
    </content>
</entry>
<entry>
    <title>SketchFlow to Production</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/microsoft/2010/01/sketchflow_to_production.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=475" title="SketchFlow to Production" />
    <id>tag:www.infosysblogs.com,2010:/microsoft//1.475</id>
    
    <published>2010-01-19T08:10:09Z</published>
    <updated>2010-01-20T04:11:15Z</updated>
    
    <summary>SketchFlow to Production</summary>
    <author>
        <name>Atul Gupta</name>
        
    </author>
            <category term="Expression Blend" />
            <category term="Microsoft Design Technologies" />
            <category term="Silverlight" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/microsoft/">
        <![CDATA[If you have been following SketchFlow, most likely you have also followed the debate on the ability to convert a SketchFlow prototype to production project. You can find step by step guidance on this in Expression Blend Help (<a href="http://msdn.microsoft.com/en-us/library/ee371158(Expression.30).aspx" target="_blank">here</a>) and pick the right option as per your technology (WPF or Silverlight) and language choice (C# or VB.NET).]]>
        <![CDATA[<p>While I have my own beliefs on if this should be allowed or not and personally I am of the school of thought that say that prototype is best left alone. You may lift some concepts from it to take to your production (by age old and still very popular cut paste method), but you should not have a direct path to this conversion. A direct path in my view defeats the very purpose of prototype, which is to try things out and then throw them away (throw the various artifacts, not the learning). Added to that is the point that in UI prototyping you are more interested in getting the look and feel of the screens validated and are neither focusing on the application architecture in terms of layering nor following right coding standards like class naming, method naming etc. hence taking such a code directly to a production targeted project, will break some of the standards that such projects are meant to follow. </p><p>Anyway, getting into this debate wasn&rsquo;t really the purpose of this blog, but that I did want to at least give this option a trial, not for the sake of actually taking anything to production, but to just get a handle on what steps need to be followed. Many people have also written about the 16 odd steps that one needs to do and that it is so painful and all that. Doing these manually, however, didn&rsquo;t take me more than 5 min.</p><p>Most of the steps are pretty trivial and the only place where I have seen some of the people getting stuck a bit is on the final step, where the player is no longer set as root visual, but rather the first screen is set. The challenge here mostly is in figuring out the right name of the XAML file. Blend, by default, names this page as Screen 1.xaml and it is this blank space in the name that possibly ticks people off. The trend that developers are today used to is that the filename and the class name is the same and hence since the class name for this default screen is Screen_1, some people confuse this with file name as well and use that for the XAML file name as well. A related challenge is that while doing your screens, you most likely will rename them as you add them. While this renaming is shown in the SketchFlow map, it actually doesn&rsquo;t rename the file below. Also the friendly names you see in Blend against the screen name, seem to be Blend specific. If you happen to open this project in Visual Studio (VS) you won&rsquo;t see these names. In the figure below you can see this difference. The left part shows view in Blend and right shows the view in VS.</p><p><img width="562" height="159" alt="sketchflow.jpg" src="http://www.infosysblogs.com/microsoft/sketchflow.jpg" border="0" /></p><p>I think it will be a good idea for MS to fix these issues.</p><p>Further on, having successfully converted my project and I ran it and I could see my first screen load and there was no player, which is what was expected, but my excitement was short lived as my navigate to screen, active state and screen animations no longer worked and I started getting exceptions for the same. If I had some logic built into a control template like doing some animation via control's visual state manager (VSM), it works fine. </p><p><strong>[Edited: Jan 20]</strong> I had earlier mentioned that navigations&nbsp;didn't work. But they actually&nbsp;do work. The steps&nbsp;to convert to production ask you to&nbsp;remove reference to Microsoft.Expression.Prototyping.Runtime.dll. I had done this, but for some strange reason, when I checked the solution again later, it was still there. Removing it, got the navigation working. The activate state behavior doesn't seem to work still and one solution is to handle appropriate events in code behind and make explicit calls to VSM's GoToState method. </p><p>Any comments/opinions? Do write back. </p><p>If you know the best way out, do write back. </p>]]>
    </content>
</entry>
<entry>
    <title>Multitenancy and SharePoint 2010</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/microsoft/2010/01/multitenancy_and_sharepoint_20_1.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=473" title="Multitenancy and SharePoint 2010" />
    <id>tag:www.infosysblogs.com,2010:/microsoft//1.473</id>
    
    <published>2010-01-14T09:21:11Z</published>
    <updated>2010-01-15T04:29:34Z</updated>
    
    <summary><![CDATA[Before starting this blog&nbsp;let me&nbsp;define multitenancy&nbsp;to ensure uniform understanding. Multitenancy in this context mean isolation of data (including backups), Isolation of usage (what data and services are exposed to the users), isolation of administration (administration of sites, services, customizations), etc.&nbsp;If...]]></summary>
    <author>
        <name>Prashanth Govindaiah</name>
        
    </author>
            <category term="SharePoint Technologies" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/microsoft/">
        <![CDATA[<p>Before starting this blog&nbsp;let me&nbsp;define multitenancy&nbsp;to ensure uniform understanding. Multitenancy in this context mean isolation of data (including backups), Isolation of usage (what data and services are exposed to the users), isolation of administration (administration of sites, services, customizations), etc.&nbsp;If we consider a&nbsp;hosted environments like SharePoint Online it offers customers 2 mode of hosting</p>]]>
        <![CDATA[<p>1. Standard: This is a shared infrastructure where multiple customers will be hosting their web applications/site collections (what we call as multi-tenant mode)</p><p>2. Dedicated: This is a separate infrastructure of the customer</p><p>Some of the biggest challenges that existed in MOSS 2007 for multitenancy include:</p><p>1. Where do we host a tenant.. Should we create a separate Web Application or creating a separate site collection will suffice... Of course both have their own pros and cons</p><p>2. Services were part of SSP and the alacarte model did not exists and one cannot keep creating a separate Web Application and SSP for each and every tenant&nbsp;</p><p>3. Other major challenge was around customizations as the 12 hive folder is a shared one</p><p>4. Ensuring the performance of customizations of one tenant does not affect others</p><p>So what is that SharePoint 2010 offers to overcome the above challenges</p><p>SharePoint 2010 has introduced a new concept called <strong>Site Subscriptions </strong>to group site collections based on the tenants even if all the site collections are part of the same Web Application. Site Subscriptions not only does externally separate out the Site collections but also the underlying data in the content database. This goes to the extent of one tenants data will not be seen as search result of other tenants data. The same subscription id also helps in grouping of features and services to the tenants.</p><p>The next of the problem is around customizations. SharePoint 2010 has introduced a new concept called Sandboxed solutions. What this means is that the tenant administrators (Site Collection admins) can now deploy features local to their site collections without affecting other site collections of other tenants in the same Web Application. This solves 2 purposes. Part of the administration is getting delegated to the tenants. However the central admin still has control and can ensure to big the feature down if it seen to show any performance degradation.</p>]]>
    </content>
</entry>
<entry>
    <title>Win 7 - Difference between Touch and Gesture</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/microsoft/2010/01/win_7_difference_between_touch.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=472" title="Win 7 - Difference between Touch and Gesture" />
    <id>tag:www.infosysblogs.com,2010:/microsoft//1.472</id>
    
    <published>2010-01-13T10:08:46Z</published>
    <updated>2010-01-13T10:26:25Z</updated>
    
    <summary>Win 7 - Difference between Touch and Gesture</summary>
    <author>
        <name>Atul Gupta</name>
        
    </author>
            <category term="General" />
            <category term="Microsoft Design Technologies" />
            <category term="Microsoft Products &amp; Technologies" />
            <category term="Win 7" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/microsoft/">
        <![CDATA[<p>In my earlier blogs (<a href="http://www.infosysblogs.com/microsoft/2009/11/win_7_touch.html" target="_blank">here</a>&nbsp;and <a href="http://www.infosysblogs.com/microsoft/2009/12/win_7_multi_touch.html" target="_blank">here</a>), I have talked about Win 7 and the new touch experience it brings. </p><p>When talking about touch, there are essentially two aspects - touch and gestures and during a recent internal discussion, I felt that these aren't that well understood by people. What's really the difference between the two and what it means to be supporting either of these? </p>]]>
        <![CDATA[<p>In this blog, I will try and explain them as I have understood them. If you have a different view do share. </p><p>The very first way I would like to describe the difference between touch and gesture is, treat gesture like out of box controls, like say for ASP.NET. They are available with basic functionality and allow one to get applications built quickly. Gestures are like that and allow some quick support to application to react to the touch inputs. Touch on other hand can be treated as custom controls, where you implement things on your own and hence get to handle the raw power of the platform. This is more tedious, but in terms of features, can provide lot more than what gesture may offer. </p><p>Touch in Win 7 is also related to manipulation events. I found <a href="http://blog.rongeorge.com/design/interaction-design/terminology-the-difference-between-a-gesture-and-a-manipulation/" target="_blank">this</a>&nbsp;interesting comparison between gesture and manipulation. If you look at the figures, they very clearly show the difference between the two and also bring out another important point when working with touch on Win 7, a point that people tend to miss out - gesture and touch don't go hand in hand. </p><p>What is evident from the figure in <a href="http://blog.rongeorge.com/design/interaction-design/terminology-the-difference-between-a-gesture-and-a-manipulation/" target="_blank">that</a> blog is that the system needs to wait till gesture is completed, then check its internal respository to figure out what the gesture was and what is mapped against and then eventually invoke that command. Touch or manipulation on the other hand are immediate and the object/application needs to react immediately to the inputs. This clearly means that gesture and touch are mutually exclusive and can't be handled together. MSDN article also states this - &quot;<em>By default, you receive WM_GESTURE messages instead of WM_TOUCH messages. If you call RegisterTouchWindow, you will stop receiving WM_GESTURE messages</em>.&quot; See more details <a href="http://msdn.microsoft.com/en-us/library/dd371581(VS.85).aspx" target="_blank">here</a>. </p><p>People often wonder that if pan, zoom rotate are really gestures and I am handling touch messages, how do these still work, since we just said that geature and touch are mutually exclusive. These work because to enable legacy support, Win 7 converts the pan, zoom and rotate gestures to appropriate scroll and mouse events, which applications would anyway be handling. See some details on this <a href="http://msdn.microsoft.com/en-us/library/dd562171(VS.85).aspx" target="_blank">here</a>. While this legacy support will work, it may not give you the best of results. For that you may have to still look at handling WM_GESTURE specific messages (at the cost of WM_TOUCH). See more details <a href="http://msdn.microsoft.com/en-us/library/dd562167(VS.85).aspx" target="_blank">here</a>. </p><p>If you have any thoughts or comments on this, do share. </p>]]>
    </content>
</entry>
<entry>
    <title>VisualStateManager&apos;s Benefits</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/microsoft/2009/12/visualstatemanagers_benefits.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=471" title="VisualStateManager's Benefits" />
    <id>tag:www.infosysblogs.com,2009:/microsoft//1.471</id>
    
    <published>2009-12-28T11:08:04Z</published>
    <updated>2009-12-28T11:18:51Z</updated>
    
    <summary>Benefits of VisualStateManager</summary>
    <author>
        <name>Atul Gupta</name>
        
    </author>
            <category term=".NET Fwk 3.5" />
            <category term=".net 4.0" />
            <category term="Expression Blend" />
            <category term="Microsoft Products &amp; Technologies" />
            <category term="Silverlight" />
            <category term="VS2008" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/microsoft/">
        <![CDATA[Many months back I had written about VisualStateManager (VSM) feature in Silverlight. Overtime, MS has been working on streamlining this and new additions are available with Blend 3 to support VSM. VSM got introduced in SL, as some say, mostly to address the lack of triggers, due to which creating control templates was a big issue. Eventually WPF 4 will also start to support VSM. There have been many interesting debates on this, which you can find <a href="http://hestia.typepad.com/flatlander/2008/06/why-the-silverl.html" target="_blank">here</a>, <a href="http://devlicio.us/blogs/rob_eisenberg/archive/2008/03/13/there-s-some-darkness-in-your-silver-light.aspx" target="_blank">here</a>, <a href="http://blogs.msdn.com/johngossman/archive/2008/05/01/silverlight-the-art-of-subsetting.aspx" target="_blank">here</a> and <a href="http://drwpf.com/blog/2008/03/24/the-big-problem-with-silverlights-control-templating-model/" target="_blank">here</a>, but this parts and states model is here to stay. ]]>
        <![CDATA[<p>In case you haven't spent time as yet checking this out, you can find a good intro in the 4 part series by Karen Corby, starting <a href="http://scorbs.com/2008/06/11/parts-states-model-with-visualstatemanager-part-1-of/" target="_blank">here</a>. Another interesting <a href="http://www.interact-sw.co.uk/iangblog/2008/06/10/visual-state" target="_blank">blog</a>&nbsp;is by Ian Griffiths. Christian Schormann captures the goals for VSM <a href="http://electricbeach.org/?p=100" target="_blank">here</a>.</p><p>Personally I find VSM useful and in a recent conversation, we were discussing the benefits of VSM. I thought I will capture a few here.&nbsp; </p><p>1. VSM allows logical grouping of states. Looking at the state groups and states within, it is easy to figure out which states are orthogonal and which don't go hand in hand. </p><p>2. The capability of control to exist in mutliple states from different VSM state groups is interesting and as it is internally managed, the control writer doesn't has to worry much about this, apart from invoking GoTo actions to transition to specific states. </p><p>3. VSM model can not only be applied at custom control but at a page level as well and page states managed via it. I had shown this in my earlier <a href="http://www.infosysblogs.com/microsoft/2008/10/part_2_manage_page_level_state.html" target="_blank">blog</a>.</p><p>4. The best part of VSM, i feel is the ability to deactivate a state when animating to another state in the same state group. VSM not only deactivates, but actually plays a suitable reverse animation. Ian explains this in his <a href="http://www.interact-sw.co.uk/iangblog/2008/06/10/visual-state" target="_blank">blog</a>&nbsp;in more detail. I tried to dig deeper into the framework code to see how this is implemented but hit a roadblock as the real implementation is in agcore.dll and that being a native DLL i could not use reflector with it. </p><p>You are welcome to add to this list.</p>]]>
    </content>
</entry>
<entry>
    <title>MMIX &gt; MMX - The King is dead; long live the King (Year end musing on IT providers space)</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/microsoft/2009/12/mmix_mmx_the_king_is_dead_long.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=470" title="MMIX &gt; MMX - The King is dead; long live the King (Year end musing on IT providers space)" />
    <id>tag:www.infosysblogs.com,2009:/microsoft//1.470</id>
    
    <published>2009-12-21T12:34:20Z</published>
    <updated>2009-12-21T12:37:42Z</updated>
    
    <summary>This is probably my last post in this year and I feel like sharing my thoughts together at one go. Yet another year is about to come to an end. Many would like to forget this year as one of...</summary>
    <author>
        <name>Sachin Bery</name>
        
    </author>
            <category term="Microsoft Dynamics" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/microsoft/">
        <![CDATA[<p class="MsoNormal" style="text-align: justify; margin: 0in 0in 10pt">This is probably my last post in this year and I feel like sharing my thoughts together at one go. </p><p class="MsoNormal" style="text-align: justify; margin: 0in 0in 10pt">Yet another year is about to come to an end. Many would like to forget this year as one of the nightmare - job cuts, stagnation, closing businesses, struggling bottom lines, insecurity and unexpected falls. While several things may have gone wrong; there were some very thought through and meticulous business moves that will change the business paradigm in near future. </p>]]>
        <![CDATA[<p class="MsoNormal">This year also brought a sense of &lsquo;sensibility&rsquo; and need for &lsquo;introspection&rsquo; at the enterprise level. The unrealistic targets and greed were corrected to pave way for players who had &lsquo;invested&rsquo; in the enterprise and looked at this downturn as a means to think and correct the anomalies such that the end customers, vendors, partners, stakeholders and employees at large are able to come out of this with an aplomb. Businesses have realized the need to collaborate, rethink on business models, improve on delivery models and do &ldquo;more for less&rdquo; so that we all can benefit as an organization ecosystem. </p><p class="MsoNormal">The margins have dipped but the &lsquo;continuity&rsquo; and &lsquo;relationships&rsquo; have improved for those who kept away from &lsquo;transactional&rsquo; mindset. This is a long term investment and will surely reap benefits! The talks about &lsquo;green-shoots&rsquo; and &lsquo;recovery&rsquo; were being heard over the later part of the year and that sure lays ground for a &lsquo;brighter&rsquo; future ahead.</p><p class="MsoNormal">Several participants in this space have commented on the future challenges and opportunities for service providers in IT space. While I like some, I hate some. This is my personal list around these, though not necessarily in any order&ndash; </p><p class="MsoListParagraphCxSpFirst"><span><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><strong>One-stop-shops are needed</strong> &ndash; A service provider who can provide infrastructure, BPO services, liaising, approvals, research and consulting all together so that the enterprise do not have to go out in search of multiple partners. Platform solutions are another area which need lot of focus and pricing innovation.</p><p class="MsoListParagraphCxSpMiddle"><span><span>2.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><strong>Business Transformation deals are a reality</strong> &ndash; There are businesses that have been running over years and have become a mish-mash of applications all making the organization &lsquo;disconnected&rsquo;. There is a need for service providers to enter into these &lsquo;transformation&rsquo; deals and relate this back to real value for clients</p><p class="MsoListParagraphCxSpMiddle"><span><span>3.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong> </strong></span></span></span><strong>&lsquo;Architecting the enterprise&rsquo; &ndash; are you game?</strong> &ndash; There are very few &lsquo;Greenfield Implementations&rsquo; today. Thus, there is a need to identify opportunities to rationalize and streamline and in the process ensure that the entire organizational processes are tied together in a way that the business can perform what it is meant to do seamlessly. </p><p class="MsoListParagraphCxSpMiddle"><span><span>4.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><strong>Going the cloud way</strong> &ndash; With so many providers taking the &lsquo;cloud&rsquo; route; it makes sense to look at opportunities of moving out some of the non-critical applications on the cloud and leverage of advantages of OPEX over CAPEX. </p><p class="MsoListParagraphCxSpMiddle"><span><span>5.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong> </strong></span></span></span><strong>Boundary-less Organizations - new focus area </strong>&ndash; Today the business process originates internally goes out to customer / vendor where the processing is<span>&nbsp; </span>on a separate platform and this then comes back into the parent organization. All these need to be &lsquo;knitted&rsquo; together &lsquo;loose&rsquo; enough to allow for flexibility and &lsquo;tight&rsquo; enough to allow seamless integration of the processes.</p><p class="MsoListParagraphCxSpMiddle"><span><span>6.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><strong>&lsquo;Hybrids&rsquo; on the cards</strong> &ndash; With platforms like &lsquo;Azure&rsquo; from Microsoft and the strategy of ERP products like Microsoft Dynamics to allow for a &lsquo;terrestrial + cloud&rsquo; offering; the service providers need to look at options where the core ERP/CRM may be installed terrestrially (on-premise) while the peripheral systems can be on the cloud.</p><p class="MsoListParagraphCxSpMiddle"><span><span>7.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>&nbsp; </strong></span></span></span><strong>&lsquo;Nimble&rsquo; is in</strong> &ndash; today the need of the business is to adapt to changes and be flexible enough to actually model the business processes in such a way that these changes can be done seamlessly. The products need to be modeled and implemented in such a way that these flexibilities can be attained at an overall level using the system of connected product and service offerings.</p><p class="MsoListParagraphCxSpMiddle"><span><span>8.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><strong>Micro-verticals focus needs more than mere lip-say</strong> &ndash; While this has been an oft repeated word; the investments in these areas are typically coming in from niche players working in one micro-vertical. There is need to invest in these areas to reap benefit in the long run. The service companies may have to think from the &lsquo;product&rsquo; company perspective to achieve any gain in this area.</p><p class="MsoListParagraphCxSpMiddle"><span><span>9.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><strong>Size does matter</strong> &ndash; With increasing experience of bigger Sis/ISVs and cost arbitrage margins becoming lower, it is the elements of &lsquo;reusables&rsquo; and &lsquo;accelators&rsquo; which can lead to effective reduction in cost. With huge size, there comes an advantage of attracting best talent and utilize them appropriately.</p><p class="MsoListParagraphCxSpMiddle"><span><span>10.<span>&nbsp;&nbsp; </span></span></span><strong>What next after process optimization</strong> &ndash; Business Intelligence &amp; Analytics? &ndash; The products have helped in optimizing the business and ensure that right data is available at right place at right time with right people; what is lacking is how to use this data for business benefit. Value Analytics would be the game changing paradigm and needed for service providers to move up the value chain</p><p class="MsoListParagraphCxSpMiddle"><span><span>11.<span>&nbsp;&nbsp; </span></span></span><strong>Skilled minds are the real assets</strong> &ndash; Focus on &lsquo;People&rsquo; would have to come back. Recession may have considered them as &lsquo;overheads&rsquo;; but these are the real drivers in the knowledge driven enterprise. Program Management, Enterprise Architecture and User Handling skills would be of utmost importance besides the traditional technical, domain and functional skill sets.</p><p class="MsoListParagraphCxSpMiddle"><span><span>12.<span>&nbsp;&nbsp; </span></span></span><strong>Doing &ldquo;more for less&rdquo; would be the mantra</strong> &ndash; How to optimize on cost would be the constant question. The clients will become more demanding as they would need value out of each dollar invested in the initiatives. The service providers need to show the real value-add to the clients to win deals</p><p class="MsoListParagraphCxSpMiddle"><span><span>13.<span>&nbsp;&nbsp; </span></span></span><strong>Going &lsquo;non-linear&rsquo; beyond the established models</strong> &ndash; Several of now established models around &lsquo;solution selling&rsquo;, &lsquo;Platforms&rsquo;. &lsquo;SaaS&rsquo; need to be evolved and new models generated to actually delink the revenue growth from headcount which has been more or less proportional ever since the birth of this industry</p><p class="MsoListParagraphCxSpMiddle"><span><span>14.<span>&nbsp;&nbsp; </span></span></span><strong>&lsquo;Developing&rsquo; markets hold the key for future growth</strong> &ndash; Traditional markets have matured and the investments from clients are around maintenance, upgrade and enhancements. While this sure provides some assured stream of revenue; it is the new and emerging markets in pockets around South East Asia, Middle East, South America, South Africa and Eastern Europe which hold a lot of potential for Greenfield implementations</p><p class="MsoListParagraphCxSpMiddle"><span><span>15.<span>&nbsp;&nbsp;<strong> </strong></span></span></span><strong>&lsquo;White spaces&rsquo; are available for SI/ISV to capture in new verticals &amp; customer segments</strong> &ndash; Traditional verticals like BFSI, Retail are cluttered; there is a need to look at Communication, Entertainment, Education, Sports, Non-Profit Organization, etc. where there is a need for a lot of investment </p><p class="MsoListParagraphCxSpMiddle"><span><span>16.<span>&nbsp;&nbsp; </span></span></span><strong>Social Media is here to stay</strong> &ndash; You may stay clear of Twitter, Facebook, YouTube, MySpace and likes; but the role of these media cannot be undermined in terms of understanding the client behaviors, marketing the products, receiving feedback, etc. and all this is going to become even more omnipresent as we see more players jumping on this bandwagon.</p><p class="MsoListParagraphCxSpMiddle"><span><span>17.<span>&nbsp;&nbsp;<strong> </strong></span></span></span><strong>Service Levels are needed; but, IP would be the differentiator</strong> &ndash; Creation of IP and Knowledge assets to provide a different value proposition to the clients would be in vogue and very much needed to lead the race. This will also include bringing about improvements in existing solutions/delivery methods.</p><p class="MsoListParagraphCxSpMiddle"><span><span>18.<span>&nbsp;&nbsp; </span></span></span><strong>From off-shore to near-shore</strong> &ndash; With low cost locations available to bigger markets, visa issues, increasing travel costs, green initiatives, cultural differences, anti-outsourcing lobbies etc. there is a need to move some work to near-shore locations. This is a strategic move and needs to be implemented with more vigor.</p><p class="MsoListParagraphCxSpMiddle"><span><span>19.<span>&nbsp;&nbsp; </span></span></span><strong>Mergers on the way</strong> &ndash; The service providers can actually go this route to increase presence in a region, enter into new verticals/domain or to complement the skill sets that might be missing in the parent organization to take up greater and global challenges.</p><p class="MsoListParagraphCxSpLast"><span><span>20.<span>&nbsp;&nbsp; </span></span></span><strong>Innovations needed in pricing models</strong> &ndash; Fixed Price and Time &amp; Material are pass&eacute;. There is a need to go for Risk-Reward, Risk-Sharing, Transaction based and Usage based pricing. These are mentioned in &lsquo;deck-wares&rsquo; and implemented in pockets and sometime retro-fitted to the implementations; but there is a real need to define these models and implement them to bring real value to clients.</p><p class="MsoNormal">I know this was a long one; but then this is what I feel and did not want to edit it to risk missing on my thoughts. Please feel free to add to this list. Season Greetings and have a happy new year 2010. May it bring a lot of happiness and prosperity to all!</p>]]>
    </content>
</entry>
<entry>
    <title>X-factor in XRM</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/microsoft/2009/12/xfactor_in_xrm.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=469" title="X-factor in XRM" />
    <id>tag:www.infosysblogs.com,2009:/microsoft//1.469</id>
    
    <published>2009-12-21T08:31:23Z</published>
    <updated>2009-12-21T11:14:32Z</updated>
    
    <summary><![CDATA[Many of the CRM solutions are tied towards relationship management but it is not essentially towards managing a customer. This is where XRM comes into play and X could be an employee, patient, Investor, Partner, or anything. &nbsp;A typical CRM...]]></summary>
    <author>
        <name>Manoj Jajoo</name>
        
    </author>
            <category term="Microsoft Dynamics" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/microsoft/">
        <![CDATA[<p>Many of the CRM solutions are tied towards relationship management but it is not essentially towards managing a customer. This is where XRM comes into play and X could be an employee, patient, Investor, Partner, or anything. <span>&nbsp;</span>A typical CRM solution will have the lead to opportunity life cycle but in XRM it will vary depending on whom are you managing. <span>&nbsp;</span>In short, <strong>XRM means extended Relationship management.</strong></p><p>The CRM products that are flexible and allow the re-use of the below features will qualify as the XRM product. This is where Microsoft Dynamics CRM scores over its competitors.</p><p><span><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>UI --&gt; User interface is created by default in the dynamics framework. This can be easily modified and extended using .NET and Silverlight.</p><p><span><span>2.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Event-Driven --&gt; Microsoft dynamics provides the handle for all the events that cab triggered though batch, integration or through user interface.</p><p><span><span>3.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Entity-based --&gt; New entities can be created and the relationship can be established between these entities.</p><p><span><span>4.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Workflow --&gt; User can manage the work flow through a user interface or a new work flow can also be published by the developer. </p><p><span><span>5.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Security&nbsp;--&gt; Object-based and role-based security model provides the high flexibility to adopt the security requirements of any new processes and/or a new organization structure.</p>]]>
        
    </content>
</entry>
<entry>
    <title>Dev 10 Release delayed</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/microsoft/2009/12/dev_10_release_delayed.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=468" title="Dev 10 Release delayed" />
    <id>tag:www.infosysblogs.com,2009:/microsoft//1.468</id>
    
    <published>2009-12-18T03:53:22Z</published>
    <updated>2009-12-18T04:01:50Z</updated>
    
    <summary>Visual Studio 2010 Release date delayed</summary>
    <author>
        <name>Atul Gupta</name>
        
    </author>
            <category term=".net 4.0" />
            <category term="Microsoft Products &amp; Technologies" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/microsoft/">
        <![CDATA[<p>Yesterday MS announced a delay in the release of the upcoming Visual Studio (VS) 2010 (called Dev 10 in short). In both <a href="http://blogs.msdn.com/somasegar/archive/2009/12/17/visual-studio-2010-and-net-framework-4-beta-period-extended.aspx" target="_blank">Somasegar's</a> and <a href="http://weblogs.asp.net/scottgu/archive/2009/12/17/visual-studio-2010-and-net-4-0-update.aspx" target="_blank">Scott's</a> blogs, the reason mentioned is addressing the memory and performance issues. While this definitely means that the end product would be better in these terms, what does this delay mean to you? </p><p>The good part is that the release candidate planned for Feb 2010 will have the &quot;go live&quot; license support, so any plans for production deployment may still be carried on. What is of&nbsp;more interest to me is how this impacts the Silverlight 4 release plans, since SL 4 as of now needs Dev 10? </p>]]>
        
    </content>
</entry>
<entry>
    <title>Deploying ASP.NET MVC applications on IIS 6</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/microsoft/2009/12/deploying_aspnet_mvc_applicati.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=467" title="Deploying ASP.NET MVC applications on IIS 6" />
    <id>tag:www.infosysblogs.com,2009:/microsoft//1.467</id>
    
    <published>2009-12-18T02:51:53Z</published>
    <updated>2009-12-18T02:59:30Z</updated>
    
    <summary>Yesterday I was trying to deploy an ASP.NET MVC application on IIS 6 and met with some issues. When I entered an extension-less url like http://localhost/MyMVCApp/Home/Index, I got a resource not found error. When I did some read up on the same, I found that we had to tweak the application configuration on IIS to get the application running and to use extension-less URLs. Phil Haack&apos;s article on the same provides us a lot of details on how to get ASP.NET MVC apps up and running on IIS 6.
</summary>
    <author>
        <name>E. Krishna Kumar</name>
        
    </author>
            <category term="ASP .NET" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/microsoft/">
        <![CDATA[<p align="justify">Couple of days back&nbsp;I was trying to deploy an ASP.NET MVC application on IIS 6 and met with some issues. When I entered an extension-less url like <strong>http://localhost/MyMVCApp/Home/Index</strong>, I got a resource not found error. When I did some read up on the same, I found that we have to tweak the application configuration on IIS to get the application running and to use extension-less URLs. Phil Haack's <a href="http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx" target="_blank">article</a> on the same provides us a lot of details on how to get ASP.NET MVC apps up and running on IIS 6.</p>]]>
        
    </content>
</entry>
<entry>
    <title>MYOC - Offload compute intensive tasks on Azure using the Offline Processing pattern</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/microsoft/2009/12/myoc_offload_compute_intensive.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=446" title="MYOC - Offload compute intensive tasks on Azure using the Offline Processing pattern" />
    <id>tag:www.infosysblogs.com,2009:/microsoft//1.446</id>
    
    <published>2009-12-14T04:49:13Z</published>
    <updated>2009-12-14T13:15:49Z</updated>
    
    <summary><![CDATA[In this post on the MYOC cloud development series, I will share an offline&nbsp;processing design pattern&nbsp;where certain computation tasks are offloaded to another execution task using queues&nbsp;and that can help reducing the overall processing time of&nbsp;online transactions.&nbsp;This is a very...]]></summary>
    <author>
        <name>Sidharth Subhash Ghag</name>
        
    </author>
            <category term="Cloud Computing" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/microsoft/">
        <![CDATA[<p>In this post on the MYOC cloud development series, I will share an offline&nbsp;processing design pattern&nbsp;where certain computation tasks are offloaded to another execution task using queues&nbsp;and that can help reducing the overall processing time of&nbsp;online transactions.&nbsp;This is a very useful pattern to&nbsp;use,&nbsp;if you plan to build highly scalable and compute intensive application on the web today.&nbsp;This patterns&nbsp;is also&nbsp;used by many popular websites. Here I will demonstrate how we've used this pattern to help reduce the poll creation time.</p>]]>
        <![CDATA[<p>In <a href="http://www.infosysblogs.com/microsoft/2009/11/myoc_make_your_opinion_cloud_s.html">MYOC (Make Your Opinion Count)</a>, whenever a new poll is created,a user can send invite notifications to people for participating in the poll. These notifications can be sent through SMS, e-mail or Twitter. </p><p>As shown in the figure below, when a user creates a poll and invites his/her friends to participate in poll, the poll gets created and subsequently a notification may need to be send out. These notifcations are first send out as a Notification messages into a queue. The Notification message contains instructions on the mode of alerts which need to be sent out say SMS, e-mail or Twitter. A work role, the Notification processor, processes these messages asynchronoously in an offline fashion. It picks up the notification messages from the queue, process the message and extracts the channels to which the notifications have to be send.&nbsp;Once the notification channels are identified the processor calls the respective notifcations services along with the information required by the service.&nbsp;The poll creation&nbsp;transactions completes&nbsp;without waiting for completion of sending invite notifications to invitees and significantly reducing the overall time of the transaction improving the application throughput.</p><p>As of now MYOC supports three types of invite notifications to participants i.e. e-mail, SMS and tweet. Other notification services can also be easily incorporated by setting a filter for them in the notification processor and passing the message to the services.</p><p><img src="http://www.infosysblogs.com/microsoft/Notification.jpg" border="0" /></p><p>The overall process of sending the notification comprises of three steps &ndash;<br />1.&nbsp;Putting notification messages in the queue after creation of the poll</p><blockquote><p>a.&nbsp;Once the poll is created, create an entity for notification with the details of participants i.e. e-mail ID and cell number, twitter ID and password of poll creator to put status on, type of notification i.e. e-mail, SMS and tweet.<br />b.&nbsp;Form the message to be sent to the participants with poll URL. For SMS and tweets, considering the limitation of message size, convert the URLs into tiny URL using TinyURL API.<br />c.&nbsp;XML serialize the notification entity and encode it to form a string message.<br />d.&nbsp;Create notification message queue using StorageClient API and set queue properties.<br />e.&nbsp;Put the message in the notification message queue.<br />f.&nbsp;If any of the above steps fails then get the error/exception details and write it to Azure table storage. </p></blockquote><p>2.&nbsp;Processing of the notification by the Worker Role</p><blockquote><p>a.&nbsp;Worker role keeps running in the background and checks if notification message queue has been created or not.<br />b.&nbsp;Create a dead letter queue to store the message which could not be processed by the worker role and wait until any queue is created in the storage account.<br />c.&nbsp;If notification message queue exists then keep checking if there is any notification message in the queue after specified time interval.<br />d.&nbsp;If there is any message in the queue, worker role will pick it up for processing.<br />e.&nbsp;Deserialize the message in the Notification entity and get message details.<br />f.&nbsp;Check the notification message to process it ; if it contains twitter authorization key, then call twitter notification service from the webrole to put status on specified twitter account.<br />g.&nbsp;If the notification message contains an SMS message, then call SMS notification service from webrole to send SMS to specified&nbsp;mobile number.<br />h.&nbsp;If the notification message contains e-mail IDs, then call Live notification service from webrole to send e-mail to specified e-mail IDs.<br />i.&nbsp;If any of the above steps fails then get the error/exception details and write it to Azure table storage.</p></blockquote><p>3.&nbsp;Sending messages through various notification services to the participants</p><blockquote><p>a.&nbsp;Notification services are RESTful WCF services created in the webrole for various notification mechanisms in MYOC. Whenever a service is called with valid inputs, it will call the concerned method to send invite notification to the participants.<br />b.&nbsp;Follow the link to know how a tweet will be sent to a specified twitter account<br />c.&nbsp;SMS service will send SMS to specified&nbsp;mobile numbers<br />d.&nbsp;Follow the link to know how an e-mail will be sent to specified e-mail IDs<br />e.&nbsp;If any of the above steps fails then get the error/exception details and write it to Azure table storage.</p></blockquote><p><img src="http://www.infosysblogs.com/microsoft/Notification-Detail.jpg" border="0" /></p><p>Offloading&nbsp;the notification transaction to a&nbsp;background process has helped in improving the overall throughput of the application. Architects and developers need to keep an eye&nbsp;on scenarios which exhibit such characteristics in their overall process and simultaneously design to offload such activities to an offline mode</p>]]>
    </content>
</entry>
<entry>
    <title>Win 7 - Multi Touch</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/microsoft/2009/12/win_7_multi_touch.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=466" title="Win 7 - Multi Touch" />
    <id>tag:www.infosysblogs.com,2009:/microsoft//1.466</id>
    
    <published>2009-12-10T09:15:48Z</published>
    <updated>2009-12-10T09:24:44Z</updated>
    
    <summary>Win 7 - Multi Touch</summary>
    <author>
        <name>Atul Gupta</name>
        
    </author>
            <category term=".net 4.0" />
            <category term="Microsoft Products &amp; Technologies" />
            <category term="Win 7" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/microsoft/">
        <![CDATA[<p>In <a href="http://www.infosysblogs.com/microsoft/2009/11/win_7_touch.html" target="_blank">my earlier blog</a> I had touched upon some high level concepts on touch support for applications, that is now available with Windows 7. In this I will spend some time on multi-touch and few other points around support as part of .NET and on Surface. </p><p>So when we say multi-touch, what does it really mean? This is also where the basic touch to mouse promotion and real multi-touch differ. Multi-touch means the ability to detect multiple touch points at the same time on the touch hardware and be able to program against each of them independently. In a mouse driven world, there is single point of click and hence controls really respond one at a time. With multi-touch however we now are capable of programming against multiple controls at the same time. While most multi-touch samples/demos show usage of multiple fingers, what you should realize is that it is now capable of supporting multiple people interaction. A behavior, which MS Surface, demonstrated very well.</p>]]>
        <![CDATA[<p>In my earlier blog I talked about points around WM_TOUCH and WM_GESTURE. An important addition over this in WPF 4.0 is the manipulation events. These essentially help in performing pan, zoom and rotate type of behaviors. The manipulation events are fired if the control requests for the same by setting its IsManipulationEnabled property to true. Programmatically you then typically handle the delta manipulation events and manage the transforms on the specific control. These will be scale transform for zoom, translate transform for panning and rotation transform for rotate. Check <a href="http://blogs.msdn.com/jaimer/archive/2009/11/04/introduction-to-wpf-4-multitouch.aspx" target="_blank">here</a>&nbsp;for some details and samples on these concepts. </p><p>In the PDC 2009, MS also talked about how Surface controls and WPF controls are headed for common underlying code for supporting all these kind of behaviors. Few months back in one of our discussions around future of Surface we were talking about common issues people are facing with Surface and the 3 prominent ones were</p><ol><li>Cost of surface table</li><li>Surface is horizontal while most apps would prefer a vertical display</li><li>Restrictions on access to Surface SDK</li></ol><p>It is really interesting to note that MS is addressing all of these and you might want to check the announcements made during PDC. See <a href="http://microsoftpdc.com/Sessions/CL27" target="_blank">this video</a>. </p><p>While all this is definitely interesting and exciting, to me this also very much seems like the <a href="http://www.gartner.com/pages/story.php.id.8795.s.8.jsp" target="_blank">Gartner Hype cycle</a> (Also see <a href="http://en.wikipedia.org/wiki/Hype_cycle" target="_blank">here</a>). As the technology innovations are happening, in the initial days/months, there will be a tendency to try this out for just about any application. There, however will be challenges and some of points listed by Bill Buxton in his blog <a href="http://www.billbuxton.com/multitouchOverview.html" target="_blank">here</a>&nbsp;highlight them. I personally like the statement he makes</p><p>&quot;<em>if the finger was the ultimate device, why didn&rsquo;t Picasso and Rembrandt restrict themselves to finger painting?&quot;</em></p><p>This very clearly brings out an aspect that there will always be specialized devices and not all can be replaced by touch and natural gestures just because they are most efficient to use. Another simple example will be the speed of typing vs. the speed of writing and hence any application that uses text input even in moderate sense, will continue to require keyboards. The keyboards may become online/virtual, but that does impacts the real estate available to put other application specific items. </p><p>Finally, I still do believe that innovations will keep happening and we will definitely see more and more touch hardware and such applications.</p>]]>
    </content>
</entry>
<entry>
    <title>Dynamics Unbound - The ‘Clouds’ in ‘Azure’ Sky</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/microsoft/2009/12/dynamics_unbound_the_clouds_in.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=465" title="Dynamics Unbound - The ‘Clouds’ in ‘Azure’ Sky" />
    <id>tag:www.infosysblogs.com,2009:/microsoft//1.465</id>
    
    <published>2009-12-10T08:44:42Z</published>
    <updated>2009-12-10T11:06:53Z</updated>
    
    <summary>Azure is the hue that is halfway between blue and cyan and is generally used for clear skies. With the cloud computing services being provided through the Microsoft Azure platform; am I missing a point. I guess Azure is the...</summary>
    <author>
        <name>Sachin Bery</name>
        
    </author>
            <category term="Microsoft Dynamics" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/microsoft/">
        <![CDATA[Azure is the hue that is halfway between blue and cyan and is generally used for clear skies. With the cloud computing services being provided through the Microsoft Azure platform; am I missing a point. I guess Azure is the platform where the clouds can venture out and in this case in a positive way provide a lot of options to Developers, ISVs, SIs, IT teams and business community at large to end of day lead to &ldquo;Incremental benefits&rdquo; for all stakeholders viz. a familiar development experience, on-demand scalability and reduced time-to-market for applications. Microsoft Dynamics has also jumped on this bandwagon and this is what is the most interesting part &ndash; as they are one of the early vendors to talk about a hybrid environment of &lsquo;on-premise&rsquo; and &lsquo;cloud&rsquo; and certain scenarios in which this can work together.]]>
        <![CDATA[<p><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">Before going into the details, it&rsquo;s good to see at a high level what this means. <a href="http://www.microsoft.com/windowsazure/products/">Microsoft site for Azure</a>&nbsp; has the diagram as shown below </span></p><p><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><img width="637" height="203" title="Azure Architecture" align="middle" alt="Azure Architecture" src="http://www.microsoft.com/windowsazure/img/products-overview-infographic.gif" border="0" /></span></p><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><p class="MsoNormal" style="margin: 0in 0in 10pt">These offerings are from 3 products &ndash; </p><ol><li><div class="MsoNormal" style="margin: 0in 0in 10pt"><strong>Windows Azure</strong> - providing a scalable environment with compute, storage, hosting, and management capabilities. It links to on-premises applications with secure connectivity, messaging, and identity management.</div></li><li><div class="MsoNormal" style="margin: 0in 0in 10pt"><strong>SQL Azure</strong> - a Relational Database for the Cloud. </div></li><li><div class="MsoNormal" style="margin: 0in 0in 10pt"><strong>AppFabric</strong> - makes it simpler to connect on-premises applications with the Cloud. AppFabric offers identity management and firewall friendly messaging to protect your assets by enabling secure connectivity and messaging between on-premises IT applications and cloud-based services.</div></li></ol><p class="MsoNormal" style="margin: 0in 0in 10pt">Given these tools are available the possibilities are simply endless. Microsoft Dynamics team has published the case for payment services using Microsoft Dynamics. You can check the details <a href="http://www.microsoft.com/dynamics/en/us/erp-online-services.aspx" target="_blank">here</a>&nbsp; . The idea here is that credit card processing need not be done manually (with a credit card terminal) and the invoices updated back in Microsoft Dynamics AX. One can simply call the payment service provided through the application (after a one time registration) and process the credit card. Even if the user has an existing account; they can simply select a gateway provider during registration and get the process going as it was earlier but in a much integrated and error-free environment. And of course this is completely compliant with PCI (Payment Card Industry) DSS (Data Security Standards). Due to tight integration with AX, all this information is still available in AX at the customer level helping in reviewing the customer order and payment history and the associated transactions.</p><p class="MsoNormal" style="margin: 0in 0in 10pt">Thinking beyond this &ndash; this architecture can be used for any business process that needs an actor/activity outside the core ERP application which is in-premise. This can be around event management, GIS data integration, Maps and related services, B2B business needs, collaboration with dissimilar systems (Vendor and Supplier Collaboration) using a common &lsquo;intermediary&rsquo; cloud-based application, campaigns on online portals moving the leads to backend systems, placement agencies specializing in outsourced hiring, customer feedback collection, organizational level messaging (SMS, etc.) and so on.</p><p class="MsoNormal" style="margin: 0in 0in 10pt">It&rsquo;s a matter of applying creative thinking to define the possibility from the SI&rsquo;s perspective and it&rsquo;s a matter of identifying the business need from the client&rsquo;s perspective. The place where the two meet we will have a game-changing solution in place. This is an opportunity and its implementation a solution to many of the business needs. </p><p class="MsoNormal" style="margin: 0in 0in 10pt">From a pricing point of view, Microsoft has provided a number of options. These are detailed <a href="http://www.microsoft.com/windowsazure/offers/popup.aspx?lang=en&amp;locale=en-US&amp;offer=COMPARE_PUBLIC" target="_blank">here</a> . These include both &ldquo;Pay-as-you-go&rdquo; and &ldquo;Fixed-Price-Fixed-Capacity&rdquo; options. There are some special introductory free offers till 30-Jun-2010 as well.</p><p class="MsoNormal" style="margin: 0in 0in 10pt"><strong>May we say - Let the &lsquo;dynamics&rsquo; &lsquo;clouds&rsquo; float in the &lsquo;Azure&rsquo; sky!</strong></p><p>&nbsp;</p></span>]]>
    </content>
</entry>

</feed> 

