<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Adam Salvo (z) - Technology|Silverlight</title>
    <link>http://blog.salvoz.com/</link>
    <description>newtelligence powered</description>
    <language>en-us</language>
    <copyright>Adam Salvo</copyright>
    <lastBuildDate>Fri, 09 Jul 2010 18:02:00 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.2.8279.16125</generator>
    <managingEditor>adam@salvoz.com</managingEditor>
    <webMaster>adam@salvoz.com</webMaster>
    <item>
      <trackback:ping>http://blog.salvoz.com/Trackback.aspx?guid=64b6ac5d-b2fe-4ff2-afeb-4449adbfb03b</trackback:ping>
      <pingback:server>http://blog.salvoz.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.salvoz.com/PermaLink,guid,64b6ac5d-b2fe-4ff2-afeb-4449adbfb03b.aspx</pingback:target>
      <dc:creator>Adam Salvo</dc:creator>
      <wfw:comment>http://blog.salvoz.com/CommentView,guid,64b6ac5d-b2fe-4ff2-afeb-4449adbfb03b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.salvoz.com/SyndicationService.asmx/GetEntryCommentsRss?guid=64b6ac5d-b2fe-4ff2-afeb-4449adbfb03b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>Today’s Task:</strong>
        </p>
        <p>
Add some Silverlight content to an existing Asp.Net MVC project. The MVC project contains
the standard CRUD for the application, while the Silverlight is meant to provide rich
visualization of the data.
</p>
        <p>
          <strong>Prerequisites:</strong>
        </p>
        <ul>
          <li>
VS 2010 
</li>
          <li>
An existing Asp.Net MVC 2.0 project 
</li>
          <li>
Expression Blend 4.0 (installs Silverlight 4 and Silverlight 4 SDK) 
</li>
          <li>
            <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=eff8a0da-0a4d-48e8-8366-6ddf2ecad801&amp;displaylang=en">Silverlight
4.0 tools</a> for Visual Studio 2010</li>
        </ul>
        <p>
          <strong>Creating the Project:</strong>
        </p>
        <p>
As stated in the opening and prerequisites, I am starting with an existing Asp.Net
MVC application. You should have Blend 4 installed, and have also installed the Silverlight
4 tools for Visual Studio.
</p>
        <p>
1) Right click on your web project and choose add new item (ctrl+shift+a). From the
add new Item window, click on Silverlight under Installed Templates and then select
the Silverlight Application. Name your Silverlight application appropriately. In my
example, I have named my project DataVisualization. Click Add
</p>
        <p>
          <a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_2.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb.png" width="244" height="171" />
          </a>
        </p>
        <p>
2) The next screen that comes up is the “Add Silverlight Application” screen. I accepted
the defaults with the follow exception, I changed the location from being a sub folder
of my MVC application to one level higher. The destination folder, ClientBin is still
created in your MVC application. Make sure that you select Silverlight 4 for the version.
Finally click Add.
</p>
        <p>
          <a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_4.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb_1.png" width="244" height="225" />
          </a>
        </p>
        <p>
3) You should now have the following in your solution.
</p>
        <ul>
          <li>
Your existing Asp.Net MVC application 
</li>
          <li>
A new Silverlight 4 application named DataVisualization 
</li>
          <li>
A DataVisualizationTestPage.aspx in your MVC application 
</li>
          <li>
A DataVisualizationTestPage.html in your MVC application 
</li>
          <li>
A Silverlight.js in your MVC application</li>
        </ul>
        <p>
We will eventually remove the test pages, but for now we will leave them so that they
can serve their intended purpose. 
</p>
        <p>
4) Build the solution. You should see a DataVisualization.xap added to the ClientBin
folder in your MVC application.
</p>
        <p>
          <a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_6.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb_2.png" width="244" height="235" />
          </a>  
</p>
        <p>
5) Right click on DataVisualization.html and choose view in browser. You should see
an empty page in the browser, but get no errors. Right clicking anywhere in the browser
window should bring up the Silverlight context menu.
</p>
        <p>
          <a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_8.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb_3.png" width="244" height="208" />
          </a>
        </p>
        <p>
          <strong>
          </strong> 
</p>
        <p>
          <strong>Integrate the Silverlight Application</strong>
        </p>
        <p>
In this stage, we are going to make our new Silverlight application appear like it’s
part of the rest of our MVC application. Right now if you browse to it, it doesn’t
look like its part of anything. We also want to be able to allow our users to navigate
thru our web application so we need our existing menu to show up.
</p>
        <p>
