Перейти к содержимому

Фото
- - - - -

Вопрос ASP.NET или PHP? Плюсы и минусы?


  • Вы не можете создать новую тему
  • Please log in to reply
134 ответов в этой теме

#61 tmanager

tmanager
  • Новобранец
  • 14 сообщений
  • Откуда:Галичина

Отправлено 05 Март 2008 - 00:36

Я постараюсь исключить субъективизм. Например, мне очень нравится документация по php; но я в ужасе от MSDN, представляющейся мне лемовскими сепульками, сепулькариями и сепулением. Но я встречал очень серьёзных специалистов (и не в единственном числе!), которые при мне легко находили нужную информацию в MSDN. Значит, я снимаю аргумент про документацию как субъективный. И также поступаю со многими другими своими аргументами. Оставляю только те, которые не зависят от моих пристрастий и предпочтений.

Так начнём же повесть сию...

Очевидные преимущества ASP.NET

Типизация. Языки программирования ASP.NET имеют строгую типизацию данных. Это безусловно выигрышный момент по сравнению с нетипизированным php: меньше будет логических ошибок, которые весьма трудно находить и исправлять. Некоторым утешением для сторонников php является возможность привести переменную к нужному типу — но увы, присвоение переменной, приведённой к целому типу, строкового значения не вызовет даже предупреждения с стороны интерпретатора.

Маркетинговая политика Microsoft. Если Вы пишете на ASP.NET — на Вашей стороне мощная рекламная машина Microsoft, а также партнёрские программы этой фирмы. Без заказов Вы не останетесь.

Очевидные преимущества php

Кроссплатформенность. php портирован практически под все распространённые операционные системы, в то время как ASP.NET намертво привязан к Windows 2000/XP/Vista

Open source (открытый код) Вы можете внести изменения как в движок php, так и в набор стандартных функций самостоятельно (разумеется, если умеете программировать на С++). Это бывает полезно, когда быстродействие критично: скомпилированные функции выполняются быстрее, нежели написанные на php. Кстати, это хороший способ защитить приложение от несанкционированного использования.

Официальная бесплатность Вы можете легально скачивать с сайта www.php.net дистрибутив php, не чувствуя себя пиратом. То же самое касается смежных технологий. В то же время ASP.NET и смежные технологии — очень даже платные.

* * *

Итак, мы отметили достоинства обеих технологий, представляющихся мне очевидными и бесспорными. Со всеми остальными доводами обеих сторон нужно разбираться. Что ж, приступим.

Сравнение возможностей: стратегический паритет


Поскольку обе технологии ограничены довольно простым протоколом HTTP и языком разметки HTML — их возможности примерно равны. Все задачи, решаемые в рамках одной техногогии, столь же успешно решаются и в рамках другой. Можно спорить лишь о большем или меньшем удобстве предлагаемые технологиями решений — но мы воздержимся от споров о вкусах.

Таким образом, ни php, ни ASP.NET не дают технологического преимущества WEB-проекту. Различия проявляются в стоимости и трудоёмкости разработки и эксплуатации проекта. В этих показателях, по моему убеждению, php значительно выгодней ASP.NET. А преимущества ASP.NET в области разработки и поддержки, провозглашаемые рекламой, в основном являются, увы, не более чем рекламой. Обсудить которую, тем не менее, необходимо.

Провозглашаемые преимущества ASP.NET: опыт критического анализа

Управляемый код. Именно это мы услышим прежде всего, если речь зайдёт о преимуществах ASP.NET. Кстати, код, который не в .NET — провозглашается неуправляемым. Нам должно быть страшно, и от страха перед неуправляемым кодом (образ, достойный пера Стивена Кинга) php-шникам следует переходить на ASP.NET...

Но давайте попробуем разобраться, что стоит за термином «управляемый код».

Управляемый код (managed code)
Код, который запускается под "contract of cooperation" в среде выполнения. Управляемый код должен содержать метаданные, необходимые среде выполнения для того, чтобы обеспечить работу сервисов, таких, как управление памятью, межъязыковая интеграция, проверка доступа кода и автоматическое управление жизненным циклом объектов. Весь код, представленный в виде промежуточного языка, выполняется как управляемый код.

gotdotnet.ru

Управляемый код (managed code)
Код программы, исполняемый виртуальной машиной .NET — такой как .NET Framework CLR или Mono. При этом обычный машинный код называется неуправляемым кодом (англ. unmanaged code).
Слово управляемый здесь относится к методу обмена информацией между программой и исполняющей средой. Оно означает, что в любой точке исполнения, управляющая среда может приостановить исполнение и получить информацию, специфичную для текущего состояния.
Необходимая для этого информация представлена в управляемом коде на языке Intermediate Language и в связанных с этим кодом метаданных..

wikipedia

Вам стало понятно, что такое управляемый код? Если да, то я Вам завидую. Но мне придётся обратиться к статьям, трактующим это понятие для непонятливых. Итак, статья Написание надежного управляемого кода в .NET Framework 2.0. Автор — Стивен Тауб (Stephen Toub), технический редактор журнала «MSDN Magazine», в котором также ведет колонку «Вопросы .NET».

