<?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>Mahesh's brain droppings</title>
	<atom:link href="http://blogesh.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogesh.wordpress.com</link>
	<description>Watch out! They are everywhere...</description>
	<lastBuildDate>Fri, 27 Jan 2012 09:10:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blogesh.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Mahesh's brain droppings</title>
		<link>http://blogesh.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blogesh.wordpress.com/osd.xml" title="Mahesh&#039;s brain droppings" />
	<atom:link rel='hub' href='http://blogesh.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Over to the cloud</title>
		<link>http://blogesh.wordpress.com/2011/05/17/over-to-the-cloud/</link>
		<comments>http://blogesh.wordpress.com/2011/05/17/over-to-the-cloud/#comments</comments>
		<pubDate>Tue, 17 May 2011 11:51:43 +0000</pubDate>
		<dc:creator>blogesh</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Cloud; Azure]]></category>

		<guid isPermaLink="false">https://blogesh.wordpress.com/2011/05/17/over-to-the-cloud/</guid>
		<description><![CDATA[(Reproduced from an article I wrote for a newsletter) Gartner identified Cloud Computing as the No. 1 strategic technology for 2011. Companies like Microsoft, Google and Amazon are pumping lots of money into it. And more and more companies are moving their online presence and applications to the cloud. So, what is this “cloud”? And [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=165&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>(Reproduced from an article I wrote for a newsletter)</em></p>
<p>Gartner identified Cloud Computing as the <a href="http://www.gartner.com/it/page.jsp?id=1454221">No. 1 strategic technology for 2011</a>. Companies like Microsoft, Google and Amazon are pumping lots of money into it. And more and more companies are moving their online presence and applications to the cloud. </p>
<p>So, what is this “<i>cloud”</i>? And what is all this hype surrounding it.</p>
<p>If you look up Wikipedia, you will find the National Institute of Standards and Technology (NIST)’s definition of what Cloud computing is:</p>
<blockquote><p><i>“Cloud computing</i> is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”</p>
</blockquote>
<p>Confused? Here is my simplistic definition – </p>
<blockquote><p>“It is computing power that can be shared over the internet, with several advantages like reliability, scalability, ease of maintenance and most importantly &#8211; low cost.” </p>
</blockquote>
<p>Anything that you make available over the internet, whether it is a simple website, a complex application or set of services can be hosted in the cloud.</p>
<p>The concept of cloud computing can be best explained with an analogy. Let us assume that you are a tour guide showing people around Melbourne. What you bring to the table is your knowledge of the city of Melbourne, but you are dependent on a transport mechanism (let’s say, a car, van or even bus) to show people around. Obviously, buying your own van or bus requires a lot of upfront cost. And you may have days where there are a lot of people interested in going on a tour and days where you hardly have anyone. And what if your vehicle breaks down when you have a lot of people signed up?</p>
<p>Wouldn’t it be awesome, if you could just pay someone for a vehicle every day? And if you could get a bigger or smaller vehicle depending on the number of people on the tour – and pay accordingly? Maybe even have more than one vehicle if there is big group interested in a tour. And what if you even had a back up to these vehicles in case something goes wrong? This is the kind of scenario in which cloud computing comes to your aid. Companies that offer cloud computing provide the “vans” and “back-up vehicles” for you to run your “tour-guide” business. You take care of your “tour-guide” business, while the cloud company takes care of size of the vehicle or number of vehicles (scaling) and providing backups (availability/reliability), and making sure that the vehicles are maintained in top condition. As a tour operator, you get very good pricing, and the cloud company uses some of the seats in the van to service other customers, thereby increasing their own profitability.</p>
<p>Pricing, reliability and on-demand scalability is what makes cloud a very attractive option.</p>
<p>The analogy provided is a simplistic view of the cloud, and when people talk about the cloud, they generally refer to three specific models – <strong>Platform as a service</strong> (PaaS), <strong>Infrastructure as a service</strong> (IaaS) and <strong>Software as a service</strong> (Saas).</p>
<p>Cloud implementations such as Windows Azure fall into the <i>Platform as a Service</i> model. What Windows Azure provides is a platform in which you can write and deploy applications to. These applications need to follow a set of rules and be designed in a specific way to run in this platform. Conforming to these rules is easy if you use the right tools (such as Visual Studio) and SDK provided by Microsoft. Once you deploy an application that plays by the platform rules, the platform takes care of other things like load balancing, reliability, etc. To keep up with the tour guide analogy, the company providing the van lays down rules saying that only people are allowed into their vans. If you wanted to transport other things such as equipment, you can’t do it.</p>
<p>This is where <i>Infrastructure as a service</i> comes into play. This is the equivalent of the cloud company saying – “I am going to give you a van to run your tours and I don’t care what you do with the van – you run and manage it yourself”. You can then transport anything you want – people, equipment, whatever. But this brings additional responsibility in managing things such as availability and scalability, which you didn’t have to worry with the PaaS model. Amazon EC2 is an example of a very popular IaaS implementation that charges customers a certain amount based on the virtual machine they want. In addition, you also pay for things like storage costs and data transfer cost. </p>
<p>The <i>Software as a Service</i> model, on the other hand, lets cloud companies provide software that can be used for a fee. This is particularly useful if running certain software involves a lot of infrastructure and running costs, which could be prohibitive for smaller companies. But because of the cost savings and scalability this model provides, it is also useful for medium to large size companies. Popular SaaS implementations such as SalesForce, provide users with advantages such as high adoption across multiple devices, lower initial costs, easier upgrades, low maintenance and high scalability. SaaS applications typically have no or very little installation that customers have to do – instead they access these applications as a service across the web.</p>
<p>Explaining SaaS using the tour guide analogy may be difficult, but think of it as the tour guide company providing its services for tour operators or airlines like Qantas to use. The airlines can then focus on their core business of running an airline, while it uses the tour guide company to run local tours.</p>
<h4>The Windows Azure Platform</h4>
<p>Microsoft has several offerings in the cloud space that is either already out or soon going to be out – <strong>Office 365</strong> and <strong>Dynamics CRM</strong> Online are two such offerings. But the one developers need to be aware of is <b>Windows Azure</b>. Windows Azure is essentially Microsoft’s operating system for the cloud.</p>
<p>Windows Azure provides you the platform to develop and deploy applications that are hosted in Microsoft data centres around the world. The Windows Azure platform consists of the following components:</p>
<p>· <b>Compute Services:</b> This is responsible for running applications, whether they are web applications, services or long running code that needs to reside on the server. These applications are deployed into a concept called <i>Roles</i>. Roles are nothing but an abstraction of an application type running on a set of machines. Web applications run on a <i>Web Role</i> and background tasks and long running operations run on a <i>Worker Role</i></p>
<p>· <b>Storage Services:</b> All applications need a place to store data. Azure storage provides them the capability to do that in the cloud. Azure storage supports <i>Table Storage</i>, which is a highly scalable way of storing data; and <i>Blobs</i>, which is a way of storing files – large or small. In addition, it provides <i>Queues</i>, which can be used as an asynchronous communication mechanism between different roles. In addition to this, <i>SQL Azure</i> can be used to store relational data in the form of tables. SQL Azure is version of SQL Server that has been modified to run in the cloud.</p>
<p>· <b>Networking: </b>When you start hosting applications in the cloud, you will soon find that you cannot move all your organisation’s applications and services to the cloud. Some of them have dependencies and sufficient reasons from preventing them from leaving the organisation’s data centre. But what if your roles in the cloud need to communicate with these services? <i>Windows Azure Connect</i> provides a way of connecting the two so that they can communicate. Apart from Connect services, Azure also provides the <i>Azure Traffic Manager</i>. The Traffic Manager provides a way of distributing incoming traffic to different hosted services, whether they are hosted in the same data centre or spread across different services around the world. This acts like a load balancer that diverts traffic at a more global scale.<b></b></p>
<p>· <b>Caching</b>: Apart from issues like scalability and reliability, performance is usually a very common requirement in most applications and it becomes even more important in the context of the cloud. Caching in Azure is provided using Content Delivery Networks and data caches. Azure’s <i>Content Delivery Networks</i> (CDN) is used to cache blobs at edge networks to speed up network access, and <i>AppService caching</i> can provide caching within Azure to speed up access to data.<b></b></p>
<p>· <b>Security: </b>Azure’s <i>Access Control Service</i> or ACS provides an infrastructure for Federation and user authentication using ADFS, Windows Live ID, Google, Facebook, etc. <b></b></p>
<p>Although, Azure provides a number of these components, when developers start working with Azure, they initially need to focus on just Azure Compute and Azure Storage. </p>
<p><i>So, how does one get started?</i></p>
<p>To get started, you need to download the <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7a1089b6-4050-4307-86c4-9dadaa5ed018&amp;displaylang=en">Windows Azure Tools for Microsoft Visual Studio</a>. This contains the Windows Azure SDK and extends Visual Studio by adding the necessary project templates and tools to run and test Azure applications. The Compute Emulator and Storage Emulator that are part of the download helps you run and test the Azure application locally in your own computer before you deploy it to the cloud. You also need to create an account and configure your subscriptions at <a href="http://windows.azure.com">http://windows.azure.com</a> so that you can deploy your application to the cloud. The website provides a portal to manage all your azure subscriptions and your Azure services in one place.</p>
<p>So, what are you waiting for? Get cracking and move your first app to the cloud. I promise you, it won’t be your last.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/blogesh.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/blogesh.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/blogesh.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/blogesh.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/blogesh.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/blogesh.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/blogesh.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/blogesh.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/blogesh.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/blogesh.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/blogesh.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/blogesh.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/blogesh.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/blogesh.wordpress.com/165/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=165&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogesh.wordpress.com/2011/05/17/over-to-the-cloud/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7eea7841cd725156f1b71bfdb547e7ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">blogesh</media:title>
		</media:content>
	</item>
		<item>
		<title>Expression Blend challenge</title>
		<link>http://blogesh.wordpress.com/2010/09/13/expression-blend-challenge/</link>
		<comments>http://blogesh.wordpress.com/2010/09/13/expression-blend-challenge/#comments</comments>
		<pubDate>Mon, 13 Sep 2010 11:22:39 +0000</pubDate>
		<dc:creator>blogesh</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://blogesh.wordpress.com/2010/09/13/expression-blend-challenge/</guid>
		<description><![CDATA[At my Tech.Ed talk this year, I challenged developers to give up using Visual Studio for 10 days and use just Expression Blend for all their UI work. At the end of the period, I asked people to send me their feedback so that they could win an MSDN subscription. Well, I am going to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=163&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>At my <a href="https://blogesh.wordpress.com/2010/08/31/tech-ed-2010-talk/">Tech.Ed talk</a> this year, I challenged developers to give up using Visual Studio for 10 days and use just Expression Blend for all their UI work. At the end of the period, I asked people to send me their feedback so that they could win an MSDN subscription. </p>
<p>Well, I am going to pick the winner on the 15th – ie. 15/09/2010 – So, if you haven’t replied to me, then be quick <img style="border-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogesh.files.wordpress.com/2010/09/wlemoticonsmile.png?w=450" /></p>
<p>Send mail to Mahesh(dot)Krishnan at Readify(dot)net</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/blogesh.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/blogesh.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/blogesh.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/blogesh.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/blogesh.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/blogesh.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/blogesh.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/blogesh.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/blogesh.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/blogesh.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/blogesh.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/blogesh.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/blogesh.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/blogesh.wordpress.com/163/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=163&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogesh.wordpress.com/2010/09/13/expression-blend-challenge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7eea7841cd725156f1b71bfdb547e7ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">blogesh</media:title>
		</media:content>

		<media:content url="http://blogesh.files.wordpress.com/2010/09/wlemoticonsmile.png" medium="image">
			<media:title type="html">Smile</media:title>
		</media:content>
	</item>
		<item>
		<title>Last year&#8217;s TechEd video</title>
		<link>http://blogesh.wordpress.com/2010/09/08/last-years-teched-video/</link>
		<comments>http://blogesh.wordpress.com/2010/09/08/last-years-teched-video/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 13:47:05 +0000</pubDate>
		<dc:creator>blogesh</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Silverlight; TechEd]]></category>

		<guid isPermaLink="false">https://blogesh.wordpress.com/2010/09/08/last-years-teched-video/</guid>
		<description><![CDATA[As I was looking at the video of this year’s presentation, I noticed there was a link to my presentation from last year as well. The topic I presented last year was Architectural considerations for creating Silverlight Applications. This talk was of course based on Silverlight 3, but some of the concepts still make sense [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=161&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As I was looking at the video of this year’s presentation, I noticed there was a link to my presentation from last year as well. The topic I presented last year was <strong>Architectural considerations for creating Silverlight Applications</strong>. This talk was of course based on Silverlight 3, but some of the concepts still make sense in SL 4. Here is the link to the video:</p>
<p><a title="http://www.msteched.com/2009/Australia/ARC401" href="http://www.msteched.com/2009/Australia/ARC401">http://www.msteched.com/2009/Australia/ARC401</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/blogesh.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/blogesh.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/blogesh.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/blogesh.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/blogesh.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/blogesh.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/blogesh.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/blogesh.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/blogesh.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/blogesh.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/blogesh.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/blogesh.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/blogesh.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/blogesh.wordpress.com/161/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=161&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogesh.wordpress.com/2010/09/08/last-years-teched-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7eea7841cd725156f1b71bfdb547e7ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">blogesh</media:title>
		</media:content>
	</item>
		<item>
		<title>Tech Ed 2010 Talk</title>
		<link>http://blogesh.wordpress.com/2010/08/31/tech-ed-2010-talk/</link>
		<comments>http://blogesh.wordpress.com/2010/08/31/tech-ed-2010-talk/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 13:13:23 +0000</pubDate>
		<dc:creator>blogesh</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Blend; Silverlight;]]></category>

		<guid isPermaLink="false">https://blogesh.wordpress.com/2010/08/31/tech-ed-2010-talk/</guid>
		<description><![CDATA[I was fortunate enough to have again been given the opportunity to speak at Tech Ed. This time, I presented on the topic – “Expression Blend for Developers”. Here is the slide deck to the presentation. Once, the video for the presentation is up, you should be able to access it from http://www.msteched.com/2010/Australia/WEB305<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=159&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was fortunate enough to have again been given the opportunity to speak at Tech Ed. This time, I presented on the topic – “Expression Blend for Developers”.</p>
<p>Here is the slide deck to the presentation.</p>
<iframe src='http://www.slideshare.net/slideshow/embed_code/5096358' width='450' height='369'></iframe>
<p>Once, the video for the presentation is up, you should be able to access it from <a title="http://www.msteched.com/2010/Australia/WEB305" href="http://www.msteched.com/2010/Australia/WEB305">http://www.msteched.com/2010/Australia/WEB305</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/blogesh.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/blogesh.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/blogesh.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/blogesh.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/blogesh.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/blogesh.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/blogesh.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/blogesh.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/blogesh.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/blogesh.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/blogesh.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/blogesh.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/blogesh.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/blogesh.wordpress.com/159/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=159&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogesh.wordpress.com/2010/08/31/tech-ed-2010-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7eea7841cd725156f1b71bfdb547e7ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">blogesh</media:title>
		</media:content>
	</item>
		<item>
		<title>What&#8217;s new in Silverlight 4 talk at DDD Melbourne</title>
		<link>http://blogesh.wordpress.com/2010/05/19/whats-new-in-silverlight-4-talk-at-ddd-melbourne/</link>
		<comments>http://blogesh.wordpress.com/2010/05/19/whats-new-in-silverlight-4-talk-at-ddd-melbourne/#comments</comments>
		<pubDate>Wed, 19 May 2010 20:04:57 +0000</pubDate>
		<dc:creator>blogesh</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Silverlight; What's new; Presentation]]></category>

		<guid isPermaLink="false">https://blogesh.wordpress.com/2010/05/19/whats-new-in-silverlight-4-talk-at-ddd-melbourne/</guid>
		<description><![CDATA[DDD Melbourne was a blast. Great speakers, great crowd and great support from sponsors. I had initially pulled my talk out to give others a chance to speak and have a bit more time with the organisation of the event itself but had to fill-in for a last minute drop out. Here is the slide [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=156&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://dddmelbourne.com/">DDD Melbourne</a> was a blast. Great speakers, great crowd and great support from sponsors. I had initially pulled my talk out to give others a chance to speak and have a bit more time with the organisation of the event itself but had to fill-in for a last minute drop out.</p>
<p>Here is the slide deck from the presentation I gave -</p>
<iframe src='http://www.slideshare.net/slideshow/embed_code/4159341' width='450' height='369'></iframe>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/blogesh.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/blogesh.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/blogesh.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/blogesh.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/blogesh.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/blogesh.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/blogesh.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/blogesh.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/blogesh.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/blogesh.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/blogesh.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/blogesh.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/blogesh.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/blogesh.wordpress.com/156/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=156&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogesh.wordpress.com/2010/05/19/whats-new-in-silverlight-4-talk-at-ddd-melbourne/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7eea7841cd725156f1b71bfdb547e7ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">blogesh</media:title>
		</media:content>
	</item>
		<item>
		<title>Silverlight 4 for Dummies</title>
		<link>http://blogesh.wordpress.com/2010/04/27/silverlight-4-for-dummies/</link>
		<comments>http://blogesh.wordpress.com/2010/04/27/silverlight-4-for-dummies/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 22:57:03 +0000</pubDate>
		<dc:creator>blogesh</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Silverlight; Book; Dummies]]></category>

		<guid isPermaLink="false">https://blogesh.wordpress.com/2010/04/27/silverlight-4-for-dummies/</guid>
		<description><![CDATA[My book Silverlight 4 for Dummies is out. Here is the title cover: The link to it in Amazon: http://www.amazon.com/gp/product/0470524650<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=155&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>My book <strong>Silverlight 4 for Dummies</strong> is out. Here is the title cover:</p>
<p><a href="http://blogesh.files.wordpress.com/2010/04/dummiesbook.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="DummiesBook" border="0" alt="DummiesBook" src="http://blogesh.files.wordpress.com/2010/04/dummiesbook_thumb.jpg?w=411&#038;h=411" width="411" height="411" /></a> </p>
<p>The link to it in Amazon: <a title="http://www.amazon.com/gp/product/0470524650" href="http://www.amazon.com/gp/product/0470524650">http://www.amazon.com/gp/product/0470524650</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/blogesh.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/blogesh.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/blogesh.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/blogesh.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/blogesh.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/blogesh.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/blogesh.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/blogesh.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/blogesh.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/blogesh.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/blogesh.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/blogesh.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/blogesh.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/blogesh.wordpress.com/155/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=155&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogesh.wordpress.com/2010/04/27/silverlight-4-for-dummies/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7eea7841cd725156f1b71bfdb547e7ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">blogesh</media:title>
		</media:content>

		<media:content url="http://blogesh.files.wordpress.com/2010/04/dummiesbook_thumb.jpg" medium="image">
			<media:title type="html">DummiesBook</media:title>
		</media:content>
	</item>
		<item>
		<title>Virtual Conference session on WCF</title>
		<link>http://blogesh.wordpress.com/2010/04/27/virtual-conference-session-on-wcf/</link>
		<comments>http://blogesh.wordpress.com/2010/04/27/virtual-conference-session-on-wcf/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 11:43:12 +0000</pubDate>
		<dc:creator>blogesh</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Slides]]></category>
		<category><![CDATA[WCF; Presentation]]></category>

		<guid isPermaLink="false">https://blogesh.wordpress.com/2010/04/27/virtual-conference-session-on-wcf/</guid>
		<description><![CDATA[I will be doing a talk on “Practical WCF” at 12:30PM Melbourne time on the 28th of April 2010. It is a talk targeted at beginners. If you are interested, you can watch the it live or the recording later at this link –&#62; http://vconf.org/presentation/wcf/<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=152&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I will be doing a talk on “Practical WCF” at 12:30PM Melbourne time on the 28th of April 2010. It is a talk targeted at beginners. If you are interested, you can watch the it live or the recording later at this link –&gt; <a title="http://vconf.org/presentation/wcf/" href="http://vconf.org/presentation/wcf/">http://vconf.org/presentation/wcf/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/blogesh.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/blogesh.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/blogesh.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/blogesh.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/blogesh.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/blogesh.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/blogesh.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/blogesh.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/blogesh.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/blogesh.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/blogesh.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/blogesh.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/blogesh.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/blogesh.wordpress.com/152/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=152&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogesh.wordpress.com/2010/04/27/virtual-conference-session-on-wcf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7eea7841cd725156f1b71bfdb547e7ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">blogesh</media:title>
		</media:content>
	</item>
		<item>
		<title>Expression Blend presentation</title>
		<link>http://blogesh.wordpress.com/2010/02/02/expression-blend-presentation/</link>
		<comments>http://blogesh.wordpress.com/2010/02/02/expression-blend-presentation/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 12:38:36 +0000</pubDate>
		<dc:creator>blogesh</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Blend; Silverlight; codecamp]]></category>

		<guid isPermaLink="false">http://blogesh.wordpress.com/2010/02/02/expression-blend-presentation/</guid>
		<description><![CDATA[I gave a presentation titled&#160; “Expression Blend for Dummies Developers” at the Silverlight Codecamp in Melbourne over the weekend. Here is the slide deck from the presentation. Expression Blend for Dummies Developers.pptx I did the presentation using pptPlex, so it looks better if you have that plug-in installed in your Power point.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=144&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I gave a presentation titled&#160; <strong>“Expression Blend for <strike>Dummies</strike> Developers”</strong> at the Silverlight Codecamp in Melbourne over the weekend. Here is the slide deck from the presentation.</p>
<p><a href="http://blogesh.files.wordpress.com/2010/02/expressionblendfordummies2.pptx">Expression Blend for <strike>Dummies</strike> Developers.pptx</a></p>
<p>I did the presentation using pptPlex, so it looks better if you have that plug-in installed in your Power point.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/blogesh.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/blogesh.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/blogesh.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/blogesh.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/blogesh.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/blogesh.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/blogesh.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/blogesh.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/blogesh.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/blogesh.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/blogesh.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/blogesh.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/blogesh.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/blogesh.wordpress.com/144/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=144&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogesh.wordpress.com/2010/02/02/expression-blend-presentation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7eea7841cd725156f1b71bfdb547e7ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">blogesh</media:title>
		</media:content>
	</item>
		<item>
		<title>Separate certificates for Transport and Message security in WCF</title>
		<link>http://blogesh.wordpress.com/2009/10/08/separate-certificates-for-transport-and-message-security-in-wcf/</link>
		<comments>http://blogesh.wordpress.com/2009/10/08/separate-certificates-for-transport-and-message-security-in-wcf/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 06:26:01 +0000</pubDate>
		<dc:creator>blogesh</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[WCF; Certificate; Transport; Message]]></category>

		<guid isPermaLink="false">http://blogesh.wordpress.com/2009/10/08/separate-certificates-for-transport-and-message-security-in-wcf/</guid>
		<description><![CDATA[I’ve been busy of late writing my first book and doing so many other things that I haven’t had time to post anything on my blog. Now that I&#8217;ve got the book out of the way, I thought I should post something here. And what better topic than WCF Recently, I had to interact with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=139&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I’ve been busy of late writing my first book and doing so many other things that I haven’t had time to post anything on my blog. Now that I&#8217;ve got the book out of the way, I thought I should post something here. And what better topic than WCF <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Recently, I had to interact with a financial institution using WCF for a Customer. The Service that the financial institution exposed was not written in WCF or .NET &#8211; not that it matters, but there were a number of specific things that had to be done to get it to work:</p>
<ul>
<li>We needed to use transport security (https) that had to be encrypted using a specific X509 certificate
<li>The body of the message had to be signed using another X509 certificate
<li>The reply from the service did not have any security credentials attached to it – i.e. the transport was secure, but the message was not signed or encrypted </li>
</ul>
<p>This may seem pretty straight forward – All you had to do is create a custom binding and specify something like this –</p>
<pre><pre class="brush: xml;">
&lt;custombinding&gt;
  &lt;binding name="Custom"&gt;
    &lt;security messagesecurityversion="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10" 
      authenticationmode="MutualCertificate" 
    /&gt;
    &lt;httpstransport requireclientcertificate="true" 
      authenticationscheme="Negotiate" 
      usedefaultwebproxy="true" 
      manualaddressing="false" 
    /&gt;
  &lt;/binding&gt;
&lt;/custombinding&gt;
</pre></pre>
<p>The problem is that you can specify only one certificate in&nbsp; Client credentials&nbsp; and both message security as well as transport security will use the same certificate – we want to use two separate ones. </p>
<p>The solution to this is to add a new behavior that takes care of this. But rather than creating the behavior from scratch, an easier alternative is to extend the <strong>ClientCredentials</strong> class to cater for this additional certificate. So, I decided to use the existing certificate stored in ClientCredentials for message security and to add a separate property to hold the certificate for the Transport as shown in the code below &#8211; </p>
<pre><pre class="brush: csharp;"> 
/// 
/// Class that extends Client Credentials so that the certificate for the
/// Transport layer encryption can be separate
/// 
public class MyCredentials : ClientCredentials
{
  /// &lt;summary&gt;
  /// The X509 Certificate that is to be used for https
  /// &lt;/summary&gt;
  public X509Certificate2 TransportCertificate { get; set; }

  public MyCredentials(ClientCredentials existingCredentials)
    : base(existingCredentials)
  {
  }

  protected MyCredentials(MyCredentials other)
    : base(other)
  {
    TransportCertificate = other.TransportCertificate;
  }

  protected override ClientCredentials CloneCore()
  {
    return new MyCredentials(this);
  }

  public override SecurityTokenManager CreateSecurityTokenManager()
  {
    return new MyCredentialsSecurityTokenManager(this);
  }

  public void SetTransportCertificate(string subjectName, StoreLocation storeLocation, StoreName storeName)
  {
    SetTransportCertificate(storeLocation, storeName, X509FindType.FindBySubjectDistinguishedName, subjectName);
  }

  public void SetTransportCertificate(StoreLocation storeLocation, StoreName storeName, X509FindType x509FindType, string subjectName)
  {
    TransportCertificate = FindCertificate(storeLocation, storeName, x509FindType, subjectName);
  }

  private static X509Certificate2 FindCertificate(StoreLocation location, StoreName name,
    X509FindType findType, string findValue)
  {
    X509Store store = new X509Store(name, location);
    try
    {
      store.Open(OpenFlags.ReadOnly);
      X509Certificate2Collection col = store.Certificates.Find(findType, findValue, true);
      return col[0]; // return first certificate found
    }
    finally
    {
      store.Close();
    }
  }

}

</pre></pre>
<p>As part of the class, I added some helper methods to set the Transport certificate from code and also overrode the <strong>CreateSecurityTokenManager</strong> method so that I can create my own <strong>SecurityTokenManager</strong> that figures out which certificate to use for what operation. </p>
<p>But again, rather than create this class from scratch, I just extended the <strong>ClientCredentialsSecurityTokenManager</strong> class that ClientCredentials uses. In it I overrode the <strong>CreateSecurityTokenProvider</strong> method so that when a certificate is requested for Transport security, we pass back TransportCertificate that is stored in the MyCredentials object as shown in the code below -</p>
<pre><pre class="brush: csharp;"> 
internal class MyCredentialsSecurityTokenManager :
    ClientCredentialsSecurityTokenManager
{
    MyCredentials credentials;

    public MyCredentialsSecurityTokenManager(MyCredentials credentials)
        : base(credentials)
    {
        this.credentials = credentials;
    }

    public override SecurityTokenProvider CreateSecurityTokenProvider(
        SecurityTokenRequirement requirement)
    {
        SecurityTokenProvider result = null;

        if (requirement.Properties.ContainsKey(ServiceModelSecurityTokenRequirement.TransportSchemeProperty) &amp;&amp;
            requirement.TokenType == SecurityTokenTypes.X509Certificate)
        {
            result = new X509SecurityTokenProvider(
                this.credentials.TransportCertificate);
        }
        else if (requirement.KeyUsage == SecurityKeyUsage.Signature &amp;&amp;
            requirement.TokenType == SecurityTokenTypes.X509Certificate)
        {
            result = new X509SecurityTokenProvider(
                this.credentials.ClientCertificate.Certificate);
        }
        else
        {
            result = base.CreateSecurityTokenProvider(requirement);
        }

        return result;
    }


}

</pre> 
</pre>
<p>The last step is create the stuff necessary to be able to specify this in your config file. For that I extended the <strong>ClientCredentialsElement</strong>, so that I can specify the Transport Certificate as a behavior using the code below &#8211; </p>
<pre><pre class="brush: csharp;"> 
class ClientCredentialsExtensionElement : ClientCredentialsElement
{
    ConfigurationPropertyCollection properties;

    public override Type BehaviorType
    {
        get 
        { 
            return typeof(MyCredentials); 
        }
    }

    [ConfigurationProperty("transportCertificate")]
    public X509InitiatorCertificateClientElement TransportCertificate 
    {
        get
        {
            return base["transportCertificate"] 
                as X509InitiatorCertificateClientElement;
        }
    }

    protected override ConfigurationPropertyCollection Properties
    {
        get
        {
            if (this.properties == null)
            {
                ConfigurationPropertyCollection properties = base.Properties;
                properties.Add(new ConfigurationProperty(
                    "transportCertificate",
                    typeof(X509InitiatorCertificateClientElement), 
                    null, null, null, 
                    ConfigurationPropertyOptions.None));
                this.properties = properties;
            }
            return this.properties;
        }
    }

    protected override object CreateBehavior()
    {
        MyCredentials creds = new MyCredentials(
            base.CreateBehavior() as ClientCredentials);

        PropertyInformationCollection properties = 
            ElementInformation.Properties;

        creds.SetTransportCertificate(TransportCertificate.StoreLocation,
                                        TransportCertificate.StoreName, 
                                        TransportCertificate.X509FindType, 
                                        TransportCertificate.FindValue);

        base.ApplyConfiguration(creds);
        return creds;
    }
}

</pre>
</pre>
<p>With the changes made, you should be able to replace the <strong>clientCredential</strong> section in your config file with the <strong>clientCredentialsExtension</strong> section. Something like this &#8211; </p>
<pre></pre>
<pre><pre class="brush: xml;">

&lt;system.serviceModel&gt;
...
 &lt;extensions&gt;
   &lt;behaviorExtensions&gt;
     &lt;add name="clientCredentialsExtension" type="MyNamespace.ClientCredentialsExtensionElement, MyAssemblyName" /&gt;
   &lt;/behaviorExtensions&gt;

 &lt;/extensions&gt;
 &lt;behaviors&gt;
   &lt;endpointBehaviors&gt;
     &lt;behavior name="SecureMessageAndTransportBehavior"&gt;

       &lt;clientCredentialsExtension&gt;


         &lt;!--This cert is used for signing the message--&gt;
         &lt;clientCertificate findValue="YourMessageCertName"
                            storeLocation ="LocalMachine"
                            storeName="My"
                            x509FindType="FindBySubjectName"
                            /&gt;

         &lt;!--This cert is used for the transport--&gt;
         &lt;transportCertificate findValue="YourTransportCertName"
                            storeLocation ="LocalMachine"
                            storeName="My"
                            x509FindType="FindBySubjectName"
                            /&gt;

       &lt;/clientCredentialsExtension&gt;

     &lt;/behavior&gt;
   &lt;/endpointBehaviors&gt;
 &lt;/behaviors&gt;

&lt;/system.serviceModel&gt;
</pre>
</pre>
<p>That’s it – you are all set to go. Just make sure that you set this behavior for your endpoint.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/blogesh.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/blogesh.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/blogesh.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/blogesh.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/blogesh.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/blogesh.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/blogesh.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/blogesh.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/blogesh.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/blogesh.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/blogesh.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/blogesh.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/blogesh.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/blogesh.wordpress.com/139/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=139&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogesh.wordpress.com/2009/10/08/separate-certificates-for-transport-and-message-security-in-wcf/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7eea7841cd725156f1b71bfdb547e7ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">blogesh</media:title>
		</media:content>
	</item>
		<item>
		<title>Speaking at SDDN on 30th June</title>
		<link>http://blogesh.wordpress.com/2009/06/21/speaking-at-sddn-on-30th-june/</link>
		<comments>http://blogesh.wordpress.com/2009/06/21/speaking-at-sddn-on-30th-june/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 23:29:34 +0000</pubDate>
		<dc:creator>blogesh</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[User group]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[SDDN]]></category>

		<guid isPermaLink="false">http://blogesh.wordpress.com/2009/06/21/speaking-at-sddn-on-30th-june/</guid>
		<description><![CDATA[I will be presenting on the new features in Expression Blend 3 at the Silverlight Designer and Developer Network (SDDN) on Tuesday the 30th of June, 2009 at 6:00pm. Here is the basic blurb for the talk &#8211; Expression Blend 3 &#8211; What&#8217;s new? Expression Blend 3 improves upon the goodness of Blend 2 SP [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=138&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I will be presenting on the new features in Expression Blend 3 at the <a href="http://www.sddn.org.au/">Silverlight Designer and Developer Network (SDDN)</a> on Tuesday the 30th of June, 2009 at 6:00pm. Here is the basic blurb for the talk &#8211; </p>
<blockquote><p><strong>Expression Blend 3 &#8211; What&#8217;s new?</strong></p>
<p><strong>Expression Blend 3</strong> improves upon the goodness of Blend 2 SP 1 by providing a whole heap of new features and more importantly, the ability to create applications for Silverlight 3. The list of new enhancements is long – Lots of improvements to the way you use the tool, Improvements to how XAML, C# and VB.NET files are edited, Support for importing Adobe Photoshop and Illustrator files, Skinning enhancements, Enhancements for animation, Sample data generation, etc, etc. </p>
<p><strong>Mahesh Krishnan</strong> will run through these changes in a fast demo based session (without using Powerpoint!) The session is targeted at both Designers and Developers, so don&#8217;t miss out <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
</blockquote>
<p>The venue is the Microsoft office in Melbourne. </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/blogesh.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/blogesh.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/blogesh.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/blogesh.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/blogesh.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/blogesh.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/blogesh.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/blogesh.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/blogesh.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/blogesh.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/blogesh.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/blogesh.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/blogesh.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/blogesh.wordpress.com/138/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogesh.wordpress.com&amp;blog=735904&amp;post=138&amp;subd=blogesh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogesh.wordpress.com/2009/06/21/speaking-at-sddn-on-30th-june/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7eea7841cd725156f1b71bfdb547e7ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">blogesh</media:title>
		</media:content>
	</item>
	</channel>
</rss>
