Преимущества ASP.Net скомпилированной модели? - PullRequest
1 голос
/ 12 октября 2009

Я работаю с разработчиком PHP, который, скажем так, недоволен .NET. Его жалобы включают необходимость перестраивать решение веб-приложения для каждого теста (хотя я указывал, что это обычно необходимо только в случае изменения файла .cs, а не интерфейса .aspx), а также включение каждого файла в решение, которое является требуется развернуть и т. д.

Я указал на ряд преимуществ скомпилированной модели, включая RTTI (отражение), целостность исходного кода (исходный код не развернут на сервере, не позволяющий ИТ-специалистам изменять его на лету), производительность различия (хотя он настаивает на том, что это недопустимо, поскольку PHP теперь «компилируется») и т. д. Каковы другие преимущества .NET над PHP? Это может спровоцировать религиозные дебаты - пожалуйста, Боже, нет - но я такой фанат .NET, что некоторые из этих вопросов, которые я задавал много лет назад, кажутся настолько глупыми, что я не могу сформулировать правильный ответ.

Кажется, существуют значительные различия в способе разработки страницы. Например, объявление класса, представляющего часть страницы, скажем, определенного столбца в макете с тремя столбцами, вместо разбиения кода более логичным способом и использование ASPX для обработки макета. Мне кажется странным, что макет страницы в любом случае будет привязан к структуре классов, выходящей за рамки кода для страницы aspx.

Комментарии

ОБНОВЛЕНИЕ Кстати, это старый вопрос, но я счел необходимым обновить с несколькими пунктами:

  1. Оптимизация Это большой. Компиляция дает возможность выполнить некоторые оптимизации, которые нецелесообразны для выполнения во время JIT.

  2. Статья, на которую ссылается o.k.w, настолько явно предвзята и создана кем-то, кто не работал значительное время в .NET , что ее вряд ли стоит читать (хотя я так и сделал). Это также делает пункты, которые являются неправильными .

  3. Чертовски почти невозможно заставить людей Mac понять, что Windows имеет свое место. С другой стороны, большинство парней из Windows, которых я знаю, думают, что Mac отлично подходят для многих вещей. У большинства даже есть собственный. Мы не используем их для разработки веб-сайтов или встроенных систем по какой-то причине. (И да, наш бизнес включает в себя и то и другое.)

  4. Первая любовь испортилась ... отличная аналогия. Это, вероятно, появится у меня на собрании в ближайшее время.

  5. Эта дискуссия бесполезна. Я также могу попытаться убедить Великобританию ехать по правильному пути. И австралия. И гонконг. И ... вы видите, куда это идет.

Приветствие.

Ответы [ 3 ]

3 голосов
/ 12 октября 2009

Я работаю с обоими языками ежедневно, и оба отлично подходят для разработки. Трудно войти в дебаты «скомпилировано против интерпретации», не становясь все пламенным и ревностным, поэтому я не думаю, что скажу об этом что-либо. Тем не менее, вот некоторые вещи, которые я предпочитаю в .Net:

  • Visual Studio против Eclipse.

  • Без @include и реальных пространств имен. Я хочу знать о моих типах все время и не полагаться на странные хакерские процедуры автозагрузки.

  • Возможность обнаружения API. У PHP ужасное, непоследовательное именование API.

  • Проверка времени компиляции и анализ кода

  • Улучшенные отладчики и профилировщики

Это на самом деле не имеет ничего общего с моделями, которые они используют, это просто атрибуты самих инструментов. Я бы не советовал пытаться передумать или даже спорить с ним об этом - он либо сам увидит преимущества, либо не увидит, но толкание их на него, вероятно, просто заставит это занять больше времени;)

2 голосов
/ 12 октября 2009

Из того, что я понимаю (сам я не очень много работал в PHP), PHP является мощным и простым в использовании и действительно подходит для небольших, более простых проектов, особенно когда бизнес-логика состоит в основном из перемещения контента между базой данных и сетью. стр. ASP.NET лучше подходит для больших приложений с большим количеством бизнес-логики, где проверки во время компиляции позволяют быстрее обнаруживать ошибки. Поймание ошибки во время компиляции в зависимости от времени выполнения может на порядок увеличить разницу во времени исправления.

Там, где я работаю, мы используем PHP для создания макетов, чтобы показать клиентам и заставить их подписать наши идеи, а затем мы пишем реальный продукт на скомпилированном языке, таком как .NET или Java, так как этот код мы необходимо поддерживать в течение следующего десятилетия или более.

1 голос
/ 12 октября 2009

Основная проблема заключается в том, что практически любые преимущества, которые вы можете придумать для .Net, могут быть достигнуты с помощью PHP, если для этого существует инфраструктура. Я считаю, что есть PHP MVC фреймворки.

Тем не менее, я скажу это о модели компиляции для ASP.Net. Очень полезно знать, что во всем вашем коде за кодом нет синтаксических ошибок. У PHP и ASP Classic этого не было. На сайте с более чем 400 страницами было трудно узнать, какие из них были и не работали со степенью определенности.

...