1) Either create a new controller/view or re-use an existing controller/view in your
MVC application to house your Silverlight application. I’m going to reuse an existing
controller called Dashboard, which has one view, Index.
</p>
        <p>
2) Open up your view, and the DataVisualizationTestPage.aspx file. We need to move
some stuff over to our view so it displays our Silverlight application. I have some
pre existing styling and layout defined, so my view is going to look differently from
yours. I also store my java script files in a specific location, so I will be moving
the included silverlight.js as well. The screen shot below shows what I am starting
with in the view for reference.
</p>
        <p>
          <a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_10.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb_4.png" width="244" height="121" />
          </a>
        </p>
        <p>
3) If you don’t have any existing standard for your JavaScript, you can place the
two script tags from the test page somewhere before the reference to the Silverlight
object. For example, place the two script tags just below the second content place
holder. Next, copy the form tag inclusive and paste it into your view. For me, I pasted
it into my div tag that I have setup to control my formatting. In the screen shots
below you can see my view, and resulting web page. We still have an empty Silverlight
control, but now it looks like its actually part of our website. 
</p>
        <p>
          <a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_12.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb_5.png" width="343" height="186" />
          </a>
          <a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_14.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb_6.png" width="244" height="187" />
          </a>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
4) Remove the DataVisualizationTest.aspx page, but keep the HTML page as we will need
it in the next section.
</p>
        <p>
          <strong>Working with Blend</strong>
        </p>
        <p>
The final step is to begin adding content to our Silverlight application. For this
we are going to switch to Blend to make sure that we are able to work in both tools. 
</p>
        <p>
1) Start up Blend and choose to open an existing project. Browse to the location of
your DataVisualization project (folder that contains DataVisualization.csproj) and
open it. You should see the content of your project listed on the left under the project
tab (assuming default Blend layout) and the empty MainPage.xaml in the middle. Notice
that we have a solution called DataVisualization, and that I did not open up my existing
MVC application solution. 
</p>
        <p>
          <a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_16.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb_7.png" width="244" height="150" />
          </a>
        </p>
        <p>
2) Go to Project in the tool bar, and click Run Project (or press F5). You will see
that our empty MainPage is shown using the DataVisualizationTest.html page, and that
we are using the local Asp.Net development server. This is good enough for me. I’m
hoping that with this setup I can work independently of my MVC application, and more
importantly, a designer would be able to work independently as well. When deploying
my application to production, I can remove the DataVisualizationTest.html page. 
</p>
        <p>
          <a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_18.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb_8.png" width="244" height="125" />
          </a>
        </p>
        <p>
3) TFS Integration – At this point I can’t figure out how to get Blend to work with
TFS. It’s possible since I downloaded the trial version that it does not include TFS
support, or I need to install Team Explorer on top of Blend. For now I can use the
Explorer add-in to get by. 
</p>
        <p>
          <strong>Conclusion</strong>
        </p>
        <p>
At this point we have a functioning Silverlight application, integrated with an existing
Asp.Net MVC application. We are able to work independently of the web application
in Blend and vice-versa. This is my first attempt at this type of solution, so I will
post a follow-up in the future to report back how well it worked, and if I needed
to make any changes. 
</p>
        <img width="0" height="0" src="http://blog.salvoz.com/aggbug.ashx?id=64b6ac5d-b2fe-4ff2-afeb-4449adbfb03b" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.salvoz.com">Adam Salvo</a>. 
</body>
      <title>Silverlight in an Existing Asp.Net MVC Project</title>
      <guid isPermaLink="false">http://blog.salvoz.com/PermaLink,guid,64b6ac5d-b2fe-4ff2-afeb-4449adbfb03b.aspx</guid>
      <link>http://blog.salvoz.com/2010/07/09/SilverlightInAnExistingAspNetMVCProject.aspx</link>
      <pubDate>Fri, 09 Jul 2010 18:02:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;Today’s Task:&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Add some Silverlight content to an existing Asp.Net MVC project. The MVC project contains
