| Unhandled Exceptions |
Miscellaneous musings on life, .NET development, and related things that don't really matter
- Recent
- Popular
- Tags (0)
- Subscribers (1)
- Retrospective on the past 365-day IterationJanuary 3
-
As 2008 comes to an end and 2009 starts to ramp up, I thought it might be interesting (for me at least!) to look back at some of the important events and changes in 2008 that have most impacted my professional life as a software developer.
The Year of Community
If I had to sum-up what 2008 has meant to my professional career in a single word, I would have to say that the word would be ‘Community’. 2008 for me was my year of ‘community engagement’. Although it really mostly happened by random mistake rather than a coherent plan, looking back on 2008 I can see now that it was the year that I really started to dig into interacting with the larger .NET community in a way very different from how I had done so in the past.
Prior to 2008, I was a *user* of open-source .NET software, a *reader* of blogs, and a *viewer* of screencasts. During 2008, I became a *contributor* to open-source .NET software, a *writer* of blogs, and an *author* of screencasts. In essence, I moved from ‘passive’ to ‘active’ in the community.
Summer of NHibernate
Clearly a lot of my exposure to the community is the result of my decision to take some of the materials that I had assembled for my company’s own internal informal weekly training sessions (our weekly ‘Dine and Discuss’ sessions) and repackage them into screencasts for the larger community to start to benefit from.
Response to the
- NYC CodeCamp 2009 Schedule PostedJanuary 1
-
The semi-confirmed schedule for the 2009 NYC CodeCamp has just been published at http://nyc.codecamp.us/blogs/announcements/archive/2008/12/31/code-camp-session-schedule.aspx. Even if the schedule changes ever-so-slightly between now and 1/10/2009, the actual sessions are pretty much locked-in at this point so the schedule gives a pretty good sense of the topics that will be covered and who’s covering them (myself included).
Register Now or You Can’t Come!
This event is nearly upon us so if you’re planning on attending and haven’t yet registered you are encouraged to do so at the following Microsoft Events link:
https://www.clicktoattend.com/invitation.aspx?code=134146
AFAIK there are still available spaces for new attendees to register if you haven’t yet done so. Look forward to seeing as many there as can make it!
Good News If You Cannot Attend
If you cannot attend but would still like to see the session I’m delivering on TDD, the following materials will be posted to my blog once the event is over…
- the whole Powerpoint slide deck (I will be delivering only a sub
- NDepend 2.x Review: HOLY CRAP! THIS THING IS FREAKIN’ AWESOME!!!December 30 2008
-
I’m ashamed to admit it, but over three months ago (in late August 2008 to be exact!), I was contacted by Patrick Smacchia who is (among other things) the author of the NDepend software metrics reporting and analysis tool. Patrick asked if I would take a look at the product in its recent incarnation, evaluate it, and maybe post some of my comments on my blog for others to see and (I’m sure) help raise the awareness of NDepend among some of my regular readers (and the Internet at-large thanks to Larry and Sergey over at the Big-G).
Excuses, Excuses, Excuses: I’m Embarrassed
Then things got a little nuts at work, the work on the Summer of NHibernate series spiraled out of control from the originally-planned five installments to the final 15 parts it ended up including, and I generally lost all track of my commitment to him. But it was always in the back of my mind that I’d made a commitment and it bothered me that I never managed to follow through for him. He reached out to me as a fellow developer, I offered to take a look, and then I did…nothing

The Internet ‘Promises vs Action’ Deficit
I’m sure Patrick’s gotten commitments from all kinds of people to review his
- CR_ClassCleaner build updated for DXCore 3.2.3December 29 2008
-
For background on this post (and why its needed), go read my prior post CR_ClassCleaner (and CR_Documentor) builds updated for DXCore 3.2.2, but suffice it to say that DevExpress has updated its DXCore runtime (and the corresponding versions of CodeRush and RefactorPro!) to v 3.2.3 and this has meant the need to recompile the CR_ClassCleaner plugin upon which I rely.
Since others rely on this same tool, as a convenience for the community I am (again) posting the updated binary for this plug-in so that others can get it and make use of it.
Here’s the link to the download:
http://unhandled-exceptions.com/downloads/CR_ClassCleaner_DXCore3.2.3.zip
Astute readers will note that unlike when DXCore 3.2.2 was released and I posted updated binaries for both CR_ClassCleaner and CR_Documentor, this time I am posting only an update for CR_ClassCleaner. For whatever reason, while the prior update ‘broke’ both my CR_ClassCleaner and CR_Documentor plug-ins, this latest point release of DXCore seems to have only br
- Services, Anemic Domain Models, and ‘Where does my Business Logic Go?’December 26 2008
-
The other day I received some feedback on the way the Domain Model in the Autumn of Agile series is shaping up. The relevant parts of the e-mailed comments are as follows…
I am a little confused about where to put the business rules. Into model objects or in a higher level layer (such as a service layer) ? For example take AddSkill method on Employee class in Skill Project. Logically, user cannot assign same SkillType to an Employee. Business rules are changeable, and for that they should handled on a higher layer as principle.
First, as I told the commenter, thanks very much for the feedback; I really appreciate the input, especially when it goes to such a great point! Because this tension between assigning responsibilities to either services or domain entities in your domain model is a frequent point of confusion among software engineers everywhere, I asked for and received approval to turn my response to him into a blog post so that others could understand my thought process on this kind of decision, so here goes…
Patterns for Business Logic in Domains
I think that the reason there is disagreement (or at least different opinions) on the Internet about the direction to follow in regards to the ‘proper’ location for business rules is that the simple answer is (like most software architecture choices): "it depends"
