Coś, co przyszło mi do głowy jakiś czas temu, gdy dowiedziałem się o nowej strukturze MVC, jest to, że WebForms był, jak sądzę, próbą MVC na wiele sposobów. Znaczniki i kody z tyłu zawierają widok i kontroler, a ty możesz napisać własny model.
Pomysł ten idzie w parze z ważnymi względami projektowymi, które zdobyłem, ucząc się o MVC. Najważniejszym z nich jest utrwalenie podstawowej domeny twojego systemu jako całości i upewnienie się, że cała wspólna logika jest zdefiniowana na poziomie możliwym do ponownego użycia w tej domenie. To jest twój model i lubię nazywać logikę, która żyje na tym poziomie Domain Logic (ja łączę warunki, wiem). Twój Model powinien być wielokrotnego użytku w różnych aplikacjach (główna aplikacja web/winforms, aplikacje WinForm do narzędzi i konfiguracji, usługi przetwarzania w tle, usługi sieciowe itp.). Twoje aplikacje powinny pozostać bardzo specyficzne dla ich celu: składają się z logiki prezentacji (ich widoki) i logiki aplikacji (ich kontrolerów). Wszystko, co przekracza granicę wymagającą użycia w innych aplikacjach, można łatwo zaklasyfikować jako Domain Logic i nie powinno być częścią kodu aplikacji dla danej aplikacji.
Mam nadzieję, że ma to sens.
Najważniejsze jest to, że nawet jeśli nie korzystasz z czystego szkieletu MVC lub modelu obiektowego, ten wysoki poziom wyglądu można zastosować z doskonałym skutkiem. Wyizoluj wspólną logikę w warstwie domeny, która może być wielokrotnie używana w różnych aplikacjach, a aplikacje są znacznie łatwiejsze do napisania i rozszerzenia.