the standard CRUD for the application, while the Silverlight is meant to provide rich
visualization of the data.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Prerequisites:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
VS 2010 
&lt;li&gt;
An existing Asp.Net MVC 2.0 project 
&lt;li&gt;
Expression Blend 4.0 (installs Silverlight 4 and Silverlight 4 SDK) 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=eff8a0da-0a4d-48e8-8366-6ddf2ecad801&amp;amp;displaylang=en"&gt;Silverlight
4.0 tools&lt;/a&gt; for Visual Studio 2010&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Creating the Project:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
As stated in the opening and prerequisites, I am starting with an existing Asp.Net
MVC application. You should have Blend 4 installed, and have also installed the Silverlight
4 tools for Visual Studio.
&lt;/p&gt;
&lt;p&gt;
1) Right click on your web project and choose add new item (ctrl+shift+a). From the
add new Item window, click on Silverlight under Installed Templates and then select
the Silverlight Application. Name your Silverlight application appropriately. In my
example, I have named my project DataVisualization. Click Add
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb.png" width="244" height="171"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
2) The next screen that comes up is the “Add Silverlight Application” screen. I accepted
the defaults with the follow exception, I changed the location from being a sub folder
of my MVC application to one level higher. The destination folder, ClientBin is still
created in your MVC application. Make sure that you select Silverlight 4 for the version.
Finally click Add.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb_1.png" width="244" height="225"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
3) You should now have the following in your solution.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Your existing Asp.Net MVC application 
&lt;li&gt;
A new Silverlight 4 application named DataVisualization 
&lt;li&gt;
A DataVisualizationTestPage.aspx in your MVC application 
&lt;li&gt;
A DataVisualizationTestPage.html in your MVC application 
&lt;li&gt;
A Silverlight.js in your MVC application&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
We will eventually remove the test pages, but for now we will leave them so that they
can serve their intended purpose. 
&lt;/p&gt;
&lt;p&gt;
4) Build the solution. You should see a DataVisualization.xap added to the ClientBin
folder in your MVC application.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb_2.png" width="244" height="235"&gt;&lt;/a&gt;&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
5) Right click on DataVisualization.html and choose view in browser. You should see
an empty page in the browser, but get no errors. Right clicking anywhere in the browser
window should bring up the Silverlight context menu.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb_3.png" width="244" height="208"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Integrate the Silverlight Application&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
In this stage, we are going to make our new Silverlight application appear like it’s
part of the rest of our MVC application. Right now if you browse to it, it doesn’t
look like its part of anything. We also want to be able to allow our users to navigate
thru our web application so we need our existing menu to show up.
&lt;/p&gt;
&lt;p&gt;
1) Either create a new controller/view or re-use an existing controller/view in your
MVC application to house your Silverlight application. I’m going to reuse an existing
controller called Dashboard, which has one view, Index.
&lt;/p&gt;
&lt;p&gt;
2) Open up your view, and the DataVisualizationTestPage.aspx file. We need to move
some stuff over to our view so it displays our Silverlight application. I have some
pre existing styling and layout defined, so my view is going to look differently from
yours. I also store my java script files in a specific location, so I will be moving
the included silverlight.js as well. The screen shot below shows what I am starting
with in the view for reference.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb_4.png" width="244" height="121"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
3) If you don’t have any existing standard for your JavaScript, you can place the
two script tags from the test page somewhere before the reference to the Silverlight
object. For example, place the two script tags just below the second content place
holder. Next, copy the form tag inclusive and paste it into your view. For me, I pasted
it into my div tag that I have setup to control my formatting. In the screen shots
below you can see my view, and resulting web page. We still have an empty Silverlight
control, but now it looks like its actually part of our website. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_12.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb_5.png" width="343" height="186"&gt;&lt;/a&gt; &lt;a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_14.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb_6.png" width="244" height="187"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
4) Remove the DataVisualizationTest.aspx page, but keep the HTML page as we will need
it in the next section.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Working with Blend&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The final step is to begin adding content to our Silverlight application. For this
we are going to switch to Blend to make sure that we are able to work in both tools. 
&lt;/p&gt;
&lt;p&gt;
1) Start up Blend and choose to open an existing project. Browse to the location of
your DataVisualization project (folder that contains DataVisualization.csproj) and
open it. You should see the content of your project listed on the left under the project
tab (assuming default Blend layout) and the empty MainPage.xaml in the middle. Notice
that we have a solution called DataVisualization, and that I did not open up my existing
MVC application solution. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_16.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb_7.png" width="244" height="150"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
2) Go to Project in the tool bar, and click Run Project (or press F5). You will see
that our empty MainPage is shown using the DataVisualizationTest.html page, and that
we are using the local Asp.Net development server. This is good enough for me. I’m
hoping that with this setup I can work independently of my MVC application, and more
importantly, a designer would be able to work independently as well. When deploying
my application to production, I can remove the DataVisualizationTest.html page. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_18.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/SilverlightinanExistingAsp.NetMVCProject_8B5E/image_thumb_8.png" width="244" height="125"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
3) TFS Integration – At this point I can’t figure out how to get Blend to work with
TFS. It’s possible since I downloaded the trial version that it does not include TFS
support, or I need to install Team Explorer on top of Blend. For now I can use the
Explorer add-in to get by. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
At this point we have a functioning Silverlight application, integrated with an existing
Asp.Net MVC application. We are able to work independently of the web application
in Blend and vice-versa. This is my first attempt at this type of solution, so I will
post a follow-up in the future to report back how well it worked, and if I needed
to make any changes. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.salvoz.com/aggbug.ashx?id=64b6ac5d-b2fe-4ff2-afeb-4449adbfb03b" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.salvoz.com"&gt;Adam Salvo&lt;/a&gt;. </description>
      <comments>http://blog.salvoz.com/CommentView,guid,64b6ac5d-b2fe-4ff2-afeb-4449adbfb03b.aspx</comments>
      <category>Technology/Asp.Net MVC</category>
      <category>Technology/Programming</category>
      <category>Technology/Silverlight</category>
      <category>Technology/Visual Studio</category>
    </item>
    <item>
      <trackback:ping>http://blog.salvoz.com/Trackback.aspx?guid=6c4cdab1-ffa0-4cba-b09c-3a2137bbb048</trackback:ping>
      <pingback:server>http://blog.salvoz.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.salvoz.com/PermaLink,guid,6c4cdab1-ffa0-4cba-b09c-3a2137bbb048.aspx</pingback:target>
      <dc:creator>Adam Salvo</dc:creator>
      <wfw:comment>http://blog.salvoz.com/CommentView,guid,6c4cdab1-ffa0-4cba-b09c-3a2137bbb048.aspx</wfw:comment>
      <wfw:commentRss>http://blog.salvoz.com/SyndicationService.asmx/GetEntryCommentsRss?guid=6c4cdab1-ffa0-4cba-b09c-3a2137bbb048</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <em>This post is part of my PDC09 Conference Notes series. These are my raw notes
