<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Arman Kurtagic&#039;s Weblog</title>
	<atom:link href="http://dotnetninja.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dotnetninja.wordpress.com</link>
	<description>&#34;Making the simple complicated is commonplace, making the complicated simple, awesomely simple, that&#039;s creativity.&#34;</description>
	<lastBuildDate>Thu, 26 May 2011 12:48:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='dotnetninja.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/9ef19c2d7a81a201f34c3c270260a0d5?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Arman Kurtagic&#039;s Weblog</title>
		<link>http://dotnetninja.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://dotnetninja.wordpress.com/osd.xml" title="Arman Kurtagic&#039;s Weblog" />
	<atom:link rel='hub' href='http://dotnetninja.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Securing WCF REST Service with Azure AppFabric Access Control Service and OAuth(WRAP)</title>
		<link>http://dotnetninja.wordpress.com/2010/11/12/securing-wcf-rest-service-with-azure-appfabric-access-control-service-and-oauth/</link>
		<comments>http://dotnetninja.wordpress.com/2010/11/12/securing-wcf-rest-service-with-azure-appfabric-access-control-service-and-oauth/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 09:42:00 +0000</pubDate>
		<dc:creator>dotnetninja</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[Windows Azure]]></category>

		<guid isPermaLink="false">https://dotnetninja.wordpress.com/?p=314</guid>
		<description><![CDATA[Introduction There are a lots of code examples of how to create REST services but there are few example of how to secure them. As security is one of the most important things when building any kind of system this should not be undermined. Most of those securing features when using WCF and REST are [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=314&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3>Introduction</h3>
<p>There are a lots of code examples of how to create REST services but there are few example of how to secure them. As security is one of the most important things when building any kind of system this should not be undermined. Most of those securing features when using WCF and REST are using SSL, some kind of custom implementations and/or using ASP.NET features. There were some attempts to create OAUTH channels for WCF REST services and there are many types of implementations out there nut the question is what to use, but this is not easy and it is very confusing. How can I (very simple) use for example OAUTH for my WCF REST services?</p>
<p>Handling security in RESTful applications can be done using transport security (SSL), message security (encrypting), authentication (signing messages, tokens) and authorization (which is controlled by service).</p>
<p>When using token based authentication (OAUTH) token is retrieved from service by sending user name and password to the service, in some cases one will also send secret key and/or application key.</p>
<p>If one will use WCF data services (formerly Astoria, ADO.NET data service) this could be done relatively easy but in this case we will try to create an secure WCF REST service using Azure AppFabric Access Control Service.</p>
<p>As we will use Azure AppFabric Access Control here are key features listed from codeplex, <a href="http://msdn.microsoft.com/en-us/library/ee732536.aspx" target="_blank">AppFabric Access Control</a>:</p>
<ul>
<li>Integrates with Windows Identity Foundation (WIF) and tooling</li>
<li>Out-of-the-box support for popular web identity providers including: Windows Live ID, Google, Yahoo, and Facebook</li>
<li>Out-of-the-box support for Active Directory Federation Server v2.0</li>
<li>Support for OAuth 2.0 (draft 10), WS-Trust, and WS-Federation protocols</li>
<li>Support for the SAML 1.1, SAML 2.0, and Simple Web Token (SWT) token formats</li>
<li>Integrated and customizable Home Realm Discovery that allows users to choose their identity provider</li>
<li>An OData-based Management Service that provides programmatic access to ACS configuration</li>
<li>A Web Portal that allows administrative access to ACS configuration</li>
</ul>
<h3>Implementation</h3>
<p>Steps that we will perform will look like this:</p>
<ol>
<li>Configure Windows Azure Access Control via its <a href="https://portal.appfabriclabs.com/Default.aspx" target="_blank">portal</a>.</li>
<li>Create “secure” local WCF REST service using WCF REST service template and implement custom <a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.serviceauthorizationmanager.aspx" target="_blank">ServiceAuthorizationManager</a>.</li>
<li>Create test client that will authenticate and retrieve token from Access Control Service, which will be then used by WCF REST service to validate calls. This can be viewed in figure bellow.</li>
</ol>
<p><a href="http://dotnetninja.files.wordpress.com/2010/11/scenarion.png"><img style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;padding-top:0;border-width:0;" title="image" src="http://dotnetninja.files.wordpress.com/2010/11/scenarion.png?w=450&#038;h=279" border="0" alt="image" width="450" height="279" /></a></p>
<ol>
<pre>Figure 1: Secure WCF REST service with ACS.</pre>
</ol>
<h4>Configure Windows Azure Access Control (Define rules, keys, claims)</h4>
<p>Administrator will register claims and keys with ACS management service or through Management Portal. ACS will be the one who takes care of safety and will sign all tokens with key that is generated in the ACS.<br />
WCF service has key which is used to validate token received from the client.</p>
<p>I will go through all step to configure ACS via management portal, this can also be viewed in the ACS labs on the codeplex, otherwise go to <a href="#Step2">step 2.</a></p>
<ol>
<li>Log in to <a href="https://portal.appfabriclabs.com">https://portal.appfabriclabs.com</a><br />
<a href="http://dotnetninja.files.wordpress.com/2010/11/acs1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:4px auto 6px;" title="ACS1" src="http://dotnetninja.files.wordpress.com/2010/11/acs1_thumb.png?w=409&#038;h=129" border="0" alt="ACS1" width="409" height="129" /></a></li>
<li>By pressing project name one will be able to Add Service NameSpace (new page).<br />
<a href="http://dotnetninja.files.wordpress.com/2010/11/acs2.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:4px 0;" title="ACS2" src="http://dotnetninja.files.wordpress.com/2010/11/acs2_thumb.png?w=443&#038;h=253" border="0" alt="ACS2" width="443" height="253" /></a></li>
<li>Then pressing Access Control link<br />
<a href="http://dotnetninja.files.wordpress.com/2010/11/acs3.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:4px 0 6px;" title="ACS3" src="http://dotnetninja.files.wordpress.com/2010/11/acs3_thumb.png?w=447&#038;h=238" border="0" alt="ACS3" width="447" height="238" /></a></li>
<li>By pressing Manage button we will be redirected to the Access Control Service main menu. Here we can administrate TOKENS, certificates, groups, claims, and so on.<br />
<a href="http://dotnetninja.files.wordpress.com/2010/11/acs4.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:4px 0 6px;" title="ACS4" src="http://dotnetninja.files.wordpress.com/2010/11/acs4_thumb.png?w=450&#038;h=212" border="0" alt="ACS4" width="450" height="212" /></a></li>
<li>Press  <strong>Relaying Party Applications</strong> and <strong>Add Relaying Party Application</strong> to configure Relaying party (WCF REST Service).<br />
Here we are going to configure service endpoint which will be “secure”.<br />
a) Write Name of the Service under Name.<br />
b) Write URL of the service that will be “secure” (in our case local service)<br />
c) Under token format I have changed SAML 2.0 to SWT (optional).<br />
d) Under Identity providers unselect Windows Live ID<br />
e) Under Token Signing Options press generate to generate new Token signing key, which will be used by our service, so you can copy now this token or take it later.<br />
<a href="http://dotnetninja.files.wordpress.com/2010/11/acs12.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="ACS12" src="http://dotnetninja.files.wordpress.com/2010/11/acs12_thumb.png?w=447&#038;h=468" border="0" alt="ACS12" width="447" height="468" /></a></li>
<li>Press Save and go back to main menu (Look at image under 4.). Press <strong>Rule Groups</strong> and there should be Default Rule Group for WCF Rest Azure Service(one we created in previous step).<br />
a) Press  Default Rule Group for WCF Rest Azure Service (or you relaying part name).<br />
<a href="http://dotnetninja.files.wordpress.com/2010/11/acs13.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:4px 0 8px;" title="ACS13" src="http://dotnetninja.files.wordpress.com/2010/11/acs13_thumb.png?w=458&#038;h=144" border="0" alt="ACS13" width="458" height="144" /></a><br />
a) Press <strong>Add Rule<br />
<a href="http://dotnetninja.files.wordpress.com/2010/11/acs14.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:4px 0 6px;" title="ACS14" src="http://dotnetninja.files.wordpress.com/2010/11/acs14_thumb.png?w=459&#038;h=235" border="0" alt="ACS14" width="459" height="235" /></a></strong><br />
b) After pressing Add Rule you will be redirected to another page there you can choose <strong>Access Control Service</strong> under <strong>Claim Issuer</strong>. All other can have default values.<br />
<a href="http://dotnetninja.files.wordpress.com/2010/11/acs15.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:4px 0 6px;" title="ACS15" src="http://dotnetninja.files.wordpress.com/2010/11/acs15_thumb.png?w=457&#038;h=513" border="0" alt="ACS15" width="457" height="513" /></a></li>
<li>Last step if to create an Identity for service that client(consumer) will be using. In main menu (under 4.) press <strong>Service Identities</strong> and then <strong>Add Service Identity</strong>. This service identity name will be then used as a login name in the client code. Press Save.<br />
<a href="http://dotnetninja.files.wordpress.com/2010/11/acs10.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:4px 0 6px;" title="ACS10" src="http://dotnetninja.files.wordpress.com/2010/11/acs10_thumb.png?w=464&#038;h=234" border="0" alt="ACS10" width="464" height="234" /></a></li>
<li>Finally Press Add Credentials and write name and password then save.<br />
<a href="http://dotnetninja.files.wordpress.com/2010/11/acs11.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:4px 0 6px;" title="ACS11" src="http://dotnetninja.files.wordpress.com/2010/11/acs11_thumb.png?w=467&#038;h=326" border="0" alt="ACS11" width="467" height="326" /></a></li>
</ol>
<p>Now we can work with our service code. This configuration can also be done programmatically. More information can be found at <a href="http://acs.codeplex.com">http://acs.codeplex.com</a>.</p>
<h4><a name="Step2"></a>Creating Secure WCF REST Service</h4>
<p>Create new Windows Azure Cloud Service and add Wcf Web Role. I have used new WCF REST template for that.</p>
<p>In <strong>Web.config</strong> add values for:</p>
<ul>
<li>Service Namespace (which we created under point 2), in my case armanwcfrest.</li>
<li>Hostname for acs.</li>
<li>Signing key which we have generated (under point 5-e)</li>
</ul>
<p><pre class="brush: xml;">
&lt;appSettings&gt;
    &lt;add key=&quot;AccessControlHostName&quot; value=&quot;accesscontrol.appfabriclabs.com&quot;/&gt;
    &lt;add key=&quot;AccessControlNamespace&quot; value=&quot;armanwcfrest&quot;/&gt;
    &lt;add key=&quot;IssuerSigningKey&quot; value=&quot;yourkey&quot;/&gt;
  &lt;/appSettings&gt;
