<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>J.D. Meier's Blog : My Projects</title><link>http://blogs.msdn.com/jmeier/archive/tags/My+Projects/default.aspx</link><description>Tags: My Projects</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>My Projects on MSDN</title><link>http://blogs.msdn.com/jmeier/archive/2009/02/10/my-projects-on-msdn.aspx</link><pubDate>Tue, 10 Feb 2009 22:51:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9411189</guid><dc:creator>J.D. Meier</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/jmeier/comments/9411189.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jmeier/commentrss.aspx?PostID=9411189</wfw:commentRss><description>&lt;p&gt;This post is a simple way to browse the bulk of my patterns &amp;amp; practices work on MSDN and CodePlex.&amp;#160;&amp;#160; After I walk customers through things, the next question is usually, &amp;quot;OK, so where do we find this?&amp;quot;&amp;#160; This is the link I'll be sharing.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Guides&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.codeplex.com/AppArchGuide" target="_blank"&gt;Application Architecture Guide 2.0&lt;/a&gt; (CodePlex) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302415.aspx" target="_blank"&gt;Building Secure ASP.NET Applications&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998530.aspx" target="_blank"&gt;Improving .NET Application Performance and Scalability&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms994921.aspx" target="_blank"&gt;Improving Web Application Security: Threats and Countermeasures&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949034.aspx" target="_blank"&gt;Improving Web Services Security: Scenarios and Implementation Guidance for WCF&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb924375.aspx" target="_blank"&gt;Performance Testing Guidance for Web Applications&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998382.aspx" target="_blank"&gt;Security Engineering Explained&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668991.aspx" target="_blank"&gt;Team Development with Visual Studio Team Foundation Server&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Performance&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Books / Guides&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998530.aspx" target="_blank"&gt;Improving .NET Application Performance and Scalability&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb924375.aspx" target="_blank"&gt;Performance Testing Guidance for Web Applications&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Methods&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb924361.aspx" target="_blank"&gt;Agile Performance Testing&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb924372.aspx" target="_blank"&gt;Load Testing&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998579.aspx" target="_blank"&gt;Measuring Performance&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb924367.aspx" target="_blank"&gt;Modeling Application Usage&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998574.aspx" target="_blank"&gt;Performance Code Inspection&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998544.aspx" target="_blank"&gt;Performance Design Inspection&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998534.aspx" target="_blank"&gt;Performance Engineering&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998537.aspx" target="_blank"&gt;Performance Modeling&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb924371.aspx" target="_blank"&gt;Performance Test Reporting&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb924356.aspx" target="_blank"&gt;Performance Testing&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb924374.aspx" target="_blank"&gt;Stress Testing&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998583.aspx" target="_blank"&gt;Tuning Performance&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Guidelines&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998537.aspx" target="_blank"&gt;Performance Design Guidelines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998547.aspx" target="_blank"&gt;.NET Framework Performance Guidelines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998551.aspx" target="_blank"&gt;.NET Interop Performance Guidelines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998569.aspx" target="_blank"&gt;ADO.NET Performance Guidelines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998549.aspx" target="_blank"&gt;ASP.NET Performance Guidelines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998565.aspx" target="_blank"&gt;Remoting Performance Guidelines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998541.aspx" target="_blank"&gt;Web Application Performance Design Guidelines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998562.aspx" target="_blank"&gt;Web Services Performance Guidelines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998559.aspx" target="_blank"&gt;XML Performance Guidelines&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Checklists&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998592.aspx" target="_blank"&gt;Performance Design Checklist&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms979052.aspx" target="_blank"&gt;.NET Framework Performance Checklist&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998589.aspx" target="_blank"&gt;ADO.NET Performance Checklist&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998596.aspx" target="_blank"&gt;ASP.NET Performance Checklist&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms978923.aspx" target="_blank"&gt;Enterprise Services Performance Checklist&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms978943.aspx" target="_blank"&gt;Interop Performance Checklist&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms979159.aspx" target="_blank"&gt;Remoting Performance Checklist&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms979169.aspx" target="_blank"&gt;SQL Server Performance Checklist&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms979173.aspx" target="_blank"&gt;Web Services Performance Checklist&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms979180.aspx" target="_blank"&gt;XML Performance Checklist Checklist&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Practices at a Glance&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998512.aspx" target="_blank"&gt;Performance Practices at a Glance&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;How Tos&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms979195.aspx" target="_blank"&gt;How To - Optimize SQL Indexes&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms979196.aspx" target="_blank"&gt;How To - Optimize SQL Queries&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms979197.aspx" target="_blank"&gt;How To - Page Records in .NET Applications&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms979198.aspx" target="_blank"&gt;How To Performance Capacity Planning for .NET Applications&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms979200.aspx" target="_blank"&gt;How To - Submit and Poll for Long-Running Tasks&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms979204.aspx" target="_blank"&gt;How To - Use Custom Performance Counters from ASP.NET&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Security&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Guides&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302415.aspx" target="_blank"&gt;Building Secure ASP.NET Applications&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms994921.aspx" target="_blank"&gt;Improving Web Application Security: Threats and Countermeasures&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998404.aspx" target="_blank"&gt;Security Engineering&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Methods&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998364.aspx" target="_blank"&gt;Security Code Inspection&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998367.aspx" target="_blank"&gt;Security Deployment Inspection&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302421.aspx" target="_blank"&gt;Security Design Inspection&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms978516.aspx" target="_blank"&gt;Threat Modeling&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Threats and Countermeasures&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302418.aspx" target="_blank"&gt;Threats and Countermeasures for Web Applications&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949001.aspx" target="_blank"&gt;Threats and Countermeasures for Web Services&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Cheat Sheets&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms978518.aspx" target="_blank"&gt;Web Application Security Frame&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949070.aspx" target="_blank"&gt;Web Services Security Frame&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949070.aspx" target="_blank"&gt;Web Services Security Patterns&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Guidelines&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa480477.aspx" target="_blank"&gt;.NET Framework Security Guidelines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998264.aspx" target="_blank"&gt;ADO.NET Security Guidelines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998258.aspx" target="_blank"&gt;ASP.NET Security Guidelines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949068.aspx" target="_blank"&gt;WCF Security Guidelines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302420.aspx" target="_blank"&gt;Web Application Security Design Guidelines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949020.aspx" target="_blank"&gt;Web Services Security Design Guidelines&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Checklists&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa480474.aspx" target="_blank"&gt;.NET Framework Security Checklist&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa480473.aspx" target="_blank"&gt;ADO.NET Security Checklist&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998249.aspx" target="_blank"&gt;ASP.NET Security Checklist&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949052.aspx" target="_blank"&gt;WCF Security Checklist&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Practices at a Glance&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa480479.aspx" target="_blank"&gt;.NET Framework Security Practices at a Glance&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998372.aspx" target="_blank"&gt;ASP.NET Security Practices at a Glance&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949062.aspx" target="_blank"&gt;WCF Security Practices at a Glance&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Questions and Answers&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb981440.aspx" target="_blank"&gt;ASP.NET Security Questions and Answers&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949043.aspx" target="_blank"&gt;WCF Security Questions and Answers&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Explained&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa480476.aspx" target="_blank"&gt;ASP.NET Forms Authentication Explained&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa480475.aspx" target="_blank"&gt;ASP.NET Windows Authentication Explained&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Application Scenarios&lt;/em&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949093.aspx" target="_blank"&gt;WCF Intranet Scenario - Web to Remote WCF Using Transport Security (Original Caller, TCP)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949089.aspx" target="_blank"&gt;WCF Intranet scenario - Web to Remote WCF Using Transport Security (Trusted Subsystem, HTTP)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949041.aspx" target="_blank"&gt;WCF Intranet Scenario - Web to Remote WCF Using Transport Security (Trusted Subsystem, TCP)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949032.aspx" target="_blank"&gt;WCF Intranet Scenario - Windows Forms to Remote WCF Using Transport Security (Original Caller, TCP)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949024.aspx" target="_blank"&gt;WCF Internet Scenario - WCF and ASMX Client to Remote WCF Using Transport Security (Original Caller, HTTP)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949088.aspx" target="_blank"&gt;WCF Internet Scenario - Web to Remote WCF Using Transport Security (Trusted Subsystem, TCP)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949050.aspx" target="_blank"&gt;WCF Internet Scenario - Windows Forms Client to Remote WCF Using Message Security (Original Caller, HTTP)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302385.aspx" target="_blank"&gt;ASP.NET Intranet Scenarios&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302386.aspx" target="_blank"&gt;ASP.NET Extranet Scenarios&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302387.aspx" target="_blank"&gt;ASP.NET Internet Scenarios&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;ASP.NET Security How Tos&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998300.aspx" target="_blank"&gt;How To - Connect to SQL Server Using SQL Authentication in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998292.aspx" target="_blank"&gt;How To - Connect to SQL Server Using Windows Authentication in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998297.aspx" target="_blank"&gt;How To - Create a Service Account for ASP.NET Applications&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa480478.aspx" target="_blank"&gt;How To - Improve Security When Hosting Multiple Applications&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998325.aspx" target="_blank"&gt;How To - Instrument ASP.NET Applications for Security&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998274.aspx" target="_blank"&gt;How To - Prevent Cross-Site Scripting in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998310.aspx" target="_blank"&gt;How To - Protect Forms Authentication in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb355989.aspx" target="_blank"&gt;How To - Protect from Injection Attacks in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998271.aspx" target="_blank"&gt;How To - Project from SQL Injection Attacks in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998331.aspx" target="_blank"&gt;How To - Use ADAM for Roles in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998336.aspx" target="_blank"&gt;How To - Use Authorization Manager (AzMan) in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998360.aspx" target="_blank"&gt;How To - Use Forms Authentication with Active Directory in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998345.aspx" target="_blank"&gt;How To - Use Forms Authentication with Active Directory in Multiple Domains&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998317.aspx" target="_blank"&gt;How To - Use Forms Authentication with SQL Server in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998306.aspx" target="_blank"&gt;How To - Use Health Monitoring in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998351.aspx" target="_blank"&gt;How To - Use Impersonation and Delegation in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998355.aspx" target="_blank"&gt;How To - Use Protocol Transition and Constrained Delegation in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998267.aspx" target="_blank"&gt;How To - Use Regular Expressions to Constrain Input in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998320.aspx" target="_blank"&gt;How To - Use the Network Services Account to Access Resources in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998314.aspx" target="_blank"&gt;How To - Use Role Manager in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998358.aspx" target="_blank"&gt;How To - Use Windows Authentication in ASP.NET 2.0&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;WCF Security How Tos&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949006.aspx" target="_blank"&gt;How to: Audit and Log Security Events in WCF Calling from Windows Forms&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949011.aspx" target="_blank"&gt;How to: Create and Install Temporary Certificates in WCF for Message Security During Development&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949067.aspx" target="_blank"&gt;How to: Create and Install Temporary Certificates in WCF for Transport Security During        &lt;br /&gt;Development&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949057.aspx" target="_blank"&gt;How to: Create and Install Temporary Client Certificates in WCF During Development&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949080.aspx" target="_blank"&gt;How to: Host WCF in a Windows Service Using TCP&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949013.aspx" target="_blank"&gt;How to: Impersonate the Original Caller in WCF Calling from a Web Application&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949055.aspx" target="_blank"&gt;How to: Impersonate the Original Caller in WCF Calling from Windows Forms&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949075.aspx" target="_blank"&gt;How to: Perform Input Validation in WCF&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949095.aspx" target="_blank"&gt;How to: Perform Message Validation with Schema Validation in WCF&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949012.aspx" target="_blank"&gt;How to: Use basicHttpBinding with Windows Authentication and TransportCredentialOnly in WCF from Windows Forms&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc948997.aspx" target="_blank"&gt;How to: Use Certificate Authentication and Message Security in WCF Calling from Windows Forms&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949005.aspx" target="_blank"&gt;How to: Use Certificate Authentication and Transport Security in WCF Calling from Windows Forms&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949014.aspx" target="_blank"&gt;How to: Use Delegation for Flowing the Original Caller Credentials to the Back End in WCF Calling from Windows Forms&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949048.aspx" target="_blank"&gt;How to: Use Health Monitoring to Instrument a WCF Service for Security&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949092.aspx" target="_blank"&gt;How to: Use netTcpBinding with Windows Authentication and Message Security in WCF from Windows Forms&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949091.aspx" target="_blank"&gt;How to: Use netTcpBinding with Windows Authentication and Transport Security in WCF from Windows Forms&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949022.aspx" target="_blank"&gt;How to: Use Protocol Transition for Impersonating and Delegating the Original Caller in WCF&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949027.aspx" target="_blank"&gt;How to: Use the SQL Server Role Provider with Username Authentication in WCF Calling from Windows Forms&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949054.aspx" target="_blank"&gt;How to: Use the SQL Server Role Provider with Windows Authentication in WCF Calling from Windows Forms&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949082.aspx" target="_blank"&gt;How to: Use Username Authentication with the SQL Server Membership Provider and Message Security in WCF Calling from Windows Forms&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949025.aspx" target="_blank"&gt;How to: Use Username Authentication with Transport Security in WCF Calling from Windows Forms&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949010.aspx" target="_blank"&gt;How to: Use wsHttpBinding with Username Authentication and TransportWithMessageCredential in WCF Calling from Windows Forms&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949030.aspx" target="_blank"&gt;How to: Use wsHttpBinding with Windows Authentication and Message Security in WCF Calling from Windows Forms&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949017.aspx" target="_blank"&gt;How to: Use wsHttpBinding with Windows Authentication and Transport Security in WCF Calling from Windows Forms&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Visual Studio Team System&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Guides&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668991.aspx" target="_blank"&gt;Team Development with Visual Studio Team Foundation Server&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Guidelines&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668941.aspx" target="_blank"&gt;Team Build Guidelines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668944.aspx" target="_blank"&gt;Source Control Guidelines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668943.aspx" target="_blank"&gt;Reporting Guidelines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668942.aspx" target="_blank"&gt;Project Management Guidelines&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Practices at a Glance&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668945.aspx" target="_blank"&gt;Team Build Practices at a Glance&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668948.aspx" target="_blank"&gt;Source Control Practices at a Glance&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668947.aspx" target="_blank"&gt;Reporting Practices at a Glance&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668946.aspx" target="_blank"&gt;Project Management Practices at a Glance&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Questions and Answers&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668950.aspx" target="_blank"&gt;Source Control Practices at a Glance&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;How Tos&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668968.aspx" target="_blank"&gt;How To: Add a New Developer to Your Project in Visual Studio 2005 Team Foundation Server&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668977.aspx" target="_blank"&gt;How To: Automatically Run Code Analysis with Team Build in Visual Studio Team Foundation Server&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668978.aspx" target="_blank"&gt;How To: Create a Custom Report for Visual Studio Team Foundation Server&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668979.aspx" target="_blank"&gt;How To: Create a &amp;#8220;Risk over Time&amp;#8221; Report for Visual Studio Team Foundation Server&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668980.aspx" target="_blank"&gt;How To: Create Custom Check-in Policies in Visual Studio Team Foundation Server&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668981.aspx" target="_blank"&gt;How To: Create Your Source Tree in Visual Studio Team Foundation Server&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668982.aspx" target="_blank"&gt;How To: Customize a Process Template in Visual Studio Team Foundation Server&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668983.aspx" target="_blank"&gt;How To: Customize a Report in Visual Studio Team Foundation Server&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668988.aspx" target="_blank"&gt;How To: Manage Projects in Visual Studio Team Foundation Server&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668969.aspx" target="_blank"&gt;How To: Migrate Source Code to Team Foundation Server from Visual Source Safe&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668976.aspx" target="_blank"&gt;How To: Perform a Baseless Merge in Visual Studio Team Foundation Server&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668971.aspx" target="_blank"&gt;How To: Set Up a Continuous Integration Build in Visual Studio Team Foundation Server&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668975.aspx" target="_blank"&gt;How To: Set Up a Scheduled Build in Visual Studio Team Foundation Server&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668986.aspx" target="_blank"&gt;How To: Structure ASP.NET Applications in Visual Studio Team Foundation Server&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668994.aspx" target="_blank"&gt;How To: Structure Windows Applications in Visual Studio Team Foundation Server&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668992.aspx" target="_blank"&gt;How To: Structure Your Source Control Folders in Team Foundation Server&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;My Related Posts&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/03/04/patterns-and-practices-complete-catalog.aspx"&gt;patterns &amp;amp; practices Complete Catalog&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9411189" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jmeier/archive/tags/patterns+and+practices/default.aspx">patterns and practices</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/My+Projects/default.aspx">My Projects</category></item><item><title>New Release: patterns &amp; practices App Arch Guide 2.0 Beta 1</title><link>http://blogs.msdn.com/jmeier/archive/2008/10/27/new-release-patterns-practices-app-arch-guide-2-0-beta-1.aspx</link><pubDate>Tue, 28 Oct 2008 01:24:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9019239</guid><dc:creator>J.D. Meier</dc:creator><slash:comments>16</slash:comments><comments>http://blogs.msdn.com/jmeier/comments/9019239.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jmeier/commentrss.aspx?PostID=9019239</wfw:commentRss><description>&lt;div class="noprint" style="float: right; margin: 2px"&gt;&lt;img title="AppArchGuidev2" style="display: inline" height="172" alt="AppArchGuidev2" src="http://blogs.msdn.com/blogfiles/jmeier/WindowsLiveWriter/NewReleasepatternspracticesAppArc.0Beta1_D893/AppArchGuidev2_thumb.gif" width="132" border="0" /&gt; &lt;/div&gt;  &lt;p&gt;Today we released our &lt;a href="http://www.codeplex.com/AppArchGuide" target="_blank"&gt;patterns &amp;amp; practices App Arch Guide 2.0 Beta 1&lt;/a&gt;.&amp;#160; This is our guide to help solution architects and developers make the most of the Microsoft platform.&amp;#160; It's a distillation of many lessons learned.&amp;#160; It’s principle-based and pattern-oriented to provide a durable, evolvable backdrop for application architecture.&amp;#160; It's a collaborative effort among product team members, field, industry experts, MVPs, and customers.&amp;#160; Keep in mind it’s Beta so there’s still moving parts and we’re processing quite a bit of feedback across the guide.&amp;#160; Now’s the time to bang on it. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;5 Parts&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Part I, “Fundamentals” &lt;/li&gt;    &lt;li&gt;Part II, “Design” &lt;/li&gt;    &lt;li&gt;Part III, “Layers” &lt;/li&gt;    &lt;li&gt;Part IV, “Quality Attributes” &lt;/li&gt;    &lt;li&gt;Part V, “Archetypes – Design and Patterns” &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Chapters&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Chapter 1 - Fundamentals of Application Architecture &lt;/li&gt;    &lt;li&gt;Chapter 2 - .NET Platform Overview &lt;/li&gt;    &lt;li&gt;Chapter 3 - Application Archetypes &lt;/li&gt;    &lt;li&gt;Chapter 4 - Deployment Patterns &lt;/li&gt;    &lt;li&gt;Chapter 5 - Arch Styles &lt;/li&gt;    &lt;li&gt;Chapter 6 - Quality Attributes &lt;/li&gt;    &lt;li&gt;Chapter 7 - Layers and Tiers &lt;/li&gt;    &lt;li&gt;Chapter 8 - Designing Your Architecture &lt;/li&gt;    &lt;li&gt;Chapter 9 - Architecture and Design Guidelines &lt;/li&gt;    &lt;li&gt;Chapter 10 - Designing Services &lt;/li&gt;    &lt;li&gt;Chapter 11 - Communication Guidelines&amp;#160; &lt;/li&gt;    &lt;li&gt;Chapter 12 - Presentation Layer Guidelines &lt;/li&gt;    &lt;li&gt;Chapter 13 - Business Layer Guidelines &lt;/li&gt;    &lt;li&gt;Chapter 14 - Data Access Layer Guidelines &lt;/li&gt;    &lt;li&gt;Chapter 15 - Service Layer Guidelines &lt;/li&gt;    &lt;li&gt;Chapter 16 - Performance Engineering &lt;/li&gt;    &lt;li&gt;Chapter 17 - Security Engineering &lt;/li&gt;    &lt;li&gt;Chapter 18 - Mobile Application &lt;/li&gt;    &lt;li&gt;Chapter 19 - Office Business Application (OBA) &lt;/li&gt;    &lt;li&gt;Chapter 20 - Rich Client Application &lt;/li&gt;    &lt;li&gt;Chapter 21 - Rich Internet Application (RIA) &lt;/li&gt;    &lt;li&gt;Chapter 22 - Service Archetype &lt;/li&gt;    &lt;li&gt;Chapter 23 - SharePoint LOB Application &lt;/li&gt;    &lt;li&gt;Chapter 24 - Web Application &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Key Scenarios      &lt;br /&gt;&lt;/strong&gt;The guide helps you address the following scenarios:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Choose the right architecture for your application. &lt;/li&gt;    &lt;li&gt;Choose the right technologies &lt;/li&gt;    &lt;li&gt;Make more effective choices for key engineering decisions. &lt;/li&gt;    &lt;li&gt;Map appropriate strategies and patterns. &lt;/li&gt;    &lt;li&gt;Map relevant patterns &amp;amp; practices solution assets. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Canonical app frame&lt;/strong&gt; - describes at a meta-level, the tiers and layers that an architect should consider. Each tier/layer is described in terms of its focus, function, capabilities, common design patterns and technologies. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;App Types&lt;/strong&gt;.&amp;#160; Canonical application archetypes to illustrate common application types.&amp;#160; Each archetype is described in terms of the target scenarios, technologies, patterns and infrastructure it contains. Each archetype will be mapped to the canonical app frame. They are illustrative of common app types and not comprehensive or definitive. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Arch Frame&lt;/strong&gt; - a common set of categories for hot spots for key engineering decisions. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Quality Attributes&lt;/strong&gt; - a set of qualities/abilities that shape your application architecture: performance, security, scalability, manageability, deployment, communication, etc. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Principles, patterns and practices&lt;/strong&gt; - Using the frames as backdrops, the guide overlays relevant principles, patterns, and practices. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Technologies and capabilities&lt;/strong&gt; - a description/overview of the Microsoft custom app dev platform and the main technologies and capabilities within it. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Conceptual Framework      &lt;br /&gt;&lt;/strong&gt;At a high level, the guide is based on the following conceptual framework for application architecture:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/jmeier/WindowsLiveWriter/NewReleasepatternspracticesAppArc.0Beta1_D893/ArchMetaFrame2_2.gif"&gt;&lt;img title="ArchMetaFrame2" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="259" alt="ArchMetaFrame2" src="http://blogs.msdn.com/blogfiles/jmeier/WindowsLiveWriter/NewReleasepatternspracticesAppArc.0Beta1_D893/ArchMetaFrame2_thumb.gif" width="450" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Reference Application Architecture      &lt;br /&gt;&lt;/strong&gt;We used the following reference application architecture as a backdrop for explaining how to design effective layers and components:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/jmeier/WindowsLiveWriter/NewReleasepatternspracticesAppArc.0Beta1_D893/RefAppArch_2.gif"&gt;&lt;img title="RefAppArch" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="427" alt="RefAppArch" src="http://blogs.msdn.com/blogfiles/jmeier/WindowsLiveWriter/NewReleasepatternspracticesAppArc.0Beta1_D893/RefAppArch_thumb.gif" width="350" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Key Links&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.codeplex.com/AppArchGuide" target="_blank"&gt;Application Architecture Guide 2.0 – The Book&lt;/a&gt; (CodePlex) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeplex.com/AppArch" target="_blank"&gt;Application Architecture Guide 2.0 – Knowledge Base&lt;/a&gt; (CodePlex) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Core Dev Team&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;J.D. Meier , Alex Homer, David Hill, Jason Taylor, Prashant Bansode , Lonnie Wall, Rob Boucher, Akshay Bogawat &lt;/li&gt; &lt;/ul&gt; &lt;strong&gt;Contributors / Reviewers&lt;/strong&gt;   &lt;br /&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Test team&lt;/strong&gt;: Rohit Sharma, Praveen Rangarajan &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Edit team&lt;/strong&gt;: Dennis Rea. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;External Contributors/Reviewers&lt;/strong&gt;. Adwait Ullal; Andy Eunson; Christian Weyer; David Guimbellot; David Weller; Derek Greer; Eduardo Jezierski; Evan Hoff; Gajapathi Kannan; Jeremy D. Miller; Kent Corley; Mark Baker; Paul Ballard; Norman Headlam; Ryan Plant; Sam Gentile; Udi Dahan &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft Contributors / Reviewers.&lt;/strong&gt; Ade Miller; Anoop Gupta; Bob Brumfield; Brad Abrams; Brian Cawelti; Bhushan Nene; Burley Kawasaki; Carl Perry; Chris Keyser; Chris Tavares; Clint Edmonson; David Hill; Denny Dayton; Diego Dagum; Dmitri Martynov; Dmitri Ossipov; Don Smith; Dragos Manolescu; Elisa Flasko; Eric Fleck; Erwin van der Valk; Faisal Mohamood; Francis Cheung; Gary Lewis; Glenn Block; Gregory Leake; Ilia Fortunov; J.R. Arredondo; John deVadoss; Joseph Hofstader; Koby Avital; Loke Uei Tan; Mehran Nikoo; Michael Puleio; Mike Walker; Mubarak Elamin; Nick Malik; Nobuyuki Akama; Ofer Ashkenazi; Pablo Castro; Pat Helland; Phil Haack; Reed Robison; Rob Tiffany; Ryno Rijnsburger; Scott Hanselman; Serena Yeoh; Srinath Vasireddy; Tom Hollander; Wojtek Kozaczynski &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;My Related Posts&lt;/strong&gt;&lt;/p&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/09/02/patterns-practices-app-arch-guide-2-0-project.aspx"&gt;patterns &amp;amp; practices App Arch Guide 2.0 Project&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/09/26/app-arch-guide-2-0-overview-slides.aspx"&gt;App Arch Guide 2.0 Overview Slides&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/09/24/abstract-for-application-architecture-guide-2-0.aspx"&gt;Abstract for Application Architecture Guide 2.0&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/09/03/app-arch-meta-frame.aspx"&gt;App Arch Meta-Frame&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/09/18/app-types.aspx"&gt;App Types&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/09/22/architecture-frame.aspx"&gt;Architecture Frame&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/09/11/guidelines-are-live.aspx"&gt;App Arch Guidelines&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/09/07/layers-and-components.aspx"&gt;Layers and Components&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/09/17/key-software-trends.aspx"&gt;Key Software Trends&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/10/09/cheat-sheet-patterns-practices-catalog-at-a-glance-posted-to-codeplex.aspx"&gt;Cheat Sheet: patterns &amp;amp; practices Catalog at a Glance Posted to CodePlex&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/10/21/cheat-sheet-patterns-practices-pattern-catalog-posted-to-codeplex.aspx"&gt;Cheat Sheet: patterns &amp;amp; practices Pattern Catalog Posted to CodePlex&lt;/a&gt;&lt;/li&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9019239" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jmeier/archive/tags/patterns+and+practices/default.aspx">patterns and practices</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/My+Projects/default.aspx">My Projects</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/AppArch/default.aspx">AppArch</category></item><item><title>WCF Security Guide is Now Available in HTML</title><link>http://blogs.msdn.com/jmeier/archive/2008/06/19/wcf-security-guide-is-now-available-in-html.aspx</link><pubDate>Thu, 19 Jun 2008 05:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8619805</guid><dc:creator>J.D. Meier</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/jmeier/comments/8619805.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jmeier/commentrss.aspx?PostID=8619805</wfw:commentRss><description>&lt;p&gt;Our guide, &lt;a href="http://www.codeplex.com/WCFSecurityGuide" target="_blank"&gt;patterns &amp;amp; practices Improving Web Services Security:Scenarios and Implementation Guidance for WCF&lt;/a&gt; is now available in HTML.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8619805" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jmeier/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/My+Projects/default.aspx">My Projects</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/WCF/default.aspx">WCF</category></item><item><title>New Release: patterns &amp; practices WCF Security Guide (BETA)</title><link>http://blogs.msdn.com/jmeier/archive/2008/06/04/new-release-patterns-practices-wcf-security-guide-beta.aspx</link><pubDate>Wed, 04 Jun 2008 23:01:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8573905</guid><dc:creator>J.D. Meier</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/jmeier/comments/8573905.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jmeier/commentrss.aspx?PostID=8573905</wfw:commentRss><description>&lt;p&gt;Today we released our WCF Security guide, &lt;a href="http://www.codeplex.com/WCFSecurityGuide" target="_blank"&gt;patterns &amp;amp; practices Improving Web Services Security: Scenarios and Implementation Guidance for WCF&lt;/a&gt;.&amp;nbsp; This is our Microsoft playbook for Windows Communication Foundation (WCF - "Indigo".)&amp;nbsp; It shows you how to build secure Web services using WCF.&amp;nbsp; It's a compendium of proven practices, product team recommendations and insights from the field.  &lt;p&gt;&lt;strong&gt;Download the guide&lt;/strong&gt;  &lt;ul&gt; &lt;li&gt;&lt;a href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=WCFSecurityGuide&amp;amp;ReleaseId=14070" target="_blank"&gt;Download the Guide&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Contents at a Glance&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Part I, "Security Fundamentals for Web Services"&lt;/li&gt; &lt;li&gt;Part II, "Fundamentals of WCF Security"&lt;/li&gt; &lt;li&gt;Part III, "Intranet Application Scenarios"&lt;/li&gt; &lt;li&gt;Part IV, "Internet Application Scenarios" &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Chapters&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Ch 01 - Security Fundamentals for Web Services&lt;/li&gt; &lt;li&gt;Ch 02 - Threats and Countermeasures for Web Services&lt;/li&gt; &lt;li&gt;Ch 03 - Security Design Guidelines for Web Services &lt;/li&gt; &lt;li&gt;Ch 04 - WCF Security Fundamentals&lt;/li&gt; &lt;li&gt;Ch 05 - Authentication, Authorization and Identities in WCF&lt;/li&gt; &lt;li&gt;Ch 06 - Impersonation and Delegation in WCF&lt;/li&gt; &lt;li&gt;Ch 07 - Message and Transport Security in WCF&lt;/li&gt; &lt;li&gt;Ch 08 - WCF Bindings Fundamentals &lt;/li&gt; &lt;li&gt;Ch 09 - Intranet – Web to Remote WCF Using Transport Security (Original Caller, TCP)&lt;/li&gt; &lt;li&gt;Ch 10 - Intranet – Web to Remote WCF Using Transport Security (Trusted Subsystem,HTTP)&lt;/li&gt; &lt;li&gt;Ch 11 - Intranet – Web to Remote WCF Using Transport Security (Trusted Subsystem TCP)&lt;/li&gt; &lt;li&gt;Ch 12 - Intranet – Windows Forms to Remote WCF Using Transport Security (Original Caller, TCP) &lt;/li&gt; &lt;li&gt;Ch 13 - Internet – WCF and ASMX Client to Remote WCF Using Transport Security (Trusted Subsystem, HTTP)&lt;/li&gt; &lt;li&gt;Ch 14 - Internet – Web to Remote WCF Using Transport Security (Trusted Subsystem, TCP)&lt;/li&gt; &lt;li&gt;Ch 15 - Internet – Windows Forms Client to Remote WCF Using Message Security (Original Caller, HTTP) &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Reference&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;WCF Security Checklist&lt;/li&gt; &lt;li&gt;WCF Security Guidelines&lt;/li&gt; &lt;li&gt;WCF Security Practices at a Glance&lt;/li&gt; &lt;li&gt;WCF Questions and Answers (Q&amp;amp;A)&lt;/li&gt; &lt;li&gt;How Tos&lt;/li&gt; &lt;li&gt;WCF Security Resources&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Contributors and Reviewers &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;External&lt;/strong&gt;: Andy Eunson; Anil John; Anu Rajendra; Brandon Bohling; Chaitanya Bijwe; Daniel Root; David P. Romig, Sr.; Dennis Rea; Kevin Lam; Michele Bustamante; Parameswaran Vaideeswaran; Rockford Lotka; Rudolph Araujo; Santosh Bejugam &lt;/li&gt; &lt;li&gt;&lt;strong&gt;Microsoft&lt;/strong&gt;: Alik Levin; Brandon Blazer; Brent Schmaltz; Curt Smith; David Bradley; Dmitri Ossipov; Don Smith; Jan Alexander; Jason Hogg; Jason Pang; John Steer; Marc Goodner; Mark Fussell; Martin Gudgin; Martin Petersen-Frey; Mike de Libero; Mohammad Al-Sabt; Nobuyuki Akama; Ralph Squillace; Richard Lewis; Rick Saling; Rohit Sharma; Scott Mason; Sidd Shenoy; Sidney Higa; Stuart Kwan; Suwat Chitphakdibodin; T.R. Vishwanath; Todd Kutzke; Todd West; Vijay Gajjala; Vittorio Bertocci; Wenlong Dong; Yann Christensen; Yavor Georgiev &lt;/li&gt;&lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8573905" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jmeier/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/My+Projects/default.aspx">My Projects</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/WCF/default.aspx">WCF</category></item><item><title>patterns &amp; practices WCF Security Practices at a Glance Now Available</title><link>http://blogs.msdn.com/jmeier/archive/2008/05/09/patterns-practices-wcf-security-practices-at-a-glance-now-available.aspx</link><pubDate>Fri, 09 May 2008 23:53:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8481995</guid><dc:creator>J.D. Meier</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/jmeier/comments/8481995.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jmeier/commentrss.aspx?PostID=8481995</wfw:commentRss><description>&lt;p&gt;For this week's release in our &lt;a href="http://www.codeplex.com/WCFSecurity" target="_blank"&gt;patterns &amp;amp; practices WCF Security Guidance project,&lt;/a&gt; we released our first version of our &lt;a href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=Practices%20at%20a%20Glance" target="_blank"&gt;WCF Security Practices at a Glance&lt;/a&gt;.&amp;nbsp; Practices At a Glance gives you a bird's-eye view of how to perform common tasks.&amp;nbsp; They are scannable and outcome-driven so that you can quickly browse the problem/solution pairs.&amp;nbsp; Rather than a laundry list of granular tasks, we organize them by our Web Services Security frame (still evolving.) &lt;p&gt;&lt;strong&gt;Categories&lt;br&gt;&lt;/strong&gt;Here's how we grouped our WCF Security Practices at a Glance so far: &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Auditing and Logging&lt;/strong&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Authentication&lt;/strong&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Authorization&lt;/strong&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Configuration Management&lt;/strong&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Deployment Considerations&lt;/strong&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Exception Management&lt;/strong&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Hosting&lt;/strong&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Impersonation/Delegation &lt;/strong&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Input Validation&lt;/strong&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Message Security &lt;/strong&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Proxy Considerations &lt;/strong&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Sensitive Data&lt;/strong&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Transport Security&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Here's a snapshot of the problems solved from our Practices At a Glance, but you can see our answers explained at our WCF Security Guidance project site. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Auditing and Logging&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How to audit authentication events&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to audit authorization events&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to enable WCF message logging&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to enable WCF tracing&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to use Health Monitoring in WCF &lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to view log information&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to view trace information&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to log traces to a WMI provider&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to turn off audit failure suppression&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Authentication&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How to authenticate users against the SQL Membership Provider&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to authenticate users against Active Directory&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to authenticate users against Active Directory without windows authentication&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to authenticate users with certificates&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to map certificates with windows accounts&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to authenticate users against a custom user store&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to authenticate users with Kerberos direct to support non-WCF clients with windows authentication&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Authorization&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How to authorize imperatively&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to authorize declaratively&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to authorize users against Windows groups&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to authorize users against Windows groups using the AspNetWindowsTokenRoleProvider&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to authorize users against the SQL Role Provider&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to authorize users against the ASP.Net Role Provider&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to assign the current principal with IAuthorizationPolicy to allow authorization using custom authentication&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Configuration Management&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How to encrypt sensitive data in your configuration files&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to run your service under a specific identity&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to create a service account for your WCF service&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to stop clients from referencing your service&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to protect against message replay attacks&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Deployment Considerations&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How to configure certificates to enable SSL in IIS&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to map Windows accounts with certificates&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to create a Service Principle Name (SPN)&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to configure WCF for NATs and Firewalls&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to create an X.509 certificate&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Exception Management&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How to shield exception information with fault contracts&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to create an error handler to log details of faults for auditing purposes&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to handle unhandled exceptions in downstream services&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to throw an exception with complex types or data contracts with a fault exception&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to handle unknown faults in a service &lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to implement a data contract to propagate exception details for debugging purposes&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to implement fault contracts in call back functions&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Hosting &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How to host WCF in IIS&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to host WCF in a Windows service&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to self-host WCF&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to configure a least-privilege account to host your service&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Impersonation/Delegation&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How to choose between trusted subsystem and impersonation/delegation &lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to impersonate the original caller when using Windows authentication&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to impersonate programmatically in WCF &lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to impersonate declaratively in WCF&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to delegate the original caller to call backend services when using Windows authentication&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to impersonate the original caller without Windows authentication&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to impersonate the original caller using S4U Kerberos extensions.&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to delegate the original caller using S4U Kerberos extensions.&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to impersonate and delegate using LogonUser Windows API&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to flow the original caller from an ASP.NET client to WCF&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to control access to a remote resource based on the original callers identity.&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Input Validation&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How to protect your service from malicious messages&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to protect your service from malicious input&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to protect your service from denial of service attacks&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to validate parameters with parameter inspectors&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to validate parameters with message inspectors using schemas&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to validate data contracts with message inspectors using schemas&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to validate message contracts with message inspectors using schemas&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to use regular expressions validate format, range and length in schemas&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to validate inbound messages on a service&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to validate outbound messages on a service&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to validate outbound messages on the client&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to validate inbound messages on the client&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to validate input parameters&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to validate output parameters&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Message Security&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How to use message security&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to partially encrypt a message&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to use out-of-band credentials with message security&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Proxy Considerations&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How to avoid proxy spoofing&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to expose service metadata for your clients&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to create a proxy to a service hosted in IIS that requires certificate authentication and transport security&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Sensitive Data&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How to encrypt sensitive data in configuration files&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to protect sensitive data in memory&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to protect sensitive data on the network&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Transport Security&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How to use transport security&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to use secure conversations in WCF&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;X.509 Certificates&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How to create a temporary X.509 certificate for transport security&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to create a temporary X.509 certificate for message security&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to create a temporary X.509 certificate for certificate authentication&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;My Related Posts&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/05/01/6-new-patterns-practices-wcf-security-how-tos.aspx"&gt;6 New patterns &amp;amp; practices WCF Security How Tos&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/04/25/patterns-practices-wcf-security-questions-and-answers-now-available.aspx"&gt;patterns &amp;amp; practices WCF Security Questions and Answers Now Available&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/04/17/patterns-practices-wcf-3-5-security-guidelines-now-available.aspx"&gt;patterns &amp;amp; practices WCF 3.5 Security Guidelines Now Available&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/04/11/patterns-practices-wcf-security-guidance-updated-application-scenarios.aspx"&gt;patterns &amp;amp; practices WCF Security Guidance: Updated Application Scenarios&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/04/04/patterns-and-practices-wcf-security-application-scenarios.aspx"&gt;patterns &amp;amp; practices WCF Security Application Scenarios&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/03/27/patterns-and-practices-wcf-security-guidance-now-available.aspx"&gt;patterns &amp;amp; practices WCF Security Guidance Now Available&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8481995" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jmeier/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/My+Projects/default.aspx">My Projects</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/WCF/default.aspx">WCF</category></item><item><title>6 New patterns &amp; practices WCF Security How Tos</title><link>http://blogs.msdn.com/jmeier/archive/2008/05/01/6-new-patterns-practices-wcf-security-how-tos.aspx</link><pubDate>Thu, 01 May 2008 23:12:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8447554</guid><dc:creator>J.D. Meier</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/jmeier/comments/8447554.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jmeier/commentrss.aspx?PostID=8447554</wfw:commentRss><description>&lt;p&gt;We have 6 new How Tos for this week's release of our &lt;a href="http://www.codeplex.com/WCFSecurity" target="_blank"&gt;patterns &amp;amp; practices WCF Security Guidance Project&lt;/a&gt;.  &lt;p&gt;&lt;strong&gt;WCF Security How Tos&lt;/strong&gt;  &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Perform%20Input%20Validation%20in%20WCF&amp;amp;referringTitle=How%20Tos" target="_blank"&gt;How To - Perform Input Validation in WCF&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Perform%20Message%20Validation%20with%20Schemas%20in%20WCF&amp;amp;referringTitle=How%20Tos" target="_blank"&gt;How To - Perform Message Validation with Schemas in WCF&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Use%20basicHttpBinding%20with%20Windows%20Authentication%20and%20TransportCredentialOnly%20in%20WCF%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos" target="_blank"&gt;How To - Use basicHttpBinding with Windows Authentication and TransportCredentialOnly in WCF from Windows Forms&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Use%20Certificate%20Authentication%20and%20Message%20Security%20in%20WCF%20calling%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos" target="_blank"&gt;How To - Use Certificate Authentication and Message Security in WCF calling from Windows Forms&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Use%20netTcpBinding%20with%20Windows%20Authentication%20and%20Message%20Security%20in%20WCF%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos" target="_blank"&gt;How To - Use netTcpBinding with Windows Authentication and Message Security in WCF from Windows Forms&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Use%20wsHttpBinding%20with%20Username%20Authentication%20and%20TransportWithMessageCredential%20in%20WCF%20calling%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos" target="_blank"&gt;How To - Use wsHttpBinding with Username Authentication and TransportWithMessageCredential in WCF calling from Windows Forms&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;My Related Posts&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/04/25/patterns-practices-wcf-security-questions-and-answers-now-available.aspx"&gt;patterns &amp;amp; practices WCF Security Questions and Answers Now Available&lt;/a&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/04/17/patterns-practices-wcf-3-5-security-guidelines-now-available.aspx"&gt;patterns &amp;amp; practices WCF 3.5 Security Guidelines Now Available&lt;/a&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/04/11/patterns-practices-wcf-security-guidance-updated-application-scenarios.aspx"&gt;patterns &amp;amp; practices WCF Security Guidance: Updated Application Scenarios&lt;/a&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/04/04/patterns-and-practices-wcf-security-application-scenarios.aspx"&gt;patterns &amp;amp; practices WCF Security Application Scenarios&lt;/a&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/03/27/patterns-and-practices-wcf-security-guidance-now-available.aspx"&gt;patterns &amp;amp; practices WCF Security Guidance Now Available&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8447554" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jmeier/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/My+Projects/default.aspx">My Projects</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/WCF/default.aspx">WCF</category></item><item><title>patterns &amp; practices WCF Security Questions and Answers Now Available</title><link>http://blogs.msdn.com/jmeier/archive/2008/04/25/patterns-practices-wcf-security-questions-and-answers-now-available.aspx</link><pubDate>Fri, 25 Apr 2008 05:13:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8423239</guid><dc:creator>J.D. Meier</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/jmeier/comments/8423239.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jmeier/commentrss.aspx?PostID=8423239</wfw:commentRss><description>&lt;p&gt;What are your key security-related questions with WCF?&amp;nbsp; More importantly, what are the answers?&amp;nbsp; For this week's release of our &lt;a href="http://www.codeplex.com/WCFSecurity" target="_blank"&gt;WCF Security Guidance Project&lt;/a&gt;, we posted our &lt;a href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=Questions%20and%20Answers&amp;amp;referringTitle=Home" target="_blank"&gt;WCF Security Q&amp;amp;A (Questions and Answers)&lt;/a&gt; to CodePlex.&amp;nbsp; &lt;p&gt;To create the questions and answers set, we first gathered and organized recurring questions from our field, support, customers and forums.&amp;nbsp; We then worked through to create precise answers.&amp;nbsp; What you get is a browsable collection of questions and answers, organized by our security frame.&amp;nbsp;&amp;nbsp; The security frame maps to actionable categories of your application. &lt;p&gt;Here's a snapshot of the questions from our Q&amp;amp;A, but you can see our answers explained at our WCF Security Guidance project site. &lt;p&gt;&lt;strong&gt;Design Considerations&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How do I decide on an authentication strategy?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I decide on an authorization strategy?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;When should I use message security vs. transport security?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I use my existing Active Directory infrastructure?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What bindings should I use over the Internet?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What bindings should I use over the Intranet?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;When should I use resource-based authorization vs. roles-based authorization?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;When should I impersonate the original caller?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;When should I flow the original caller’s identity to back-end resources?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I migrate to WCF from an ASMX web service?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I migrate to WCF from a COM application?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I migrate to WCF from a DCOM application?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I migrate to WCF from a WSE application?&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Auditing and Logging&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;What WCF Service security events should be logged?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I enable logging and auditing in WCF?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I enable auditing in WCF?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I stop my service if there has been an auditing failure?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I log important business events in WCF?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I implement log throttling in WCF?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I use Health Monitoring Feature with WCF?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I protect my log files?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How to I pass user identity information in a message for auditing purpose?&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Authentication&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How do I decide on an authentication strategy in WCF?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;When should I use brokered authentication?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;When should I use the SQL Server Membership provider?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I authenticate against Active Directory?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I authenticate against a SQL store?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I authenticate against a custom store?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I protect passwords in my user store? &lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I use certificate authentication with X.509 certificates?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What is the most common authentication scenario for intranet applications?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What is the most common authentication scenario for internet applications?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I support authentication for multiple client types? &lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What is federated security?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I send credentials in the message when I am using transport security?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I avoid cleartext passwords?&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Authorization&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How do I decide on an authorization strategy in WCF?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What’s the difference between resource-based, roles-based and claims-based authorization?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I use Windows groups for role authorization in WCF?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I use the SQL Role provider for ASPNET role authorization in WCF?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I use the Windows Token role provider for ASPNET role authorization in WCF?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I use the Authorization Store role provider for ASPNET role authorization in WCF?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What’s the difference between declarative and imperative roles authorization?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I restrict access to WCF operations to specific Windows users?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I associate roles with a certificate?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What is a service principle name (SPN)?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I create a service principle name (SPN)?&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Bindings&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;What is a binding?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What bindings are available?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;Which bindings are best suited for the Internet?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;Which bindings are best suited for the Intranet?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I choose an appropriate binding? &lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;Configuration Management &lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I encrypt sensitive data in WCF configuration file?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I run a WCF Service with a particular identity?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I create a service account for running my WCF Service?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;When should I use a configuration file versus the WCF object model?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What is a metadata exchange (MEX) binding?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I keep clients from referencing my service? &lt;/em&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Exception Management &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How do I implement a global exception handler?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What is a fault contract?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I define a fault contract?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I avoid sending exception details to the client?&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Hosting &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How do I configure a least privileged account to host my service?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;When should I host my service in IIS?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;When should I host my service in a Windows service?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;When should I self-host my service? &lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;Impersonation/Delegation &lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What are my impersonation options?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What is the difference between impersonation and delegation?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I impersonate the original caller for an operation call?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I temporarily impersonate the original caller in an operation call?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I impersonate a specific (fixed) identity?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What is constrained delegation?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What is protocol transition?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I flow original caller from ASP.NET client to WCF Service?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What is the difference between declarative and programmatic impersonation?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What is the trusted subsystem model?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;When should I flow the original caller to back-end code? &lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I control access to a remote resource based on the original caller’s identity?&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Input/Data Validation &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How do I implement input and data validation in WCF?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What is schema validation?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;What is parameter validation?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;Should I validate before or after message serialization?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I protect my service from denial of service attacks?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I protect my service from malicious input attacks?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I protect my service from malformed messages? &lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;Message Protection &lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;When should I use message security?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;When should I use transport security?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I protect my message when there are intermediaries routing my message?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I protect my message when there are multiple protocols used during message&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;transit?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I implement partial message encryption?&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Proxy Considerations&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;When should I use a channel factory?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;When do I need to expose a metadata exchange endpoint for my service?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I avoid proxy spoofing?&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Sensitive Data &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How do I protect sensitive data in configuration files?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I protect sensitive data in memory?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I protect my metadata?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I protect sensitive data from being read on the wire?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I protect sensitive data from being tampered with on the wire?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I authenticate a message was sent by the expected sender?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I encrypt data within my message?&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;X.509 Certificates&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;How do I create X.509 certificates?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;Do I need to create a certificate signed by the root CA certificate?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I use X.509 certificate revocation?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I authenticate users with X.509 certificates, and then perform role-based access control using an Active Directory domain?&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Deployment Considerations&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;What are the additional considerations for using WCF in a webfarm?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I configure WCF for NATs and Firewalls?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I configure Active Directory groups and accounts for role-based authorization checks?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I create an X.509 certificate?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;When should I use a Service Principle Name (SPN)?&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;em&gt;How do I configure a least privileged account for my service?&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;My Related Posts&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/04/17/patterns-practices-wcf-3-5-security-guidelines-now-available.aspx"&gt;patterns &amp;amp; practices WCF 3.5 Security Guidelines Now Available&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/04/11/patterns-practices-wcf-security-guidance-updated-application-scenarios.aspx"&gt;patterns &amp;amp; practices WCF Security Guidance: Updated Application Scenarios&lt;/a&gt; &lt;/li&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/04/04/patterns-and-practices-wcf-security-application-scenarios.aspx"&gt;patterns &amp;amp; practices WCF Security Application Scenarios&lt;/a&gt; &lt;/li&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/03/27/patterns-and-practices-wcf-security-guidance-now-available.aspx"&gt;patterns &amp;amp; practices WCF Security Guidance Now Available&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8423239" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jmeier/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/My+Projects/default.aspx">My Projects</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/WCF/default.aspx">WCF</category></item><item><title>patterns &amp; practices WCF 3.5 Security Guidelines Now Available</title><link>http://blogs.msdn.com/jmeier/archive/2008/04/17/patterns-practices-wcf-3-5-security-guidelines-now-available.aspx</link><pubDate>Thu, 17 Apr 2008 18:38:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8403465</guid><dc:creator>J.D. Meier</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.msdn.com/jmeier/comments/8403465.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jmeier/commentrss.aspx?PostID=8403465</wfw:commentRss><description>&lt;p&gt;For this week's release in our &lt;a href="http://www.codeplex.com/WCFSecurity" target="_blank"&gt;patterns &amp;amp; practices WCF Security Guidance project&lt;/a&gt;, we released our first version of our &lt;a href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=Guidelines" target="_blank"&gt;WCF 3.5 Security Guidelines&lt;/a&gt;.&amp;nbsp; Each guideline is a nugget of what to do, why, and how.&amp;nbsp; The goal of the guideline format is to take a lot of information, compress it down, and turn insight into action.  &lt;p&gt;The downside is that it's tough to create prescriptive guidelines that are generic enough to be reusable, but specific enough to be helpful.&amp;nbsp; The upside is that customers find the guidelines help them cut through a lot of information and take action.&amp;nbsp; We contextualize the guidelines as much as we can, but ultimately you're in the best position to do the pattern matching to find which guidelines are relevant for your scenarios, and how you need to tailor them.  &lt;p&gt;Here's a snapshot of the guidelines, but you can see our security guidelines explained at our WCF Security Guidance project site.  &lt;p&gt;&lt;strong&gt;Categories&lt;/strong&gt;&lt;br&gt;Our WCF Security guidelines are organized using the following buckets:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Auditing and Logging &lt;/li&gt; &lt;li&gt;Authentication &lt;/li&gt; &lt;li&gt;Authorization &lt;/li&gt; &lt;li&gt;Binding &lt;/li&gt; &lt;li&gt;Configuration Management &lt;/li&gt; &lt;li&gt;Exception Management &lt;/li&gt; &lt;li&gt;Hosting &lt;/li&gt; &lt;li&gt;Impersonation and Delegation &lt;/li&gt; &lt;li&gt;Input/Data Validation &lt;/li&gt; &lt;li&gt;Proxy Considerations &lt;/li&gt; &lt;li&gt;Deployment considerations&amp;nbsp; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Auditing and Logging&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;Use WCF auditing to audit your service&lt;/li&gt; &lt;li&gt;If non-repudiation is important, consider setting SuppressAuditFailure property to false&lt;/li&gt; &lt;li&gt;Use message logging to log operations on your service&lt;/li&gt; &lt;li&gt;Instrument for user management events&lt;/li&gt; &lt;li&gt;Instrument for significant business operations &lt;/li&gt; &lt;li&gt;Protect log files from unauthorized access&lt;/li&gt; &lt;li&gt;Do not log sensitive information &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Authentication &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Know your authentication options&lt;/li&gt; &lt;li&gt;Use Windows Authentication when you can&lt;/li&gt; &lt;li&gt;If you support non-WCF clients using windows authentication and message security, consider using the Kerberos direct option&lt;/li&gt; &lt;li&gt;If your users are in AD, but you can’t use windows authentication, consider using username authentication &lt;/li&gt; &lt;li&gt;If your clients have certificates, consider using client certificate authentication&lt;/li&gt; &lt;li&gt;If you need to streamline certificate distribution to your clients for message encryption, consider using the negotiate credentials option&lt;/li&gt; &lt;li&gt;If your users are in a custom store, consider using username authentication with a custom validator&lt;/li&gt; &lt;li&gt;If your users are in a SQL membership store, use the SQL Membership Provider&lt;/li&gt; &lt;li&gt;If your partner applications need to be authenticated when calling WCF services, use client certificate authentication. &lt;/li&gt; &lt;li&gt;If you are using username authentication, use SQL Server Membership Provider instead of custom authentication&lt;/li&gt; &lt;li&gt;If you need to support intermediaries and a variety of transports between client and service, use message security to protect credentials &lt;/li&gt; &lt;li&gt;If you are using username authentication, validate user login information&lt;/li&gt; &lt;li&gt;Do not store passwords directly in the user store&lt;/li&gt; &lt;li&gt;Enforce strong passwords &lt;/li&gt; &lt;li&gt;Protect access to your credential store&lt;/li&gt; &lt;li&gt;If you are using Windows Forms to connect to WCF, do not cache credentials &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Authorization &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;If you use ASP.NET roles, use the ASP.NET Role Provider&lt;/li&gt; &lt;li&gt;If you use windows groups for authorization, use ASP.NET Role Provider with AspNetWindowsTokenRoleProvider&lt;/li&gt; &lt;li&gt;If you store role information in SQL, consider using the SQL Server Role Provider for roles authorization&lt;/li&gt; &lt;li&gt;If you store role information in Windows Groups, consider using the WCF PrincipalPermissionAttribute class for roles authorization&lt;/li&gt; &lt;li&gt;If you need to authorize access to WCF operations, use declarative authorization&lt;/li&gt; &lt;li&gt;If you need to perform fine-grained authorization based on business logic, use imperative authorization &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Binding &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;If you need to support clients over the internet, consider using wsHttpBinding.&lt;/li&gt; &lt;li&gt;If you need to expose your WCF service to legacy clients as an ASMX web service, use basicHttpBinding&lt;/li&gt; &lt;li&gt;If you need to support remote WCF clients within an intranet, consider using netTcpBinding.&lt;/li&gt; &lt;li&gt;If you need to support local WCF clients, consider using netNamedPipeBinding.&lt;/li&gt; &lt;li&gt;If you need to support disconnected queued calls, use netMsmqBinding.&lt;/li&gt; &lt;li&gt;If you need to support bidirectional communication between WCF Client and WCF service, use wsDualHttpBinding. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Configuration Management&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;Use Replay detection to protect against message replay attacks&lt;/li&gt; &lt;li&gt;If you host your service in a Windows service, expose a metadata exchange (mex) binding&lt;/li&gt; &lt;li&gt;If you don’t want to expose your WSDL, turn off HttpGetEnabled and metadata exchange (mex)&lt;/li&gt; &lt;li&gt;Manage bindings and endpoints in config not code&lt;/li&gt; &lt;li&gt;Associate names with the service configuration when you create service behavior, endpoint behavior, and binding configuration&lt;/li&gt; &lt;li&gt;Encrypt configuration sections that contain sensitive data &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Exception Management&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;Use structured exception handling&lt;/li&gt; &lt;li&gt;Do not divulge exception details to clients in production&lt;/li&gt; &lt;li&gt;Use a fault contract to return error information to clients&lt;/li&gt; &lt;li&gt;Use a global exception handler to catch unhandled exceptions &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Hosting &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;If you are hosting your service in a Windows Service, use a least privileged custom domain account&lt;/li&gt; &lt;li&gt;If you are hosting your service in IIS, use a least privileged service account&lt;/li&gt; &lt;li&gt;Use IIS to host your service unless you need to use a transport that IIS does not support &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Impersonation and Delegation&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;Know the impersonation options&lt;/li&gt; &lt;li&gt;If you have to flow the original caller, use constrained delegation&lt;/li&gt; &lt;li&gt;Consider LogonUser when you need to impersonate but you don’t have trusted delegation&lt;/li&gt; &lt;li&gt;Consider S4U when you need a Windows token and you don’t have the original caller’s credentials&lt;/li&gt; &lt;li&gt;Use programmatic impersonation to impersonate based on business logic&lt;/li&gt; &lt;li&gt;When impersonating programmatically be sure to revert to original context&lt;/li&gt; &lt;li&gt;Only impersonate on operations that require it&lt;/li&gt; &lt;li&gt;Use OperationBehavior to impersonate declaratively &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Input/Data Validation&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;If you need to validate parameters, use parameter inspectors&lt;/li&gt; &lt;li&gt;If your service has operations that accept message or data contracts, use schemas to validate your messages&lt;/li&gt; &lt;li&gt;If you need to do schema validation, use message inspectors &lt;/li&gt; &lt;li&gt;Validate operation parameters for length, range, format and type&lt;/li&gt; &lt;li&gt;Validate parameter input on the server &lt;/li&gt; &lt;li&gt;Validate service responses on the client&lt;/li&gt; &lt;li&gt;Do not rely on client-side validation&lt;/li&gt; &lt;li&gt;Avoid user-supplied file name and path input&lt;/li&gt; &lt;li&gt;Do not echo untrusted input &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Proxy Considerations&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;Publish your metadata over HTTPS to protect your clients from proxy spoofing&lt;/li&gt; &lt;li&gt;If you turn off mutual authentication, be aware of service spoofing &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Deployment considerations&lt;/strong&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;Do not use temporary certificates in production&lt;/li&gt; &lt;li&gt;If you are using a custom domain account in the identity pool for your WCF application, create an SPN for Kerberos to authenticate the client.&lt;/li&gt; &lt;li&gt;If you are using a custom service account and need to use trusted for delegation, create an SPN&lt;/li&gt; &lt;li&gt;If you are hosting your service in a Windows Service, using a custom domain identity, and ASP.NET needs to use constrained trusted for delegation when calling the service, create an SPN&lt;/li&gt; &lt;li&gt;Use IIS to host your service unless you need to use a transport that IIS does not support&lt;/li&gt; &lt;li&gt;Use a least privileged account to run your WCF service&lt;/li&gt; &lt;li&gt;Protect sensitive data in your configuration files &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;My Related Posts&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/04/11/patterns-practices-wcf-security-guidance-updated-application-scenarios.aspx"&gt;patterns &amp;amp; practices WCF Security Guidance: Updated Application Scenarios&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/04/04/patterns-and-practices-wcf-security-application-scenarios.aspx"&gt;patterns &amp;amp; practices WCF Security Application Scenarios&lt;/a&gt; &lt;/li&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2008/03/27/patterns-and-practices-wcf-security-guidance-now-available.aspx"&gt;patterns &amp;amp; practices WCF Security Guidance Now Available&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8403465" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jmeier/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/My+Projects/default.aspx">My Projects</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/WCF/default.aspx">WCF</category></item><item><title>patterns &amp; practices WCF Security Guidance: Updated Application Scenarios</title><link>http://blogs.msdn.com/jmeier/archive/2008/04/11/patterns-practices-wcf-security-guidance-updated-application-scenarios.aspx</link><pubDate>Fri, 11 Apr 2008 06:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8378021</guid><dc:creator>J.D. Meier</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/jmeier/comments/8378021.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jmeier/commentrss.aspx?PostID=8378021</wfw:commentRss><description>&lt;P&gt;For this week's release in our &lt;A href="http://www.codeplex.com/WCFSecurity" target=_blank mce_href="http://www.codeplex.com/WCFSecurity"&gt;patterns &amp;amp; practices WCF Security Guidance project&lt;/A&gt;, we added new sections to our &lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=Application%20Scenarios&amp;amp;referringTitle=Home" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=Application%20Scenarios&amp;amp;referringTitle=Home"&gt;WCF Security Application Scenarios&lt;/A&gt;.&amp;nbsp; We added sections for analysis, code and configuration examples.&amp;nbsp; The analysis section explains the rationale behind some of the decisions.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The idea behind the application scenarios is to show you a before and after look of end-to-end solutions.&amp;nbsp; Rather than a single solution, we give you a set of solutions to pick from.&amp;nbsp; The main parameters that vary in each solution include: Intranet vs. Internet, ASP.NET client vs. Windows Forms clients, TCP vs. HTTP, impersonation/delegation vs. trusted subsystem, and AD (domain credentials) vs. a custom user store. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;WCF Security Application Scenarios &lt;BR&gt;&lt;/STRONG&gt;Intranet &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=Intranet%20%u2013%20Web%20to%20Remote%20WCF%20Using%20Transport%20Security%20%28Trusted%20Subsystem%20TCP%29&amp;amp;referringTitle=Application%20Scenarios" target=_blank&gt;Intranet – Web to Remote WCF Using Transport Security (Trusted Subsystem TCP)&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=Intranet%20%u2013%20Web%20to%20Remote%20WCF%20Using%20Transport%20Security%20%28Trusted%20Subsystem%2c%20HTTP%29&amp;amp;referringTitle=Application%20Scenarios" target=_blank&gt;Intranet – Web to Remote WCF Using Transport Security (Trusted Subsystem, HTTP)&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=Intranet%20%u2013%20Web%20to%20Remote%20WCF%20Using%20Transport%20Security%20%28Original%20Caller%2c%20TCP%29&amp;amp;referringTitle=Application%20Scenarios" target=_blank&gt;Intranet – Web to Remote WCF Using Transport Security (Original Caller, TCP)&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=Intranet%20%u2013%20Windows%20Forms%20to%20Remote%20WCF%20Using%20Transport%20Security%20%28TCP%29&amp;amp;referringTitle=Application%20Scenarios" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=Intranet%20%u2013%20Windows%20Forms%20to%20Remote%20WCF%20Using%20Transport%20Security%20%28TCP%29&amp;amp;referringTitle=Application%20Scenarios"&gt;Intranet – Windows Forms to Remote WCF Using Transport Security (TCP)&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Internet &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=Internet%20%u2013%20Web%20to%20Remote%20WCF%20Using%20Transport%20Security%20%28Trusted%20Subsystem%29&amp;amp;referringTitle=Application%20Scenarios" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=Internet%20%u2013%20Web%20to%20Remote%20WCF%20Using%20Transport%20Security%20%28Trusted%20Subsystem%29&amp;amp;referringTitle=Application%20Scenarios"&gt;Internet – Web to Remote WCF Using Transport Security (Trusted Subsystem)&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=Internet%20%u2013%20Windows%20Forms%20Client%20Calling%20WCF%20Using%20Message%20Security&amp;amp;referringTitle=Application%20Scenarios" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=Internet%20%u2013%20Windows%20Forms%20Client%20Calling%20WCF%20Using%20Message%20Security&amp;amp;referringTitle=Application%20Scenarios"&gt;Internet – Windows Forms Client Calling WCF Using Message Security&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Note that if there's enough interest and time, we'll add a scenario that shows accessing an existing custom user store (i.e. you aren't using Membership.)&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;My Related Posts&lt;/STRONG&gt; &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/jmeier/archive/2008/04/04/patterns-and-practices-wcf-security-application-scenarios.aspx" mce_href="http://blogs.msdn.com/jmeier/archive/2008/04/04/patterns-and-practices-wcf-security-application-scenarios.aspx"&gt;patterns &amp;amp; practices WCF Security Application Scenarios&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/jmeier/archive/2008/03/27/patterns-and-practices-wcf-security-guidance-now-available.aspx" mce_href="http://blogs.msdn.com/jmeier/archive/2008/03/27/patterns-and-practices-wcf-security-guidance-now-available.aspx"&gt;patterns &amp;amp; practices WCF Security Guidance Now Available&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8378021" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jmeier/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/My+Projects/default.aspx">My Projects</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/WCF/default.aspx">WCF</category></item><item><title>patterns and practices WCF Security Guidance Now Available</title><link>http://blogs.msdn.com/jmeier/archive/2008/03/27/patterns-and-practices-wcf-security-guidance-now-available.aspx</link><pubDate>Thu, 27 Mar 2008 19:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8339917</guid><dc:creator>J.D. Meier</dc:creator><slash:comments>20</slash:comments><comments>http://blogs.msdn.com/jmeier/comments/8339917.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jmeier/commentrss.aspx?PostID=8339917</wfw:commentRss><description>&lt;P&gt;Our &lt;A href="http://www.codeplex.com/WCFSecurity" target=_blank mce_href="http://www.codeplex.com/WCFSecurity"&gt;patterns &amp;amp; practices WCF Security Guidance Project&lt;/A&gt; is in progress on CodePlex.&amp;nbsp; This is our first release of prescriptive guidance modules for WCF Security.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How Tos&lt;/STRONG&gt; &lt;BR&gt;Our How Tos give you step by step instructions for performing key tasks:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Create%20and%20Install%20Temporary%20Certificates%20in%20WCF%20for%20Message%20Security%20During%20Development&amp;amp;referringTitle=How%20Tos" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Create%20and%20Install%20Temporary%20Certificates%20in%20WCF%20for%20Message%20Security%20During%20Development&amp;amp;referringTitle=How%20Tos"&gt;How To - Create and Install Temporary Certificates in WCF for Message Security During Development&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Create%20and%20Install%20Temporary%20Certificates%20in%20WCF%20for%20Transport%20Security%20during%20Development&amp;amp;referringTitle=How%20Tos" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Create%20and%20Install%20Temporary%20Certificates%20in%20WCF%20for%20Transport%20Security%20during%20Development&amp;amp;referringTitle=How%20Tos"&gt;How To - Create and Install Temporary Certificates in WCF for Transport Security During Development&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Impersonate%20the%20Original%20Caller%20in%20WCF%20calling%20from%20Web%20Application&amp;amp;referringTitle=How%20Tos" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Impersonate%20the%20Original%20Caller%20in%20WCF%20calling%20from%20Web%20Application&amp;amp;referringTitle=How%20Tos"&gt;How To - Impersonate the Original Caller in WCF calling from Web Application&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Impersonate%20the%20Original%20Caller%20in%20WCF%20calling%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Impersonate%20the%20Original%20Caller%20in%20WCF%20calling%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos"&gt;How To - Impersonate the Original Caller in WCF calling from Windows Forms&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Use%20netTcpBinding%20with%20Windows%20Authentication%20and%20Transport%20Security%20in%20WCF%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Use%20netTcpBinding%20with%20Windows%20Authentication%20and%20Transport%20Security%20in%20WCF%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos"&gt;How To - Use netTcpBinding with Windows Authentication and Transport Security in WCF from Windows Forms&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Use%20SQL%20Role%20Provider%20with%20Username%20Authentication%20in%20WCF%20calling%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Use%20SQL%20Role%20Provider%20with%20Username%20Authentication%20in%20WCF%20calling%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos"&gt;How To - Use SQL Role Provider with Username Authentication in WCF from Windows Forms&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Use%20SQL%20Role%20Provider%20with%20Windows%20Authentication%20in%20WCF%20calling%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Use%20SQL%20Role%20Provider%20with%20Windows%20Authentication%20in%20WCF%20calling%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos"&gt;How To - Use SQL Role Provider with Windows Authentication in WCF from Windows Forms&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Use%20Username%20Authentication%20with%20the%20SQL%20Membership%20Provider%20and%20Message%20Security%20in%20WCF%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Use%20Username%20Authentication%20with%20the%20SQL%20Membership%20Provider%20and%20Message%20Security%20in%20WCF%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos"&gt;How To - Use Username Authentication with the SQL Membership Provider and Message Security in WCF from Windows Forms&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Use%20wsHttpBinding%20with%20Windows%20Authentication%20and%20Message%20Security%20in%20WCF%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Use%20wsHttpBinding%20with%20Windows%20Authentication%20and%20Message%20Security%20in%20WCF%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos"&gt;How To - Use WsHttpBinding with Windows Authentication and Message Security in WCF from Windows Forms&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Use%20wsHttpBinding%20with%20Windows%20Authentication%20and%20Transport%20Security%20in%20WCF%20calling%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%20-%20Use%20wsHttpBinding%20with%20Windows%20Authentication%20and%20Transport%20Security%20in%20WCF%20calling%20from%20Windows%20Forms&amp;amp;referringTitle=How%20Tos"&gt;How To - Use wsHttpBinding with Windows Authentication and Transport Security in WCF calling from Windows Forms&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Videos &lt;BR&gt;&lt;/STRONG&gt;Our videos step you visually through key guidance:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%3a%20How%20to%20Host%20WCF%20in%20a%20Windows%20Service&amp;amp;referringTitle=Video%20Index" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%3a%20How%20to%20Host%20WCF%20in%20a%20Windows%20Service&amp;amp;referringTitle=Video%20Index"&gt;Video: How To - Host WCF in a Windows Service&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%3a%20Impersonate%20the%20Original%20Caller%20in%20WCF%20calling%20from%20a%20Windows%20Form&amp;amp;referringTitle=Video%20Index" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%3a%20Impersonate%20the%20Original%20Caller%20in%20WCF%20calling%20from%20a%20Windows%20Form&amp;amp;referringTitle=Video%20Index"&gt;Video: How To - Impersonate the Original Caller in WCF calling from a Windows Form&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20to%3a%20Use%20basicHttpBinding%20with%20Certificate%20Authentication%20from%20Windows%20Forms&amp;amp;referringTitle=Video%20Index" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20to%3a%20Use%20basicHttpBinding%20with%20Certificate%20Authentication%20from%20Windows%20Forms&amp;amp;referringTitle=Video%20Index"&gt;Video: How To - Use basicHttpBinding with Client certificate in WCF from Windows Forms&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20to%3a%20Use%20netTcpBinding%20with%20Windows%20Authentication%20and%20MessageSecurity&amp;amp;referringTitle=Video%20Index" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20to%3a%20Use%20netTcpBinding%20with%20Windows%20Authentication%20and%20MessageSecurity&amp;amp;referringTitle=Video%20Index"&gt;Video: How To - Use netTcpBinding with Windows Authentication and Message Security&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20to%20Use%20SQL%20Role%20Provider%20with%20Username%20Authentication%20in%20WCF%20calling%20from%20Windows%20Forms&amp;amp;referringTitle=Video%20Index" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20to%20Use%20SQL%20Role%20Provider%20with%20Username%20Authentication%20in%20WCF%20calling%20from%20Windows%20Forms&amp;amp;referringTitle=Video%20Index"&gt;Video: How To - Use SQL Role Provider with Username Authentication in WCF calling from Windows Forms&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%3a%20Use%20WsHttpBinding%20with%20Certificate%20Authentication%20with%20Message%20Security%20%28object%20model%20programming%29%20&amp;amp;referringTitle=Video%20Index" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%3a%20Use%20WsHttpBinding%20with%20Certificate%20Authentication%20with%20Message%20Security%20%28object%20model%20programming%29%20&amp;amp;referringTitle=Video%20Index"&gt;Video: How To - Use WsHttpBinding with Certificate Authentication with Message Security&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%3a%20Use%20WsHttpBinding%20with%20Windows%20Authentication%20with%20Message%20Security&amp;amp;referringTitle=Video%20Index" target=_blank mce_href="http://www.codeplex.com/WCFSecurity/Wiki/View.aspx?title=How%20To%3a%20Use%20WsHttpBinding%20with%20Windows%20Authentication%20with%20Message%20Security&amp;amp;referringTitle=Video%20Index"&gt;Video: How To - Use WsHttpBinding with Windows Authentication with Message Security&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;About WCF&lt;/STRONG&gt; &lt;BR&gt;Windows Communication Foundation (WCF) is a service-oriented platform for building and consuming secure, reliable, and transacted services.&amp;nbsp; It unifies the programming models for ASMX, Enterprise services and .NET Remoting.&amp;nbsp; It supports multiple protocols including named pipes, TCP, HTTP, and MSMQ.&amp;nbsp; WCF promotes loose coupling, supports interoperability, and encapsulates the latest web service standards.&amp;nbsp; With WCF, you get flexibility in choosing protocol, message encoding formats, and hosting.&amp;nbsp;&amp;nbsp; For more information, see the &lt;A href="http://msdn2.microsoft.com/en-us/netframework/aa663324.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/netframework/aa663324.aspx"&gt;MSDN WCF Developer Center&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;About the Project&lt;/STRONG&gt; &lt;BR&gt;WCF provides a lot of options and flexibility.&amp;nbsp; The goal of our patterns &amp;amp; practices WCF Security Guidance Project is to find the key combinations of security practices for WCF&amp;nbsp;that work for customers and share them more broadly.&amp;nbsp; At a high-level, you can think of the project in terms of these main buckets:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Application Scenarios&lt;/STRONG&gt; - These are whiteboard solutions for common end-to-end application scenarios. &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;How Tos&lt;/STRONG&gt; - These are step-by-step instructions for performing key end-to-end tasks. &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Building Codes&lt;/STRONG&gt; - These are our sets of rules and practices.&amp;nbsp; This includes Guidelines, Checklists, and Practices at a Glance. &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Reference&lt;/STRONG&gt; - This includes Explained, Cheat Sheets, and Q&amp;amp;A guidance. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The plan is to incrementally share our guidance modules on CodePlex as we go, then build a guide, then port the guidance to MSDN once it's baked.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8339917" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jmeier/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/My+Projects/default.aspx">My Projects</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Guidance Share Sweep</title><link>http://blogs.msdn.com/jmeier/archive/2008/01/02/guidance-share-sweep.aspx</link><pubDate>Wed, 02 Jan 2008 18:48:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6956141</guid><dc:creator>J.D. Meier</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/jmeier/comments/6956141.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jmeier/commentrss.aspx?PostID=6956141</wfw:commentRss><description>&lt;p&gt;One of the most important things I did while I was on vacation was sweeping &lt;a href="http://www.GuidanceShare.com" target="_blank"&gt;Guidance Share&lt;/a&gt;.&amp;nbsp; Guidance Share is where I consolidate my body of software engineering guidance and test user experiences.&amp;nbsp; I redesigned the home page for simpler browsing and findability.&amp;nbsp; It was more pain than pleasure for me, but if it helps the broader community, that's my payback.  &lt;p&gt;Here's a highlight of Guidance Share:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Browsable nuggets for software performance and security  &lt;li&gt;Durable, evolvable frames for security and performance (think of these as maps)  &lt;li&gt;How Tos, Guidelines, Checklists and more &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Guidance Share gives me a unique vantage point that I haven't been able to get any other way.&amp;nbsp; The act of building it and evolving it helps me make gain new insights.&amp;nbsp; It also forces me to find ways to be extremely efficient.&amp;nbsp; I then try to carry these lessons over to MSDN and to help shape patterns &amp;amp; practices information models.&amp;nbsp; I don't own the MSDN experience, but I can give input.&amp;nbsp; Guidance Share helps me solidify my recommendations with living proof.&amp;nbsp; It's also let's me quickly experiment with new user experiences.  &lt;p&gt;My biggest lesson learned is how difficult it is to integrate information and make it useful, even when you own it.&amp;nbsp; It's one thing to have a snapshot of information that's useful for a given point in time; it's another to create a stable backdrop with a firm foundation that can evolve over time.&amp;nbsp; The key is factoring volatile from stable information, and enabling them to play well together.&lt;/p&gt; &lt;p&gt;Note that Guidance Share is under construction and there are some obviously empty areas, but it's a work in progress.&amp;nbsp; It's a living knowledge base for software engineering that I periodically sweep to share the best that I've learned.&lt;/p&gt; &lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6956141" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jmeier/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/Guidance+Engineering/default.aspx">Guidance Engineering</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/Software+Engineering/default.aspx">Software Engineering</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/My+Projects/default.aspx">My Projects</category></item><item><title>Now on Amazon: Performance Testing Guidance for Web Applications</title><link>http://blogs.msdn.com/jmeier/archive/2007/12/01/now-on-amazon-performance-testing-guidance-for-web-applications.aspx</link><pubDate>Sat, 01 Dec 2007 03:15:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6621336</guid><dc:creator>J.D. Meier</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/jmeier/comments/6621336.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jmeier/commentrss.aspx?PostID=6621336</wfw:commentRss><description>&lt;p&gt;Our &lt;a href="http://www.amazon.com/Performance-Testing-Guidance-Web-Applications/dp/0735625700/ref=sr_11_1?ie=UTF8&amp;amp;qid=1196463760&amp;amp;sr=11-1" target="_blank"&gt;patterns &amp;amp; practices Performance Testing Guidance for Web Applications book&lt;/a&gt; is now available on Amazon.  &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.amazon.com/Performance-Testing-Guidance-Web-Applications/dp/0735625700/ref=sr_11_1?ie=UTF8&amp;amp;qid=1196463760&amp;amp;sr=11-1" target="_blank"&gt;Buy the Book on Amazon&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.codeplex.com/PerfTestingGuide/Release/ProjectReleases.aspx?ReleaseId=6690" target="_blank"&gt;Download the PDF&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb924375.aspx" target="_blank"&gt;Browse the HTML&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6621336" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jmeier/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/My+Projects/default.aspx">My Projects</category></item><item><title>Now on Amazon: Team Development with Visual Studio Team Foundation Server</title><link>http://blogs.msdn.com/jmeier/archive/2007/12/01/now-on-amazon-team-development-with-visual-studio-team-foundation-server.aspx</link><pubDate>Sat, 01 Dec 2007 03:10:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6621321</guid><dc:creator>J.D. Meier</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/jmeier/comments/6621321.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jmeier/commentrss.aspx?PostID=6621321</wfw:commentRss><description>&lt;p&gt;Our &lt;a href="http://www.amazon.com/Development-Visual-Studio-Foundation-Server/dp/0735625719/ref=sr_11_1?ie=UTF8&amp;amp;qid=1196464421&amp;amp;sr=11-1 " target="_blank"&gt;patterns &amp;amp; practices Team Development with Visual Studio Team Foundation Server book&lt;/a&gt; is now available on Amazon.  &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.amazon.com/Development-Visual-Studio-Foundation-Server/dp/0735625719/ref=sr_11_1?ie=UTF8&amp;amp;qid=1196464421&amp;amp;sr=11-1" target="_blank"&gt;Buy the Book on Amazon&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.codeplex.com/TFSGuide/Release/ProjectReleases.aspx?ReleaseId=6280" target="_blank"&gt;Download the PDF&lt;/a&gt;  &lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb668991.aspx" target="_blank"&gt;Browse the HTML&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6621321" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jmeier/archive/tags/My+Projects/default.aspx">My Projects</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Now on MSDN: patterns &amp; practices Performance Testing Guidance for Web Applications </title><link>http://blogs.msdn.com/jmeier/archive/2007/10/27/now-on-msdn-patterns-practices-performance-testing-guidance-for-web-applications.aspx</link><pubDate>Sat, 27 Oct 2007 09:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5704789</guid><dc:creator>J.D. Meier</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/jmeier/comments/5704789.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jmeier/commentrss.aspx?PostID=5704789</wfw:commentRss><description>&lt;P&gt;You can now find our &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924375.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924375.aspx"&gt;patterns &amp;amp; practices Performance Testing Guidance for Web Applications on MSDN&lt;/A&gt; in HTML.&amp;nbsp; It's the same guidance we hosted on CodePlex.&amp;nbsp; CodePlex was our channel for agile release of the guidance.&amp;nbsp; Once we baked the guidance, we ported it to MSDN.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Contents at a Glance&lt;/STRONG&gt;&lt;BR&gt;Here's the &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924375.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924375.aspx"&gt;Landing Page&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924355.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924355.aspx"&gt;Foreword By Alberto Savoia&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924373.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924373.aspx"&gt;Foreword By Rico Mariani&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924376.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924376.aspx"&gt;Introduction&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Chapters&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924356.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924356.aspx"&gt;Chapter 1 – Fundamentals of Web Application Performance Testing&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924357.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924357.aspx"&gt;Chapter 2 – Types of Performance Testing&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924358.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924358.aspx"&gt;Chapter 3 – Risks Addressed Through Performance Testing&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924359.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924359.aspx"&gt;Chapter 4 – Web Application Performance Testing Core Activities&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924360.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924360.aspx"&gt;Chapter 5 – Coordinating Performance Testing with an Iteration-Based Process&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924361.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924361.aspx"&gt;Chapter 6 – Managing an Agile Performance Test Cycle&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924362.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924362.aspx"&gt;Chapter 7 – Managing the Performance Test Cycle in a Regulated (CMMI) Environment&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924363.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924363.aspx"&gt;Chapter 8 – Evaluating Systems to Increase Performance-Testing Effectiveness&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924364.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924364.aspx"&gt;Chapter 9 – Determining Performance Testing Objectives&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924368.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924368.aspx"&gt;Chapter 10 – Quantifying End-User Response Time Goals&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924366.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924366.aspx"&gt;Chapter 11 – Consolidating Various Types of Performance Acceptance Criteria&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924367.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924367.aspx"&gt;Chapter 12 – Modeling Application Usage&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924368.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924368.aspx"&gt;Chapter 13 – Determining Individual User Data and Variances&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924369.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924369.aspx"&gt;Chapter 14 – Test Execution&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924370.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924370.aspx"&gt;Chapter 15 – Key Mathematic Principles for Performance Testers&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924371.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924371.aspx"&gt;Chapter 16 – Performance Test Reporting Fundamentals&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924372.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924372.aspx"&gt;Chapter 17 – Load-Testing Web Applications&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb924374.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb924374.aspx"&gt;Chapter 18 – Stress-Testing Web Applications&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Download&lt;BR&gt;&lt;/STRONG&gt;You can &lt;A class="" href="http://www.codeplex.com/PerfTestingGuide" target=_blank mce_href="http://www.codeplex.com/PerfTestingGuide"&gt;download the patterns &amp;amp; practices Performance Testing Guidance for Web Applications&lt;/A&gt; from CodePlex.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Guidance Explorer Scenario&lt;/STRONG&gt;&lt;BR&gt;If you want to tailor the guidance for your scenario, you can &lt;A class="" href="http://www.codeplex.com/GuidanceExplorer" target=_blank mce_href="http://www.codeplex.com/GuidanceExplorer"&gt;download Guidance Explorer&lt;/A&gt; from CodePlex.&amp;nbsp; Using Guidance Explorer, you can create custom views by dragging and dropping the relevant guidance and then tailoring it as you see fit.&amp;nbsp; You can then save your view or an item to Word or HTML&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5704789" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jmeier/archive/tags/patterns+and+practices/default.aspx">patterns and practices</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/My+Projects/default.aspx">My Projects</category></item><item><title>Now on MSDN: patterns &amp; practices Team Development with Visual Studio Team Foundation Server Guide</title><link>http://blogs.msdn.com/jmeier/archive/2007/10/26/patterns-practices-visual-studio-team-system-guidance-now-on-msdn.aspx</link><pubDate>Sat, 27 Oct 2007 01:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5696520</guid><dc:creator>J.D. Meier</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/jmeier/comments/5696520.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jmeier/commentrss.aspx?PostID=5696520</wfw:commentRss><description>&lt;P&gt;You can now find our &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668991.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668991.aspx "&gt;patterns &amp;amp; practices&amp;nbsp;Team Development with Visual Studio Team Foundation Server guide&amp;nbsp;on MSDN&lt;/A&gt; in HTML.&amp;nbsp; It's the same guidance we hosted on CodePlex.&amp;nbsp; CodePlex was our channel for agile release.&amp;nbsp; Once we baked the guidance, we ported to MSDN.&amp;nbsp; For some customers, MSDN is a trusted source, so being on MSDN is important.&amp;nbsp; Additionally, MSDN provides some additional hooks and channels.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Contents At a Glance&lt;/STRONG&gt;&lt;BR&gt;Here's the guide at a glance&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668991.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668991.aspx"&gt;Landing Page&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668989.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668989.aspx"&gt;Foreword By Jeff Beehler&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668949.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668949.aspx"&gt;Foreword by Brian Harry&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668990.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668990.aspx"&gt;Foreword by Rob Caron&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668987.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668987.aspx"&gt;Introduction&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Chapters&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668951.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668951.aspx"&gt;Ch 01 – Introducing the Team Environment&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668952.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668952.aspx"&gt;Ch 02 – Team Foundation Server Architecture&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668953.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668953.aspx"&gt;Ch 03 – Structuring Projects and Solutions in Source Control&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668954.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668954.aspx"&gt;Ch 04 – Structuring Projects and Solutions in Team Foundation Source Control&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668955.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668955.aspx"&gt;Ch 05 – Defining Your Branching and Merging Strategy&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668956.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668956.aspx"&gt;Ch 06 – Managing Source Control Dependencies in Visual Studio Team System&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668958.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668958.aspx"&gt;Ch 07 – Team Build Explained&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668957.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668957.aspx"&gt;Ch 08 – Setting Up Continuous Integration with Team Build&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668959.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668959.aspx"&gt;Ch 09 – Setting Up Scheduled Builds with Team Build&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668960.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668960.aspx"&gt;Ch 10 – Large Project Considerations&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668961.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668961.aspx"&gt;Ch 11 – Project Management Explained&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668962.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668962.aspx"&gt;Ch 12 – Work Items Explained&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668963.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668963.aspx"&gt;Ch 13 – Process Templates Explained&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668964.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668964.aspx"&gt;Ch 14 – MSF for Agile Software Development Projects&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668965.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668965.aspx"&gt;Ch 15 – Reporting Explained&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668966.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668966.aspx"&gt;Ch 16 – Team Foundation Server Deployment&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668967.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668967.aspx"&gt;Ch 17 – Providing Internet Access to Team Foundation Server&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668970.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668970.aspx"&gt;Ch 18 – What’s New in Visual Studio Team System 2008 Team Foundation Server&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Guidelines&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668941.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668941.aspx"&gt;Guidelines: Team Build&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668944.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668944.aspx"&gt;Guidelines: Source Control&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668943.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668943.aspx"&gt;Guidelines: Reporting&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668942.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668942.aspx"&gt;Guidelines: Project Management&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Practices at a Glance&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668945.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668945.aspx"&gt;Practices at a Glance: Team Build&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668948.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668948.aspx"&gt;Practices at a Glance: Source Control&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668947.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668947.aspx"&gt;Practices at a Glance: Reporting&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668946.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668946.aspx"&gt;Practices at a Glance: Project Management&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Questions and Answers&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668950.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668950.aspx"&gt;Questions and Answers:&amp;nbsp; Source Control&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;How Tos&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668968.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668968.aspx"&gt;How To: Add a New Developer To Your Project in Visual Studio Team Foundation Server&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668977.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668977.aspx"&gt;How To: Automatically Run Code Analysis with Team Build in Visual Studio Team Foundation Server&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668978.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668978.aspx"&gt;How To: Create a Custom Report for Visual Studio Team Foundation Server&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668979.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668979.aspx"&gt;How To: Create a Risk Over Time Report for Visual Studio Team Foundation Server&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668980.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668980.aspx"&gt;How To: Create Custom Check-in Policies in Visual Studio Team Foundation Server&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668981.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668981.aspx"&gt;How To: Create Your Source Tree in Visual Studio Team Foundation Server&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668982.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668982.aspx"&gt;How To: Customize a Process Template in Visual Studio Team Foundation Server&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668983.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668983.aspx"&gt;How To: Customize a Report in Visual Studio Team Foundation Server&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668988.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668988.aspx"&gt;How To: Manage Projects in Visual Studio Team Foundation Server&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668969.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668969.aspx"&gt;How To: Migrate Source code to Team Foundation Server from Visual Source Safe&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668976.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668976.aspx"&gt;How To: Perform a Baseless Merge in Visual Studio Team Foundation Server&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668971.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668971.aspx"&gt;How To: Set Up a Continuous Integration Build in Visual Studio Team Foundation Server&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668975.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668975.aspx"&gt;How To: Set Up a Scheduled Build in Visual Studio Team Foundation Server&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668986.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668986.aspx"&gt;How To: Structure ASP.NET Applications in Visual Studio Team Foundation Server&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668994.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668994.aspx"&gt;How To: Structure Windows Applications in Visual Studio Team Foundation Server&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb668992.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb668992.aspx"&gt;How To: Structure Your Source Control Folders in Visual Studio Team Foundation Server&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;Download&lt;BR&gt;&lt;/STRONG&gt;You can &lt;A class="" href="http://www.codeplex.com/TFSGuide/release/projectreleases.aspx?releaseid=6280" target=_blank mce_href="http://www.codeplex.com/TFSGuide/release/projectreleases.aspx?releaseid=6280"&gt;download the Team Development with Visual Studio Team Foundation Server Guide&lt;/A&gt; from CodePlex.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;Guidance Explorer Scenario&lt;/STRONG&gt;&lt;BR&gt;If you want to tailor the guidance for your scenario, you can &lt;A class="" href="http://www.codeplex.com/guidanceExplorer" target=_blank mce_href="http://www.codeplex.com/guidanceExplorer"&gt;download Guidance Explorer&lt;/A&gt; from CodePlex.&amp;nbsp; Using Guidance Explorer, you can&amp;nbsp;create custom views by dragging and dropping the relevant guidance and then tailoring it as you see fit.&amp;nbsp; You can then&amp;nbsp;save&amp;nbsp;your view&amp;nbsp;or an item to Word or HTML.&amp;nbsp; &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5696520" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jmeier/archive/tags/patterns+and+practices/default.aspx">patterns and practices</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/My+Projects/default.aspx">My Projects</category><category domain="http://blogs.msdn.com/jmeier/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item></channel></rss>