Improve your .NET code quality with NDepend


Visual Studio Enterprise vs. Professional: Essential Differences

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.

Wishing your edition of Visual Studio had full architecture tooling support?

Download a free trial of NDepend  and check out all of the architecture visualization you can get without needing to upgrade your VS edition.

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.

  1. Visual Studio Community is the least expensive (it’s free).
  2. Next is Visual Studio Professional.
  3. And, finally, Visual Studio Enterprise is the most feature-rich and most expensive.

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 in categories.

1. 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.

1A. 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.

NDepend can also perform dependency analysis and validation and integrate with your build, even if you don’t have the enterprise edition of Visual Studio.

1B. 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 clones analysis. With this feature, Visual Studio can localize possible code duplicates so that you can eliminate them.

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 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.

3. Testing Tools

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.

3A. Automated Tests

Unit Testing

Let’s start with Live Unit Testing.

Testing is where Visual Studio Enterprise outshines other editions of the IDE.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.

3B. Manual Tests

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 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. 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, 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 ala carte fashion.

Contributing Author

Carlos Schults is a .NET software developer with experience in both desktop and web development, and he’s now trying his hand at mobile. He has a passion for writing clean and concise code, and he’s interested in practices that help you improve app health, such as code review, automated testing, and continuous build. You can read more from Carlos at carlosschults.net.

Leave a Reply

Your email address will not be published. Required fields are marked *