Category Archives: software development

What’s new in .NET Framework 4.0?

Good question. There are a few things we know about Microsoft’s managed application runtime and class library:

There will be major updates to the Windows Communication Foundation (WCF) and Workflow Foundation (WF). According to this announcement along with this post by Steven Martin we are going to see “better support for Web 2.0 technologies like REST, POX and ATOM” and a 10x performance increase in WF.

The table shown here also mentions a bigger role for XAML:

Seamless integration between WF and WCF and unified XAML model. Build entire application in XAML from presentation to data to services to workflow.

There will be a new application server codenamed Dublin, which hosts WF/WCF applications and manages messages, long-running transactions, state management. Dublin extends Internet Information Services (IIS) and will run on Windows Server – probably Server 2008 only.*

Dublin supports Oslo, which is Microsoft’s latest attempt at model-driven development. I guess Dublin is the host for Oslo applications, as this post implies. XAML is a good fit with modelling, because it is both declarative and well-suited for visual representation. Models do not have to be visual, and Oslo includes a new textual language which could also be based on XAML (?), but nevertheless there is synergy between modelling and visual designers.

Putting this together, we have a new take on Microsoft’s end-to-end stack, developed in Visual Studio with XAML supplemented by procedural code where needed, hosted on Dublin, and using WPF or perhaps Silverlight(?) for the presentation layer. Thanks to the new REST support, or the old SOAP support, you could also use other clients including JavaScript or Java.

It is all a bit perplexing if you currently think of the .NET Framework as the runtime engine and class library for C# and Visual Basic. It sounds as if .NET Framework 4.0 is enterprisey, more JEE than Java. We are seeing increasing fragmentation or more positively, diversification, in Microsoft’s .NET story. There are micro versions, cross-platform versions (Silverlight), desktop versions (client profile), and more and more pieces that only belong on servers.

How much of Oslo and the Dublin application server is likely to be implemented in Mono, I wonder? I suspect not that much, since Mono has focused in the past on the common language runtime and ASP.NET. There was no WPF support in Mono until Moonlight.

All this begs the question: is .NET becoming too complex? I interviewed Scott Guthrie, Corporate VP Developer Division, at the Remix conference in Brighton last month. I asked him about Oslo, thinking that he must be closely involved in what is, according to some at Microsoft, a major step forward in application development. His reply: “That’s not my world”.

Guthrie is a simplifier. He was one of the original developers of ASP.NET, along with Mark Anders, and as I recall, when asked what modelling tool he used he replied, “a whiteboard”. I spoke to Anders about the early days of ASP.NET and he emphasized the value of simplifying what already exists; see also How ASP.NET began in Java.

Microsoft also claims that Oslo/Dublin will make complex things easier for developers, but looking at all these pieces I’m waiting to be convinced. PDC 2008 is where we will find out more.

*According to this post “Dublin” actually refers to the next version of Windows Server itself, though this announcement says “a set of enhanced Windows Server capabilities codenamed ‘Dublin’ that will offer greater scalability and easier manageability.” I guess this comes to the same thing, and that preview versions of Dublin could either be early releases of the entire OS, or preview bits that install into Server 2008.

Microsoft’s cloud platform, multi-touch Windows 7: mining the PDC schedule

I’ve been looking at the PDC Session schedule, as posted so far. Microsoft is serious about its new cloud computing platform. For a start, count the sessions.

Out of 180 posted so far, here are the subjects with 10 or more sessions:

  1. Cloud services [33]
  2. Windows 7 [22]
  3. SQL Server [16]
  4. Visual Studio [16]
  5. Silverlight [13]
  6. Live Platform [11]
  7. ASP.NET [10]
  8. Languages [10]

That’s a huge focus on the cloud. Microsoft’s problem: the company is not perceived as a leader in cloud computing. It has two distinct challenges: first, getting the technology in place, and second, winning developers to its new platform. In mitigation, it is in theory well placed to migrate users from on-premise Windows and Office to cloud equivalents.

Here’s a few snippets about Microsoft’s cloud platform:

A lap around Cloud Services: … Learn about the pillars of the platform, its service lifecycle, and see how they fit with both Microsoft and non-Microsoft technologies. Also, hear about the services roadmap over the next few years.

Cloud Computing: Economics and Service Level Agreements: … Topics include the pricing model for the cloud computing platform, how to monetize a service, and how to reduce the total cost of ownership.

Connecting Active Directory to Microsoft Cloud Services: … Manage and secure end user access to cloud services using your existing investment in Active Directory. Enable end users to access cloud services through existing Active Directory accounts, the same way they access your intranet-hosted software today. Hear how to enable existing software to use new service capabilities without re-writes, and do it all through the use of open and standard protocols.

That last item is a big deal. Managing separate user identities for local and cloud services is horrible.

