Technology Brainstorm
October 10th 2007, 12:35 am in Agile Development, Castle, Monorail, Personal, TDD, Windsor.
Recently Plastiscenic has been asked to quote for a fairly large project, and if it comes off I’ll have the chance to work on it from the ground up, using whatever technologies I think are best suited.
For a few months the term “ALT.NET” has been gaining traction on the blogs I read, starting from a post by David Laribee in April. From there it has taken off, with an ALT.NET Conference taking place this week. So it’s perhaps timely that Sam Gentile has written a post entitled “Goodbye CodeBetter and ALT.NET” which talks about the ALT.NET movement and some of the people surrounding it.
ALT.NET is Divisive
ALT.NET is a divisive thing. No matter what they tell you.
So says Sam, and I’m in agreement. The ALT.NET conference is so cliquey that it hurts, and that’s really highlighted by an interesting bit of news that came out yesterday regarding Microsoft’s upcoming MVC framework. I think it’s interesting that they’d talk about it at a conference where most of the people will already be using this sort of technology. Just as I find it pointless that you’d go to a conference to discuss the stuff that everyone there already knows. DDD, BDD, MVC - these aren’t things that will be unknown to people attending the ALT.NET conference.
ALT.NETter A: so… heard of that new BDD business?
ALT.NETter B: Yep.
ALT.NETter A: Oh, well there’s this great new idea called DDD!
ALT.NETter B: Yeah, right into that too.
ALT.NETter A: Oh.
And so on. But wouldn’t that conversation have been a whole lot more interesting if the second developer hadn’t heard of those ideas?
The View from on High
The ALT.NET conference is barely about the underlying technologies or ideas. It mainly serves to allow all of the ALT.NET developers to come together to talk about how great it is that they are all ALT.NET. Us, and them. Back to Sam:
I am not going to use the term “Morts.”
Good, because it’s an offensive term, but it’s one that’s being thrown around by the ALT.NET gang with abandon. Scott Hanselman, a great blogger, had this to say from the conference:
Mort is crying because mommy and daddy are fighting.
That’s the kind of patronising way in which the term is being used; I mean come on, the damn thing is short for “mortal” which is a pretty clear indication of how the people who use “mort” think of themselves: Gods of their domain. Overseers of the lower developers who haven’t had the resources, or the guidance, to work with the fantastic array of non-Microsoft technologies that exist.
And in order to address that imbalance, the ALT.NET mob organise an enormous desert circle-jerk, and I call bullshit. If they really wanted to change things then they should be writing about their techniques in detail, coming up with introductory guides to DDD, TDD, mocking, creating screencasts, or giving talks at mainstream conferences, or producing tools to make the level of entry to these technologies lower than it is.
Abandon ALT.NET - Before it Goes Too Far
A lot of people in the ALT.NET camp may not feel that they’re being divisive but I can tell you that by propagating this idea you’re creating a line in the sand, with the highly-knowledgable on one side and the masses on the other. You’re not encouraging dissemination of your information, you’re just creating another impenetrable gang of developers that is almost opaque to the guy on the ground.
UPDATE: I’ve updated this post on my LosTechies blog - see Why ALT.NET?
HotSwap for Monorail - In Action
September 23rd 2007, 12:08 pm in .NET, Agile Development, C#, Castle, Monorail, Screencasts, Windsor.
Ayende quickly posted something called HotSwap, which is a little snippet of code which uses a FileWatcher, Windsor, and on-the-fly code recompilation to increase your productivity. With ASP.NET, building your code changes causes an appdomain restart, and you will typically have to wait a few seconds for the appdomain to come back up before the browser will display your changes. This basically means that when working with ASP.NET, there are no quick code changes - you always have that four second wait till you see the effects.
HotSwap resolves this by building your code for you when it detects a change. Using Windsor it can swap out the old assembly containing your code and replace it with a new dynamically created assembly containing your new code - all automatically. The key advantage of this is that it’s all done in-memory, and none of the DLL files in the bin directory change. This means that you won’t trigger an appdomain restart and your changes can be seen almost instantly!
I was really impressed and excited by this approach so I did a very quick screencast on the topic. I was using the Castle RC3 MSI, and created a project with Windsor integration enabled. This code only works for your controllers at the moment, but a lot of the time that’ll be where you need this kind of productivity boost.
Ayende - cheers for this, and I’m sorry if I pronounced your name wrong as I’ve only seen it written down!
UPDATE: I’ve uploaded the HotswapTest Project from the screencast. You’ll probably need the Castle RC3 MSI installed to build it.
Resharper - Don’t Delay, Try Today!
April 23rd 2007, 8:52 pm in .NET, Agile Development, C#, Visual Studio.
Jetbrains have announced that Resharper is moving to a new evaluation model which will make it easier to try out their outstanding Visual Studio extension. Previously, if you wanted to test Resharper you’d have to download it then request an evaluation license. But now you can simply download, install, and enjoy 30 days of developing pleasure.
Resharper includes improved Intellisense, refactoring options, better error highlighting, reformatting options, code generation, and lots more features guaranteed to put a smile on the face of any developer. If you’ve never tried it, I urge you to get along to the Jetbrains site and download Resharper.
Over the past three months I’ve been working on a project all on my lonesome. Despite the fact that there’s just me developing on this, there are actually four (yes) computers involved in the process.
1. Development machine (Windows Vista)
2. Build server (Windows Server 2003)
3. Source control server (FreeBSD I think)
4. Deployment server (Windows Server 2003)
Writing this I’m thinking: “do I really need four computers?”
(more…)
After a little bit of encouragement in the comments, Marc-André Cournoyer has come up with an excellent command-line generator for Monorail and ActiveRecord. I wanted to use the scaffolding generator to dump out editable templates for a quick administration system, but his initial release didn’t support the .rails extension or Areas. Marc promptly wrote this in and he now delivers an excellent way of achieving what I wanted. Thank you Marc. Now make it do a UI for many-to-many relationships and I’ll be a very happy man!
Martin Fowler talks about Code Ownership and seems to favour Weak Ownership of code:
Weak code ownership is similar [to strong code ownership] in that modules are assigned to owners, but different in that developers are allowed to change modules owned by other people. Module owners are expected to take responsibility for the modules they own and keep an eye on changes made by other people. If you want to make a substantial change to someone else’s module it’s polite to talk it over with the module owner first.
This method of ownership boils down to a simple rule - be polite. You can do whatever you want but just don’t tread on people’s toes, don’t change things that will break other apps, don’t change public interfaces.