Any developer working on software for Windows or .NET will likely be spending a great deal of time in Visual Studio. While Visual Studio has a reputation for being a highly productive integrated development environment, even the latest version—Visual Studio 2012—does not provide all things to all developers.
There are just too many places where add-on tools can and do make a world of difference, and choice is an important part of the advantage the extensibility of Visual Studio provides. Whether a project is in need of controls, obfuscation, shortcuts, analytics or anything in between, there is probably a vendor that provides it in an integrated way that works seamlessly with Visual Studio 2012. In this special report, we will delve into what vendors are offering for tools that make development with Visual Studio 2012 that much better.
To bring together this report, we talked to the biggest names in the tools for Visual Studio space to see how they are adapting their offerings to make the lives of developers a bit easier as they use Visual Studio 2012. Each of these companies has chosen one or more spaces in which to extend Visual Studio and compete, including code-writing productivity, control suites and even code-security products. In some cases the competition is between the companies, and in other cases it is between the companies and features that Microsoft has added to Visual Studio. In each case the goal is to distinguish their solutions, with faster product delivery being the main driver. The competition is good for the ecosystem, and it is most mature and intense in the controls space.
Productivity in coding
One of the key aspects of Visual Studio is how well it supports the productivity of developers. Features like IntelliSense have made it easier to write code quickly for those who know what they want to get accomplished. In spite of near-constant updates to drive productivity, there is a need and appetite among many developers for more. DevExpress has spent many years providing its CodeRush product to satisfy this demand.
Julian Bucknall, CTO of DevExpress, said, “Developers spend most of their time in code, and so we focus deeply on enabling dramatically improved productivity in the coding process.” CodeRush helps with code-wrangling tasks such as refactoring, finding and consolidating duplicate code; code-issue detection; and even XAML editing. The stated goal for CodeRush is enabling dramatically improved productivity in the coding process.
A relatively new player to the productivity tools landscape is Telerik’s JustCode. Chris Sells, vice president of developer tools at Telerik, said that JustCode “takes advantage of new speed improvements in VS 2012’s extension-loading process.” He went on to say that pushing for better performance in JustCode is a priority.
When asked why JustCode is worth trying, Sells pointed out a new feature that “enables debugging directly into binary .NET assemblies, which provides the ability to step right into an assembly that you don’t even have the source code for so that you can fix what are normally impossible-to-debug issues with your apps. This works for both Microsoft and third-party assemblies.” Microsoft provides a similar feature for some of its assemblies, but because of what Sells referred to as “version skew,” the Microsoft implementation does not work in practice. This means that JustCode “shows you the source code for the actual assemblies you’re working with, even the ones that Microsoft doesn’t provide source code for at all.”
Both CodeRush and JustCode change the experience for developers in dramatic ways, and each has avid fans. For best results, more so than in other categories of tools, any developer should check out both of these options and decide which works best for the way they work.
Security through obscurity
Software is ultimately just instructions and commands that run on the processor, and as such, the code cannot be encrypted in a way that makes it unreadable to someone determined enough to take the time and effort. That is an unsettling reality for anyone who is concerned that the intellectual property contained within algorithms in their code could be discovered by a competitor or hacker. Ultimately your code is only as secure as it is hard to reverse-engineer, and for this unique need, obfuscation can help mitigate it.
When you obfuscate your code you make it much, much harder to reverse-engineer. It will never be impossible, but in most cases it will simply not be worth the effort. This does not apply to everything, though. State secrets, the formula for Coke, the recipe for Kentucky Fried Chicken and things at that level do not belong in source code no matter how well-hidden.
The most important secrets are best kept out of the hands of outsiders via services and techniques that keep the code on secure systems, but you do have to deliver some code to the end user. And even if your biggest secrets are not contained there, you still might want to make it hard for a competitor or a hacker to see the source code of your product. Obfuscation is the prescription for this ailment, and PreEmptive has been providing its Dotfuscator product for many years for this purpose. This is a must-have tool for commercial products of all types.
Telerik has recently made a tool available for free, named JustDecompile. Since .NET first came out, decompilation tools have been readily available. Their primary use case, Telerik stated, is recovering lost source code for a program so it can be updated or modified. To enable this scenario, JustDecompile supports .NET Framework 2 through 4.5, along with WinRT and Silverlight.
Even without tools like JustDecompile, a knowledgeable developer or team of developers can reverse-engineer any code, but given that tools are available with such little effort, the only reason to not obfuscate your code is if you would be willing to directly post your source on the Web yourself. I run just about everything through Dotfuscator if it is going to end up on the other side of our firewall.
Among the component sellers, ComponentOne has resisted branching out too far from the business of providing building blocks meant for developers to include directly into their projects. Recently the company has released an update to its flagship Studio Enterprise suite in the form of Studio Enterprise 2013 v2. This latest update adds support for the new Visual Studio project templates, data visualization controls, and enhanced touch support (which provides drag and drop for its WPF and Silverlight controls targeted at Windows 8 desktop applications).
There are also updates to components in each of the studios that make up the full suite: Studio for WinForms, Studio for WPF, Studio for Windows Phone, Studio for Silverlight, Studio for WinRT XAML, Studio for WinJS (in beta), Studio for ASP.NET Wijmo, Studio for iPhone, Studio for Compact Framework, and Studio for ActiveX.
According to Russ Fustino, ComponentOne’s senior developer evangelist, the company has also added a PDF Viewer control (referred to as the C1PdfViewer) that solves a very common business problem that many developers confront in various APIs. Displaying PDFs, especially on mobile devices, is becoming a standard requirement in some verticals due to the ability to lock down PDF documents for better control and security from tampering, especially since it supports reading encrypted files.
When asked if all of ComponentOne’s components are visual, Fustino pointed out that the WinForms, WPF and Silverlight products include the Entity Framework data source components, which promises features that drive high-performance data binding. He added, “They dynamically load millions of records with our innovative virtual mode technology, while adding other valuable enhancements on top of the Microsoft Entity Framework.”
With Big Data driving interest in larger and larger datasets, there is real demand for anything that pushes back the limits in terms of scale and speed with relational datasets.
DevExpress has been providing tools for Visual Studio for many years, and it is a Visual Studio ship partner, which means that when a new version of Visual Studio ships, its developer tools are ready to roll. This is true of a vendor with a very strong relationship with Microsoft. For Visual Studio 2012, there were 72 partners Microsoft saw as providing the most widely used add-ins and extensions to Visual Studio. According to the Visual Studio Blog, as part of the program, Microsoft provided “interim builds to these partners during the development cycle of Visual Studio so they could develop and test their extensions.” In turn, interim builds of the tools from DevExpress and the other partners were provided to Microsoft so that they “could improve Visual Studio’s interaction with them.”
As discussed earlier, DevExpress provides the CodeRush productivity tool, and it also provides an array of control packages and the relatively new DevExtreme, which CTO Julian Bucknall described as the “efficient way to create multi-device smartphone apps for iOS, Android and Windows Phone in Visual Studio 2012.”
Jason Beres, senior VP of developer tools at Infragistics, talked about how the company has adapted to work better with Visual Studio 2012. He explained that “one of the great features of Visual Studio 2012 is its ability to stay up to date by notifying developers when updates are available, both for the IDE itself and also for any extensions already installed. NetAdvantage is a first-class citizen in Visual Studio 2012, where developers automatically get notified of new Service Releases as they become available, ready to be installed with a click.”
Like other vendors, Infragistics is hedging bets by covering HTML and XAML project-type needs. With its NetAdvantage Ultimate Release 2013 Volume 1 suite of controls, there are now touch-optimized HTML and XAML controls. This version of the control suite includes grids, data charts, maps, input and editor controls, calendars, barcodes, a full-fledged HTML Text Editor, and other elements intended to make solid experiences that work equally well on both PCs and tablets.
An area of particular emphasis for Infragistics is data visualization. On the HTML project side of things, it has its own jQuery-based library called Ignite UI 13.1. “Our new PivotGrid, PivotView and Pivot Data Selector for jQuery make it a snap to connect to, browse and interact with multi-dimensional OLAP data from data sources like SAP, SQL Server Analysis Server, or really any MDX- or XMLA-capable data source,” said Beres.
Outside the controls space, Infragistics now offers a rapid prototyping tool named Indigo Studio. Building storyboards and wireframes to mock up a project user interface can eliminate mistakes and misunderstandings that are costly after the coding starts. Best of all, Infragistics is offering it for free with NetAdvantage.
Among the third-party suppliers covered in this article, PreEmptive is the outlier in terms of the products it does not offer control suites. Instead, PreEmptive has expanded niche solutions into must-have packages.
We saw this in the discussion about obfuscation earlier in this article. A few years ago, PreEmptive released its PreEmptive Analytics Runtime Intelligence Service, which is a full-fledged solution that helps developers understand how their application is working where it matters most: in the real world. By allowing developers to build analytics into software, there are dozens of scenarios for better serving the needs of everyone involved. Any time an application “phones home,” it can raise problems in certain kinds of secure environments such as financial and military organizations, but the need to be judicious about its use is no reason to forgo the advantages that can be had everywhere else.
For commercial software companies, the insights to be gained are valuable. One example common among such companies is captured on the PreEmptive product page, where it states, “Kill that feature that is costly to maintain but only 3% of your users are using.” There are a number of times over the last few years that it would have been useful to take underutilized but high-maintenance features out of a commercial product. The problem with these decisions is that everyone involved has an opinion based, at best, on anecdotes about how popular a feature is with clients. With Application Analytics, the guesses can be trumped with actual data.
Chris Sells, a former Microsoft employee, talked about how Telerik has taken a higher-road approach to supporting Windows 8 developers by “not just porting our Silverlight controls to Windows 8 and calling it good; we’re building a set of controls that have been completely rethought for the touch-based environment of Windows 8 and building the same set of components in both XAML and HTML, embracing the multi-language platform that Microsoft has provided.”
Microsoft has made the controls landscape much larger due to the dichotomy of XAML vs. HTML projects. Telerik does not see this as a challenge so much as an opportunity to provide tools to app developers with a potential market of 400 million, thanks to the expected reach of the Windows Store as Windows 8 becomes the incumbent client OS.
On the mobile front, Telerik has worked to provide the missing elements that have in some cases dismayed developers. For example, when Microsoft released the Windows 8 platform, it left out something that has been taken for granted for many years in Visual Studio: a client-side relational data storage component. To address this, Sells mentioned that Telerik’s implementation works for both HTML and XAML apps, and its “in-memory data storage, based on the popular SQLite database, provides storage and access to relational data, which is a critical first step to building offline support into your Windows 8 apps.”
Visual Studio 2013 and beyond
Microsoft is busy producing yet another version of Visual Studio in a version currently called Visual Studio 2013. The assumption is that it will be released before the end of the year, but there does not seem to be any guarantee of that yet, and it would not be the first time that the product name changed due to a slip in shipping date.
Given that this is hot on the heels of Visual Studio 2012, the market is expectant about this new version, but there does not appear to be much demand that it ship sooner. This new version has already shipped in a preview, which gives us a fairly reliable insight into what it will offer.
It appears that the reason for the rush is that, now that Windows Azure has become the real focus for the company in light of Steve Ballmer’s recently revealed reorganization plans, this new version of Visual Studio delivers a number of features and other strategic moves that move that agenda forward. Microsoft has always leveraged its developer tools to push adoption where the company wants, and there are plenty of reasons to believe that this has not changed.
Cloud development just got real
Many people talk about developing in the cloud, but Microsoft is taking it quite literally. In a blog post by Microsoft vice president Scott Guthrie, he announced the release of version 2.1 of the Windows Azure Software Development Kit for .NET. Along with that, he revealed a list of new features. The topper is the revelation that developers can now have a virtual machine hosted on Azure with Visual Studio 2013 to let them develop for the cloud, from the cloud.
Every developer fears having to rebuild their development system after hitting a snag. Or, they have come to grips with this issue by virtualizing their development systems with strategic snapshots designed to restore the system to some well-known, good state. This new feature, if done properly, could eliminate much of the frustration caused by this chore.
Microsoft has added the developer image into the Virtual Machine Gallery, so you can spin up multiple development environments, even one per project, which will be great for consultants. A few months ago, this would have been unthinkable due to the cost, but as Guthrie pointed out on his blog, “With the recent shutdown and suspend billing feature we shipped on Windows Azure…you can spin up the image only when you want to do active development, and then shut down the virtual machine and not have to worry about usage charges while the virtual machine is not in use.” This will help reduce the obstacle to productivity.
For those that prefer to keep their development confined to their own system, you can also leverage the Azure SDK to try out Visual Studio 2013 Preview. As shown below, from the Windows Azure .NET Developer Center, the “Install the SDK” link allows you to install the 2.1 version of the SDK, and will also provide Visual Studio 2013 Preview for Web. The SDK announcement also sets the stage for controls for some cloud services to be built directly into the Visual Studio interface, starting with Visual Studio 2013. Initially that means that developers will be able to start and stop virtual machines directly from within Visual Studio 2013. Now that virtual machines only cost money when they are running, this lowers the chance that a developer will turn on a system, and then forget about it and continue accruing charges unwittingly.
Productivity power tools
In recent years, after a version of Visual Studio comes out, Microsoft engineers released extensions that provided features that did not make it into the final product. Named the Productivity Power Tools and available via the Visual Studio Gallery on MSDN, the most popular features have made it into the next version of Visual Studio.
A number of features appear to be making the transition from being extensions for the 2012 version to being built into 2013, including the Enhanced Scrollbar, Navigate To, Move Line Up/Down, and Automatic Brace Completion. The Enhanced Scrollbar provides visual hints at important items in a code file, such as breakpoints and errors. Navigate To (sometimes called the Ctrl + Click Go To Definition) allows you to jump to definitions by holding down the Control button and then clicking on the links that are offered. Line Move Up/Down and Automatic Brace Completion are fairly self-explanatory, but no less handy.
When you are deep in the code and pursuing a train of thought, the last thing you need is anything slowing you down and derailing your logic. This is when small efficiencies in the code window really pay off and why the productivity tools discussed are so popular.