taken while watching the various session videos from PDC09. Refer to my <a href="http://blog.salvoz.com/2009/11/25/PDC2009Notes.aspx">original
post</a> for some conventions I tried to use.</em>
        </p>
        <p>
PDC Session Link: <a title="Advanced WPF Application Performance Tuning and Analysis" href="http://microsoftpdc.com/Sessions/CL06">Networking
and Web Services in Silverlight</a></p>
        <p>
This session went over the different ways to expose data to a Silverlight application.
Data access requirements for Silverlight was grouped in two ways and presented as
the following graphic:
</p>
        <p>
          <a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/PDC09CL06NetworkingandWebServicesinSilve_EC4A/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/PDC09CL06NetworkingandWebServicesinSilve_EC4A/image_thumb.png" width="244" height="122" />
          </a>
        </p>
        <p>
Each example fell somewhere on the X/Y axis of the chart above. Resource Centric was
explained to be CRUD operations, while operation centric was more behavior driven. 
</p>
        <p>
          <strong>Forms Over Data</strong>
        </p>
        <p>
The first examples were your typical forms over data applications, which are Resource
Centric and follow a Request/Reply model. 
</p>
        <p>
If you control, and have direct access to the data, then RIA services was recommended.
Aside from a short demo, not a lot of time was spent on RIA services, as there are
other presentations that get into the details. 
</p>
        <p>
Another option for when you control the data, is to use WCF Data Services, which exposes
your data in a RESTFul manner that adheres to the open data protocol (OData). In addition
to data you control, services like SharePoint expose the data contained with-in via
the open data protocol as well. The advantages to using OData sources over public
REST services, is that more is known about the data, so you get a better development
experience. 
</p>
        <p>
If you are working with a public data store exposed with REST, and it’s not OData,
then use the enhanced (for Silverlight 4) ClientHttp library. It has a good programming
model, and a lot of the deficiencies in previous versions have been solved. For example
there is now support for Basic HTTP Authentication secured with SSL.
</p>
        <p>
          <strong>2 Way and Streaming</strong>
        </p>
        <p>
The second group of examples looked at duplex and streaming scenarios. The first example
was a chat application which is an operation centric example that has some request/reply
elements, but mainly users a duplex model. WCF was the recommend technology to support
the duplex model. The included binary encoder provided a 71% performance improvement
over the standard text encoder, even over HTTP. Binary has been the default encoder
since Silverlight 3, but is only useful when both endpoints are .Net applications.
</p>
        <p>
