PHP vs. ASP.NET глазами Microsoft

PHP versus ASP.NET [ <<> ] (eng). Почитайте — интересно. Некоторые вещи (например, по поводу организации функций) весьма разумны. Правда Microsoft, местами, слегка замалчивает некоторые вещи. В частности:

Data access is one of the most important parts of almost any application these days. Both PHP and ASP.NET offer facilities for connecting to various data sources such as Microsoft SQL Server™ and MySQL.

ASP, насколько я знаю, поддерживает только то, у чего есть ODBC-интерфейс, PHP, кроме ODBC, поддерживает различные СУБД через их API, что менее универсально, зато быстро и позволяет использовать некоторые функции характерные для конкретной СУБД. Собственно, Microsoft относит это к недостаткам:

[..] ASP.NET breeds data-access familiarity amongst developers. In other words, once you've learned how to connect to and send queries to a Microsoft SQL Server, you're going to understand how to perform the same actions with almost any data source. No such comparison can be made with PHP since PHP uses a completely different set of data access functions for each data source.

Таких мест там — масса. Но это и понятно — всякий кулик своё болото… Кстати, нигде не сказано, что ASP.NET работает только на одной платформе — Windows.

31 августа 2003 09:13

Spectator (инкогнито)
31 августа 2003, 14:04

А что, есть другие платформы, кроме Windows?

bolk (bolknote.ru)
31 августа 2003, 14:04, ответ предназначен Spectator

Билл, дружище, опять ты назвался чужим именем!

mivlad (инкогнито)
31 августа 2003, 15:35

А что, бывают сервера с Windows?

bolk (bolknote.ru)
31 августа 2003, 15:35, ответ предназначен mivlad

12.62% по статистике netstat.
http://netstat.ru/

mivlad (инкогнито)
31 августа 2003, 15:49

Вот это сильно понравилось:<blockquote>It is important to note that currently no product such as the Zend Accelerator exists for ASP.NET. The binary code that is generated by the CLR is already as optimized as possible; no add-on product is necessary to achieve maximum performance. In other words, ASP.NET is providing for free what PHP users must purchase from Zend.</blockquote>А многое из того, на что в этой статье наезжают, появится/будет доведено до ума в пятой версии, то есть уже в этом году наверное.
…и да, всё же я напрочь не понимаю, почему под sql-запрос, который по идее всего-навсего строка, надо создавать некий объект :-/

bolk (bolknote.ru)
31 августа 2003, 15:49, ответ предназначен mivlad

Ага. Тоже видел :)
Но идея с объектами неплоха — не надо боятся, что ф-и которые ты заводишь будут перекрыты в следующих версиях языка. Больше всего мне нравяться модули в Perl — можно импортировать ф-и в глобальную зону видимости, а можно вызывать из конкретного модуля. В TPascal есть примерно то же самое — можно явно указать из какого модуля вызывается ф-я.

dES (инкогнито)
31 августа 2003, 17:35

Cоврал батенька… ASP.NET, ADO.NET, GTK#, C#/VB Compilers есть под Linuhami -— go-mono (http://www.go-mono.com/). Заметь, они уже достаточно много написали. ASP.NET формы написаны, Web Services тоже писать можно, ADO.NET уже поддерживает достаточное количество Data Providers.

bolk (bolknote.ru)
31 августа 2003, 17:35, ответ предназначен dES

Про ASP я знал, но чтобы ASP.NET. С другой строны «достаточно много» — это не всё. Можно ли считать неполную функциональность достаточной? Для PHP, к примеру, есть BinaryPHP (пока ограниченный) — компилятор в C. Этак можно сказать, что PHP компилируется в бинарный код.

dES (инкогнито)
31 августа 2003, 18:02

К сожалению я не пытался прикручивать на Apache Mono, но мне кажется, что основное уже написано и спустя какое-то время можно будет писать ASP.NET апликации мультиплотформенно.

PHP ведь тоже долгое время оставался в тени пока большинство писали на Perl'e, ANSI C, etc. Прошло время, PHP подрос, набрал достаточное кол-во полезных функций и вот он стал до-о-остаточно распространён.

Я достаточно писал на PHP (да и пишу время от времени), но .NET некоторыми моментами (особенно это касается ASP.NET) поразил.

bolk (bolknote.ru)
31 августа 2003, 18:02, ответ предназначен dES

PHP долгое время оставался в тени из-за низкой производительности. В PHP4 производительность стала куда выше. Я в своё время, отдал предпочтение Perl'у, но когда вышел PHP4 взглянул на него другими глазами.

А чем поразил ASP.NET?

dES (инкогнито)
31 августа 2003, 18:43

Моментов есть много. Вот несколько из них:
* когда стартует апликация (а она стартует раз, а не при каждом запросе -— что-то вроде JSP -— сервлетов) создаётся объекты Application, который можно использовать для хранения гловальных объектов, типа статических Resultset'ов или какой-нить конфигурации. В PHP этого не хватает.

* встроеная поддержка Cache, начиная от slide/absolute expiration и заканчивая dependancy expiration (например при изменение какого-то файла)

* есть новшество -— ViewState, это что-то вроде Hidden поля, в котором можно хранить значения контролов или ещё для каких-то целей. M$, например, использует ViewState для быстрой отрисовки DataGrid'а (данные для datagrid'a хранятся в этом самом ViewState'). Разные контролы типа InputBox (. Есть уже достаточное количество валидаторов (RegularExpressionValidator, RangeValidator, etc.) , но если их мало, то можно сделать еще своих, наследуемых от CustomValidation.

Блин, чего-то меня понесло уже… Сорри, но на это действительно стоит посмотреть. Хотябы для того, чтобы некоторые моменты перенести и в PHP :)

dES (инкогнито)
31 августа 2003, 18:45

чего-то в последним посте вырезан кусок :(



* офигенно продумана валидация введённых значений. на каждый контрол, который тебе надо проверять (например, обязательно должно быть введёно значение) довешивается контрол . Есть уже достаточное количество валидаторов (RegularExpressionValidator, RangeValidator, etc.) , но если их мало, то можно сделать еще своих, наследуемых от CustomValidation.

Блин, чего-то меня понесло уже… Сорри, но на это действительно стоит посмотреть. Хотябы для того, чтобы некоторые моменты перенести и в PHP :)

bolk (bolknote.ru)
31 августа 2003, 18:45, ответ предназначен dES

Стоп. Как это стартует не каждый раз? В каком смысле? Для одного пользователя одна копия или что?

В PHP тоже есть Cache. Платный от Zend и куча бесплатных. Степень интеграции самая разная, конечно.

А hidden где хранится? Валидаторов тоже куча — в смысле классов сторонних разработчиков.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)