Задача написать надежный код, учитывающий все возможные сбои, может привести в уныние. Хорошая новость: если вы создаете не оболочку и не библиотеку для использования в хостах CLR, которым необходимо обеспечить продолжительную работоспособность, скорее всего, вам не придется думать обо всем этом слишком часто. Тех, кто все же занимается именно этим, должно порадовать то, что .NET Framework 2.0 предоставляет полезный набор инструментальных средств, облегчающих эту задачу. Понимая принципы работы и использования этих систем, можно написать управляемый код, настолько же надежный, как и аккуратно написанный неуправляемый код.[Выделено мной — Ю.М.]

Поискольку преимуществ управляемого кода выяснить не удалось, оставляю оппонентам бессмертную формулу Credo, quia absurdum и перехожу к следующему преимуществу.

Компиляция. Компиляция имеет неоспоримое преимущество перед интерпретацией: быстродействие. В самом деле, при компиляции исполняемый (машинный) код сохраняется на диске, а значит, при запуске этого файла не тратится время на трансляцию (преобразование исходного кода в машинный). Когда я выслушиваю от апологета ASP.NET этот довод, то добродушно спрашиваю: «А где же этот самый исполняемый файл, который образовался в результате компиляции?». С нескрываемой досадой собеседники отвечали, что при компиляции ASP.NET-проекта... никаких исполняемых файлов не создаётся.

Больше того. Когда мы пытаемся сравнить быстродействие, меня сразу предупреждают, что при первом заходе моего броузера на страницу ASP.NET оная будет заметно «тормозить», зато при повторных заходах будет грузиться очень быстро, потому что, оказывается, при моём первом заходе на страницу она... компилируется.

Странная какая-то компиляция, не находите? А вот я нахожу, что это больше похоже на интерпретацию с последующим кешированием. Снова преимущество ASP.NET не вдохновило меня. Так что идём дальше.

Разделение дизайна и программного кода. Лет пять назад, когда пробивала себе дорогу первая версия ASP.NET (ASP.NET I), его апологеты взахлёб расписывали возможность одновременной работы дизайнера и программиста над одной и той же страницей. Уже при продвижении ASP.NET II (2005-й год) об этом преимуществе предпочитали не упоминать. Стало очевидным, что одновременная работа дизайнера и программиста над формами — утопия. Инструмент работы дизайнера (и WEB-дизайнера в том числе) — Adobe Photoshop. Подавляющее большинство WEB-дизайнеров отмахнётся даже от правки HTML-кода: «Я художник, а не писарь!». А такого насилия над личностью, как правка дизайна в Visual Studio, не вынесет никто из них.

(В скобках заметим, что подобная утопия воплотилась в шаблонизаторе для php smarty. Но её использование — свободный выбор разработчика, и не может быть отнесён к достоинствам или недостаткам php).

Это же преимущество имеет ещё одну формулировку, а значит, и другое возражение.

Визуальный конструктор форм. Вам предагают отказаться от HTML-вёрстки форм, заменив её рисованием с помощью встроенного в Visual Studio визуального редактора.

Моё глубокое убеждение: не следует отказываться от HTML-вёрстки.

Если Вы создаёте страницы в визуальном редакторе — Вы теряете возможность управления формой через правку текста (HTML-кода), теряете управление дизайном с помощью CSS-файлов, зато приобретаете мёртвую привязку к среде разработки (Visual Studio).

Серверные элементы управления. Этот довод я считаю самым убедительным из всех неубедительных доводов в пользу ASP.NET. Серверные элементы управления представляют собой группы HTML-элементов, которые воспринимаются WEB-сервером (MS IIS) как одно целое. Например, календарь. Он передаётся броузеру как весьма громоздкий набор тегов и кодов JavaScript, но для кода на сервере это один элемент, содержащий указанную пользователем дату.

Серверные элементы управления во многих случаях действительно сильно ускоряют разработку форм. Календарь Вы создаёте за считанные секунды и несколько минут настраиваете внешний вид. Если Вы хотите создать календарь сами, используя php и JavaScript — я гарантирую Вам два дня напряжённого труда.

Но если Вы грамотно писали свой календарь в течении двух ней — Вы можете забыть о проблемах работы с календарём раз и навсегда. А вот тому, кто использовал в ASP.NET-проекте серверный элемент управления Calendar, я не могу этого обещать. Слишком вероятно изменение набора серверных элементов в следующих версиях ASP.NET.

Microsoft Solutions Framework (MSF). Это предлагаемая Microsoft методология создания программных решений, которая описывает управление людьми и рабочими процессами в процессе разработки решения под бизнес-требования заказчика. Vusual Studio 2005 содержит средства поддержки этой методологии: Visual Studio 2005 Team System.

Я почитал описание MSF. желающие могут их скачать со страницы www.microsoft.com/Rus/Msdn/msf/Default.mspx. Честно признаться, я не верю, что эта методология действительно может помочь при работе над IT-проектом, выполняемым на заказ. И вот почему.

Вот как данная концепция схематически отражает процесс разработки:
Размещенное изображение

Кстати, эта схема напоминает мне этапы согласно ГОСТ 19.102-77 «Единая система программной документации. Стадии разработки»:
Техническое предложение → Эскизный проект → Технический проект → Рабочий проект → Внедрение