Duplex itself can be setup in your WCF bindings in one of two ways. For internet scenarios,
you will need to use an HTTP binding, which is a polling based duplex model. While
not present in the beta that was released at PDC, there are plans to enable HTTP Chunking,
which would allow for multiple messages per HTTP request to increase performance.
For intranet scenarios, you can use the NetTcp binding for the best performance. Remember,
since this is WCF, you code once, and just change your bindings as needed.
</p>
        <p>
Silverlight 4 supports UDP multicast, but it is pretty much an intranet only solution,
as your network must be configured to support UDP multicast. 
</p>
        <p>
There is a new Silverlight TCP Socket Policy server project template in the online
template gallery (accessible in VS 2010). This makes it very easy to setup the policy
server to allow cross domain socket calls for your Silverlight application. An enhancement
being considered for Silverlight 4 is that if the application has been elevated, then
you will not need to worry about policies. 
</p>
        <img width="0" height="0" src="http://blog.salvoz.com/aggbug.ashx?id=6c4cdab1-ffa0-4cba-b09c-3a2137bbb048" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.salvoz.com">Adam Salvo</a>. 
</body>
      <title>PDC09 – CL06: Networking and Web Services in Silverlight</title>
      <guid isPermaLink="false">http://blog.salvoz.com/PermaLink,guid,6c4cdab1-ffa0-4cba-b09c-3a2137bbb048.aspx</guid>
      <link>http://blog.salvoz.com/2010/01/16/PDC09CL06NetworkingAndWebServicesInSilverlight.aspx</link>
      <pubDate>Sat, 16 Jan 2010 22:49:01 GMT</pubDate>
      <description>&lt;p&gt;
&lt;em&gt;This post is part of my PDC09 Conference Notes series. These are my raw notes
taken while watching the various session videos from PDC09. Refer to my &lt;a href="http://blog.salvoz.com/2009/11/25/PDC2009Notes.aspx"&gt;original
post&lt;/a&gt; for some conventions I tried to use.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
PDC Session Link: &lt;a title="Advanced WPF Application Performance Tuning and Analysis" href="http://microsoftpdc.com/Sessions/CL06"&gt;Networking
and Web Services in Silverlight&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This session went over the different ways to expose data to a Silverlight application.
Data access requirements for Silverlight was grouped in two ways and presented as
the following graphic:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.salvoz.com/content/binary/WindowsLiveWriter/PDC09CL06NetworkingandWebServicesinSilve_EC4A/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.salvoz.com/content/binary/WindowsLiveWriter/PDC09CL06NetworkingandWebServicesinSilve_EC4A/image_thumb.png" width="244" height="122"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Each example fell somewhere on the X/Y axis of the chart above. Resource Centric was
explained to be CRUD operations, while operation centric was more behavior driven. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Forms Over Data&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The first examples were your typical forms over data applications, which are Resource
Centric and follow a Request/Reply model. 
&lt;/p&gt;
&lt;p&gt;
If you control, and have direct access to the data, then RIA services was recommended.
Aside from a short demo, not a lot of time was spent on RIA services, as there are
other presentations that get into the details. 
&lt;/p&gt;
&lt;p&gt;
Another option for when you control the data, is to use WCF Data Services, which exposes
your data in a RESTFul manner that adheres to the open data protocol (OData). In addition
to data you control, services like SharePoint expose the data contained with-in via
the open data protocol as well. The advantages to using OData sources over public
REST services, is that more is known about the data, so you get a better development
experience. 
&lt;/p&gt;
&lt;p&gt;
If you are working with a public data store exposed with REST, and it’s not OData,
then use the enhanced (for Silverlight 4) ClientHttp library. It has a good programming
model, and a lot of the deficiencies in previous versions have been solved. For example
there is now support for Basic HTTP Authentication secured with SSL.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;2 Way and Streaming&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The second group of examples looked at duplex and streaming scenarios. The first example
was a chat application which is an operation centric example that has some request/reply
elements, but mainly users a duplex model. WCF was the recommend technology to support
the duplex model. The included binary encoder provided a 71% performance improvement
over the standard text encoder, even over HTTP. Binary has been the default encoder
since Silverlight 3, but is only useful when both endpoints are .Net applications.
&lt;/p&gt;
&lt;p&gt;
Duplex itself can be setup in your WCF bindings in one of two ways. For internet scenarios,
you will need to use an HTTP binding, which is a polling based duplex model. While
not present in the beta that was released at PDC, there are plans to enable HTTP Chunking,
which would allow for multiple messages per HTTP request to increase performance.
For intranet scenarios, you can use the NetTcp binding for the best performance. Remember,
since this is WCF, you code once, and just change your bindings as needed.
&lt;/p&gt;
&lt;p&gt;
Silverlight 4 supports UDP multicast, but it is pretty much an intranet only solution,
as your network must be configured to support UDP multicast. 
&lt;/p&gt;
&lt;p&gt;
There is a new Silverlight TCP Socket Policy server project template in the online
template gallery (accessible in VS 2010). This makes it very easy to setup the policy
server to allow cross domain socket calls for your Silverlight application. An enhancement
being considered for Silverlight 4 is that if the application has been elevated, then
you will not need to worry about policies. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.salvoz.com/aggbug.ashx?id=6c4cdab1-ffa0-4cba-b09c-3a2137bbb048" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.salvoz.com"&gt;Adam Salvo&lt;/a&gt;. </description>
      <comments>http://blog.salvoz.com/CommentView,guid,6c4cdab1-ffa0-4cba-b09c-3a2137bbb048.aspx</comments>
      <category>Technology/Conference Notes</category>
      <category>Technology/Data Access</category>
      <category>Technology/Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://blog.salvoz.com/Trackback.aspx?guid=5910971b-e00d-46cb-b433-d1239489d651</trackback:ping>
      <pingback:server>http://blog.salvoz.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.salvoz.com/PermaLink,guid,5910971b-e00d-46cb-b433-d1239489d651.aspx</pingback:target>
      <dc:creator>Adam Salvo</dc:creator>
      <wfw:comment>http://blog.salvoz.com/CommentView,guid,5910971b-e00d-46cb-b433-d1239489d651.aspx</wfw:comment>
      <wfw:commentRss>http://blog.salvoz.com/SyndicationService.asmx/GetEntryCommentsRss?guid=5910971b-e00d-46cb-b433-d1239489d651</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <em>This post is part of my PDC09 Conference Notes series. These are my raw notes
