EvilB2k schreef op zondag 28 maart 2010 @ 17:43:
ter aanvulling: Het framework is de tool om MVC te realiseren, maar het is belangrijker (imho) om het gedachtegoed achter MVC en de voordelen die dit met zich meebrengt te begrijpen. Het 'voelt' niet alleen goed om MVC.Net te gebruiken; het is gewoon goed om het te gebruiken vanuit een architectuur en onderhoud standpunt.
Een goed onderhoudbare applicatie kun je ook maken zonder MVC. En het is waarschijnlijk ook wel mogelijk om met MVC een draak van een applicatie te maken. Dus dat is niet echt overtuigend. Ik bouw al enkele jaren ASP.NET applicaties en ik moet zeggen dat ik nog nooit een applicatie heb opgeleverd die een slechte architectuur had en lastig was te onderhouden.
Door MVC.Net te typeren als een tool om handige urls te generen, doe je MVC echt zwaar te kort.
Het is niet het enige wat het kan, maar tot nu toe zag ik dat als enige verbetering. Misschien een beetje te kort door de bocht

Sebazzz schreef op zondag 28 maart 2010 @ 16:44:
[...]
Als je laatste webcreatie in PHP is gemaakt en je nog nooit met het MVC pattern hebt gewerkt (of uberhaupt met ASP.NET), vind ik de leercurve juist helemaal niet stijl. Met een simpele Nerddinner tutorial leer je al heel snel de concepten van MVC en ASP.NET MVC.
Ik werk al een paar jaar met ASP.NET en moet toegeven dat het even duurde voordat ik dat "model" helemaal door had. Misschien is het bij MVC ook een kwestie van gewenning hoor, maar de werkwijze is voor zover ik heb gezien wel anders dan ASP.NET.
Mijn redenen om voor MVC te kiezen is dat het goed onderhoudbaar is, en je unit testing makkelijk kan toepassen. Je hebt ook complete controle over je HTML (hoewel je dat ook in ASP.NET webforms kan bereiken, maar niet zo makkelijk).
De ASP.NET standaard controls heb ik jaren geleden al opgegeven. Voor veel zaken gebruik ik custom controls of probeer ik zoveel mogelijk zaken zelf te genereren. Door mijn kennis van HTML/CSS hoef ik ook nooit de designer te gebruiken. Dit houdt mijn code dus ook relatief schoon en heb ik ook het gevoel de boel goed onder controlle te hebben.
En niet echt een goede reden, maar het 'voelt' goed om het datamodel en validatie gescheiden te houden van de logica, en de logica gescheiden te houden van de presentatie. Met ASP.NET MVC kan je je ook heel goed richten op wat je wilt, zonder dat je je met basic dingen zoals authenticatie en parsen van invoer hoeft bezig te houden. Met een paar simpele attributen kan je authenticatie, caching en dergelijk prima regelen.
Uiteraard is scheiden van lagen/zaken een goed idee. Daar sta ik zeker achter, maar zoals boven gezegd is dat ook goed mogelijk met een ASP.NET applicatie. De genoemde attributen had ik me nog niet in verdiept (er stond me zelfs iets bij dat authenticatie lastiger was, maar dat is denk ik verkeerd).
Als je dan ook een goede O/R mapper gebruikt hoef je je over databasetoegang en SQL injectie ook niet druk te maken, dat wordt allemaal voor je geregeld. En als je oplet hoe je je view schrijft hoef je je ook niet zorgen te maken over XSS.
De O/R mapper is niet specifiek voor MVC, maar door het gebruik van dat soort dingen in MVC kun je wel goede stabiele applicaties maken.
Tuurlijk, in PHP zal het vast ook goed kunnen, maar de goede documentatie van de API en de assistentie van Visual Studio maakt het ontwikkelen ook heel makkelijk.
Hier kan ik alleen op zeggen:

Visual Studio
Iig bedankt voor de uitleg en motivatie, ik heb wat ebooks staan en al wat tutorials bekeken, maar was nog niet overtuigd. Misschien toch nog maar eens proberen mezelf te motiveren er toch iets mee te gaan doen (hands-on werkt toch vaak beter). Misschien wordt mijn volgende kleine site wel een MVC projectje