- New version of dasBlog is out, the final version on ASP.NET 1.1 (unless this release “kills a kitten” as per Scott Hanselman). I don’t have the time (make the time?) to run daily builds, but I do try and upgrade to new major releases in a timely fashion. I’m also moving hosters, so expect a little downtime around here at some point in the near future.
- Matt Winkler is doing a series on alternate WF execution patterns. His first is the N of M pattern. While I can nitpick some things in WF – especially the limitations of transaction flow – WF’s support for variability and extensibility of execution patterns is fraking brilliant. (via Sam Gentile)
- Joe McKendrick is all excited about a SOA built without web services! We’ve been “doing SOA” since the EDI days without web services, so I’m not sure this level of excitement – with an exclamation point and everything – is warranted. But it is good to see people realize web services != SOA. Instead of web services, CERN is using JMS to move messages around. I don’t know much about JMS, but I do know it supports async and durable messaging, two things I think are critical for enterprise services.
- I saw on LtU that there’s a new paper on Singularity out. For those who don’t know, Singularity is a MS Research platform designed for reliability instead of performance. But there’s more than just a new paper. According to the project home page, “Singularity Version 1.0 is complete. We’ve shipped the Singularity Research Development Kit (RDK) to a small number of universities for their research efforts.” I wonder if I can get my hands on that RDK?
- Jeff Atwood is starting to show ads on Coding Horror, but he’s donating “a significant percentage” of the ad revenue back into the programming community. He’s starting with $5,000 and Microsoft is matching for a total of $10,000 to be donated to open source .NET projects. Go tell Jeff which projects you think he should donate to. Castle seems to be an early favorite.
- On Monday, Nick Malik posted what he called the Simple Lifecycle Agility Maturity Model (aka SLAMM) as a way of measuring your “agile factor”. Surprisingly, the community response has been zilch. After Nick’s comments on Agile last week, I figured someone would have something to say about it, even if only to slam it. (Slam SLAMM, ha ha.) Maybe nobody opened the spreadsheet and saw Mort has an agile factor rating of 71%? Personally, SLAMM seems like a rather coarse tool for measuring how agile you are, but coarse tools are better than no tools at all.
Morning Coffee 95
The Myth of the Service Catalog
Normally, I would simply note that Nick Malik had finally moved on from the Great Mort vs. Agile Debatetm in my next Morning Coffee post and be done with it. But man, his post on the Unimportant SOA Catalog is just too good to leave until then…
Nick has come around to the view that the catalog does “a really good job of solving the wrong problem”. I agree 100%. I haven’t talked about it much here, but my teammates could tell you I have been on a rampage about this internally. People think a service catalog will create adoption and reuse. That suggests that the big obstacle to service adoption and reuse is simply the issue of finding something to adopt or reuse.
It’s not.
The next PM I meet who says “I wish I had a big catalog of services so I can search for something that I can take an external dependency on” will be the first. And they’ll probably be wearing a straightjacket, because looking for dependencies on purpose like that is crazy talk. Project managers avoidexternal dependencies like the plague. So when a PM looks at a service catalog, what they see a big list of stuff they don’t want to take a dependency on. Not exactly the mindset to stimulate reuse and adoption, is it?
Nick suggests that a catalog might work if it was small (20-50 services) but not for hundreds or thousands of services. I think it’s a culture issue not a scale issue, so I don’t think it would work even for a small number of services. But in the end, it’s a moot point since he expects a large number of services. Different reasons, same conclusion. ’nuff said.
However, while I rail against wasting time building a service catalog that won’t do what everyone thinks it will do, I haven’t had a better idea.
Nick does. The Periodic Table of Services. Go read. More of my thoughts on this later.
What is the Rails Question?
Nick Malik asked “what is the Rails “answer” on the Microsoft platform? If we don’t install Ruby, do we use Rails on JS or is there a Rails version we may want to put up ourselves?” I guess it depends, what is the Rails “question”?
On the one hand, the question could be “What’s the best way to run Rails on Windows?” I think the short answer to that is IronRuby. In the wake of the IronRuby announcement, John Lam wrote that “Nobody would take our implementation seriously if it doesn’t run Rails.” Somepeople question the DLR’s teams ability to ship a compatible version of Ruby without looking at the source, but my money is on the DLR team. (Of course it is, I’m a kool-aid drinker!)
BTW, I don’t think having a JavaScript port of Rails (JailS?) is much of a help for the Microsoft platform. I’m not sure if Steve Yegge’s JavaScript Rails port would run on JScript.NET, but I wouldn’t bet on it. I would expect you need either the old Active Scripting JScript or the new Managed JScript (aka the DLR based version of JavaScript). Of course, IronRuby runs on DLR as well so why wouldn’t you just run Rails on IronRuby instead of the JavaScript port of Rails on Managed JScript?
(Side note – why isn’t the new JScript engine called IronJavaScript? Wouldn’t that be cooler than Managed JScript? Don’t they know “Iron” is the new “#”?)
On the other hand, maybe the question is “can ASP.NET evolve to be more Rails-esque?” I think it’s starting to, slowly. Rails at it’s core is a Model View Controller web app pattern (aka Action Pack) combined with an Active Record data access pattern (aka Rails’ Active Record). Certainly, nothing stops you from using a similar approach with ASP.NET. The Castle Project has an ASP.NET implementation of MVC (aka MonoRail) and Active Record (also called Active Record). But I assume Nick’s more interested in what ships natively in the platform to compare to Rails.
On the data access side, I think LINQ to SQL is a a compelling alternative to the various Active Record implementations. It’s not an implementation of the Active Record pattern, it looks more like a Table Data Gateway patten. Also, it’s not DRY like Rails Active Record, but I think that’s more of a function of dynamic vs. static languages. Castle Active Record isn’t DRY either. But once you get the hang of the slightly funky syntax (the from clause is first so you can get intellisense) I find LINQ very easy to use. Certainly, building Query Objects is a snap.
On the web app framework side, the story isn’t so pretty. The agile folks like MVC because it’s easier to test (among other reasons – see update below). Apparently, there’s an ASP.NET MVC framework that’s “in the works”, but AFAIK no one has seen or heard anything about it since the MVP summit. Jeffrey Palermo was impressed with what he saw, but I guess everyone else has to reserve judgement until it gets a little more public.
Actually, I don’t think it’s an either-or question, it’s both. In order to be the Common Language Runtime, I think it needs to support common dynamic languages like Ruby, Python and JavaScript natively. And, in order to be the best platform, I think the .NET Framework in general and ASP.NET in particular need to support multiple approaches to meet the needs of different developers.
Update: in the comments, Jeffrey Palermo points out that he likes MVC “mostly because it separates concerns of controlling screen and rendering the screen. It makes the application more maintainable and keeps the code easily changeable.” Point taken. I didn’t mean to imply that testability was the only virtue of MVC.
Morning Coffee 94
- By most accounts, the Capitals had a good draft this weekend. They started the day with ten picks across the seven rounds. The ended the day with ten prospects as well as three extra picks next year, including two second rounders. According to the GM George McPhee (aka GMGM), next year’s is “supposed to be a terrific draft” which is probably true but what you always say when you trade down for future picks. On the other hand, if the guys you want are available further down, why not stock up on the future picks?
- John Lam reports on Steve Yegge’s Rails port to JavaScript that he saw at Foo Camp. Google (aka Steve’s employer) wasn’t interested in adopting Ruby or Rails since they already use C++, Java, JavaScript and Python. So Steve ported Rails to JavaScript. Wow. However, it does beg the question which is more valuable, Ruby or Rails? If you could have just one or the other, which would you choose?
- Speaking of dynamic languages, Powershell Community Extensions v1.1 is out. I want to check out the new Elevate function. Currently, I’m using the Script Elevation PowerToys, but I would rather have a pure PS solution. (via Powershell Team Blog)
- I always know it’s a slow day when I decide to check TechMeme while writing my Morning Coffee post. Usually, I get plenty to write about from just my news reading. However, right now, even TechMeme seems mostly uninteresting. Only thing remotely interesting to me is Samsung’s new 64GB solid state drive.
Home Networking Question
I’m a software guy, so here’s a couple of home networking questions I’m hoping one of you readers can answer. My internet connection (cable) comes in upstairs in the loft (aka where all my computer stuff lives). My TV and Xbox are in the living room on the opposite side of the house, downstairs. Between the distance and general house interference, the network perf in my living room stinks, with both my laptop and Xbox.
I’d basically resigned myself to running Cat 5 cable from my living room to the loft, which is a pain because it would have to run thru the crawlspace and up the side of the house to the loft and punch in thru the outside wall. Frankly, I haven’t been able to make the time commitment to do that yet.
I was checking out the Linksys site and right there on the homepage is a promotion for their Powerline products. Now that would be MUCH easier than running Cat 5. But how good is it, really? They claim “Data rates up to 200Mbps”, which is plenty fast if they really reach that throughput. Anyone out there had any experience with this Powerline stuff? For around $200 and getting to skip running cable under the house, it’s probably worth it for me to take a shot. Worse that happens is that I have to take it back.
Regardless if I use powerline or run Cat 5, that solves the Xbox problem but I still want a stronger wireless signal on that side of the house. So for my second question, what’s the word on multiple access points? Should I set up multiple wireless APs or should I set up a repeater somewhere in between to boost the signal. I’m actually looking at getting a new wireless router/AP anyway, so maybe I could just get one of the ones with some type of range boost. I currently have a now-discontinued MN-700 (what do you want, I’m a company man) so it’s a good time to get a new AP anyway.
Another option to the wireless strength question is the AuraGrid, which tunnels your wireless antenna signal over the coax cable in your home to give you multiple antennas all over the house. So I could easily add a wireless antenna wherever there’s a cable jack. Anyone have any experience with that product?
Anyone who wants to give me free advice, feel free to leave a comment or drop me a line. Thanks in advance.