taken while watching the various session videos from PDC09. Refer to my <a href="http://blog.salvoz.com/2009/11/25/PDC2009Notes.aspx">original
post</a> for some conventions I tried to use.</em>
        </p>
        <p>
PDC Link: <a href="http://microsoftpdc.com/Sessions/CL22">Advanced Topics for Building
Large-Scale Applications with Microsoft Silverlight</a><br />
Presenter: <a href="http://www.johnpapa.net">John Papa</a> (@john_papa)
</p>
        <p>
The title of this presentation is a little misleading. It could have just as easily
been titled, best practices for building line of business applications in SilverLight.
The concepts, if not most of the code can be applied to WPF as well. There was a lot
of talk about <a href="http://www.codeplex.com/CompositeWPF">Prism</a>, which I have
not looked at in great detail. However, as a result of this presentation, I will take
a closer look at it once I get around to working with SilverLight and WPF more. John
pointed out several times that you are able to pick and choose what parts of Prism
you want to use, which at least makes it sound a little less invasive then some of
the other things to come out of Patterns and Practice. 
</p>
        <p>
A similar framework which is not developed by Microsoft is <a href="http://www.codeplex.com/caliburn">Caliburn</a>.
Which one is better, is probably open to debate, and both are continued to be developed.
John did mention some gaps in Prism, which he developed some code for (posted via
his blog), but perhaps these are available in Caliburn. If you are just starting out
with SilverLight or WPF, I would suggest looking at both frameworks. If you are already
using one or the other, I don’t know how much sense it would make to switch, but I
always like to keep my options open. 
</p>
        <p>
          <strong>MVVM</strong>
        </p>
        <p>
The first part of the presentation was focused on defining MVVM, or the Model, View,
View-Model pattern. The primary benefit of the MVVM pattern, is that is allows for
good separation of concerns, which leads to increased testability and maintainability.
As you can see below, a lot of time was spent on describing the View-Model and how
it fits in, while the View and Model are fairly straight forward.
</p>
        <ul>
          <li>
View: Responsible for rendering the UI only 
</li>
          <li>
Model: Contains your domain entities (i.e. customer, order and order details) 
</li>
          <li>
View-Model: 
<ul><li>
Handles the communication between your View and Model thru bindings, commands, events. 
</li><li>
Responsible for providing everything (data) a particular view requires. 
</li><li>
Sometimes your View-Model will look almost identical to your model. Other times, it
will contain a mash-up of various entities as required by the view. 
</li><li><em>Ensures that your view knows nothing about your model, and that your model doesn’t
known anything about the view (or require references to view related dependencies)</em></li></ul></li>
        </ul>
        <p>
