MVC3 - lightweight CMS that can be added to existing application? - asp.net-mvc-3

I'm trying to find a CMS that can be incorporated into an existing MVC3 app.
I've played with N2, and can't get the damn thing to work in VS2010 or with .NET 4.
Umbarco doesn't appear to support MVC yet
Orchard looks great, but wants to own the whole application.
DNN is just a mess.
Any other brilliant solutions?
Post-mortem Dec 2011
This is an old post, but I thought I'd share my experiences with Orchard, and why I decided to go a different direction.
NHibernate
Aside from the very large number of transactions per page (literally dozens in some cases), each and every query was executed using sp_executesql. While not quite as bad as using Exec(), this rubs me the wrong way. Currently, my database is locked down so that applications can only execute stored procedures - that is, they can't perform select/update/delete, list entities such as tables, get any metadata, etc. This is a requirement for tier-wise unit testing, compile-time verification of the database, security and encapsulation of database logic from the application code.
Source Deployment
Orchard requires that the entire source for your site (views, .cs source files, etc) is deployed to the production server. The sheer number of source files that need to deployed boggles the mind.
Integration with an existing application
The manner in which Orchard is structured effectively requires it to be the point of entry for the web application. This means that you're going to spend some time modifying and reimplementing your app to get it to play nice with Orchard.
Conclusion
There were quite a few other issues that I encountered, but those are the highlights. Individually, each of those could have been a deal breaker. Together, they removed Orchard as a viable solution.
I'm now evaluating Telerik's Sitefinity. It's not MVC, which saddens me, but:
The admin interface is extremely powerful. Aside from a master page and some stylesheets that I put together in VS, we've been able to handle all of the layout via Sitefinity's admin tools.
I mean, it's really powerful. You can use the admin interface to edit the admin interface. Think about that for a minute.
Widgets are implemented as ASP.NET user controls. Most of my existing controls just dropped right in with zero modifications.
Database access is handled via Telerik's OpenAccess ORM. While Sitefinity doesn't natively use stored procedures, OpenAccess fully supports using them for all operations. Also, according to Telerik, OpenAccess does not, in any way, rely on reflection, which provides significant performance benefits in heavy-load apps.
There are several solutions available for using Razor markup within widgets, which is one of the great benefits (to me) of using MVC. Also, I've been told that native Razor support is in active development.
It's not free. In reality, however, a few grand barely breaks the noise floor in terms of development time.
Super crazy fast. Startup time is a bit on the slow side, but once it's running, it's very quick.
Built on top of Telerik's awesome, proven RAD controls.
Apologies for the long post. Hopefully this will be helpful.

You might find these projects useful. You can probably model a simple CMS based on one of their projects.
MvcCms
MvcMS
Atomic CMS
Mytrip.mvc

Try Web Noodles..The new CMS developed using mvc3. WebNoodles.It is easy to integrate .But the thing is it is still in beta stage..But you must give it a try ...

Related

Your thoughts on Fabrik as an application builder?

I've been tasked to develop a small web application for my company, and my initial plan was to use the Zend framework with Doctrine as this allowed for all the necessary features I needed. However, recently I came across a Joomla application builder called Fabrik which seems to have a lot of potential. My question is if anyone here has used it and if so, what your experiences were? Is it a stable, secure platform? Is it easy to use and does it allow for simple to more complex applications? And finally, how does it compare to one of the more established frameworks such as Zend or Cake etc. Any info regarding to your experiences would be appreciated.
I have not gone beyond a proof-of-concept using Fabrik, so I'm far from being an expert. What I've found so far is that Fabrik installs and configures easily in the Joomla environment and it's easy to get up and running. It's quite easy to get tables of output from the database and it's possible to do JOINs to combine data from multiple tables. The output format can be customized using CSS but I haven't been able to really customize the structure and I'm not sure it's possible to combine multiple tables into one report for example.
It's very easy to create a form that is an exact match of a table, so for data entry, it's very easy to set up a form to edit table data.
I haven't found it to be very flexible for creating a custom search form or a form that takes input from two drop-down list boxes and does a query based on the selected items in both lists.
The advanced search function that is provided is fairly powerful, but doesn't fit seamlessly into the Joomla environment so I think this feature needs to work to be something I would roll out to users.
Bottom line: Fabrik has been really well architected and will eventually be the most powerful and useful data management tool for Joomla, I just don't think it's quite there yet for providing a wide variety of forms and reports for end-users. It is still a very handy tool for more basic reports and for more tech savvy users to maintain data in a database.
Seen this question a bit too late, hope you have managed to solve your issues, but however, my several years experience with Fabrik and a few attempts on PHP frameworks such as Zend, Codeignitor etc, I can tell you Fabrik is the best RAD tool around. Especially now that version 3.x.x which works with latest Joomla 2.5.X is out. Offers so much power that you can have a very powerful system done within one night.