«Вот скажут — это ново... А это уже было в веках...» (Экклесиаст).

Из этой схемы и описания к ней следует, что после утверждения концепция не претерпевает изменений. И что на этапе внедрения не вносятся изменения в программу.

Мне ближе мысли, изложенные в классической книге Фредерика Брукса «Мифический человеко-месяц, или как создаются программные системы»:

Правда заключается в том, что клиенты не знают, чего хотят. Обычно они не знают, на какие вопросы нужно дать ответ, и почти никогда не задумываются над задачей настолько детально, как это нужно указать в спецификации...

Я пойду дальше и стану утверждать, что на практике клиенты, даже вместе с инженерами-программистами, не в состоянии указать полно, строго и корректно точные требования к современному программному продукту, прежде чем будут созданы и опробованы какие-либо версии продукта, спецификации к которому они составляют

Глава 16


То, что пишет Брукс, я много раз испытал на себе, выполняя заказы. Именно на этап внедрения приходилась веха «окончательное утверждение концепции».

Так что я не готов работать согласно MSF, а значит, соответствующие опции Vusual Studio мне ни к чему.

Вот мы и рассмотрели все преимущества, о которых я услышал в рекламе. Если я что-то упустил — пишите комментарий. А мы переходим к преимуществам php.

За что я выбираю php

Не буду повторяться и долго говорить о кроссплатформенности, открытости кода и официальной бесплатности php. Также, как и обещал, постараюсь не быть предвзятым и приводить только те аргументы, которые можно проверить.

Нет чрезмерной привязки к операционной системе. Даже под Windows php может устанавливаться простым копированием, не записывая ничего в многострадальный реестр, не требуя создания специальных групп пользователей и т.п. После переустанеовки операционной системы Вам не потребуется долго «поднимать» php и проекты, по ним написанные. Скажем, в Windows разумно установить Apache, php и MySQL на не-системном диске. Даже после форматирования системного раздела (C:) и установки Windows заново Вам потербуется не более трёх минут для восстановления: снова инсталлировать Apache как службу
(командой apache -k install) и возобновить список виртуальных хостов (файл %System32%/drivers/etc/hosts). И всё, инцидент исчерпан...

ASP.NET взаимодействует с операционной системой (только Windows, и то не всякой) весьма тесно.

Хочу особо подчеркнуть преимущество, связанное со слабой зависимостью php от операционной системы: мне легко договориться с сисадмином фирмы-клиента.

Удачный набор функций. php предоставляет WEB-разработчику большое количество функций для решения типовых задач. Создатели php хорошо знают, какие задачи чаще всего решает разработчик WEB-приложений. В ASP.NET я не нашёл полезных функций, необходимых постоянно — при наличии огромного количества методов, которым и применения-то не придумать. Например, в WEB-приложениях часто проиходится очищать текст от тегов или заменять угловые скобки тегов на спецсимволы (это особенно актуально для форумов и гостевых книг), «квотить» строку для вставки в SQL-запрос, а также убирать этот квоитнг при извлечении строки из SQL-запроса. php предоставляет нам эти функции (соответственно strip_tags(), htmlspecialchars(), addslashes() , stripslashes()), а вот в ASP.NET я не нашёл соответствующих методов. Разумеется, их можно реализовать на C#. Но я не настолько люблю работать...

Вся информация о проекте — в текстах файлов проекта. И как следствие — нет необходимости в специальных средствах разработки (вроде Visual Studio). Иными словами, в php-проекте нет конструкций, для визуализации и редактирования которых требовался бы особый редактор.

Что же мы видим в ASP.NET? Данные, необходимые для работы проекта, хранятся не только в файлах проекта. Некоторые из них хранятся неизвестно где. Вот парочка примеров.

Подключаем к проекту библиотеку классов, по умолчанию не подключённую. Переносим проект на другой сервер — и оказывается, надо опять средствами Visual Studio подключать эту библиотеку. Хорошо, если она одна...

Если мы в текстовом редакторе создали класс, то при его копировании в папку проекта сталкиваемся с тем, что остальные файлы проекта этот класс не «видят». Класс нужно вставить через Visual Studio, которая где-то сохранит информацию о том, что в указанном пространстве имён (namespace) есть такой класс.

Итак, мы не можем формировать ASP.NET-проект без Visual Studio. В то же время php-проект хранит в своих файлах всю необходимую информацию, которая удобочитаема и доступна для редактирования (в т.ч. программного).

Подведём итоги

Стараясь быть максимально объективным, я изложил причины, по которым предпочитаю разрабатывать проекты на php, а не на ASP.NET. Но я вовсе не желал подвести читателя к выводу, что на ASP.NET очень трудно или невозможно сделать хороший проект. Я лишь хотел предостеречь от рекламных восторгов, от отношения к ASP.NET как к чему-то изумительному, позволяющему быстро и легко делать серьёзные проекты. И в заключение своей статьи пожелаю читателю сделать осознанныйвыбор, а не навязываемое рекламой решение. Удачи!

Сообщение изменено: tmanager (05 Март 2008 - 00:38 )

  • 0

