Calling all developers! We invite you to provide your input on Feature Experimentation by completing this brief survey.

 

Mads Storm Hansen
Nov 7, 2019
  2001
(6 votes)

Introducing Code analyzers for Episerver

Code analyzers for Episerver is a new Roslyn-based plugin that analyzes your Episerver code as you type. It can help you avoid some problems with editor experience and code maintainability.
The plugin will show live warnings ("squiggles") in Visual Studio while you are typing.

Analyzers

Inspired by a recent blog post, Code analyzers for Episerver looks for the correct use of content type and property attributes to ensure a good experience for your editors.

The analyzer rules can be configured individually and phased in gradually in a larger codebase.

Code analyzers for Episerver also looks for the use of known legacy types and 'Internal' namespaces that should be avoided in your code.

Configuration

Each analyzer rule severity can be configured in a ruleset file similar to Visual Studios built-in code analysis.

Installation

Code analyzers for Episerver is installed per-project as a NuGet package from the Episerver feed.

Visual Studio automatically detects and executes the analyzers. Build servers will also execute the analyzer rules on every build.

Compatibility

Code analyzers for Episerver is compatible with the compilers in Visual Studio 2019 and Visual Studio 2017 (15.5+).

If your project references an old version of the Microsoft.Net.Compilers package you may need to upgrade this to 2.6.1+ for compatibility with Code analyzers for Episerver.

Nov 07, 2019

Comments

Petter Klang
Petter Klang Nov 7, 2019 08:50 AM

Nice!

Antti Alasvuo
Antti Alasvuo Nov 7, 2019 04:51 PM

Very nice Mads!

David Knipe
David Knipe Nov 8, 2019 07:20 AM

Very nice! 

Johan Björnfot
Johan Björnfot Nov 20, 2019 10:56 AM

Nice! A nice addition would be an analyzer that detects if you use types from internal namespaces (I have a prototype of such an analyzer in some closet somewhere ;-) ).

Mads Storm Hansen
Mads Storm Hansen Nov 20, 2019 11:44 AM

Thanks Johan. It already detects types from Internal Episerver/Mediachase namespaces.

Latest addition (v1.1) is detecting use of older concrete Order classes (Cart, LineItem etc.) where interfaces are preferred.

Linus Ekström
Linus Ekström Nov 30, 2019 10:32 AM

Nice work Mads - very useful!

Please login to comment.
Latest blogs
Level Up with Optimizely's Newly Relaunched Certifications!

We're thrilled to announce the relaunch of our Optimizely Certifications—designed to help partners, customers, and developers redefine what it mean...

Satata Satez | Jan 14, 2025

Introducing AI Assistance for DBLocalizationProvider

The LocalizationProvider for Optimizely has long been a powerful tool for enhancing the localization capabilities of Optimizely CMS. Designed to ma...

Luc Gosso (MVP) | Jan 14, 2025 | Syndicated blog

Order tabs with drag and drop - Blazor

I have started to play around a little with Blazor and the best way to learn is to reimplement some old stuff for CMS12. So I took a look at my old...

Per Nergård | Jan 14, 2025

Product Recommendations - Common Pitfalls

With the added freedom and flexibility that the release of the self-service widgets feature for Product Recommendations provides you as...

Dylan Walker | Jan 14, 2025

My blog is now running using Optimizely CMS!

It's official! You are currently reading this post on my shiny new Optimizely CMS website.  In the past weeks, I have been quite busy crunching eve...

David Drouin-Prince | Jan 12, 2025 | Syndicated blog

Developer meetup - Manchester, 23rd January

Yes, it's that time of year again where tradition dictates that people reflect on the year gone by and brace themselves for the year ahead, and wha...

Paul Gruffydd | Jan 9, 2025