MVC Framework and CMS

I'm wondering just where a CMS - out of box like SiteFinity, Sitecore, SharePoint, DotNetNuke, etc. - fits with the MS MVC Framework (1 or 2). The MVC Framework presents a lot of benefits for developers and for overall SEO and SEM value, while most CMS platforms require a lot of the WebForms "stuff" that comes with ASP.NET. Thoughts? I'm trying to figure out if these two pieces fit well together for future projects, or if they are disparate concepts?
BTW: I realize that a custom CMS could work, however that can require an awful lot of extra time than just setting up an instance of an out of box CMS.
MVC is a pattern. There are CMS systems that are webforms-based, like DNN, and ones that are based on MVC, like Orchard. Either framework (Webforms or MVC) are equally capable of supporting a CMS. Your choice should be based primarily on the one that offers the features you want. If you expect to extend it with plugins, and you're already familiar with Webforms, go with the one you know unless you want to learn MVC.
My thoughts are you very limited in the tools/components available to you at present when you choose to go the MVC route. Although there are a few CMS components out there for MVC they lack maturity IMHO. I believe in a couple of years when MVC has more maturity you'll be able to achieve the speed and sophistication of application development that is close or on par with Webforms.
Right now though if you have a lean project budget, and you need sophisticated functionality (i.e. CMS); Webforms still remains hard to beat when you have those constraints.

Which MS technologies would be suited for a data intensive application?

I'm a junior VB.net developer with little application design knowledge. I've been reading a lot of material online regarding different design patterns, frameworks, and methodologies. It's become a bit confusing for me.
Right now I'm trying to decide on what language would be best suited to convert an existing VB6 application (with SQL server backend.) I need to update the UI and add more user functionality and reporting capabilities. Initially I was thinking of using WPF and attempting the MVVM model for this big project. Reports would be generated from SSRS.
A peer suggested using ASP.net and I don't have enough experience to determine what would be better. The senior programmers here are stuck on using VB6 and don't have any input on what to use. They are encouraging me to use the latest technologies.
This application would be for ~20 users in a central location. Ideally I would stick to a Microsoft .net language. Current interface is similar to a datagrid table where the user would click in to see the detail of each record. They would need to have multiple records open at any given time.
I look forward to all the advice I can get.
EDIT 2010/04/22 2:47 PM EST
What is your audience? Internal clients within an intranet
How complex are the interactions you expect to implement? not very... displaying data from SQL server to UI. Allow user updates to said data. Typically just one user modifying a record.
Do you require near real-time data updates? no
How often do you expect to update the application after the first release? twice/year
Do you expect a well-defined set of client platforms? Yes, windows xp environment, potentially upgrading to Win7. Currently in IE.6 moving to IE7 or 8 within a couple of months.
Do users need access from anywhere? No, just from their PC.
What would be wrong about building a simple ASP.Net application in VB.Net using Gridviews for allowing the data access and manipulation? Seems like a simple ADO.Net trial application if you aren't familiar with it in the beginning you will be by the end. CRUD applications are pretty common so it shouldn't be too hard to build it and then refine it as more requirements become apparent.
Sounds like you need to use a web-based solution--this eliminates alot of your potential distribution woes with multiple users. You could use silverlight, but if you are locked into SSRS, this might not be the way to go.

More examples of Prism (Composite Application Library) Applications?