Three ways to implement MVVM were presented. I had never considered the first two,
while the 3rd one is where frameworks like Prism, Caliburn, Ninject (Inversion of
control) come into play.
</p>
        <ul>
          <li>
ViewFirst (Static Resource): View Model can be created as a static resource in the
view. This tightly couples the View Model to the view, but gives you the best experience
when using Blend (referred to as blenability) 
</li>
          <li>
ViewFirst (Code Behind): The view is injected to the View Model constructor. Since
you loose the blendability, I’m not sure why you would pick this over option 3. 
</li>
          <li>
View + View Model Marrige: Use a intermediary to marry the View and the View-Model
together. Again, you loose blendability, but this is the approach that everyone takes
when using Prism, Caliburn or a home grown framework. 
</li>
        </ul>
        <p>
When creating a SilverLight application using MVVM, there are some common functionality
that you need to implement, which is where Prism and Caliburn come into play. Since
this session used Prism, I will list what was shown, which was limited to what Prism
can offer. I expect that Caliburn offers a similar set of functionality. 
</p>
        <ul>
          <li>
Shell: Container for all UI modules, such as menus, windows etc. 
</li>
          <li>
Regions: Shell is made up of regions which control where UI modules are displayed. 
</li>
          <li>
Modules: Separate code modules that can be developed in isolation and then loaded
by Prism. Modules can talk to one another thru event aggregation (<em>I wonder if
MEF would be a better choice</em>)</li>
          <li>
Event Aggregation: An eventing model that allows for cross module communication.</li>
          <li>
            <strike>Commands:</strike> SilverLight 4 adds support for commands, so it is my understanding
you do not need to use Prism’s command support anymore.</li>
          <li>
Bootstrapper: Controls application startup and configuration. Configure your IoC here. 
</li>
          <li>
Delegate Command object for use with commands (very simple class to create if you
are not using Prism)</li>
        </ul>
        <p>
Commands:
</p>
        <ul>
          <li>
Invoke an event on your view and have your view model respond to it. 
</li>
          <li>
When you invoke a command, you expect a response. 
</li>
          <li>
Commands work out of the box well with buttons. However you need to create new command
objects that implement ICommand for use with other controls. John puts these objects
in his Infrastructure dll, and I think he may have provided some of this code on his
blog. 
</li>
          <li>
            <em>I still have a lot to learn on commanding</em>
          </li>
        </ul>
        <img width="0" height="0" src="http://blog.salvoz.com/aggbug.ashx?id=5910971b-e00d-46cb-b433-d1239489d651" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.salvoz.com">Adam Salvo</a>. 
</body>
      <title>PDC09 – CL22: Advanced Topics for Building Large-Scale Applications with Microsoft Silverlight</title>
      <guid isPermaLink="false">http://blog.salvoz.com/PermaLink,guid,5910971b-e00d-46cb-b433-d1239489d651.aspx</guid>
      <link>http://blog.salvoz.com/2009/11/29/PDC09CL22AdvancedTopicsForBuildingLargeScaleApplicationsWithMicrosoftSilverlight.aspx</link>
      <pubDate>Sun, 29 Nov 2009 03:45:42 GMT</pubDate>
      <description>&lt;p&gt;
