Ne, to není o tom, že bych se naučil jednu věc a už nikdy nechtěl nic jiného. Důvodů pro to je celá řada - to hlavní, co mě štve, je ta mezivrstva Controller - nedělá v podstatě nic jiného než že přetahuje data z Modelu do View a opačně, když to trochu zjednoduším. K ničemu jinému není - validace a řešení věcí jako je oprávnění se mají dělat v modelu (protože ten může používat časem třba i těžký klient atd.), generování výstupů je ve View. Controller je v podstatě zbytečný kód, který jenom přenáší data z jednoho místa na druhé. V ASP.NET WebForms je to jasné - vzhled je vzhled, datovou vrstvu má člověk tak jako tak a analogie controllerů jsou EventHandlery. Ale ty už opravdu dělají jenom to, co se dělat mají, nestarají se o vytažení dat a přesouvání z místa na místo (od toho jsou třeba DataSources, které si nastavím deklarativně; nebo to mají dělat komponenty samotné, abych to neměl v každém Controlleru, kde tu komponentu používám). Ano, i v MVC se dají psát a dělat komponenty a ty frameworky to podporují, na druhou stranu ty komponenty jsou pořád o dost slabší než v ASP.NET WebForms. V praxi je MVC vždycky víc psaní, víc opakujících se patternů v kódu a pomalejší vývoj. Ten návrhový vzor za to nemůže úplně, ale z části ano. Ale to jsme tak trochu odbočili.
|