<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-11226342</id><updated>2012-01-25T07:33:11.468+01:00</updated><title type='text'>Dave.Net</title><subtitle type='html'>My very own spot on the internet.
I'll try to post some interesting .Net related articles here.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://davedotnet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11226342.post-2876950262998826874</id><published>2007-09-21T16:57:00.000+02:00</published><updated>2007-09-21T16:58:15.622+02:00</updated><title type='text'>Moving time!</title><content type='html'>I'm going to bring some more life to my blog. And to take a fresh start I have moved my blog to a new provider. &lt;br /&gt;&lt;br /&gt;You can now find me at: &lt;a href="http://www.yourblogs.net/davedotnet/"&gt;http://www.yourblogs.net/davedotnet/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you can see it already contains articles. These are not new articles,  I just copied the entries that still had some value to form my old blog to this new one.&lt;br /&gt;&lt;br /&gt;I already have big plans for an upcomming article, it's going to be one about patterns. And also another one is going to be about SOA or should i say an ESB. Why I mention those together will be explained in the articel, so stay tuned!&lt;br /&gt;&lt;br /&gt;To the people who have me in their links, could you please be so kind and update them? &lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Dave&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11226342-2876950262998826874?l=davedotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davedotnet.blogspot.com/feeds/2876950262998826874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11226342&amp;postID=2876950262998826874' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/2876950262998826874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/2876950262998826874'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/2007/09/moving-time.html' title='Moving time!'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11226342.post-117619108193343685</id><published>2007-04-10T09:37:00.000+02:00</published><updated>2007-09-21T12:54:43.139+02:00</updated><title type='text'>Picasa, 1gb of pictures</title><content type='html'>Last year i was running my personal website via webhost4life, but boy were they slooooow. So this year i didn't want to renew my subscription. So i went searching for something else.&lt;br /&gt;And since 99% of my personal site is just showing pictures to friends, this is what I had to get a solution for first. And i found it!&lt;br /&gt;It's called Picasa, it comes with the goolge pack of software (yes there is an installable part of it). And it works like a charm. Just install the Picasa program, select the folders you want to index with it. And then when you select a folder all you need to do is click the web album button, eh walla you have created a new online album!&lt;br /&gt;And best of al it is free and you get 1 gb of storrage per account.&lt;br /&gt;For the rest of my site i used MSN spaces to link everything together and googl video to store my video's. (also free :-) ).&lt;br /&gt;&lt;br /&gt;If you want to try it just download the google pack.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11226342-117619108193343685?l=davedotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davedotnet.blogspot.com/feeds/117619108193343685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11226342&amp;postID=117619108193343685' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/117619108193343685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/117619108193343685'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/2007/04/picasa-1gb-of-pictures.html' title='Picasa, 1gb of pictures'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11226342.post-117559673250932296</id><published>2007-04-03T12:35:00.000+02:00</published><updated>2007-04-03T12:38:52.636+02:00</updated><title type='text'>Threading in C#</title><content type='html'>Recently I had to implement a threading mechanism for a client. As we all know threading is always a royal pain in the **s.&lt;br /&gt;So for some help from the internet community I went on Google and found this interesting link.&lt;br /&gt;All you ever need to know about threading clearly explained.&lt;br /&gt;It surely helped me out a lot!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.albahari.com/threading/index.html"&gt;http://www.albahari.com/threading/index.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11226342-117559673250932296?l=davedotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davedotnet.blogspot.com/feeds/117559673250932296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11226342&amp;postID=117559673250932296' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/117559673250932296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/117559673250932296'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/2007/04/threading-in-c.html' title='Threading in C#'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11226342.post-116123985869662392</id><published>2006-10-19T08:15:00.000+02:00</published><updated>2006-10-19T08:40:57.403+02:00</updated><title type='text'>Tech-Ed session choice is open</title><content type='html'>Tech-Ed Developers is getting really close now. Today I received the long awaited email that announces the availability to chouse your sessions for the upcoming event. After some careful consideration and a lot of reading (boy there are a lot off sessions again.) this is the list of sessions I will probably attend.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tue, 7 Nov 2006&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;KEY001 - LAUNCH: Windows Vista, the 2007 Office system, and AJAX&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Eric Rudder)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;DEV230 - Developing Rich Web Applications with ASP.NET AJAX&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Shanku Niyogi)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;ARC207 - Introduction to Agile Methodologies and Concepts&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Roy Osherove)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;ARC305 - Connected Systems - Part 2: Communication, Flow, Rules and Logic&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Clemens Vasters, Steve Swartz)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;ARCWD03 - Understanding Service Modeling Language (SML): The SML and Platform&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Pratul Dublish)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#3333ff;"&gt;Welcome Reception&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;strong&gt;Wed, 8 Nov 2006&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;ARC203 - Software as a Service (SaaS): Just another Hype?&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Juergen Pfeifer)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;ARCWD05 - Examining Business Process Management (BPM)&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(David Chappell)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;ARC301 - Connected Systems - Part 4: Presentation and Interactivity&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Clemens Vasters, Steve Swartz)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;ARCWD02 - Enterprise Library for .NET Framework 3.0&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Tom Hollander)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;ARC201 - Patterns and Anti-Patterns for Service-Oriented Architectures (SOA)&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Ron Jacobs)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Thu, 9 Nov 2006&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;ARCWD08 - Service Capsules - A Language and Patterns Perspective on Service Design and Implementation&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Arvindra Sehmi) &lt;/span&gt;&lt;/li&gt;&lt;li&gt;ARC302 - Connected Systems - Part 5: Identity and Access Management&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Clemens Vasters, Steve Swartz) &lt;/span&gt;&lt;/li&gt;&lt;li&gt;DEV316 - An Implementation of Windows Cardspace&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Steve Plank) &lt;/span&gt;&lt;/li&gt;&lt;li&gt;ARCWD04 - Introducing the Service Factory&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Don Smith) &lt;/span&gt;&lt;/li&gt;&lt;li&gt;ARC309 - Security is a Feature - Best Practices for Designing Secure Distributed .NET Applications&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Dominick Baier)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Fri, 10 Nov 2006&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;DEV403 - Optimizing Performance and Scalability of Distributed .NET Applications&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Ingo Rammer) &lt;/span&gt;&lt;/li&gt;&lt;li&gt;ARC209 - Microsoft Solutions Framework 4.0 Core and its Family&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Rafal Lukawiecki)&lt;/span&gt; &lt;/li&gt;&lt;li&gt;ARC206 - Abstract Concepts: Architecting Applications for a Service-Oriented World&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Beat Schwegler) &lt;/span&gt;&lt;/li&gt;&lt;li&gt;ARCWD06 - Iron Architect Finals&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Beat Schwegler, Ron Jacobs, Juergen Pfeifer, Arvindra Sehmi)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I've made my choice, although some things might still change because...hey, it is still a couple of weeks away :-)&lt;br /&gt;Hope to see you all there.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11226342-116123985869662392?l=davedotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davedotnet.blogspot.com/feeds/116123985869662392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11226342&amp;postID=116123985869662392' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/116123985869662392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/116123985869662392'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/2006/10/tech-ed-session-choice-is-open.html' title='Tech-Ed session choice is open'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11226342.post-114914377733235432</id><published>2006-06-01T08:14:00.000+02:00</published><updated>2006-06-01T08:36:17.343+02:00</updated><title type='text'>Installing a Loopback Adaptor in Windows Vista</title><content type='html'>This week I installed Windows Vista Beta 2 on my laptop.&lt;br /&gt;And much to my surprise it went very smooth. The only thing that I still have problems with is the integrated Bluetooth module on my HP. But I'm leaving it like it is for now.&lt;br /&gt;The next step that I wanted to do is to install Virtual Server and create a Team foundation server on it.&lt;br /&gt;So I did. And of course I need to be able to connect to it over network. But since I'm working disconnected from any company network most of the time and I need 2 way communication between host (my visual studio development machine) and client (the virtual Team foundation server), I found out on previous installations (XP + WS2003) that the best way to do this is add a loop back adaptor to the host and make both machines connect to it.&lt;br /&gt;So I set off to add a loop back adaptor to my Vista host like I did so many times before on my XP installs.&lt;br /&gt;Add Hardware -&gt; Install manually -&gt; Network Adaptor -&gt; ... euhm, damn I should be able to select Microsoft as a manufacturer here, but the list is empty!?!&lt;br /&gt;&lt;br /&gt;So after some searching the net I found this nifty little tool called devcon.&lt;br /&gt;This tool allows you add devices from cmd line. And it works like this:&lt;br /&gt;&lt;br /&gt;Download the DevCon compressed file, and then extract the files:&lt;br /&gt;a. Visit the following Microsoft Web site for download: &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q311272"&gt;DevCon&lt;/a&gt;&lt;br /&gt;b. Save the Devcon.exe file to a folder on your computer, and then open the folder.&lt;br /&gt;c. Double-click Devcon.exe.&lt;br /&gt;d. In the Unzip to path box, type the folder where you want to unzip the files, and then click Unzip.&lt;br /&gt;e. Click OK, and then Close to complete the unzip process.&lt;br /&gt;&lt;br /&gt;2. Install the Microsoft Loopback Adapter:&lt;br /&gt;a. At a command prompt, change directory to the folder where you extracted the DevCon files.&lt;br /&gt;b. Change directory to the i386 folder.&lt;br /&gt;c. Type devcon.exe install %windir%\inf\netloop.inf *msloop, and then press ENTER. You see output that is similar to the following:&lt;br /&gt;Device node created. Install is complete when drivers are updated...&lt;br /&gt;Updating drivers for *msloop from C:\WINDOWS\inf\netloop.inf.&lt;br /&gt;Drivers updated successfully.&lt;br /&gt;&lt;br /&gt;And behold, it works!&lt;br /&gt;Now all you need to do is assign both the host and the guest a static Ip in the same subnet mask and you're in business!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11226342-114914377733235432?l=davedotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davedotnet.blogspot.com/feeds/114914377733235432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11226342&amp;postID=114914377733235432' title='189 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/114914377733235432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/114914377733235432'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/2006/06/installing-loopback-adaptor-in-windows.html' title='Installing a Loopback Adaptor in Windows Vista'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>189</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11226342.post-114804847673359776</id><published>2006-05-19T16:14:00.000+02:00</published><updated>2006-05-19T16:21:16.743+02:00</updated><title type='text'>Visual Studio 2005 Team Foundation Server</title><content type='html'>This week I’ve been working on an install of TFS on a virtual server. &lt;br /&gt;Following the walkthrough it worked out very well. Got everything up and running.&lt;br /&gt;And I can even connect to my team server and create a project. &lt;br /&gt;Ok now, back to the host and fire up Visual studio from there, connect to team server, whoops enter user account....damn I did not set it up as a domain controller.&lt;br /&gt;Ok, now worries let's promote it to a domain controller. &lt;br /&gt;Well my Team foundation server didn't think so. After a lot of fiddling and some not so nice words addressed to my computer later I decided to reinstall everything. Because I couldn't get the Reporting service back up and running after the promotion.&lt;br /&gt;&lt;br /&gt;Oh and another thing that they could mention in the Administration Guide. You must add your user to the Licensed Users group. Otherwise you can't connect with a user other than the one you were installing with.&lt;br /&gt;&lt;br /&gt;But it is up and running now, so I'm off having some fun with designing templates and stuff :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11226342-114804847673359776?l=davedotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davedotnet.blogspot.com/feeds/114804847673359776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11226342&amp;postID=114804847673359776' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/114804847673359776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/114804847673359776'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/2006/05/visual-studio-2005-team-foundation.html' title='Visual Studio 2005 Team Foundation Server'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11226342.post-114319427297307800</id><published>2006-03-24T10:19:00.000+01:00</published><updated>2006-03-24T10:58:18.813+01:00</updated><title type='text'>SQL 2005 Standard edition</title><content type='html'>As you can read in my previous post I went to the launch Event of VS 2005. &lt;br /&gt;At this event we got some free products and among them was a license of SQL Server 2005 Standard edition. &lt;br /&gt;Now, lately I was playing around a bit with dotnetnuke. Building custom modules and stuff. Great thing to play with btw. &lt;br /&gt;And at one point I needed to export a table to a text file to be able to generate reference data for the deployment package of my first custom module. &lt;br /&gt;So I fire up the export data task in SQL Server and it starts asking me a bunch of questions, such as source, target, delimiter, ect... &lt;br /&gt;After all steps are completed I hit the execute button.&lt;br /&gt;And BANG, error. It seems that my product version is insufficient to perform the task. wft? &lt;br /&gt;You can't do exports to flat file from SQL Server 2005 Standard edition?&lt;br /&gt;Ok I get that the standard edition is not the most complete of them all, but a simple export to a text file? I have to be missing something here....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11226342-114319427297307800?l=davedotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davedotnet.blogspot.com/feeds/114319427297307800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11226342&amp;postID=114319427297307800' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/114319427297307800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/114319427297307800'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/2006/03/sql-2005-standard-edition.html' title='SQL 2005 Standard edition'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11226342.post-113049918698798181</id><published>2005-10-28T13:29:00.000+02:00</published><updated>2005-10-28T13:33:06.996+02:00</updated><title type='text'>Visual Studio 2005 Launch Event</title><content type='html'>are you going??&lt;br /&gt;&lt;br /&gt;Well I am. It is probably going to be a cool party, with dinner and everything.&lt;br /&gt;oh yes, and a couple of products will be release to.. :-)&lt;br /&gt;&lt;br /&gt;The link you ask?&lt;br /&gt;&lt;a href="http://www.microsoft.com/belux/nl/events/ready/default.aspx"&gt;Launch Event&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11226342-113049918698798181?l=davedotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davedotnet.blogspot.com/feeds/113049918698798181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11226342&amp;postID=113049918698798181' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/113049918698798181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/113049918698798181'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/2005/10/visual-studio-2005-launch-event.html' title='Visual Studio 2005 Launch Event'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11226342.post-112850017391742684</id><published>2005-10-05T10:08:00.000+02:00</published><updated>2005-10-05T10:16:13.923+02:00</updated><title type='text'>Test an internal class in .Net?</title><content type='html'>I recently ran into this problem. Like most of you we have separate projects for our unit tests. And off course we also have a helper to test private functions using reflection. &lt;br /&gt;But how do you test an internal class? &lt;br /&gt;The helper we have won't suffice. Because it needs an instance of the called class. So how do we do this? Again using reflection? Hmmm..&lt;br /&gt;Well the solution is surprisingly easy.&lt;br /&gt;We will link the internal class to our Test project. &lt;br /&gt;To do this go to &lt;em&gt;Add Existing Item&lt;/em&gt; -&gt; Select File you wish to Link.&lt;br /&gt;Now instead of clicking on the &lt;em&gt;Open&lt;/em&gt; button, which will make a copy of the file in your project and we don't want that, click on the Drop Down and select &lt;em&gt;Link file&lt;/em&gt;.&lt;br /&gt;This will link the selected file to your test project, this way you can use the internal class, but the file is not actually copied to your Test project. And thus, code changes will automatically be used.&lt;br /&gt;Easy, isn't it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11226342-112850017391742684?l=davedotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davedotnet.blogspot.com/feeds/112850017391742684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11226342&amp;postID=112850017391742684' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/112850017391742684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/112850017391742684'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/2005/10/test-internal-class-in-net.html' title='Test an internal class in .Net?'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11226342.post-112253653973001984</id><published>2005-07-27T19:54:00.000+02:00</published><updated>2005-07-28T09:47:13.060+02:00</updated><title type='text'>The behaviors of Indigo.</title><content type='html'>Or should I say the behaviors of Windows Communication Foundation. Cause that is the official name now for Indigo.&lt;br /&gt;It's been a while since I wrote my last article, but I promised a follow up in the piece about contracts in Indigo so here we go.&lt;br /&gt;Most things in indigo are about outside communication. But there are also parts of Indigo that do there work internally. These things control the behavior of the service, hence the name Behaviors :-)&lt;br /&gt;In Indigo you can specify 2 types of behaviors. The first attribute controls the service as a whole. This attribute is called ServiceBehavior. It has for example a property called ConcurrencyMode, this can be used to control concurrent access to the service.&lt;br /&gt;The second behavior attribute controls the behavior of a method. A method implements an operation hence the name of the attribute OperationBehavior.&lt;br /&gt;It can controle the impersonation, the transaction handling and other things. We will go into the transactions a bit deeper.&lt;br /&gt;Transactions is a verry important part of Indigo. And, as said, one way is to controlle the transactional requirements thru the OperationBehavior of methods.&lt;br /&gt;An example:&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;using System.ServiceModel;&lt;br /&gt;[ServiceContract]&lt;br /&gt;class XactOperations&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;[OperationContract]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public int Add(int value1, int value2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return value1 + value2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;[OperationContract]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;[OperationBehavior(RequireTransaction=true, &amp;nbsp;&amp;nbsp;&amp;nbsp;AutoCompleteTransaction=true)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;int Update(int value1, int value2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Insert value1 and value2 into&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// two different databases&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;In this example the behavior attribute stipulates that this operation requires a transaction and that it should use autocomplete.&lt;br /&gt;If we call this method from a client that is not using a transaction the method will run inside it's own transaction. But what is we want to use a transaction that is already started? Well then we need to specify that our component can receive a transaction context. This is accomplished by adding the TransactionFlowAllowed property to the OperationContract. See my article about contracts for some more info in contracts in general.&lt;br /&gt;Transaction support is not limited to the indigo platform. It will support transactions as long as the other system implements the WS-AtomicTransaction specification.&lt;br /&gt;As you can see, playing with these attributes is powerful and easy. No coding mumbo-jumbo, just attributes. Can it get any easier?&lt;br /&gt;The more I read about it the more eager I am to write an example app that uses indigo. Maybe for a next article? :-)&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11226342-112253653973001984?l=davedotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davedotnet.blogspot.com/feeds/112253653973001984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11226342&amp;postID=112253653973001984' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/112253653973001984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/112253653973001984'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/2005/07/behaviors-of-indigo.html' title='The behaviors of Indigo.'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11226342.post-111839071842339143</id><published>2005-06-10T09:58:00.000+02:00</published><updated>2005-06-10T10:05:18.430+02:00</updated><title type='text'>XML Comments in C#</title><content type='html'>Today I was searching for the XML-tag to force NDoc to use a new line in help generation from an XML File. Asking around, nobody knew the answer so, on to google.&lt;br /&gt;&lt;br /&gt;And yesss, google provided the answer. It's &lt;para&gt;, this creates a new paragraph.&lt;br /&gt;&lt;br /&gt;While searching I stumbled upon an interesting article about XML Comments. This article was written by Andrew Schafer and it can be found here &lt;a href="http://msdn.microsoft.com/msdnmag/issues/02/06/XMLC/default.aspx"&gt;http://msdn.microsoft.com/msdnmag/issues/02/06/XMLC/default.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm still very busy with the young new life that joined my wife and I, but I promise that I will write an article again soon.&lt;br /&gt;&lt;br /&gt;Greets,&lt;br /&gt;Dave&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11226342-111839071842339143?l=davedotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davedotnet.blogspot.com/feeds/111839071842339143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11226342&amp;postID=111839071842339143' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/111839071842339143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/111839071842339143'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/2005/06/xml-comments-in-c.html' title='XML Comments in C#'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11226342.post-111321281515819380</id><published>2005-04-11T11:39:00.000+02:00</published><updated>2005-04-11T11:46:55.160+02:00</updated><title type='text'>GateKeeper test</title><content type='html'>On may 2 Microsoft launches a new Gatekeeper competition, the previous match was held in The Netherlands only. But now it is open to the world!! So feel up to the challenge?&lt;br /&gt;Then register yourself on &lt;a href="http://www.gatekeepertest.com/"&gt;http://www.gatekeepertest.com&lt;/a&gt; . And prove that you are the top in IT security!&lt;br /&gt;&lt;br /&gt;I look forward to the competition :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11226342-111321281515819380?l=davedotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davedotnet.blogspot.com/feeds/111321281515819380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11226342&amp;postID=111321281515819380' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/111321281515819380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/111321281515819380'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/2005/04/gatekeeper-test.html' title='GateKeeper test'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11226342.post-111087727093920648</id><published>2005-03-15T08:24:00.000+01:00</published><updated>2005-03-15T10:44:57.903+01:00</updated><title type='text'>Indigo: Contracts?</title><content type='html'>Well you all have probably heard about indigo by now. Some of you maybe think: What's the big deal, just throw msmq, webservices, remoting and some other stuff together and tata: indigo.&lt;br /&gt;But it's more then that. And one interesting feature, at least one that I consider interesting, is contracts. The Indigo framework has 3 major parts.&lt;br /&gt;Messaging, this contains a bunch of possible messaging channels (SOAP, TCP, Queue,...) and encoders (binary and XML).&lt;br /&gt;Service model, contains behaviors (Error, transaction, instance,...) and facilities ( inspection, control)&lt;br /&gt;And the last part, contracts. This is what I want to talk about in this article.&lt;br /&gt;Indigo messaging works with endpoints. From endpoint to endpoint. And to define an endpoint we need three things, one an address: where is the endpoint? Two, a binding: how do I get to the endpoint? And three a contract: what is the endpoint?&lt;br /&gt;&lt;br /&gt;Contracts are used to specify how an endpoint is described to the outside world. It provides an external view or representation.&lt;br /&gt;Indigo has 3 types of contracts. Data contracts, message contracts and service contracts.&lt;br /&gt;&lt;br /&gt;A service contract provides an external representation over a message. It is what we used to know as an interface.&lt;br /&gt;A small example of a service contract:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;[ServiceContract (Name = “MyServiceContract”)] &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;public interface IMyServiceContract &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;{&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;[OperationContract (Name = “CalculateSomething”)]&lt;br /&gt;void CalculateSomething(double number1, double number2, string operator);&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;[OperationContract (IsOneWay = true)]&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;void DifficultCalculate(double number1, double number2, string[] operators);&lt;br /&gt;}&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;And then the corresponding class:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;public class OrderService : IOrderContract &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;{&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;void CalculateSomething(double number1, double number2, string operator)&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;{ // Some code... } &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;void DifficultCalculate(double number1, double number2, string[] operators) &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;{ // Some code... } &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;This is what a service contract should look like. If you look closely, you will notice that I supplied the IsOneWay=True attribute in the second method. By default indigo does synchronized communication, but by specifying IsOneWay i tell it that this is a one way communication so the caller will not wait for the method to finish (async).&lt;br /&gt;The second type of contract I mentioned was message contracts.&lt;br /&gt;Message contracts specify how your message looks like. A message contract has a distinction between the body and the header of a message. It specializes a data contract. Logically it is SOAP, but physically it is CLR.&lt;br /&gt;An example:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;[MessageContract(Action =“http://calculationrequest ”)] &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;public sealed class CalculationRequest&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;{&lt;br /&gt;[MessageHeader]&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;internal Guid RequestId;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;[MessageHeader( &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;Namespace = &lt;/span&gt;&lt;/em&gt;&lt;a href="http://calculator"&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;http://calculator&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;,&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;Name = "MyCalc",&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;MustUnderstand = true,&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;Relay = false,&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;Actor = &lt;/span&gt;&lt;/em&gt;&lt;a href="http://calcactor"&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;http://calcactor&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;,&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;Position = 2)&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;] &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;internal Guid SessionId;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;[MessageBody]&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;public List&lt;string&gt; Operators;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;[MessageBody(Namespace = &lt;/span&gt;&lt;/em&gt;&lt;a href="http://calculator/"&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;http://calculator&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;, Name = "localcalculator", Position = 2)]&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;public string OptionalData;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;[MessageHeaders]&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;IList&lt;xmlelement&gt; UnknownHeaders; &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Now for the third kind of contract; data contracts. Data contracts represent the structural schema of your data. It has a new explicit model for serializable types and is fully interoptable with the [Serializable] flag and ISerializable. Another cool trick is that it is version resilient by default.&lt;br /&gt;Again, a small example of what a data contract looks like:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;[DataContract] &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;public class Calculation&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;{&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;int _numOfOpp;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;[DataMember] public string Status;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;[DataMember] private int NumOfOpp{ get { return _numOfOpp; } set { _numOfOpp= value; } } &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;} &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Now what you can do with data contracts, and this is cool, is that you can add a second data contract, for example:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;[DataContract (Name=“Calculation”)]&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;public class ScientificCalculation&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;{&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;[DataMember(“Status”)] private string _status;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;[DataMember(“NumOfOpp”)] private int _numOfOpp; &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;} &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;As you can see the name and the members are exactly the same as they will appear to the outside world, but inside they are completely different. Cool, isn’t it?&lt;br /&gt;&lt;br /&gt;You see this is some interesting stuff. And I could talk a lot more about contracts and indigo in general. But then the post would get way to long and my free time way to short :-)&lt;br /&gt;So I promise a follow up on this article. Then I will talk about behaviors in Indigo.&lt;br /&gt;&lt;br /&gt;Want more info about Indigo? Check out this article: &lt;a href="http://spaces.msn.com/members/beneke/Blog/cns!1pxmEPCUfASQUwHXD66C89ww!193.entry"&gt;Indigo contracts and adressing&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Any questions or comments? You know how to reach me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11226342-111087727093920648?l=davedotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davedotnet.blogspot.com/feeds/111087727093920648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11226342&amp;postID=111087727093920648' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/111087727093920648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/111087727093920648'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/2005/03/indigo-contracts.html' title='Indigo: Contracts?'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11226342.post-110993344924086716</id><published>2005-03-04T11:46:00.000+01:00</published><updated>2005-03-04T11:50:49.243+01:00</updated><title type='text'>@-Troubles in VirtualPC</title><content type='html'>Ok this is probably old news by now but I didn't know this.&lt;br /&gt;So one more time: change your default hot key in VirtualPC or you can forget every key that needs ALTGR.&lt;br /&gt;&lt;br /&gt;And you could spent quite some time trying to find the problem.&lt;br /&gt;In my case...Thanks &lt;a href="http://spaces.msn.com/members/beneke"&gt;Ben&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11226342-110993344924086716?l=davedotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davedotnet.blogspot.com/feeds/110993344924086716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11226342&amp;postID=110993344924086716' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/110993344924086716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/110993344924086716'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/2005/03/troubles-in-virtualpc.html' title='@-Troubles in VirtualPC'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11226342.post-110993206686755643</id><published>2005-03-04T10:56:00.000+01:00</published><updated>2005-03-04T11:27:47.203+01:00</updated><title type='text'>What is TDD?</title><content type='html'>&lt;span style="font-family:lucida grande;font-size:85%;"&gt;TDD, also know as Test Driven Development.&lt;br /&gt;Yesterday at DavDays 2005 in The Hague I attended a session about test driven development given by Erno De Weerd form Info Support And i must say it was a real eye opener. I cannot explain the whole thing here but I will try to give some highlights and key points.&lt;br /&gt;Test driven development is so much more then just writing tests first. It is a whole methodology.  It al start with creating a list with tests. You could compare this with what we now know as requirements.&lt;br /&gt;After creating the list you categorize and order them.&lt;br /&gt;But be sure to divide it into small pieces; do not create a test like we need a calculator. No write something like we need to be able to add numbers.&lt;br /&gt;After you have order your list according to risk, ability, complexity, ect you pick the first test from the list and focus on it!&lt;br /&gt;Write a test that covers what you picked. And the see it Fail. Once it fails you can start writing code to make it pass. But do only that, do not think about next steps. Focus on solving this little problem.&lt;br /&gt;Then see if your test passes now.&lt;br /&gt;If it does, then see if your newly written code can use refactoring. And of course Visual Studio 2005 has excellent support for doing this. (it really is a good improvement.)&lt;br /&gt;Once you have refactored you can take your next item from the list and start all over again, until you have fixed all your items.&lt;br /&gt;The great thing about working this way is that you have all your tests available for you and every time you change something you can see if you didn’t break any existing tests. And so reducing bugs in your final version.&lt;br /&gt;Another advantage is that it is a iterative process, this means that changes in requirements (and we all know that the customer always wants changes) are easily worked into the cycle.&lt;br /&gt;Some key features as I see them about TDD are:&lt;br /&gt;- Innovative: It can adapt to changes easily.&lt;br /&gt;- Baby steps: Divide everything it small easy to swallow pieces.&lt;br /&gt;- Iterative: keep doing those small items until you are done.&lt;br /&gt;- Stability: you can execute your test as much as you want and every time making sure you don’t break anything.&lt;br /&gt;&lt;br /&gt;As you can see this methodology is a new approach. Of course Erno can explain this a lot better then I can so if you have a chance to do catch his session about this topic, don’t hesitate, you won’t regret it.&lt;br /&gt;I am a newbie to this kind of development, but I’m sure going to look into this some further. Another advantage is that you can also fit small pieces of this into other methodologies (MDF,RUP,…) so you can do this in existing and ongoing projects.&lt;br /&gt;&lt;br /&gt;For more information I would suggest &lt;/span&gt;&lt;a href="http://www.testdriven.com"&gt;&lt;span style="font-family:lucida grande;font-size:85%;"&gt;TestDriven&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:lucida grande;font-size:85%;"&gt;. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11226342-110993206686755643?l=davedotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davedotnet.blogspot.com/feeds/110993206686755643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11226342&amp;postID=110993206686755643' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/110993206686755643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/110993206686755643'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/2005/03/what-is-tdd.html' title='What is TDD?'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11226342.post-110992562606201839</id><published>2005-03-04T09:31:00.000+01:00</published><updated>2005-03-04T09:40:26.063+01:00</updated><title type='text'>A new blog is born</title><content type='html'>&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;The time has come.&lt;br /&gt;As a .Net developer I couldn't resist. I had to set up my own blog.&lt;br /&gt;From now on I will try to frequently post some interesting facts that I encounter thru my own experiences, lectures, internet, ....&lt;br /&gt;And I hope you as a reader can get something out of those posts and use it in your daily work, because that is the idea.&lt;br /&gt;Most posts will deal with development topics, but I will also post things about methodologies, architecture and so on.&lt;br /&gt;&lt;br /&gt;So hope to see you here frequently and happy reading...&lt;br /&gt;&lt;br /&gt;Dave.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11226342-110992562606201839?l=davedotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/110992562606201839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11226342/posts/default/110992562606201839'/><link rel='alternate' type='text/html' href='http://davedotnet.blogspot.com/2005/03/new-blog-is-born.html' title='A new blog is born'/><author><name>Dave</name><uri>http://www.blogger.com/profile/15557287776539402481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