</pre></p>
<p>Now we need to create custom Authorization manager to authenticate each call to our service. For that purpose we need to create custom class and inherit from <strong>SecurityAuthorizationManager. </strong></p>
<p>ServiceAuthorizationManager is called once for each message that is coming to the service (message that service is going to process). ServiceAuthorizationManager will determine if a user can perform operation <span style="text-decoration:underline;">before</span> the deserialization or method invocation occurs on service instance. For that it is more preferable than using PrincipalPermission which will invoke method and why do that if the user will be rejected. Another advantage of using ServiceAuthorizationManager is that can separate service business logic from authorization logic.</p>
<p>This custom class will do following things:</p>
<ul>
<li>Override CheckAccessCore to check for Authorization HttpHeader</li>
<li>Check if that header begins with WRAP</li>
<li>Take access_token value and use TokenValidator class (help class provided in code) to validate token.</li>
<li>Return true if token validation succeded or false if not.</li>
</ul>
<p><pre class="brush: csharp;">
public class AccessControlServiceAuthorizationManager : ServiceAuthorizationManager
    {
        string serviceNamespace = ConfigurationManager.AppSettings.Get(&quot;AccessControlNamespace&quot;);
        string acsHostName = ConfigurationManager.AppSettings.Get(&quot;AccessControlHostName&quot;);
        string trustedTokenPolicyKey = ConfigurationManager.AppSettings.Get(&quot;IssuerSigningKey&quot;);
        string trustedAudience = &quot;http://localhost:81/Service1/&quot;;

        protected override bool CheckAccessCore(OperationContext operationContext)
        {
            string headerValue = WebOperationContext.Current.IncomingRequest.Headers[HttpRequestHeader.Authorization];

            // check that a value is there
            if (string.IsNullOrEmpty(headerValue))
            {
                GenerateErrorResponse();
                return false;
            }
            // check that it starts with 'WRAP'
            if (!headerValue.StartsWith(&quot;WRAP &quot;))
            {
                GenerateErrorResponse();
                return false;
            }
            string[] nameValuePair = headerValue.Substring(&quot;WRAP &quot;.Length).Split(new char[] { '=' }, 2);

            if (nameValuePair.Length != 2 ||
                nameValuePair[0] != &quot;access_token&quot; ||
                !nameValuePair[1].StartsWith(&quot;\&quot;&quot;) ||
                !nameValuePair[1].EndsWith(&quot;\&quot;&quot;))
            {
                GenerateErrorResponse();
                return false;
            }

            // trim off the leading and trailing double-quotes
            string token = nameValuePair[1].Substring(1, nameValuePair[1].Length - 2);

            // create a token validator
            TokenValidator validator = new TokenValidator(
                this.acsHostName,
                this.serviceNamespace,
                this.trustedAudience,
                this.trustedTokenPolicyKey);

            // validate the token
            if (!validator.Validate(token))
            {
                GenerateErrorResponse();
                return false;
            }

            //VALID!
            return true;
        }
        public void GenerateErrorResponse()
        {
        //    WebOperationContext.Current.OutgoingResponse.StatusCode =
        //HttpStatusCode.Unauthorized;
        //    WebOperationContext.Current.OutgoingResponse.StatusDescription = &quot;Unauthorized&quot;;
        }
    }
