Archives
-
Consultant Rate Worksheet
I know this really falls under “Business Info” and not the typical tech discussions, and I hope it isn't too far in the noise category.
-
NJ/NYC Bloggers Dinner/Meeting 12/18
I know this is short notice, but if anyone in the NJ/NYC area wants to get together with a bunch of other .Net bloggers, we are meeting up at the NYC .Net meeting tomorrow 12/18. I had planned on hooking up with Sean Gerety and some of his coworkers this week, and then Tim Marman suggested meeting at the NYC .Net meeting. We will be going out for dinner/drinks afterwards.
-
Object Constraint Language
Geez, I don’t know why I haven’t bumped into this before, but while doing some research on Test Driven Development for my current client, I ran across the Object Constraint Language. [corrected his name from Josh to Jason. doh!] Jason Gorman has released a cool slide deck on OCL for .Net developers that you should check out (plus check out the other slides on UML for .Net developers). You use it to supplement your UML diagrams. Instead of having free form text in the UML constraints, you use OCL instead. The thing that I like about it is that it is totally declarative. It is an expression that can only evaluate to true or false. OCL is also a C like language, so it is easy to convert to C#. Josh talks about the different ways we implement constraints in our code. There is the Debug.Assert() method, which most C++ programmers use (Design By Contract), and the Defensive Programming version, throwing Exceptions. Since Debug.Assert isn’t a viable way to implement constraints in .Net (it throws a PopUp Box and is meant for debugging only), most .Net developers use the Defensive Programming style. That is, before you do any real work in a method, you check the pre-conditions and throw exceptions if there is a problem. This is the style that I’ve been using in most of my apps.