#62 Vladson

Vladson

    XTGamers.com

  • Постоялец
  • 1 921 сообщений
  • Откуда:Эстония, Таллинн

Отправлено 05 Март 2008 - 01:46

Странная какая-то компиляция, не находите?

РНР так-же имеет возможность сохранять и исполнять скрипты в байт-коде (это компилируемый интероператор, и откомпилированный код можно сохранить) за это отвечает например модуль bcompiler входящий в состав РНР (особо нагруженные проекты используют его или его аналоги как платные так и бесплатные в том числе и навороченные с оптимизациями кода)

Сообщение изменено: Vladson (05 Март 2008 - 01:48 )

  • 0
Один Владсон может за...ать всех, кроме себя самого. Два Владсона могли бы за...ать абсолютно кого угодно, но Владсон единственный и неповторимый. ©Vladson

Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih

Не вазелин, а бизнес-гель ©Avagraen

#63 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 05 Март 2008 - 09:41

Давайте поговорим о многопоточности (threads) ... по-моему это возможно только в PHP 6 ... а в ASP .NET работает на ура. Одно это только делает ASP .NET более привлекательным.
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...

#64 Warvick

Warvick
  • Пользователь
  • 411 сообщений
  • Откуда:Tallinn

Отправлено 05 Март 2008 - 10:10

tmanager,
Подробно, но с очень слабенькмим знаниями о .NET.
Повторюсь. ASP.NET - БЕСплатная технология. IIS платный.

что касается замечаниий, то
1)

Задача написать надежный код, учитывающий все возможные сбои

вот как следует это читать.
2)

С нескрываемой досадой собеседники отвечали, что при компиляции ASP.NET-проекта... никаких исполняемых файлов не создаётся.

WTF? Про динамическую компиляцию они конечно не слышали?:) а Bin директория из проекта у них тоже пропала никак? :) и в “%SystemRoot%\Microsoft.NET\Framework\v%CLRVersion%\Temporary ASP.NET Files” тоже пусто?. Удивите мну.
3)

Больше того. Когда мы пытаемся сравнить быстродействие, меня сразу предупреждают, что при первом заходе моего броузера на страницу ASP.NET оная будет заметно «тормозить», зато при повторных заходах будет грузиться очень быстро, потому что, оказывается, при моём первом заходе на страницу она... компилируется.

Так и есть, опять же читайте про компиляцию. Это позволяет вносить изменеия в "бегущее" приложение на лету. Без компиляции всего проекта.

Странная какая-то компиляция, не находите? А вот я нахожу, что это больше похоже на интерпретацию с последующим кешированием.

Похоже, но это именно компиляция.
4)

А такого насилия над личностью, как правка дизайна в Visual Studio, не вынесет никто из них.

Дело привычки и вкуса. Мну от нотпада например воротит.
5)

Вам предагают отказаться от HTML-вёрстки форм, заменив её рисованием с помощью встроенного в Visual Studio визуального редактора.

Мой мозг начинает закипать. Кто ? Покажите мну этого злого дядьку. Я сделаю ему ататат.
6)

Если Вы создаёте страницы в визуальном редакторе — Вы теряете возможность управления формой через правку текста (HTML-кода), теряете управление дизайном с помощью CSS-файлов, зато приобретаете мёртвую привязку к среде разработки (Visual Studio).

Мой мозг стал похож на плавленный сыр. В каком месте мы её теряем? Всё можно редактировать, пжлста.
7)

Microsoft Solutions Framework (MSF).

Методология разработки и технология общего вообще ничего не имеют. MSF ни разу не пользовал.:).RUP, Agile, Scram наш выбор :).
8)

Удачный набор функций.

Isset - полезна и изза .NET Reference/Value Type аналогов не имеет, хотя можно реализовать нес-ко вариантов. Все остальные проблемы имеют решение- Искать надо было лучше.
9)

Что же мы видим в ASP.NET? Данные, необходимые для работы проекта, хранятся не только в файлах проекта. Некоторые из них хранятся неизвестно где. Вот парочка примеров.

Рыдал. Даже комментировать ошибки не буду, не в силах.
  • 0
Да, я такой!

#65 zedirtybastard

zedirtybastard
  • Пользователь
  • 499 сообщений

Отправлено 05 Март 2008 - 10:26

Я тут плачу под стлом :) такого кол-ва бреда на строчку кода ( причем еще с умным видом) я никогда не видел.
Вообще, похоже на рассуждение 14и-летнего паренька, о том, что блондинки в постеле тепмераментнее, чем брюнетки основываясь на опыте своей правой руки.
Извини, чувак, но это действительно так, и Warvick указал далеко не все опусы в твоем сочинении.
  • 0

#66 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 05 Март 2008 - 10:29

Warvick, zedirtybastard, tmanager, вы еще передиритесь :D
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...

#67 zedirtybastard

zedirtybastard
  • Пользователь
  • 499 сообщений

Отправлено 05 Март 2008 - 10:48

Некоторым утешением для сторонников php является возможность привести переменную к нужному типу

Есть такое понятие, как кастинг.

Без заказов Вы не останетесь.

Если руки не из одного места и голова при постукивании не издает гулкий звон, на любом языке есть достаточно проектов