What else can we glean from the PDC schedule. Here’s a few items that intrigued me:

Windows 7: Web Services in Native Code … Windows 7 introduces a new networking API with support for building SOAP based web services in native code.

Windows 7: Developing Multi-touch Applications … This session highlights the new multi-touch gesture APIs and explains how you can leverage them in your applications.

Oomph: A Microformat Toolkit … a toolkit from the MIX Online Team, that is aimed at web developers and designers to make it easier to create, consume, and style Microformats on the web. See also here.

Concurrent programming: Microsoft Visual Studio: Bringing out the Best in Multicore Systems … demonstrations of the parallel performance analysis and optimization tools in the next release of Microsoft Visual Studio. .

Oslo of course: A Lap around "Oslo" … “Oslo" is the family of new technologies that enable data-driven development and execution of services and applications. Come and learn how to capture all aspects of an application schematized in the "Oslo" repository and use "Oslo" directly to drive the execution of deployed applications.

Generics and constructors in XAML: Microsoft .NET Framework: Declarative Programming Using XAML … Learn about XAML additions like: support for generics, object references, non-default constructors, and more.

Instant cloud apps: Research: BAM, AjaxScope, and Doloto … Hear how BAM can turn a simple specification into a web-based cloud application with the click of a button. Learn how AjaxScope and Doloto automatically instrument and rewrite your web applications’ JavaScript code for end-to-end monitoring and optimization.

Office, a big feature of PDC 2005 when the ribbon was introduced, only has 3 sessions posted so far, though there may be more to come. Normally a new version of Office accompanies each new version of the Windows client.

Another question: what is in .NET Framework 4.0, to merit a full new version number? There is surprisingly little mention of it so far.

Microsoft’s open source breakthrough

Microsoft’s integration of jQuery and Visual Studio/ASP.NET is significant and I wrote about it on the ITJobBlog. I’ve included some comments from Scott Guthrie about ASP.Net AJAX vs jQuery.

Miguel de Icaza, who works on open source versions of .NET, also says it is a “first time for Microsoft”.

Rick Strahl, who is an ASP.NET MVP and writes an excellent technical blog, says in a comment to Guthrie’s original post:

To me jQuery has easily  the most game changing component in Web Development since ASP.NET originally was released.

It is a breakthrough; but note that it comes from the developer division, which is more inclined towards open source than other divisions running Windows and Office.

Future of Web Apps London next week

I gather that FOWA 2008 London is nearly sold out so now is the time to book, if you have not already. I’ll be there.

With stock markets reeling around the world, it’s an interesting time to have a conference focused on start-ups. Still, there are always opportunities. Lean times also help to concentrate minds on what is really cost-effective; if we are in for a prolonged downturn (which looks likely), that may stimulate interest in both web-based and open source technologies.

Some of the schedule looks like more of the same, if you have been to this kind of conference before, but there are some new topics there too: “How to decrease the environmental impact of your app” is intriguing; and I’ve already mentioned that XCalibre and Amazon will be co-presenting on cloud interoperability. I’m also looking forward to Tim Bray’s session as I have not heard him speak before.

Google, Adobe, Mozilla: Open source war of words is all about owning the platform

The route to dizzying riches in this industry is to own the platform. Look no further than Microsoft, which not only sells the operating system, but also dominates the applications which run on it, from Microsoft Office on the desktop, to server products like Exchange and SQL Server, and network management software like System Center. Anyone can build applications for Windows, and plenty of third-parties have done so successfully using its free SDK (Software Development Kit), but somehow it is Microsoft that profits most.

Microsoft is still doing its thing, but attention is turning to the next generation of Internet-based computing. I touched a nerve when I asked Google’s Dion Almaer about Adobe Flash: it’s not open enough for Google, he told me. I put this to Adobe’s Dave McAllister, director of standards and open source, who assured me that Flash is all-but open, excepting (ahem) the source code to the runtime. Then he surprised me (considering he is an open source guy) by accusing Mozilla of bad faith over Tamarin, the source code to its ActionScript 3 runtime and just-in-time compiler, and remarking that Sun’s efforts to open source Java had mainly helped its competitors. I wrote this up for the Reg.

The problem is that these companies want the best of both worlds: the widespread adoption and community contributions that open source can generate, but the control and profit that comes from owning the platform.

If you can’t own the platform, the next best thing is that nobody owns the platform, which is why IBM worked to hard to get Sun to open source Java, and deliberately muddied the waters by sponsoring the Eclipse tools platform and alternative Java runtimes and GUI libraries.

