Developer roadmap - 1. Moving to MVC. Your thoughts.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
13 years ago
eadameg wrote:
Thay care for its functionality, eassyness to use and stability.


pains and bugs of a migration.
Later you can move MVC


users care about user experience design, which MVC lends it self to better than web forms.

The reason why you and others are saying not to is not because you think web forms is better, but because of the learning curve from web forms to mvc.

Thats what I am seeing anyway.
13 years ago
thought wrote:
MVC is much faster than webforms and doesn't have viewstate. MVC works with HTTP, webforms works against HTTP.


MVC is easier to optimize, as a matter of fact a lot of optimizations that have to be done in Web Forms aren't necessary in MVC, so if NOP optimization is a priority (which after using it for several weeks I think it is) then MVC is the way
13 years ago
My 5 cents.

For more than a year ago I heard Bjarne Stoustrup talk about it. I said that both versions will be supported and added new functionality for years to come.

I like MVC myself, but I agree that it should wait. And form approach is not "bad", but different. There is other disadvantages with MVC.

At this point functionality is much more important. And over time it may be wise to have a branch that goes MVC.

Also I think there are some issues that we should overcome here. For instance I don't lake that you pass objects now (i'm sure lots of people would disagree ;)). It simply gives too much freedom for uses, and freedom can be bad also.

Anyways. Wait for a while (a long while). Get everybody happy with the framework behind. Then we can talk MVC.

I also vote for multistore firstly. That will change the whole datastructure and no reason to implement MVC when these fundamental big changes are still needed.

B.R

Chris
13 years ago
stoffer wrote:

Anyways. Wait for a while (a long while). Get everybody happy with the framework behind. Then we can talk MVC.

I also vote for multistore firstly. That will change the whole datastructure and no reason to implement MVC when these fundamental big changes are still needed.

B.R

Chris


I agree with you 1000%
13 years ago
Sheldmandu wrote:
The move to MVC certainly makes sense for the front-end at some stage as MVC is very good for generating highly controlled mark-up which is good for SEO.  However the back-end needs more richness in functionality so moving that doesn't make a great deal of sense, as it's a lot of effort for very little gain.


As an avid ASP.NET MVC developer who has released 20+ websites based on the framework I can personally say that this makes the most sense considering all of the complications which would come from a switch.

If nopCommerce were to to completely change to ASP.NET MVC almost all of the existing code would become useless; everything but some of the core business logic would be non-operational on the MVC platform because MVC does not support WebControls or anything resembling them.  What MVC does support, as others have said, is a strong separation of concerns and extensive, fine-grain control over every bit of output generated by the website.

In my opinion, one of the greatest benefits of gained from using the MVC framework is the unparalleled ease it gives developers in implementing beautiful client-side features which leverage libraries such as jQuery or MooTools. As we all know, client-side functionality is where user experience matters most in this new fancy new internet of ours. ASP.NET MVC truly makes client-side interaction uncomplicated for the first time in ASP.NET history.

I'm sure all of us will agree that with most websites, there is more code and functionality defined in the admin area than there is in the front-facing pages- and from what I've seen, nopCommerce is no exception. The admin area isn't for the general public and as such does not put forth as many presentational demands as the front-facing pages do. For that reason, I think it makes the most sense for the admin area to stay the way it is (at least for now) while front-end of nopCommerce gets migrated to the ASP.NET MVC framework. This solution would be very appealing because it would allow for the brunt of nopCommerce's code to continue to function exactly the way it is (in the admin area), while only the front-end would need an overhaul. With such a change both customers and developers would be able enjoy the elegance and speed that is MVC where it really counts: on the pages visitors see.

There few compelling reasons to rebuild the entire nopCommerce project using the MVC framework because doing so would essentially be equivalent to to throwing out about 60-75%~ of the work already done and starting over. Although the front-end could almost certainly benefit from a migration to the MVC framework, I would be surprised if the admin area gained very much at all. It simply doesn't make sense to throw out all the functional code that makes nopCommerce work, but that doesn't mean the project should stick with just Webforms. nopCommerce would benefit from a mix of Webforms and MVC.