ASP.NET намертво привязан к Windows 2000/XP/Vista

Неправда! есть mono-проект, который позволяет запускать asp.net приложения под *nix

Open source (открытый код) Вы можете внести изменения как в движок php, так и в набор стандартных функций самостоятельно (разумеется, если умеете программировать на С++). Это бывает полезно, когда быстродействие критично: скомпилированные функции выполняются быстрее, нежели написанные на php. Кстати, это хороший способ защитить приложение от несанкционированного использования.

Не вижу смысла вносить изменения в набор стандартных функций, тем не менее, Microsoft открыла исходный код ряда библиотек .NET фреймворка.

Нет чрезмерной привязки к операционной системе. Даже под Windows php может устанавливаться простым копированием, не записывая ничего в многострадальный реестр, не требуя создания специальных групп пользователей и т.п. После переустанеовки операционной системы Вам не потребуется долго «поднимать» php и проекты, по ним написанные. Скажем, в Windows разумно установить Apache, php и MySQL на не-системном диске. Даже после форматирования системного раздела (C:) и установки Windows заново Вам потербуется не более трёх минут для восстановления: снова инсталлировать Apache как службу
(командой apache -k install) и возобновить список виртуальных хостов (файл %System32%/drivers/etc/hosts). И всё, инцидент исчерпан...

Ну ну, Cygwin ни разу не приходилось ставить, чтобы все библиотеки заработали? Или там мультитрединг в модулях отключать под виндой?


Удачный набор функций. php предоставляет WEB-разработчику большое количество функций для решения типовых задач. Создатели php хорошо знают, какие задачи чаще всего решает разработчик WEB-приложений. В ASP.NET я не нашёл полезных функций, необходимых постоянно — при наличии огромного количества методов, которым и применения-то не придумать. Например, в WEB-приложениях часто проиходится очищать текст от тегов или заменять угловые скобки тегов на спецсимволы (это особенно актуально для форумов и гостевых книг), «квотить» строку для вставки в SQL-запрос, а также убирать этот квоитнг при извлечении строки из SQL-запроса. php предоставляет нам эти функции (соответственно strip_tags(), htmlspecialchars(), addslashes() , stripslashes()), а вот в ASP.NET я не нашёл соответствующих методов. Разумеется, их можно реализовать на C#. Но я не настолько люблю работать...

О XSS уже подумали заранее, если в похапэ надо ручками все эскейпить, то в .NET есть SqlClient, которй это делает сам.

Вся информация о проекте — в текстах файлов проекта. И как следствие — нет необходимости в специальных средствах разработки (вроде Visual Studio). Иными словами, в php-проекте нет конструкций, для визуализации и редактирования которых требовался бы особый редактор.

Ну да, найдите мне IDE для ПХП, который будет давать возможность дебажить код, как студия.

Сообщение изменено: zedirtybastard (05 Март 2008 - 10:50 )

  • 0

#68 Warvick

Warvick
  • Пользователь
  • 411 сообщений
  • Откуда:Tallinn

Отправлено 05 Март 2008 - 10:49

Incubo,
В пятницу.. :) :) :)
  • 0
Да, я такой!

#69 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 05 Март 2008 - 11:39

Народ как бы то ни было ... j2ee рулит ... остальное - так детское ребячество.
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...

#70 tmanager

tmanager
  • Новобранец
  • 14 сообщений
  • Откуда:Галичина

Отправлено 05 Март 2008 - 11:43

ASP.NET - БЕСплатная технология.


С каких пор Visual Studio стали раздавать бесплатно?
А без неё ASP.NET -- как солдат без ружья.

Про динамическую компиляцию они конечно не слышали?


Звучит как "суверенная демократия".
Компиляция -- это создание файла с машинным кодом. Именно это делает компиляцию компиляцией. Если этого нет -- то это не компиляция.

а Bin директория из проекта у них тоже пропала никак?

Там нет файлов с машинным кодом. Так что хоть bin её назови, хоть exe, хоть compiled files...

Мну от нотпада например воротит.


А ЛЮБОГО дизайнера вывернет от Визуал Студии.
(кстати, при чём тут нотепад? Есть прекрасные редакторы -- скажем, EditPlus)

Покажите мну этого злого дядьку. Я сделаю ему ататат.


Многие на Земле мечтают сделать этому дядьке ататат. Но руки коротки...

Мой мозг стал похож на плавленный сыр.


Сообщите, когда он опять придёт в норму. Тогда продолжим дискуссию.


Вообще, похоже на рассуждение 14и-летнего паренька, о том, что блондинки в постеле тепмераментнее, чем брюнетки основываясь на опыте своей правой руки.


А вот это не просто похоже на демагогию -- это демагогия и есть.
  • 0

#71 defcon

defcon
  • Пользователь
  • 83 сообщений

Отправлено 05 Март 2008 - 11:44

оффтопик: :D :D
(простите, не удержался :D)
  • 1

#72 zedirtybastard

zedirtybastard
  • Пользователь
  • 499 сообщений

Отправлено 05 Март 2008 - 12:02