</pre></p>
<p>In <strong>Global.asax.cs</strong> I have created <strong>SecureWebServiceHostFactory</strong> that will be using <strong>AccessControlServiceAuthorizationManager</strong> class.</p>
<p>Global.asax.cs</p>
<p><pre class="brush: csharp;">
 public class Global : HttpApplication
    {
        void Application_Start(object sender, EventArgs e)
        {
            RegisterRoutes();
        }

        private void RegisterRoutes()
        {
            // Edit the base address of Service1 by replacing the &quot;Service1&quot; string below
            var securewebServiceHostFactory = new SecureWebServiceHostFactory();
            RouteTable.Routes.Add(new ServiceRoute(&quot;Service1&quot;, securewebServiceHostFactory, typeof(Service1)));
        }
    }
    public class SecureWebServiceHostFactory : WebServiceHostFactory
    {
        protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
        {
            ServiceHost host = base.CreateServiceHost(serviceType, baseAddresses);
            host.Authorization.ServiceAuthorizationManager = new AccessControlServiceAuthorizationManager();
            return host;
        }

        public override ServiceHostBase CreateServiceHost(string constructorString, Uri[] baseAddresses)
        {
            ServiceHostBase host = base.CreateServiceHost(constructorString, baseAddresses);
            host.Authorization.ServiceAuthorizationManager = new AccessControlServiceAuthorizationManager();
            return host;
        }
    }
