Why VSIX was preferred over Nuget for LightSwitch extensibility.
Nuget Nuget Nuget.
Technology is moving forward, and Nuget is one of those giant leaps that the .NET community is taking. But why, one might ask, did the LightSwitch team then decide to use VSIX over Nuget to implement the extensibility features?
Two reasons come to mind:
1. The LightStore
The lightswitch gallery, the default source for all your VSIX extensions, comes with a fully integrated payment model. VSIX extensions can be free, trial, or paid for. This opens up a whole new market. Imagine someone told you five years ago just how fast the AppStore would grow? Well, think about it, the LightStore is here, it’s rather empty at the moment, but full of possibilities.
Nuget on the other hand, is a more open source kind of platform. But… What if I (as a LightSwitch extension developer), am a more open source kind of guy?
2. The Visual Studio integration
As Michael Washington stated: VSIX is a deep integration into Visual Studio. Nuget packages can not do all the things a VSIX extension can.
True, but still, do we really need the deep Visual Studio integration for every little extension we write? Can’t we have the best of both worlds?
And of course, to the latter question, the answer is: yes we can…
Combining the best of both worlds: VSIX, meet Nuget.
The idea for this blog post series is simple. We’re going to (try to) take any LightSwitch extension, and split it into two parts. Some kind of simple, lightweight VSIX extension, to do the deep integration into VSIX, and one or more different Nuget packages, that handle the actual implementation of whatever we want our extension to do.
<<Update September 5th, 2011>>
<< /Update >>
At this point, we have successfully used a Nuget package to change the theme of our LightSwitch application, by splitting a VSIX extension into one generic VSIX extension, one Nuget package with the actual implementation, and having them find each other using LightSwitch’s VSExportProviderService (so basically: using MEF).
Before you leave though… One BIG THANK YOU, to David Fowler, for helping me create the Nuget package during the (messy) migration from 1.4 to 1.5…