<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7549896977430463430</id><updated>2011-12-13T13:53:23.701Z</updated><category term='Presentation'/><category term='Vista'/><category term='Life'/><category term='Plugins'/><category term='BPM'/><category term='Microsoft'/><category term='Microsoft Google Applications Online Ajax'/><category term='&quot;SQL Server&quot;'/><category term='SOA'/><category term='Open Source'/><category term='ISO'/><category term='Conference'/><title type='text'>Jon Simpson's Life Plugins</title><subtitle type='html'>Technology and techniques</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-4330728937354882260</id><published>2011-10-31T22:55:00.002Z</published><updated>2011-10-31T23:00:02.543Z</updated><title type='text'>Azure, ACS &amp; MVC3 Caution</title><content type='html'>I was about to write a Rob Conery style rant about how this quirk of MVC3, Azure and ACS has been p1ssing me off for the last week, but I'll keep it brief and to the point.&lt;br /&gt;I have, what I believe, is a relatively common situation.&lt;br /&gt;&lt;br /&gt;I'm building a site using MVC3 and Razor to be hosted on Azure.&lt;br /&gt;I'm using Azure ACS to give me Google, Live, Yahoo and other Idenitiy Provider options to access my site.&lt;br /&gt;&lt;br /&gt;The problem I have is that when I bundle my MVC3/ACS solution to the cloud using the out of the box tooling, I hit a problem, in short when I attempt to access a restricted path on the site, the WIF/ACS logon redirect isn't fired and the user is sent directly to the target page, unauthenticated!&lt;br /&gt;&lt;br /&gt;The steps I took were as follows:-&lt;br /&gt;&lt;br /&gt;1. Create my MVC3 solution/project using the Internet Application template&lt;br /&gt;2. Add an Azure project to my solution and then add a web role reference to the MVC3 project within the same solution.&lt;br /&gt;3. Configure ACS to accept request from, and issue tokens to the instance running on my localhost&lt;br /&gt;4. Use the Windows Identity Foundation Federation Utility to automatically update my web.config with entries required to use Azure ACS as my Identity Provider.&lt;br /&gt;5. Add the following entry to web.config to force authentication when an attempt is made to access the account/signin page&lt;br /&gt;&lt;location path="Account"&gt;    &lt;system.web&gt;      &lt;authorization&gt;        &lt;deny users="?"&gt;      &lt;/deny&gt;&lt;/authorization&gt;    &lt;/system.web&gt;  &lt;/location&gt;&lt;br /&gt;So far so good.I fired it up locally and it worked a treat.&lt;br /&gt;&lt;br /&gt;I then added the configuration on the Azure ACS for my Azure hosted version of the solution, using the public facing URL.&lt;br /&gt;Before deploying to Azure, you need to consider what is installed in the GAC on the target machine - in short, not a lot. To overcome this you need to bundle the MVC3 DLL dependencies into your bin folder - known as "Bin Deploying". This is a little clumsy, so there is a handy feature in MVC3 which packages the dependent binaries required on the Azure host.&lt;br /&gt;&lt;br /&gt;To use this feature, right click on your MVC3 project and choose: "Add Deployable Dependencies". In the dialog select "ASP.NET MVC". This puts all of these tenuous dependencies in place. *Do NOT select "ASP.NET Web Pages with Razor syntax" - this is NOT what it seems.&lt;br /&gt;&lt;br /&gt;This will create/update a folder named _bin_DeployableAssemblies containing all of the non-GAC'd DLL's that you need. At compile time these assemblies are automatically copied across to you bin folder.&lt;br /&gt;&lt;br /&gt;With the bin folder ready and the project deployed to the cloud, the ACS authentication simply doesn't kick in, so why?&lt;br /&gt;&lt;br /&gt;I retraced my steps and through trial and error and some educated guesses found that the problem was with the _bin_DeployableAssemblies entries, specifically the WebMatrix.WebData dll: a security plugin that clashes with the Microsoft.Identity namespace&lt;br /&gt;&lt;br /&gt;Once I knew what the problem was, it was then easy to find someone else who had blogged about this&lt;br /&gt;&lt;a href="http://brockallen.wordpress.com/2011/06/01/beware-bin-deployment-of-mvc-and-razor-with-formsauthentication/"&gt;http://brockallen.wordpress.com/2011/06/01/beware-bin-deployment-of-mvc-and-razor-with-formsauthentication/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Copied from this post...&lt;br /&gt;&lt;br /&gt;What’s happening is that when you ~/bin deploy MVC and Razor, the Razor DLLs are auto-registering some pre-App_Start code to run (which I thought was a neat idea, until now). For the curious it’s WebMatrix.WebData.PreApplicationStartCode.SetupFormsAuthentication from WebMatrix.WebData.dll. If this assembly is not ~/bin deployed then this pre-App_Start code doesn’t run. This pre-App_Start code will force Forms authentication to be enabled (with the login URL at the aforementioned path) unless it finds config data telling it otherwise. Here’s the kicker: the absence of any config data is sufficient to enable this feature. You have to explicitly disable it (as described above). This is quite annoying.&lt;br /&gt;&lt;br /&gt;I concur, annoying! Phil Haack has a good post on bin deploying assemblies.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx"&gt;http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;*this is the key problem, to quote Phil Haack "When building an ASP.NET MVC application, you only need to check the first option. Ignore the fact that the second one says "Razor". ASP.NET Web Pages with Razor syntax was the official full name of the product we simply call ASP.NET Web Pages now. Yeah, it’s confusing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-4330728937354882260?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/4330728937354882260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=4330728937354882260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/4330728937354882260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/4330728937354882260'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2011/10/azure-acs-mvc3-caution.html' title='Azure, ACS &amp; MVC3 Caution'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-357046270171929297</id><published>2011-01-16T22:35:00.001Z</published><updated>2011-01-16T22:35:26.689Z</updated><title type='text'>Building secure, authenticated WCF services for Windows Phone 7 using the ASPNET membership framework</title><content type='html'>&lt;p&gt;&amp;nbsp; &lt;p&gt;I have done a bit of digging around in order to work out how to "go public" with many of the internal facing services that are offered to our enterprise and applications. &lt;p&gt;With the exception of 1 or 2 web services that we expose to our partners on a private circuit, we do not have any public web services so our security considerations to-date have been very different. &lt;p&gt;We use ASPNET membership as the basis for our authorisation and authentication so it makes sense to re-use this for our phone applications. In later posts I will look at how federation can be used to achieve a more seamless login approach. &lt;p&gt;This particular approach uses the "stateless" model where credentials are passed for every service call. There are other options which I will cover in later posts. &lt;p&gt;&lt;b&gt;Pre-requisites&lt;/b&gt; &lt;p&gt;1. Admin/sa access to SQL Server 2005 or 2008 &lt;p&gt;2. A VeriSign SSL certificate or a certificate where the root CA is VeriSign (such as a GoDaddy issued cert for use with SSL) &lt;p&gt;3. Visual Studio 2010 with the Windows Phone 7 emulator and tools &lt;p&gt;Anyway, I have broken this into stages on the basis that you may already have some of the below in place or ready - that was my situation, if so jump to Step 3.&lt;br&gt; &lt;h3&gt;&amp;nbsp;&lt;/h3&gt; &lt;h3&gt;Step 1: Creating the ASPNET membership database&lt;/h3&gt; &lt;p&gt;&lt;i&gt;Goal: Create the database, roles and associated stored procedures to support the ASPNET membership framework&lt;/i&gt; &lt;p&gt;I'm using a local instance of SQL Server 2008 R2 but this will work equally well on 2005 or SQLExpress. Launch SQL Server management studio and create a new database, let's call it ASPNET&lt;br&gt;&lt;/p&gt; &lt;p&gt;Run the following command from the Framework libraries. This needn't be in the V4 library as I have been using this since .NET V2.0&lt;br&gt;C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe&lt;br&gt;Running this without any command line parameters will launch the wizard which keeps things simple&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_goV1h8rKlTo/TTNyanQOnpI/AAAAAAAAABw/O2tkget4CF0/s1600-h/Image%281%29%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(1)" border="0" alt="Image(1)" src="http://lh4.ggpht.com/_goV1h8rKlTo/TTNybEIopaI/AAAAAAAAAB0/u6vo47rTDiA/Image%281%29_thumb.png?imgmax=800" width="244" height="187"&gt;&lt;/a&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_goV1h8rKlTo/TTNyb-oQDQI/AAAAAAAAAB4/EsckW1nDWlE/s1600-h/Image%282%29%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(2)" border="0" alt="Image(2)" src="http://lh3.ggpht.com/_goV1h8rKlTo/TTNycn0dqYI/AAAAAAAAAB8/q_JLR4lYk2E/Image%282%29_thumb.png?imgmax=800" width="244" height="191"&gt;&lt;/a&gt; &lt;p&gt;Confirm your settings in the wizard and all of the default tables for the ASPNET membership, roles, personalisation, applications etc. with associated stored procedures have been created for you. &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_goV1h8rKlTo/TTNydOmbSLI/AAAAAAAAACA/_4V8lEZmNJU/s1600-h/Image%283%29%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(3)" border="0" alt="Image(3)" src="http://lh6.ggpht.com/_goV1h8rKlTo/TTNyd_VP2oI/AAAAAAAAACE/GGMKzPLct98/Image%283%29_thumb.png?imgmax=800" width="184" height="244"&gt;&lt;/a&gt; &lt;p&gt;&amp;nbsp; &lt;h3&gt;Step 2: Tools to manage the ASPNET membership data&lt;/h3&gt; &lt;p&gt;&lt;i&gt;Goal: Demonstrate how to configure users and roles within the ASPNET tables&lt;/i&gt; &lt;p&gt;In my case at least, we have developed a custom tool for managing our authentication and authorisation data, but Microsoft (as part of the ASP.NET experience in Visual Studio) have created a nice tool to get you going. &lt;p&gt;In Visual Studio 2010 (this is also available in 2008) create a new ASP.NET web application. The standard template will create all of the membership tables and stored procedures for you in a local .mdf as well as a simple project with a login control that makes use of the membership framework. We will make use of this standard template later for testing our configuration. &lt;p&gt;To see the admin UI, simply select "Project--&amp;gt; ASP.NET Configuration" from within VS and this will launch the following admin site - for free! &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_goV1h8rKlTo/TTNyecQhLqI/AAAAAAAAACI/9BsnhhDPvjM/s1600-h/Image%284%29%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(4)" border="0" alt="Image(4)" src="http://lh5.ggpht.com/_goV1h8rKlTo/TTNyfJn9WMI/AAAAAAAAACM/33pznaBtqDc/Image%284%29_thumb.png?imgmax=800" width="244" height="87"&gt;&lt;/a&gt; &lt;p&gt;This points to a local SQLExpress .mdf so&amp;nbsp; we need to change the configuration slightly to point at our SQL 2008 database. &lt;p&gt;In the web.config for the site, change the following entries in line with the database that contains your membership schema, for this example it is my local machine "." with a database of ASPNET &lt;div style="line-height: normal"&gt;&lt;span style="line-height: normal; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font-family: ; white-space: normal; orphans: 2; letter-spacing: normal; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;span style="line-height: normal; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font-family: ; white-space: normal; orphans: 2; letter-spacing: normal; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;b&gt;&lt;font face="Tahoma"&gt;&lt;font style="font-size: 13.6pt" color="#000000"&gt;Before&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;span style="line-height: normal; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font-family: ; white-space: normal; orphans: 2; letter-spacing: normal; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;connectionStrings&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;add&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;ApplicationServices&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;connectionString&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;providerName&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;System.Data.SqlClient&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;connectionStrings&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;b&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt;After&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt; &lt;div align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;connectionStrings&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;add&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;ApplicationServices&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;connectionString&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;data source=.;Integrated Security=SSPI;Initial Catalog=ASPNET&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;providerName&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;System.Data.SqlClient&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;connectionStrings&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt; &lt;p&gt;It is worth reviewing the other entries in the web.config to familiarise yourself with the membership and role provider entries. &lt;p&gt;If you re-launch the admin tool you can now set up your users and roles.&amp;nbsp; &lt;p&gt;&amp;nbsp; &lt;h3&gt;Step 3 - Create the Users and Roles used in this example&lt;/h3&gt; &lt;p&gt;&lt;i&gt;Goal: Create some standard users and roles for this sample&lt;/i&gt; &lt;p&gt;For the purpose of this example, I am going to create the following users &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jon who is an administrator role &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sarah who has a user role &lt;p&gt;In the Web Site Administration Tool click on the Security tab &lt;p&gt;Enable Roles and then create the following roles &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin, user &lt;p&gt;Go back to the security home and create two users &lt;blockquote&gt; &lt;p&gt;jon (with an admin and user role) &lt;p&gt;sarah (with a user role)&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;the password used will be &lt;b&gt;Complex!&lt;/b&gt; &lt;p&gt;To test this set up, add the following code to the page load event of the web project. I have kept this simple as we are not really too interested in authentication and authorisation for standard asp.net web sites, but it is a good place to start. &lt;div style="line-height: normal" align="left"&gt;&lt;span style="line-height: normal; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font-family: ; white-space: normal; orphans: 2; letter-spacing: normal; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font style="font-size: 13.6pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;protected&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font style="font-size: 13.6pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font style="font-size: 13.6pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;Page_Load(&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font style="font-size: 13.6pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;sender,&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font style="font-size: 13.6pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font style="font-size: 13.6pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;e)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;(User.Identity.IsAuthenticated)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;(User.IsInRole(&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"admin"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;))&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"You have admin rights\n"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;(User.IsInRole(&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"user"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;))&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"You have standard user rights\n"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;else&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"You need to log in"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;p&gt; &lt;p&gt;By logging in and out of the site using the different usernames you can now see how content can be controlled using authentication (identifying the user) and authorisation (identifying the roles associated with the user). &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_goV1h8rKlTo/TTNyfwGZ_SI/AAAAAAAAACQ/EoU6KilDc8I/s1600-h/Image%285%29%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(5)" border="0" alt="Image(5)" src="http://lh6.ggpht.com/_goV1h8rKlTo/TTNygx5rprI/AAAAAAAAACU/bt2PyS_WPTk/Image%285%29_thumb.png?imgmax=800" width="244" height="171"&gt;&lt;/a&gt; &lt;h3&gt;&amp;nbsp;&lt;/h3&gt; &lt;h3&gt;Step 4: Creating a Silverlight Enabled WCF Service&lt;/h3&gt; &lt;p&gt;&lt;i&gt;Goal: Demonstrate how Silverlight and WCF work together&lt;/i&gt; &lt;p&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt; &lt;p&gt;Silverlight and moreover&amp;nbsp; WinPhone7 has a restricted set of WCF capabilities. In order to authenticate the user for a WCF call we have to send the username/password in clear text in the SOAP header. DON'T PANIC. By using https and some simple config all of the heavy lifting is done for us. &lt;p&gt;1. Add a &lt;b&gt;WCF Service Application&lt;/b&gt; project named SimpleService &lt;p&gt;2. Delete the default Service.svc and IService.cs &lt;p&gt;3. Add a new item from the Silverlight item templates: &lt;b&gt;Silverlight-enabled WCF Service&lt;/b&gt;. Call this Simple.cs &lt;p&gt;4. Change the Simple.svc code to reflect the following code &lt;div style="line-height: normal" align="left"&gt;&lt;span style="line-height: normal; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font-family: ; white-space: normal; orphans: 2; letter-spacing: normal; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;span style="line-height: normal; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font-family: ; white-space: normal; orphans: 2; letter-spacing: normal; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;namespace&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font style="font-size: 13.6pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;SimpleService&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;ServiceContract&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;(Namespace =&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;""&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;)]&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;AspNetCompatibilityRequirements&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;(RequirementsMode =&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;AspNetCompatibilityRequirementsMode&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;.Allowed)]&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;class&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;Simple&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;OperationContract&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;]&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;bool&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;DoWork()&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;return&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;true&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;p&gt;It is worth reviewing and digesting the generated WCF config before it is modified... &lt;div style="line-height: normal" align="left"&gt;&lt;span style="line-height: normal; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font-family: ; white-space: normal; orphans: 2; letter-spacing: normal; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;span&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font style="font-size: 13.6pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;binding&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font style="font-size: 13.6pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font style="font-size: 13.6pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#0000ff" size="1"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family: "&gt;&lt;font color="#0000ff"&gt;SimpleService.Simple.customBinding0&lt;/font&gt;&lt;/span&gt;&lt;font color="#010101" size="1"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;binaryMessageEncoding&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;httpTransport&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;binding&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;p&gt;A custom binding has been created in order to make Silverlight apps faster, essentially this is standard http with binaryMessageEncoding. The binary encoding will typically make the XML on the wire 30-40%&amp;nbsp; smaller. &lt;p&gt;At this stage I like to create a unit test. The unit test will simple add a reference to this service to ensure that all is well. &lt;h3&gt;&amp;nbsp;&lt;/h3&gt; &lt;h3&gt;Step 5: Re-configure the service to use https&lt;/h3&gt; &lt;p&gt;&lt;i&gt;Goal: Set up https on IIS and WCF&lt;/i&gt; &lt;p&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt; &lt;p&gt;This is not complicated but requires a bit of care. &lt;p&gt;1. Create a new application on your local IIS instance call SimpleService&amp;nbsp; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_goV1h8rKlTo/TTNyiUxuQHI/AAAAAAAAACY/MCVOHPiJTJY/s1600-h/Image%286%29%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(6)" border="0" alt="Image(6)" src="http://lh6.ggpht.com/_goV1h8rKlTo/TTNyjNVWA_I/AAAAAAAAACc/01i0F6ba-UI/Image%286%29_thumb.png?imgmax=800" width="211" height="97"&gt;&lt;/a&gt; &lt;p&gt;2. Open up the Server Certificates and use this to install/import your Verisign issued cert. Note: this must be the cert that contains the PRIVATE key&amp;nbsp; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_goV1h8rKlTo/TTNykS9HnNI/AAAAAAAAACg/pfhcFqtj65A/s1600-h/Image%287%29%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(7)" border="0" alt="Image(7)" src="http://lh5.ggpht.com/_goV1h8rKlTo/TTNylR4sLwI/AAAAAAAAACk/qzvDnq3QuQU/Image%287%29_thumb.png?imgmax=800" width="244" height="103"&gt;&lt;/a&gt; &lt;p&gt;3. Click on the website instance where this app is created (Default Web Site in my case) and then click on the bindings link. Associated https: on port 443 with the certificate. You may need to add https if it doesn't already exist. &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_goV1h8rKlTo/TTNymJ0hQuI/AAAAAAAAACo/euJDVVs5e-4/s1600-h/Image%288%29%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(8)" border="0" alt="Image(8)" src="http://lh3.ggpht.com/_goV1h8rKlTo/TTNynEFXnCI/AAAAAAAAACs/m1zBqj36klA/Image%288%29_thumb.png?imgmax=800" width="207" height="217"&gt;&lt;/a&gt; &lt;a href="http://lh4.ggpht.com/_goV1h8rKlTo/TTNyoGjEYAI/AAAAAAAAACw/WD_X9Ehs18E/s1600-h/Image%289%29%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(9)" border="0" alt="Image(9)" src="http://lh5.ggpht.com/_goV1h8rKlTo/TTNyo-aiePI/AAAAAAAAAC0/Jj2p9uCMz-E/Image%289%29_thumb.png?imgmax=800" width="244" height="122"&gt;&lt;/a&gt; &lt;p&gt;4. Now that we have https enabled, update our Simple service to make use of it. Fortunately this is very easy. &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Modify the web.config binding entry on the service to read httpsTransport &lt;p&gt;Before &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt; httpTransport /&amp;gt; &lt;p&gt;After &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt; httpsTransport /&amp;gt; &lt;p&gt;If you have a unit test then update the app.config entry as above and update the address to point at the IIS server (instead of the local project instance).&amp;nbsp; &lt;p&gt;You will need to publish the service to the IIS server.&amp;nbsp; &lt;p&gt;Once published, now is a good time to try and browse to the service to make sure that it is still working. &lt;p&gt;The SSL certificate will&amp;nbsp; be for a public URL, so when browsing to https://localhost/SimpleService/Simple.svc (for example) you will see &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_goV1h8rKlTo/TTNypfB-4jI/AAAAAAAAAC4/grk09FZdDAY/s1600-h/Image%2810%29%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(10)" border="0" alt="Image(10)" src="http://lh6.ggpht.com/_goV1h8rKlTo/TTNyqJnGJdI/AAAAAAAAAC8/ActEBwwlh2o/Image%2810%29_thumb.png?imgmax=800" width="244" height="96"&gt;&lt;/a&gt; &lt;p&gt;To overcome this, add an entry into your hosts file, found in C:\Windows\System32\drivers\etc &lt;p&gt;127.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mywebsite.com &lt;p&gt;Where mywebsite.com is the URL that the certificate is registered to. &lt;p&gt;Browsing to https://mywebsite.com/SimpleService/Simple.svc should now take you to your service without complaining &lt;p&gt;As a checkpoint, use your unit test to call the updated service before continuing. &lt;h3&gt;&amp;nbsp;&lt;/h3&gt; &lt;h3&gt;Step 6: Adding the membership provider to the service&lt;/h3&gt; &lt;p&gt;&lt;i&gt;Goal: Use configuration to integrate WCF with the ASPNET membership provider&lt;/i&gt; &lt;p&gt;Rather than walk you through this, the inline comments are probably clearer. Key points to note are the membership provider entry and the corresponding reference to it in service credentials section of the binding. &lt;p&gt;Update your web.config as follows (essentially replace all of the corresponding sections as below). &lt;p&gt;&amp;nbsp; &lt;div style="line-height: normal" align="left"&gt;&lt;span style="line-height: normal; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font-family: ; white-space: normal; orphans: 2; letter-spacing: normal; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;connectionStrings&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#008000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;Connection used to point to the ASPNET membership provider database&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;--&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;add&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;ApplicationServices&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;connectionString&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;data source=.;User Id=membershipuser; Password=membershippwd;Initial Catalog=ASPNET&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;providerName&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;System.Data.SqlClient&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;connectionStrings&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;system.web&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;compilation&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;debug&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;true&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;targetFramework&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;4.0&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp; /&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#008000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;Configure the Sql Membership Provider&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;--&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;membership&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;defaultProvider&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;AspNetSqlMembershipProvider&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;userIsOnlineTimeWindow&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;15&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;providers&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;clear&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;add&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;AspNetSqlMembershipProvider&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;type&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;System.Web.Security.SqlMembershipProvider&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;connectionStringName&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;ApplicationServices&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;enablePasswordRetrieval&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;false&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;enablePasswordReset&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;true&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;requiresQuestionAndAnswer&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;false&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;requiresUniqueEmail&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;false&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;maxInvalidPasswordAttempts&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;5&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;minRequiredPasswordLength&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;6&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;minRequiredNonalphanumericCharacters&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;0&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;passwordAttemptWindow&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;applicationName&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;providers&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;membership&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;system.web&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;system.serviceModel&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;bindings&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;customBinding&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;binding&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;SimpleService.Simple.customBinding0&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;security&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;authenticationMode&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;UserNameOverTransport&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#008000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;Placeholder. Add attribute for such things as including Timestamp and Authentication modes&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;--&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;secureConversationBootstrap&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;security&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#008000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;Optimal way to transmit compressed XML SOAP messages&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;--&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;binaryMessageEncoding&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#008000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;Configure https&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;--&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;httpsTransport&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;binding&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;customBinding&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;bindings&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;services&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;service&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;SimpleService.Simple&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;endpoint&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;address&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;""&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;binding&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;customBinding&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;bindingConfiguration&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;SimpleService.Simple.customBinding0&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;contract&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;SimpleService.Simple&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;endpoint&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;address&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;mex&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;binding&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;mexHttpBinding&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;contract&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;IMetadataExchange&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;service&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;services&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;behaviors&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;serviceBehaviors&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;behavior&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;serviceMetadata&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;httpGetEnabled&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;true&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;serviceDebug&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;includeExceptionDetailInFaults&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;true&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#008000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;specify how the credentials are verified&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;--&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;serviceCredentials&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#008000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;Use the aspnet membership provider&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;--&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;userNameAuthentication&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;userNamePasswordValidationMode&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;MembershipProvider&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;membershipProviderName&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;AspNetSqlMembershipProvider&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;serviceCredentials&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;behavior&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;serviceBehaviors&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;behaviors&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;serviceHostingEnvironment&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;aspNetCompatibilityEnabled&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;true&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;multipleSiteBindingsEnabled&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;true&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;system.serviceModel&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;h3&gt;&amp;nbsp;&lt;/h3&gt; &lt;h3&gt;Step 7 - Calling the service.&lt;/h3&gt; &lt;p&gt;Update your web reference from the unit test and call the service as follows. Note how credentials are passed in through the proxy. To get the required client config it is probably easier to delete and recreate the web reference. Note how credentials are passed in through the proxy in the calling code. &lt;div style="line-height: normal" align="left"&gt;&lt;span style="line-height: normal; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font-family: ; white-space: normal; orphans: 2; letter-spacing: normal; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font style="font-size: 13.6pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;TestMethod&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;]&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;TestMethod1()&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ServiceReference1.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;SimpleClient&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;proxy =&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;ServiceReference1.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;SimpleClient&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;();&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proxy.ClientCredentials.UserName.UserName =&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"jon"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proxy.ClientCredentials.UserName.Password =&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"Complex!"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;bool&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Times New Roman"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;result = proxy.DoWork();&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;p&gt;You can now add the same to your Windows Phone app, using the asynchronous WCF approach of course. I created a simple ThisMobile.Phone application and called the https/aspnet service as follows. &lt;div style="line-height: normal" align="left"&gt;&lt;span style="line-height: normal; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font-family: ; white-space: normal; orphans: 2; letter-spacing: normal; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;font size="3"&gt;&lt;span&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;namespace&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#000000" face="Tahoma"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;ThisMobile.Phone&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;partial&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;class&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;MainPage&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;:&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;PhoneApplicationPage&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;MainPage()&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeComponent();&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loaded +=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;RoutedEventHandler&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;(MainPage_Loaded);&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;MainPage_Loaded(&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;sender,&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;RoutedEventArgs&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;e)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SimpleProxy.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;SimpleClient&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;proxy =&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;SimpleProxy.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;SimpleClient&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;();&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proxy.ClientCredentials.UserName.UserName =&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"jon"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proxy.ClientCredentials.UserName.Password =&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"Complex!"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proxy.DoWorkCompleted +=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size: 9pt"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&amp;lt;SimpleProxy.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;DoWorkCompletedEventArgs&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;gt;(client_DoWorkCompleted);&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proxy.DoWorkAsync();&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;client_DoWorkCompleted(&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;sender, SimpleProxy.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#2b91af" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;DoWorkCompletedEventArgs&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;e)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LoggedInStatus.Text =&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Times New Roman"&gt; &lt;/font&gt;&lt;font color="#a31515" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;"Logged id, hurray"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="line-height: normal" align="left"&gt;&lt;font size="3"&gt;&lt;font color="#010101" size="1" face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size: 9pt"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;p&gt;Hope this was useful.... &lt;p&gt;Cheers - Jon. &lt;h3&gt;&amp;nbsp;&lt;/h3&gt; &lt;h3&gt;References:&lt;/h3&gt; &lt;p&gt;&lt;b&gt;patterns &amp;amp; practices: WCF Security Guidance&lt;/b&gt; &lt;p&gt;&lt;a href="http://wcfsecurity.codeplex.com/"&gt;http://wcfsecurity.codeplex.com/&lt;/a&gt; &lt;p&gt;&lt;b&gt;Configuring Secure Sockets Layer in IIS 7&lt;/b&gt; &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc771438(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/cc771438(WS.10).aspx&lt;/a&gt; &lt;p&gt;&lt;b&gt;WCF Services and ASP.NET (Hosting side by side)&lt;/b&gt; &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa702682.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa702682.aspx&lt;/a&gt; &lt;p&gt;&lt;a&gt;&lt;strong&gt;WCF, ASP.NET Membership Provider and Authentication Service&lt;/strong&gt;&lt;/a&gt; &lt;p&gt;&lt;a href="http://stackoverflow.com/questions/56112/wcf-asp-net-membership-provider-and-authentication-service"&gt;http://stackoverflow.com/questions/56112/wcf-asp-net-membership-provider-and-authentication-service&lt;/a&gt; &lt;p&gt;&lt;b&gt;Configuring an ASP.NET application to use Membership&lt;/b&gt; &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/6e9y4s5t.aspx"&gt;http://msdn.microsoft.com/en-us/library/6e9y4s5t.aspx&lt;/a&gt; &lt;p&gt;&lt;b&gt;How to: Use the ASP.NET membership provider&lt;/b&gt; &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms731049.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms731049.aspx&lt;/a&gt; &lt;p&gt;&lt;b&gt;Manging shared cookies in WCF&lt;/b&gt; &lt;p&gt;&lt;a href="http://megakemp.wordpress.com/2009/02/06/managing-shared-cookies-in-wcf/"&gt;http://megakemp.wordpress.com/2009/02/06/managing-shared-cookies-in-wcf/&lt;/a&gt; &lt;p&gt;&lt;strong&gt;Cannot import wsdl:portType&lt;/strong&gt; &lt;p&gt;&lt;a href="http://forums.silverlight.net/forums/p/117406/335336.aspx"&gt;http://forums.silverlight.net/forums/p/117406/335336.aspx&lt;/a&gt; &lt;p&gt;&lt;strong&gt;WCF Binary Bindings in Silverlight 3&lt;/strong&gt; &lt;p&gt;&lt;a href="http://johnpapa.net/silverlight/wcf-binary-bindings-in-silverlight-3/"&gt;http://johnpapa.net/silverlight/wcf-binary-bindings-in-silverlight-3/&lt;/a&gt; &lt;p&gt;&lt;b&gt;Whats new with web services in Silverlight 3 Beta&lt;/b&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/silverlightws/archive/2009/03/20/what-s-new-with-web-services-in-silverlight-3-beta.aspx"&gt;http://blogs.msdn.com/b/silverlightws/archive/2009/03/20/what-s-new-with-web-services-in-silverlight-3-beta.aspx&lt;/a&gt; &lt;p&gt;&lt;b&gt;Consuming web services in Silverlight 3&lt;/b&gt; &lt;p&gt;&lt;a href="http://videos.visitmix.com/MIX09/T42F"&gt;http://videos.visitmix.com/MIX09/T42F&lt;/a&gt; &lt;p&gt;(Security piece from 30 mins in) &lt;p&gt;&lt;b&gt;Fiddler and the Windows Phone 7 Emulator&lt;/b&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/fiddler/archive/2010/10/15/fiddler-and-the-windows-phone-emulator.aspx"&gt;http://blogs.msdn.com/b/fiddler/archive/2010/10/15/fiddler-and-the-windows-phone-emulator.aspx&lt;/a&gt; &lt;p&gt;&lt;b&gt;Access control and Identity on WP7&lt;/b&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/card/archive/2010/11/06/access-control-for-windows-phone-7-apps.aspx"&gt;http://blogs.msdn.com/b/card/archive/2010/11/06/access-control-for-windows-phone-7-apps.aspx&lt;/a&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-357046270171929297?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/357046270171929297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=357046270171929297' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/357046270171929297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/357046270171929297'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2011/01/building-secure-authenticated-wcf.html' title='Building secure, authenticated WCF services for Windows Phone 7 using the ASPNET membership framework'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_goV1h8rKlTo/TTNybEIopaI/AAAAAAAAAB0/u6vo47rTDiA/s72-c/Image%281%29_thumb.png?imgmax=800' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-9062889133254356123</id><published>2010-07-21T16:25:00.001+01:00</published><updated>2010-07-21T16:25:07.293+01:00</updated><title type='text'>Lambda, delegate, anonymous &amp; implicit goodness in C#</title><content type='html'>&lt;p&gt;Spent last night reading up on some of the finer points of C# in Jon Skeet’s excellent book C# in depth (&lt;a title="http://manning.com/skeet/" href="http://manning.com/skeet/"&gt;http://manning.com/skeet/&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;I have introduced some of the newly learned syntaxes into my DSL parser. I have included a step by step explanation of some of these syntaxes that may appear alien to a .NET 2.0 developer.&lt;/p&gt;  &lt;p&gt;I created an inline delegate function to be used within my tokeniser function to determine if a string character was a double or single quote as follows:-&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: #2b91af; font-size: 10pt"&gt;Func&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt"&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;,&lt;span style="color: blue"&gt;bool&lt;/span&gt;&amp;gt; IsQuote = a=&amp;gt;(&lt;span style="color: blue"&gt;new&lt;/span&gt; [] {&lt;span style="color: #a31515"&gt;&amp;quot;\&amp;quot;&amp;quot;&lt;/span&gt;,&lt;span style="color: #a31515"&gt;&amp;quot;'&amp;quot;&lt;/span&gt;}).Contains(a);      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;...and called within the same function...   &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt"&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (IsQuote(c))&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt"&gt;{&lt;font color="#008080"&gt;//do something&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt"&gt;}&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt"&gt;&lt;/span&gt;    &lt;p&gt;Breaking this down into it’s constituent parts we have&lt;/p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Cambria&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt"&gt;Part 1&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; background: yellow; color: #2b91af; font-size: 10pt; mso-highlight: yellow"&gt;Func&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; background: yellow; font-size: 10pt; mso-highlight: yellow"&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;,&lt;span style="color: blue"&gt;bool&lt;/span&gt;&amp;gt; IsQuote&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt"&gt; = a=&amp;gt;(&lt;span style="color: blue"&gt;new&lt;/span&gt; [] {&lt;span style="color: #a31515"&gt;&amp;quot;\&amp;quot;&amp;quot;&lt;/span&gt;,&lt;span style="color: #a31515"&gt;&amp;quot;'&amp;quot;&lt;/span&gt;}).Contains(a);&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Declare (a pointer to) a function that accepts a string parameter and returns a bool. This uses the Func&amp;lt;T,U&amp;gt; type, the last generic always representing the return type.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Cambria&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt"&gt;Part 2&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: #2b91af; font-size: 10pt"&gt;Func&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt"&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;,&lt;span style="color: blue"&gt;bool&lt;/span&gt;&amp;gt; IsQuote = &lt;span style="background: yellow; mso-highlight: yellow"&gt;a=&amp;gt;(&lt;span style="color: blue"&gt;new&lt;/span&gt; [] {&lt;span style="color: #a31515"&gt;&amp;quot;\&amp;quot;&amp;quot;&lt;/span&gt;,&lt;span style="color: #a31515"&gt;&amp;quot;'&amp;quot;&lt;/span&gt;}).Contains(a);&lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Assign the function definition to this function pointer. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;“a” is an implicit (string) type as it represents the first parameter in the function so the string declaration can be dropped   &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;“a=&amp;gt;” is shorthand for delegate (string a){...}   &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;A more verbose version might look like this…&lt;/p&gt;  &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: #2b91af; font-size: 10pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-no-proof: yes"&gt;Func&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-no-proof: yes"&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;, &lt;span style="color: blue"&gt;bool&lt;/span&gt;&amp;gt; IsQuoteAlso;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-no-proof: yes"&gt;IsQuoteAlso = &lt;span style="color: blue"&gt;delegate&lt;/span&gt;(&lt;span style="color: blue"&gt;string&lt;/span&gt; a) { &lt;span style="color: blue"&gt;return&lt;/span&gt; a == &lt;span style="color: #a31515"&gt;&amp;quot;\&amp;quot;&amp;quot;&lt;/span&gt; || a == &lt;span style="color: #a31515"&gt;&amp;quot;'&amp;quot;&lt;/span&gt;; };      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&amp;#160;&lt;b&gt;&lt;span style="font-family: &amp;quot;Cambria&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt"&gt;Part 3       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: #2b91af; font-size: 10pt"&gt;Func&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt"&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;,&lt;span style="color: blue"&gt;bool&lt;/span&gt;&amp;gt; IsQuote = a=&amp;gt;(&lt;span style="background: yellow; color: blue; mso-highlight: yellow"&gt;new&lt;/span&gt;&lt;span style="background: yellow; mso-highlight: yellow"&gt; [] {&lt;span style="color: #a31515"&gt;&amp;quot;\&amp;quot;&amp;quot;&lt;/span&gt;,&lt;span style="color: #a31515"&gt;&amp;quot;'&amp;quot;&lt;/span&gt;}&lt;/span&gt;).Contains(a);&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Create a new array of strings using an implicit declaration (the compiler figures out that this is a new array of strings) and then call the contains method.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The next question is, will these syntaxes become part of everyday development; will a “regular” developer be able to work with these new shortcuts. Time will tell.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Jon.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-9062889133254356123?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/9062889133254356123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=9062889133254356123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/9062889133254356123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/9062889133254356123'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2010/07/lambda-delegate-anonymous-implicit.html' title='Lambda, delegate, anonymous &amp;amp; implicit goodness in C#'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-4636368295427765096</id><published>2010-07-08T22:41:00.001+01:00</published><updated>2010-07-08T22:41:12.373+01:00</updated><title type='text'>StringBuilder &amp; Reflection performance myths?</title><content type='html'>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Following feedback from recent system testing I looked into a performance issue in my .NET based DSL interpreter. The interpreter coverts the travel industry DSL into .NET CLR calls through reflection.&lt;/p&gt;  &lt;p&gt;I started by creating a unit test which performed a where clause on the result of a where clause where the target list was 1000 records. &lt;/p&gt;  &lt;p&gt;The DSL looked something like this&lt;/p&gt;  &lt;p&gt;@result=Itinerary.Notes.Where(Value Contains “Hello”).Where(Value EndsWith “World”)&lt;/p&gt;  &lt;p&gt;This chained approach resulted 2000 iterations and took 5 seconds to execute.&lt;/p&gt;  &lt;p&gt;I assumed that reflection was the problem so I reran my performance unit test after adding caching to my ExpressionTree. I was surprised to learn that the improvement was negligible (from 5.1 seconds to 5 seconds). The intention was to reduce the number of reflection calls based upon “common wisdom” that reflection is slow.&lt;/p&gt;  &lt;p&gt;I then ran the VS2008 Performance Explorer/Wizard over the interpreter and spotted that a derived String.Concat method was using up the majority of working memory at runtime. I fixed this in the heaviest used method which tokenises the script before passing it to the expression parser (replacing a simple &lt;b&gt;activeToken += currentChar &lt;/b&gt;style approach with a &lt;b&gt;StringBuilder.Append(currentChar)&lt;/b&gt; approach).&lt;/p&gt;  &lt;p&gt;There were some interesting results...the following unit test demonstrates how a pre-initialised string builder can introduce a MASSIVE improvement in runtime speed. String concatenation is extremely slow, the string builder extremely fast and the reflection calls (contrary to common wisdom) are in fact really fast.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_goV1h8rKlTo/TDZF8uH1ZqI/AAAAAAAAABc/O4LxQXMzask/s1600-h/image%5B5%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_goV1h8rKlTo/TDZF9rS8fTI/AAAAAAAAABg/OFXCJ4ue6Ho/image_thumb%5B3%5D.png?imgmax=800" width="430" height="399" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Results:&lt;/strong&gt;&lt;/p&gt; 00:00:16.2104000  &lt;br /&gt;00:00:00  &lt;br /&gt;00:00:00.0780000    &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-4636368295427765096?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/4636368295427765096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=4636368295427765096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/4636368295427765096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/4636368295427765096'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2010/07/stringbuilder-reflection-performance.html' title='StringBuilder &amp;amp; Reflection performance myths?'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_goV1h8rKlTo/TDZF9rS8fTI/AAAAAAAAABg/OFXCJ4ue6Ho/s72-c/image_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-2698016112120032924</id><published>2010-01-18T18:33:00.004Z</published><updated>2010-01-18T18:41:29.469Z</updated><title type='text'>XAML Editor Missing in VS2008 64bit with Windows 7</title><content type='html'>I'm not sure if this a 64 bit problem, a Windows 7 problem or just a VS2008 SP1 problem but I have been pulling out the little hair that I have left trying to get the intellisense working for XAML files on my new install. At best, I could get the files to be opened up in the XML editor, but the WPF editor was missing.&lt;br /&gt;&lt;br /&gt;Fortunately I found this &lt;a href="http://www.tmgirvin.com/2009/07/xaml-designer-missing-in-vs2008.html"&gt;post&lt;/a&gt;. There were plenty of partial solutions but strangely two solutions had to be combined&lt;br /&gt;&lt;br /&gt;1. Run devenv /setup from the VS command prompt in admin mode&lt;br /&gt;2. Follow this with devenv /resetskippkgs&lt;br /&gt;&lt;br /&gt;Job done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-2698016112120032924?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/2698016112120032924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=2698016112120032924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/2698016112120032924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/2698016112120032924'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2010/01/xaml-editor-missing-in-vs2008-64bit.html' title='XAML Editor Missing in VS2008 64bit with Windows 7'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-615077801209052232</id><published>2009-08-29T00:33:00.002+01:00</published><updated>2009-08-29T00:37:44.976+01:00</updated><title type='text'>Re-use throughout the .NET stack - from discreet functions to ESB's</title><content type='html'>&lt;p&gt;I have had this conversation with myself and my peers hundreds of times. Should we re-use, should we version and branch the code base, should we create small discreet web services. are we following the single responsibility principle of SOLID, why do we have so many web service calls, how do we achieve loose coupling, when do we compromise principles for performance &amp;amp; speed-to-market.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Whenever I enter into a conversation about re-use the discussion often gets heated as a result of the following...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Re-use contradictions&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Re-use should be encouraged: why maintain the same logic in multiple places?&lt;br /&gt;Re-use should be discouraged: re-use introduces unnecessary dependencies in your code and discourages refactoring and progress.&lt;br /&gt;&lt;br /&gt;Use versioning to ensure that changes to shared code do not introduce breaking changes&lt;br /&gt;Do not version code, write enough unit tests to ensure that changes are not breaking and keep everyone on the latest version.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Re-use should be planned. Effort up front to make code re-usable will save time in the long run.&lt;br /&gt;Re-use should be realised, not planned. Planning re-use wastes valuable resources for something that may never be realised.&lt;br /&gt;&lt;br /&gt;Code should be written such that re-use is possible.&lt;br /&gt;Code should be written to meet known requirements.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I don't think that there is one answer. There is no rule of thumb, no silver bullet, but hopefully this will be food for thought. From my recent years working on a major SOA development this is my viewpoint to date:-&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Variables/Fields&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Arguably the lowest level of granularity in modern times (ignoring the old school guys who enjoy passing bits and bytes through registers) the variable should never be re-used.&lt;br /&gt;On the basis that a function should not be more that 15-20 lines, variables should be used for a single purpose only. No exceptions. Re-using an iteration variable, such as the infamous "for(i..." should not be necessary if the function is short. Re-using variables introduces bugs as a) variables need to be re-initialised which is often missed, and b) it normally means that functions are too long - a sign of fragile code.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Local Function Re-use&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;With modern refactoring tools such as Refactor from DevExpress, function re-use should be actively encouraged. Twinned with the idea that functions should be less that 20 lines, constant refactoring is necessary to keep the code clean, readable and testable. These small functions mean that re-use becomes possible because the functions perform a single task - a tasks that is often required by other functions within your code. Adding unit tests to your solution to tests both the re-used (or potential re-usable) functions as well as the consumers of these functions ensures that breaking changes are limited. Versioning should not be necessary in order to avoid breaking changes - unit tests replace the cautious versioning approach and re-factoring tools identify the dependencies.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Library function re-use and versioning &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;By definition, when a library functions is created or realised as a result of a re-factoring exercise, there is known or planned re-use.&lt;br /&gt;There is an expectation that library functions should a) be versioned, and b) be backwardly compatible. The versioning approach allows clients to choose when they move to the latest version yet comes from a nervousness that changes will be breaking. The backwardly compatible expectation contradicts the versioning argument: either the library is backwardly compatible in every respect _or_ a new version is needed because breaking changes have been introduced with the latest changes. Again, unit tests can help here and can avoid the need for versioning and branching of the library code base.&lt;br /&gt;&lt;br /&gt;Versioning should only be used to denote additions to the library that are not available in previous versions, NOT as a mechanism to avoid shift responsibility to the client to recognise bugs and breaking changes in the latest version of the library. In stark contradiction to this argument is the common practice of using major version to draw a line between the old and the new world. Major versions may decide to cut ties with the old world and no longer support many of the functions of previous versions, forcing a significant re-write or re-factor for existing clients. This decision is always subjective with a major factor being the size of the client base that is using the existing library.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Web Services&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Web services are the building blocks of a SOA. Whilst many argue that web services are not necessary for SOA, I have seen very few SOA implementations that use something other than SOAP web services or REST as the mechanism for achieving a loosely coupled distributed architecture. If SOAP/REST is not used, then some bespoke HTTP/XML combination is typically used. I will focus on SOAP services.&lt;br /&gt;&lt;br /&gt;One of the four well known tenets of SOA is "Services share schema and contract, not class". This by definition both encourages re-use yet imposes a restriction on what can and can't change. Clearly the underlying classes that implement the service logic can change independently of the schema and contract without breaking the client (assuming the changes do not upset the behaviour of the service), however, the contract itself becomes something that needs to be set in stone.&lt;br /&gt;&lt;br /&gt;The challenge of introducing a re-use tenet to web services is simply that not all web services are created equal.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Data services&lt;/strong&gt; can be uses to surface a data model as a web service. Re-use is expected and difficult to avoid as the underlying data model is surfaced with little or no abstraction other than a change in the transport mechanism (from ADO to SOAP for example). This makes for an extremely fragile service interface: a change to the data model breaks the web service; fixing the web service interface breaks the web service client(s). Not good. Re-use in unavoidable yet undesirable in this situation. You can easily infer that changes to the schema break the contract - something that should not happen, should it?&lt;br /&gt;&lt;br /&gt;A &lt;strong&gt;repository pattern &lt;/strong&gt;exposed as a web service improves the re-use story. The repository pattern uses business objects, or domain objects (or fragments of business/domain objects) as input/output parameters to methods. This approach maps the domain object (exposed by the web service schema) to the underlying database schema allowing the database schema to change independently of the web service schema. This is where an ORM tool can come in handy. This sounds like a good thing and in many ways it is, but there are some gotcha's&lt;br /&gt;&lt;br /&gt;1) There is a tendency to fabricate business/domain objects ahead of known requirements by logically dividing the database up into "entity views" over the database schema that "make sense". These views typically contain either too much data or require modification to meet the requirement of the client. The resultant contract is a compromise and prone to change causing problems with existing clients.&lt;br /&gt;&lt;br /&gt;2) Large object graphs exposed on the service boundary are a) desirable, as these discourage chatty web service interfaces by reducing the amount of calls necessary for persistence/retrieval operations, yet b) cause the interface to become brittle as changes to any area of the model/graph force a version change of the contract. These large object graphs also encourage re-use by clients that see the contract as containing "most" or "all" of what is needed. This compounds a bad situation - the service is re-used heavily, is transporting unwanted data and is fragile due to the large object graph and also encourages the client request ongoing changes to fulfil the missing 1% that is "just a minor tweak".&lt;br /&gt;&lt;br /&gt;The repository pattern, used appropriately, allows for re-use to be realised within the same business domain. Domain objects that are suffixed with Summary/Detail are probably too generic or contain too much information. A fine balance between a non-chatty interface, appropriate re-use and light-weight domain objects is the end goal here.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Business Objects&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Many of the arguments for re-using business objects are mirrored in the arguments for how and when to re-use web services - web services essentially replace the DCOM/COM+/Remoting options of old so I will not go into any detail on this.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Business processes and Service Composition &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Business processes in contrast to data services perform a specific task. These are seen as one of the higher levels of abstraction, by orchestrating services or aggregating content and logic from other services, business objects and data repositories. It is near impossible to re-use these processes for anything other than a single purpose. Any attempt to re-use business processes should be reviewed - is there enough re-use here? Have I written something to satisfy a business requirement or am I looking to satisfy a habit of trying to make everything re-usable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Inversion of Control &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;“Inversion of control” and “dependency injection” are terms used to describe classes that supports a pluggable provider model. The "provider" is a class that implements a specific behaviour as required by the hosting class to deliver "pluggable" logic via a pre-defined interface.&lt;br /&gt;&lt;br /&gt;This means that re-use can be looked at in a slightly different way. Rather than introducing fragility via a dependency between the client and the implementing class, stability is achieved through a defined interface and dependent classes are "injected". This removes the requirement to version and re-test the client every time an "injected" class changes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Business Events and ESBs &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Seen as the answer to re-use, scalability, loose coupling and hub-spoke monoliths, business events are arguably the next layer of abstraction on top of the development stack. A business event, such as "customer address changed" is published as a light-weight business oriented event. Systems or services that care about the event will subscribe to this message (via the Enterprise Service Bus) and then re-act to the event accordingly. The order processing system may re-retrieve the updated data from the customer repository to update outstanding orders; the CRM system may update it's mailing list to send the next promotional mail to the updated address.&lt;br /&gt;&lt;br /&gt;It will remain to be seen if this (relatively) new paradigm will introduce new considerations around re-use, but it is certainly an exciting development in the Enterprise development space.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;It would be easy to draw conclusion from this that could result in over architecting something that should be a simple piece of code; that additional layers of abstraction reduce the number of touch points ; that abstraction is a requirement for stability; that loose coupling is required to prevent fragile dependency chains; that an event driven architecture is the ultimate in re-use and flexibility. The truth is that the scale of the system will dictate how few or how many of these arguments are applicable to your solution. The one thing that is consistent is that unit testing is necessary to offer and evolve re-usable components with confidence.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-615077801209052232?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/615077801209052232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=615077801209052232' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/615077801209052232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/615077801209052232'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2009/08/re-use-throughout-net-stack-from.html' title='Re-use throughout the .NET stack - from discreet functions to ESB&apos;s'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-343938272565644419</id><published>2009-08-08T00:13:00.002+01:00</published><updated>2009-08-08T00:17:17.008+01:00</updated><title type='text'>ASP.NET MVC: Mini CMS Project - adding the domain and sub domain to  the route data</title><content type='html'>&lt;font size="2"&gt; &lt;div&gt;This is step 1 of many in my plan to build a mini CMS in &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC to support an array of personalised sites hosted on &lt;a href="http://cloud9sites.com/"&gt;http://cloud9sites.com&lt;/a&gt;. My requirement is for a really lightweight CMS that can be achieved by using a finite set of page templates (rather than having to support a page layout designer) and numerous combinations of stylesheets (largely derived from &lt;a href="http://ui.jquery.com/"&gt;http://ui.jquery.com&lt;/a&gt; theme roller) and layouts offered up on the aspnet gallery &lt;a href="http://www.asp.net/mvc/gallery"&gt;http://www.asp.net/mvc/gallery&lt;/a&gt;&lt;/div&gt;  &lt;div&gt; &lt;/div&gt; &lt;div&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;I adapted the following code from &lt;/font&gt;&lt;a href="http://blogs.securancy.com/post/ASPNET-MVC-Subdomain-Routing.aspx"&gt;&lt;font color="#000000"&gt;http://blogs.securancy.com/post/ASPNET-MVC-Subdomain-Routing.aspx&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;  &lt;div&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/div&gt; &lt;div&gt;&lt;font color="#000000"&gt;The implementation is identical (so I won&amp;#39;t go into detail), but in short the following class needs to be added to global.asax and the custom &lt;font color="#2b91af"&gt;DomainRoute &lt;/font&gt;needs to be added to the route table.This code is only slightly modified from the original to meet my needs. I simply want to pass the domain and sub domain to the controller so that I can decide at runtime which master page, CSS and scripts needs to be loaded for the request domain (and optionally sub domain).&lt;/font&gt;&lt;/div&gt;  &lt;div&gt;&lt;/div&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;div&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;/font&gt;&lt;/font&gt; &lt;/div&gt; &lt;div&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;/font&gt;&lt;/font&gt; &lt;/div&gt; &lt;div&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;class&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;DomainRoute&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; : &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;RouteBase&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;font size="2"&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;override&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;RouteData&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; GetRouteData(&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;HttpContextBase&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; httpContext) &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;RouteData&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; returnValue = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;// Retrieve the url - and split by dots:&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;var&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; url = httpContext.Request.Headers[&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;HOST&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;]; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;// Determine if a subdomain is provided:&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;var&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; index = url.IndexOf(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;.&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;); &lt;p&gt;returnValue = &lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;RouteData&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;MvcRouteHandler&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;()); &lt;p&gt;returnValue.Values.Add(&lt;/p&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;controller&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;Home&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;); &lt;p&gt;returnValue.Values.Add(&lt;/p&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;action&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;Index&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;); &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; domain = url.Substring(index+1); &lt;p&gt;returnValue.Values.Add(&lt;/p&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;domain&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, domain);  &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (index &amp;lt; 0) &lt;p&gt;{&lt;/p&gt; &lt;p&gt;returnValue.Values.Add(&lt;/p&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;subDomain&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;);  &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;else&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; subDomain = url.Substring(0, index); &lt;p&gt;returnValue.Values.Add(&lt;/p&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;subdomain&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, subDomain); } &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; returnValue; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt; Required override. Just return null ;)&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;override&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;VirtualPathData&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; GetVirtualPath(&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;RequestContext&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; requestContext, &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;RouteValueDictionary&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; values) &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;}&lt;/p&gt;&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-343938272565644419?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/343938272565644419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=343938272565644419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/343938272565644419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/343938272565644419'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2009/08/aspnet-mvc-mini-cms-project-adding.html' title='ASP.NET MVC: Mini CMS Project - adding the domain and sub domain to  the route data'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-57787035198826797</id><published>2009-08-05T22:10:00.001+01:00</published><updated>2009-08-05T22:10:40.862+01:00</updated><title type='text'>Linux influenced start menu folders</title><content type='html'>&lt;p&gt;I recently re-organised the programs folder on my laptop (Windows XP SP3 install) based upon my experience with a Linux distribution (PCLinuxOS). I had 58 seperate software installs (possibly more) so it was becoming painful to find the programs that I needed.&lt;/p&gt;  &lt;p&gt;This is a relatively dull topic, but this is something that I wanted to share. 10 minutes worth of effort to make my start menu cleaner and more intuitive.&lt;/p&gt; &lt;p&gt;I won&amp;#39;t list everything, but this is a flavour of how my start menu now looks.&lt;/p&gt; &lt;div&gt;&lt;strong&gt;Accessories&lt;/strong&gt; - leave as default&lt;/div&gt; &lt;div&gt;&lt;strong&gt;Games&lt;/strong&gt; - leave as default and move all games here&lt;/div&gt; &lt;div&gt;&lt;strong&gt;Communication Tools&lt;/strong&gt;&lt;/div&gt; &lt;ul&gt; &lt;li&gt;Bluetooth&lt;/li&gt; &lt;li&gt;NIC&lt;/li&gt; &lt;li&gt;VPN&lt;/li&gt; &lt;li&gt;Browsers&lt;/li&gt; &lt;li&gt;Mobile devices&lt;/li&gt; &lt;li&gt;Skype&lt;/li&gt; &lt;li&gt;Office Live/Live meeting&lt;/li&gt; &lt;li&gt;MS Shared View&lt;/li&gt; &lt;li&gt;Messenger&lt;/li&gt;&lt;/ul&gt; &lt;div&gt;&lt;strong&gt;Database Tools&lt;/strong&gt;&lt;/div&gt; &lt;ul&gt; &lt;li&gt;ApexSQL&lt;/li&gt; &lt;li&gt;Cache&lt;/li&gt; &lt;li&gt;MySQL&lt;/li&gt; &lt;li&gt;SQL Server&lt;/li&gt; &lt;li&gt;Redgate SQL Bundle&lt;/li&gt;&lt;/ul&gt; &lt;div&gt;&lt;strong&gt;Development Tools&lt;/strong&gt;&lt;/div&gt; &lt;ul&gt; &lt;li&gt;Apache&lt;/li&gt; &lt;li&gt;HTML Help&lt;/li&gt; &lt;li&gt;.NET Framework/Tools&lt;/li&gt; &lt;li&gt;Subversion&lt;/li&gt; &lt;li&gt;Visual Studio&lt;/li&gt; &lt;li&gt;Eclipse&lt;/li&gt; &lt;li&gt;Ruby&lt;/li&gt; &lt;li&gt;Powershell&lt;/li&gt;&lt;/ul&gt; &lt;div&gt;&lt;strong&gt;Media Tools &lt;/strong&gt;&lt;/div&gt; &lt;ul&gt; &lt;li&gt;Picassa&lt;/li&gt; &lt;li&gt;Itunes&lt;/li&gt; &lt;li&gt;Channel 4 OD&lt;/li&gt; &lt;li&gt;Paint.net&lt;/li&gt;&lt;/ul&gt; &lt;div&gt;&lt;strong&gt;Office Tools&lt;/strong&gt;&lt;/div&gt; &lt;ul&gt; &lt;li&gt;Microsoft Office&lt;/li&gt; &lt;li&gt;Open Office&lt;/li&gt;&lt;/ul&gt; &lt;p id="temp_br"&gt;Hope you find this useful.&lt;/p&gt; &lt;p&gt;Cheers - Jon.&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-57787035198826797?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/57787035198826797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=57787035198826797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/57787035198826797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/57787035198826797'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2009/08/linux-influenced-start-menu-folders.html' title='Linux influenced start menu folders'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-1656025837254644494</id><published>2009-07-23T22:27:00.002+01:00</published><updated>2009-07-23T22:30:34.812+01:00</updated><title type='text'>From DNN to MVC?</title><content type='html'>The cloud9sites development is progressing steadily in my spare time. I have yet to push anything up to the web site as essentially these are the major pieces of the jigsaw that will change the site from an advert to a fully operational eCommerce application.&lt;br /&gt;&lt;br /&gt;The 3 major components of this are the skin (or template) selection; the content capture and finally the domain name search. The idea is that a 3 stage wizard will be used to build the site - this is to counter all of the complex web site builders and Content Management Systems&lt;br /&gt;that are targeted at web developers rather than end users.&lt;br /&gt;&lt;br /&gt;1. The skin selection is using the ad-gallery Jquery plugin to spin through a selection of skin thumbnails showing the selected thumbnail in a larger window&lt;br /&gt;&lt;Image to follow&gt;&lt;br /&gt;2. The content entry is using the Jquery tabs as well as the FCKEditor plugin to give the WYSIWYG HTML editing.&lt;br /&gt;&lt;Image to follow&gt;&lt;br /&gt;3. I have written a web service wrapper for the domain tools API for the domain search feature&lt;br /&gt;&lt;Image to follow&gt;&lt;br /&gt;&lt;br /&gt;4. The last stage of the site wizard is to push the order into google checkout.&lt;br /&gt;&lt;br /&gt;I now have a dilema. I have developed the wizard in ASP.NET 3.5 and JQuery with the style and plugins of JQuery UI. &lt;br /&gt;Given that I am going to be offering a standard set of pages (Home, Contact, About) I&lt;br /&gt;am now questioning whether or not a CMS is necessary (specifically Dot Net Nuke). Much of what I have been doing has being working "against the grain" of a CMS.&lt;br /&gt;&lt;br /&gt;I will give this some thought, but my current idea is that an MVC/Jquery pairing could give me exactly what I need and more importantly allow me&lt;br /&gt;to scale this by removing much of the overhead/noise that comes along with DNN. DNN is also proving to be slow. I also like the idea of the URL rewriting&lt;br /&gt;in MVC and I plan to introduce some "Convention over Configuration" concepts so that the introduction of a new site can largely be driven by the &lt;br /&gt;domain name (storing the site content in a folder specific to the domain name for example).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-1656025837254644494?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/1656025837254644494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=1656025837254644494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/1656025837254644494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/1656025837254644494'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2009/07/from-dnn-to-mvc.html' title='From DNN to MVC?'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-3197071536399707908</id><published>2009-07-09T23:43:00.004+01:00</published><updated>2009-07-10T00:03:24.074+01:00</updated><title type='text'>DNN Loosing links and building the store</title><content type='html'>Another late evening working on &lt;a href="http://www.cloud9sites.com/"&gt;http://www.cloud9sites.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As ever, getting the graphics up is pretty simple. Powerpoint is, beleive it or not, a great tool for creating all of the curved boxes, gradients and 3d buttons that you might ever want.&lt;br /&gt;&lt;br /&gt;I have started working on navigation and have had some challenges getting my embedded URL's to save in the DNN Text/HTML editors. I was saving anchors/tags without text between the brackets. The text isn't needed as I am using CSS to replace the anchors with button images. DNN just sees the missing text as invalid and deletes the tag when the Source HTML is saved. The resolution is just to put a non printable character between the &lt;a&gt;&lt;/a&gt; tags.&lt;br /&gt;&lt;br /&gt;The major part of the site is the wizard and store front used to guide the user through the site building process. The first goal is simply to catch the required data (site template, payment options, site content).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 1: Template and Payment Option&lt;/strong&gt;&lt;br /&gt;I have used the DNN store module and specifically the Category Products selection to filter the product categories  shown as part of the wizard. I have created two categories: Themes and Packages to hold the DNN skins and the payment options respectively. The theme images in the store module are taken from the thumbnails that come with the free downloaded skins. Nice and simple. The payment options are text only, so again very simple. The idea is that the user adds a theme and a payment option to the cart. Not slick, but a simple way to get up and running until I find (or develop) something better.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 2: Content&lt;/strong&gt;&lt;br /&gt;This is work in progress. I have just installed the Form Creation DNN Module from &lt;a href="http://www.code5systems.com/"&gt;http://www.code5systems.com/&lt;/a&gt; and this looks like it will do the job of giving me a form that will capture all of the fields that I need for the site; including uploading images. The main challenge with all of these tools seems to be getting consistency around the look and feel of the lables, titles and action buttons in line with my skin/theme.&lt;br /&gt;&lt;br /&gt;Future challenges...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 3: Domain Search&lt;/strong&gt;&lt;br /&gt;I need to find an easy way to plug in a module that will find a domain name and, even better, suggest one based upon the company name.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Step 4: Collecting Payment&lt;/strong&gt;&lt;br /&gt;Paypal seems to be the lowest friction option, but for the first few sites I won't automatically collect payment, I just want to guage interest.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-3197071536399707908?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/3197071536399707908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=3197071536399707908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/3197071536399707908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/3197071536399707908'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2009/07/dnn-loosing-links-and-building-store.html' title='DNN Loosing links and building the store'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-9070429163893547074</id><published>2009-07-08T23:03:00.002+01:00</published><updated>2009-07-08T23:18:00.472+01:00</updated><title type='text'>Cloud 9 Sites</title><content type='html'>I've not blogged for 6 months and perhaps it will be another 6 months before I blog again, but I intend to keep a record of my attempts to set up a hobby company on behalf of my wife to bring in some necessary background income.&lt;br /&gt;I was recently introduced to the term "sitcom" by a friend - Single Income Two Children Onerous Mortgage: very appropriate.&lt;br /&gt;&lt;br /&gt;The inspiration for this venture was the book the "4 hour work week" by Tim Ferris &lt;a href="http://www.fourhourworkweek.com/"&gt;http://www.fourhourworkweek.com/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In short I will be creating a web site targeted at the small/medium business. The product will be a tool for automating the  creation of an entry level web site for the non technical user. I will use a collection of tools and technologies that I know (and some I don't) and a balance of licensed/open-source software. Cost is a factor, but following the mantra  of Tim Ferris I will outsource (or buy in) where appropriate.&lt;br /&gt;&lt;br /&gt;My efforts can be followed at &lt;a href="http://www.cloud9sites.com/"&gt;http://www.cloud9sites.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I am already well on my way to getting a site up and running based upon Dot Net Nuke, SQL Server and hosted on GoDaddy Windows Servers with .NET 3.5. The home/landing page is now in place and I am working on the store front aspects in the background.&lt;br /&gt;&lt;br /&gt;There are many things that I have yet to solve, but that's what makes it interesting!&lt;br /&gt;&lt;br /&gt;Cheers - Jon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-9070429163893547074?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/9070429163893547074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=9070429163893547074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/9070429163893547074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/9070429163893547074'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2009/07/cloud-9-sites.html' title='Cloud 9 Sites'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-2544899448079791497</id><published>2008-12-14T13:42:00.001Z</published><updated>2008-12-14T13:43:44.433Z</updated><title type='text'>Am I virus free?</title><content type='html'>A few days back, Windows Defender popped up a message to say that a process was attempting to modify my hosts file. I didn't think anything of it for a while as I was running a number of applications that were harmless contenders (such as Mojo CMS, Microsoft Mesh, IIS) and furthermore an anoying URLRedirect service was installed be default on my XP desktop as part of the Dell desktop package which changes your homepage dynamically when a URL is not found.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Initial Virus Scan&lt;/strong&gt;&lt;br /&gt;As a precaution, I looked up the "SettingsModifier:Win32/PossibleHostsFileHijack" error that was being displayed and followed the advice to perform a full virus scan. I ran a full scan using both Windows Defender AND Semantic (Norton) Antivirus (corporate edition). Both of these gave me a clean bill of health which was encouraging - or so I thought.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sysinternals &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;After a reboot and after working in VS for a couple of minutes, I received the hosts file hijack error again. I was now rumbled and determined to find out what was causing this. I allowed the process to modify my hosts file to see what was happening. Microsoft.com was being redirected to 127.0.0.1 localhost. I then went onto sysinternals.com and downloaded both the autoruns application (a tool to determine which processes are launched at startup) and process explorer - an advanced task manager with process tree information and file dependencies.&lt;br /&gt;&lt;br /&gt;The first thing that browse all autorun processes. In this list there were 4 libraries and exeutables that were NOT registered to any company. This was suspicious. I searched for the corresponsing entries in google and all of them pointed to a worm or trojan. I found the corresponding executables through the tool and deleted them from my system, some of which were locked hidden system files requiring me to kill the host processes using the sysinternals.&lt;br /&gt;&lt;br /&gt;I then peformed the same search using the sysinternals process explorer and found another 5 processes that were not registered to any company. Some of these were desktop extensions that were more than likely harmless (such as Filezilla and Tortoise SVN) but I wasn't going to take any risks. I remove the files and killed the processes.&lt;br /&gt;&lt;br /&gt;I then went on a mission to remove any software and files that I was no longer using, simply to allow the virus scanners to run more quickly.&lt;br /&gt;&lt;br /&gt;4 hours later and after a subsequent reboot I was still not comfortable. I was receiving a Windows Defender warning from a proces called Kontiki (which is a peer-to-peer media sharing tool). This was likely to be harmless again as it is installed by the media streaming services such as 4OD, but by this stage I was not taking any chances. I have prided myself for having avoided viruses for years, since the disk sharing days of the Commodore Amiga, something had allowed by system to be compromised (perhaps the prevelence of USB keys in the workplace). My firewall is on, my wireless is encrypted and includeds MAC address filters!&lt;br /&gt;&lt;br /&gt;I manually removed Kontiki from the startup registry entries (again using sysinternals) and from the program files folder.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Insufficient virus scanners?&lt;/strong&gt;&lt;br /&gt;I was really concerned that my two virus scanners, both of which were fully up-to-date, had not detected any problems after a full system scan. A collegue had recommened AVG. I downloaded, installed and performed yet another full system scan. AVG found 4 additional Trojans that I had not detected. Fortunately these were not running and were easily quarantined by AVG.&lt;br /&gt;&lt;br /&gt;So what is the message? Firstly I am now nervous that I am not clear of viruses based upon the inconsistencies between the virus checking software. Secondly, how on earth is a typical home user supposed to deal with viruses. I am extremely careful, but I will be even more so now. I am still extremely tempted to upgrade my desktop to Vista now that we are moving across to BizTalk 2006 R2 (R1 is not supported on Vista). Hopefully UAC will further mimimise the risks.&lt;br /&gt;&lt;br /&gt;Cheers - Jon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-2544899448079791497?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/2544899448079791497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=2544899448079791497' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/2544899448079791497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/2544899448079791497'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2008/12/am-i-virus-free.html' title='Am I virus free?'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-6800777529380818536</id><published>2008-12-12T17:40:00.005Z</published><updated>2008-12-12T17:53:37.879Z</updated><title type='text'>ASP.NET and AJAX unit testing with Watin</title><content type='html'>I stumbled across a great .NET library for unit testing our websites. This was listed alongside a question that I answered about "must-have" .NET libraries on &lt;a href="http://stackoverflow.com/"&gt;stackoverflow&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;The &lt;a href="http://watin.sourceforge.net/"&gt;Watin&lt;/a&gt; tool (pronounced "What-In") is a .NET library which allows you to issue simple commands for navigting around your web site and more importantly supports the Microsoft AJAX control toolkit (as well as other Ajax implementations).&lt;br /&gt;I used the following code to login to our travel product, navigate to the hotels page and search for a hotels with a town via an ASP.NET autocompleter control.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;IE ie = new IE("&lt;/span&gt;&lt;a href="http://localhost/mytavelproduct"&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;http://localhost/mytavelproduct&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;");&lt;br /&gt;&lt;span style="color:#009900;"&gt;//login&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;ie.TextField(Find.ByName("txtUsername")).TypeText("username");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;ie.TextField(Find.ByName("txtPassword")).TypeText("password");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;ie.Button(Find.ByName("cmdLogin")).Click();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;span style="color:#009900;"&gt;//goto the hotel search pageie.Link(Find.ByUrl&lt;/span&gt;("&lt;/span&gt;&lt;a href="http://localhost/mytavelproduct/Hotel/HotelSearch.aspx%22)).Click"&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;http://localhost/mytavelproduct/Hotel/HotelSearch.aspx")).Click&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;color:#009900;"&gt;//gradually populate the ajax autocompleter field in the town field&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;TextField field = ie.TextField(Find.ByName("ctl00$cphM$ucHotelLocationSection$txtTown"));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;field.TypeText("lo");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Thread.Sleep(1000);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;field.TypeText("nd");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Thread.Sleep(1000);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;field.TypeText("on");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Thread.Sleep(1000);&lt;br /&gt;&lt;span style="color:#009900;"&gt;//the autocomplete dropdown should have appeared at this stage...&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;However, in order for the above code to work with the Ajax autocomplete dropdown control, I had to jump through a few hoops.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;The first issue&lt;/u&gt; is detailed as follows on blogspot &lt;a href="http://lazyloading.blogspot.com/2008/06/testing-aspnet-ajax-autocomplete.html"&gt;http://lazyloading.blogspot.com/2008/06/testing-aspnet-ajax-autocomplete.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Adding an attribute to the ajax control on page load, performed some "Runtime event reanimation" which allowed the TypeText methods of Watin to be captured by the ajax control.Without this the mocked key presses are ignored.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;The second issue &lt;/u&gt;was related to javascript that we had on the page. The Watin code appears to loose focus, or blur the control between methods. Unfortunately the onblur event is used by us to clear the text value if nothing has been selected from the ajax autocompleter. By removing this javascript code from the control (with a view to moving it to the page Submit button?) the ajax dropdown is now displayed during the Thread.Sleep periods.&lt;br /&gt;&lt;br /&gt;Having completed this and by browsing various blogs for the answer, I also found something that will generated the above code for you!!&lt;br /&gt;&lt;a href="http://watintestrecord.sourceforge.net/"&gt;http://watintestrecord.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is not perfect (as the ajax stuff requires a bit of hand crafting) but this will take the leg work out of 90% of the coding.&lt;br /&gt;&lt;br /&gt;Finally I have found a community out there building frameworks and further examples on how to use Watin.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://rogerguess.net/archive/2008/05/16/8455.aspx"&gt;Populating a masked edit control&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://pushpontech.blogspot.com/2008/04/ajax-issues-with-watin.html"&gt;Recognising completion of postback events &lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://richallen.blogspot.com/2008/08/watin-ajax-and-some-extension-methods.html"&gt;Working with Ajax and extension methods&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://watinandmore.blogspot.com/2008/01/using-watin-to-test-select-lists-in.html"&gt;The creator of Watin&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;This has been a long time coming. The Microsoft Web tests have simply not delivered, this is going to make life much easier&lt;br /&gt;&lt;br /&gt;Cheers - Jon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-6800777529380818536?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/6800777529380818536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=6800777529380818536' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/6800777529380818536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/6800777529380818536'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2008/12/aspnet-and-ajax-unit-testing-with-watin.html' title='ASP.NET and AJAX unit testing with Watin'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-8764584777900858422</id><published>2008-09-08T10:46:00.016+01:00</published><updated>2008-09-08T12:05:03.969+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='&quot;SQL Server&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='ISO'/><title type='text'>Challenges of installing SQL Server from an ISO image extract.</title><content type='html'>I decided to build a portable, laptop version of my office development workstation, simply because I often struggle to get the bandwidth necessary to use remote desktop comfortable when connecting to my work PC.&lt;br /&gt;&lt;br /&gt;The corporate policy dictates that all machines need to been Windows XP SP2 or SP3, this rule however is something that does not apply to the development team - as long as the company is not required to support the non standard OS installation.&lt;br /&gt;&lt;br /&gt;Anyway, I had recently aquired a high end dual-core, 64-bit Dell XPS with 4 Gb RAM - simply because we have a company policy to have a minimum of 2 of any one model (to help with hardware/software troubleshooting in case of machine failure). I decided to go Vista Ultimate 32 bit after failed attempts to find the necessary NVIDIA display drivers for the 64 bit installation of both Vista and Windows Server 2008.&lt;br /&gt;&lt;br /&gt;My role requires me to keep up to speed with the latest technology developments, largely with a Microsoft focus but with an eye on the non Microsoft world. The development machine installation is as follows:-&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Microsoft Dev Tools&lt;/strong&gt;&lt;br /&gt;SQL Server Expresss, 2005, 2008&lt;br /&gt;Visual Studio 2005, 2008 SP1&lt;br /&gt;BizTalk Server 2006 R2&lt;br /&gt;Office Ultimate&lt;br /&gt;Powershell&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Non Microsoft Tools&lt;/strong&gt;&lt;br /&gt;Apex SQL - DAL Generator&lt;br /&gt;My SQL 5.0 + Client tools&lt;br /&gt;Sybase Power Designer 12&lt;br /&gt;&lt;br /&gt;I made a call to take an image of the other XPS that a collegue of mine had built, he had already gone down the path of Vista 32. This was the start of my problems.&lt;br /&gt;&lt;br /&gt;The machine restore worked fine for all tools except SQL Server 2005/2008. The BizTalk install which I had assumed would cause me grief required a simple "Remove Current Configuration" to get back to a fresh installation.&lt;br /&gt;&lt;br /&gt;The first problem was probably the catalyst for all subsequent issues. The local system accounts used for running SQL Server were shown as a GUID representation rather than an account name. From experience, this usually means that the user name that is being referenced does not exist. To this end, I thought it would be cleaner to re-install SQL Server (all versions) given that BizTalk was in an unconfigured state with no active database dependencies.&lt;br /&gt;&lt;br /&gt;I ran through a lengthly process of uninstalling all SQL Server related features via the control panel, whilst simulatenously downloading the installation ISO images from MSDN. I removed SQLExpress as part of this process. Once downloaded, I extracted the ISO images to a sub folder on my laptop and launched the setup process, starting with SQL2005 Standard Edition.&lt;br /&gt;&lt;br /&gt;With all pre-requisites in place, the installation ran through to near completion, but failed at the final hurdle installing the client tools portion. From this point onwards trial and error and a lot of forum surfing began.&lt;br /&gt;&lt;br /&gt;Numerous forums directed me to the installation log files and I began to go through the following in sequence.&lt;br /&gt;&lt;br /&gt;1. SQL Server has a problem when iterating through named/default instances. Ensure that that your machine name is in upper case.&lt;br /&gt;&lt;em&gt;This is easier said than done, when attempting to rename your machine in Vista, the uppercase version of the machine is recognised as being the same machine name - so the Apply button is disabled. To achieve this I had to switch from an AD domain to a workgroup domain to change to an upper case version. Even after this however, when returning to the machine settings a mixed case version of the machine name was displayed.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;2. When installing from a local file system, the Tools and Servers folders must exist off of the root folder or exist in a folder directly below the root folder (e.g. c:\SQLServer2005\Servers and SQLServer2005\Tools)&lt;br /&gt;&lt;a href="http://support.microsoft.com/?kbid=916760"&gt;http://support.microsoft.com/?kbid=916760&lt;/a&gt;&lt;br /&gt;&lt;em&gt;This is not too clear, the 2 ISO images (CD1/CD2) are not named as server and tools. An assumption was made that CD1 was Servers. I copied the files to the structure as described by the KB article and re-attempted the install. Having attempted the install numerous times before, I restricted the options to just to client tools for speed. BINGO! Having succeeded in the client install I continued on to install the server componenents successfully.&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;I have since read articles that indicate that the clients tools installation can be launched and installed independently from the CD2 image. This makes sense, the installation from CD1 would normally prompt for CD2 when installing from the physical media - the file version obviously isn't too clever.&lt;br /&gt;&lt;br /&gt;Anyway, SQL 2005 is now installed - on to the service packs and SQL 2008!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-8764584777900858422?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/8764584777900858422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=8764584777900858422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/8764584777900858422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/8764584777900858422'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2008/09/challenges-of-installing-sql-server.html' title='Challenges of installing SQL Server from an ISO image extract.'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-7252615620554008931</id><published>2008-01-24T20:11:00.000Z</published><updated>2008-01-24T21:10:49.294Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Google Applications Online Ajax'/><title type='text'>Microsoft Apps vs Google Apps</title><content type='html'>&lt;u&gt;Battle of the applications&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;I am convinced that the battle of the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Internet&lt;/span&gt; will continue for many years, and it is clear, to me at least, that at this stage Google are way ahead in the search engine arena. This is almost too obvious to state.&lt;br /&gt;&lt;br /&gt;The next battle that is about to begin, is the battle of the online application. I consider myself to be a medium to heavy user of the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;Internet&lt;/span&gt;: banking, email, research, development, weather, maps, directions, holidays, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;VPN&lt;/span&gt;, ...the list goes on. I have learned that as much as I think that I am an individual, I am not alone. Thousands, if not millions are becoming more comfortable with shifting more of their life into the online cloud.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Can office applications be moved online?&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Microsoft are now offering a free web site and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;URL with&lt;/span&gt; Office Live Workspace and Office Live Small Business initiatives. I &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;pre-&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;registered&lt;/span&gt; for the Beta of Live Workspace today, I will post my findings once I gain access. It is clear that Microsoft are considering Google Apps to be a serious threat to the Microsoft Office suite - the single largest earner for Microsoft.&lt;br /&gt;&lt;br /&gt;Google Apps is well established, and I for one am amazed at what can be done with the recent addition of Ajax to the web developer's toolkit. Recent &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;additions&lt;/span&gt; to the documents include charts, drag-and-drop, custom backgrounds. The question is, how long will it be before the online office applications are as good as their desktop counter-parts? Are these application &lt;em&gt;really&lt;/em&gt; usable or am I just impressed by what has been achieved within the browser?&lt;br /&gt;&lt;br /&gt;My brother, who is also in the software development arena, bought me a copy of the the Google story for Christmas. Having read the book, it is now very clear why Google are such a threat to Microsoft. Simply put, they are growing exponentially financed by their unique advertising model (read the book if you are interested). &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Google's&lt;/span&gt; financial security and their attitude towards research and development mean that they are now a massive influence on the direction of the software that we will be using in the future.&lt;br /&gt;&lt;br /&gt;Until recently, Google was purely an &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;Internet&lt;/span&gt; based offering. I am now using Google desktop for indexing the files and emails on my laptop and desktop &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;PCs&lt;/span&gt;. I have Google mobile on my mobile phone and Blackberry to read my online documents. A blue dot tells me where I am in the world on my mobile when I access Google maps by referencing the location of the mobile phone mast that I am connecting to. How long will it be before Google office applications appear on my desktop?&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Will Google take the next logical step and release an operating system? Will we need anything other than a browser and a mobile device?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-7252615620554008931?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/7252615620554008931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=7252615620554008931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/7252615620554008931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/7252615620554008931'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2008/01/microsoft-apps-vs-google-apps.html' title='Microsoft Apps vs Google Apps'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-4535895119346905234</id><published>2007-11-13T15:15:00.001Z</published><updated>2007-11-13T15:28:17.070Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='Presentation'/><category scheme='http://www.blogger.com/atom/ns#' term='BPM'/><category scheme='http://www.blogger.com/atom/ns#' term='Conference'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Microsoft BPM and SOA Conference</title><content type='html'>I will be presenting at the Microsoft SOA and Business Process Conference 2007 tomorrow at the Reading TVP Campus.&lt;br /&gt;&lt;a href="https://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-GB&amp;amp;eventid=1032356017"&gt;https://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-GB&amp;amp;eventid=1032356017&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;18 months worth of development, prototyping and design of an SOA platform on which to build all of the company's travel related products leaves me with plenty of things to discuss. I hope that this will not overrun. I have a 25 minute slot in an hour long presentation to cover, at a high level, how Microsoft technologies have been used to deliver our products. Not easy ;-)&lt;br /&gt;&lt;br /&gt;I understand that audio (and possibly video) recordings of this presentation will be published after the conference. I will post a link to these as soon as they are available.&lt;br /&gt;&lt;br /&gt;Jon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-4535895119346905234?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/4535895119346905234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=4535895119346905234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/4535895119346905234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/4535895119346905234'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2007/11/microsoft-bpm-and-soa-conference.html' title='Microsoft BPM and SOA Conference'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7549896977430463430.post-8945449193156675113</id><published>2007-11-13T12:38:00.000Z</published><updated>2007-11-13T14:15:29.581Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Plugins'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>What if there was no Microsoft? Building an online company for free.</title><content type='html'>Since my early days as a developer I have maintained that Microsoft have delivered the right balance of usability, availability and functionality as far as the developer toolsets and desktop Office applications are concerned.&lt;br /&gt;&lt;br /&gt;Many of my friends and previous work colleagues are from the non-Microsoft camp. Java, Unix (in it's various flavours) and non Microsoft database technologies are all heralded as "better" technologies than Microsoft by these users. Performance, scalability and security tend to be the main areas of contention. Evidence supporting the claims that the Microsoft technology is not as good as the non-Microsoft alternative is often light on the ground - in my experience anyway. I am sure that there are metrics out in the public domain that will prove me wrong, but for every argument that I have heard there is always a counter argument supporting the Microsoft or alternative case.&lt;br /&gt;&lt;br /&gt;Anyway, a few months ago I seriously damaged my knee in an off-road motocross Enduro event which left me on the sofa every night for hours balancing a bag peas on my elevated knee in order to reduce the swelling. Rather than watching TV during this time I decided to look into how I could create a virtual company &lt;a href="http://www.lifeplugins.com/"&gt;http://www.lifeplugins.com/&lt;/a&gt; in order to excercise everything that I have learned over the past 12 years or so. The reason for creating a company was to have an end deliverable - I beleive that this is the only way to truly understand the advantages and pitfalls of adopting a particular technology.&lt;br /&gt;&lt;br /&gt;The pre-requisites for the company are are follows:-&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a branded web site with a domain name. The web site should do more than just host static content - anyone can do this. The site should include server side processing and a database as a minimum.&lt;/li&gt;&lt;li&gt;Where possible, the only cost in setting up the company should be my time. All software used in creating lifeplugins.com should be freely available and preferably adopt the Open Source Initiative &lt;a href="http://www.opensource.org/"&gt;http://www.opensource.org/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Follow the path of least resistence. This is just a reminder to myself to not "sweat the small stuff". This is a hobby project and shouldn't take over my life. If something can't be done simply then perhaps an alternative should be investigated.&lt;/li&gt;&lt;li&gt;Have a purpose. The name lifeplugins isn't a mistake. This site and the associated "plugins" that are developed should assist me in my everyday life.&lt;/li&gt;&lt;li&gt;Use non-Microsoft technologies. This is the only way, I beleive, to get a balanced view of what is out there given that I have used nothing but Microsoft technologies in the past.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;This blog will, for the coming months at least, track the progress of the site and I plan to record my thoughts, ideas and findings on this blog as I grow the virtual company.&lt;br /&gt;&lt;br /&gt;Jon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7549896977430463430-8945449193156675113?l=blog.lifeplugins.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.lifeplugins.com/feeds/8945449193156675113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7549896977430463430&amp;postID=8945449193156675113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/8945449193156675113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7549896977430463430/posts/default/8945449193156675113'/><link rel='alternate' type='text/html' href='http://blog.lifeplugins.com/2007/11/what-if-there-was-no-microsoft-building.html' title='What if there was no Microsoft? Building an online company for free.'/><author><name>Jon Simpson</name><uri>http://www.blogger.com/profile/11234153733282969193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_goV1h8rKlTo/STLuO9SFPuI/AAAAAAAAAAM/tdW5ryuojg4/S220/My+Face.jpg'/></author><thr:total>0</thr:total></entry></feed>