С каких пор Visual Studio стали раздавать бесплатно?
А без неё ASP.NET -- как солдат без ружья.
Звучит как "суверенная демократия".
Компиляция -- это создание файла с машинным кодом. Именно это делает компиляцию компиляцией. Если этого нет -- то это не компиляция.
Там нет файлов с машинным кодом. Так что хоть bin её назови, хоть exe, хоть compiled files...
А ЛЮБОГО дизайнера вывернет от Визуал Студии.
(кстати, при чём тут нотепад? Есть прекрасные редакторы -- скажем, EditPlus)
Многие на Земле мечтают сделать этому дядьке ататат. Но руки коротки...
Сообщите, когда он опять придёт в норму. Тогда продолжим дискуссию.
А вот это не просто похоже на демагогию -- это демагогия и есть.

буду отвечать ссылками:
1. http://www.microsoft...ss/default.aspx
2. http://en.wikipedia....ime_compilation
3. http://msdn2.microso...gkmn37sd8r65363

You can store compiled assemblies in the Bin folder

4. демагогия
5. демагогия
  • 0

#73 Warvick

Warvick
  • Пользователь
  • 411 сообщений
  • Откуда:Tallinn

Отправлено 05 Март 2008 - 12:09

С каких пор Visual Studio стали раздавать бесплатно?

С момента выпуска Visual C#Express и Visual Web Developer

Компиляция -- это создание файла с машинным кодом.

Файла ли? ;)

Там нет файлов с машинным кодом.

там .dll с IL кодом.
  • 0
Да, я такой!

#74 tmanager

tmanager
  • Новобранец
  • 14 сообщений
  • Откуда:Галичина

Отправлено 05 Март 2008 - 12:16

Есть такое понятие, как кастинг.


Есть. В Голливуде, на Мосфильме.

Если руки не из одного места и голова при постукивании не издает гулкий звон, на любом языке есть достаточно проектов


На любом языке я могу разговаривать со всеми, но этим инструментом стараюсь не пользоваться. (с)

есть mono-проект, который позволяет запускать asp.net приложения под *nix


Есть. Только средств разработки нет. Раздел документации "Mono Development Tools" лаконичен:
No documentation available on this topic

А ASP.NET без специальных средств разработки вроде Visual Studio -- как солдат без ружья.

Ну ну, Cygwin ни разу не приходилось ставить, чтобы все библиотеки заработали? Или там мультитрединг в модулях отключать под виндой?


Не понимаю Вашего вопроса.

О XSS уже подумали заранее, если в похапэ надо ручками все эскейпить, то в .NET есть SqlClient, которй это делает сам.


Если мы в ASP.NET собираем текст строки запроса SQL -- то всё равно приходится кворить строковые значения, и не стандартной функцией, как в php, а своими силами.

Ну да, найдите мне IDE для ПХП, который будет давать возможность дебажить код, как студия.


У меня нет проблем поиска ошибок в php (
Если писать код грамотно -- то и особого дебага не нужно).

А в ASP.NET -- есть. Никогда не скажет по-человечески, в чём проблема.
  • 0

#75 tmanager

tmanager
  • Новобранец
  • 14 сообщений
  • Откуда:Галичина

Отправлено 05 Март 2008 - 12:33

1. http://www.microsoft...ss/default.aspx


Это полезная информация. Пару лет назад надо было заплатить $40, чтоб получить єкспресс-версию.

Но... у меня устанавливаться она не захотела. Сказала:

Точка входа в процедуру HeapSetInformation не найдена в библиотеке DLL KERNEL32.dll

И шо менi робити?

* * *

Вот так всегда с мелкомягкими технологиями. Когда ездил сдавать проекты, на них написанные -- трясся. Вот сейчас вылезет что-то подобное -- и ищи эту поганую точку входа под насмешливыми взглядами заказчика...
  • 0

#76 tmanager

tmanager
  • Новобранец
  • 14 сообщений
  • Откуда:Галичина

Отправлено 05 Март 2008 - 12:54

Давайте поговорим о многопоточности (threads) ... по-моему это возможно только в PHP 6 ... а в ASP .NET работает на ура. Одно это только делает ASP .NET более привлекательным.


Давайте. Всегда ли она твак уж нужна? И для каких задач наиболее критична?

Кстати, напомню, что мы говорим о WEB-приложениях.
  • 0

#77 zedirtybastard

zedirtybastard
  • Пользователь
  • 499 сообщений

Отправлено 05 Март 2008 - 13:06

Есть. В Голливуде, на Мосфильме.

Ну у вас пускай будет на мосфильме, для нас это :
http://msdn2.microso...105(VS.80).aspx

На любом языке я могу разговаривать со всеми, но этим инструментом стараюсь не пользоваться. (с)
Есть. Только средств разработки нет. Раздел документации "Mono Development Tools" лаконичен:
No documentation available on this topic
А ASP.NET без специальных средств разработки вроде Visual Studio -- как солдат без ружья.

Если так сильно хочется кодить в линукс-среде, для эклипса есть плугин под C#, а так-же NAnt, NUnit и куча других инструментов

Если мы в ASP.NET собираем текст строки запроса SQL -- то всё равно приходится кворить строковые значения, и не стандартной функцией, как в php, а своими силами.