The examples that Microsoft's Patterns and Practices provides are quite helpful:
about a half-dozen simpler QuickStarts which touch on specific issues
the StockTrader reference implementation, which is a fairly rounded application
but it lacks a more useful base application that reads and writes to a data source (XML or database), allowing users to login, edit data, logout, etc. (something like what ASP.NET MVC comes with).
Since Prism applications can get quite complex and lengthy (the StockTrader example is almost 300 files without tests), it would be helpful to have an application that takes care of the CRUD bulk that everyone needs to build for most apps anyway.
Does anyone know of any data-editing Prism example apps out there?
Here (http://petedoesstuff.net/Blog/?p=79) you'll find a bunch of links to the samples of using the Prism.
Particularly, LateNight (http://code.google.com/p/cwpfsamples/) may be what you need. It has login screen and data editing functions.
Its feedback I've seen a lot of. I'll pass this onto the Team and see if we can get some more examples put online around this space.
I'm currently writing my own demo app now, so i'll also try and put that online via my blog.
Scott Barnes - Rich Platforms Product Manager - Microsoft.
The reason data access was left out of the Prism RI is because it is largely irrelevant to Prism. I would think you're better off looking at something like DinnerNow for those kind of things.

What are the advantages of using an MVC framework over e.g. Drupal to build a large website? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I am writing a comparison between 3 technology options for building our new website:
Wordpress
Drupal
An MVC framework
The boss is sure we should use Wordpress, but the site will be big, with many sections, subsections, pages, and complicated templates.
I'm finding it easy to compare WP + Drupal, but not so easy to state the additional advantages (over Drupal) of using an MVC framework.
So far I have:
Custom data storage, content types, semantics
APIs / REST
Separation of logic / UI
Convention, code structure
(Obviously some of the benefits will be different depending on the type of project. In this case it will be a large portal for a museum, with potential for some social stuff for visitors)
It's difficult to compare a CMS (e.g., Drupal, WordPress) with an MVC framework because they are in different categories.
To specifically answer your question about the advantage of an MVC framework over a CMS, the advantage of an MVC framework is simply that it allows you to design the exact web app you need from the ground up.
As for your particular situation:
Using an existing CMS such as WordPress or Drupal would be an excellent idea if they fit your needs. It avoids reinventing the wheel, saves you time, and CMSs can be quite user-friendly (to varying degrees). If you plan to delegate the task of content updates to a non-technical user, then it might be prudent to choose a novice-friendly CMS rather than spinning your own with an MVC framework, possibly resulting in an app that requires more technical expertise to maintain.
If, however, you envision that the website will require a lot of custom business logic that would be difficult to implement within the constraints of a CMS, then you might need to use an MVC framework.
Thanks everyone for your answers. I made the case for using a Framework or Drupal, but it was decided that we should go with Wordpress, or at least start building on Wordpress and see how it goes.
FWIW here are the notes I came up with:
WORDPRESS / MU
http://wordpress.org/
http://mu.wordpress.org/
A personal publishing tool, blogging platform
PHP +
Many available widgets +
Multi-author support / workflow +
Social features (BuddyPress) +
Integration (BBPress etc) +
Easy, common +
Simple UI +
Able to manage multiple blogs (with WordPress MU) +
Only 2 content types (post or page) -
Not a real "CMS" / blog mentality -
Inflexible heirachy (no sections) -
Limited semantics -
Limited template choices for authors -
Messy code -
Security / exploits -
DRUPAL
http://drupal.org/
A content management framework, CMS construction kit, tools to build sites. For 'non programmers' to build websites, building blocks
PHP +
Made for big sites / portals +
Social features built in (each user has own profile/log, extensible) +
Page type selection/config by authors (block system) +
Scope for structured data / semantics +
Multiple content types (press releases, news articles, blog posts, etc.) +
Good community / tools +
Blank canvas +
Many features +
Good image handling +
Complex UI -
"Black box", very abstract code, learning curve! -
Customizing / theming is difficult -
FRAMEWORK
It allows you to design the exact web app you need from the ground up
Extensible +
Control of semantics, data storage +
APIs / Data / REST / Web services +
Current, modern tools, cutting edge +
Separation of logic/presentation (MVC design pattern) +
Convention - structured code, workflow +
Reuse/combine content +
Allows development of multiple UIs without touching business logic codebase +
Robust API / standards / patterns +
DRY (don't repeat yourself) +
Learning curve -
Need to design a custom UI -
Overkill? (depending on goals) -
You can't really compare WP or Drupal and MVC framework. What you can do is to decide whether to use an existing content-management system or roll out your own and compare ROI, TCO, development cost, etc.
As someone who has worked on various home rolled CMS systems for the best part of the last decade my advice is don't roll your own. If you have some unique application then MVC is a nice way to code up web applications, but it's ease won't counterbalance the thousands of man hours spend building and millions of page hits of testing the OSS ones have.
Drupal is not only a nice CMS system but also is a pretty good framework for building bespoke web functionality, so you get a lot for free and only have to spend time working on what is unique to your site. (after you have learnt how to code on drupal systems)
You can build a pretty extensible site based on WP or Drupal, but you may run into design limitations set based on what the frameworks were designed to do. Drupal/WP are content management systems at the core, so if you're not managing content, you're not using the framework effectively. If you find yourself building more and more code to get around these limitations, then you have cause to build from a scratch or use a lightweight framework.
I'm currently building a site with CakePHP MVC framework and I highly recommend it. IMHO, it satisfies all of your advantages.
Drupal has MVC Layer, check out Drupal Prometheus # http://www.drupalprometheus.org. It has most of the features of a modern MVC framework plus the power of Drupal CMS. We recently started using it on a project for our client.
The flexibility of a CMS has a limit, though with Drupal that limit is getting smaller. There is a learning curve to accomplish what you want, and it might not be the most elegant solution if you have to fudge it together with existing extensions. Of course you can always expand the functionality of any CMS yourself, but that may take more time than using a good framework in the first place.
I had this same dilemna recently, and after trying with Drupal, eventually went with the CodeIgniter MVC PHP framework instead. Probably worth investing a few days with a CMS first, to investigate if it's possible. If you then decide it'll be too difficult, use a MVC framework instead.
Microsoft ASP MVC (for example) is a framework for building your websites on, Drupal is a content management system where you "design" your pages but don't have to write any code.
I would say the advantage of using an MVC framework to roll your own instead of using WP or Drupal are:
You only code what you need. WP and Drupal are gonna have lots of stuff you don't need sitting on your server.
The developers understand the whole codebase because they've written it from scratch - making it easier to maintain later.
WP is a big codebase (I don't know about Drupal) as soon as you require something that isn't supported by either CMS you are going to have to dig around a lot of code.
Wordpress' separation of logic / UI sucks - I mean really sucks.
More flexibility. CMSs are great as you don't try to make them do something they weren't intended to do - then they become a pain.
If you are going to push for an MVC framework then you need to look carefully at which you would choose - they are not created equal. Some of them will place restrictions on your code and website layout in the same way a CMS would.
I guess it's really down to how complex the requirements are and how well a CMS or framework will meet those. For relatively simple content delivery it may be an option to write your own lightweight MVC and build upon that.
I would advise you strongly against WordPress, it is wonderful for sites with some static pages and one blog/news section, but I made a bilingual product website based on WP 2.2 and it was a major PITA with lots of hacking and writing database-reaching code into the template to make it possible.
Now I have been developing in Drupal and it is really better for larger projects (although it takes more time to set up a simple blog compared to WP) - it has wonderful modular architecture that allowed me to solve any request/problem so far by writing a module instead of hacking the core.
As for MVC/Drupal: have look what Drupal does, if you can get your result by modifying Drupal, then it is great and will save you a lot of time by not having to code the usual stuff (user registration, input sanitization, robust form handling and validation, theming infrastructure, storage abstraction, web services abstraction layer (Services module) and so on...).
Against Drupal: inherently slow, due to modular (I'm rendering a list of items, let's call all modules that implement theme_list to find out if they want to modify it) architecture, so if you are making next twitter, get a fast MVC framework instead. And caching of content for registered users still needs lot of work to be effective (a tagged cache should be in core), so sites when users are usually logged in can be slow.
I reckon Drupal is MVC. Drupal uses a theming system which is your views and a menu system which is your controller. The modules are your models. Sure, the menu is fragmented into various modules but it's still basically MVC right?

Resources