<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.inetium.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Dan Mork</title><link>http://blogs.inetium.com/blogs/dmork/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>How to debug deployment projects</title><link>http://blogs.inetium.com/blogs/dmork/archive/2007/10/31/how-to-debug-deployment-projects.aspx</link><pubDate>Wed, 31 Oct 2007 17:39:20 GMT</pubDate><guid isPermaLink="false">7346ef18-9fb1-4a4e-be41-9add5078176c:8423</guid><dc:creator>Dan Mork</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.inetium.com/blogs/dmork/rsscomments.aspx?PostID=8423</wfw:commentRss><comments>http://blogs.inetium.com/blogs/dmork/archive/2007/10/31/how-to-debug-deployment-projects.aspx#comments</comments><description>&lt;p&gt;I have been creating some deployment projects and installer classes and haven't found a clean way to debug my installers and custom actions. I tried attaching the debugger to MSIEXEC.EXE but could not hit my breakpoint. The best solution I've found so far is to use &lt;a href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.debugger"&gt;Debugger&lt;/a&gt;.&lt;a href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.debugger.break"&gt;Break&lt;/a&gt;() in my installer class. Does anyone have a better solution?&lt;/p&gt;</description></item><item><title>NullReferenceException is just good design ;)</title><link>http://blogs.inetium.com/blogs/dmork/archive/2007/10/25/nullreferenceexception-is-just-good-design.aspx</link><pubDate>Thu, 25 Oct 2007 21:41:24 GMT</pubDate><guid isPermaLink="false">7346ef18-9fb1-4a4e-be41-9add5078176c:8035</guid><dc:creator>Dan Mork</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.inetium.com/blogs/dmork/rsscomments.aspx?PostID=8035</wfw:commentRss><comments>http://blogs.inetium.com/blogs/dmork/archive/2007/10/25/nullreferenceexception-is-just-good-design.aspx#comments</comments><description>&lt;p&gt;Now that I've got your attention...
&lt;/p&gt;&lt;p&gt;I could make this a rant but &lt;a href="http://www.devexpress.com/Support/Center/p/AB16685.aspx?searchtext=&amp;amp;tid=4b2d6f97-c4ae-48fc-87f6-8c5da6541e40&amp;amp;pid=f17da424-22e3-4633-910d-f24b4217d522"&gt;this guy did an exceptional job&lt;/a&gt; so I'll be constructive instead. We're trying to track down a bug in our client application that is using DevExpress controls. We started researching the issue in the DevExpress support center. We started to notice people posting issues about receiving &lt;a href="http://msdn2.microsoft.com/en-us/library/system.nullreferenceexception.aspx"&gt;NullReferenceException&lt;/a&gt;s. We also started to notice that the support "specialists" often reply to those issues by stating that the exception is "by design".
&lt;/p&gt;&lt;p&gt;The constructive part of this post is that a &lt;strong&gt;NullReferenceException is a BAD SMELL&lt;/strong&gt;. It means you are making an assumption in your code that you can always use an object reference and that is clearly not true. It is not "by design". It screams bad design. At a minimum, if you think an object reference should never be null then document and test that assumption in your code using &lt;a href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.debug.assert.aspx"&gt;Debug.Assert&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;Our problem is a timing issue related to our disposing of a DevExpress control while related events are still being raised. When we started digging into the DevExpress code we saw that nowhere in this disposable class is an &lt;a href="http://msdn2.microsoft.com/en-us/library/system.objectdisposedexception.aspx"&gt;ObjectDisposedException&lt;/a&gt; thrown. This is a violation of the .NET Design Guidelines. For more information, go read the guideline on &lt;a href="http://msdn2.microsoft.com/en-us/library/b1yfkh5e.aspx"&gt;Implementing Finalize and Dispose&lt;/a&gt; . For more entertainment, go read &lt;a href="http://www.devexpress.com/Support/Center/"&gt;http://www.devexpress.com/Support/Center/&lt;/a&gt; and search for NullReferenceException. For better controls... I don't know – let me know if y'all have any suggestions.
&lt;/p&gt;&lt;p&gt;P.S. The y'all is thrown in for &lt;a href="http://blogs.inetium.com/blogs/jgood"&gt;Jake&lt;/a&gt; who is moving to Texas next week. We'll miss you Jake (but he's still working for Inetium  so that's good).&lt;/p&gt;</description></item><item><title>Create an App Partition in ADAM</title><link>http://blogs.inetium.com/blogs/dmork/archive/2007/10/23/create-an-app-partition-in-adam.aspx</link><pubDate>Tue, 23 Oct 2007 21:31:00 GMT</pubDate><guid isPermaLink="false">7346ef18-9fb1-4a4e-be41-9add5078176c:7861</guid><dc:creator>Dan Mork</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.inetium.com/blogs/dmork/rsscomments.aspx?PostID=7861</wfw:commentRss><comments>http://blogs.inetium.com/blogs/dmork/archive/2007/10/23/create-an-app-partition-in-adam.aspx#comments</comments><description>&lt;p&gt;We are using &lt;a href="http://www.microsoft.com/windowsserver2003/adam/default.mspx" title="AD/AM"&gt;ADAM&lt;/a&gt; to secure our application. ADAM is a lightweight Active Directory implementation that you can use as a security information repository. The &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.security.activedirectorymembershipprovider.aspx"&gt;ActiveDirectoryMembershipProvider&lt;/a&gt; in ASP.NET will work with ADAM as well as Active Directory so you can use it to secure your ASP.NET Web applications and WCF services.&lt;br&gt;&lt;br&gt;Anyways... I wanted to add the creation of our ADAM application partition to our installer. I started searching for ways to programmatically do this and found an old (2004) article on &lt;a href="http://blogs.msdn.com/craigmcmurtry/archive/2004/03/04/83832.aspx"&gt;Craig McMurtry's blog&lt;/a&gt; &lt;a href="http://blogs.msdn.com/craigmcmurtry/archive/2004/03/04/83832.aspx"&gt;&lt;/a&gt;to do it. The article had some code but it was ActiveDS (ADSI COM API) code that made me shudder. Then I remembered the namespace that I had seen a few months ago called &lt;a href="http://msdn2.microsoft.com/en-us/library/system.directoryservices.activedirectory.aspx"&gt;System.DirectoryServices.ActiveDirectory&lt;/a&gt; . Eureka! This namespace was introduced in .NET 2.0. There are a number of classes in there for programmatically working with AD and ADAM. Here is a sample...&lt;/p&gt;&lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;DirectoryContext&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; context 
= &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span&gt;DirectoryContext&lt;/span&gt;(&lt;span&gt;DirectoryContextType&lt;/span&gt;.DirectoryServer, &lt;span&gt;"myhost:389"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;ApplicationPartition&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; 
partition = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span&gt;ApplicationPartition&lt;/span&gt;(context, &lt;span&gt;"CN=myapp,DC=mydomain,DC=local"&lt;/span&gt;, &lt;span&gt;"container"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;partition.Save();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The code above is only an excerpt. There are a number of exceptions that can be thrown here so please &lt;a href="http://msdn2.microsoft.com/en-us/library/system.directoryservices.activedirectory.aspx"&gt;RTFM&lt;/a&gt;.&lt;br&gt;&amp;nbsp;&lt;br&gt;One thing I noticed is that I could only get this to work with partition names that contained domain components (DC=*). For example, if you try to create an application partition with the distinguished name of "O=MyOrg" the ApplicationPartition ctor will throw an ArgumentException stating the distinguished name is invalid. The ADAM instance installer allows you to do this, however, so I don't know why this is invalid via the object model.&lt;br&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><category domain="http://blogs.inetium.com/blogs/dmork/archive/tags/ADSI+ADAM/default.aspx">ADSI ADAM</category></item><item><title>Move Directory Entries with PowerShell</title><link>http://blogs.inetium.com/blogs/dmork/archive/2007/10/08/move-directory-entries-with-powershell.aspx</link><pubDate>Mon, 08 Oct 2007 16:59:00 GMT</pubDate><guid isPermaLink="false">7346ef18-9fb1-4a4e-be41-9add5078176c:7024</guid><dc:creator>Dan Mork</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.inetium.com/blogs/dmork/rsscomments.aspx?PostID=7024</wfw:commentRss><comments>http://blogs.inetium.com/blogs/dmork/archive/2007/10/08/move-directory-entries-with-powershell.aspx#comments</comments><description>&lt;P&gt;I had some&amp;nbsp;directory entries in an ADAM database that were in the wrong spot. It didn't take long to write a powerful one-liner with PowerShell to get stuff in the right spot.&lt;/P&gt;
&lt;P&gt;PS&amp;gt; ([ADSI]"LDAP://localhost:389/CN=myapp,DC=fabrikam,DC=local").psbase.Children | &lt;BR&gt;&amp;gt;&amp;gt; ?{$_.ObjectClass -eq 'ServiceEndpoint'} | &lt;BR&gt;&amp;gt;&amp;gt; %{$_.psbase.MoveTo([ADSI]"LDAP://localhost:389/CN=Services,CN=myapp,DC=fabrikam,DC=local")}&lt;BR&gt;&amp;gt;&amp;gt;&lt;BR&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><category domain="http://blogs.inetium.com/blogs/dmork/archive/tags/PowerShell/default.aspx">PowerShell</category><category domain="http://blogs.inetium.com/blogs/dmork/archive/tags/ADSI/default.aspx">ADSI</category></item><item><title>PowerTab</title><link>http://blogs.inetium.com/blogs/dmork/archive/2007/10/04/powertab.aspx</link><pubDate>Thu, 04 Oct 2007 18:57:00 GMT</pubDate><guid isPermaLink="false">7346ef18-9fb1-4a4e-be41-9add5078176c:6838</guid><dc:creator>Dan Mork</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.inetium.com/blogs/dmork/rsscomments.aspx?PostID=6838</wfw:commentRss><comments>http://blogs.inetium.com/blogs/dmork/archive/2007/10/04/powertab.aspx#comments</comments><description>&lt;P&gt;If you aren't using PowerShell you should be. If you are using PowerShell then you need to check out PowerTab. PowerTab will display an intellisense-like pop-up member list when you press TAB. Find out more here &lt;A href="http://thepowershellguy.com/blogs/posh/pages/powertab.aspx"&gt;http://thepowershellguy.com/blogs/posh/pages/powertab.aspx&lt;/A&gt;&amp;nbsp;.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:500px;HEIGHT:323px;" height=323 src="http://farm2.static.flickr.com/1115/1485344204_2ddd0c9ae0.jpg?v=0" width=500&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><category domain="http://blogs.inetium.com/blogs/dmork/archive/tags/PowerShell/default.aspx">PowerShell</category></item><item><title>Make a Self-Signed Certificate</title><link>http://blogs.inetium.com/blogs/dmork/archive/2007/10/03/make-a-self-signed-certificate.aspx</link><pubDate>Wed, 03 Oct 2007 22:18:09 GMT</pubDate><guid isPermaLink="false">7346ef18-9fb1-4a4e-be41-9add5078176c:6795</guid><dc:creator>Dan Mork</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.inetium.com/blogs/dmork/rsscomments.aspx?PostID=6795</wfw:commentRss><comments>http://blogs.inetium.com/blogs/dmork/archive/2007/10/03/make-a-self-signed-certificate.aspx#comments</comments><description>&lt;p&gt;This post falls under the "I don't want to forget this and have to find it again" category. When you're working with WCF and need a self-signed certificate for authentication it is not always easy to find the right article to figure out how to do it. This is the command that I use…
&lt;/p&gt;&lt;p&gt;makecert.exe -r -n "CN=MyService" -a sha1 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localmachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 –pe
&lt;/p&gt;&lt;p&gt;You can use this to generate a certificate to use as the service credentials when using UserNameToken to secure your messages.&lt;/p&gt;</description><category domain="http://blogs.inetium.com/blogs/dmork/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Transferring files via Remote Desktop</title><link>http://blogs.inetium.com/blogs/dmork/archive/2007/10/03/transferring-files-via-remote-desktop.aspx</link><pubDate>Wed, 03 Oct 2007 21:59:00 GMT</pubDate><guid isPermaLink="false">7346ef18-9fb1-4a4e-be41-9add5078176c:6792</guid><dc:creator>Dan Mork</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.inetium.com/blogs/dmork/rsscomments.aspx?PostID=6792</wfw:commentRss><comments>http://blogs.inetium.com/blogs/dmork/archive/2007/10/03/transferring-files-via-remote-desktop.aspx#comments</comments><description>&lt;P&gt;I've used this trick a lot and some friends of mine weren't aware of it so I thought I'd write a quick post. &lt;/P&gt;
&lt;P&gt;Have you ever been connected to a remote computer via Remote Desktop and needed to transfer a file between your computer and the remote computer? There's a lot of ways to do this including using administrative shares (e.g. \\mycomputer\c$ ), shared folders (e.g. \\mycomputer\shared_folder ), or mutual intermediate computers (e.g. ftp server, file server, etc.). Heck… I've even used Gmail. &lt;/P&gt;
&lt;P&gt;With Remote Desktop there's an easy way to gain access to your computer from the remote computer via Windows Explorer. You have to set it up before you connect to the remote computer. Here's how to set it up. &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Before you connect to the remote computer, click the "Option &amp;gt;&amp;gt;" button. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;A class="" href="http://www.flickr.com/photos/dmork/1478672991/"&gt;&lt;IMG style="WIDTH:421px;HEIGHT:187px;" height=187 src="http://farm2.static.flickr.com/1135/1478672991_a23058dc30.jpg?v=0" width=421&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Next, select the "Local Resources" tab and click the "More…" button.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;A class="" href="http://www.flickr.com/photos/dmork/1478672749/"&gt;&lt;IMG style="WIDTH:421px;HEIGHT:475px;" height=475 src="http://farm2.static.flickr.com/1005/1478672749_0b48ab3946.jpg?v=0" width=421&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Next, select the drives that you need get access to from the remote computer. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;A class="" href="http://www.flickr.com/photos/dmork/1478672817/"&gt;&lt;IMG style="WIDTH:429px;HEIGHT:439px;" height=439 src="http://farm2.static.flickr.com/1042/1478672817_9b039aafab.jpg?v=0" width=429&gt;&lt;/A&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Finally, after you have connected, open Windows Explorer on the remote computer and enter "\\tsclient\C" or replace "C" with whatever drive you selected. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;A class="" href="http://www.flickr.com/photos/dmork/1478672921/"&gt;&lt;IMG style="WIDTH:500px;HEIGHT:375px;" height=375 src="http://farm2.static.flickr.com/1127/1478672921_ad3efceaca.jpg?v=0" width=500&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That's all there is to it. Like I said, I'm running Remote Desktop version 6.0 so it might look a little different for you… but you'll figure it out. &lt;/P&gt;
&lt;P&gt;Another cool feature of Remote Desktop (I think this only applies to 6.0) is that the window can span multiple displays if you launch Remote Desktop via a command with the span switch like this "mstsc.exe /span".&lt;/P&gt;</description></item><item><title>Project Astoria</title><link>http://blogs.inetium.com/blogs/dmork/archive/2007/09/27/project-astoria.aspx</link><pubDate>Thu, 27 Sep 2007 17:10:00 GMT</pubDate><guid isPermaLink="false">7346ef18-9fb1-4a4e-be41-9add5078176c:6585</guid><dc:creator>Dan Mork</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.inetium.com/blogs/dmork/rsscomments.aspx?PostID=6585</wfw:commentRss><comments>http://blogs.inetium.com/blogs/dmork/archive/2007/09/27/project-astoria.aspx#comments</comments><description>&lt;p&gt;You should take a couple of minutes to check out Microsoft's Astoria project. If you haven't heard of Astoria, it is a Microsoft project that uses the metadata in your Entity Data Model to create data services.  Entity Data Model is part of Entity Framework in the next version of ADO.NET (think ORM).
&lt;/p&gt;&lt;p&gt;Some Astoria links:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Astoria: &lt;a href="http://astoria.mslivelabs.com/Default.aspx"&gt;http://astoria.mslivelabs.com/Default.aspx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Astoria Presentation from Mix07: &lt;a href="http://sessions.visitmix.com/default.asp?event=1011&amp;amp;session=2011&amp;amp;pid=XD006&amp;amp;disc=&amp;amp;id=1573&amp;amp;year=2007&amp;amp;search=XD006" title="http://sessions.visitmix.com/default.asp?event=1011&amp;amp;session=2011&amp;amp;pid=XD006&amp;amp;disc=&amp;amp;id=1573&amp;amp;year=2007&amp;amp;search=XD006"&gt;http://sessions.visitmix.com/default.asp?event=1011&amp;amp;session=2011&amp;amp;pid=XD006&amp;amp;disc=&amp;amp;id=1573&amp;amp;year=2007&amp;amp;search=XD006&lt;/a&gt;&lt;/li&gt;&lt;li&gt;ADO.NET Entity Framework: &lt;a href="http://msdn2.microsoft.com/en-us/library/aa697427%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa697427(VS.80).aspx&lt;/a&gt;
		&lt;/li&gt;&lt;li&gt;ADO.NET Team Blog: &lt;a href="http://blogs.msdn.com/adonet/default.aspx"&gt;http://blogs.msdn.com/adonet/default.aspx&lt;/a&gt;
		&lt;/li&gt;&lt;li&gt;MS Architecture Journal #13 will have an article (which is not on the site yet at the time of this posting): &lt;a href="http://msdn2.microsoft.com/en-us/arcjournal/default.aspx"&gt;http://msdn2.microsoft.com/en-us/arcjournal/default.aspx&lt;/a&gt;
		&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;They have a live instance of Northwind available for playing…&lt;br&gt;&lt;a href="http://astoria.mslivelabs.com/OnlineServiceNorthwind.aspx"&gt;http://astoria.mslivelabs.com/OnlineServiceNorthwind.aspx&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;For example… to get good old Alfreds Futterkiste you use the following RESTful URL:&lt;br&gt;As XML: &lt;a href="http://astoria.sandbox.live.com/northwind/northwind.rse/Customers%5bALFKI"&gt;http://astoria.sandbox.live.com/northwind/northwind.rse/Customers[ALFKI&lt;/a&gt;]
&lt;/p&gt;&lt;p&gt;You can get data as JSON too by specifying a query string param "?$export=json" or sending an accept header (accept: application/json).
&lt;/p&gt;&lt;p&gt;I have some questions about Entity Framework and Astoria it that I haven't taken the time to dig into yet. For example:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Does Entity Framework make you derive from some base class or is it all metadata and extensions? I do not like ORM frameworks that make me use their base class (e.g. DevExpress XPO). I prefer ORM frameworks that take a metadata approach like NHibernate.
&lt;/li&gt;&lt;li&gt;Where does the business logic go in Entity Framework? Do they have concepts to represent this?
&lt;/li&gt;&lt;li&gt;Is Astoria using WCF so I can still mix in things like parameter inspectors, filters, and authorization policy? Are they using &lt;a href="http://sessions.visitmix.com/default.asp?year=All&amp;amp;event=1011&amp;amp;sessionChoice=2012&amp;amp;sortChoice=4&amp;amp;stype=asc&amp;amp;id=1512&amp;amp;search=DEV03&amp;amp;rsscheck=rss"&gt;[WebGet]&lt;/a&gt; or rolling their own? UPDATE: Click the WebGet link. During the Q&amp;amp;A Don answers this question. Yes, Astoria is built on top of WCF and WebGet.&lt;br&gt;
&lt;/li&gt;&lt;li&gt;Do they support other HTTP verbs - POST, PUT, DELETE?
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I haven't looked at it more than just playing with it in the browser a bit. Looks like it beats doing REST this way &lt;a href="http://msdn2.microsoft.com/en-us/library/aa395208.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa395208.aspx&lt;/a&gt; though.
&lt;/p&gt;</description><category domain="http://blogs.inetium.com/blogs/dmork/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://blogs.inetium.com/blogs/dmork/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Code Camp</title><link>http://blogs.inetium.com/blogs/dmork/archive/2007/05/07/code-camp.aspx</link><pubDate>Tue, 08 May 2007 04:17:00 GMT</pubDate><guid isPermaLink="false">7346ef18-9fb1-4a4e-be41-9add5078176c:2083</guid><dc:creator>Dan Mork</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.inetium.com/blogs/dmork/rsscomments.aspx?PostID=2083</wfw:commentRss><comments>http://blogs.inetium.com/blogs/dmork/archive/2007/05/07/code-camp.aspx#comments</comments><description>&lt;P&gt;Code Camp is over. Thanks to everyone who attended and thanks to the sponsors for making it possible. The presentation and code from the Ruby on Rails presentation can be found &lt;A class="" href="http://www.humanstuff.com/assets/2007/5/8/CodeCampRoR.zip"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;In retrospect I thought my .NET code examples didn't show the true value of the features. Here is a sample extension class that you can play around with. Rails has something similar (see &lt;A href="http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Numeric/Time.html#M000394"&gt;http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Numeric/Time.html#M000394&lt;/A&gt;&amp;nbsp;for more info).&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;public&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt; &lt;SPAN style="COLOR:blue;"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR:teal;"&gt;TimeExtensions&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR:teal;"&gt;TimeSpan&lt;/SPAN&gt; Days(&lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;int&lt;/SPAN&gt; i)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; TimeSpan(i, 0, 0, 0);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;static&lt;/SPAN&gt; TimeSpan Hours(&lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;int&lt;/SPAN&gt; i)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; TimeSpan(i, 0, 0);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;static&lt;/SPAN&gt; TimeSpan Minutes(&lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;int&lt;/SPAN&gt; i)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; TimeSpan(0, i, 0);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;static&lt;/SPAN&gt; TimeSpan Seconds(&lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;int&lt;/SPAN&gt; i)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; TimeSpan(0, 0, i);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;When loaded, this extension class would allow you to write code like this:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;Console&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;.WriteLine(30.Days());&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;Console&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;.WriteLine(12.Hours());&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;Console&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;.WriteLine(24.Minutes());&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:teal;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;Console&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;.WriteLine(15.Seconds());&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to fix the MaxItemsInObjectGraph SerializationException</title><link>http://blogs.inetium.com/blogs/dmork/archive/2007/02/27/896.aspx</link><pubDate>Tue, 27 Feb 2007 17:18:00 GMT</pubDate><guid isPermaLink="false">7346ef18-9fb1-4a4e-be41-9add5078176c:896</guid><dc:creator>Dan Mork</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.inetium.com/blogs/dmork/rsscomments.aspx?PostID=896</wfw:commentRss><comments>http://blogs.inetium.com/blogs/dmork/archive/2007/02/27/896.aspx#comments</comments><description>&lt;font face="Verdana" size="3"&gt;When you start trying to load test your
Indigo Web services you will probably encounter the following
serialization exception when exchanging messages:&lt;br&gt;
&lt;br&gt;
System.Runtime.Serialization.SerializationException : Maximum number of
items that can be serialized or deserialized in an object graph is
'65536'. Change the object graph or increase the MaxItemsInObjectGraph
quota.&lt;br&gt;
&lt;br&gt;
When you receive a message in Indigo, the body of the message is
converted into the objects you work with to read the content of the
message. The class responsible for doing this can vary depending on
your binding but in this post we're talking about the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.aspx"&gt;System.Runtime.Serialization.DataContractSerializer&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
There are a number of configuration options in Indigo to help you be
explicit about what consumers of your service can and cannot send you
to help you secure your services. One of those options is the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.maxitemsinobjectgraph.aspx"&gt;MaxItemsInObjectGraph&lt;/a&gt; property of the DataContractSerializer.&lt;br&gt;
&lt;br&gt;
When a message is received the DataContractSerializer reads the XML,
creates instances of objects, and copies the data from the XML to those
objects. When the message is large you can reach the default value of
MaxItemsInObjectGraph.&lt;br&gt;
&lt;br&gt;
When this happens you can configure your message receiver to allow a
higher number of objects. I say message receiver because where you
configure this depends on whether the receiver is a service processing
a request or a consumer processing a response.&lt;br&gt;
&lt;br&gt;
If the message receiver is a service processing a request, then you can set this property using a service behavior:&lt;br&gt;
&lt;br&gt;
&lt;code&gt;&amp;lt;behaviors&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;serviceBehaviors&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behavior name="MyServiceBehavior"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dataContractSerializer maxItemsInObjectGraph="100000"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behavior&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;/serviceBehaviors&amp;gt;&lt;br&gt;
&amp;lt;/behaviors&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;font face="Verdana" size="3"&gt;
If the message receiver is a consumer processing a response, then you can set this property using an endpoint behavior:&lt;br&gt;
&lt;br&gt;
&lt;code&gt;&amp;lt;behaviors&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;endpointBehaviors&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behavior name="MyEndpointBehavior"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dataContractSerializer maxItemsInObjectGraph="100000"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behavior&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;/endpointBehaviors&amp;gt;&lt;br&gt;
&amp;lt;/behaviors&amp;gt;&lt;/code&gt;&lt;/font&gt;&lt;br&gt;
&lt;font face="Verdana" size="3"&gt;&lt;br&gt;
Don't forget to set the behaviorConfiguration attribute on your
service or endpoint element and make sure you only apply this behavior to
the services or endpoints that actually need it.&lt;br&gt;
&lt;br&gt;
One thing to note, the documentation for the MaxItemsInObjectGraph
property seems inconsistent. A dead giveaway is that it states the
default value of the property is Int32.MaxValue and also states the
default value is &lt;/font&gt;&lt;font face="Verdana" size="3"&gt;65536 (it is the latter, thank goodness).&lt;br&gt;
&lt;br&gt;
The documentation also states that this property affects serialization
(writing from objects to XML) and deserialization (writing from XML to
objects). My experience differs from this. If the consumer only sends
large requests but never processes large responses then we have only
needed to configure the setting on the service.&lt;/font&gt;&lt;br&gt;
&lt;font face="Verdana" size="3"&gt;&lt;br&gt;
This setting affects the security of your services. Be sure to read &lt;a href="http://msdn2.microsoft.com/en-us/library/ms733135.aspx"&gt;Security Considerations for Data in WCF&lt;/a&gt;.&lt;br&gt;
&lt;/font&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Code Camp - Spring 2007</title><link>http://blogs.inetium.com/blogs/dmork/archive/2007/02/08/848.aspx</link><pubDate>Fri, 09 Feb 2007 05:48:00 GMT</pubDate><guid isPermaLink="false">7346ef18-9fb1-4a4e-be41-9add5078176c:848</guid><dc:creator>Dan Mork</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.inetium.com/blogs/dmork/rsscomments.aspx?PostID=848</wfw:commentRss><comments>http://blogs.inetium.com/blogs/dmork/archive/2007/02/08/848.aspx#comments</comments><description>&lt;P&gt;The Twin Cities Code Camp is coming up April 28, 2007. I'll be co-presenting "What Ruby on Rails can Teach .NET Developers" with my friend&amp;nbsp;and fellow Inetium colleague John Howes&amp;nbsp;and "Inside the WCF Web Service Software Factory" with my friend and former Inetium colleague Jeff Knutson. You will not want to miss it. Watch this URL for more info:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.twincitiescodecamp.com/TCCC/Default.aspx"&gt;http://www.twincitiescodecamp.com/TCCC/Default.aspx&lt;/A&gt;&amp;nbsp;.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Now Soliciting WCF Requests (Action="*")</title><link>http://blogs.inetium.com/blogs/dmork/archive/2007/02/08/847.aspx</link><pubDate>Fri, 09 Feb 2007 05:27:00 GMT</pubDate><guid isPermaLink="false">7346ef18-9fb1-4a4e-be41-9add5078176c:847</guid><dc:creator>Dan Mork</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.inetium.com/blogs/dmork/rsscomments.aspx?PostID=847</wfw:commentRss><comments>http://blogs.inetium.com/blogs/dmork/archive/2007/02/08/847.aspx#comments</comments><description>&lt;P&gt;Greetings, everyone. So let's get the intros out of the way... I'm Dan Mork. I'm a consultant at Inetium. I'm not new to Inetium but I'm new to their blog server&amp;nbsp;(finally got around to signing the legal mumbo jumbo).&lt;/P&gt;
&lt;P&gt;I like indie films and long walks in the park... sorry... I'm just getting used to tabbed browsing in IE 7. Seriously, I am mostly starting this blog to share my experiences in service-oriented architecture (SOA) with Indigo (a.k.a WCF - why don't they just keep the codenames??).&lt;/P&gt;
&lt;P&gt;To get things started, if you have any ideas for posts on SOA or Indigo that you would like to see please comment.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>