Central Penn CodeCamp

I’ll be shilling the CAB/SCSF talk I’ve been giving at the Central Pennsylvania CodeCamp in Harrisburg, PA this Saturday.

I’ve delivered this presentation a few times now. At this point it’s more-or-less as dialed in as it’s gonna be. You know - now would be a great time to come see it, and, hey, if I can make the trip from NYC on a Saturday, so can you! :)

Looks like there will be some interesting topics

Multiple Source Control Configuration w/ CCNET

I just painted myself into a corner with our CruiseControl.NET server or so I thought. I wanted to monitor two source code repositories in our version control system (we use Seapine Surround SCM) and run a build script if code in either repository changes.

The first path I went down was to make two CruiseControl.NET projects each with their own <sourcecontrol> element to monitor the respective repositories. These trigger the same build script that builds a whole bunch of assemblies and does the normal stuff. There is a build concurrency problem when you have a check-in with files from each monitored repositories. With they way I’ve setup the build script the builds can start colliding and I got unpredictable results.

The solution? Turns out there’s a “multi” source control type that lets you specify more than one source control provider for a single project. Fantastic!

Read the details here.

Mind Your Access Modifiers

Here’s good article about the nuances of access modifiers in the .NET CLR. It’s good review and a quick read, so, uh, review and read it. Welcome to the global Internets, Evan. Good first post!

Adding to this, one of the classic mistakes is the “everything is public” approach noobs tend to take when designing their types. Bad noobs. Bad.

Instead why not consider pessimistically defaulting your access modifiers to internal or private? When you get into things like DDD you’ll often want to make your default constructor private and elect to implement factories as static methods on the type to build up an object with proper variants.

A last thing on access modifiers: why the hell is the default interface template in Visual Studio internal by default. 99% of the time I want a public interface. I’ve been in more than one code demo situation (and called out a few from the peanut gallery) where the person (usually me) forgets to make their interface public and it breaks… momentary pause… oh, it’s internal by default! A minor annoyance but yet another thing you have to remember.

Of course one could create their very own interface template that defaults to public.

Infrastructure Won’t Matter

Sun's Project Blackbox

Servers, networks, storage: I don’t want it to matter. In the coming-future it won’t matter. It won’t weigh on my mind… speaking as someone who is focused on software that models and executes business processes.

Right now, today, infrastructure matters to someone like me. You’ve got to deal with the data center when offering your software as a service. You either have to build your own infrastructure (bad idea for a startup) or find a partner that provides some mix of hardware, network, and managed services that let you pass back a good uptime; you’re only good as your server, network, database, etc.

Okay, that reality aside, I’m saying won’t. Let’s deal with that then.

Sun announced their Project Blackbox initiative recently. If you haven’t heard already, this is a really cool mobile data center product that’s essentially a shipping container chock full of water cooled low-power servers. Oh, and those containers are “stackable”… Like I said, cool.

Moving up the stack we can find evidence that the utility model about the services behind the hardware and bandwidth.

Media Temple just launched their Grid-Server service, a grid computing infrastructure for hosted web applications. In this you get a “container”, essentially a virtualized server that is clustered and scaled transparently across a distributed computing environment. The neat thing here is you’re charged based on utilization of what they call a “Grid Processing Unit”. The same “virtual container” technology is seen in Amazon’s Elastic Compute Cloud and Simple Storage Service.

In both cases you have highly scalable, reliable, and affordable solutions for hosting software applications. 100% turn-key. Drop your app code in and run.

Servers, network, bandwidth, storage… these things simply won’t matter to people like me in the near future. The capacity will just be there; predictable costs to throw into a project’s budget. A cost I’d expect to consistently drive lower as the people who do care about infrastructure consolidate, innovate, and compete.

NJ CodeCamp III

It’s been a while. Busy times…

I’m giving another talk on CAB and SCSF at the upcoming NJ CodeCamp III this Saturday, 11/18. It’s at the Microsoft offices in Islen, NJ. Registration is through the Microsoft events app, right here.

This version of the talk will be light on theory and heavy on code (in the spirit of CodeCamps). We’ll go through setting up a CAB application using SCSF, structuring modules, the ActionCatalog service, Commands, UI Extension Sites, state management techniques, etc.

It looks like there are some good sessions on the docket. If you’re in the NJ/NY area, get registered and join the fun.