http://msdn2.microso...y/ms998271.aspx, пункт 3

У меня нет проблем поиска ошибок в php (
Если писать код грамотно -- то и особого дебага не нужно).

Замечательная мысль! Напишите в микрософт и сан об этом! Я думаю тысячи разработчиков по всему миру разделяют ваше мнение!

А в ASP.NET -- есть. Никогда не скажет по-человечески, в чём проблема.

Неумение понимать не говорит о том, что продукт неработоспособен.

Давайте. Всегда ли она твак уж нужна? И для каких задач наиболее критична?

Кстати, напомню, что мы говорим о WEB-приложениях.


А что о них говорить, в перле например они с версии 5.0 ... а в пхп они и задаром не нужны.
Вообще, последнее время пхп начинает обрастать ненужным функционалом, пытаясь догнать те среды разработки, которые изначально ориентированы на более высокй уровень разработчиков.
В итоге теряется превосходный язык для новичков, которым был РНР3, а догнать другие языки и платформы по производительности не получится.
Треды и их контроль вообще не самая легкая тема, есть ли смысл о ней говорить в этом топике?
  • 0

#78 tmanager

tmanager
  • Новобранец
  • 14 сообщений
  • Откуда:Галичина

Отправлено 05 Март 2008 - 13:48

Ну у вас пускай будет на мосфильме, для нас это :
http://msdn2.microso...105(VS.80).aspx

Всё-таки пусть будет на Мосфильме -- я против нагромождения терминов из разных отраслей. Это граничит со словоблудием.


Если так сильно хочется кодить в линукс-среде, для эклипса есть плугин под C#, а так-же NAnt, NUnit и куча других инструментов


А в проекте МОНО о них ничего не сказано. Это мне, значит, придётся ради ASP.NET собирать какое-то чудище Франкенштейна из разрозненных "плугинов". Да минует меня чаша сия!


http://msdn2.microso...y/ms998271.aspx, пункт 3


Там и читает неумный совет:

private string SafeSqlLiteral(string inputSQL)
{
  return inputSQL.Replace("'", "''");
}

Кроме апострофа, есть другие проблемные символы. Тот же бэкслэш.
Стандартная функция addslashes() в php решает проблему куда изящней.

Замечательная мысль! Напишите в микрософт и сан об этом! Я думаю тысячи разработчиков по всему миру разделяют ваше мнение!


Я тоже так думаю. У квалифицированного программиста нет проблемы поиска ошибок.

Неумение понимать не говорит о том, что продукт неработоспособен.


Я всё же уверен, что проблема не в моём неумении понитмать, а в неумении (или нежелании) авторов ASP.NET делать сообщения об ошибках понятными.

Я же прекрасно понимаю сообщения php об ошибках.
  • 0

#79 Warvick

Warvick
  • Пользователь
  • 411 сообщений
  • Откуда:Tallinn

Отправлено 05 Март 2008 - 14:02

О многопоточности. Нет, нужна не всегда, но в некоторых случаях может значительно облегчить жизнь.
Пример: Интернет магазин. у пользователя есть корзина покупок. При запросе пользователем страницы с перечнем содержимого корзины нужно вывести содержимое корзины + отдельным блоком "схожие товары".
В классическом построении и В асп и в ПХП эти запросы будут выполняться последовательно. Однако в АСП вожможно распараллелить запросы. Т.е. при запросе страницы в отдельных потоках идут 2 запроса (к базе) при этом страница "ждет" получения результатов с обоих запросов. Как только результаты получили - можно продолжать прорисовку.
Такой подход может дать прирост производительности.

Также подход может "разгрузить" сервер, вернее пул потоков. При запросе страницы на серваке выделяется поток, который обрабатывает запрос. Т.е. пока запрос не завершится полностью потом будет занят.
При асинхронных запросах поток(П1) выделяется и используется ДО того момента, как на АСП странице начинается асинхронный запрос(П2). П1 помещается в пул т.е. может быть использован уже другим клиентом. П2 выполняет запрос и передает результат новому потоку П3 который завершает формирование ответа.
Таким образом повышается производительность при множестве одновременных подключений.
  • 0
Да, я такой!

#80 zedirtybastard

zedirtybastard
  • Пользователь
  • 499 сообщений

Отправлено 05 Март 2008 - 14:08

Всё-таки пусть будет на Мосфильме -- я против нагромождения терминов из разных отраслей. Это граничит со словоблудием.

О каком словоблудии речь? Вы начали речь о Strongly-typed языках, в них во всех применяется этот термин, к тому же я вам дал ссылку для ознакомления, дабы и в самом деле не пугать незнакомыми словами.

А в проекте МОНО о них ничего не сказано. Это мне, значит, придётся ради ASP.NET собирать какое-то чудище Франкенштейна из разрозненных "плугинов". Да минует меня чаша сия!

т.е. вы заходите на сайт пхп, идете там в раздел IDE, качаете там Visual PHP 2008 какой-либо и работаете? Если б это было так, а то приходится покупать Зенд Студию или EditPlus (да да, он платный), или качать Phpeclipse или настраивать vim, что обеспечит слом мозга.

Там и читает неумный совет:

