If you’re a .NET developer, then it’s overwhelmingly likely that you’re a Visual Studio user. There are alternatives to it, sure. But the product from the Redmond giant is the go-to when it comes to developing for the .NET framework.
For a newcomer, though, things can get confusing since Visual Studio isn’t a single thing. Instead, it comes in several shapes and sizes. Which one should you pick? What are the features that matter for your use case? Since Visual Studio isn’t free—most editions aren’t, at least—you want to get the best bang for your buck.
That’s what this post is going to cover. As its title suggests, we’ll focus on the differences between the enterprise and professional editions of the integrated development environment (IDE). By the end of the post, you’ll have learned enough to make an informed decision on which version of the IDE better suits your needs. Let’s get started.
Enterprise vs. Professional: Which One Is the Right Visual Studio for You?
To understand the differences between the professional and enterprise editions of Visual Studio, you must first keep in mind that Microsoft offers the IDE in a tiered fashion. Visual Studio Community is the first tier, with the professional and enterprise editions being the second and third tiers, respectively. So the professional edition has all of the features available in community, plus some more. Enterprise has all of the professional features, plus some of its own.
So the question “what are the differences between Visual Studio Enterprise and Professional” really amounts to what the former can do that the latter can’t. So, we’ll be starting with that.
Visual Studio Enterprise: Exclusive Features
Let’s see the exclusive features from Visual Studio Enterprise, broken down in categories.
Integrated Development Environment
We’ll start by covering features related to the IDE itself. Visual Studio Enterprise has a particular focus on software architects so this edition obviously has several features related to software architecture.
Picture this scenario: You’re developing an application that follows the n-layered architectural pattern. So you’d like to prevent the presentation layer from accessing the data layer directly. You’d want to allow it to only access the business logic layer. Since the 2010 version of Visual Studio Enterprise, it’s possible to perform architectural validation on an app using architectural layer diagrams. You could integrate said validation in your build process, for instance. If a class referenced a namespace in some layer it wasn’t supposed to access, the build would fail.
In the latest version, this feature was also improved to offer live dependency validation. Instead of having to wait for the build to break, Visual Studio, employing the power of Roslyn analyzers, will give you real-time feedback whenever you’re about to introduce an invalid dependency.
Code duplication is one of the worst problems in a code base. Visual Studio Enterprise can help developers and architects out there deal with this problem with a convenient feature: code clones analysis. With this feature, Visual Studio can localize possible code duplicates so that you can eliminate them.
Advanced Debugging and Diagnostics
Developers spend a considerable amount of time on the debugger. So let’s check out the exclusive Visual Studio Enterprise features for this domain.
The first feature here is IntelliTrace. Instead of the traditional, present-time debugging, IntelliTrace allows you to debug a past execution of your app. You can save IntelliTrace data from a lot of different sources, including a deployed app in the production!
Also in the debugging domain, we have Code Map debugger integration. This feature offers a new type of experience when debugging by allowing you to visualize the current method—and also the previous methods called—as diagrams that integrate with the debugger and update in real time as you step through your code.
Finally, we get to .NET Memory Dump Analysis. This feature allows you to analyze memory dump files to identify and fix performance problems, such as memory leaks or unnecessary allocations.
We’re finally at testing tools. This area is, hands down, the one where Visual Studio Enterprise outshines the other editions of the IDE. We’ll begin by talking about some of the features related to automated unit tests and then proceed to cover features that can help with manual, exploratory, and UI tests.
Let’s start with Live Unit Testing. When you enable this feature, Visual Studio will automatically run unit tests impacted by the changes you’ve just made to your application and present the results to you in real time. This feature supports the NUnit, xUnit.net, and MSTest frameworks.
Since we’re talking about unit testing, let’s now turn our attention to a topic that is sure to stir up some controversy: test coverage. Maybe you think that getting to 100% of code coverage is vital to an application’s health, or perhaps you don’t. But you’d most likely agree that knowing the test coverage data is useful nonetheless. Visual Studio Enterprise offers you this metric natively.
When you’re aiming to write good unit tests, a goal you should always strive for is isolation. A good unit test should be kept as separate and independent as possible, not only from other tests but also from infrastructure concerns. Details such as the machine’s clock or language shouldn’t interfere with the test’s result. Providing such isolation isn’t always easy though. Visual Studio Enterprise tries to solve that problem with Microsoft Fakes. Microsoft Fakes allows you to use stubs and shims to simulate external dependencies in your code. A classical use case for that would be to simulate a specific date to test for a time-sensitive bug. Visual Studio Enterprise can go beyond even that. Through IntelliTest, it’s possible to automatically generate a unit test suite for your code, along with fake test data.
Automated UI Tests
What about automated tests that aren’t unit tests? Visual Studio Enterprise can cater to those needs as well. With coded UI testing, you can create automated tests that drive the application through its user interface. You’d do that by recording a manual test and saving it. After the test is recorded, you can specify values for parameters and fine-tune it using a special editor.
A code base should not live on automated tests alone though. Manual tests are still a vital part of a comprehensive quality strategy, and Visual Studio Enterprise can cater to those needs as well. And the primary tool used to do that is the Microsoft Test Manager, which is a comprehensive solution that allows its user to complete the following tasks:
- record and replay actions performed during exploratory (i.e., unscripted) test sessions
- create and manage test plans for manual tests
- copy test suites and test cases across many projects
- record and collect data about planned manual testing sessions
By employing this feature, a developer, tester, or test analyst can have a very wide view on what’s happening on the project, test-wise. Think of it as a centralized control panel on all things test-related.
Visual Studio Professional Vs. Visual Studio Enterprise: The Verdict
Microsoft offers Visual Studio under a tiered offerings model. So, analyzing the differences between Visual Studio Professional and Visual Studio Enterprise (respectively the second and third tiers) amounts to covering the characteristics present on the latter but absent on the former. And that’s what we’ve done in this post.
Sure, we haven’t mentioned all of the exclusive features in Visual Studio Enterprise, for brevity’s sake. But I’m confident that the article made clear that Visual Studio Enterprise is aimed primarily at software architects and QA experts.
So, what’s the verdict? I’d say you can’t go wrong with Visual Studio Professional. It’s an excellent choice for most developers. For software architects though, Visual Studio Enterprise might make sense. Perhaps employing it along with other software architecture tools is what’s needed to get the architects on your team to a whole new level.