MVC can't do that



  • We have a Windows product that one of our clients has decided to make into a Web app for their users, because their users - unlike most - have desktops rather than occasionally (rarely) connected laptops.

    Our product has one killer feature: we have windows that build dynamically to show you all the fields relevant to the current screen you're looking at. Since a lot of screens are quite similar to one another, except a few of their fields are different, and fields always react to each other the same, this is a modular system that allows us to add/remove fields, and add new screens, in next to no-time. It's buggy as hell, and could have been implemented better, but as it is it is already the single most important feature of our software - it's what makes it what it is.

    I was discussing with a colleague how to implement the API for the new web app (my job is to make our program into an API, and the client write their own ASP.Net code to run it in IIS). When we came up with a viable solution - one that's easy enough to implement, and useful enough to contain everything we need. We went to the client with it.

    "Oh," exclaimed the client, "we meant to tell you. We won't dynamically choose which fields to show and which fields not to because MVC can't do that. We'll just implement every screen separately, so we don't need this feature."

    It's not the ignorance I mind so much as the fact that given similar past experiences, even if I showed him exactly how to do it he would still know it's impossible. Because he's the expert on web design, and we're just a WinForms shop (never mind that 90% of my experience is in web). Luckily, it's not our job to implement these screens, but some other unlucky bastards.


  • Discourse touched me in a no-no place

    You know, this is the only way of reaching a 10M line application that has ever made sense to me. Repeating the same code (except for a one-or-two line tweak) over and over is a great way to build up the line count. It also gives a lot of room for buried WTFs.



  • is MVC the application? or Model-View-Controller?



  • Probably means the MVC framework for ASP.net.



  • @blakeyrat said:

    Probably means the MVC framework for ASP.net.

    Yeah, that's what they meant.

    P.S. MVC can do that.



  • @dkf said:

    You know, this is the only way of reaching a 10M line application that has ever made sense to me. Repeating the same code (except for a one-or-two line tweak) over and over is a great way to build up the line count. It also gives a lot of room for buried WTFs.

    It's funny you should say that, because every damn time I've had the misfortune to deal with an MVC system, even making a one line bugfix involves copying huge swathes of code from Models, Blocks, controllers, config.xml files, templates etc etc into a new "local" namespace so that we don't touch the core.

    Not to mention the "modular nature" (sic) meaning every plugin and add-on that implements functionality common-sense dictates *should* have been in the core but wasn't so you have to pay $50 for an add-on to a "free community version", will also duplicate huge swathes of code.

    When getting a value from a database and presenting it on the screen takes 15 individual scripts, 30 abstract objects, 5 html templates (and a partridge in a pear tree), then something is seriously fuckign wrong with your MVC methodology.

    Has any guessed I'm griping about Magento, the shopping cart that's less fun than having your fingernails pierced by red-hot needles ?



  • @daveime said:

    When getting a value from a database and presenting it on the screen takes 15 individual scripts, 30 abstract objects, 5 html templates (and a partridge in a pear tree), then something is seriously fuckign wrong with your MVC methodology.


    Sounds more like MVVMMVBLESCT methodology - Model/View/ViewModel/ModelView/BusinessLayer/ExtraScripts/Controller/Templating.



  • @daveime said:

    @dkf said:

    You know, this is the only way of reaching a 10M line application that has ever made sense to me. Repeating the same code (except for a one-or-two line tweak) over and over is a great way to build up the line count. It also gives a lot of room for buried WTFs.

    It's funny you should say that, because every damn time I've had the
    misfortune to deal with an MVC system, even making a one line bugfix
    involves copying huge swathes of code from Models, Blocks, controllers, config.xml files, templates etc etc into a new "local" namespace so that we don't touch the core.

    Not to mention the "modular nature" (sic) meaning every plugin and add-on that implements functionality common-sense dictates should have been in the core but wasn't so you have to pay $50 for an add-on to a "free community version", will also duplicate huge swathes of code.

    When getting a value from a database and presenting it on the screen takes 15 individual scripts, 30 abstract objects, 5 html templates (and a partridge in a pear tree), then something is seriously fuckign wrong with your MVC methodology.

    Has any guessed I'm griping about Magento, the shopping cart that's less fun than having your fingernails pierced by red-hot needles ?

    This is one of the smartest things I've ever read here.



  • @daveime said:

    Has any guessed I'm griping about Magento
     

    I prefer Professor X.



  • I was in the Magento team for a couple of months, and ran away in fear that it was going to molest my brain until I'm dead and then eat it for its breakfast.

    Also, I'll have you know, all this bizarre architecture is the brainchild of one person. I'm afraid to even speculate how dangerous he might be if he easily spurts those atrocities to life and defends them as if they were his very children.



  • Does Magento have a Global Payments plugin?


  • Trolleybus Mechanic

    @flabdablet said:

    Does Magento have a Global Payments plugin?
     

    Weep for the future, fladablet. [url="http://www.globalpaymentsinc.com/Canada/productsServices/eCommerce.html"]Weep for us all.[/url]

    @Global Transport - Shopping Cart Plug-ins said:


    Simple eCommerce payment integration to the Global Transport Secure Page solution through industry-leading online shopping carts including the Magento®, X-Cart®, ZenCart® and osCommerce®



Log in to reply