If you’re a .NET developer, chances are you’re using Visual Studio, the go-to product for developing .NET applications. However, with several versions available, it can be overwhelming for newcomers to decide which one to choose 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?
The Visual Studio Community edition is free but misses some important features.
That’s what this post is going to cover. As its title suggests, we’ll focus on Visual Studio Enterprise vs Professional: the differences between the two paid editions of the integrated development environment (IDE). You want to get the best bang for your buck.
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.
Download a free trial of NDepend and check out all of the architecture visualizations you can get without needing to upgrade your VS edition. See also: Case Study: 2 Simple Principles to Achieve High Code Maintainability
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 least expensive – it’s free!
- Next is Visual Studio Professional which costs $45 per month with an Azure DevOps basic plan.
- And, finally, Visual Studio Enterprise is the most feature-rich and most expensive. It costs $250 per month with an Azure DevOps basic + test plan.
Each edition has all of the features of the edition below it, plus additional ones.
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 look at that.
Features that Only Visual Studio Enterprise Has
Let’s see the exclusive features from Visual Studio Enterprise, broken down into categories.
1. 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.
1A. Automated 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.
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.
2. Advanced Debugging and Diagnostics
Developers spend a considerable amount of time in 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 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.
3. Integrated Development Environment Features
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.
3A. Architectural Validation and Analysis
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.
3B. Code Duplication Detection
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 clone analysis. With this feature, Visual Studio can localize possible code duplicates so that you can eliminate them.
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 in the latter but absent in 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. However 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, as long as you have plenty of budget. But if you don’t, a lot of plugins in the Visual Studio ecosystem can help you get VS Enterprise’s features in à la carte fashion.