Для корпоративных приложений веб вообще не использовать, (а с другими я чесно гря не работаю)
Вообще я работал с JSP и ASP, Немного разбирался с аспнет. С пхп знакомился в свое время. ПХП мне больше понравился, если не использовать ООП.
мой подход:
Тупо берешь обрабатываешь реквест, анализируешь параметры на форме или query string, вытаскиваешь данные с бд и генеришь HTML.
Никаких своих классов, разве что уже готовые, типа рекордсета. Генерация HTML, насколько я знаю, вопрос в аспнете или в JSF - тривиальный. Им даже заморачиваться не стоит.
Я видел Контролеры в тысячи строк. И при этом не было намека на использование Моделей. А Представления, являющиеся частью Контролеров просто приводили в ужас. И это не Рефакторится, господа. Любое малейшее изменение бизнес-требований к системе требовало десятков человеко-часов разработчиков и тестировщиков.
Бывает, что случайно спросишь у основных разработчиков про TDD, дык они думают, что это про HTML.
Что TDD это тег ячейки таблицы. А XP - это плохо потому, что похожа на ХРень.
Про сетевые диаграммы и риски, что по части управления проектами, так это все лесом.
Планы - это небрежно исчирканный список на пыльном блокноте. Да, и управления изменениями или интеграцией - это неизвестная переменная, которая определена только для буржуев, а в нашей локале - undefined.
Я не защищаю ООП, но связка Web-Forms + MVC Framework + ORM Framework очень лаконична и прекрасна. Технологии .NET и Java cами по себе уже ООП. И использовать в ООП-ориентированной среде не ООП как-то неправильно. Даже всеми известный public static void Main(String[] args) очень смахивает на шаблон Command.
В ООП все прекрасно отлаживается:
- ~ 20% покрытие тестовыми классами с применениейм классов Заглушек
- обработка исключений и логгирование
- сценарии для селены.
Я люблю "блюдо спагетти", если это пища, а не термин.