Автор работы: Пользователь скрыл имя, 26 Июня 2013 в 17:36, реферат
На сегодняшний день у разработчиков веб-сайтов есть богатый выбор относительно того, какой язык (или технологию) использовать для создания сайта. Вариантов много: Perl, PHP, ASP, ASP.Net, JSP, Coldfusion… Самыми распространенными (с большим отрывом от остальных) сегодня являются PHP и ASP.Net.
Поскольку автор имеет большой опыт разработки с применением обеих технологий, хотелось бы максимально объективно провести сравнение между этими двумя платформами.
Безопасность
Весьма распространен
миф о том, что все продукты
от Microsoft – «дырявые», а их аналоги
на Unix-платформе – безопасные. На
самом деле, к безопасности в Microsoft
относятся очень серьезно (об этом
свидетельствуют некоторые их интервью
и репортажи), основная причина возникновения
мифа – широкая распространенность
их продуктов, что обуславливает
гораздо больший интерес к
этим продуктам для злоумышленников.
Вопреки всему, по данным Securitylab.ru, веб-сервер
Internet Information Services имеет гораздо меньше
уязвимостей, чем его Unix-аналог – Apache.
Так, например, в IIS 6.0 было найдено всего
3 уязвимости!
Однако гораздо больше случаев взлома
веб-сайтов происходит из-за ошибок разработчиков
этих сайтов. И хотя вероятность успешного
взлома определяется в основном квалификацией
программиста, в этом аспекте имеются
некоторые преимущества у ASP.Net – более
жесткий контроль вводимых посетителем
данных. Например, по умолчанию включен
запрет на использование HTML-тегов в полях
ввода – таким образом, повышается защищенность
веб-сайта от XSS (Cross Site Scripting) атак. В PHP такие
проверки разработчику необходимо реализовывать
самостоятельно. Это особенно важно для
начинающих веб-программистов, которые,
как правило, в начале своего пути не знают
о возможных уязвимостях – эти знания
приходят с опытом. ASP.Net в случае обнаружения
некорректных данных сразу останавливает
выполнение веб-приложения и предупреждает
разработчика о потенциальной опасности.
В PHP выполнение продолжается и никаких
предупреждений программист не видит
– такой уязвимостью могут воспользоваться
злоумышленники.
Маленькие и большие проекты
Традиционно считается, что
PHP больше подходит для маленьких
проектов, а ASP.Net – для больших. Я
считаю, что это неправильно. Как
известно, под PHP существует множество
шаблонизаторов и фреймворков (Smarty,
Zend Framework и другие), которые приближают
его к ASP.Net с точки зрения архитектуры
приложения (отделяется программный
код от HTML-разметки, присутствует подобие
ASP.Net-контролов и т.п). И примеров
крупномасштабных проектов, написанных
на PHP, достаточно: vkontakte.ru, photofile.ru и т.п.
В то же время, и на ASP.Net можно легко
и быстро (возможно, даже быстрее, чем
на PHP) создать простой веб-сайт.
К большому преимуществу ASP.Net я отнесу
то, что он использует общую платформу
.Net. Во-первых, это означает, что если вы
– программист .Net, то вам не нужно учить
новый язык и осваивать новые библиотеки.
Во-вторых, этим открываются широкие возможности
интеграции Windows-приложений и ASP.Net-приложений.
Например, написанный ранее класс для
настольного приложения можно без доработок
и изменений использовать и в веб-проекте
на ASP.Net.
PHP же используется только для создания
веб-страниц. С его помощью еще можно писать
скрипты для командной строки, но такая
потребность возникает довольно редко.
Работа и зарплата
Вакансий много как
на должности разработчика PHP, так
и ASP.Net. В среднем, зарплата у ASP.Net-специалиста
немного выше, но это отнюдь не значит,
что нельзя найти очень хорошо
оплачиваемую работу PHP-программисту –
все зависит от уровня профессионализма.
Вакансии программистов на PHP, в основном,
открывают веб-студии, занимающиеся созданием
сайтов. ASP.Net-разработчики чаще всего требуются
в крупных компаниях, занимающихся корпоративными
приложениями.
Среди фрилансеров (людей, работающих
удаленно) гораздо большее распространение
получил PHP – в основном, в силу легкости
изучения. Однако, в этой ситуации программист
на ASP.Net имеет некоторое преимущество:
создав сайт заказчику на этой платформе,
он получает высокие шансы повторного
обращения (например, с целью добавления
функциональности на сайт) именно к нему
– найти другого фрилансера, работающего
с этой платформой, довольно тяжело.
Резюмируя
Я постарался составить сравнение
максимально объективно. В свое время,
я начинал именно с PHP. Была и ненависть
к Microsoft, и радость за то, как «хорошо
и как удобно все делать на PHP»
и т.д. Вскоре я столкнулся с платформой
.Net, которая понадобилась мне для
разработки Windows-приложений. Одновременно
я продолжал создавать сайты
на PHP. Через некоторое время я
понял, что программы на .Net у меня
получаются быстрее, с меньшим количеством
ошибок, и работа в Visual Studio гораздо
более удобна, чем в PHP-редакторе.
Так постепенно я стал переходить
на ASP.Net. На PHP я продолжаю писать
и сейчас, но, в основном, в ситуациях,
когда приходится вносить изменения
в работающий проект на PHP – переписывать
его полностью на ASP.Net займет гораздо
больше времени. Но при создании нового
веб-сайта я однозначно теперь выберу
ASP.Net.
Почему же PHP получил большее распространение
(как миниум, в нашей стране), чем ASP.Net? Во-первых
– он у всех на слуху. Веб-программированием
сейчас интересуются многие, и первое
что приходит на ум, если человек хочет
начать «делать сайты» – это PHP. Во-вторых,
многие не хотят использовать продукт
от Microsoft, полагая, что за это нужно платить
немаленькие суммы (с данным вопросом
мы уже разобрались) или просто испытывая
неприятные к этой компании чувства. В-третьих,
порог вхождения в PHP гораздо ниже, чем
в ASP.Net, т.к. сам язык проще для изучения
(например, для работы с ASP.Net необходимо
знать ООП, для PHP это необязательно). Однако,
повторюсь – я крайне не рекомендую начинать
изучение программирования с PHP – лучше
пусть это будет, например, язык Си.
Подводя итог, скажу, что, используя любую
из описанных технологий, можно создать
как очень хороший, так и весьма некачественный
продукт. Главное – это профессиональное
владение инструментом, а какой именно
инструмент использовать – выбор за вами.
Неволин Александр