&lt;em&gt;This post is part of my PDC09 Conference Notes series. These are my raw notes
taken while watching the various session videos from PDC09. Refer to my &lt;a href="http://blog.salvoz.com/2009/11/25/PDC2009Notes.aspx"&gt;original
post&lt;/a&gt; for some conventions I tried to use.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
PDC Link: &lt;a href="http://microsoftpdc.com/Sessions/CL22"&gt;Advanced Topics for Building
Large-Scale Applications with Microsoft Silverlight&lt;/a&gt;
&lt;br&gt;
Presenter: &lt;a href="http://www.johnpapa.net"&gt;John Papa&lt;/a&gt; (@john_papa)
&lt;/p&gt;
&lt;p&gt;
The title of this presentation is a little misleading. It could have just as easily
been titled, best practices for building line of business applications in SilverLight.
The concepts, if not most of the code can be applied to WPF as well. There was a lot
of talk about &lt;a href="http://www.codeplex.com/CompositeWPF"&gt;Prism&lt;/a&gt;, which I have
not looked at in great detail. However, as a result of this presentation, I will take
a closer look at it once I get around to working with SilverLight and WPF more. John
pointed out several times that you are able to pick and choose what parts of Prism
you want to use, which at least makes it sound a little less invasive then some of
the other things to come out of Patterns and Practice. 
&lt;/p&gt;
&lt;p&gt;
A similar framework which is not developed by Microsoft is &lt;a href="http://www.codeplex.com/caliburn"&gt;Caliburn&lt;/a&gt;.
Which one is better, is probably open to debate, and both are continued to be developed.
John did mention some gaps in Prism, which he developed some code for (posted via
his blog), but perhaps these are available in Caliburn. If you are just starting out
with SilverLight or WPF, I would suggest looking at both frameworks. If you are already
using one or the other, I don’t know how much sense it would make to switch, but I
always like to keep my options open. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;MVVM&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The first part of the presentation was focused on defining MVVM, or the Model, View,
View-Model pattern. The primary benefit of the MVVM pattern, is that is allows for
good separation of concerns, which leads to increased testability and maintainability.
As you can see below, a lot of time was spent on describing the View-Model and how
it fits in, while the View and Model are fairly straight forward.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
View: Responsible for rendering the UI only 
&lt;li&gt;
Model: Contains your domain entities (i.e. customer, order and order details) 
&lt;li&gt;
View-Model: 
&lt;ul&gt;
&lt;li&gt;
Handles the communication between your View and Model thru bindings, commands, events. 
&lt;li&gt;
Responsible for providing everything (data) a particular view requires. 
&lt;li&gt;
Sometimes your View-Model will look almost identical to your model. Other times, it
will contain a mash-up of various entities as required by the view. 
&lt;li&gt;
&lt;em&gt;Ensures that your view knows nothing about your model, and that your model doesn’t
known anything about the view (or require references to view related dependencies)&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Three ways to implement MVVM were presented. I had never considered the first two,
while the 3rd one is where frameworks like Prism, Caliburn, Ninject (Inversion of
control) come into play.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
ViewFirst (Static Resource): View Model can be created as a static resource in the
view. This tightly couples the View Model to the view, but gives you the best experience
when using Blend (referred to as blenability) 
&lt;li&gt;
ViewFirst (Code Behind): The view is injected to the View Model constructor. Since
you loose the blendability, I’m not sure why you would pick this over option 3. 
&lt;li&gt;
View + View Model Marrige: Use a intermediary to marry the View and the View-Model
together. Again, you loose blendability, but this is the approach that everyone takes
when using Prism, Caliburn or a home grown framework. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
When creating a SilverLight application using MVVM, there are some common functionality
that you need to implement, which is where Prism and Caliburn come into play. Since
this session used Prism, I will list what was shown, which was limited to what Prism
can offer. I expect that Caliburn offers a similar set of functionality. 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Shell: Container for all UI modules, such as menus, windows etc. 
&lt;/li&gt;
&lt;li&gt;
Regions: Shell is made up of regions which control where UI modules are displayed. 
&lt;/li&gt;
&lt;li&gt;
Modules: Separate code modules that can be developed in isolation and then loaded
by Prism. Modules can talk to one another thru event aggregation (&lt;em&gt;I wonder if
MEF would be a better choice&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;
Event Aggregation: An eventing model that allows for cross module communication.&lt;/li&gt;
&lt;li&gt;
&lt;strike&gt;Commands:&lt;/strike&gt; SilverLight 4 adds support for commands, so it is my understanding
you do not need to use Prism’s command support anymore.&lt;/li&gt;
&lt;li&gt;
Bootstrapper: Controls application startup and configuration. Configure your IoC here. 
&lt;/li&gt;
&lt;li&gt;
Delegate Command object for use with commands (very simple class to create if you
are not using Prism)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Commands:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Invoke an event on your view and have your view model respond to it. 
&lt;/li&gt;
&lt;li&gt;
When you invoke a command, you expect a response. 
&lt;/li&gt;
&lt;li&gt;
Commands work out of the box well with buttons. However you need to create new command
objects that implement ICommand for use with other controls. John puts these objects
in his Infrastructure dll, and I think he may have provided some of this code on his
blog. 
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;I still have a lot to learn on commanding&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://blog.salvoz.com/aggbug.ashx?id=5910971b-e00d-46cb-b433-d1239489d651" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.salvoz.com"&gt;Adam Salvo&lt;/a&gt;. </description>
      <comments>http://blog.salvoz.com/CommentView,guid,5910971b-e00d-46cb-b433-d1239489d651.aspx</comments>
      <category>Technology/Conference Notes</category>
      <category>Technology/Silverlight</category>
      <category>Technology/WPF</category>
    </item>
  </channel>
</rss>