</pre></p>
<h4>Client Code</h4>
<ol>
<li>Client application will retrive token from Azure AppFabric Access Control Service for specific adress (URL).</li>
<li>It will send message to our service with token inside Authorization header.</li>
<li>Hopefully receive response.</li>
</ol>
<p>Client.cs</p>
<p><pre class="brush: csharp;">
        static string accessControlHostName = ConfigurationManager.AppSettings.Get(&quot;AccessControlHostName&quot;);
        static string accessControlNamespace = ConfigurationManager.AppSettings.Get(&quot;AccessControlNamespace&quot;);

        static void Main(string[] args)
        {
            Console.WriteLine(&quot;\nPress Enter&quot;);
            string valueToReverse = Console.ReadLine();

            string token = GetTokenFromACS(&quot;http://localhost:81/Service1/&quot;);
            string serviceResponse = SendMessageToService(token);

            Console.WriteLine(&quot;Service responded with: {0}\n&quot;, serviceResponse);
            Console.WriteLine(&quot;Press  to exit&quot;);
            Console.ReadLine();
        }
        private static string SendMessageToService(string token)
        {
            WebClient client = new WebClient();
            client.BaseAddress = ConfigurationManager.AppSettings.Get(&quot;ServiceAddress&quot;) + &quot;123&quot;;
            string headerValue = string.Format(&quot;WRAP access_token=\&quot;{0}\&quot;&quot;, token);

            client.Headers.Add(&quot;Authorization&quot;, headerValue);

            var serviceResponseBytes = client.DownloadString(String.Empty);
            return serviceResponseBytes;
        }

        private static string GetTokenFromACS(string scope)
        {
            string wrapPassword = ConfigurationManager.AppSettings.Get(&quot;WrapPassword&quot;);
            string wrapUsername = ConfigurationManager.AppSettings.Get(&quot;WrapUsername&quot;);

            // request a token from ACS
            WebClient client = new WebClient();
            client.BaseAddress = string.Format(&quot;https://{0}.{1}&quot;, accessControlNamespace, accessControlHostName);

            NameValueCollection values = new NameValueCollection();
            values.Add(&quot;wrap_name&quot;, wrapUsername);
            values.Add(&quot;wrap_password&quot;, wrapPassword);
            values.Add(&quot;wrap_scope&quot;, scope);

            byte[] responseBytes = client.UploadValues(&quot;WRAPv0.9/&quot;, &quot;POST&quot;, values);

            string response = Encoding.UTF8.GetString(responseBytes);

            Console.WriteLine(&quot;\nreceived token from ACS: {0}\n&quot;, response);

            return HttpUtility.UrlDecode(
                response
                .Split('&amp;')
                .Single(value =&gt; value.StartsWith(&quot;wrap_access_token=&quot;, StringComparison.OrdinalIgnoreCase))
                .Split('=')[1]);

        }
</pre></p>
<p><strong>Fiddler View</strong> client requesting token</p>
<p><a href="http://dotnetninja.files.wordpress.com/2010/11/fiddler11.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="Fiddler1" src="http://dotnetninja.files.wordpress.com/2010/11/fiddler1_thumb.png?w=520&#038;h=305" border="0" alt="Fiddler1" width="520" height="305" /></a></p>
<p>Client call with Authorization Token and response from the service.</p>
<p><a href="http://dotnetninja.files.wordpress.com/2010/11/fiddler21.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="Fiddler2" src="http://dotnetninja.files.wordpress.com/2010/11/fiddler2_thumb.png?w=523&#038;h=311" border="0" alt="Fiddler2" width="523" height="311" /></a></p>
<h4>Resources:</h4>
<p>More information about OAUTH, identity and access control in the cloud can be found in Vittorio Bertocci’s <a href="http://player.microsoftpdc.com/Session/0099d03d-bbc4-4612-87e1-f7d4da8b8a78" target="_blank">session</a> at PDC 2010.</p>
<p>Documentation about <a href="http://tools.ietf.org/wg/oauth/" target="_blank">OAUTH</a>.</p>
<p>Rest libraries <a href="http://hammock.codeplex.com/" target="_blank">Hammonck</a>, <a href="https://github.com/johnsheehan/RestSharp" target="_blank">RestSharp</a>, <a href="http://wcf.codeplex.com" target="_blank">WCF Web API</a>.</p>
<p>Source Code: <a title="RestService" href="http://cid-3278833da5fe889b.office.live.com/self.aspx/Code/RestService.zip">RestService</a></p>
<h6><strong>Note:</strong> Many thanks to my friend <a href="http://herbjorn.wordpress.com/">Herbjörn </a>for reviewing this post. Do not miss his presentation on <a href="http://azuresummit.cloudapp.net/Home/Agenda">Azure Summit</a> 17-18 Nov (2010)</h6>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dotnetninja.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dotnetninja.wordpress.com/314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dotnetninja.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dotnetninja.wordpress.com/314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dotnetninja.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dotnetninja.wordpress.com/314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dotnetninja.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dotnetninja.wordpress.com/314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dotnetninja.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dotnetninja.wordpress.com/314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dotnetninja.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dotnetninja.wordpress.com/314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dotnetninja.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dotnetninja.wordpress.com/314/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=314&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dotnetninja.wordpress.com/2010/11/12/securing-wcf-rest-service-with-azure-appfabric-access-control-service-and-oauth/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebe5fbe0940176ce99030b2f64a8749f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dotnetninja</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2010/11/scenarion.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2010/11/acs1_thumb.png" medium="image">
			<media:title type="html">ACS1</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2010/11/acs2_thumb.png" medium="image">
			<media:title type="html">ACS2</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2010/11/acs3_thumb.png" medium="image">
			<media:title type="html">ACS3</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2010/11/acs4_thumb.png" medium="image">
			<media:title type="html">ACS4</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2010/11/acs12_thumb.png" medium="image">
			<media:title type="html">ACS12</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2010/11/acs13_thumb.png" medium="image">
			<media:title type="html">ACS13</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2010/11/acs14_thumb.png" medium="image">
			<media:title type="html">ACS14</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2010/11/acs15_thumb.png" medium="image">
			<media:title type="html">ACS15</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2010/11/acs10_thumb.png" medium="image">
			<media:title type="html">ACS10</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2010/11/acs11_thumb.png" medium="image">
			<media:title type="html">ACS11</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2010/11/fiddler1_thumb.png" medium="image">
			<media:title type="html">Fiddler1</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2010/11/fiddler2_thumb.png" medium="image">
			<media:title type="html">Fiddler2</media:title>
		</media:content>
	</item>
		<item>
		<title>IOC (Inversion Control) With XAML</title>
		<link>http://dotnetninja.wordpress.com/2010/02/23/ioc-inversion-control-with-xaml/</link>
		<comments>http://dotnetninja.wordpress.com/2010/02/23/ioc-inversion-control-with-xaml/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 22:07:01 +0000</pubDate>
		<dc:creator>dotnetninja</dc:creator>
				<category><![CDATA[IOC]]></category>
		<category><![CDATA[Prism]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[XAML]]></category>

		<guid isPermaLink="false">http://dotnetninja.wordpress.com/?p=269</guid>
		<description><![CDATA[Today I have read an post about IOC and XAML or how to use IOC with XAML. Original post was on Rob Relyea&#8217;s blog with a couple of links to other approaches and resources. In that post there was nothing about MVVM (model view view model) and my first thought was to somehow use IOC [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=269&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I have read an post about IOC and XAML or how to use IOC with XAML. Original post was on Rob Relyea&#8217;s blog with a couple of links to other approaches and resources. In that post there was nothing about MVVM (model view view model) and my first thought was to somehow use IOC to bind my viewmodels to the source in XAML.</p>
<p>After searching the web I did not found anything simple and straight forward to use. So that leads me to create something &#8220;simple&#8221; and possible useful.</p>
<p>Basic idea is to bind DataContext of the View to the ViewModel contract. Something like this, and magically resolve correct viewmodel implementation.</p>
<p><pre class="brush: xml; highlight: [6];">
&lt;UserControl x:Class=&quot;Module2.Views.LogListView&quot;
xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;
xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;
xmlns:viewmodels=&quot;clr-namespace:ModuleA.Log.ViewModels;assembly=ModuleA&quot;&gt;
&lt;UserControl.DataContext&gt;
&lt;viewmodels:ILogListViewModel/&gt;
&lt;/UserControl.DataContext&gt;
...
&lt;Grid&gt;
        &lt;ListBox ItemsSource=&quot;{Binding ApplicationLogs}&quot;&gt;
...
</pre></p>
<p>Simplest way to do this is to create an Converter (IValueConverter), bind source to the interface and resolve the implementation by using the converter.</p>
<p><pre class="brush: csharp; highlight: [15];">
public class ViewModelResolverConverter : IValueConverter
  {
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {

      if (value == null)
        throw new ArgumentNullException(&quot;value&quot;);

      IUnityContainer unityContainer = Module.MyContainer;

      var typeToResolve=Type.GetType(value.ToString());
      if(typeToResolve==null)
        return DependencyProperty.UnsetValue;

      var resolvedViewModel = unityContainer.Resolve(typeToResolve);
      if(resolvedViewModel == null)
        return DependencyProperty.UnsetValue;
      return ret;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
      throw new NotImplementedException();
    }
  }
</pre></p>
<p>In this case I am using Unity from Microsoft pattern and practices but you could use any type of the IOC.</p>
<p>ViewModel could look something like this</p>
<p><pre class="brush: csharp;">
public partial class LogListAViewModel:BaseViewModel, ILogListViewModel
  {
    public LogListAViewModel()
    {
       ...
    }

    private bool _isSelected = false;
    public bool IsSelected
    {
      get { return _isSelected; }
      set
      {
        if (_isSelected != value)
        {
          _isSelected = value;
          OnPropertyChanged(()=&gt;IsSelected);
        }
      }
    }
    public string Info
    {
      get { return &quot;Log View&quot;; }
    }
...
  }
</pre></p>
<p>And finally XAML</p>
<p><pre class="brush: xml; highlight: [10,11];">
&lt;UserControl x:Class=&quot;Module2.Views.LogListView&quot;
xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;
xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;
xmlns:converter=&quot;clr-namespace:ModuleA.Converters&quot;
xmlns:viewmodelscontracts=&quot;clr-namespace:ModuleA.ViewModelContracts;assembly=ModuleA&quot;&gt;
&lt;UserControl.Resources&gt;
&lt;converter:ViewModelResolverConverter x:Key=&quot;viewModelConverter&quot;/&gt;
&lt;/UserControl.Resources&gt;
&lt;UserControl.DataContext&gt;
&lt;Binding Source=&quot;{x:Type viewmodelscontracts:ILogListViewModel}&quot;
             Converter=&quot;{StaticResource viewModelConverter}&quot; /&gt;

&lt;/UserControl.DataContext&gt;
...
&lt;Grid&gt;
        &lt;ListBox ItemsSource=&quot;{Binding ApplicationLogs}&quot;&gt;
...

</pre></p>
<p>As the final word, I prefer use binding view to viewmodel mainly to not end with application that is unpredictable, too loosely coupled and fragile, but in some cases this could be useful.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dotnetninja.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dotnetninja.wordpress.com/269/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dotnetninja.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dotnetninja.wordpress.com/269/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dotnetninja.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dotnetninja.wordpress.com/269/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dotnetninja.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dotnetninja.wordpress.com/269/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dotnetninja.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dotnetninja.wordpress.com/269/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dotnetninja.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dotnetninja.wordpress.com/269/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dotnetninja.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dotnetninja.wordpress.com/269/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=269&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dotnetninja.wordpress.com/2010/02/23/ioc-inversion-control-with-xaml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebe5fbe0940176ce99030b2f64a8749f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dotnetninja</media:title>
		</media:content>
	</item>
		<item>
		<title>Cloud Patterns in Windows Azure</title>
		<link>http://dotnetninja.wordpress.com/2010/01/07/cloud-patterns-in-windows-azure/</link>
		<comments>http://dotnetninja.wordpress.com/2010/01/07/cloud-patterns-in-windows-azure/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 10:57:00 +0000</pubDate>
		<dc:creator>dotnetninja</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[SOA Design Patterns]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud Patterns]]></category>
		<category><![CDATA[SOA cloud patterns]]></category>

		<guid isPermaLink="false">http://dotnetninja.wordpress.com/?p=266</guid>
		<description><![CDATA[Finally article about SOA design patterns with Windows Azure got published. Some of the coolest part with REST implementation (WCF REST starter kit preview 2, idempotent capability with etag,..) was left out but I will blogg try to about it and there is also REST implementation in the source code for the article which can [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=266&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Finally article about SOA design patterns with Windows Azure got published. Some of the coolest part with REST implementation (WCF REST starter kit preview 2, idempotent capability with etag,..) was left out but I will blogg try to about it and there is also REST implementation in the source code for the article which can be downloaded <a title="here" href="http://code.msdn.microsoft.com/mag201001Azure/Release/ProjectReleases.aspx?ReleaseId=3715" target="_self">here</a>.</p>
<p>Whole article can be found <a href="http://msdn.microsoft.com/en-us/magazine/ee335719.aspx" target="_self">http://msdn.microsoft.com/en-us/magazine/ee335719.aspx</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dotnetninja.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dotnetninja.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dotnetninja.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dotnetninja.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dotnetninja.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dotnetninja.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dotnetninja.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dotnetninja.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dotnetninja.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dotnetninja.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dotnetninja.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dotnetninja.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dotnetninja.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dotnetninja.wordpress.com/266/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=266&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dotnetninja.wordpress.com/2010/01/07/cloud-patterns-in-windows-azure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebe5fbe0940176ce99030b2f64a8749f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dotnetninja</media:title>
		</media:content>
	</item>
		<item>
		<title>Virtual Earth Map Control for Silverlight</title>
		<link>http://dotnetninja.wordpress.com/2009/03/22/virtual-earth-map-control-for-silverlight/</link>
		<comments>http://dotnetninja.wordpress.com/2009/03/22/virtual-earth-map-control-for-silverlight/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 19:45:17 +0000</pubDate>
		<dc:creator>dotnetninja</dc:creator>
				<category><![CDATA[silverlight]]></category>
		<category><![CDATA[Virtual Earth]]></category>

		<guid isPermaLink="false">http://dotnetninja.wordpress.com/?p=257</guid>
		<description><![CDATA[Finally, it is here, VE map for Silverlight. It has bean rumors and talk about it for more about year, last thing I heard was that it will be released after the summer 2008 but nothing happened, so I thought it was just a rumor or MS team drop it. I have tested as it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=257&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Finally, it is here, VE map for Silverlight. It has bean rumors and talk about it for more about year, last thing I heard was that it will be released after the summer 2008 but nothing happened, so I thought it was just a rumor or MS team drop it. I have tested as it was releasd and its performance is much better than all others earlier SL maps I tested.<br />
To download it or to see interactive SDK go to <a href="http://connect.microsoft.com">http://connect.microsoft.com</a>.<br />
Enjoy&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dotnetninja.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dotnetninja.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dotnetninja.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dotnetninja.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dotnetninja.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dotnetninja.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dotnetninja.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dotnetninja.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dotnetninja.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dotnetninja.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dotnetninja.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dotnetninja.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dotnetninja.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dotnetninja.wordpress.com/257/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=257&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dotnetninja.wordpress.com/2009/03/22/virtual-earth-map-control-for-silverlight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebe5fbe0940176ce99030b2f64a8749f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dotnetninja</media:title>
		</media:content>
	</item>
		<item>
		<title>Pixel Shaders with Silverlight 3</title>
		<link>http://dotnetninja.wordpress.com/2009/03/19/pixel-shaders-with-silverlight-3/</link>
		<comments>http://dotnetninja.wordpress.com/2009/03/19/pixel-shaders-with-silverlight-3/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 23:03:36 +0000</pubDate>
		<dc:creator>dotnetninja</dc:creator>
				<category><![CDATA[Silverlight 3]]></category>

		<guid isPermaLink="false">http://dotnetninja.wordpress.com/?p=249</guid>
		<description><![CDATA[Wow this was the thing I was waiting for but not so sone, as it was not a long ago it was added to WPF. Check out this video for introduction. http://silverlight.net/learn/learnvideo.aspx?video=187303 Tutorial how to build own shader. http://www.andybeaulieu.com/Home/tabid/67/EntryID/145/Default.aspx Converted WPF Pixel Shader Library for Silverlight 3 (Thanks Morten!) http://www.sharpgis.net/post/2009/03/18/Silverlight-30-Pixel-shaders.aspx Pixel Shaders Effects Introduction- How [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=249&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Wow this was the thing I was waiting for but not so sone, as it was not a long ago it was added to WPF.</p>
<ul>
<li><strong>Check out this video for introduction</strong>. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<a href="http://silverlight.net/learn/learnvideo.aspx?video=187303">http://silverlight.net/learn/learnvideo.aspx?video=187303</a></li>
<li><strong>Tutorial how to build own shader.<br />
</strong><a href="http://www.andybeaulieu.com/Home/tabid/67/EntryID/145/Default.aspx">http://www.andybeaulieu.com/Home/tabid/67/EntryID/145/Default.aspx</a></li>
<li><strong>Converted WPF Pixel Shader Library for Silverlight 3</strong> (Thanks Morten!)<br />
<a href="http://www.sharpgis.net/post/2009/03/18/Silverlight-30-Pixel-shaders.aspx">http://www.sharpgis.net/post/2009/03/18/Silverlight-30-Pixel-shaders.aspx</a></li>
<li><strong>Pixel Shaders Effects Introduction</strong>- How to.<br />
<a href="http://dedjo.blogspot.com/2008/06/hlsl-pixel-shader-effects-tutorial.html">http://dedjo.blogspot.com/2008/06/hlsl-pixel-shader-effects-tutorial.html</a>.</li>
</ul>
<p> </p>
<p>Also the news, YouTube using Silverlight to stream High Quality video check it out.</p>
<p><a href="http://www.youtube.com/marchmadness">http://www.youtube.com/marchmadness</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dotnetninja.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dotnetninja.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dotnetninja.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dotnetninja.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dotnetninja.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dotnetninja.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dotnetninja.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dotnetninja.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dotnetninja.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dotnetninja.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dotnetninja.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dotnetninja.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dotnetninja.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dotnetninja.wordpress.com/249/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=249&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dotnetninja.wordpress.com/2009/03/19/pixel-shaders-with-silverlight-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebe5fbe0940176ce99030b2f64a8749f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dotnetninja</media:title>
		</media:content>
	</item>
		<item>
		<title>How to Open Documents (File Types) in Client Application instead of Web Browser</title>
		<link>http://dotnetninja.wordpress.com/2009/01/29/how-to-open-documents-in-client-application-instead-of-web-browser/</link>
		<comments>http://dotnetninja.wordpress.com/2009/01/29/how-to-open-documents-in-client-application-instead-of-web-browser/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 23:30:25 +0000</pubDate>
		<dc:creator>dotnetninja</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Microsoft SharePoint]]></category>

		<guid isPermaLink="false">http://dotnetninja.wordpress.com/?p=240</guid>
		<description><![CDATA[In some cases when opening documents (for example documents from SharePoint document library) and when client machine is running Windows XP (in my case) you will open document directly in web browser. That is fine but what if you want to use full power of the client application like Word or Excel when working with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=240&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In some cases when opening documents (for example documents from SharePoint document library) and when client machine is running Windows XP (in my case) you will open document directly in web browser.<br />
That is fine but what if you want to use full power of the client application like Word or Excel when working with that document?<br />
There is simple solution for that.There are two ways. One is to change the registry key int the Windows registry, which is not recommended if you are helping someone to do it by him self and with little knowledge with Windows. Another one goes like this.</p>
<p>For each file type you want to open in client application you have to do small modification.</p>
<ol>
<li>Open Windows File Explorer.</li>
<li>Select <strong>Tools</strong>, <strong>Folder Options</strong><strong>.</strong></li>
<div id="attachment_242" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-242" title="folderoptions" src="http://dotnetninja.files.wordpress.com/2009/01/folderoptions.png?w=300&#038;h=267" alt="Folder Options" width="300" height="267" /><p class="wp-caption-text">Folder Options</p></div>
<li>On the <strong>Folder Options</strong> window select <strong>File Type</strong> tab.</li>
<div id="attachment_244" class="wp-caption aligncenter" style="width: 256px"><img class="size-medium wp-image-244" title="filetypetab" src="http://dotnetninja.files.wordpress.com/2009/01/filetypetab.png?w=246&#038;h=300" alt="File Type" width="246" height="300" /><p class="wp-caption-text">File Type</p></div>
<li>Find file type you want to open in client application (for example DOC for Word or XLS for Excel).</li>
<li>Unselect option <strong>Browse in same window</strong>.</li>
<div id="attachment_245" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-245" title="browseinsamewindow" src="http://dotnetninja.files.wordpress.com/2009/01/browseinsamewindow.png?w=300&#038;h=269" alt="Browse in same window" width="300" height="269" /><p class="wp-caption-text">Browse in same window</p></div>
<li>Press OK.</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dotnetninja.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dotnetninja.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dotnetninja.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dotnetninja.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dotnetninja.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dotnetninja.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dotnetninja.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dotnetninja.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dotnetninja.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dotnetninja.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dotnetninja.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dotnetninja.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dotnetninja.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dotnetninja.wordpress.com/240/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=240&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dotnetninja.wordpress.com/2009/01/29/how-to-open-documents-in-client-application-instead-of-web-browser/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebe5fbe0940176ce99030b2f64a8749f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dotnetninja</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2009/01/folderoptions.png?w=300" medium="image">
			<media:title type="html">folderoptions</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2009/01/filetypetab.png?w=246" medium="image">
			<media:title type="html">filetypetab</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2009/01/browseinsamewindow.png?w=300" medium="image">
			<media:title type="html">browseinsamewindow</media:title>
		</media:content>
	</item>
		<item>
		<title>Windows Mobile is dead (yes I agree)</title>
		<link>http://dotnetninja.wordpress.com/2009/01/22/windows-mobile-is-dead-yes-i-agree/</link>
		<comments>http://dotnetninja.wordpress.com/2009/01/22/windows-mobile-is-dead-yes-i-agree/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 21:32:01 +0000</pubDate>
		<dc:creator>dotnetninja</dc:creator>
				<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Mono]]></category>

		<guid isPermaLink="false">http://dotnetninja.wordpress.com/?p=223</guid>
		<description><![CDATA[Mobile market is emerging and yet again Microsoft is failing to deliver. I came across post by Cringley stating that Windows Mobile will die and I totally agree but with correction: &#8220;Windows mobile is on the death-bed&#8221;. Developers are fleeing Windows Mobile which is true as I have noticed that on mobile blogs that I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=223&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Mobile market is emerging and yet again Microsoft is failing to deliver. I came across post by <a href="http://www.pbs.org/cringely/pulpit/2008/pulpit_20081023_005500.html">Cringley</a> stating that Windows Mobile will die and I totally agree but with correction: &#8220;Windows mobile is on the death-bed&#8221;.</p>
<p>Developers are fleeing Windows Mobile which is true  as I have noticed that on mobile blogs that I follow.<br />
Windows Mobile is ugly, it is slow, IE on the windows mobile!?! (I am using Opera mini),&#8230;</p>
<p>Before IPhone and Android, Windows Mobile (CE) was competing with Symbian (for how many years now?) and they could not win, so please can someone tell me how will the win now against IPhone with killer design and Googles Android. No chance.</p>
<p>Instead of laying off employees today Microsoft should invest and reallocate these people to work with new Mobile platform, because Mobile platform and mobile devices ARE the future. Do it now, or not now it is to late do it yesterday. Time is running out for Microsoft and I do not believe they are going to win here, especially not after building crappy mobile platform like they have now.</p>
<p>IPhone and Android are attracting people (read developers) and even I (hardcore MS dude) am looking how to, or which mobile platform to invest my time on. As I see now Android is the best choice.<br />
It is open, it is also possible to run Mono on the Android (see the <a href="http://www.koushikdutta.com/2009/01/mono-on-android-with-gratuitous-shaky.html">video</a>), and I also saw earlier post of how to use Mono with ahead of time compilation to run application on the IPhone, and also I was quite surprised when I read that there was about 40 application, most games that was build with C# and available for IPhone using Mono, nice.</p>
<p>It is time to go to the basement and find my old C/C++, Java and Linux books blow the dust of and start developing Android. I can not afford more time waiting for Microsofts new mobile platform.</p>
<p>Check out GREAT comment by Sebastian (first one) on the <a href="http://blogs.msdn.com/mikehall/archive/2009/01/15/is-windows-ce-dead.aspx">Windows Embedded blog.</a></p>
<p>And here news about the new <a href="http://www.engadgetmobile.com/2009/01/19/microsofts-skybox-sync-service-set-for-a-february-unveiling-ne/">Windows Mobile User Interface</a> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dotnetninja.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dotnetninja.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dotnetninja.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dotnetninja.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dotnetninja.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dotnetninja.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dotnetninja.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dotnetninja.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dotnetninja.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dotnetninja.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dotnetninja.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dotnetninja.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dotnetninja.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dotnetninja.wordpress.com/223/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=223&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dotnetninja.wordpress.com/2009/01/22/windows-mobile-is-dead-yes-i-agree/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebe5fbe0940176ce99030b2f64a8749f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dotnetninja</media:title>
		</media:content>
	</item>
		<item>
		<title>Microsoft Tag</title>
		<link>http://dotnetninja.wordpress.com/2009/01/15/microsoft-tag/</link>
		<comments>http://dotnetninja.wordpress.com/2009/01/15/microsoft-tag/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 22:51:13 +0000</pubDate>
		<dc:creator>dotnetninja</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[Microsoft Tag]]></category>
		<category><![CDATA[Mobile device]]></category>

		<guid isPermaLink="false">http://dotnetninja.wordpress.com/?p=209</guid>
		<description><![CDATA[Microsoft released new beta product which I think I saw on the Microsoft research home page for about one year or six months. It is like bar code but version 2, with different colors and shapes where tag can be identified by for example mobile devices. Physical media can be identified by and translated to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=209&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Microsoft released new beta product which I think I saw on the Microsoft research home page for about one year or six months.</p>
<p>It is like bar code but version 2, with different colors and shapes where tag can be identified by for example mobile devices.</p>
<p>Physical media can be identified by and translated to live link for accessing information. Imagine printing color tag on your T-shirt with URL to you page, and when someone is using mobile device it can browse to tag defined URL and get necessary information. I have to buy some T-Shirt transfer paper now <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>More  information can be found on <a href="http://www.microsoft.com/tag">http://www.microsoft.com/tag.</a></p>
<p>To download software for mobile device browse with you mobile device to this address:  <a href="http://gettag.mobi/">http://gettag.mobi/.</a></p>
<p>On my HTC mobile I was browsing to the mobile page using Opera Mobile Browser and when accessed page my mobile was recognized as an J2ME (Java 2 Micro Edition), nothing strange because Operas browser was an Java application.</p>
<p>No comment on that <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<div id="attachment_211" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-211" title="Microsoft Tag" src="http://dotnetninja.files.wordpress.com/2009/01/mstag.png?w=300&#038;h=168" alt="microsoft tag" width="300" height="168" /><p class="wp-caption-text">microsoft tag</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dotnetninja.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dotnetninja.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dotnetninja.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dotnetninja.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dotnetninja.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dotnetninja.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dotnetninja.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dotnetninja.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dotnetninja.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dotnetninja.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dotnetninja.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dotnetninja.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dotnetninja.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dotnetninja.wordpress.com/209/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=209&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dotnetninja.wordpress.com/2009/01/15/microsoft-tag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebe5fbe0940176ce99030b2f64a8749f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dotnetninja</media:title>
		</media:content>

		<media:content url="http://dotnetninja.files.wordpress.com/2009/01/mstag.png?w=300" medium="image">
			<media:title type="html">Microsoft Tag</media:title>
		</media:content>
	</item>
		<item>
		<title>This version of the enterprise library cannot be installed side by side with version 4.0</title>
		<link>http://dotnetninja.wordpress.com/2009/01/14/this-version-of-the-enterprise-library-cannot-be-installed-side-by-side-with-version-40/</link>
		<comments>http://dotnetninja.wordpress.com/2009/01/14/this-version-of-the-enterprise-library-cannot-be-installed-side-by-side-with-version-40/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 18:41:08 +0000</pubDate>
		<dc:creator>dotnetninja</dc:creator>
				<category><![CDATA[Enterprise Library]]></category>
		<category><![CDATA[Patterns And Practices]]></category>

		<guid isPermaLink="false">http://dotnetninja.wordpress.com/?p=194</guid>
		<description><![CDATA[I was trying to install latest version of the Enterprise library (4.1) and I was constantly receiving this error. My previous version of the Enterprise Library was uninstalled (4.0) so I did not have any idea what it went wrong. On the Patterns and Practices codeplex page under discussion, I found resolution to this problem. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=194&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was trying to install latest version of the Enterprise library (4.1) and I was constantly receiving this error.</p>
<p>My previous version of the Enterprise Library was uninstalled (4.0) so I did not have any idea what it went wrong. On the Patterns and Practices codeplex page under discussion, I found resolution to this problem.</p>
<p>Remove the key &#8220;<strong>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Enterprise Library v4</strong>&#8220;.</p>
<blockquote><p>The issue with the MSIs for 3.1 and 4.0 is that there are some duplicate component IDs. When uninstalling, reference counting kicks in and some components, like this registry key, are not deleted and must be manually cleared.</p>
</blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dotnetninja.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dotnetninja.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dotnetninja.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dotnetninja.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dotnetninja.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dotnetninja.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dotnetninja.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dotnetninja.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dotnetninja.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dotnetninja.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dotnetninja.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dotnetninja.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dotnetninja.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dotnetninja.wordpress.com/194/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=194&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dotnetninja.wordpress.com/2009/01/14/this-version-of-the-enterprise-library-cannot-be-installed-side-by-side-with-version-40/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebe5fbe0940176ce99030b2f64a8749f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dotnetninja</media:title>
		</media:content>
	</item>
		<item>
		<title>Save changes not permited in SQL Server 2008 &#8211; Management Studio</title>
		<link>http://dotnetninja.wordpress.com/2009/01/13/save-changes-not-permited-in-sql-server-2008-management-studio/</link>
		<comments>http://dotnetninja.wordpress.com/2009/01/13/save-changes-not-permited-in-sql-server-2008-management-studio/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 19:02:27 +0000</pubDate>
		<dc:creator>dotnetninja</dc:creator>
				<category><![CDATA[SQL Server 2008]]></category>

		<guid isPermaLink="false">http://dotnetninja.wordpress.com/?p=192</guid>
		<description><![CDATA[Ever tried to modify table using Managment Studio? and received this error. Here is an simple fix. In Management Studio (2008 ) click on: Tools -&#62; Options -&#62; Designers, and uncheck the option &#8220;Prevent saving changes that require table re-creation&#8221;.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=192&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ever tried to modify table using Managment Studio? and received this error.</p>
<p>Here is an simple fix.</p>
<p>In Management Studio (2008 ) click on:<br />
<strong>Tools -&gt; Options -&gt; Designers, and uncheck the option &#8220;Prevent saving changes that require table re-creation&#8221;.</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dotnetninja.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dotnetninja.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dotnetninja.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dotnetninja.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dotnetninja.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dotnetninja.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dotnetninja.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dotnetninja.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dotnetninja.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dotnetninja.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dotnetninja.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dotnetninja.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dotnetninja.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dotnetninja.wordpress.com/192/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetninja.wordpress.com&amp;blog=2846987&amp;post=192&amp;subd=dotnetninja&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dotnetninja.wordpress.com/2009/01/13/save-changes-not-permited-in-sql-server-2008-management-studio/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebe5fbe0940176ce99030b2f64a8749f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dotnetninja</media:title>
		</media:content>
	</item>
	</channel>
</rss>
