Working my MVC version of BE - any interest?

Jul 18, 2014 at 2:08 AM
I am working on an MVC version that uses the BE data in SQL Server but otherwise is built with MVC and shares nothing else with BE. I was wondering if there is any interest in such a product by the community. It still in its early stages - am only at the point where I show the tags and posts.
Oct 9, 2014 at 2:20 AM
Hi Isudvm and anyone else who is interested,


I am also starting a MVC Port of BlogEngine.net at:

https://github.com/kbdavis07/BE-MVC


So far just in the planning stages and no code yet.

For anyone that is interested in helping out in any way from being a Collaborator or help with documentation or testing please star the project.

Then go here:

https://github.com/kbdavis07/BE-MVC/issues/1

Leave your email address and how you would like to help out.

Can use any type of help :)

I think having two versions of BE till we can get a very stable version of BE MVC is the best route to go instead of diving heads first with a straight and pure MVC version of BE.

Also it buys more time to use the current version of BE till the transition to a pure MVC version of BE.

Have a great day!

Brian Davis

http://bloggersonline.com
Coordinator
Oct 9, 2014 at 3:34 AM
If you look at latest code, you'll see lots of changes to code structure to simplify integration on all levels.
Idea is in the end have BlogEngine.Core as Nuget package that can be installed in any app for basic blog functionality.
BlogEngine.Admin package that will add admin functionality as Bootstrap/Angular application that can work under MVC or Webforms regardless., it is just JavaScript.
Move from URL rewrite to asp.net routes etc. We already have web APIs that can be used by MVC. So when this all in place, specially routing, difference between forms and MVC would be minimal. Forms would still have all the controls and MVC would probably need some handlers to make common things easier. But both could be implemented again as Nuget packages that can be installed into any ASP.NET app.
This is direction we heading to, so if you want to do MVC, we can coordinate our moves.
Oct 9, 2014 at 4:45 AM
Hi Rtur,

Thanks for the update on the official direction of BlogEngine.net and think that is good for the moment for now with Nuget packages is a great ideal.

I had been looking into using Managed Extensibility Framework (MEF)

http://msdn.microsoft.com/en-us/library/hh708870%28v=vs.110%29.aspx

http://www.slideshare.net/maartenba/fun-with-aspnet-mvc-3-mef-and-nuget

http://blog.maartenballiauw.be/post/2009/04/21/ASPNET-MVC-and-the-Managed-Extensibility-Framework-%28MEF%29.aspx

and think that would also be a great thing to use with Nuget and the packages.


With MEF you can specify which parts you need and what parts are needed by other "packages".


Then have it contained within a Nuget package to be discovered and installed from external feeds like Nuget.Org and BlogEngine.Net feeds and etc.

A CMS that already does this is BetterCMS

http://www.nuget.org/packages?q=BetterCMS

It has the application in parts as Nuget Packages written using MEF.

This makes installing, and uninstalling very easy to do, because this allows one Nuget Package to have an MVC Area Like function where you can have all of the parts needed for the "Area" Controllers, Models, Views, and anything else that is needed as a .dll within a Nuget Package using MEF.

This allows the application to be "truly" modular and users can install and uninstall what ever areas they wanted to or actually need, nothing is "baked" in.

Then to add more functions to it you just create a Nuget Package using MEF to target another "area" instead of editing it or changing it directly.

This could be the Admin or Pages to add specific functions that are not built in by default.

This allows to keep both a "core" and "custom" code on their own and the ability to run core updates when needed.





" if you want to do MVC, we can coordinate our moves."



Would love to do that, please help out at:

https://github.com/kbdavis07/BE-MVC

when you can :)



My goal is not to have you or the core BE development team overloaded with trying to both BE Web Forms and MVC, also don't won't those that are still using BE Web Forms to switch to MVC BE till it is 100% stable and in a good working condition.

In other words don't won't them to have a bad experience with a BE MVC version before it is really ready to be used by the masses.

But, eventually hopefully once BE MVC is 100% ready then have that to be the only and Official BE Version, and have no more Web forms.

For now I think the Development of BE MVC and BE Web Forms should be done at the same time in parallel.

I think having the BE MVC as a complete separate project can also help keep things separated and have a pure "MVC" version :)

So calling for anyone that would like to help out with this project to go here:

https://github.com/kbdavis07/BE-MVC/issues/1


Have a great day!

Brian Davis

http://bloggersonline.com
Coordinator
Oct 9, 2014 at 5:03 AM
Thanks Brian, my point is lets not duplicate efforts. I can do BE to play nice with MVC front-end, you can work on MVC and completely own it. Having two incompatible or poorly integrated projects would be bad in my view.
Oct 9, 2014 at 5:54 AM
Hi Rtur,

I completely agree with you with both issues :)

I also don't won't to duplicate efforts or have it incompatible.

Main thing for me with BE "as-is" now it is not using all features of " The Microsoft MVC Framework".

(Technically BE is using the Model/View/Controller Model)

MVC I am trying to use I mean the Framework from Microsoft, not the Separation of Concerns or Model :)
  1. Using Routes for URL
  2. Models have full intelsense support in themes and etc from Visual Studio
  3. Static pages use .cshtml and located in /views folder (No more .aspx pages or .ascx controls)
I want to document and plan out everything before even writing any code for BE MVC :)


Looking at current version of BE seems like most of it is ready for a "Pure" MVC application, it just needs to be put into a MVC project and some adjustments and etc :)

I have some rough ideals here:

https://github.com/kbdavis07/BE-MVC/wiki/Core-Features-WishList

https://github.com/kbdavis07/BE-MVC/wiki/Architecture


Goal when all is said and done would like to have BE out of the box as an pure MVC web application with no adjustments needed once you install it on a server.


How in the end this gets done to me does not matter, BE officially makes this happen or it gets developed as a side project?


Main thing I just want a Pure BE MVC Web Application that uses all of the features that the Microsoft MVC Framework offers with no hints or existence of web forms in it :)


Install and Go and have a Pure BE MVC Web Application on your server, with no separate installs from Nuget packages to get it going :)


Having the option of having BE divided into packages through is good to integrate BE with an existing Website to add a "Blog" functionality and should be one of the install options for BE.

Install Options:
  1. Full Package (Contains all of the Nuget Packages needed for a Full Pure MVC Web Application) { Install and GO! }
  2. Nuget Packages (User Install the "pieces" they need for their website) {Some configuration required}
  3. Microsoft Application Gallery (Installed either through a Server Web Application or Web Matrix)
Hopefully this clears up my goals :)
Oct 9, 2014 at 5:42 PM
I very much like the idea of MVC BE, especially considering MVC 6 will be released soon, which is fully open source, and will allow non Visual Studio developers to work with BE. Seems like would help expand the developer audience significantly.

http://www.asp.net/vnext/overview/aspnet-vnext/getting-started-with-aspnet-vnext-and-visual-studio