<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.oosterkamp.nl/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title /><link>http://blogs.oosterkamp.nl/blogs/</link><description>Dé specialist in .NET trainingen en consultancy</description><dc:language>en-US</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>VS2010 web deployment: publishing profiles</title><link>http://blogs.oosterkamp.nl/blogs/erik/archive/2010/06/28/vs2010-web-deployment-publishing-profiles.aspx</link><pubDate>Mon, 28 Jun 2010 11:43:08 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:317</guid><dc:creator>Erik</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A lot of developers still use external FTP clients or even copy/paste to deploy their ASP.NET or Silverlight web project on the production server. It’s good to know Visual Studio can do this job for you. Just right-click your Web application project in the solution explorer and select the Publish… menu-item.&lt;/p&gt;  &lt;p&gt;Publish… will pre-build your project and copy the necessary files to the destination server in one go. In Visual Studio 2010 it’s now possible to save your publishing options using a profile.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.oosterkamp.nl/blogs/erik/PublishingWeb_1F9A03FD.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="PublishingWeb" border="0" alt="PublishingWeb" src="http://blogs.oosterkamp.nl/blogs/erik/PublishingWeb_thumb_310A64D5.png" width="317" height="423" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The profile will be saved as a XML file in the root directory of your web application. The name of the file follows the format [ProjectName].Publish.XML. And no panic, the password will be saved encrypted. If you are still using Visual Studio 2008, you don’t have this profile feature and you’ll have to fill in your credentials manually during each deployment action.&lt;/p&gt;  &lt;p&gt;For more complex deployment scenarios, including database deployment, altering IIS settings etc.. you should take a look into the new webpackage deployment option in VS2010. For more infomation on this subject take a look &lt;a href="http://blogs.msdn.com/b/webdevtools/archive/2009/02/09/web-packaging-creating-a-web-package-using-vs-2010.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=317" width="1" height="1"&gt;</description></item><item><title>Modifying the generated code from RIA Services</title><link>http://blogs.oosterkamp.nl/blogs/thomas/archive/2010/06/22/modifying-the-generated-code-from-ria-services.aspx</link><pubDate>Tue, 22 Jun 2010 10:27:37 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:316</guid><dc:creator>Thomas</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Today at a client I had the need to modify the code that RIA Services generates. It is certainly possible, but not as easy as modifying a &lt;a href="http://msdn.microsoft.com/en-us/library/bb126445.aspx" target="_blank"&gt;T4 template&lt;/a&gt;. It turns out you have to derive a class from System.ServiceModel.DomainServices.Server.CodeProcessor. If you put the DomainIdentifierAttribute on your DomainService class, you can specify your own CodeProcessor.&lt;/p&gt;  &lt;p&gt;The CodeProcessor gets an tree with the CodeDOM of the code that is going to be generated. The MSBuild task responsible for generating the code, hands that to your CodeProcessor so you can add, remove or change anything you want. See an example of a CodeProcessor &lt;a href="http://weblogs.thinktecture.com/ingo/2010/06/fixing-ria-servicess-an-entitykey-value-cannot-be-null-with-a-codeprocessor.html" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I’ve read somewhere that the next version of RIA Services is going to support T4 Templates, but for now I can live with it.&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=316" width="1" height="1"&gt;</description></item><item><title>Linq to XML strongly typed: meet Linq to XSD</title><link>http://blogs.oosterkamp.nl/blogs/roland/archive/2010/06/18/linq-to-xml-strongly-typed-meet-linq-to-xsd.aspx</link><pubDate>Fri, 18 Jun 2010 10:22:14 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:315</guid><dc:creator>Roland</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:10pt;"&gt;   &lt;p&gt;Linq to XML is a part of Linq I never did like very much. Everything hangs together with loosely typed strings. For example:&lt;/p&gt;&amp;#160;&amp;#160; &lt;p&gt;var query = from xElem &lt;span&gt;in&lt;/span&gt; doc.Descendants(&lt;span&gt;&amp;quot;Patient&amp;quot;&lt;/span&gt;) &lt;/p&gt;    &lt;p&gt;select &lt;span&gt;new&lt;/span&gt; Patient { EMail = xElem.Attribute(&lt;span&gt;&amp;quot;EMail&amp;quot;&lt;/span&gt;).Value, &lt;/p&gt;    &lt;p&gt; FirstName = xElem.Element(&lt;span&gt;&amp;quot;FirstName&amp;quot;&lt;/span&gt;).Value, &lt;/p&gt;    &lt;p&gt; LastName = xElem.Element(&lt;span&gt;&amp;quot;LastName&amp;quot;&lt;/span&gt;).Value, }; &lt;/p&gt;&amp;#160;&amp;#160; &lt;p&gt;Meet Linq to XSD. Here you use a XML schema to make your queries strongly typed. &lt;/p&gt;    &lt;p&gt;Linq to XSD is still in beta, you can download it at &lt;a href="http://linqtoxsd.codeplex.com/releases/view/41260"&gt;codeplex&lt;/a&gt;. &lt;/p&gt;    &lt;p&gt;There is not yet a clean and mean installer for it. To install, follow the steps posted &lt;a href="http://www.netframeworkdev.com/net-base-class-library/linq-to-xsd-how-to-use-linq-to-xsd-functionality-in-general-application-2782.shtml"&gt;here&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;Just change one thing in the installation procedure, in step 9, change $(SolutionDir) into the folder where you installed the binaries. &lt;/p&gt;    &lt;p&gt;In my case:&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;LinqToXsdBinDir&lt;/span&gt; &lt;span style="color:red;"&gt;Condition&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;#39;$(LinqToXsdBinDir)&amp;#39; == &amp;#39;&amp;#39;&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;c:\LINQTOXSDBIN\&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;LinqToXsdBinDir&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt; &lt;/p&gt;&amp;#160;&amp;#160; &lt;p&gt;&lt;a href="http://blogs.oosterkamp.nl/blogs/roland/image_5702FC31.png"&gt;&lt;img style="border-right-width:0px;margin:10px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" align="left" src="http://blogs.oosterkamp.nl/blogs/roland/image_thumb_16CCE2B7.png" width="239" height="373" /&gt;&lt;/a&gt;Now, just create an XML file and make a schema for it by using the Visual Studio “Create xml schema” button and &lt;/p&gt;    &lt;p&gt;tweak it a bit. If you, like me do not know the syntax by heart, look &lt;a href="http://www.w3schools.com/schema/default.asp"&gt;here&lt;/a&gt;. &lt;/p&gt;    &lt;p&gt;Once you have your schema, you can use an existing one too of course, place it inside the project mentioned in &lt;/p&gt;    &lt;p&gt;the installation guide.&lt;/p&gt;    &lt;p&gt;Be sure to include a “targetNamespace” in your schema:&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:schema&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;attributeFormDefault&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;unqualified&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;elementFormDefault&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;qualified&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns:xs&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;http://www.w3.org/2001/XMLSchema&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;targetNamespace&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;http://www.oosterkamp.nl/conversionconfiguration&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&amp;#160;&amp;#160; &lt;p&gt;Select the xsd file in the project en go to the properties pane. Set the build action to “LinqtoXsdSchema”.&lt;/p&gt;    &lt;p&gt;Now, build your project.&lt;/p&gt;&amp;#160;&amp;#160; &lt;p&gt;There is a new namespace available now. It has the name of the uri specified as targetNamespace, &lt;/p&gt;    &lt;p&gt;but without the http:// prefix and the slashes are dots. &lt;/p&gt;    &lt;p&gt;In my case the namespace is &lt;a href="http://www.oosterkamp.nl.conversionconfiguration"&gt;www.oosterkamp.nl.conversionconfiguration&lt;/a&gt; . &lt;/p&gt;    &lt;p&gt;Ok, maybe this is not the nices feature of Linq to XSD.&lt;/p&gt;&amp;#160;&amp;#160; &lt;p&gt;Inside the namespace is a class. It’s name is the name of your root node. It has a static method called Load, that get’s you to load a xml file. &lt;/p&gt;    &lt;p&gt;The file has to validate with the schema.&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; &lt;a href="http://www.oosterkamp.nl.conversionconfiguration"&gt;www.oosterkamp.nl.conversionconfiguration&lt;/a&gt;;&lt;/p&gt;    &lt;p&gt;..&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#2b91af;"&gt;ConversionConfiguration&lt;/span&gt; xmlData = &lt;span style="color:#2b91af;"&gt;ConversionConfiguration&lt;/span&gt;.Load(&lt;span style="color:#a31515;"&gt;&amp;quot;ConversionConfiguration.xml&amp;quot;&lt;/span&gt;);&lt;/p&gt;&amp;#160;&amp;#160; &lt;p&gt;Now the Linq party can really begin, because everything is strongly typed now. And if you’re used to Linq to SQL or Linq to Entities, &lt;/p&gt;    &lt;p&gt;this works exactly the same, even updating and inserting data!&lt;/p&gt;&amp;#160;&amp;#160; &lt;p&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; repositories = &lt;span style="color:blue;"&gt;from&lt;/span&gt; repository &lt;span style="color:blue;"&gt;in&lt;/span&gt; xmlData.Repositories.Repository&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;select&lt;/span&gt; repository.name;&lt;/p&gt;&amp;#160;&amp;#160; &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Here’s my full xsd:&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xml&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;?&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:schema&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;attributeFormDefault&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;unqualified&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;elementFormDefault&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;qualified&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns:xs&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;http://www.w3.org/2001/XMLSchema&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;targetNamespace&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;http://www.oosterkamp.nl/conversionconfiguration&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:element&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;ConversionConfiguration&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:complexType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:sequence&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:element&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Repositories&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:complexType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:sequence&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:element&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;unbounded&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Repository&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:complexType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:attribute&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;name&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;xs:string&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;use&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;required&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:attribute&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;invariantProviderName&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;xs:string&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;use&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;required&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:attribute&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;connectionString&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;xs:string&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;use&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;required&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:complexType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:element&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:sequence&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:complexType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:element&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:element&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Conversions&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:complexType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:sequence&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:element&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;unbounded&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Conversion&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:complexType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:sequence&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:element&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;LastTimeStampProcessed&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;xs:dateTime&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:sequence&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:attribute&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;repositoryAName&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;xs:string&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;use&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;required&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:attribute&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;respositoryBName&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;xs:string&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;use&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;required&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:attribute&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;tableNameFromRepositoryA&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;xs:string&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;use&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;required&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:attribute&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;tableNameFromRepositoryB&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;xs:string&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;use&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;required&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:attribute&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;fieldNameFromRepositoryA&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;xs:string&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;use&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;required&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:attribute&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;fieldNameFromRepositoryB&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;xs:string&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;use&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;required&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:attribute&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;direction&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;use&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;required&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:simpleType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:restriction&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;base&lt;/span&gt;&lt;span style="color:blue;"&gt; =&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;xs:string&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:enumeration&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt; =&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;fromAtoB&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:enumeration&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt; =&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;bidirectional&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:restriction&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:simpleType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:attribute&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:complexType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:element&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:sequence&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:complexType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:element&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:sequence&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:complexType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:element&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xs:schema&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&amp;#160;&amp;#160; &lt;p&gt;Here’s my full xml file:&lt;/p&gt;&amp;#160;&amp;#160; &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xml&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; ?&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ConversionConfiguration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Repositories&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Repository&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Access&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;invariantProviderName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;dfdf&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;connectionString&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;sdfsdf&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Repository&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Repository&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;SQL&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;invariantProviderName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;dfdf&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;connectionString&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;sdfsdf&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Repository&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Repositories&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Conversions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Conversion&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;repositoryAName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Access&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;respositoryBName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;SQL&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;tableNameFromRepositoryA&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Customers&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;tableNameFromRepositoryB&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Customer&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;fieldNameFromRepositoryA&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Address&lt;/span&gt;&amp;quot;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:red;"&gt;fieldNameFromRepositoryB&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Adres&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;direction&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;fromAtoB&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;LastTimeStampProcessed&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&amp;quot;2010/01/01&amp;quot;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;LastTimeStampProcessed&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Conversion&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Conversion&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;repositoryAName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Access&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;respositoryBName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;SQL&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;tableNameFromRepositoryA&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Orders&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;tableNameFromRepositoryB&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;order&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;fieldNameFromRepositoryA&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;naampje&lt;/span&gt;&amp;quot;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:red;"&gt;fieldNameFromRepositoryB&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;naam&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;direction&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;bidirectional&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;LastTimeStampProcessed&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&amp;quot;2010/01/01&amp;quot;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;LastTimeStampProcessed&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Conversion&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Conversions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ConversionConfiguration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&amp;#160; &lt;/div&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=315" width="1" height="1"&gt;</description></item><item><title>Team Foundation Server (TFS) 2010 installation experience</title><link>http://blogs.oosterkamp.nl/blogs/roland/archive/2010/05/07/team-foundation-server-tfs-2010-installation-experience.aspx</link><pubDate>Fri, 07 May 2010 14:32:50 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:302</guid><dc:creator>Roland</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Having installed TFS 2008, the installation of TFS 2010 is a breeze!&lt;/p&gt;  &lt;p&gt;The problem with the installation of TFS 2008 was, that the security system was very complicated. So complicated that I ended up installing TFS as well as the databases of TFS unwillingly on the same machine. And even that took me days to get it right.&lt;/p&gt;  &lt;p&gt;Now, TFS 2010 has installation wizards. If you want everything (TFS, DBs, Sharepoint integration and Reporting Services integration) on the same machine, choose the standard wizard. Just let TFS know which user account it should use and you’re on your way.&lt;/p&gt;  &lt;p&gt;If, like me, you want your DBs on a DB server, choose the advanced wizard. Make sure the user you are logged in with has admin rights on the SQL server 2008 (yes, 2008 is required for TFS 2010) machine. You’ll probably need a domain account for that. Although this wizard is for “advanced” users it was a breeze in comparison with TFS 2008 installation.&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=302" width="1" height="1"&gt;</description></item><item><title>Updating an entity with related entities in MVC2 and Entity Framework</title><link>http://blogs.oosterkamp.nl/blogs/roland/archive/2010/04/28/updating-an-entity-with-related-entities-in-mvc2-and-entity-framework.aspx</link><pubDate>Wed, 28 Apr 2010 11:36:53 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:301</guid><dc:creator>Roland</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I’ve been working on a way for our website to easily create and update trainings by our employees. The website is using MVC2 with the entity framework. &lt;/p&gt;  &lt;p&gt;Each training entity consists of scalar data and a related entity (foreign key relationship in the db) called MaterialObject, which is the material needed for the training.&lt;/p&gt;  &lt;p&gt;My ViewData class looks like this:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:10pt;"&gt;   &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TrainingEditViewData&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;SelectListItem&lt;/span&gt;&amp;gt; MaterialList { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Training&lt;/span&gt; Training { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The MaterialList collection is the feed for a dropdown list I’m using in my view to select the material. Now my controller as a method to fill the model and to view the view:&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:10pt;"&gt;   &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ActionResult&lt;/span&gt; EditTraining(&lt;span style="color:blue;"&gt;int&lt;/span&gt; id)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;TrainingEditViewData&lt;/span&gt; data = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TrainingEditViewData&lt;/span&gt;();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; data.Training = Adapters.Training.GetByID(id);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; data.MaterialList = GetMaterialSelectList();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; View(data);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;When the form is posted, this method is called:&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:10pt;"&gt;   &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; [&lt;span style="color:#2b91af;"&gt;HttpPost&lt;/span&gt;]&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;//This attribute is needed to prevent an exception about html data originating from the form&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; [&lt;span style="color:#2b91af;"&gt;ValidateInput&lt;/span&gt;(&lt;span style="color:blue;"&gt;false&lt;/span&gt;)]&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ActionResult&lt;/span&gt; EditTraining(&lt;span style="color:#2b91af;"&gt;TrainingEditViewData&lt;/span&gt; viewData)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;Training&lt;/span&gt; training = Adapters.Training.GetByID(viewData.Training.ID);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Adapters.Context.ApplyCurrentValues&amp;lt;&lt;span style="color:#2b91af;"&gt;Training&lt;/span&gt;&amp;gt;(training.EntityKey.EntitySetName, viewData.Training);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; training.MaterialObject = Adapters.Material.GetByID(viewData.Training.MaterialObject.ID);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Adapters.Training.Save();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.TrainingList();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;In MVC, the viewdata object is reconstructed from the data entered in the form. As this is a new object, it is not available in the context. So you could add it to the context. In this case, I don’t want that, the training does already exist.&lt;/p&gt;  &lt;p&gt;So I just use the reconstructed data to retrieve the entity in the context, in this case by using our repository, which just does a linq query for the id specified. The next line is new in EF 4. It takes an object not available in the context and maps the scalar data to the existing object in the context. But it’s just the scalar data, I also need my related entity to be updated, in this case MaterialObject. So I just retrieve that from the context too before I save the whole training.&lt;/p&gt;  &lt;p&gt;The view must reference all data that is to be reconstructed in the viewdata. Even if you don’t have a UI for a certain part of the data, you can easily include a hidden field for it. For example:&lt;/p&gt;  &lt;p&gt;&amp;lt;%: Html.HiddenFor(model =&amp;gt; model.Training.ID) %&amp;gt;&amp;#160; &lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=301" width="1" height="1"&gt;</description></item><item><title>Delphi 2009 resources</title><link>http://blogs.oosterkamp.nl/blogs/erik/archive/2010/04/26/delphi-2009-resources.aspx</link><pubDate>Mon, 26 Apr 2010 07:06:26 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:300</guid><dc:creator>Erik</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Last week I did a Embarcadero Delphi 2009 course. While preparing this course I came to a number of resources on the web. If you need info about Delphi I would recommend the following sites:&lt;/p&gt;  &lt;p&gt;1. Delphi basics. A language reference guide to the OO Delphi language. &lt;a href="http://www.delphibasics.co.uk/"&gt;http://www.delphibasics.co.uk/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2. To download a Delphi Quick Reference Card look here: &lt;a href="http://www.explainth.at/en/qr/dqr.shtml"&gt;http://www.explainth.at/en/qr/dqr.shtml&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3. New Delphi language features since Delphi 7. &lt;a href="http://edn.embarcadero.com/article/34324"&gt;http://edn.embarcadero.com/article/34324&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=300" width="1" height="1"&gt;</description><category domain="http://blogs.oosterkamp.nl/blogs/erik/archive/tags/Delphi/default.aspx">Delphi</category><category domain="http://blogs.oosterkamp.nl/blogs/erik/archive/tags/Embarcadero/default.aspx">Embarcadero</category></item><item><title>Configure Windows to Log in to TFS Automatically</title><link>http://blogs.oosterkamp.nl/blogs/thomas/archive/2010/04/08/configure-windows-to-log-in-to-tfs-automatically.aspx</link><pubDate>Thu, 08 Apr 2010 19:48:45 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:299</guid><dc:creator>Thomas</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;After typing my TFS credentials about a million times, today I finally took the time to figure out how to log on to TFS automatically if the PC that I’m working on is not part of a (or not the same) Active Directory than the TFS server is. Turns out it’s pretty simple: &lt;a href="http://blog.benday.com/archive/2007/10/10/23162.aspx"&gt;http://blog.benday.com/archive/2007/10/10/23162.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Why haven’t I searched for that before?&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=299" width="1" height="1"&gt;</description></item><item><title>Custom ASP.NET MVC2 Data Annotations</title><link>http://blogs.oosterkamp.nl/blogs/erik/archive/2010/04/07/custom-asp-net-mvc2-data-annotations.aspx</link><pubDate>Wed, 07 Apr 2010 14:43:28 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:298</guid><dc:creator>Erik</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This afternoon we did some work to update our corporate site to MVC 2. We are using the new System.ComponentModel.DataAnnotations attributes to decorate our domain entities and by doing so you‘ll get some nice validation for free.&amp;#160; &lt;/p&gt;  &lt;p&gt;Introducing your own Data Annotation attribute for MVC2 is just a matter of creating a derived Class from ValidationAttribute and override the IsValid method.&amp;#160; By default this will be a server-side validator. To change that into a client-side validator takes some effort. The main steps are:&lt;/p&gt;  &lt;p&gt;- Create a new validator Class derived from the generic DataAnnotationsModelValidator&amp;lt;--your custom attribute Class goes in here—&amp;gt; Class.&amp;#160; &lt;br /&gt;- Register the validator and Custom attribute in global.asax.     &lt;br /&gt;- Write a custom JavaScript validation function.&lt;/p&gt;  &lt;p&gt;For all the details I would recommend reading this excellent &lt;a href="http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspx"&gt;article&lt;/a&gt; about ASP.NET MVC 2 Custom validation.&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=298" width="1" height="1"&gt;</description></item><item><title>Custom Dictionary for Code Analysis</title><link>http://blogs.oosterkamp.nl/blogs/thomas/archive/2010/04/06/custom-dictionary-for-code-analysis.aspx</link><pubDate>Tue, 06 Apr 2010 13:42:39 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:297</guid><dc:creator>Thomas</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;At the DevDays 2010 in my session on Building Maintainable Applications, a question came up how to add custom words to Code Analysis. I’ve done that a couple of times, but couldn’t remember it from the top of my had. So, this is just a note-to-self.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Add a XML file (e.g. CustomDictionary.xml) to your project&lt;/li&gt;    &lt;li&gt;Set the Build Action to &lt;strong&gt;CodeAnalysisDictionary&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Set Copy to Output Directory to &lt;strong&gt;Do not copy&lt;/strong&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;If you put the xml file in the root install folder of Visual Studio, it’ll be applied to all projects. Alternatively, you could share a dictionary file using the Add as Link when adding files to a project.&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=297" width="1" height="1"&gt;</description></item><item><title>Software Quality: External versus Internal</title><link>http://blogs.oosterkamp.nl/blogs/thomas/archive/2010/04/06/software-quality-external-versus-internal.aspx</link><pubDate>Tue, 06 Apr 2010 10:01:05 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:296</guid><dc:creator>Thomas</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I’m doing quite a lot of software quality audits lately. Some customers want to know what the quality is of a product that was developed off-shore. Some just want to know how long they should keep developing the current version or if they should start developing a new version in a new environment. Often products that have been around for long have architectures that are not kept into shape. Or new requirements that just won’t fit into the current architecture. Of requirements that are just too hard to do in the current environment, for example communicating with advanced webservices that require certificates, SSL, custom authentication or reliable sessions. For products developed with for example VB6, this is just extremely time-consuming to develop. While this is plain easy in WCF.&lt;/p&gt;  &lt;p&gt;Anyway, whatever the reason is that customers have to request an quality audit, I always first explain to them the difference between what I call the external and internal quality of a software product.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;External quality      &lt;br /&gt;This is the quality of the product that is perceived by the users of the product. This includes the stability of the product, the ease of use of it, the interaction design and the way it conforms to the requirements &lt;/li&gt;    &lt;li&gt;Internal quality     &lt;br /&gt;This is the quality of the source code, the quality of the architecture, the quality of the development process around the product, etc. Anything that is not perceivable by the users of the software.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We at &lt;a href="http://www.oosterkamp.nl/Home.mvc/Index" target="_blank"&gt;Oosterkamp training | consultancy&lt;/a&gt; are specialized in auditing the internal quality of software. We have developed our own techniques for quickly and accurately determining the internal quality of software. For example, we look at how &lt;a href="http://www.amazon.co.uk/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882" target="_blank"&gt;clean the code&lt;/a&gt; is. We also inspect software for possible defects in software using &lt;a href="http://www.ifsq.nl/" target="_blank"&gt;IfSQ&lt;/a&gt;. We look at the architecture of the software, the consistency of used solutions, etc., etc.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.oosterkamp.nl/Info.mvc/Contact" target="_blank"&gt;Call us&lt;/a&gt; if you’re interested in an audit or are interested in reviews of audits we did for our customers.&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=296" width="1" height="1"&gt;</description></item><item><title>Silverlight 4: WebBrowser control</title><link>http://blogs.oosterkamp.nl/blogs/erik/archive/2010/03/04/silverlight-4-webbrowser-control.aspx</link><pubDate>Thu, 04 Mar 2010 08:06:54 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:295</guid><dc:creator>Erik</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The new WebBrowser control in Silverlight 4 is capable of showing HTML content based on a URI or string within your Silverlight application. There are just 2 gotcha’s:&lt;/p&gt;  &lt;p&gt;1. At this moment the WebBrowser control will only work if the application runs in Out of the Browser mode. Like you suspect by the name, in this mode the application doesn’t run in the browser anymore but will run locally like a normal desktop app. You have to enable OOTB mode explicitly in Visual Studio. You’ll find this option in the Silverlight project properties pages.&lt;/p&gt;  &lt;p&gt;2.&amp;#160; During the install the client needs to give the Silverlight application permissions to travel over the web. So there is an extra option you have to set to get this control working. Check the Require elevated trust when running outside the browser option in the Out-of-Browser Settings dialog.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.oosterkamp.nl/blogs/erik/Silverlight4WebBrowser_1D235820.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Silverlight4WebBrowser" border="0" alt="Silverlight4WebBrowser" src="http://blogs.oosterkamp.nl/blogs/erik/Silverlight4WebBrowser_thumb_10490202.png" width="377" height="463" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=295" width="1" height="1"&gt;</description><category domain="http://blogs.oosterkamp.nl/blogs/erik/archive/tags/Silverlight+WPF_2F00_E/default.aspx">Silverlight WPF/E</category><category domain="http://blogs.oosterkamp.nl/blogs/erik/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Security in WCF: TransportWithMessageCredential</title><link>http://blogs.oosterkamp.nl/blogs/roland/archive/2010/02/17/security-in-wcf-transportwithmessagecredential.aspx</link><pubDate>Wed, 17 Feb 2010 15:37:41 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:294</guid><dc:creator>Roland</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This week, I needed to create a client for a webservice created in Java. The webservice has implemented username/password security (in the WS security header) AND a certificate.&lt;/p&gt;  &lt;p&gt;So, in my ignorance, I configured the following binding:&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff" size="1"&gt;&amp;lt;basicHttpBinding&amp;gt;     &lt;br /&gt;&amp;#160; &amp;lt;binding configurationName=&amp;quot;SWMExtendedBasicHttpBinding&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;security mode=&amp;quot;TransportWithMessageCredential&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;transport clientCredentialType = “Certificate”&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;message clientCredentialType =&amp;quot;UserName&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;security&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/binding&amp;gt;      &lt;br /&gt;&amp;lt;/basicHttpBinding&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;And I configured a certificate in a behavior (for the eventual endpoint).&lt;/p&gt;  &lt;p&gt;Turns out that Transport security with WCF just means the secure transport for the binding itself, it this case https, with just the SSL certificate installed on the web server. If you configure Transport security, WCF won’t accept a non-encrypted channel. That’s it.&lt;/p&gt;  &lt;p&gt;So my line &amp;lt;transport clientCredentialType = “Certificate”&amp;gt; is superfluous. My assumption was that the configured certificate in the behavior was taken to do the transport security.&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;The conclusion was that I needed certifcate AND username/password security on the message level. The standard BasicHttpBinding can’t handle that.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;So I created my own custom binding in code with all the properties of the basicHttpBinding:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff" size="1"&gt;BasicHttpBinding bbinding = new BasicHttpBinding(BasicHttpSecurityMode.TransportWithMessageCredential);     &lt;br /&gt;BindingElementCollection bec = bbinding.CreateBindingElements();      &lt;br /&gt;TransportSecurityBindingElement tsp = bec.Find&amp;lt;TransportSecurityBindingElement&amp;gt;();      &lt;br /&gt;HttpsTransportBindingElement httpsBinding = bec.Find&amp;lt;HttpsTransportBindingElement&amp;gt;();      &lt;br /&gt;TextMessageEncodingBindingElement encoding = bec.Find&amp;lt;TextMessageEncodingBindingElement&amp;gt;();      &lt;br /&gt;httpsBinding.RequireClientCertificate = true; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;font color="#0000ff"&gt;CustomBinding binding = new CustomBinding(tsp, encoding, httpsBinding&lt;/font&gt;);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;Notice the RequireClientCertificate property.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;Next: create endpoint, get the certificate from the store and provide credentials to the proxy object, generated from the WSDL:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff" size="1"&gt;EndpointAddress endpoint = new EndpointAddress(&amp;quot;&lt;/font&gt;&lt;a href="https://someurl.com/service&amp;quot;);"&gt;&lt;font color="#0000ff" size="1"&gt;https://someurl.com/service&amp;quot;);&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff" size="1"&gt;X509Store store = new X509Store(StoreLocation.CurrentUser);     &lt;br /&gt;store.Open(OpenFlags.ReadOnly); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff" size="1"&gt;X509Certificate2Collection certCollection = store.Certificates.Find(X509FindType.FindBySubjectName, &amp;quot;CertName&amp;quot;, false); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff" size="1"&gt;Client proxy = new Client(binding, endpoint); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff" size="1"&gt;proxy.ClientCredentials.UserName.UserName = &amp;quot;UserName&amp;quot;;     &lt;br /&gt;proxy.ClientCredentials.UserName.Password = &amp;quot;Password&amp;quot;;      &lt;br /&gt;if (certCollection.Count &amp;gt; 0)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; proxy.ClientCredentials.ClientCertificate.Certificate = certCollection[0];&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;This will generate an exception when the certificate is not assigned, because of the RequireClientCertificate setting above.&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=294" width="1" height="1"&gt;</description></item><item><title>ASP.Net 4.0 new page attributes found in web.config</title><link>http://blogs.oosterkamp.nl/blogs/erik/archive/2010/02/17/asp-net-4-0-new-page-attributes-found-in-web-config.aspx</link><pubDate>Wed, 17 Feb 2010 13:53:14 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:292</guid><dc:creator>Erik</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Today I converted an ASP.NET 2.0 webapplication to 4.0 using Visual Studio 2010 RC.&amp;#160; The convert process ran quite smoothly. After the conversion I discovered two new attributes in the pages tag of the converted web.config file, curious?&lt;/p&gt;  &lt;p&gt;1. controlRenderingCompatibilityVersion=&amp;quot;3.5&amp;quot;&lt;/p&gt;  &lt;p&gt;Default HTML rendering of web server controls will be according the rendering of the controls in the version 3.5 of the .NET framework.&amp;#160; The minimum value of this attribute is 3.5. More info on &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.configuration.pagessection.controlrenderingcompatibilityversion(VS.100).aspx"&gt;MSDN&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2. clientIDMode=&amp;quot;AutoID&amp;quot;&lt;/p&gt;  &lt;p&gt;ASP.NET 4.0 gives the power to control how id’s are generated in the rendered HTML of web server controls. And that is a good thing. For compatibility reasons it’s set to AutoID here so it will be the same as always. More info on &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.configuration.pagessection.clientidmode(VS.100).aspx"&gt;MSDN&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=292" width="1" height="1"&gt;</description></item><item><title>Hosting website for Silverlight Application.</title><link>http://blogs.oosterkamp.nl/blogs/erik/archive/2010/01/22/hosting-website-for-silverlight-application.aspx</link><pubDate>Fri, 22 Jan 2010 09:00:05 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:291</guid><dc:creator>Erik</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;When you create a new Silverlight Application in Visual Studio a dialog box comes up with an option to host the application in an ASP.NET Web Application. When you check this option a ASP.NET Web Application project will be added next to the Silverlight application in your VS solution and the .xap output of the SL is copied automatically for you in the /ClientBin folder of the ASP.NET web application when you build the complete solution. Cool, flex, everything fine.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.oosterkamp.nl/blogs/erik/DemoSilverlight1_10E4E0C5.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="DemoSilverlight1" border="0" alt="DemoSilverlight1" src="http://blogs.oosterkamp.nl/blogs/erik/DemoSilverlight1_thumb_5E14DA50.png" width="382" height="341" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;But…What if you decided to deselect this option and you regret this later on..&lt;/p&gt;  &lt;p&gt;No problem, it’s always possible to add a hosting ASP.NET Web application later on:&lt;/p&gt;  &lt;p&gt;1. Just add a ASP.NET Web Application project to your Solution   &lt;br /&gt;2. Go to the property pages of this application (Right click on project in Solution Explorer | Properties)    &lt;br /&gt;3. Select the Silverlight Applications tab    &lt;br /&gt;4. Off you go.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.oosterkamp.nl/blogs/erik/DemoSilverlight2_7C12E844.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="DemoSilverlight2" border="0" alt="DemoSilverlight2" src="http://blogs.oosterkamp.nl/blogs/erik/DemoSilverlight2_thumb_71921424.png" width="604" height="414" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=291" width="1" height="1"&gt;</description></item><item><title>MVP C# in 2010</title><link>http://blogs.oosterkamp.nl/blogs/thomas/archive/2010/01/01/mvp-c-in-2010.aspx</link><pubDate>Fri, 01 Jan 2010 21:16:46 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:290</guid><dc:creator>Thomas</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I was notified today by email that Microsoft awarded me the 2010 Microsoft MVP Award for C#. &lt;/p&gt;  &lt;p&gt;Just great! &lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=290" width="1" height="1"&gt;</description></item><item><title>Invoking an ICommand</title><link>http://blogs.oosterkamp.nl/blogs/jowen/archive/2009/12/30/invoking-an-icommand.aspx</link><pubDate>Wed, 30 Dec 2009 18:40:08 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:289</guid><dc:creator>Jo-wen</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I wanted to reuse the logic of a Command defined in another usercontrol. &lt;/p&gt;  &lt;p&gt;The simple solution would be to create a separate, public method which I then could call from outside the control (and call this method in the Execute eventhandler).&lt;/p&gt;  &lt;p&gt;A more clean way is to directly invoke the Command!&lt;/p&gt;  &lt;p&gt;The ICommand interface supports the Execute(object parameter) method.&lt;/p&gt;  &lt;p&gt;I expose my commands as static properties, so I can have this code:&lt;/p&gt;  &lt;p&gt;SearchCommands.FilterProduct.Execute(null, SearchControl);&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I don’t have to reference the commandBinding collection of the search control, which is very clean!&lt;/p&gt;  &lt;p&gt;You can/must specify the input-element with the implementation you want to invoke..... &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/mikehillberg/archive/2009/03/20/icommand-is-like-a-chocolate-cake.aspx"&gt;more info&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=289" width="1" height="1"&gt;</description><category domain="http://blogs.oosterkamp.nl/blogs/jowen/archive/tags/WPF/default.aspx">WPF</category></item><item><title>WPF &amp; xaml guidelines</title><link>http://blogs.oosterkamp.nl/blogs/jowen/archive/2009/12/30/wpf-amp-xaml-guidelines.aspx</link><pubDate>Wed, 30 Dec 2009 18:10:00 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:288</guid><dc:creator>Jo-wen</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Wpf and xaml has been out for a while now, so the community already knows the do’s and don’ts of programming in xaml.&lt;/p&gt;  &lt;p&gt;Thankfully, there are always some nice people who share this stuff with us.&lt;/p&gt;  &lt;p&gt;This is &lt;a href="http://dotnet.org.za/rudi/archive/2009/01/13/xaml-guidelines-released.aspx"&gt;a good resource&lt;/a&gt; and starting point. It also includes links to the channel 9 videos that give you some background info on the rationale of these guidelines.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Some other guidelines/info:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa511329.aspx"&gt;Designing with WPF&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd458877.aspx"&gt;XAML Guidelines for Creating a Composite UI&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=288" width="1" height="1"&gt;</description><category domain="http://blogs.oosterkamp.nl/blogs/jowen/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.oosterkamp.nl/blogs/jowen/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>MSTest: Cannot start more than one local run</title><link>http://blogs.oosterkamp.nl/blogs/thomas/archive/2009/12/22/mstest-cannot-start-more-than-one-local-run.aspx</link><pubDate>Tue, 22 Dec 2009 11:44:22 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:287</guid><dc:creator>Thomas</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;When I run my tests in Visual Studio and one or more tests fail, I hit the Debug Selected Test so see what is going on. But at times, I get this error message:   &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://blogs.oosterkamp.nl/blogs/thomas/image_7F28321E.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://blogs.oosterkamp.nl/blogs/thomas/image_thumb_258A156A.png" width="244" height="133" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I don’t know what trigger this, but I had to restart Visual Studio to be able to Run or Debug tests again. After some searching on the net, I found out that there’s some sort of communication error between Visual Studio and the executable that actually runs the tests. So my resolution now is to kill that process and try again. The name of the executable to look for is VSTestHost.exe. Kill the process and you’re good to go…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.oosterkamp.nl/blogs/thomas/image_3E19B2BA.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://blogs.oosterkamp.nl/blogs/thomas/image_thumb_00C8D826.png" width="613" height="605" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=287" width="1" height="1"&gt;</description></item><item><title>Free Refactoring eBook</title><link>http://blogs.oosterkamp.nl/blogs/erik/archive/2009/12/18/free-refactoring-ebook.aspx</link><pubDate>Fri, 18 Dec 2009 08:55:38 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:286</guid><dc:creator>Erik</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This year I spend a lot of time working on an .NET ERP System with a bunch of nice colleagues. Wrote a couple of hundred unit tests, did dozens of code reviews and even more refactorings. My favorite and most used refactoring must be Refactoring Day 7 : Rename (method, class,parameter) in Pablo’s 31 days of Refactoring eBook.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.lostechies.com/content/pablo_ebook.aspx"&gt;http://www.lostechies.com/content/pablo_ebook.aspx&lt;/a&gt; (Download for free)&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=286" width="1" height="1"&gt;</description></item><item><title>Grid Size Sharing WPF</title><link>http://blogs.oosterkamp.nl/blogs/jowen/archive/2009/12/16/grid-size-sharing-wpf.aspx</link><pubDate>Wed, 16 Dec 2009 21:32:00 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:285</guid><dc:creator>Jo-wen</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The other day, I had to show different datatemplates depending on a specific property value. (The &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.datatemplateselector.aspx"&gt;datatemplateSelector&lt;/a&gt; is your friend!)&lt;/p&gt;  &lt;p&gt;I used different foreground colors to visualize the states; however, the layout design was the same for each datatemplate.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I was using a Grid, and wanted to share the columnWidth’s and RowHeight’s. &lt;/p&gt;  &lt;p&gt;My first solution was specifying a double constant in xaml. Unfortunately, this doesn’t work out of the box. You would need to have a DoubleToGridLengthConverter.&lt;/p&gt;  &lt;p&gt;Then, after some searching I found this &lt;a href="http://msdn.microsoft.com/en-us/library/ms771508.aspx"&gt;Grid Size Sharing&lt;/a&gt; sample!&lt;/p&gt;  &lt;p&gt;Basically, you have to define the attached Grid.IsSharedSizeScope on the container element to set the scope of the shared sizes.&lt;/p&gt;  &lt;p&gt;Then when you set the SharedSizeGroup on a row/column definition (together with the width/height of course), other definitions with the same name will automagically adjust as well.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;nice!&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=285" width="1" height="1"&gt;</description><category domain="http://blogs.oosterkamp.nl/blogs/jowen/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.oosterkamp.nl/blogs/jowen/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Check some (runtime) characteristics of a dependency property</title><link>http://blogs.oosterkamp.nl/blogs/jowen/archive/2009/12/11/check-some-runtime-characteristics-of-a-dependency-property.aspx</link><pubDate>Fri, 11 Dec 2009 16:52:48 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:284</guid><dc:creator>Jo-wen</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;It&amp;#39;s pretty easy to inherit from an existing control in WPF.&lt;/p&gt;  &lt;p&gt;For instance, &lt;a href="http://blog.catenalogic.com/"&gt;this great programmer&lt;/a&gt; I know has written an &lt;a href="http://blog.catenalogic.com/post/2009/10/22/WPF-ComboBoxEx.aspx"&gt;extended combobox&lt;/a&gt;. It has extra functionality, like:&lt;/p&gt;  &lt;p&gt;* Automatically select the value if only one item is available in the items source;&lt;/p&gt;  &lt;p&gt;* Disable the control when no items are in the items source;&lt;/p&gt;  &lt;p&gt;So, there&amp;#39;s logic in the inherited class that manages the IsEnabled property. &lt;/p&gt;  &lt;p&gt;Flexibility must remain, so consumers of this control should still be able to set the IsEnabled property, and overrule the default logic.&lt;/p&gt;  &lt;p&gt;Here&amp;#39;s a way to programmatically check if the property has been set:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;if (DependencyPropertyHelper.GetValueSource(this, ComboBox.IsEnabledProperty).BaseValueSource == BaseValueSource.Default)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;{&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IsEnabled = !(IsDisabledWhenItemsSourceIsEmpty &amp;amp;&amp;amp; (_customItemsSource.Count == 0));&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.dependencypropertyhelper.getvaluesource.aspx"&gt;&lt;font face="ta"&gt;More info&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=284" width="1" height="1"&gt;</description><category domain="http://blogs.oosterkamp.nl/blogs/jowen/archive/tags/WPF/default.aspx">WPF</category></item><item><title>When not implementing the ConvertBack method…</title><link>http://blogs.oosterkamp.nl/blogs/jowen/archive/2009/12/10/when-not-implementing-the-convertback-method.aspx</link><pubDate>Thu, 10 Dec 2009 20:33:48 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:283</guid><dc:creator>Jo-wen</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I really like WPF converters. I often don’t need the ConvertBack method though.&lt;/p&gt;  &lt;p&gt;Most programmers deal with this by leaving the &lt;font face="Courier New"&gt;throw new NotImplementedException() , &lt;/font&gt;or they return null.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I also see this method being marked with the [Obsolete()]&amp;#160; attribute. I think this totally gives you the wrong impression that it should not be used anymore.&lt;/p&gt;  &lt;p&gt;The attribute is used to inform &lt;u&gt;programmers&lt;/u&gt; , not the databinding system.&lt;/p&gt;  &lt;p&gt;And of course, the method is still valid and might get a different implementation later on.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Check out the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.dependencyproperty.unsetvalue.aspx"&gt;DependencyProperty.UnsetValue&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=283" width="1" height="1"&gt;</description><category domain="http://blogs.oosterkamp.nl/blogs/jowen/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.oosterkamp.nl/blogs/jowen/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Chad Hower’s story</title><link>http://blogs.oosterkamp.nl/blogs/thomas/archive/2009/12/08/chad-hower-s-story.aspx</link><pubDate>Tue, 08 Dec 2009 11:08:39 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:282</guid><dc:creator>Thomas</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A friend of mine, Chad Hower aka Kudzu, is in trouble. Chad has developed many internet-related components for Delphi, with Indy (being shipped with Delphi) being the most well known. Chad is also a speaker and writer and now works for Microsoft. He’s accused of kidnapping his son. Although there’s really strong evidence that it’s totally impossible for him to have done so. For example, how can you kidnap a son you have custody over? It’s a heartbreaking and quite unbelievable story. Watch the 5 minute at &lt;a href="http://www.freechad.org"&gt;www.freechad.org&lt;/a&gt; and spread the word!&lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=282" width="1" height="1"&gt;</description></item><item><title>WPF vs Silverlight</title><link>http://blogs.oosterkamp.nl/blogs/jowen/archive/2009/12/06/wpf-vs-silverlight.aspx</link><pubDate>Sun, 06 Dec 2009 20:38:09 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:281</guid><dc:creator>Jo-wen</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Last week, I was giving a Silverlight training in the beautiful Bergen (Norway). &lt;/p&gt;  &lt;p&gt;I have WPF experience, but I was still struggling with some demo’s because of its differences with Silverlight.&lt;/p&gt;  &lt;p&gt;Silverlight is supposed to be a subset of WPF but that’s not the case (yet). Silverlight even has functionalities that are not in WPF (yet), like the Visual State Manager.&lt;/p&gt;  &lt;p&gt;There’s a nice &lt;a href="http://wpfslguidance.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28278"&gt;whitepaper&lt;/a&gt; that describes these differences. &lt;/p&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=281" width="1" height="1"&gt;</description><category domain="http://blogs.oosterkamp.nl/blogs/jowen/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.oosterkamp.nl/blogs/jowen/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>WPF above the polar circle</title><link>http://blogs.oosterkamp.nl/blogs/roland/archive/2009/12/01/wpf-above-the-polar-circle.aspx</link><pubDate>Tue, 01 Dec 2009 20:50:01 GMT</pubDate><guid isPermaLink="false">6da500ce-fa22-46ef-b417-4864733669f6:280</guid><dc:creator>Roland</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://blogs.oosterkamp.nl/blogs/roland/300pxWorld_map_with_polar_circles.svg_0EFF7B1F.png"&gt;&lt;img style="border-right-width:0px;margin:0px 10px 0px 0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="300px-World_map_with_polar_circles.svg" border="0" alt="300px-World_map_with_polar_circles.svg" align="left" src="http://blogs.oosterkamp.nl/blogs/roland/300pxWorld_map_with_polar_circles.svg_thumb_206FDBF7.png" width="244" height="124" /&gt;&lt;/a&gt; Microsoft, heads up. They even know WPF above the polar circle now. &lt;/p&gt;  &lt;p&gt;For a while now, we have a customer in Norway. So my colleagues and I are travelling around the country. For me, it’s my first time in the country and in Scandinavia. So far I’m baffled by the scenery. I’m in &lt;a href="http://en.wikipedia.org/wiki/Bod%C3%B8"&gt;Bodø&lt;/a&gt; now. I’ve never been so far up and for Oosterkamp It’s the first course above the polar circle.&lt;/p&gt;  &lt;p&gt;The funny thing with scenery is that the people in Norway can’t understand that I am staring at a snow covered mountaintop. After a while, they even coming toward you, asking if everything is OK :-)&lt;/p&gt;  &lt;p&gt;The town I’m in now is cold and dark this time of year. Just as the midnight sun is up in summer, the opposite is happening in winter. It’s going to be a bit worse, but it’s “light” for about 4 hours now.&lt;/p&gt;  &lt;p&gt;The icy streets are also exciting if you’re not used to it. While the Norwegians walk like normal, I couldn’t manage to cross the street at first.&lt;/p&gt;  &lt;p&gt;All and all it’s better to stay in my comfy hotel room at nights, catching up on mail, youtube, blogging, editing some websites and preparing some demos for the course. Tomorrow evening is my flight back to Oslo and the next morning back to good old, flat, Holland.&lt;/p&gt;  &lt;p&gt;A video with a view from the building I gave training in is &lt;a href="http://www.youtube.com/watch?v=FZOaQbjAu3g"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:99b33701-4398-46e5-ad49-64972383a3ba" class="wlWriterEditableSmartContent"&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://blogs.oosterkamp.nl/aggbug.aspx?PostID=280" width="1" height="1"&gt;</description></item></channel></rss>