Вот хорошая статья с изложением ваших проблем.Я упустил некоторые из пунктов, но следующие должны ответить на ваши вопросы.
I.Масштабируемость и простота обслуживания
Масштабируемость и простота обслуживания не имеют никакого отношения к тому, выбираете ли вы платформу PHP или ASP.net.Масштабируемость и простота обслуживания веб-приложений в первую очередь зависят от:
- опыта программистов
- Использование лучших практик программирования
- Использование надежной среды программирования
- В соответствии с руководящими принципами и стандартами программирования
II.Производительность и скорость
Было много споров по этому вопросу, и большинство дебатов были предвзятыми и были приспособлены для продвижения одного из языков программирования вместо информирования аудитории.
Однако,если язык программирования должен выполнять огромные задачи, аналогичные тем, которые выполняются ежедневно такими сайтами, как Google или Yahoo, то следует тщательно продумать выбор очень быстрого языка программирования для выполнения огромных задач - вот почему Google и Yahoo используютнесколько языков программирования (в основном с открытым исходным кодом), каждый из которых выбран для решения задач, которые язык программирования лучше всего выполняет.
Ниже я собираюсь проанализировать распространенные и необычные сценарии и объяснить, какая задача лучше, чемдругой:
1-й общий сценарий: Одной из общих задач любого веб-приложения является доступ к базе данных и ее запрос, а также вывод результата на веб-сервер, а затем в браузер.Таким образом, в этом общем сценарии все, что делает язык программирования, это связь / взаимодействие с сервером базы данных и веб-сервером.В этом распространенном сценарии скорость языка программирования практически не влияет на этот процесс;Скорость этого процесса зависит от сервера базы данных, веб-сервера, веб-браузера / компьютера клиента и пропускной способности.
Когда речь идет о главных и общих серверах баз данных, MySQL (теперь принадлежит Oracle), PostgreSQL, MSSQLи Oracle все борются за скорость и производительность.Мы постоянно наблюдаем новые функции и улучшаем производительность на всех серверах баз данных в каждой версии обновления, поэтому я скажу, что все вышеперечисленные серверы баз данных будут иметь высокую производительность, если программисты баз данных будут использовать оптимизированные и практичные запросы SQL и при необходимости использовать расширенные функции, такие какв качестве кэширования.
MySQL используется Google, Facebook, YouTube, Yahoo и недавно на чемпионате мира по футболу, который получил огромную аудиторию по всему миру.Поэтому я бы не стал сомневаться в возможностях сервера баз данных MySQL.
На основании моих исследований нескольких онлайн-статистик, на момент написания этой статьи связь и взаимодействие между PHP и MySQL быстрее, чем ASP.net и MSSQL.но это не очень заметно.
2-й общий сценарий: Одной из других общих задач любого веб-приложения будет доступ к файловой системе, поиск изображения и его отправка в Интернет.сервер.В этом случае, опять же, язык программирования делает очень мало - это операционная система и файловая система, которые несут бремя общения с языком программирования.
На основании моего исследования нескольких онлайн-статистик, на момент написания этой статьи ОС Linux и ext4 (файловая система) работают лучше (IO), чем ОС Windows и NTFS (файловая система.)
3-й общий сценарий: Большинство серверов Linux / Unix работают очень бережно, без каких-либо дополнительных ненужных пакетов или интерфейсов графического интерфейса, и поэтому ОС использует намного меньше ЦП и ОЗУ, что обеспечивает большее выделение базы данных и сети.server.
Большинство серверов Windows работают неуклюже и со многими ненужными пакетами и графическим интерфейсом, которые будут использовать гораздо больше ЦП и ОЗУ.
Очевидно, что платформа LAMP будет иметь преимущество перед ASPПлатформа .net, поскольку у нее будет больше доступных ресурсов.
Четвертый не очень распространенный сценарий: ASP.net обычно пишется на C # (произносится C Sharp) - вообще говоря, на момент написания C # является более быстрым языком программирования, чем PHP. (Это может измениться, так как каждый язык программирования будет предлагать обновления для борьбы за лучшую скорость.) Поэтому, если языку программирования нужно выполнить 2 000 000 циклов выполнения вычисления, ASP.net, написанный на C #, победит PHP. Тем не менее, это очень необычный сценарий, большинство циклических вычислений выполняются в сотнях, а не в 2000000. И в этом случае должны быть и другие опасения по поводу того, почему кому-то необходимо выполнить цикл вычисления 2 000 000 * 1053
Дополнительные элементы, которые могут влиять на производительность, но не имеют ничего общего с выбранным языком программирования:
Умение и знания программиста (ов) оптимизировать код
Способность и знания программистов для написания правильных и оптимизированных SQL-запросов.
Требуемая функциональность (некоторые функции могут выполняться дольше на платформе ASP.net и меньше времени на платформе PHP и наоборот.
III. Стоимость:
PHP, сервер MySQL, сервер PostgreSQL, сервер Apache и ОС Linux бесплатны, а обновления также бесплатны. Кроме того, не требуется никаких дополнительных затрат на лицензирование для использования другого сервера горячего резервирования в качестве резервной копии или необходимости запуска нескольких серверов для балансировки нагрузки или кластеризации серверов.
LAMP (Linux, Apache, MySQL и PHP) также намного более популярен среди хостинговых компаний, и его популярность приводит к более низкой ежемесячной стоимости хостинга для хостинга LAMP по сравнению с хостингом Windows.
ASP.net и IIS бесплатны, если вы покупаете ОС Windows. Существует существенная стоимость лицензирования для Microsoft Windows Server, Microsoft SQL Server и будущих обновлений. Например, Microsoft Server 2008 R2 Standard - 64-разрядная стоимость составляет около 1029 долларов, а Microsoft SQL Server 2008 Standard Edition для малого бизнеса - около 1038 долларов.
Указанные выше затраты на лицензирование для Microsoft могут существенно возрасти, если сайт станет популярным, и необходимо запустить сайт на нескольких серверах или если требуются серверные функции, такие как балансировка нагрузки, кластеризация серверов или горячий резерв.
V. Время на развертывание
Требуется большее количество (больше строк) кода для выполнения сложных функций и функциональных возможностей с ASP.net по сравнению с PHP, что добавляет больше времени процессу разработки.
Кроме того, PHP интерпретируется на сервере, поэтому при изменении функциональности не требуется никаких дополнительных шагов для просмотра изменений. С другой стороны, ASP.net необходимо компилировать каждый раз, когда код изменяется. Опять же, процесс разработки требует больше времени при использовании ASP.net, чем PHP.
* * VI тысяча семьдесят шесть. Независимая от платформы
PHP не зависит от платформы и может работать на любой платформе - Linux, Unix, Mac OS X, Windows.
ASP.net создан для работы только на платформе Windows.