Further Visual Studio 2012 details were among the most eagerly awaited at this week's Microsoft Build developers'...
conference in Redmond, Wash. Included in the Visual Studio 2012 tool set is an important update to the .NET framework.
Additions to the company's flagship development framework, now dubbed.NET 4.5, bring special support for writing asynchronous code, support for the new F# functional language, runtime performance enhancements and, most importantly, increased simplicity of development.
Long central to NET 4.5 has been Windows Communication Foundation (WCF). With this .NET release, WCF improvements also target faster development. Simplification is a major driver in the new release, according to Cesar de la Torre Llorente, software architect for Visual Studio (VS) and .NET.
Client configurations are less complex, he said. "When WCF started, you needed to learn all the [Web services] specs for building endpoints. That meant all the parameters, all the address bindings, all the contracts," de la Torre Llorente said. "Once you knew it, it was OK. But it was kind of a whole world with a lot of combinations and possible configurations you had to learn."
With WCF 4.5, Microsoft has "simplified what you need to configure," he said, referring to the overarching configuration pattern as "configuration by convention."
HTML5 Web Sockets
These Microsoft moves reflect general industry trends. Simplified configuration is a goal in new Java updates, and cloud computing schemes. Other changes to WCF, such as improved support for HTML5 Web sockets, also reflect overall industry themes.
"Configuration has always been one of the biggest challenges to WCF developers, in particular those new to the platform," said Michele LeRoux Bustamante, architect consultant and WCF trainer with IDesign. With the new WCF version, "there are significant new features to improve this experience."
The traits she points to are: "Tooltips to help you understand the feature, Intellisense to help you get it right the first time, validation to help you catch invalid settings as compiler warnings, and an easier way to setup configuration in code.
"Web sockets are even more important. This is a feature of HTML5, and definitely an important part of building a rich user experience where the server can push updates to the client without polling overhead," she said.
Drive to programming simplification
A larger move to simplification has taken place somewhat outside the realm of WCF, which, like competitive Java-oriented architectures, grew up with a focus on Simple Object Access Protocol(SOAP). As the Web has grown, more and more application needs are met with Representational State Transfer (REST) techniques, with SOAP confined to narrower use cases within enterprises.
The enterprises support a variety of transfer protocols, and there WCF has a play. REST is largely confined to HTTP-based transport. Granted, the vast landscape of HTTP and the Web can hardly be described as "confined."
Microsoft's vision for WCF, from the beginning, was the unification of all the technologies it had for remote computing. "The word that defines WCF is 'decoupling,'" said de la Torre Llorente. "It is decoupled from the transport protocol, from the data format and so on.
"It's great from an architectural point of view. On the other hand, sometimes what you want is simplicity," he said. In terms of simplicity, REST-over-HTTP has been a big success story.
While WCF can be used to create "REST-ful" apps over various transfer protocols, even Microsoft will tell you that its ASP.NET Web API is the ready means to Web-oriented REST development. Web application programming interface (API) is completely coupled to HTTP, de la Torre Llorente noted.
While there is nothing exactly comparable to WCF in J2EE, there have been similarities. Both employ patterns for middleware integration and component architecture, and both have come to be seen as overkill for simple Web application creation. Web application building is a truly prevalent need today. And, Web apps, it turns out, benefit from a simpler, lighter weight software architecture.
Agile development methods
If Web app building is simpler, that benefit is offset by the number and frequency of Web apps for which businesses call. So, speedy and agile development is increasingly important.
In fact, the need for agility may reign supreme among programming requirements today. That need drives Microsoft's moves, development leader Soma Somasegar told a crowd on hand recently for VS 2012's formal launch. He pointed to updates to the company's team-oriented version of Visual Studio, and its policy of frequent Web updates, in this regard.
"You have to think about how your team is operating in a highly agile way. And more importantly, how you deliver value to your customers in an agile way," said Somasegar, corporate vice president of the Microsoft Developer Division. Continuous delivery of new software is a big part of the new paradigm, he indicated. It too is a force behind Microsoft's drive for greater simplicity in development.