Looking at the latest in web design, it seems that focus is shifting from HTML-based themes to creating complex client-side applications with React, Angular, Vue and so on. This is natural progression as all those frameworks mature and provide more power in hands of front-end developers.
On ASP.NET side, we would normally build themes with custom views running on top of common controllers. So designer could build HTML template, and then merge markup into Razor view (.cshtml file). One disadvantage is that designer would need to work with server-side application, need to understand how to build and run ASP.NET code. It is a problem because most designers have to work with all kind of applications, so they would need to know how to work with .NET, Java, PHP and more.
Having client-side framework loosely coupled with server code via web API frees front-end developer from relying on unfamiliar technology and enables to do the work no matter what used on the back-end. Designer would focus on building UI functionality using tools and frameworks of choice. For example, VS Code with plugins for Angular or React provides client-side development experience on a par with best server-side IDEs.
Given these trends, I’m rethinking approach I used for building Blogifier themes. They are heavily server-side, because, well, this is what I'm most familiar with. But in reality, they are UI elements and belong to front-end. And having them as basically stand-alone applications that front-end developer can build and then plug into Blogifier would have much more sense.
I'm leaning towards using Angular as supported framework. Having more than one is possible but would add complexity and headaches. React is more popular in general, but Angular and .NET are like peanut butter and jelly so I'd rather stick to Angular.
The workflow I envision is:
- Set up new Angular CLI application
- or get existing template from the site like this
- Update template to use Blogifier APIs on the back-end
- should be able to run CLI stand-alone by pointing to local host running Blogifier
- Build and deploy production ready code to distribution folder
This standard Angular CLI distribution is a Blogifier theme.
- Install new theme by copying folder to Blogifier or selecting and installing it from admin panel
This is a plan I'm actively exploring now. If you have opinion about it, please share.