I'm fairly new to EPiServer, been using it for less than 3 months, and I'm about to start a fresh project and the boss has asked that I research the latest and greatest technogies available for use with a new episerver site. New site will be a DXC deployment if that makes any difference.
After some reading, my question has 2 parts...
a. Are there any potential unforseen gotchas to using MVC Feature Folders? b. Is now a good time to switch from .Net Framework to use .Net Core and .Net Standard instead?
MVC Feature folders. I've found a fair few articles, some dating back a few years, describing feature folders, but I'm concerned if I suggest Feature folders that we may stumble into some unforseen issues. Does anyone know of any show stoppers when using Feature Folders? and does anyone have any up-to-date online resources describing feature folders and how to use them, epecially with the latest versions of .Net and EPiServer?
Feature Folders were actually covered in my EPiServer CMS training course, which was the first I've heard of MVC Feature folders in general, but I'm wondering what people's real world experience is of EPiServer and Feature folders?
Articles about feature folders: https://josefottosson.se/c-sharp-mvc-with-feature-folders-example-in-episerver/ http://marisks.net/2017/12/17/better-feature-folders/ http://marisks.net/2016/02/16/feature-folders-vs-tech-folders/ http://timgthomas.com/2013/10/feature-folders-in-asp-net-mvc/ http://www.chwe.at/2014/04/introducing-the-asp.net-mvc-feature-folders-project-structure/ http://www.meadow.se/wordpress/grouping-by-feature-in-asp-net-mvc/
And to complicate things slightly, it appears Feature Folders are implemented slightly differently in .Net Core as they are in .Net Framework? .Net Core. Is it safe to start using Core? We are currently using .Net Framework v4.6.2 and we've no requirement to run on Linux or anything like that, but I'm wondering if Microsoft is phasing out .Net Framework in favor of .Net Core? I know the first release of .Net Core didn't have the same API coverage as the .Net Framwork, is .Net Core 2.0 any better, production ready? Any advice? Again, any good online resources to give me confidence to switch? or any gotchas I may encounter?
from my experience I'd recommend to use .NET Framework instead of .NET Core especially if you are new in EPiServer. It will became easier to find a good/right solution on forums/articles for .NET Framework. But anyway here is a good comparing between two platforms https://docs.microsoft.com/en-us/dotnet/standard/choosing-core-framework-server that helps you to do your choice.
EPiServer supports MVC feature folders. But mostly it's depends on your architecture decisions and future prospective.
I'd recommend do not be in a race of new technologies, but focus on features and practices if you have choosen EPiServer. The first step in many succesful projects (including EPi's) is reviewing existing examples. There are several good ones, please see https://github.com/episerver/AlloyDemoKit and https://github.com/episerver/Quicksilver
Good luck with your EPi way!
I wrote the first article you linked to. :)
We've used feature folders in all of our projects for the last 4 years(over 20 projects) without any issues.
About .Net Core, no you can't use .Net core currently as your Episerver project, pick the latest 4.7.x version of .NET framework (currently would be 4.7.2). See the Episerver requirements.
Some of the Episerver assemblies are .NET standrd 2.0 compatible BUT not all, see this release note from version 11.
Then a view words about feature folders as you've found the blog posts talking about it, read those and you know well what you need to implement in your project (mainly how the views are found). Also have a look at the EPiserver Commerce Quicksilver reference project how they have used feature folders in those projects.
For example with Visual Studio you will lose the functionality 'Go to view' and the 'add view' in controller action when using feature folders (if that matters to you).
I've used some sort of hybrid model of feature folders where only the views are in the default "Visual Studio" location, but as Josef pointed out you can also use the pure form of feature folders.