For the community of nopCommerce developers, I don't think this switch would be too straining because many of the modules for nopCommerce do their heavy-lifting in the admin area and not the customer-facing front-end. Plugin developers could continue to develop things the way they have been in the admin area and for the front-end, through use of a quality pluggable architecture, it may be feasible (at least in some scenarios) to greatly minimize or even eliminate the need for plugin developers to mess with the MVC plumbing.

As for as the maturity of MVC as a platform: the MVC framework has come a long way in a relatively short while due to a very strong community of devoted users. MVC2 provides a exceptionally powerful and extensible engine for building rich, client-driven websites. The upcoming release of MVC3 appears equally impressive and it offers even more exciting options for developers working with MVC, but given the newness and somewhat incomplete nature of the Razor view engine, it doesn't seem like a good platform to invest in just yet. In my opinion, MVC2 using the standard webforms view engine would be an excellent candidate for an overhaul to the front-end of nopCommerce.

If nopCommerce is ever going to move to MVC, sooner is definitely better than later. nopCommerce has been in development for just a few years now and has already amassed hundreds of thousands of lines of code. Given this fact, the longer a switch to MVC is held-off, the greater the task of switching is going to be. If you're seriously considering a migration, don't wait too long, lest you risk having even more work end up in the recycle bin when the switch does happen.

TL;DR Keep the admin area the way it is. Convert the front-end to ASP.NET MVC.
13 years ago
nopCommerce team | retroviz wrote:
Why not both?

I agree a smarter way to go and based on the vote probably the best option to please everyone.

We do not have the manpower to create and maintain both.

Needs to be one or the other.


Why is it a question of lacking manpower? Once someone coming from Webforms has started working with MVC, there's nothing preventing them from going back and forth. Not to mention the fact that if the admin area is maintained how it is, it and the front-end gets an overhaul, you could effectively create two core teams working on each half of the project.
13 years ago
lakario wrote:

Why is it a question of lacking manpower? Once someone coming from Webforms has started working with MVC, there's nothing preventing them from going back and forth. Not to mention the fact that if the admin area is maintained how it is, it and the front-end gets an overhaul, you could effectively create two core teams working on each half of the project.


I thought it was pretty obvious. The nopCommerce development team is small and code contributions are few and far between.

IMHO there is little point in running both  MVC and web forms versions of the storefront. If we have established that MVC is the best for the storefront then that is what we will use.

If the decision is made to switch to ASP.NET MVC there is nothing to stop the community maintaining a webforms version.
13 years ago
nopCommerce team | retroviz wrote:

Why is it a question of lacking manpower? Once someone coming from Webforms has started working with MVC, there's nothing preventing them from going back and forth. Not to mention the fact that if the admin area is maintained how it is, it and the front-end gets an overhaul, you could effectively create two core teams working on each half of the project.

I thought it was pretty obvious. The nopCommerce development team is small and code contributions are few and far between.

IMHO there is little point in running both  MVC and web forms versions of the storefront. If we have established that MVC is the best for the storefront then that is what we will use.

If the decision is made to switch to ASP.NET MVC there is nothing to stop the community maintaining a webforms version.


Due to the small size of the team I think that's why it would make the most sense to roll the MVC conversion out incrementally- starting with the customer facing pages and then later addressing the admin area (if at all). It's almost unquestionable that the front-end would benefit from a switch to MVC, but, realistically speaking, the admin area has very little to gain from it.
13 years ago
I am a Senior Software Engineer, and I have been developing E-Commerce among other software applications for over 10 years. I don't think nopCommerce should move to MVC either. It is very limited in the controls that are available and overly convoluted.

Here are my recommendations:

1) Silverlight
        - View Products in 3D This will help customers make better purchasing decisions; sometimes
           the shape of a product is important.
        - A richer interface for customers to improve the customer experience
        - Fully customizable with styles and templates. It's possible to make any control look totally different,
           and still have the same behaviors/events. (i.e. you can put a Grid in a Button if you want to.
           I don't know why anyone would want to do that, but that's how flexible Silverlight is!)
