Re.Mark

My Life As A Blog

Archive for October 2007

Internet Platforms

with one comment

Marc Andreessen has posted about the types of platforms you encounter on the internet.  You can read the post here.  He describes three types:

  • The Access API
  • The Plug-In API
  • The Runtime Environment

The Access API is where a "traditional web" API is provided (probably a web service API exposed as SOAP or a RESTful interface.)  Your code runs outside the platform (think using the Flickr API on your blog.)

The Plug-In API, long common in desktop apps, is starting to appear on the web – e.g. Facebook apps.  Your code still runs outside the platform, but it appears within the platform.

The Runtime Environment provides an environment in which your code is hosted and runs.  Something like Popfly is an example of the third type – but, interestingly, allows you to consume and combine the first type.  This third type of platform lowers the barriers to programming – by providing a hosting and runtime environment and, in the case of Popfly at least, loads of examples – and sharing the results of your programming adventures.

Advertisements

Written by remark

October 10, 2007 at 10:21 pm

.NET 3.5 source code available

leave a comment »

In case you haven’t noticed the buzz, Microsoft are making the source code for .NET 3.5 available for download.  Full details can be found here on Scott Guthrie’s blog.

Written by remark

October 3, 2007 at 10:21 pm

Posted in .NET, c#, General, Software, Tools

The Service Bus

leave a comment »

In any reading or discussion about Service Oriented Architecture, it’s nearly impossible to avoid the concept of the Enterprise Service Bus.  First off, it has a great name – sounds like something Captain Kirk uses to get to work.  Secondly, it seems to be the Answer.  It connects everything together and routes and mediates and adapts and does other stuff like that.  In addition, some of these ESBs have automatic deployment and built-in development tools.

Of course, no-one can quite agree what an Enterprise Service Bus is.  Nicholas Allen, in a post about various definitions, notes:

“When I first read about ESBs in 2003, I didn’t expect to still be trying to understand them more than four years later. In comparison, there have been other technologies that in the same time frame were introduced, developed, matured, and obsolete.”

I’ve even read Enterprise Service Bus – which explains what an ESB could be in a java-centric way – and, yet, there’s this nagging doubt.  The first problem is the lack of consensus on what an ESB is or should be.  The second problem is the sheer scope of the included functionality.  I don’t like TVs that have integrated DVD players so I’m going to need some convincing that bundling the routing, transport, adapting, mediating, deployment and development into one piece of (often proprietary) software is a good idea.

Another problem with the ESB concept is the startling lack of ESBs in the .NET space.  There’s plenty in Javaland, but few, if any, in .NET.  At first, it’s easy to take this apparent gap as Microsoft missing something.  However, I’ve come to think that there may not be one in .NET because you don’t need one.  You do need transport.  You may need routing and mediating.  You might even need all the rest of the functionality of an ESB.  But you can get what you need and plug it together.  Doing so allows you to build as much infrastructure as you need when you need it, which means you can focus on delivering some useful software instead of an expensive infrastructure project.  There’s plenty of technologies you can use to implement this sort of approach (think WCF, MSMQ or JMS, BizTalk.)  There’s even guidance from Microsoft about building an ESB or you could look at Udi Dahan‘s NServiceBus project.

This modular approach has a lot to recommend it.  But it doesn’t have a cool name.  Now, if we can sort that out, it might just catch on.

Written by remark

October 1, 2007 at 10:54 pm

Posted in .NET, Architecture, c#, Design, Development, Java

Tagged with , , ,