<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>.NET on Opgenorth.NET</title><link>http://www.opgenorth.net/tags/.NET/</link><description>Recent content in .NET on Opgenorth.NET</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 15 Nov 2010 00:00:00 +0000</lastBuildDate><atom:link href="http://www.opgenorth.net/tags/.NET/index.xml" rel="self" type="application/rss+xml"/><item><title>First Impressions: Windows Phone 7 Development</title><link>http://www.opgenorth.net/posts/2010-11-15-first-impressions-windows-phone-7-development/</link><pubDate>Mon, 15 Nov 2010 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2010-11-15-first-impressions-windows-phone-7-development/</guid><description>&lt;p&gt;I’ve spent a bit of my spare time in the past week looking at Windows Phone 7 from a developer’s point of view.  I’d have started sooner, but honestly, I didn’t see the point until there were actually devices that I could hold and use.  I know that in the U.S., some guys got developer phones from Microsoft, but I don’t think that anybody up here in Canada was that lucky. So, over the past year or so I’ve been dabbling with Android and I actually like programming for Android. &lt;/p&gt;</description></item><item><title>MVP in C# For 2010</title><link>http://www.opgenorth.net/posts/2010-04-05-mvp-in-c-for-2010/</link><pubDate>Mon, 05 Apr 2010 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2010-04-05-mvp-in-c-for-2010/</guid><description>&lt;p&gt;I guess I forgot to mention this:  On April 1, 2010, I received an e-mail from Microsoft that my &lt;a href="https://mvp.support.microsoft.com/profile=31F1E181-79EC-4497-B792-FA8F83D34936"&gt;MVP in C#&lt;/a&gt; was renewed for the third year.  This makes me a happy, because with Resharper 5 (and therefore Visual Studio 2010) and Windows Mobile 7, I’m hoping that this will be an exciting year for the .NET crowd. &lt;/p&gt;
&lt;p&gt;Well, okay, perhaps I didn’t forget.  Given that it was April 1st when I got the e-mail, I like to give things a few days to settle down.  I am acquainted with some mischievous pranksters who would think it was a funny April Fools joke.&lt;/p&gt;</description></item><item><title>Every Time you \[Ignore\] a Test, a Puppy Dies</title><link>http://www.opgenorth.net/posts/2009-02-20-every-time-you-ignore-a-test-a-puppy-dies/</link><pubDate>Fri, 20 Feb 2009 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2009-02-20-every-time-you-ignore-a-test-a-puppy-dies/</guid><description>&lt;p&gt;If you using a unit testing framework such as &lt;a href="http://www.nunit.org"&gt;NUnit&lt;/a&gt;, you&amp;rsquo;re no doubt familiar with the &lt;a href="http://www.nunit.org/index.php?p=ignore&amp;amp;r=2.4.8"&gt;[Ignore]&lt;/a&gt; attribute.  (Note:  I haven&amp;rsquo;t used &lt;a href="http://www.mbunit.com"&gt;MbUnit&lt;/a&gt; in a while, but I&amp;rsquo;m pretty sure that all this applies there as well.)&lt;/p&gt;
&lt;p&gt;For those who aren&amp;rsquo;t, when you adorn your [Test] with this attribute, then your test runner should pay no heed to this particular [Test].  Instead of going green or red, your test turns up as yellow in your test runner. At first blush, this seems handy - rather than deleting a failing or broken test you can have it [Ignore]d.&lt;/p&gt;</description></item><item><title>Common Sevice Locator</title><link>http://www.opgenorth.net/posts/2009-01-26-common-sevice-locator/</link><pubDate>Mon, 26 Jan 2009 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2009-01-26-common-sevice-locator/</guid><description>&lt;p&gt;One of the nice things about &lt;a href="http://martinfowler.com/articles/injection.html"&gt;Dependency Injection&lt;/a&gt; is that it can really help write a more flexible, modular application.  These days, it seems that there is no shortage of choice in the .NET community when it comes to IoC frameworks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://structuremap.sourceforge.net"&gt;StructureMap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.castleproject.org/container/index.html"&gt;Castle Windsor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ninject.org"&gt;Ninject&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/autofac/"&gt;Autofac&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/unity"&gt;Unity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.springframework.net/"&gt;Spring.NET&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;And probably others that I&amp;rsquo;m missing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ironically, when you first start using an IoC framework, you might find that in trying to make a loosely-coupled, modular, application you end up shackling yourself to the framework you&amp;rsquo;re using for IoC. For example, you start off using your own homegrown IoC framework, and then decide at some point in the future to use a different framework, like say StructureMap.  Going through your codebase to make these changes can be quite the exercise in pain. There are a couple of ways to isolate yourself from this kind of situation.  I won&amp;rsquo;t get into all of them but instead will focus on the &lt;a href="http://www.codeplex.com/CommonServiceLocator"&gt;Common Service Locator&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>TypeMock, TestDriven.NET, and Red Tests</title><link>http://www.opgenorth.net/posts/2008-10-18-typemock-testdriven-net-and-red-tests-2/</link><pubDate>Sat, 18 Oct 2008 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2008-10-18-typemock-testdriven-net-and-red-tests-2/</guid><description>&lt;p&gt;Lately I&amp;rsquo;ve been experimenting with &lt;a href="http://www.typemock.com/"&gt;TypeMock Isolator&lt;/a&gt;,  and it&amp;rsquo;s new AAA syntax.  For the past two years I&amp;rsquo;ve been a diehard Rhino.Mocks kind of guy, but figured that it&amp;rsquo;s time to check out other tools.  Anyway, I had a situation where a unit test of mine was failing when I ran it with &lt;a href="http://www.testdriven.net/"&gt;TestDriven.NET&lt;/a&gt;, but would pass when I ran it using the unit test runner in &lt;a href="http://www.jetbrains.com/resharper"&gt;Resharper 4.1&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Usually when I develop, I write individual tests and then run individually with TestDriven.NET and collectively with Resharper.  In this case, as I was writing one unit test, it kept failing with TestDriven.NET.  At first I thought it was just me being stupid (always a good place to start), and then I was worried that perhaps the documentation for TypeMock was to blame.  So, I sent a email to Avi at TypeMock, mostly expecting confirmation of my stupidity.&lt;/p&gt;</description></item><item><title>TypeMock, TestDriven.NET, and Red Tests</title><link>http://www.opgenorth.net/posts/2008-10-18-typemock-testdriven-net-and-red-tests/</link><pubDate>Sat, 18 Oct 2008 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2008-10-18-typemock-testdriven-net-and-red-tests/</guid><description>&lt;p&gt;Lately I&amp;rsquo;ve been experimenting with &lt;a href="http://www.typemock.com/"&gt;TypeMock Isolator&lt;/a&gt;,  and it&amp;rsquo;s new AAA syntax.  For the past two years I&amp;rsquo;ve been a diehard Rhino.Mocks kind of guy, but figured that it&amp;rsquo;s time to check out other tools.  Anyway, I had a situation where a unit test of mine was failing when I ran it with &lt;a href="http://www.testdriven.net/"&gt;TestDriven.NET&lt;/a&gt;, but would pass when I ran it using the unit test runner in &lt;a href="http://www.jetbrains.com/resharper"&gt;Resharper 4.1&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Usually when I develop, I write individual tests and then run individually with TestDriven.NET and collectively with Resharper.  In this case, as I was writing one unit test, it kept failing with TestDriven.NET.  At first I thought it was just me being stupid (always a good place to start), and then I was worried that perhaps the documentation for TypeMock was to blame.  So, I sent a email to Avi at TypeMock, mostly expecting confirmation of my stupidity.&lt;/p&gt;</description></item><item><title>What is In A Name?</title><link>http://www.opgenorth.net/posts/2008-08-26-whats-in-a-name/</link><pubDate>Tue, 26 Aug 2008 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2008-08-26-whats-in-a-name/</guid><description>&lt;p&gt;As I was driving home today, I couldn&amp;rsquo;t help notice something.  Microsoft&amp;rsquo;s ASP.NET MVC framework is still in beta, and was only announced last October.  To my knowledge, there are currently three projects in the &lt;a href="http://maps.google.ca/maps?q=Edmonton,+Alberta&amp;amp;ie=UTF8&amp;amp;oe=utf-8&amp;amp;client=firefox-a&amp;amp;ll=53.540307,-113.510742&amp;amp;spn=18.606218,57.128906&amp;amp;z=5&amp;amp;iwloc=addr"&gt;Edmonton&lt;/a&gt; area based off this framework.&lt;/p&gt;
&lt;p&gt;Castle Monorail has been around for much longer, three years or so?  It&amp;rsquo;s still listed as a release candidate on it&amp;rsquo;s website, but I&amp;rsquo;d say Monorail is suitable for production.  Currently, I am not aware of any projects in the Edmonton that are based off this framework.&lt;/p&gt;</description></item><item><title>Squawking About The Manning Early Access Program</title><link>http://www.opgenorth.net/posts/2008-08-23-squawking-about-the-manning-early-access-program/</link><pubDate>Sat, 23 Aug 2008 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2008-08-23-squawking-about-the-manning-early-access-program/</guid><description>&lt;p&gt;*Note:  I originally wrote this post on August 23, 2008.  As things change with the book NHibernate in Action, I will be updating this post and resetting the date. *&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d like to take a break from boring you two readers of my blog, and take a moment to annoy you with a rant.  Diversity is the spice of life after all.&lt;/p&gt;
&lt;p&gt;This little remonstration of mine is about the &lt;a href="http://www.manning.com/about/meap.html"&gt;Manning Early Access Program&lt;/a&gt; (MEAP).  Well, specifically just  &lt;a href="http://www.manning.com/kuate/"&gt;one book&lt;/a&gt;.  I&amp;rsquo;ve got my eye on a couple of other books available with MEAP to see how they pan out before considering the whole &amp;ldquo;early access&amp;rdquo; useless.  Anyway&amp;hellip;&lt;/p&gt;</description></item><item><title>How Much TDD is Enough?</title><link>http://www.opgenorth.net/posts/2008-08-06-how-much-tdd-is-enough/</link><pubDate>Wed, 06 Aug 2008 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2008-08-06-how-much-tdd-is-enough/</guid><description>&lt;p&gt;At the last &lt;a href="http://groups.google.com/group/eamug"&gt;Edmonton Agile Methods User Group&lt;/a&gt; meeting, we had a brief discussion around &lt;a href="http://en.wikipedia.org/wiki/Code_coverage"&gt;code coverage&lt;/a&gt;, and what should be an acceptable number to shoot for.  Is it okay when the unit tests cover 80% of the code?  Or should 100% be the only acceptable value?  After all, how can you be confident in your code knowing that 20% of it isn&amp;rsquo;t tested.&lt;/p&gt;
&lt;p&gt;Allow me to go out on a limb here, and state with absolute certainty that the correct answer is &amp;ldquo;It depends on your situation&amp;rdquo;.  Allow me to elaborate.&lt;/p&gt;</description></item><item><title>Rod Paddock at EDMUG</title><link>http://www.opgenorth.net/posts/2008-06-27-rod-paddock-at-edmug/</link><pubDate>Fri, 27 Jun 2008 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2008-06-27-rod-paddock-at-edmug/</guid><description>&lt;p&gt;Last night (Thursday, June 26th) &lt;a href="http://blog.dashpoint.com/"&gt;Rod Paddock&lt;/a&gt; gave a talk on using &lt;a href="http://www.silverlight.net"&gt;Silverlight&lt;/a&gt; 2.0 to the Edmonton .NET User Group.  I&amp;rsquo;d say that Rod did a pretty good job, despite the fact that the beta of both &lt;a href="http://www.silverlight.net"&gt;Silverlight&lt;/a&gt; and Expression Blend didn&amp;rsquo;t exactly want to play nice all the time.  It&amp;rsquo;s definitely perked my interest in the technology, and I can see a lot of business potential for it.&lt;/p&gt;
&lt;p&gt;The rich user experience that &lt;a href="http://www.silverlight.net"&gt;Silverlight&lt;/a&gt; brings to the web-browser, will, I think raise the bar for what web applications will do for businesses.  Forget all the buzz about ASP.NET MVC or MonoRail or ASP.NET 3.5.  This is just another layer of makeup on the tired, old, hooker that is application development in .NET.  &lt;a href="http://www.silverlight.net"&gt;Silverlight&lt;/a&gt; is what will make business users oh and ah and get excited about web apps again.&lt;/p&gt;</description></item><item><title>On the Functional Apex of Mainstream Build Tools in .NET</title><link>http://www.opgenorth.net/posts/2008-05-01-on-the-functional-apex-of-mainstream-build-tools-in-net/</link><pubDate>Thu, 01 May 2008 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2008-05-01-on-the-functional-apex-of-mainstream-build-tools-in-net/</guid><description>&lt;p&gt;Wordy title.  To wordy.  Kind of like build files these days. I remember when I first discovered Ant, and then &lt;a href="http://nant.sourceforge.net"&gt;Nant&lt;/a&gt;*.  I was pretty happy, as it allow a decent way to compile my Java (and C#) without using make files.  Life was good as I could finally introduce some structure into HOW code was compiled.  The build process was no longer using whatever &amp;ldquo;build&amp;rdquo; command the IDE exposed, hoping that I didn&amp;rsquo;t forget a compiler directive or a file or a reference to some other library along the way.  Other programmers could also compile the code with out fear as well. &lt;/p&gt;</description></item><item><title>ALT.NET Session \#6: Maintaining A Framework</title><link>http://www.opgenorth.net/posts/2008-04-20-alt-net-session-6-maintaining-a-framework/</link><pubDate>Sun, 20 Apr 2008 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2008-04-20-alt-net-session-6-maintaining-a-framework/</guid><description>&lt;p&gt;&lt;a href="http://codebetter.com/blogs/jeremy.miller/"&gt;Jeremy Miller&lt;/a&gt; talking about the trials and tribulations of keeping a &lt;a href="http://structuremap.sourceforge.net/Default.htm"&gt;codebase&lt;/a&gt; viable and useful over the past four years.  A lot of tips and explanations were backed with diagrams on the whiteboard.  Kind of hard to blog that stuff, so this will probably be just a collection of bullets.&lt;/p&gt;
&lt;p&gt;Lessons learned - a lot of them relate back to what are considered good, OO practices:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself"&gt;DRY&lt;/a&gt;, especially with the very small things.  When Jeremy was adding support for .NET 2.0, the generic support was problematic.  &lt;br&gt;
Example:  Want to resolve a Repository&amp;lt;T&amp;gt;.  You can&amp;rsquo;t just look for the class Repository`1: i.e. was trying to resolve the class by using  typeof(Repository`1).  This did not work.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://c2.com/cgi/wiki?TellDontAsk"&gt;Tell, Don&amp;rsquo;t Ask&lt;/a&gt;.  Didn&amp;rsquo;t follow this to heavily at first, and so now effort has to be taken to rewrite code to adhere to this principle.&lt;/li&gt;
&lt;li&gt;Using a lot of Double Dispatch (&lt;em&gt;hah!  look Jeremy the picture did turn out&lt;/em&gt;):&lt;/li&gt;
&lt;li&gt;If you need to refactor, do it now.  Procrastination only makes it (refactoring) harder and more costly.&lt;/li&gt;
&lt;li&gt;If you want to build a .NET framework and keep it around for four to five years, you should probably learn a bit about the fundamentals of .NET.&lt;/li&gt;
&lt;li&gt;Small steps, frequent commits to source code.&lt;/li&gt;
&lt;li&gt;Good solid battery of unit tests really helps with major changes.&lt;/li&gt;
&lt;li&gt;Moving more towards coarser grained tests.  Does the test check the functionality?  Not to worried about the intermediate steps.
&lt;ul&gt;
&lt;li&gt;Assertions based on side effects really don&amp;rsquo;t work well.  Not very expressive, sometimes hard to figure out what what you&amp;rsquo;re trying to test.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;It helps have tooling inside your tests in order to help you quickly create tests, especially the difficult to setup/create tests.  Will result in a faster feedback cycle.  This infrastructure is more strategic, can be very help.&lt;/li&gt;
&lt;li&gt;Jeremy recommends &amp;ldquo;Pragmatic Programmers&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Brief discussion about where to start learning all these pattern.  Advice is given to learn principles first (DRY, OCP, SRP, SOC, etc) as this will greatly help with the understanding and proper use of design patterns.&lt;/p&gt;</description></item><item><title>ALT.NET Session #4: Sprocs Good Or Evil / NHibernate with Cartoon Bears</title><link>http://www.opgenorth.net/posts/2008-04-19-alt-net-session-4-sprocs-good-or-evil-nhibernate-with-cartoon-bears/</link><pubDate>Sat, 19 Apr 2008 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2008-04-19-alt-net-session-4-sprocs-good-or-evil-nhibernate-with-cartoon-bears/</guid><description>&lt;p&gt;Two topics merged into one.  Rod Paddock wants to talk about stored procs, and others want to learn how to explain NHibernate to other people who aren&amp;rsquo;t familiar with it (and minimize the jargon).&lt;/p&gt;
&lt;p&gt;Rod uses a custom code-gen solution based heavily on sprocs - a data driven approach.  Sounds like it works well for him.  Oren concurs that this technique could be very effective in certain circumstances.  It will have problems with complex situations that deal with convoluted/difficult data scenarios.  He&amp;rsquo;s giving an example, but I just can&amp;rsquo;t keep up with him.  The point of Oren&amp;rsquo;s story is that a domain driven approach will would better when you&amp;rsquo;re not dealing with data but with data and behavior.&lt;/p&gt;</description></item><item><title>ALT.NET Session #5: Mono - Not Just For Linux</title><link>http://www.opgenorth.net/posts/2008-04-19-alt-net-session-5-mono-not-just-for-linux/</link><pubDate>Sat, 19 Apr 2008 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2008-04-19-alt-net-session-5-mono-not-just-for-linux/</guid><description>&lt;p&gt;Joe starts polling to see what people want to talk about.  Most seem to be interest the libraries for Mono (being that they also work on Windows/.NET.  So, Joe starts talking about libraries for/from Mono.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.mono-project.com/Cecil"&gt;Mono.Cecil&lt;/a&gt;.  For all your reflecting and assembly modification needs.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mono-project.com/Mono.Addins"&gt;Mono.Addins&lt;/a&gt;.  I&amp;rsquo;ve been looking at this off and on today, and I have to admit it looks pretty intriguing&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mono-project.com/Rocks"&gt;Mono.Rocks&lt;/a&gt;:  Handy extension methods.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mono-project.com/Mono.Zeroconf"&gt;Mono.Zeroconf&lt;/a&gt;: Zero configuration networking library&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ndesk.org/DBusSharp"&gt;DBus#&lt;/a&gt;:  A C# implementation of &lt;a href="http://www.freedesktop.org/wiki/Software/dbus"&gt;D-Bus&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mono-project.com/MonoCurses"&gt;MonoCurses&lt;/a&gt;: An API for console based applications&lt;/li&gt;
&lt;li&gt;GTK# vs Windows:
&lt;ul&gt;
&lt;li&gt;My suggestion is to consider the target environment.  If you targeting Windows, stick with WinForms.  If you&amp;rsquo;re targetting Linux/Mac, go with GTK#. &lt;/li&gt;
&lt;li&gt;Another issue that might influence your decision is that the documentation for GTK# is pretty sketchy, not very good.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mono-project.com/IOMap"&gt;IOMap&lt;/a&gt;.  Turning this flag on, will help you with some of the cross-platform development issues.  This is a portable library that will help resolve things like directory seperators, case sensitivity in paths, and that sort of thing.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A short session, which isn&amp;rsquo;t bad.  Gives me a chance to float around to check out some other things.&lt;/p&gt;</description></item><item><title>Where Should Your Tests Live?</title><link>http://www.opgenorth.net/posts/2008-04-10-where-should-your-tests-live/</link><pubDate>Thu, 10 Apr 2008 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2008-04-10-where-should-your-tests-live/</guid><description>&lt;p&gt;Thanks to &lt;a href="http://haacked.com/Default.aspx"&gt;Phil Haack&lt;/a&gt;&amp;rsquo;s &lt;a href="http://haacked.com/archive/2008/04/09/unit-test-project-structure-poll.aspx"&gt;online poll&lt;/a&gt;, there is a bit of controversy over where one&amp;rsquo;s unit tests should reside:  should the unit tests be housed in a separate project and assembly, or do they shack up in the same project as the code that they are testing?  Like &lt;a href="http://weblogs.asp.net/bsimser/archive/2008/04/09/unit-test-projects-or-not.aspx"&gt;Bil&lt;/a&gt;, I figured that rather than a big long blog comment, I&amp;rsquo;d be better of with my post.&lt;/p&gt;
&lt;p&gt;Way back when I started out with TDD, I used to put the test fixtures in the same file as the class under test, sort of like:&lt;/p&gt;</description></item><item><title>Windsor and the db4o Facility</title><link>http://www.opgenorth.net/posts/2007-12-19-windsor-and-the-db4o-facility/</link><pubDate>Wed, 19 Dec 2007 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2007-12-19-windsor-and-the-db4o-facility/</guid><description>&lt;p&gt;Once again, appealling to the niche (non-existant?) market, I give you a quick run down on using &lt;a href="http://www.db4o.com/"&gt;db4o&lt;/a&gt;, and the &lt;a href="http://www.castleproject.org/container/index.html"&gt;Castle Windsor&lt;/a&gt; &lt;a href="http://www.castleproject.org/index.php/Facility:db4o"&gt;db4o facility&lt;/a&gt;.  Yes, I know the link for the db4o facility link doesn&amp;rsquo;t work.  That is what prompted me to do this blog post. This is because, a while ago, the &lt;a href="http://www.db4o.com/"&gt;db4o&lt;/a&gt; facility was pulled from the Castle Project.  Apparently there was a licencing concern.  It&amp;rsquo;s my understanding that this has since been resolved, and I seen now that there is again the &lt;a href="http://www.db4o.com"&gt;db4o&lt;/a&gt; facility.&lt;/p&gt;</description></item><item><title>Code Cleanup with Resharper</title><link>http://www.opgenorth.net/posts/2007-12-17-code-cleanup-with-resharper/</link><pubDate>Mon, 17 Dec 2007 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2007-12-17-code-cleanup-with-resharper/</guid><description>&lt;p&gt;As most Resharpies know, when you&amp;rsquo;re using Resharper you can reformat your code. A nice feature is that you can use this reformat code to also organize and layout your code files the way you like it.&lt;/p&gt;
&lt;p&gt;For example, &lt;a href="http://codebetter.com/blogs/kyle.baley/archive/2007/12/17/removing-regions-or-quot-how-to-keep-your-code-expanded-quot.aspx"&gt;Kyle Baley did post&lt;/a&gt; on how to how to use the format code to get rid of regions. His techique is a bit unrefined - his revolutionary, dogmatic zeal he will clobber all regions and do nothing else - but still handy.   Myself, I&amp;rsquo;m a bit more compulsive / fussy when it comes to the layout of my code. Not only do I want regions gone, but I want the code to appear in a certain order. Lucky for me that Reformat Code does this for me. Here is the &lt;a href="http://www.opgenorth.net/Data/Sites/1/Files/ResharperPatterns.xml"&gt;Type Member Layout pattern I use&lt;/a&gt;. If you want to use it, just paste it into the type member layout window in Resharper.&lt;/p&gt;</description></item><item><title>Fun with Open Source: OpenDental</title><link>http://www.opgenorth.net/posts/2007-11-15-fun-with-open-source-opendental/</link><pubDate>Thu, 15 Nov 2007 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2007-11-15-fun-with-open-source-opendental/</guid><description>&lt;p&gt;The past week I&amp;rsquo;ve been dabbling with an open source program called &lt;a href="http://www.open-dent.com/"&gt;Open Dental&lt;/a&gt; - mostly trying to see if can get it to compile under Mono, and running under Linux.  I figure that this would be a good opportunity to and work with a cross platform application.&lt;/p&gt;
&lt;p&gt;According to their website, Open Dental has been supported under Linux since v4.7.  Here are some notes of my efforts so far.&lt;/p&gt;
&lt;p&gt;You will need Mono v1.2.5.  It seems that there is a problem with the Linux binary installer ( a known bug that will be corrected in 1.2.6).  I used the &lt;a href="http://www.mono-project.com/Downloads"&gt;OpenSUSE 10.2 VMWare image&lt;/a&gt; which had a 1.2.5 install all set up.  That solved my problem of getting a current Linux distro with the most recent version of Mono.&lt;/p&gt;</description></item><item><title>Javascript Didnât Rape My Dog</title><link>http://www.opgenorth.net/posts/2007-11-09-javascript-didnt-rape-my-dog/</link><pubDate>Fri, 09 Nov 2007 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2007-11-09-javascript-didnt-rape-my-dog/</guid><description>&lt;p&gt;One thing I noticed since I started doing ASP.NET programming back in 2002: I started using Javascript a lot less, and my copy of JavaScript: The Definitive Guide sits on the shelf gathering dust.  I&amp;rsquo;ve noticed a lot of developers I&amp;rsquo;ve worked with are the same way. In fact, I&amp;rsquo;d say that most of the ASP.NET programmers I&amp;rsquo;ve worked with these days really don&amp;rsquo;t know much about Javascript.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t blame Javascript itself for this - I blame ASP.NET. Developers just get used to dropping the server side controls on their WebForms, and then doing everything server side. I&amp;rsquo;ve also worked at clients which had a &amp;ldquo;no client-side javascript&amp;rdquo; rule. All of this combines to cause our (my) Javascript skills to atrophy and wither. Kind of shame, really. (note: to a degree, I think the same can be said about CSS).&lt;/p&gt;</description></item><item><title>What is Right About .NET?</title><link>http://www.opgenorth.net/posts/2007-11-04-what-is-right-about-net/</link><pubDate>Sun, 04 Nov 2007 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2007-11-04-what-is-right-about-net/</guid><description>&lt;p&gt;Recently, on one of the mailing lists I subscribe to, a member starting bashing .NET. A bit curious as to why there was this strong hatred of .NET, I posed a simple question:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;What is wrong with .NET?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The answer I got back somewhat suprised me:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I guess the standard reply is, what is right about .NET?  .NET was invented so that M$ could provide software as a service. You would end up with a minimal OS on the disk, and no applications. When you turned your computer on, it would download whatever applications you needed, or did so on demand; if your subscription was paid up.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Unit Testing Data Access</title><link>http://www.opgenorth.net/posts/2007-09-24-unit-testing-data-access/</link><pubDate>Mon, 24 Sep 2007 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2007-09-24-unit-testing-data-access/</guid><description>&lt;p&gt;One thing that I don&amp;rsquo;t like about writing tests is some of the jiggery-pokery that goes on with testing database access code. Jiggery-pokery being: ensuring the tables are there, up to date, and are holding the data that they are supposed to hold before and after the test has run. If you don&amp;rsquo;t pay attention to these details, you get a lot of false negatives on your unit tests. This will result in a loss of confidence in your unit tests. When this happens you stop running them, and loose confidence in your ability to refactor without fear.&lt;/p&gt;</description></item><item><title>Coding for Fun: Spying on Serial Ports</title><link>http://www.opgenorth.net/posts/2007-07-24-coding-for-fun-spying-on-serial-ports/</link><pubDate>Tue, 24 Jul 2007 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2007-07-24-coding-for-fun-spying-on-serial-ports/</guid><description>&lt;p&gt;Yesterday I was house-bound looking after a sick eight year old boy.  To help pass time, I decided to play around with my chronograph (to clarify: in this context a chronograph is a tool to help you measure the velocity of projecticles, i.e. bullets).  I happen to own a &lt;a href="http://www.shootingchrony.com/"&gt;Shooting Chrony&lt;/a&gt; Beta Master, which you can, in theory, hook up via a serial port to your computer, download the velocities of up to 60 shots, and use that data to help you with building up some ballisitic tables for your firearm and hand-loaded ammunition.&lt;/p&gt;</description></item><item><title>VisualSVN and VS2008</title><link>http://www.opgenorth.net/posts/2007-07-23-visualsvn-and-vs2008/</link><pubDate>Mon, 23 Jul 2007 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2007-07-23-visualsvn-and-vs2008/</guid><description>&lt;p&gt;So last night I installed Visual Studio 2008 RTM on my laptop.  This was a clean install - I did not have any beta versions of VS2008 installed.  When I went to try and do anything in VS2008, I kept getting the message &amp;lsquo;Visual Studio has encountered an unexpected error.&amp;quot;.  This error happens when I try to do anything, including VS2008.  The only way to close VS2008 was using Task Manager.  Most annoying.&lt;/p&gt;</description></item><item><title>Not So Deep Thoughts on Stored Procedures</title><link>http://www.opgenorth.net/posts/2007-04-26-not-so-deep-thoughts-on-stored-procedures/</link><pubDate>Thu, 26 Apr 2007 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2007-04-26-not-so-deep-thoughts-on-stored-procedures/</guid><description>&lt;p&gt;Lately I&amp;rsquo;ve come to the conclusion that stored procedures are more of a specialist&amp;rsquo;s tool than a generalist.  To me, stored procedures are the kind of thing you use when you need to optimize your data access, or you have to do something DB specific.  Sure, I&amp;rsquo;ve seen lots (and written lots) of stored procedures to do the basic CRUD (mostly in &lt;a href="http://www.microsoft.com/sql"&gt;SQL Server&lt;/a&gt;, but also in &lt;a href="http://www.postgresql.org"&gt;PostgreSQL&lt;/a&gt;). These days though, I almost think that one doesn&amp;rsquo;t need stored procedures for the basic CRUD, only for specific and special cases.&lt;/p&gt;</description></item><item><title>Embedded Database and .NET</title><link>http://www.opgenorth.net/posts/2007-02-04-embedded-database-and-net/</link><pubDate>Sun, 04 Feb 2007 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2007-02-04-embedded-database-and-net/</guid><description>&lt;p&gt;As mentioned in some of my previous blog entries, I&amp;rsquo;m looking for am embedded database.  At the present, I think that I will remove SQL Server CE for now.  The biggest reason is that, as part of my pet project, the application to run on &lt;a href="http://www.mono-project.com/Main_Page"&gt;Mono&lt;/a&gt; as well.  So, that kind of leaves &lt;a href="http://www.sqlite.org/"&gt;SQLite&lt;/a&gt; and &lt;a href="http://www.firebirdsql.org"&gt;Firebird&lt;/a&gt;. &lt;br&gt;
Now, in theory, it should matter much between the two for what I want to do.  I&amp;rsquo;m planning to use &lt;a href="http://www.castleproject.org/activerecord/index.html"&gt;ActiveRecord&lt;/a&gt; for my data layer, and I see that both &lt;a href="http://www.sqlite.org/"&gt;SQLite&lt;/a&gt; and &lt;a href="http://www.firebirdsql.org"&gt;Firebird&lt;/a&gt; are supported.  So, switching between &lt;a href="http://www.sqlite.org/"&gt;SQLite&lt;/a&gt; or &lt;a href="http://www.firebirdsql.org"&gt;Firebird&lt;/a&gt; will be pretty minimal.  What about stored procedures, I hear you say?  Well, truth be told, in my old age, I&amp;rsquo;ve sort of drifted away from stored procedures and look at them with a suspicious eye.  So, the fact that &lt;a href="http://www.sqlite.org/"&gt;SQLite&lt;/a&gt; doesn&amp;rsquo;t have stored procedures really doesn&amp;rsquo;t bother or impact me at all.&lt;br&gt;
I&amp;rsquo;ll do a bit more comparison between the two, and then decided from there which database to use.&lt;/p&gt;</description></item><item><title>Active Record Entry \#1.5/Genom-e Express</title><link>http://www.opgenorth.net/posts/2006-09-08-active-record-entry-1-5genom-e-express/</link><pubDate>Fri, 08 Sep 2006 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2006-09-08-active-record-entry-1-5genom-e-express/</guid><description>&lt;p&gt;Well, as predicted something did distract me from my &lt;a href="http://www.castleproject.org/index.php/ActiveRecord"&gt;ActiveRecord&lt;/a&gt; experiment.  I got a copy of &lt;a href="http://www.genom-e.com"&gt;Genome Express&lt;/a&gt; while at an &lt;a href="http://www.edmug.net/"&gt;EDMUG&lt;/a&gt; meeting recently.  Given that my copy of Genome Express was shiny and new, I installed it and began playing.&lt;/p&gt;
&lt;p&gt;My initialize impression is that it&amp;rsquo;s promising.  I was able to very quickly reverse engineer a SQL 2005 schema and get a heirarchical data model going.  I was able to generate working DAL code for a 12 table database inside of a couple of hours.  About 75% of this time was spent reading the documentation.&lt;/p&gt;</description></item><item><title>Active Record Entry \#1</title><link>http://www.opgenorth.net/posts/2006-08-17-active-record-entry-1/</link><pubDate>Thu, 17 Aug 2006 00:00:00 +0000</pubDate><guid>http://www.opgenorth.net/posts/2006-08-17-active-record-entry-1/</guid><description>&lt;p&gt;Well, after playing with &lt;a href="http://www.castleproject.org/index.php/ActiveRecord"&gt;ActiveRecord&lt;/a&gt; for about a week and a bit now, and I can say it&amp;rsquo;s kind of a love-hate relationship.  I like how easy it is to drop in a class, or to make changes to the DB schema and have that reflected in your model.  Contrawise, changing databases should be just as easy.&lt;/p&gt;
&lt;p&gt;Troubleshooting is a real bitch, and I find the documenatation a bit on the light side.  Also, on the surface, the parent/child relationships seem pretty easy to setup and configure, but I seem to be having some issues with it.  Also, a familiarity with &lt;a href="http://www.nhibernate.org"&gt;NHibernate&lt;/a&gt; definately seems to be helpful when debugging/troubleshoot.&lt;/p&gt;</description></item></channel></rss>