2) Entity Framework for most or all of the Data Access.
        - Domain Services (for interfacing with Silverlight)
        - Making changes to the Database Schema are trivial and have very little impact
           (just rebuild the Entity Model and Rock and Roll!)
        - LINQ to Entities is easy and increases overall development productivity
        - No more CRUD stored procedures
3) Cairngorm for Silverlight is awesome! And, very modular and universal. I have used it for about
     4 years now, and I have developed my own version of Cairngorm for ASP.NET. This has reduced
     the amount of time to implement features because they can be easily acreted.

Furthermore, I have worked with MVC, and I have a college who has used it (also with over 10 years experience) who absolutely hates it. His own words were, "I wish I never would have learned or used it!" ASP.NET MVC / Dynamic Data is definately not the direction things are heading; avoid it at all costs.
13 years ago
breakskater wrote:
I am a Senior Software Engineer, and I have been developing E-Commerce among other software applications for over 10 years. I don't think nopCommerce should move to MVC either. It is very limited in the controls that are available and overly convoluted.

Here are my recommendations:

1) Silverlight
        - View Products in 3D This will help customers make better purchasing decisions; sometimes
           the shape of a product is important.
        - A richer interface for customers to improve the customer experience
        - Fully customizable with styles and templates. It's possible to make any control look totally different,
           and still have the same behaviors/events. (i.e. you can put a Grid in a Button if you want to.
           I don't know why anyone would want to do that, but that's how flexible Silverlight is!)
2) Entity Framework for most or all of the Data Access.
        - Domain Services (for interfacing with Silverlight)
        - Making changes to the Database Schema are trivial and have very little impact
           (just rebuild the Entity Model and Rock and Roll!)
        - LINQ to Entities is easy and increases overall development productivity
        - No more CRUD stored procedures
3) Cairngorm for Silverlight is awesome! And, very modular and universal. I have used it for about
     4 years now, and I have developed my own version of Cairngorm for ASP.NET. This has reduced
     the amount of time to implement features because they can be easily acreted.

Furthermore, I have worked with MVC, and I have a college who has used it (also with over 10 years experience) who absolutely hates it. His own words were, "I wish I never would have learned or used it!" ASP.NET MVC / Dynamic Data is definately not the direction things are heading; avoid it at all costs.


breakskater,

The fact that you describe ASP.NET MVC as having limited controls and convoluted makes me seriously doubt your knowledge of it. There are no controls in ASP.NET MVC, only HTML (you know, the things all web sites are built with). The fact that you don't have an extra layer of encapsulation over the HTML (like in web forms) actually makes the interface more simple, rather than complicated as you suggest.

With someone having "over 10 years" experience in developing ecommerce applications and with such a strong opinion to move to Silverlight, I wondered whether you would like to share some links of some large volume ecommerce websites that are running purely on Silverlight. There aren't any that I am aware of.

In response to your recommendations:
1) Silverlight
- 3D products. Don't get me wrong we all love 3D and theres nothing stopping you from using Silvelight or Flash in web forms, ASP.NET MVC or a plain old html file.
- Richer interface/experience - This is no different to using jQuery in an application to improve the experience. But you still need those basic HTML building blocks
- Fully customizable etc. - CSS/Themes
2) Entity Framework - nopCommerce has been using EF since 1.7
3) I did try and check out the demo of this on it's codeplex page but it said that I had to install Silverlight. Is this a good enough argument. Probably??...

And your final paragraph about your friend who "hates" MVC and wishes he had never learn it. Aside from making me laugh, can you really say that "it's not the direction things are heading" without that backing that up with some facts?

First of all watch some of the presentations at PDC 10 and see what technologies are being covered. I'm going to bet my second hand casio digital wrist watch that ASP.NET MVC is one of them (it is).

Secondly, MVC is just a design pattern and is not exclusive to .NET. Magento (the most popular PHP shopping cart) is built using the Zend MVC framework.

It's great that people have opinions on this forum, but if you are going to post some very strong opinions then back it up with facts - "my college friend said" just doesn't cut it - unless of course your college friend is Scott Guthrie in which case you can disregard this entire post.

Rant over.
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.