Mike Ryckman wrote:
Thanks for all of this, Cathal. Sorry for the delay in responding here.
I guess my concern is this: Let's say I'm about to start a big new DNN site with a lot of custom development. Presumably, using webforms will mean I'll end up needing to redo everything in the (relatively near) future. But, I'd also be concerned that the MVC design patterns will change between 7.5 and 8... a bit like how web api changed between 6.2 and 7.
As somebody who's obviously quite familiar with the various trajectories of 7.x and (with more limited knowledge) 8.x... What would be your generic advice? Is it best to focus on backend libraries and things and just wait for 8 (assuming we have the time)? Or is it relatively safe to assume that an MVC module for 7.5 would transition well to 8.x?
Thank you for your help - and for all your great work on DNN!
Mike
If I was still creating DNN websites for customers today (i.e. in advance of 7.5.0), I would ensure that all my development used a Single page application (SPA) like format. At present with DNN this does mean it's a webforms module that acts as the host, but that almost all the code is in javascript and the service framework. This means the majority of the work is portable. With the release of 7.5.0, there will be a new SPA extension type, which will remove the need for webforms altogether, meaning that in theory that code is entirely reusable in neXt. This would be the easiest transition as it's probably pretty close to what you do today (unless you're still doing full webforms modules i.e. postbacks/codebehind etc.)
As for MVC, there is no doubt that if you start to create MVC modules in 7.5.0, they cannot be reused 100% in neXt -however we will work hard to minimize any changes required. At present this looks like a few inheritances might need changed, but that almost all the rest of the code can be untouched i.e. perhaps only a few lines of change to use the code in neXt.
As to whether to use SPA or MVC, I dont see a huge difference to get them working in neXt, SPA should be no effort, and MVC should be minimal effort. As such the decision to which to use is entirely personal e.g. perhaps you love javascript so use SPA, but perhaps you are more comfortable in Razor (or want better testability/intellisense in vs.net etc.) so will use MVC.