2 Great Technologies that Taste Great Together

If you like C++ and CLI, you’re going to love ECMA TG5 of TC39. Task Group 5 of Technical Committee 39 is going to tackle C++ bindings for CLI. Since it’s starting from a draft to be submitted by Microsoft, I assume they will be using all the existing keywords like __gc, __value and __property. I wonder if they’ll strip out the double underscore prefix?

BTW, if you think the C++ / CLI combination is a waste of time, I say don’t knock it ’till you try it. If you’re wrapping an existing codebase with a C or C++ API, it’s much easier to expose a managed interface with MC++ than C#. Don’t believe me? Go take a complicated C structure like WSAQUERYSET and implement it via C#.

Back in Blog

I did say I was going to go dark for a while. Of course, I wasn’t expecting to burn my hand on the BBQ grill, get a toothache or for my son to come down with what might be Whooping Cough.

One of the things I’ve been up to is updating my blog software. Well, not as much updating as migrating to DasBlog. I’ve made a bunch of changes to support my current functionality as well as my look and feel. I’ve even built a CDF feed for DasBlog. Clemens wants one. DevHawk currently has one. I’m still trying to figure out how to do my projects and articles sections. It does mean that many of my existing links will break, but I am working on path rewrites to minimize the hassle.

While I’ll be using DasBlog on my personal blog, I’ll also be working with ScottW on .Text. DasBlog rocks as a single user blog, but .Text is a great engine for a hosted weblog community.

Los Angeles: Still Here, Still Ugly

I’m in LA today for about 9 hours. This figures to be one of my last business trips for my old role: introducing a member of my old team to one of my old customers. My wife tells me it’s beautiful back home. Here, it’s overcast and ugly.

I’m sitting in a Starbucks killing an hour before I go pick up my old teammate. Everyone has their favorite coffee spot that they are loyal to. I’m loyal to Starbucks because they’re everywhere and many of them are WiFi hotspots. Extra bonus: today is “One Unwired Day” by Intel, so access is free.

Geek Dinner Alert

Geek dinner alert. Next Thursday night. 6:30 p.m. At the Crossroads, near Microsoft. Everyone is invited.
[The Scobleizer Weblog]

I guess it was just bad timing and not, in fact, a conspiracy to keep scheduling these on days when I am out of town. I should be able to make this.

First Day on the New Job

Not much accomplished, but it was only my first day. I hear this rumble of the coming avalanche of stuff to do but it’s not here yet. We had a team meeting where we did introductions. The team is pretty much evenly split between people who I knew before today and people who’s names I haven’t learned yet. First meeting with the boss is tomorrow so I’m guessing that’s when I’ll get buried in work.

One of my new teammates is Simon Guest, who gave me a shout on his blog today and added me to his very exclusive blogroll. I’m making some big changes to my blog tool (more on that later) but I’ll return the favor soon. In the meantime, check out Simon’s new book: .NET and J2EE Interop Toolkit. Everyone on this team seems to have a niche, Simon’s is .NET/J2EE interop. Not sure what mine will be yet (other than community, natch).

Over the weekend, I had an email discussion with Jimmy Nilsson that started when he asked if I’ll be working more with application architecture or interop architecture. As far as I understand, I’m responsible for fostering community for all types of architects. This would include at least strategic, applicaiton, interop, data, infrastructure and security architects with others added as appropriate. (For example, do we need to call out a unique messaging architect or is that just part of infrastructure?) However, we got a little confused over the use of the term “application”.

I’m going to try and use the terms from our Application Architecture Conceptual View (written by two more of my new teammates Maarten Mullender and Mike Burner). Part of the issue is the overloading of terms like “service” and “process”. In particular, I’ll be using the following terms from the Application section of the conceptual view:

  • Business Service – A service exposing mission critical enterprise data. In crude terms, take a typical three tier architecture, and replace the presentation layer with a service façade. I’ve been known to call this a “data-oriented” service.
  • Process Service – A service that ties together other services into a larger business process. These services could be business services or other process services. I’ve been known to call this a “task-oriented” service since business process is typically tied to business tasks.
  • User Interface – A system that is designed to interact with a user and leverages one or more services on the back end. I’d like to call this an application, but I’m worried people will think I’m talking about a tightly coupled system rather than a UI on top of a set of loosely coupled services.

Maybe, as a community, we can come up with standard definitions or even better names for some of these elements.

BTW, just because I’m avoiding the use of the word “application” doesn’t mean that application architecture goes away. If you look at books like P of EAA, there are patterns for building user interfaces (such as web presentation and session state) and patterns for building business services (such as domain logic and data source). Even if the business services and user interfaces are separate and loosely coupled, these patterns are still entirely relevant.