private string SafeSqlLiteral(string inputSQL)
{
  return inputSQL.Replace("'", "''");
}

Кроме апострофа, есть другие проблемные символы. Тот же бэкслэш.
Стандартная функция addslashes() в php решает проблему куда изящней.

не надо выдирать слова из контекста:

In situations where parameterized SQL cannot be used and you are forced to use dynamic SQL instead ...

Я тоже так думаю. У квалифицированного программиста нет проблемы поиска ошибок.

Вот и чудненько! мы все дружно вам апплодируем! а те кто юзают xdebug вообще недостойны нашего внимания!

Я всё же уверен, что проблема не в моём неумении понитмать, а в неумении (или нежелании) авторов ASP.NET делать сообщения об ошибках понятными.

Я же прекрасно понимаю сообщения php об ошибках.

Вы знаете, ваше последнее предложение - это ОЧЕНЬ весомый аргумент :)
  • 0

#81 Warvick

Warvick
  • Пользователь
  • 411 сообщений
  • Откуда:Tallinn

Отправлено 05 Март 2008 - 14:10

tmanager,
читайте про SQL injection внимательней

In situations where parameterized SQL cannot be used and you are forced to use dynamic SQL instead, you need to safeguard against input characters

В мой практике я встречал всего 2(!!!) запроса, которые нельзя было бы сделать используя парамеры, хранимки или возможности языка TSQL. Да и они составлялись динамически на стороне сервера и не зависели от того, что ввел пользователь напрямую.
Я хочу сказать, что .NET предоставлят достаточно средств для того. чтобы не обрабатывать sql вручную, и все "очищающие" ф-ции просот не нужны.
  • 0
Да, я такой!

#82 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 05 Март 2008 - 14:14

Всё равно вы меня не втянете в дисскусию! :D Я просто сказал чем отличается ASP .NET от PHP ... мульти-тридингом ... а это уже ваша полемика вести и раскрашивать всё в серые цвета. :)
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...

#83 defcon

defcon
  • Пользователь
  • 83 сообщений

Отправлено 05 Март 2008 - 14:22

tmanager, а сравни Java с PHP, тогда и я втянусь :D
  • 0

#84 zedirtybastard

zedirtybastard
  • Пользователь
  • 499 сообщений

Отправлено 05 Март 2008 - 14:33

tmanager, а сравни Java с PHP, тогда и я втянусь :D


Java vs. .NET
Holywar start!
Round 1:
Java suxx! :)
  • 0

#85 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 05 Март 2008 - 14:35

dotNET suxx


1:1
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...

#86 defcon

defcon
  • Пользователь
  • 83 сообщений

Отправлено 05 Март 2008 - 15:03

Dot NET не умеет работать с CORBA нативно!

Dotnet suxx!

2:1

Java программистам больше платят (или - меньше нужно платить - каждый выбирает свое)!

Dotnet suxx!

3:1

DOn'TdoNET doesn't have javadocs!
It suxx!

4:1
  • 0

#87 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 05 Март 2008 - 15:05

j2ee программисту как нехх делать написать корпоративное решение за неделю ... для аналогичного проекта потребуется 3-и dotNET программиста ... и лишних 300 литроф пива ... и два дополнительных бубна ....

dotNET suxxx!!!
4:1

5:1 т.е.
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...

#88 zedirtybastard

zedirtybastard
  • Пользователь
  • 499 сообщений

Отправлено 05 Март 2008 - 15:08

Dot NET не умеет работать с CORBA нативно!

Dotnet suxx!

2:1

http://www.devx.com/...p/Article/19916
2:2

Java программистам больше платят (или - меньше нужно платить - каждый выбирает свое)!

Dotnet suxx!

3:1

не факт!
3:3

DOn'TdoNET doesn't have javadocs!
It suxx!

4:1

MSDN!
И я бы не сказал, что он хуже!
4:4 !

j2ee программисту как нехх делать написать корпоративное решение за неделю ... для аналогичного проекта потребуется 3-и dotNET программиста ... и лишних 300 литроф пива ... и два дополнительных бубна ....

dotNET suxxx!!!
4:1

5:1 т.е.

Ну тут вообще вопрос качества программистов!
И чем же эт позвольте спросить легче то? У нас компонентов на форму накидал и сидишь довольный как слон :)
нифига, я несогласен 4:5 в пользу дотнета!

Сообщение изменено: zedirtybastard (05 Март 2008 - 15:06 )

  • 0

#89 defcon

defcon
  • Пользователь
  • 83 сообщений

Отправлено 05 Март 2008 - 15:11

на Java очень много open source проектов! Даже IBM использует яву!

5:5

Ну тут вообще вопрос качества программистов!

Качество это очень субъективно! А у Incubo объективно 3 программиста делали то, что он бы написал за неделю! :D

6:5, кстати, ведет Java!

Сообщение изменено: defcon (05 Март 2008 - 15:09 )

  • 0

#90 Warvick

Warvick
  • Пользователь
  • 411 сообщений
  • Откуда:Tallinn

Отправлено 05 Март 2008 - 15:13

Incubo, в чем сложности у них были?
defcon, гык. на .НЕТЕ тоже порядошно.
  • 0
Да, я такой!