SharpDevelop Community

Get your problems solved!
Welcome to SharpDevelop Community Sign in | Join | Help
in Search

Christoph Wille

Refactoring Essentials for Visual Studio

At the SharpDevelop Developer Days 2015 in Bad Ischl we had two focus areas - one was the new decompilation engine for ILSpy vNext (3.0), the other our NRefactory 6 roadmap. NRefactory 6 is our rewrite of the IDE services (code completion, refactorings, et al) from our full-stack (lexer, parser, you-name-it) NRefactory 5 to using Roslyn in the new version. Given that we have a decade of legacy in our stack, rewriting it meant unlearning a few habits, making quite a few architectural changes along the way, and restructuring the project a lot.

NRefactory 5 had a lot of analyzers and refactorings that we wanted to bring forward, and we did so in the NR6Pack. It was initially tied very tightly to NRefactory, and we had a shared project that copied code to both (at first it was straight linking). As we learned, we removed more and more ties and NR6Pack was finally independent from NRefactory. However, they still shared the same GitHub repository - making contributing unnecessarily hard (oh, and the repo was quite big because the Web properties were also in there).

Thus, in Ischl we sat down together for name-finding because the initial "pack" was no longer correctly reflecting what was in the codebase: the refactorings had taken center stage. With that in mind, it didn't take us long to settle on a new name - and so 5/30/2015 marked the last release that used the old name (we still wanted a stable release before doing renaming, and, once again, a restructuring).

Refactoring Essentials has a GitHub repository of its own now, and the Web site is also split out into a GitHub repository (pay for play: devs don't need to download stuff they are not interested in). Also, we no longer tweet as part of the @sharpdevelop account, we now have a dedicated Twitter: @vsrefactoring.

One thing before closing: although we use the suffix "for Visual Studio", the refactoring/analyzer library itself is a portable class library (PCL). Yes, it is cross platform, and not only for fun: it is used in MonoDevelop today (remember: Refactoring Essentials is a part of our NRefactory 6 effort).

Comments

No Comments
Powered by Community Server (Commercial Edition), by Telligent Systems
Don't contact us via this (fleischfalle@alphasierrapapa.com) email address.