<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
    <title>Satter Ramblings</title>
    
    <link rel="hub" href="http://hubbub.api.typepad.com/" />
    <link rel="alternate" type="text/html" href="http://www.satter.org/" />
    <id>tag:typepad.com,2003:weblog-279358</id>
    <updated>2009-11-04T12:01:15-08:00</updated>
    <subtitle>This is my personnal weblog. It is devoted to programming. It also includes an archive of HAGeeks.com, the home automation blog for geeks.</subtitle>
    <generator uri="http://www.typepad.com/">TypePad</generator>
    <link rel="license" type="text/html" href="http://creativecommons.org/licenses/by/3.0/" /><logo>http://creativecommons.org/images/public/somerights20.gif</logo><link rel="self" href="http://feeds.feedburner.com/SatterRamblings" type="application/atom+xml" /><feedburner:emailServiceId>SatterRamblings</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
        <title>Microsoft .NET Framework 4  Favorite Feature #1</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SatterRamblings/~3/a53e_uJMSPk/microsoft-net-framework-4-favorite-feature-1.html" />
        <link rel="replies" type="text/html" href="http://www.satter.org/2009/11/microsoft-net-framework-4-favorite-feature-1.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d8341c55c153ef0120a6412b5c970b</id>
        <published>2009-11-04T12:01:15-08:00</published>
        <updated>2009-11-04T12:01:15-08:00</updated>
        <summary>.NET Framework 4 has a lot of new features and it can be daunting to decide what to look at first. Fortunately or unfortunately (it has been a long trek from start to Beta 2) I have been working with Visual Studio 2010 and .NET 4 for the last 16...</summary>
        <author>
            <name>Rabi Satter</name>
        </author>
        
        <category scheme="http://sixapart.com/ns/types#tag" term=".NET Framework 4" />
        <category scheme="http://sixapart.com/ns/types#tag" term=".NET Framework 4 Beta 2. .NET 4" />
        <category scheme="http://sixapart.com/ns/types#tag" term="Managed Extensible Framework" />
        <category scheme="http://sixapart.com/ns/types#tag" term="MEF" />
        <category scheme="http://sixapart.com/ns/types#tag" term="Pocket MEF" />
        
