The .NET development community enjoys a rich array of tools that help make software development easier, less costly and more effective. Visual Studio 2010 and Silverlight 4 exemplify this trend as both provide rich native tool sets, while expanding third-party options seamlessly integrate with and enhance their out-of-the-box capabilities. Both are considered “major steps forward” for enterprise developers because they address software productivity and IT concerns better than their predecessors.
“Enterprise developers have been the biggest beneficiaries of the last few versions of Visual Studio,” said Patrick Hynds, president of DTS, a consultancy and software company that focuses specifically on Microsoft technologies.
“Before .NET, departmental Visual Basic developers and ISVs doing C++ [realized the greatest benefit]. .NET raised the bar by providing libraries, placing more focus on Active Directory and libraries for interacting with Active Directory. As a result, a lot of great tools were built in that benefit enterprise developers.”
A look back at previous .NET versions of Visual Studio indicates an evolutionary progression that has resulted in Visual Studio 2010’s robust application life-cycle management (ALM), agile development, and team productivity features on the high end and greater developer productivity and flexibility on the low end. A 2008 Forrester Research survey of 1,105 .NET and Java developers indicated that 99.5% of .NET developers had adopted Visual Studio 2010, according to principal analyst Jeffrey Hammond. He also said the adoption of .NET is expanding within enterprises.
“I’ve seen a jump in the usage of the .NET platform in large organizations,” he said. “It’s always been used there, but I’m seeing it now in bigger companies. [.NET] is now at parity with Java [because] Java is in turmoil and .NET is more proven.”
Visual Studio boosts productivity
Doug Seven, director of Product Management for Visual Studio at Microsoft, said the adoption of Visual Studio 2010 has been rapid because developers expect it to improve new application development. They are also discovering that it helps teams understand existing applications better than what was possible using previous versions.
“We’ve been getting feedback that the ability to understand existing applications saved them [tremendous time and resources],” he said.
Visual Studio was been reworked to improve productivity, and provide new and enhanced tooling across platforms.
“Visual Studio 2010 is a set of productivity tools for enterprise developers and ISVs that makes [software development] easier, better and faster,” said Seven. “The abstraction in the Framework allows you to use services and runtimes, so you don’t need to worry about plumbing. Also, things like REST, drag-and-drop controls and [MVC] tools all help simplify development.”
Lino Tadros, CEO of consulting and training firm Falafel Software, said after 10 years of working with Visual Studio that it’s obvious Visual Studio 2010 delivers the most dramatic productivity improvements to date.
“Visual Studio 2005 was awesome,” he said. “When 2008 came out, we thought 2005 was bad. Now we think we can’t live without 2010, and the previous versions were bad. Although 2010 is the best for productivity, some developers don’t know how big 2010 is [because they don’t understand its entire scope].”
Prior to Visual Studio 2010, it took a lot of code and manual labor to accomplish the same tasks using earlier versions of the IDE. As an example, Visual Studio allows developers to target any version of the .NET Framework versus a specific version.
“You can’t get .NET 4.0 on Windows 2000,” said DTS’ Hynds. “Visual Studio 2010 is smart enough to shut off functionality [based on the .NET Framework version that’s being targeted]. The last thing I want is customers installing new versions of the .NET Framework.”
Visual Studio’s enhanced Silverlight and Windows Presentation Foundation (WPF) tools are also considered valuable because they are often used in tandem, particularly when an application requires access to more system functionality than Silverlight was designed to provide. Visual Studio 2010 is the first version of the IDE to contemplate Silverlight as Silverlight is a relatively new technology.
“WPF accesses everything on a system; Silverlight is lightweight,” said Hynds.
Silverlight 4 has addressed some system-related concerns by providing an API that allows trusted applications to access file systems so developers can avoid building a WPF application. If additional desktop capabilities are required, the Silverlight application can be extended using WPF.
The tighter integration of Visual Studio 2010 and Expression Blend 4 is also viewed as significant because it improves workflow between designers and developers. Forrester’s Hammond is particularly impressed with SketchFlow, an Expression Blend 4 Ultimate feature that enables easy prototyping of an application UI. He said it highlights a need for quick, easy prototyping in enterprise shops that often lack the design skill sets necessary to take full advantage of Expression Blend.
Microsoft’s improved integration model makes it easier for Visual Studio users to take advantage of third-party tools. One of the more notable third-party additions to Visual Studio 2010, according to Hynds and Microsoft’s Seven, is PreEmptive Solutions’ Dotfuscator, which prevents the reverse engineering of .NET applications. Seven also said that the third-party extensions to the Team Foundation Server (TFS) collaboration platform are significant because they extend agile capabilities and the non-coding aspects of software creation. Among the results are graphical agile task boards and better project management capabilities.
Strategic focus on agile and ALM
TFS is central to Microsoft’s ALM strategy and offerings; however, to accelerate adoption among some customers, Microsoft had to revisit its pricing model.
According to Seven, some customers refused to switch from Microsoft Visual SourceSafe source control software to TFS because they considered TFS too expensive. In response, Microsoft slashed TFS pricing in 2010, and also simplified installation and on-boarding.
“Team Foundation Server is more than a repository now, it’s an entire ALM tool,” said Dennis Perlot, director of software development at CT TyMetrix, an ISV that provides software solutions to corporate legal departments and law firms.
He also said the integration of TFS and Team Explorer Everywhere with Visual Studio 2010, as well as the better developer experience it delivers, makes Visual Studio 2010 more valuable to his organization than previous versions. Team Explorer Everywhere is an Eclipse plug-in and cross-platform command-line client for the 2010 version of TFS that provides cross-platform collaboration capabilities.
“Microsoft’s overall theme for the last three to five years has been ‘build out from the developer,’” said Forrester’s Hammond.
In addition to providing ALM capabilities, TFS 2010 also addresses enterprise requirements for agile development, such as providing built-in agile, Capability Maturity Model Integration and Scrum templates.
“The Scrum template addresses Scrum team requirements for out-of-the-box reports, tracking capabilities, and integration with Excel. It helps teams understand where they are,” said Hammond.
“One of my favorite features is gated check-in, which is great for teams trying to do continuous builds. A lot of agile teams suffer from broken builds. Gated check-in keeps the builds clean. Big teams doing integrated releases need it.”
Most organizations, regardless of their level of maturity, have at least tied coding and testing closer together to improve software quality and reduce cycle times. Hammond is particularly impressed with Visual Studio 2010’s unit, regression and performance testing enhancements, as well IntelliTrace’s debugging, which records the execution of an application so developers have a record of what occurred in chronological order.
Doug Smith, vice president of software engineering at event- and venue-management software provider Ungerboeck, said his entire team migrated to Visual Studio 2010 last fall. As a result, they are retooling their use of the unit-testing management capabilities.
Enterprise-ready Silverlight
Silverlight’s popularity is increasing. According to Forrester’s Hammond, a 2010 Forrester Research/Dr. Dobb’s survey indicated Silverlight adoption among RIA developers was up 18% versus 10% in 2009. Fifty percent of those surveyed were .NET developers.
“Silverlight adoption is legitimate,” said Microsoft’s Seven. “It’s clear we’re committed to the technology as a platform. A good example is the Visual LightSwitch beta, which produces applications completely in Silverlight.”
The LightSwitch beta allows developers to quickly build applications for the desktop, Web and cloud.
A common sentiment is that prior to Silverlight 4, Silverlight was not viable for enterprise use. Although Silverlight 3 introduced more controls and out-of-browser capabilities that allowed applications to run offline, it still lacked features like printing and program access to a user’s local document folder, which were addressed in Silverlight 4.
“Business applications contemplate printing; Web applications don’t,” said DTS’ Hynds. “Out-of-browser is important because before Silverlight 4 added trusted capabilities, developers were limited by the security parameters of the browser [sandbox]. Out-of-browser has access to a file system, so you can write a utility to check the disk. It seems modest, but it makes the difference between [Silverlight] working in an enterprise and not [working in an enterprise].”
Silverlight 4 also included a number of new and enhanced controls such as RichTextBox and DataGrid. According to Forrester’s Hammond, of the available controls, DataGrid is the most important for enterprises given its ability to pull data.
“DataGrid is like PowerBuilder 10 years ago,” he said. “We’re finally getting to a point that Web development is as easy as desktop development was 10 years ago.”
Hammond also said Silverlight 4’s RIA Services feature is important because it connects to background controls and services. Enterprises already have Web services and service-oriented architecture in place. They are now using RIA Services to connect to SOA.
Ungerboeck migrated to Silverlight because AJAX/HTML-based approaches on the .NET platform fell short of performance objectives. Smith and his team are currently using Silverlight 4 tools while keeping a close eye on Silverlight 5 and HTML5. He said it is still unclear which of the technologies will become the predominant standard for RIA development on the desktop and small form-factor devices.
Silverlight 5 on the horizon
In December 2010, Microsoft announced that the Silverlight 5 beta will be available in the first half of this year. The final version is expected later on. Silverlight 5 will have more than 40 new features, some of which address media experiences and some of which address business application development.
Given the significant emphasis on video quality and performance improvements, some think the enhancements to Silverlight 5 will be more beneficial to media companies than enterprises generally. Nevertheless, an overwhelming number of the new features announced (apparently all but five) are presented as improving business applications and the development of them.
“From an enterprise perspective, Silverlight 4 was a bigger enterprise launch than Silverlight 5 will be,” said Hammond. “Silverlight 5 will be more significant in the media space. [Overall], the most important [aspect of] Silverlight 5 will be its continued support of devices.”
Silverlight 5’s 3D API is a good example of a feature that could be viewed as a “nice to have” versus a “must have” for business applications at this point in time. No doubt 3D capabilities would immediately benefit some applications like healthcare imaging, but 3D may not as useful to business applications such as Postscript vector printing, for example.
Microsoft is well aware that enterprise developers want to build rich desktop-style applications with Silverlight, and toward that end, Seven said Microsoft will continue to add improvements. As an example, Silverlight 5 will introduce a new class of trusted applications.
Silverlight 5 will also provide some welcome developer productivity enhancements. Specifically, the Model View ViewModel and databinding enhancements will enable developers to accomplish more using Extensible Application Markup Language (XAML). CT TyMetrix’s Perlot said he is looking forward to the XAML debugging because it will help increase productivity. He also looks forward to tear-off windows in Silverlight 5 and Pivot Viewer control enhancements.
“Silverlight 4 was solid but Silverlight 5 will make developers even more productive because they won’t have to cobble things together like before,” said DTS’ Hynds.
The effect of Windows Phone 7 is another point of interest given Microsoft’s significant focus on Silverlight, the large and diverse Silverlight partner network, and the growing community. Slowly but surely, Silverlight is emerging as standard for Windows, Web and phone applications versus the plug-in for Web applications it once was. Some think Windows Phone 7 may serve as yet another incentive to adopt Silverlight.
“The future is mobile: iPhone, Windows Phone 7, Android,” said Falafel’s Tadros. “Silverlight is great for Windows Phone 7.”
Speeding up development
The .NET Framework’s massive class library has been enhanced by third-party components for years. As the .NET Framework has evolved and the number of associated platforms has increased, the number of native and third-party components has grown.
“There is a rich set of components and tools available to speed development in the .NET space. Knowing what’s available can dramatically speed development and overall quality,” said Ungerboeck’s Smith.
Ungerboeck started using ComponentOne WinForms controls in 2001. It now uses ComponentOne Silverlight controls in addition to native Silverlight 4 controls.
“ComponentOne [has] consistently proven [itself] to be a reliable partner who is passionate about rock-solid components,” said Smith. “[It] also has one of the best technical support teams in the industry.”
Given the sheer number of providers and the competitive nature of the space, components and component providers may sound more similar than they actually are. Some components may have greater scalability limitations than others, or the performance of two seemingly similar components may differ. One provider’s components may be easier to customize than another.
In addition, product release schedules and support can also affect purchasing decisions. Practically speaking, the nuances can matter a little or a lot depending on project and team requirements. (See “Ten tips for choosing components and component providers,” a compilation of suggestions from everyone interviewed for this article.)
“Everybody has standard grids,” said DTS’ Hynds.
Some component providers have evolved with the .NET Framework, and as a result, offer solutions across multiple platforms. Some address a single platform like Silverlight or focus on specific types of functionality, like imaging. Regardless, cost savings, quicker time to market, and the ability to leverage expertise not available in-house are just some of the reasons software teams buy components instead of build them.
Those who buy them commonly say they could have or might have been able to develop the components themselves, but the time and cost involved would not have justified the outcome.
“As a rule, we try to limit the use of third-party tools and products to minimize the complexity [of] multi-vendor solutions,” said Perlot. “When we find it would be cost prohibitive for us to develop a solution, we look to third-party tools.”
CT TyMetrix has an ASP.NET-based operations management product called T360, and a new line of business intelligence tools called Intelligence on Demand. Currently, the software team is using Visual Studio 2010, TFS 2010, C#, the .NET Framework 4.0, Silverlight 4, Windows Communication Foundation, Windows Server 2008 R2, and SQL Server 2008 R2, as well as Microsoft and Telerik components.
CT TyMetrix considered 24 different components and component providers before selecting Telerik. Since June 2010, the company has been using Telerik RadControls for Silverlight and Web UI Test Studio. Perlot said Telerik was selected because it provided superior functionality, flexibility and support.
Stone Bond Technologies, an agile integration platform provider, was looking for pre-packaged expertise. The company has a lab information management system targeted at large labs, and an agile integration platform called Enterprise Enabler that is used by biotech, pharmaceutical and clinical healthcare organizations to automate paper-based workflows and share essential information. It is also used in other verticals, including manufacturing, oil and gas. Over time it became obvious that the UI needed improvement, but the resident software team lacked the necessary expertise.
“We develop server-side technology and functionality,” said Michael Guillory, vice president of product development and support at Stone Bond. “We needed tools that would allow us to rapidly develop a front end that provided visual display consistency. Infragistics allows us to focus on what we do best.”
In the beginning, Guillory and his team used basic controls like text boxes and buttons, but they are now using trees and drag-and-drop controls to build more sophisticated front ends.
“Over the last year and a half, we’ve been trying to make the user experience as easy and smooth as possible. If you’re using primitive GUI objects, the user experience is clunky,” he said. “[The] Drag-and-Drop [control] was a godsend because it allows us to achieve something intuitively that used to take a lot of steps.”
Stone Bond uses .NET technologies exclusively, such as ASP.NET, Window Forms and the Business Connectivity Services in SharePoint 2010. The company is in the process of migrating to Visual Studio 2010, which will accelerate and simplify SharePoint projects. Stone Bond also has a 2011 Silverlight initiative.
Guillory said some of the factors he looks for in a component provider are whether or not it provides plug-ins for Visual Studio, how easy the controls are to learn and use, and how easy they are to configure. Time to market and total cost of ownership are also considerations.
“If we had a project to build the same functionality Infragistics provides, we’d be re-inventing the wheel and paying more for the same functionality,” he said. “We’re saving money, getting to market faster, and have achieved consistency across all applications with screen-to-screen uniformity.”
Enterprise developers and ISVs developing .NET solutions for enterprises have no shortage of tools to choose from, and there are more on the way. Developer and team productivity is a common theme among them, as is user experience. Given today’s budget constraints and the global nature of competitiveness, enterprise developers and ISVs need to be able to develop better software in less time regardless of the platform used, the device the software runs on, or what the back-end infrastructure looks like. Visual Studio 2010 and Silverlight 4 are considered major steps forward but, as always, there is more work to be done.
Ten tips for choosing components and component providers
Component and component providers may sound alike but there are some important differences that can affect the success of your project. Following are some pointers to consider if you are thinking of purchasing components or switching providers.
Relevant Functionality
Does the component do what you want it to do? Are you sure? Better read some of the other tips.
Right Size
Depending on the component provider you may be able to use a small component to get the narrow functionality you need or you may have to use a large component that adds unnecessary overhead.
Performance
Components add overhead. Ideally components should blend into applications in a manner that does not compromise user experience.
Aesthetics
If you work in a shop that doesn’t have a designer or ready access to a designer then you may want to pay attention to out-of-the-box aesthetics, especially if you want to create a consistent “look and feel” among UI elements such as grids and menus.
Ease of Customization
It is possible to build your own components but you’ll probably discover it’s cheaper to buy them. If you buy components make sure they’re easy to customize. Ease of customization a common reason why developers choose one component provider over another. Generally speaking, components should make you more productive, speeding release times.
Ease of Use
Components should be easy to integrate into an application and their behavior should be predictable.
Access to Source Code
Not all software providers will be around forever. It’s wise to choose a partner who has a solid history of growth and stability but access to source code is nevertheless a good idea, too.
Support
Don’t forget the human factor. Support is one of the main reasons why component providers’ customers stay loyal.
Licensing Model
Pay attention to the fine print. A predictable pricing model can save you from nasty surprises.
Technical Superiority
Look for a component provider who is consistently demonstrates a serious commitment to technical excellence including the timely enhancement of its products and services.