Достоинства и недостатки PHP и ASP.NET
Какие сравнительные плюсы и минусы есть у PHP и ASP.NET как технологий для создания сайтов?
Какие сравнительные плюсы и минусы есть у PHP и ASP.NET как технологий для создания сайтов?
ASP.NET проще PHP в том смысле, что нужно меньше писать для решения одной и той же задачи. Аутентификация, авторизация, сохранение состояния перегружаемой страницы, гриды с автоматической привязкой данных, AJAX и прочие типовые вещи - встроены в ядро ASP.NET. Кроме того, архитектура классического ASP.NET является компонентно-ориентированной, то есть Web-страница представляется как форма, на которую можно кидать контролы и компоненты, подписываться на их события, а инфраструктура ASP.NET сама разрулит это так, чтобы у пользователя отрендерился нужный html + javascript, реагирующий на его действия таким образом, чтобы логика обработки этих событий исполнялась на сервере. Ещё одним плюсом ASP.NET является то, что приложение пишется на строго типизированных компилируемых .NET языках и поэтому технология существенно упрощает отладку по сравнению PHP.
Но лёгкость в разработке имеет свою цену в виде трафика. Для того чтобы эта инфраструктура работала, каждое действие пользователя требует перезагрузки всей страницы или хотя бы обновляемой панели AJAX. Кроме того, для того чтобы страница при перезагрузке без дополнительных действий со стороны программиста сохраняла введённые пользователем данные, эти данные должны быть продублированы в невидимом компоненте, который называется ViewState, и размазанный в строку битовый массив нехилого размера гоняется туда-сюда вместе со страницей. Так что за простоту разработки в случае использования ASP.NET WebForms платит конечный пользователь.
Технология ASP.NET MVC - это попытка приблизить ASP.NET к PHP по производительности. В этой технологии происходит отказ от компонентной архитектуры в пользу серверных вставок и выделения Master-страниц. Master-страница представляет собой шаблон, на основе которого создаются конкретные страницы путём вставки в указанные места шаблона специфического контента. Весь контент пишется на чистом html + javascript + серверные вставки, позволяющие при рендеринге страницы вставлять в неё код, сгенерированный контроллером, написанным под CLR. Таким образом, ASP.NET MVC - это отказ почти от всех преимуществ классического ASP.NET, кроме строго типизированного языка для разработки логики, ради борьбы с основным недостатком этой технологии.
Нет плюсов и минусов - есть разные концепции.
Стабильность зависит от рук сисадмина.
По поводу того что ASP.NET только под Windows - ASP.NET под линукс.