<content type="html" xml:lang="en-US" xml:base="http://www.satter.org/">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;script src="Scripts/shCore.js"&gt;&#xD;
&lt;/script&gt;&#xD;
&lt;script src="Scripts/shBrushCSharp.js"&gt;&#xD;
&lt;/script&gt;&#xD;
&lt;script&gt;&#xD;
window.onload = function() {&#xD;
 dp.SyntaxHighlighter.ClipboardSwf = &amp;amp;#39;Scripts/clipboard.swf&amp;amp;#39;;&#xD;
 dp.SyntaxHighlighter.HighlightAll(&amp;amp;#39;code&amp;amp;#39;);&#xD;
};&#xD;
&lt;/script&gt;&#xD;
&lt;p&gt;.NET Framework 4 has a lot of new features and it can be daunting to decide what to look at first. Fortunately or unfortunately (it has been a long trek from start to Beta 2) I have been working with Visual Studio 2010 and .NET 4 for the last 16 months. I will share with you my favorite features starting with Managed Extensibility Framework (MEF). &lt;/p&gt;&#xD;
MEF is a simple but powerful set of classes to allow for application composition and extension. Huh? Let me show you and then decide for yourself if my description is valid. &#xD;
&lt;p&gt;Fire up Visual Studio and join me as I walk through a simple example of MEF. If you have not downloaded VS2010 yet you can get it from the &lt;a href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx" target="_blank"&gt;Visual Studio 2010 and .NET Framework 4 Beta 2&lt;/a&gt; page.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;em&gt;Visual Studio 2010 Start Page&lt;/em&gt; &lt;br&gt;&lt;a href="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef0120a6a01050970c-pi" style="DISPLAY: inline"&gt;&lt;img alt="MEF1" border="0" class="asset asset-image at-xid-6a00d8341c55c153ef0120a6a01050970c image-full " src="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef0120a6a01050970c-800wi" title="MEF1"&gt;&lt;/img&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;From the Start Page click New Project and launch the New Project Window. The Window will be similar to below depending on your language. Make sure you have .NET Framework 4 selected. Then Select Windows Form Application, name the project HelloMEF, select the location and click OK.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;em&gt;New Project Window  &lt;br&gt;&lt;a href="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef0120a64a8b04970b-pi" style="DISPLAY: inline"&gt;&lt;img alt="MEF2" border="0" class="asset asset-image at-xid-6a00d8341c55c153ef0120a64a8b04970b image-full " src="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef0120a64a8b04970b-800wi" title="MEF2"&gt;&lt;/img&gt;&lt;/a&gt; &lt;br&gt;&lt;a href="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef0120a6416c75970b-pi"&gt;&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xD;
&lt;p&gt;The next step is to modify the basic Form class that is created by the template.&lt;/p&gt;&#xD;
&lt;ol&gt;&#xD;
&lt;li&gt;Open the Solution Explorer and rename Forrm1.cs to FormMEF.cs &lt;/li&gt;&#xD;
&lt;li&gt;Click yes to rename the Form1 class to FormMEF &lt;/li&gt;&#xD;
&lt;li&gt;Open the Form design if it is not for FormMEF &lt;/li&gt;&#xD;
&lt;li&gt;Click on the Form and change the text from Form1 to Hello MEF &lt;/li&gt;&#xD;
&lt;li&gt;Drop a MenuStrip on the Form &lt;/li&gt;&#xD;
&lt;li&gt;Change the name to menuStrip &lt;/li&gt;&#xD;
&lt;li&gt;Add the following menu items &lt;/li&gt;&#xD;
&lt;li&gt;&#xD;
&lt;ol&gt;&#xD;
&lt;li&gt;&amp;amp;Addin  &lt;/li&gt;&#xD;
&lt;li&gt;E&amp;amp;xit &lt;br&gt;&lt;a href="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef0120a6a06ff9970c-pi" style="DISPLAY: inline"&gt;&lt;/a&gt;&lt;a href="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef0120a64ae92c970b-pi" style="DISPLAY: inline"&gt;&lt;img alt="MEF3" border="0" class="asset asset-image at-xid-6a00d8341c55c153ef0120a64ae92c970b " src="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef0120a64ae92c970b-800wi" title="MEF3"&gt;&lt;/img&gt;&lt;/a&gt; &lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;/li&gt;&#xD;
&lt;li&gt;Double click on E&amp;amp;xit and put this.Close(); in the method handler. &lt;/li&gt;&#xD;
&lt;li&gt;Now copy the method handler and name it templateToolStripMenuItem_Click &lt;/li&gt;&#xD;
&lt;li&gt;Then type the follow code &lt;br&gt;&#xD;
&lt;div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:d9dc57e3-ddb9-41b0-b838-063900f61d5e" style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px"&gt;&lt;pre class="brush: c#"&gt;private void templateToolStripMenuItem_Click(object sender, EventArgs e)&#xD;
{&#xD;
  ToolStripMenuItem tempMenuItem = sender as ToolStripMenuItem;&#xD;
  ((IAddin)tempMenuItem.Tag).Show();&#xD;
}&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xD;
&lt;li&gt;Right Click on the IAddin type and select Generate|New Type... &lt;br&gt;&lt;a href="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef0120a6a06f09970c-pi" style="DISPLAY: inline"&gt;&lt;img alt="MEF5" border="0" class="asset asset-image at-xid-6a00d8341c55c153ef0120a6a06f09970c " src="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef0120a6a06f09970c-800wi" title="MEF5"&gt;&lt;/img&gt;&lt;/a&gt; &lt;br&gt;Here is a cool new feature. I use to have to stop and go manually insert the new type. It would stop the flow of my coding. Now I just go write code. Then go back and generate the missing stub code! &lt;/li&gt;&#xD;
&lt;li&gt;Once you have the IAddin interface created the Show will get a squiggle line. Right click and have it add the method to the interface. &lt;/li&gt;&#xD;
&lt;li&gt;Add a reference to System.ComponentModel.Composition. This is the key MEF assembly to use. MEF works on the notion of an object container with support for a catalog. When you want a type from MEF you make a request of the container for the type or name requested. In the next step, we will create the catalog and container. &lt;/li&gt;&#xD;
&lt;li&gt;Add a using statement for System.ComponentModel.Composition. &lt;/li&gt;&#xD;
&lt;li&gt;MEF works by telling a catalog what is available (Export types) and types using the contents of the catalog (Import). In this case we want to dynamically add “Addins”. A property will be created that MEF can load up with IAddins. &lt;br&gt;&#xD;
&lt;div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:6e1999eb-b844-40fb-9aed-ed3c9f9a30de" style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px"&gt;&lt;pre class="brush: c#"&gt;[ImportMany]&#xD;
public IAddin[] Addins { get; set; }&#xD;
&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;This tells MEF that it should find IAddins and return all of the objects that satisfy this condition in an array of IAddin. &lt;/li&gt;&#xD;
&lt;li&gt;Jump back to the Form and double click on the Form to generate the Form Load event. In this event will be the wiring of IAddins into the menu. &lt;br&gt;&#xD;
&lt;div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:4475fee7-b95a-4114-808b-ec8da872c28e" style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px"&gt;&lt;pre class="brush: c#"&gt;private void FormMEF_Load(object sender, EventArgs e)&#xD;
{&#xD;
  ToolStripMenuItem menuItem;&#xD;
&#xD;
  foreach (IAddin addin in Addins)&#xD;
  {&#xD;
    menuItem = new ToolStripMenuItem(addin.Name);&#xD;
    menuItem.Tag = addin;&#xD;
    menuItem.Click += new EventHandler(templateToolStripMenuItem_Click);&#xD;
    addinToolStripMenuItem.DropDownItems.Add(menuItem);&#xD;
  }&#xD;
}&#xD;
&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xD;
&lt;li&gt;Use Generate Property to add Name to IAddin. You will need to change the type to string as it will potentially use Image since the construct can take an Image or a String. &lt;/li&gt;&#xD;
&lt;li&gt;Click on the Program.cs file. &lt;/li&gt;&#xD;
&lt;li&gt;First add the following using statements (note this will not work if you do not have both using statements) &lt;/li&gt;&#xD;
&lt;li&gt;&#xD;
&lt;ol&gt;&#xD;
&lt;li&gt;System.ComponentModel.Composition &lt;/li&gt;&#xD;
&lt;li&gt;System.ComponentModel.Composition.Hosting &lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;/li&gt;&#xD;
&lt;li&gt;As I said earlier MEF requires a catalog and a container. To create a catalog to find types and contracts &lt;br&gt;&#xD;
&lt;div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:3d241152-b026-4f42-ad57-5c0271bf27e5" style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px"&gt;&lt;pre class="brush: c#"&gt;AggregateCatalog catalog = new AggregateCatalog();&#xD;
catalog.Catalogs.Add(new AssemblyCatalog(Assembly.GetExecutingAssembly()));&#xD;
catalog.Catalogs.Add(new DirectoryCatalog(Application.StartupPath));&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;In this case I am creating a catalog that contains exported types from my executing assembly and any assembly that is in the application startup path. &lt;/li&gt;&#xD;
&lt;li&gt;The next step is to create the container &lt;br&gt;&#xD;
&lt;div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:90181d30-4853-46b9-8206-3ec188632b59" style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px"&gt;&lt;pre class="brush: c#"&gt;var container = new CompositionContainer(catalog);&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xD;
&lt;li&gt;This next part is create the form and have the container fulfill its imports &lt;br&gt;&#xD;
&lt;div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:0af176e5-7b28-4d03-8ebf-4cfd2ad61f60" style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px"&gt;&lt;pre class="brush: c#"&gt;Form frm = new FormMEF();&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xD;
&lt;li&gt;Finally change the Run parameter and run the program. You should at this point get a form with no Addin menu items. &lt;br&gt;&#xD;
&lt;div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:190bd393-f2ef-41a1-8e9b-ddb4c3a7f472" style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px"&gt;&lt;pre class="brush: c#"&gt;Application.Run(frm);&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xD;
&lt;li&gt;Now to create an Addin. &#xD;
&lt;div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:5785478b-1da1-4e99-bf00-23520061aeee" style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px"&gt;&lt;pre class="brush: c#"&gt;using System;&#xD;
using System.Collections.Generic;&#xD;
using System.Linq;&#xD;
using System.Text;&#xD;
using System.Windows.Forms;&#xD;
using System.ComponentModel.Composition;&#xD;
&#xD;
namespace HelloMEF&#xD;
{&#xD;
  [Export(typeof(IAddin))]&#xD;
  public class FirstAddin : IAddin&#xD;
  {&#xD;
    public void Show()&#xD;
    {&#xD;
      MessageBox.Show("Hello from 1st Addin");&#xD;
    }&#xD;
&#xD;
    public string Name&#xD;
    {&#xD;
      get&#xD;
      {&#xD;
        return "First Addin";&#xD;
      }&#xD;
&#xD;
    }&#xD;
  }&#xD;
}&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xD;
&lt;li&gt;Run the application again. &lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;br&gt;&#xD;
&lt;p&gt;Create another assembly with an IAddin and have it compile into the same directory as HelloMEF. When you run the application you now get to Addin menu items. &lt;/p&gt;&#xD;
&lt;p&gt;If you want to be even more scary here is the instructions to have MEF find the Form and dynamically use a different Form at run time.&lt;/p&gt;&#xD;
&lt;ol&gt;&#xD;
&lt;li&gt;Export the form using &lt;br&gt;&#xD;
&lt;div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:4a077458-030e-4a80-a9e2-96ea3ae88750" style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px"&gt;&lt;pre class="brush: c#"&gt;[Export("FormMEF", typeof(Form))]&#xD;
&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xD;
&lt;li&gt;Modify the Program Main method &lt;/li&gt;&#xD;
&lt;div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:9c4d9eca-ee08-4c60-8d63-2f388f28c479" style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px"&gt;&lt;pre class="brush: c#"&gt;[STAThread]&#xD;
static void Main(string[] parameters)&#xD;
{&#xD;
  string loadForm = "FormMEF";&#xD;
&#xD;
  if (parameters.Count() &amp;gt; 0)&#xD;
  {&#xD;
    loadForm = parameters[0];&#xD;
  }&#xD;
&#xD;
  Application.EnableVisualStyles();&#xD;
  Application.SetCompatibleTextRenderingDefault(false);&#xD;
&#xD;
  // Setup MEF&#xD;
  AggregateCatalog catalog = new AggregateCatalog();&#xD;
  catalog.Catalogs.Add(new AssemblyCatalog(Assembly.GetExecutingAssembly()));&#xD;
  catalog.Catalogs.Add(new DirectoryCatalog(Application.StartupPath));&#xD;
  var container = new CompositionContainer(catalog);&#xD;
&#xD;
  // Get FormMEF and satisfy its imports&#xD;
  var frm = container.GetExportedValue&amp;lt;Form&amp;gt;(loadForm);&#xD;
  container.SatisfyImportsOnce(frm);&#xD;
&#xD;
  // Use form supplied by MEF&#xD;
  Application.Run(frm);&#xD;
}&lt;/pre&gt;&lt;/div&gt;&#xD;
&lt;li&gt;Move your addin class and Forrm into its own class library. &lt;/li&gt;&#xD;
&lt;li&gt;You can create another form with a different contract name. Then pass it into the program. Voila.&lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;br&gt;&#xD;
&lt;p&gt;By the way there is a Compact Framework version. You can find it on &lt;a href="http://pocketmef.codeplex.com/" target="_blank"&gt;CodePlex&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OValT3FhlY_sAtlwnTfAmeaMCc4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OValT3FhlY_sAtlwnTfAmeaMCc4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OValT3FhlY_sAtlwnTfAmeaMCc4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OValT3FhlY_sAtlwnTfAmeaMCc4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=a53e_uJMSPk:XwZCyUNbIqI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=a53e_uJMSPk:XwZCyUNbIqI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=a53e_uJMSPk:XwZCyUNbIqI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?i=a53e_uJMSPk:XwZCyUNbIqI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=a53e_uJMSPk:XwZCyUNbIqI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?i=a53e_uJMSPk:XwZCyUNbIqI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    <feedburner:origLink>http://www.satter.org/2009/11/microsoft-net-framework-4-favorite-feature-1.html</feedburner:origLink></entry>
    <entry>
        <title>Deploying .NET Framework 4 Beta 2</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SatterRamblings/~3/8G9g80hgvtY/deploying-net-framework-4.html" />
        <link rel="replies" type="text/html" href="http://www.satter.org/2009/10/deploying-net-framework-4.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d8341c55c153ef0120a612e452970b</id>
        <published>2009-10-27T09:28:55-07:00</published>
        <updated>2009-10-27T09:31:42-07:00</updated>
        <summary>Now that Beta 2 is out I can talk more freely about what is happening with the .NET Framework. The most visible changes are the installation size, speed, and error rate of the Framework. There are also a lot of great new features Installation Architecture specific installers that are smaller...</summary>
        <author>
            <name>Rabi Satter</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term=".NET Framework" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Deployment" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Development" />
        
        <category scheme="http://sixapart.com/ns/types#tag" term=".NET 4" />
        <category scheme="http://sixapart.com/ns/types#tag" term=".NET Framework 4 Beta 2" />
        <category scheme="http://sixapart.com/ns/types#tag" term=".NET Framework 4 Client Profile" />
        <category scheme="http://sixapart.com/ns/types#tag" term="Client Profile" />
        
<content type="html" xml:lang="en-US" xml:base="http://www.satter.org/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font face="Calibri" size="3"&gt;Now that Beta 2 is out I can talk more freely about what is happening with the .NET Framework. The most visible changes are the installation size, speed, and&amp;#0160;error rate&amp;#0160;of the Framework. There are also a lot of great &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms171868(VS.100).aspx" target="_blank" title="What&amp;#39;s new in .NET Framework 4"&gt;&lt;span style="COLOR: blue"&gt;&lt;font face="Calibri" size="3"&gt;new features&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;

&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Installation&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type="circle"&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Architecture specific installers that&amp;#0160;are smaller sizes ranging from 76-86% decrease in installation size from 3.5 SP1.&amp;#0160;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;enabled more features on the Client Profile&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Inside-C-40-dynamic-type-optional-parameters-more-COM-friendly/" target="_blank"&gt;Language Features&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type="circle"&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;dynamic (c#), &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;optional/default parameters (c#), &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;named parameters (c#), &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Inside-C-40-dynamic-type-optional-parameters-more-COM-friendly/" target="_blank"&gt;no more line continuation character (VB)&lt;/a&gt;, &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Runtime Features&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type="circle"&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;a href="http://msdn.microsoft.com/en-us/vstudio/dd441784.aspx#Parallel" target="_blank"&gt;multi-core support&lt;/a&gt;, &amp;#0160;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Maoni-Stephens-and-Andrew-Pardoe-CLR-4-Inside-Background-GC/" target="_blank"&gt;background garabage collection for desktops although not servers&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;side by side runtime&amp;#0160;allows&amp;#0160;.NET 2.0/3.0/3.5 applications to run along side .NET 4 and even within the same process&amp;#0160;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;a href="http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx" target="_blank"&gt;Limited supportr for code contracts&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;a href="http://blogs.msdn.com/bclteam/archive/2009/10/21/what-s-new-in-the-bcl-in-net-4-beta-2-justin-van-patten.aspx" target="_blank"&gt;Base Class types&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type="circle"&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;BigInteger to support integers larger than 64 bit&amp;#0160;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Complex to support complex numbers&amp;#0160;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Class Libraries&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type="circle"&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd460648(VS.100).aspx" target="_blank"&gt;Managed Extensibility Framework&lt;/a&gt; &lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;a href="http://msdn.microsoft.com/en-us/netframework/cc896557.aspx"&gt;Workflow Framework v2&lt;/a&gt; (new rewritten based on common XAML stack with WPF)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;a href="http://blogs.msdn.com/adonet/archive/2009/05/11/update-on-the-entity-framework-in-net-4-and-visual-studio-2010.aspx" target="_blank"&gt;Entity Framework v2&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Lots more&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;In this article, I am going to discuss some of the overall aspects, architecture, and&amp;#0160;installation&amp;#0160;of the .NET Framework.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;.NET Profiles&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#0160;&lt;/span&gt;In .NET 3.5 SP1, the .NET team began looking at how to break up the Framework. This was due in part to the installation size and the fact that Client application needs differ from server needs. A concept called a profile was created. A profile is a subset of .NET and used for specific&amp;#0160;application types.&amp;#0160;The result was the addition of two profiles&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo2; tab-stops: list .5in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Client&amp;#0160;Profile – this&amp;#0160;Profile is a subset of .NET Framework tailored&amp;#0160;for client applications. It&amp;#0160;should be&amp;#0160;used for .NET applications requiring WinForm, WPF, Console&amp;#0160;and basic non-server functionality.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo2; tab-stops: list .5in"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Server Core&amp;#0160;Profile – this&amp;#0160;Profile is a subset of the .NET framework for server applications. It can run server oriented applications like ASP.NET and WCF. In addition, Powershell is integration is supported. It is used to give a production server&amp;#0160;the minimal feature set to run ASP.NET, WCF and Powershell applications. It is intended to reduce the size of the framework and give a smaller attack surface&amp;#0160;which reduces servicing requirements. It is only available on Windows 7&amp;#0160;Server Core installations.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;The Full Framework is required for development. If the profile you targeted does not have everything you need, you would also use the Full Framework.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Visual Studio installs the Full Framework. That also means your debugging and unit tests if run on the same machine&amp;#0160;are actually testing against the&amp;#0160;Full Framework. Make sure you test on your target profile.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;In .NET Framework 4, the team further refined our approach. First, there is not yet a Server Core Profile. The team is looking at what will go into the next version of Windows as always. With the Client Profile, the team made substantial differences to make the Client Profile more than just a stub of .NET that still needed to be upgraded to the Full Framework. The new Client Profile can be installed, upgraded and serviced independently of the Full Framework. You can go from Client Profile 4 to Client Profile 4.x or even upgrade to the Full .NET stack. &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;To address complaints about the size of the installer the Framework now ships with architecture specific installers. In addition, better compression and how the Framework is installed has led to smaller installation sizes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;em style="mso-bidi-font-style: normal"&gt;&lt;span style="mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Installation Sizes&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; WIDTH: 471.1pt; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" width="628"&gt;
&lt;tbody&gt;
&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 138.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt" valign="top" width="185"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Installation Option&lt;/span&gt;&lt;/strong&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 62.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="84"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Initial Size&lt;/span&gt;&lt;/strong&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 89.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="120"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Addl. Download&lt;/span&gt;&lt;/strong&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 180.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="240"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Notes&lt;/span&gt;&lt;/strong&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 1"&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 138.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="185"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;.NET 3.5 SP1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 62.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="84"&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 89.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="120"&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 180.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="240"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Installs on all OSs and architectures&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 2"&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 138.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="185"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Redist Package&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 62.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="84"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;231.5 MB&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 89.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="120"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;N/A&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 180.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="240"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 3"&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 138.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="185"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Web Installer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 62.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="84"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;2.8 MB&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 89.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="120"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;10 MB – 60 MB&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 180.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="240"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Depends on what is already installed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 4"&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 138.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="185"&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 62.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="84"&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 89.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="120"&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 180.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="240"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 5"&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 138.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="185"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;.NET 4 Beta 2 (Full)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 62.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="84"&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 89.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="120"&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 180.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="240"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;All OSs but architecture dependent&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 6"&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 138.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="185"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;x86 Redist Package&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 62.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="84"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;37.7 MB&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 89.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="120"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;N/A&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 180.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="240"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Only x86&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 7"&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 138.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="185"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;x64 Redist Package&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 62.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="84"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;54.5 MB&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 89.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="120"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;N/A&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 180.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="240"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Installs on x86 and x64 (recommend)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 8"&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 138.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="185"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Ia64 Redist Package&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 62.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="84"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;56.4 MB&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 89.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="120"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;N/A&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 180.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="240"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Only ia64&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 9"&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 138.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="185"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Web Installer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 62.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="84"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;850 KB&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 89.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="120"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;25 MB – 56 MB&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 180.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="240"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;All architectures and download varies by architecture and what is already installed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 10"&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 138.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="185"&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 62.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="84"&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 89.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="120"&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 180.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="240"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 11"&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 138.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="185"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;.NET 4 Beta 2 Client Profile&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 62.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="84"&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 89.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="120"&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 180.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="240"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;All OSs but architecture dependent&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 12"&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 138.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="185"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;x86 Redist Package&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 62.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="84"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;30.9 MB&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 89.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="120"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;N/A&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 180.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="240"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Only x86&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 13"&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 138.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="185"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;x64 Redist Package&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 62.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="84"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;47.1 MB&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 89.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="120"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;N/A&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 180.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="240"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Installs on x86 and x64 (recommend)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 14; mso-yfti-lastrow: yes"&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 138.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="185"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Web Installer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 62.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="84"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;850 KB&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 89.8pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="120"&gt;
&lt;p align="center" class="MsoNormal" style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;25 MB – 54 MB&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 180.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #000000; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="240"&gt;
&lt;p class="MsoNormal" style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: &amp;#39;Times New Roman&amp;#39;, &amp;#39;serif&amp;#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;All architectures and download varies by architecture and what is already installed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;What makes up the install?&lt;/strong&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;The .NET Frameworks are made up of several parts. At the bottom are components that are shared by all the Frameworks for example MSCoree.dll. Most of these are binaries that act as&amp;#0160;shims that direct to the right CLR/Framework based on the calling application. These shims call version specific implementations like the CLR. And finally the .NET Framework library runs on top like the .NET Framework 2.0, 3.0, 3.5, or 4.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;em style="mso-bidi-font-style: normal"&gt;Basic Architecture of .NET&lt;/em&gt;&lt;br /&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;v:shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1026" style="WIDTH: 468pt; HEIGHT: 255pt; VISIBILITY: visible; mso-wrap-style: square" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:\Users\rabis\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;o:p&gt;&lt;a href="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef0120a6244b27970b-pi" style="DISPLAY: inline"&gt;&lt;img alt="Netfx41" border="0" class="asset asset-image at-xid-6a00d8341c55c153ef0120a6244b27970b image-full " src="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef0120a6244b27970b-800wi" title="Netfx41" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;As you can see from the above diagram the 2.0, 3.0 and 3.5 versions of the Framework are built and depend upon the older versions. The Framework 4 is a single unified Framework built upon a new version of the CLR and lives side by side with the CLR v2 based Frameworks. &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;The installation is composed of Shared Components, CLR and the Framework. With the Framework being broken into Client, Server Core and Full the deployment team looked at best how to ensure a unified experience. Server Core will be a future OS only feature so I will ignore it. This left Client Profile and the Full Framework.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Since the Client Profile is a subset of the Full Framework you could say the Full Framework is composed of the Client Profile and the remaining portion of the Framework. This is exactly what the team did. There are the Shared Components which are an OS update. Then there is a Client MSI and the remainder called Extended MSI. After installing the Full Framework on a computer opening up Programs and Features will have two new entries. In addition, once the localization of the Framework you could have a language pack per language.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;v:shape id="_x0020_0" o:spid="_x0000_i1025" style="WIDTH: 456pt; HEIGHT: 259.5pt; VISIBILITY: visible; mso-wrap-style: square" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:\Users\rabis\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;o:p&gt;&lt;em&gt;Programs and Features&lt;br /&gt;&lt;/em&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;o:p&gt;&lt;a href="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef0120a6244bdd970b-pi" style="DISPLAY: inline"&gt;&lt;img alt="Netfx42" border="0" class="asset asset-image at-xid-6a00d8341c55c153ef0120a6244bdd970b image-full " src="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef0120a6244bdd970b-800wi" title="Netfx42" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;To uninstall the Framework you must uninstall the language packs and then Extended, Client and finally the OS Update containing the Shared Components (KB958488).&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Unlike the older Frameworks the new installers are single unified packages. DO NOT break them up. The deployment team wrote a robust chainer that includes the ability to heal and retry if an error is encountered. In addition, the 7zip compression is being used to further compress the package as small as possible. These changes in the installer have led to a higher install success rate.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_CuTpkQJHlMY3QKG7E_EpSZvavY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_CuTpkQJHlMY3QKG7E_EpSZvavY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_CuTpkQJHlMY3QKG7E_EpSZvavY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_CuTpkQJHlMY3QKG7E_EpSZvavY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=8G9g80hgvtY:kGxzDXnpX04:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=8G9g80hgvtY:kGxzDXnpX04:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=8G9g80hgvtY:kGxzDXnpX04:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?i=8G9g80hgvtY:kGxzDXnpX04:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=8G9g80hgvtY:kGxzDXnpX04:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?i=8G9g80hgvtY:kGxzDXnpX04:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    <feedburner:origLink>http://www.satter.org/2009/10/deploying-net-framework-4.html</feedburner:origLink></entry>
    <entry>
        <title>Microsoft .NET Framework 4 Beta</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SatterRamblings/~3/2pTaQE8axZA/microsoft-net-framework-4-beta.html" />
        <link rel="replies" type="text/html" href="http://www.satter.org/2009/10/microsoft-net-framework-4-beta.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d8341c55c153ef0120a5f5ea7c970b</id>
        <published>2009-10-19T10:34:27-07:00</published>
        <updated>2009-10-19T10:34:27-07:00</updated>
        <summary>Today Microsoft announced that the Beta 2 of Visual Studio 2010 and .NET Framework 4 will be released. If you have MSDN subscriptions you can downloaded now. Otherwise it will be available on Wednesday publically.</summary>
        <author>
            <name>Rabi Satter</name>
        </author>
        
        
<content type="html" xml:lang="en-US" xml:base="http://www.satter.org/">Today Microsoft announced that the &lt;a href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx"&gt;Beta 2 of Visual Studio 2010 and .NET Framework 4&lt;/a&gt; will be released. If you have MSDN subscriptions you can downloaded now. Otherwise it will be available on Wednesday publically.
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/z_TFDVG083XaC5_GnP8XwyktD_A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/z_TFDVG083XaC5_GnP8XwyktD_A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/z_TFDVG083XaC5_GnP8XwyktD_A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/z_TFDVG083XaC5_GnP8XwyktD_A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=2pTaQE8axZA:XUAHPbm3ggA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=2pTaQE8axZA:XUAHPbm3ggA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=2pTaQE8axZA:XUAHPbm3ggA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?i=2pTaQE8axZA:XUAHPbm3ggA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=2pTaQE8axZA:XUAHPbm3ggA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?i=2pTaQE8axZA:XUAHPbm3ggA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    <feedburner:origLink>http://www.satter.org/2009/10/microsoft-net-framework-4-beta.html</feedburner:origLink></entry>
    <entry>
        <title>Microsoft .NET 4 Client Profile</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SatterRamblings/~3/sWBNi1ur6Sw/microsoft-net-4-client-profile.html" />
        <link rel="replies" type="text/html" href="http://www.satter.org/2009/05/microsoft-net-4-client-profile.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-67347485</id>
        <published>2009-05-27T15:55:12-07:00</published>
        <updated>2009-11-04T14:00:22-08:00</updated>
        <summary>.NET 4 continues with the new concept of profiles. A profile is a subset of the Full Framework that can control what run time assemblies you can use. This can allow for a smaller install when redistributing .NET. For more information check Jossef Goldberg's blog - http://blogs.msdn.com/jgoldb/archive/2009/05/27/net-framework-4-client-profile-introduction.aspx Also see my...</summary>
        <author>
            <name>Rabi Satter</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term=".NET Framework" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Deployment" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Development" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://www.satter.org/">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;.NET 4 continues with the new concept of profiles. A profile is a subset of the Full Framework that can control what run time assemblies you can use. This can allow for a smaller install when redistributing .NET. For more information check Jossef Goldberg's blog - &lt;a href="http://blogs.msdn.com/jgoldb/archive/2009/05/27/net-framework-4-client-profile-introduction.aspx"&gt;http://blogs.msdn.com/jgoldb/archive/2009/05/27/net-framework-4-client-profile-introduction.aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Also see my new blog on deployment which discusses the new &lt;a href="http://www.satter.org/2009/10/deploying-net-framework-4.html"&gt;.NET 4 Client Profile&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SFexNp6dYfKCyw6qvv8vG93imLE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SFexNp6dYfKCyw6qvv8vG93imLE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SFexNp6dYfKCyw6qvv8vG93imLE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SFexNp6dYfKCyw6qvv8vG93imLE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=sWBNi1ur6Sw:2vYkccIjNcM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=sWBNi1ur6Sw:2vYkccIjNcM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=sWBNi1ur6Sw:2vYkccIjNcM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?i=sWBNi1ur6Sw:2vYkccIjNcM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=sWBNi1ur6Sw:2vYkccIjNcM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?i=sWBNi1ur6Sw:2vYkccIjNcM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    <feedburner:origLink>http://www.satter.org/2009/05/microsoft-net-4-client-profile.html</feedburner:origLink></entry>
    <entry>
        <title>Microsoft .NET 4 and Visual Studio 2010 Beta 1 Available</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SatterRamblings/~3/gLK_sc0mu98/microsoft-net-4-and-visual-studio-2010-beta-1-available.html" />
        <link rel="replies" type="text/html" href="http://www.satter.org/2009/05/microsoft-net-4-and-visual-studio-2010-beta-1-available.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-66933881</id>
        <published>2009-05-18T11:27:44-07:00</published>
        <updated>2009-05-18T11:27:44-07:00</updated>
        <summary>Today if you go on MSDN Subscriber downloads you can get the beta of Visual Studio 2010 and Microsoft .NET 4. The public will get the beta in a couple of days. For more information, please visit the Visual Studio 2010 Product Page.</summary>
        <author>
            <name>Rabi Satter</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term=".NET Framework" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://www.satter.org/">&lt;p&gt;Today if you go on MSDN Subscriber downloads you can get the beta of Visual Studio 2010 and Microsoft .NET 4. The public will get the beta in a couple of days. For more information, please visit the &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx"&gt;Visual Studio 2010 Product Page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/I7YJ24cUI9lnjyJxJF9SlGnwld8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/I7YJ24cUI9lnjyJxJF9SlGnwld8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/I7YJ24cUI9lnjyJxJF9SlGnwld8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/I7YJ24cUI9lnjyJxJF9SlGnwld8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=gLK_sc0mu98:g827yzI-jVk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=gLK_sc0mu98:g827yzI-jVk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=gLK_sc0mu98:g827yzI-jVk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?i=gLK_sc0mu98:g827yzI-jVk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SatterRamblings?a=gLK_sc0mu98:g827yzI-jVk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SatterRamblings?i=gLK_sc0mu98:g827yzI-jVk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    <feedburner:origLink>http://www.satter.org/2009/05/microsoft-net-4-and-visual-studio-2010-beta-1-available.html</feedburner:origLink></entry>
    <entry>
        <title>Microsoft Product Blogs</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SatterRamblings/~3/ooaLq2LEYeo/microsoft-product-blogs.html" />
        <link rel="replies" type="text/html" href="http://www.satter.org/2009/02/microsoft-product-blogs.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-63280089</id>
        <published>2009-02-24T07:30:58-08:00</published>
        <updated>2009-02-24T07:30:58-08:00</updated>
        <summary>Have you ever wonder how to keep up with the flood of information coming from Microsoft? It turns out that there are lots of resources provided by Microsoft. And a good place to look turns out to be a blog, specifically BlogMS! BlogMS was started by Daniel Goodman (a Sr....</summary>
        <author>
            <name>Rabi Satter</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Development" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="News" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Product Management" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Tip" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://www.satter.org/">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;Have you ever wonder how to keep up with the flood of information coming from Microsoft? It turns out that there are lots of resources provided by Microsoft. And a good place to look turns out to be a blog, specifically &lt;a href="http://blogs.technet.com/blogms/default.aspx"&gt;BlogMS&lt;/a&gt;! BlogMS was started by Daniel Goodman (a Sr. Technical Account Manager) in his words he started BlogMS in May 2008 in response to customers who wanted to feel closer to Microsoft in order to keep up-to-date with what's going on across Microsoft including the products groups. Think of this website as connecting the dots! &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;In one place you can find &lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;Report about &lt;a href="http://blogs.technet.com/blogms/archive/2009/02/23/blogms-weekly-articles-published-16th-february-to-22nd-february.aspx"&gt;new blog entries&lt;/a&gt; in &lt;a href="http://blogs.technet.com/blogms/pages/directory-of-microsoft-team-blogs.aspx"&gt;official team blogs&lt;/a&gt;, &#xD;
&lt;li&gt;&lt;a href="http://blogs.technet.com/blogms/pages/microsoft-support-resources.aspx"&gt;Support resources &lt;/a&gt;(hey he is a TAM), &#xD;
&lt;li&gt;&lt;a href="http://blogs.technet.com/blogms/pages/microsoft-newsletters.aspx"&gt;Microsoft Newsletters&lt;/a&gt;, &#xD;
&lt;li&gt;how to get involved in feedback, bugs and more via &lt;a href="http://blogs.technet.com/blogms/pages/microsoft-connect-get-involved-early.aspx"&gt;Microsoft Connect&lt;/a&gt;, &#xD;
&lt;li&gt;&lt;a href="http://blogs.technet.com/blogms/pages/microsoft-free-software.aspx"&gt;Free Software and On-line Services&lt;/a&gt; and &#xD;
&lt;li&gt;&lt;a href="http://blogs.technet.com/blogms/pages/microsoft-software-services-and-cloud-computing.aspx"&gt;Information&lt;/a&gt; about Microsoft Software + Services and Cloud Computing. &lt;/li&gt;&#xD;
&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;p&gt;It is a great resource and pulls together nicely in one place critical information.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-eMDF59HOx5K64wwSbnvVLsHEFs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-eMDF59HOx5K64wwSbnvVLsHEFs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-eMDF59HOx5K64wwSbnvVLsHEFs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-eMDF59HOx5K64wwSbnvVLsHEFs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=Dj8ASzNs"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=jHis3Xtl"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=kBuxDbmy"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?i=kBuxDbmy" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=CppO2OzL"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?i=CppO2OzL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    <feedburner:origLink>http://www.satter.org/2009/02/microsoft-product-blogs.html</feedburner:origLink></entry>
    <entry>
        <title>CodeDOM</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SatterRamblings/~3/EVXtgftxKiA/codedom.html" />
        <link rel="replies" type="text/html" href="http://www.satter.org/2008/11/codedom.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-57954425</id>
        <published>2008-11-03T11:03:34-08:00</published>
        <updated>2009-02-11T20:56:47-08:00</updated>
        <summary>Reed Robinson has been talking about the Mobile LOB Accelerator lately. This got me thinking how I could make it easier to write applications based on it. This then lead me to CodeDOM. Ok I am lying but then I can't give away all of my secrets. So what is...</summary>
        <author>
            <name>Rabi Satter</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term=".NET Framework" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Development" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Mobile LOB Accelerator" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="System Design" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Windows Mobile" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://www.satter.org/">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;&lt;a href="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef010535d527b3970c-pi" style="DISPLAY: inline"&gt;&lt;/a&gt;  Reed Robinson has been talking about the &lt;a href="http://blogs.msdn.com/hegenderfer/archive/2008/09/22/spotlight-on-lob-state-aware-objects.aspx"&gt;Mobile LOB Accelerator&lt;/a&gt; lately. This got me thinking how I could make it easier to write applications based on it. This then lead me to CodeDOM. Ok I am lying but then I can't give away all of my secrets. &lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;So what is CodeDOM? Say you want to generate code. You could write a program or class that can output source by writing to a file. However what happens when you want to manipulate the code before writing for example renaming a class or namespace. This becomes difficult if you are just maintaining a string copy in memory. And worst what happens when now you need to output VB rather than C#. You could write a set of objects that represent parts of the code. That is what CodeDOM is a document model for source code. It is essentially a framework of objects used to generate source code or even compiled code. It can be very quirky but powerful and useful. &lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef010535cee752970b-pi" style="DISPLAY: inline"&gt;&lt;img alt="Compiler" border="0" class="at-xid-6a00d8341c55c153ef010535cee752970b " src="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef010535cee752970b-800wi" title="Compiler"&gt;&lt;/img&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;So first let me back up and give a simplistic view of compiling an application. From the diagram above you can see that essential a source code file is transformed by the compiler into machine instructions. Ok that sounds familar I have an XML file and it is transformed into HTML via XSLT. So what if rather than a compiler I sent the source code into a parser that returned the structure of source code as a set of objects. I then take these objects manipulate them and then compile them or output them as source code. CodeDOM achieves this by allow you to use a CodeDOMProvider to generate a compiled .NET program or source code in CSharp or VB.NET.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef010535cef0c3970b-pi" style="DISPLAY: inline"&gt;&lt;img alt="Codedomprovider" border="0" class="at-xid-6a00d8341c55c153ef010535cef0c3970b " src="http://productstrategy.blogs.com/.a/6a00d8341c55c153ef010535cef0c3970b-800wi" title="Codedomprovider"&gt;&lt;/img&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;Further investigation into the CodeDOMProvider is that it can generate source from &lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;CompileUnit - a single grouping of namespaces, think source file. &#xD;
&lt;li&gt;Expression - a math or logical expression. &#xD;
&lt;li&gt;Member - a property, constructor, method or field in a class. &#xD;
&lt;li&gt;Namespace - says it all. &#xD;
&lt;li&gt;Statement - a code statement or block of code. &#xD;
&lt;li&gt;Type - a type including struct, enum, class or delegate. &lt;/li&gt;&#xD;
&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;p&gt;The CodeDOM grammer is very complex consisting of 81 objects. For this posting I will just show you have to create a simple Class and output it in VB or C#. The listing is below. The steps are&lt;/p&gt;&#xD;
&lt;ol&gt;&#xD;
&lt;li&gt;Create the Code graph &#xD;
&lt;li&gt;Output Source in C# &#xD;
&lt;li&gt;Output Source in VB &lt;/li&gt;&#xD;
&lt;/li&gt;&lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;I put the requirement for VB to show the true power of CodeDOM. The biggest step is the creation of the code graph. The code graph requires a CodeCompileUnit, Namespace, Class, field, property and method. I will leave you to explorer the code below and ponder why I am linking Mobile LOB and CodeDOM.&lt;/p&gt;&lt;br&gt;&lt;pre&gt;using System;&#xD;
using System.Collections.Generic;&#xD;
using System.Linq;&#xD;
using System.Text;&#xD;
using System.CodeDom;&#xD;
using System.CodeDom.Compiler;&#xD;
using Microsoft.CSharp;&#xD;
using Microsoft.VisualBasic;&#xD;
using System.IO;&#xD;
&#xD;
&#xD;
namespace GenerateClass&#xD;
{&#xD;
 class Program&#xD;
 {&#xD;
&#xD;
 public static void GenerateSource(CodeDomProvider provider,&#xD;
   CodeCompileUnit codeUnit)&#xD;
 {&#xD;
 StringBuilder sourceFile;&#xD;
 IndentedTextWriter writer;&#xD;
&#xD;
 sourceFile = new StringBuilder(@"c:\temp\HelloWorld");&#xD;
 if (provider.FileExtension[0] != '.')&#xD;
 {&#xD;
  sourceFile.Append('.');&#xD;
 }&#xD;
 sourceFile.Append(provider.FileExtension);&#xD;
&#xD;
 // Create a TextWriter to a StreamWriter to the output file.&#xD;
 writer = new IndentedTextWriter(&#xD;
 new StreamWriter(sourceFile.ToString(), false), " ");&#xD;
&#xD;
 // Generate source code using the code provider.&#xD;
 provider.GenerateCodeFromCompileUnit(codeUnit, writer, &#xD;
    new CodeGeneratorOptions());&#xD;
&#xD;
 // Close the output file.&#xD;
 writer.Close();&#xD;
&#xD;
 }&#xD;
&#xD;
 static void Main(string[] args)&#xD;
 {&#xD;
 CodeCompileUnit codeUnit;&#xD;
 CodeFieldReferenceExpression fieldReference;&#xD;
 CodeTypeDeclaration newClass;&#xD;
 CodeMemberMethod newMethod;&#xD;
 CodeMemberField newField;&#xD;
 CodeMemberProperty newProperty;&#xD;
 CodeNamespace ns;&#xD;
 CodeTypeReference propertyType;&#xD;
 CodeDomProvider provider;&#xD;
&#xD;
 // Create Unit&#xD;
 codeUnit = new CodeCompileUnit();&#xD;
&#xD;
 // Create Namespace&#xD;
 ns = new CodeNamespace("CodeDOMTest");&#xD;
 ns.Imports.Add(new CodeNamespaceImport("system.IO"));&#xD;
 codeUnit.Namespaces.Add(ns);&#xD;
&#xD;
 // Create Class&#xD;
 newClass = new CodeTypeDeclaration("HelloClass");&#xD;
 newClass.IsClass = true;&#xD;
 newClass.Attributes = MemberAttributes.Public;&#xD;
 ns.Types.Add(newClass);&#xD;
&#xD;
 // Create Property&#xD;
 // Step 1. Create Type to be used by the field and property&#xD;
 // Step 2. Create Field&#xD;
 // Step 3. Create Property&#xD;
 // Step 4. Add Get and Set statements&#xD;
&#xD;
 propertyType = new CodeTypeReference(typeof(string));&#xD;
 newField = new CodeMemberField(propertyType,"_name");&#xD;
 newField.Attributes = MemberAttributes.Private;&#xD;
 newClass.Members.Add(newField);&#xD;
 fieldReference = new CodeFieldReferenceExpression();&#xD;
 fieldReference.FieldName = "_name";&#xD;
 newProperty = new CodeMemberProperty();&#xD;
 newProperty.Name = "Name";&#xD;
 newProperty.Attributes = MemberAttributes.Public | MemberAttributes.Final;&#xD;
 newProperty.Type = propertyType;&#xD;
&#xD;
 // Get statement will be return _name&#xD;
 newProperty.GetStatements.Add(new CodeMethodReturnStatement(fieldReference));&#xD;
&#xD;
 // Set statement will be _name = value&#xD;
 newProperty.SetStatements.Add(new CodeAssignStatement(fieldReference,&#xD;
     new CodeArgumentReferenceExpression("value")));&#xD;
 newClass.Members.Add(newProperty);&#xD;
&#xD;
 // Create Method&#xD;
 newMethod = new CodeMemberMethod();&#xD;
 newMethod.Name = "SayHello";&#xD;
 newMethod.Attributes = MemberAttributes.Public | MemberAttributes.Final;&#xD;
 newMethod.Statements.Add(new CodeSnippetExpression(&#xD;
   "Console.WriteLine(\"Hello \" + Name)"));&#xD;
 newClass.Members.Add(newMethod);&#xD;
&#xD;
 // Write CSharp&#xD;
 GenerateSource(new CSharpCodeProvider(), codeUnit);&#xD;
&#xD;
 // Write VB&#xD;
 GenerateSource(new VBCodeProvider(), codeUnit);&#xD;
 }&#xD;
 }&#xD;
}&#xD;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pYK_wKB8OI-EDqZGhrFGlm__D9M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pYK_wKB8OI-EDqZGhrFGlm__D9M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pYK_wKB8OI-EDqZGhrFGlm__D9M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pYK_wKB8OI-EDqZGhrFGlm__D9M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=Asc3bFrm"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=8fnNf1H1"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=73zWrIV6"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?i=73zWrIV6" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=CZQBtA4h"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?i=CZQBtA4h" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    <feedburner:origLink>http://www.satter.org/2008/11/codedom.html</feedburner:origLink></entry>
    <entry>
        <title>.NET Deployment Landscape</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SatterRamblings/~3/yUbDZ4QYBlI/net-deployment.html" />
        <link rel="replies" type="text/html" href="http://www.satter.org/2008/10/net-deployment.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-56511717</id>
        <published>2008-10-26T15:47:23-07:00</published>
        <updated>2008-10-26T15:47:23-07:00</updated>
        <summary>So since middle of June I have been working on the .NET CLR team. I am responsible for deployment of the .NET Framework. And boy is there some work to do. First things first though just how do you deploy applications written in .NET. It turns out that is a...</summary>
        <author>
            <name>Rabi Satter</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Deployment" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://www.satter.org/">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;So since middle of June I have been working on the .NET CLR team. I am responsible for deployment of the .NET Framework. And boy is there some work to do. First things first though just how do you deploy applications written in .NET. It turns out that is a very complex topic. &lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;Deployment Technology&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;So just how complex is .NET deployment -- it is as complex as how simple it can. You can deploy applications via&lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;xcopy deploy &#xD;
&lt;li&gt;Visual Studio Setup Projects or 3rd party installers &#xD;
&lt;li&gt;Web Publish from Visual Studio &#xD;
&lt;li&gt;Clickonce &#xD;
&lt;li&gt;XBap &#xD;
&lt;li&gt;System Management tools like SMS and AD &lt;/li&gt;&#xD;
&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;p&gt;The above is not even a complete list. So where do you start if you are writing a .NET application? The first thing is to not make the mistake of thinking deployment is the last thing you do. &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Mobile Deployment&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;In the mobile world when picking which version of the Compact Framework one of the considerations is how the Compact Framework is deployed. Is the Framework already on the phone or will it have to be put on the phone? Typical if the application is an Enterprise Application using the latest Framework benefits outweigh the issues of deploying both the application and framework. If the application is consumer oriented then basing on the minimum platform Windows Mobile 5 or Windows Mobile 6 is a better chose. You pick Compact Framework 1.0 or Compact Framework 2.0 based on target hardware. This allows for targeting the largest audience while minimizing deployment and size issues. &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Server Deployment&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;The server world might seem the simplest so I will start there. With servers the type of applications are typically web or server applications. In this scenario the application is deployed to one or more servers. Typically the .NET Framework has been installed or pushed to the servers usually via a application management system like System Center Configuration Manager. ASP.NET or WCF is stopped, xcopied over and then restarted. The difference when using SCCM is that the process is automated to allow deploying the application to tens or hundreds of servers without human intervention.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Client Deployment&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;So far it seems that deployment is simple deploy the .NET Framework and then the application. It turns out that device and server developers have it easy compared to desktop developers. Updating an application seems even easier just copy over the application. If only.&lt;/p&gt;&#xD;
&lt;p&gt;It turns out that just like device developers - desktop developers need to make some choices upfront. Desktop developers need to ask themselves how will the application be deployed. If you are desktop developer you have a lot of choices. Do you deploy via&lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;Simple xcopy of the &amp;gt;NET application &#xD;
&lt;li&gt;Application management tool that deploys the framework and then your .NET applications &#xD;
&lt;li&gt;XBap allows for using the browser as the UI container. In this scenario the application is setup on a web server and hosted inside IE. Note you must push out the framework. &#xD;
&lt;li&gt;Clickonce is a technology that creates a package that ensures the framework is deployed before deploying and running the application. In fact Clickonce will ensure that the framework and application is up-to-date before running the application. &#xD;
&lt;li&gt;&#xD;
&lt;p&gt;Finally a installer can be created to install just the .NET application or also the framework.&lt;/p&gt;&lt;/li&gt;&#xD;
&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;p&gt;The space is large and this blog only gives you a glimpse into the deployment space. Hopefully you will find it useful.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NS4of7wVIlWu7ZnGS3y-nVWah-M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NS4of7wVIlWu7ZnGS3y-nVWah-M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NS4of7wVIlWu7ZnGS3y-nVWah-M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NS4of7wVIlWu7ZnGS3y-nVWah-M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=mpj3NBew"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=BBfO1ana"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=M05tiVUD"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?i=M05tiVUD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=orrl9Hbp"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?i=orrl9Hbp" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    <feedburner:origLink>http://www.satter.org/2008/10/net-deployment.html</feedburner:origLink></entry>
    <entry>
        <title>One Click Download of .NET</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SatterRamblings/~3/HlILFjzLgUk/one-click-download-of-net.html" />
        <link rel="replies" type="text/html" href="http://www.satter.org/2008/10/one-click-download-of-net.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-57429769</id>
        <published>2008-10-23T20:35:40-07:00</published>
        <updated>2008-10-23T20:35:40-07:00</updated>
        <summary>One of the parts of my job will be helping define the message around deploying .NET Applications. One of the feedbacks that I heard loud and clear is finding the .NET Framework is challenging. So here you go a single quick url for downloading the .NET Framework - http://www.microsoft.com/net. On...</summary>
        <author>
            <name>Rabi Satter</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term=".NET Framework" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Deployment" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://www.satter.org/">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;One of the parts of my job will be helping define the message around deploying .NET Applications. One of the feedbacks that I heard loud and clear is finding the .NET Framework is challenging. So here you go a single quick url for downloading the .NET Framework - &lt;a href="http://www.microsoft.com/net"&gt;http://www.microsoft.com/net&lt;/a&gt;. &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;On the page you can see a button on the right - Install it now. This  will allow you to launch the .NET Framework web installer and get the latest version, currently 3.5 SP1. &lt;/p&gt;&#xD;
&lt;p&gt;The web installer is about 2.8 MB download that will examine your system and then download the appropiate components to install. Most people think the .NET Framework 3.5 SP1 231 MB which is actually the redistributable file size. However keep in mind that this package installs on XP, W2K3, Vista, W2K8 along with 32 bit, 64 bit and Itanium platforms. The last two platforms 64 bit and Itanium has to install the appropiate platform plus X86 WOW (32 bit compatibility mode). So while the package size is huge it has a lot of duplication due to carrying multiple MSI and CBS installers. So at the end of the day you end up downloading a much smaller size than the 231MB. Here are some rough numbers on platforms that I have checked.&lt;/p&gt;&#xD;
&lt;p&gt;&#xD;
&lt;table&gt;&#xD;
&lt;thead&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;th&gt;OS &amp;amp; Platform&lt;/th&gt;&#xD;
&lt;th&gt;Size&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;XP 32 bit&lt;/td&gt;&#xD;
&lt;td&gt;54 MB&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;W2K3 64 bit&lt;/td&gt;&#xD;
&lt;td&gt;99 MB&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;Vista 32 bit&lt;/td&gt;&#xD;
&lt;td&gt;39 MB&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;Vista 64 bit&lt;/td&gt;&#xD;
&lt;td&gt;58 MB&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/f0WlLp-n4mIQ6Rl03tF59tDokIU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f0WlLp-n4mIQ6Rl03tF59tDokIU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/f0WlLp-n4mIQ6Rl03tF59tDokIU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f0WlLp-n4mIQ6Rl03tF59tDokIU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=Cx6EbvPw"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=x7CgFUIj"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=Y2Qc1H4F"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?i=Y2Qc1H4F" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=Bv4voohr"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?i=Bv4voohr" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    <feedburner:origLink>http://www.satter.org/2008/10/one-click-download-of-net.html</feedburner:origLink></entry>
    <entry>
        <title>Rob Tiffany and .NET Rocks</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SatterRamblings/~3/1D06fd0os8M/rob-tiffany-and.html" />
        <link rel="replies" type="text/html" href="http://www.satter.org/2008/10/rob-tiffany-and.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-56773411</id>
        <published>2008-10-09T10:48:13-07:00</published>
        <updated>2008-10-09T10:48:13-07:00</updated>
        <summary>My friend Rob Tiffany will be on .NET Rocks. Join him as he spends an hour discussing all aspects of Windows Mobile with Carl Franklin and Richard Campbell on .NET Rocks! at http://www.dotnetrocks.com/default.aspx?showNum=384. He takes the listeners on an irreverent, deep dive on the current state of Windows Mobile development...</summary>
        <author>
            <name>Rabi Satter</name>
        </author>
        
        
<content type="html" xml:lang="en-US" xml:base="http://www.satter.org/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;My friend Rob Tiffany will be on &lt;a href="http://www.dotnetrocks.com/"&gt;.NET Rocks&lt;/a&gt;. Join him as he spends an hour discussing all aspects of Windows Mobile with Carl Franklin and Richard Campbell on .NET Rocks! at &lt;a href="http://www.dotnetrocks.com/default.aspx?showNum=384"&gt;http://www.dotnetrocks.com/default.aspx?showNum=384&lt;/a&gt;.&amp;nbsp; He takes the listeners on an irreverent,&amp;nbsp; deep dive on the current state of Windows Mobile development as well as the benefits of System Center Mobile Device Manager.&lt;/p&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ELVASKTYGcwbaedV7l_wtVpoONY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ELVASKTYGcwbaedV7l_wtVpoONY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ELVASKTYGcwbaedV7l_wtVpoONY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ELVASKTYGcwbaedV7l_wtVpoONY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=z1KfyjEm"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=QOQIus6k"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=YqW4i508"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?i=YqW4i508" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SatterRamblings?a=xrQUqhSx"&gt;&lt;img src="http://feeds.feedburner.com/~f/SatterRamblings?i=xrQUqhSx" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    <feedburner:origLink>http://www.satter.org/2008/10/rob-tiffany-and.html</feedburner:origLink></entry>
 
</feed><!-- ph=1 --><!-- nhm:dynamic-ssi -->