Why is Google wary of Flash? Simply, because it is risky to build your own application platform on a runtime that belongs to another company. It is not enough for Adobe to say it will never charge for the runtime, any more than it is enough for Microsoft to give away the Windows SDK. Google is watching Adobe, and seeing how it is building online applications like Buzzword which competes with its own Google Docs. Companies with their own platform ambitions (Apple also comes to mind) are more likely to be averse to Flash. Oh, and look who else is building its own alternative to Flash? Yes, Microsoft with Silverlight.

Like Google, Mozilla is trying to build a browser platform that has less need of proprietary plug-ins like Flash. Although I was surprised that Adobe’s McAllister said Mozilla was using its open source contributions in the wrong kind of way, seemingly missing the whole point of open source, I was not surprised to find tensions. I quizzed Mozilla’s John Resig on this exact subject one year ago, when I wrote that Adobe and Mozilla were on course for collision.

As McAllister points out, open source also has risks, particularly the danger of fragmentation and multiple incompatible versions. Maybe Flash is better as closed-source. Still, let’s not pretend it is really all-but open source. The real issue is who owns and controls the platform, and in this case it is definitely Adobe.


Advertisement Click here for special offers including free magazine subscriptions,white papers and ebooks.

Technorati tags: , , , , , , ,

Adobe AIR runs on Linux

An email from Adobe alerts me to the release of AIR 1.1 for Linux beta, which I installed on my laptop which runs Ubuntu.

Installation is not quite so smooth as on Windows; you have to set execute permissions on the download before running it. It took only a moment though, and I soon had twhirl up and running, which is the only AIR application I use with any regularity.

The release notes say that all features are available except DRM. If you want transparency support, you must have a compositing manager like Beryl, Compiz or Compiz-fusion installed. You can also download a Linux SDK.

I realise that most of the world only cares about Mac and Windows clients, but I like today’s Linux desktop and kudos to Adobe for supporting it with AIR.

Technorati tags: , ,

The new power in computing: design-centric development

I’ve been mulling over the insights from Microsoft’s Remix 08 conference in Brighton, and in particular Bill Buxton’s contention that it was a focus on design that saved Apple, and that a focus on design is the only thing that can save Microsoft.

It is all very well to nod heads and agree that design is a critical matter; but we are generally not good at integrating design into the software development process. One of the problems is that most development methodologies that I have seen do not address this matter well. In fact, one of the problems is that we do not know how to talk about design or even what it is. When Martin Fowler wrote Is Design Dead he meant something different from what Buxton is talking about. Design is fuzzy and hard to measure.

The best I can come up with at the moment is that design is about user interaction. If software is about input –> processing –> output, then design is about how you do the input and get the output. Design is not about appearance; but it includes appearance. Design is not engineering; but design problems can sometimes be solved by engineering and vice versa. Design is not functionality; but doing the right thing at the right time is within the scope of design.

One of Buxton’s themes is the importance of transitions. How you get there is as important as what you get. This could mean visual effects, or what you have to press or click or move to get from one place to another. Think of the way Vista users get annoyed by having to go via a Network and Sharing Center to get to what they want, the Network Connections dialog; that is a design failure. Or all that discussion around Vista’s shutdown options provoked by Joel Spolsky’s somewhat unfair article. Design issues, of which there are many other examples

Design is ascendant for several reasons. One is that increased computing performance has given designers more freedom, though that also means there are more ways to get it wrong. Another aspect is that falling prices have made adequately powerful personal computers (or for that matter MP3 players) a commodity, and design is now key to differentiation. Third, the Web has focused minds on the minutiae of design, as sites compete for user attention. Macromedia’s (now Adobe’s) work with Flash has been a big influence, especially after the company joined the dots back in 2002, and started to promote Flash as a means of improving the user experience in applications.

If I reflect for a moment on the last 30 years or so of software development, it is easy to pick out ideas that have really made a difference. Object orientation. The graphical user interface. Test-driven development, and another big insight of the Agile movement, participation between all stake holders.

I suggest we should add design-centric development to that list, even though at this stage we are not sure how to do it. There’s been a lot of discussion about designer/developer workflow, and a few tools and ideas from Adobe and Microsoft that help to enable it, but this is only scratching the surface. Further, with their focus on graphics and graphical effects, they make it hard to distinguish between design and decoration.

So how do we do design-centric development? Learn from Apple and Google is one answer. Have developers and designers in the same room, or appoint more designers to the board, could be another. I think this topic is one that deserves, and will get, lots of attention in the next few years.

Microsoft’s design crisis: Interview from Remix Brighton

The Reg has posted my interview with Bill Buxton, in which he talks about the challenge of getting Microsoft to put design at the core of its products. It has a great quote where Ballmer apparently told the company conference “Change or we die”. Can Microsoft change? That’s the big question; and one commenter has already given his opinion. I have more to say on this issue; but for now do read the interview; I find it a fascinating topic.

Technorati tags: , , ,