Что выбрать: asp.net или php

Отладка COM+ и ASP

Использование Team Developer 3.1 делает возможным выполнять активную отладку COM-сервера, разработанного при помощи Team Developer, независимо от того, откуда он вызван. Таким образом, COM-сервер, написанный в Team Developer, вызванный из ASP или VB, может быть отлажен столь же просто, как и сервер, вызванный из другого клиента Team Developer.

Все, что нужно сделать для вызова режима отладки, — это открыть исходный код уже сформированного и зарегистрированного COM объекта, а затем вызвать команду меню Debug/Go (или использовать клавишу F7). Необходимо задать точку останова в подходящем месте в любой из функций Интерфейса, после чего вернуться в клиентское приложение, которое будет использовать этот COM объект, и запустить его; если это ASP сценарий, вызвать его, используя http в браузере.

Если клиентское приложение вызовет метод сервера, в котором задана точка останова, то, вернувшись в Team Developer, разработчик может пошагово пройти SAL-код, имея доступ ко всем существующим средствам отладки. Основной момент, о котором следует помнить, это то, что для проведения отладки необходим предварительный запуск сервера (Debug / Go или F7); про этот шаг часто забывают.

  • Team Developer 3.1
  • Microsoft Internet Information Server

Безопасность

Весьма распространен миф о том, что все продукты от 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 выполнение продолжается и никаких предупреждений программист не видит – такой уязвимостью могут воспользоваться злоумышленники.

ASP.NET 3.5

Разработчикам, впервые столкнувшимся с версией ASP.NET 3.5, наверняка интересно узнать, что случилось с версией ASP.NET 3.0? Как ни странно, но таковая не
существует. В Microsoft под названием .NET Framework 3.0 выпустили набор следующих
новых технологий: WPF (Windows Presentation Foundation), представляющая собой новую привлекательную технологию по построению пользовательских интерфейсов для создания многофункциональных клиентов; WCF (Windows Communication Foundation), которая является технологией для создания ориентированных на сообщения служб; и WF (Windows Workflow Foundation) — технология, позволяющая моделировать сложные бизнес-процессы в виде последовательности действий (дополнительно с применением визуального конструктора).

Однако .NET Framework 3.0 не включает новой версии CLR или ASP.NET. Следующая версия ASP.NET появилась в .NET Framework 3.5.

По сравнению с ASP NET 2.0, версия ASP. NET 3.5 представляет собой более плавное развитие. Новые функциональные возможности в этой версии относятся в основном к
двум таким технологиями, как LINQ и Ajax.

Технология LINQ

Технология LINQ (Language Integrated Query — язык интегрированных запросов) представляет собой набор расширений для языков C# и Visual Basic. Она позволяет
писать на C# или Visual Basic код, способный манипулировать находящимися в памяти данными во многом в той же манере, что и запросы к базе данных.

Исчерпывающую информацию по LINQ ищите в следующем разделе — LINQ.

Технология ASP.NET AJAX

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

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

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

Например, элемент управления Menu немедленно реагирует на наведение пользователем курсора мыши на различные подзаголовки. При его использовании страница не
производит обратную отправку серверу до тех пор, пока пользователь не щелкнет на каком-то элементе.

Разработчики используют серверные элементы управления вроде Menu внутри традиционных страниц ASP.NET и получают преимущества, которые предоставляют встроенные в элементы клиентские сценарии. Но даже в случае применения таких более совершенных элементов управления обратная отправка данных серверу все равно неизбежна.

Например, если необходимо обновить информацию в какой-то части страницы, единственно возможным вариантом в случае обычной страницы ASP.NET является обратная отправка этой страницы серверу и получение совершенно нового HTML-документа. Такое решение работает, но далеко от идеала.

Поэтому разработчики начали пытаться решить эти проблемы за счет использования дополнительного клиентского кода и его применения более совершенными
способами. Одним из наиболее обсуждаемых на сегодняшний день примеров является
технология программирования клиентской стороны под названием Ajax (Asynchronous
JavaScript and XML — асинхронный JavaScript и XML).

Ajax позволяет странице связываться с сервером и обновлять содержимое без полной обратной отправки. Обычно
в странице Ajax используется код клиентского сценария для выполнения асинхронного запроса «за кулисами». Сервер получает этот запрос, выполняет некоторый код и
затем возвращает необходимые странице данные (зачастую в виде блока XML-разметки).

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

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

Веб-сайты и веб-приложения

ASP.NET предлагает три платформы для создания веб-приложений: веб-формы, ASP.NET MVC и веб-страницы ASP.NET. Все три платформы являются стабильными и зрелыми, и вы можете создавать отличные веб-приложения с любым из них. Независимо от выбранной платформы вы получите все преимущества и функции ASP.NET везде.

Каждая платформа ориентирована на другой стиль разработки. Выбор зависит от сочетания ресурсов программирования (знаний, навыков и разработки), типа создаваемого приложения и удобного подхода к разработке.

Ниже приведен обзор каждой платформы и некоторых идей по выбору между ними. Если вы предпочитаете ознакомиться с видеообращением, см. статью «Создание веб-сайтов с помощью ASP.NET » и «Что такое веб-инструменты»?

Инфраструктура Если у вас есть опыт работы Стиль разработки Экспертная область
веб-формы Win Forms, WPF, .NET Быстрая разработка с помощью расширенной библиотеки элементов управления, которые инкапсулируют разметку HTML Средний уровень, расширенный RAD
MVC Ruby on Rails, .NET Полный контроль над разметкой HTML, кодом и разметкой, разделенной и простой для написания тестов. Лучший выбор для мобильных и одностраничных приложений (SPA). Средний, расширенный
Веб-страницы Классический ASP, PHP Разметка HTML и код вместе в одном файле Новые, Mid-Level

веб-формы

С помощью ASP.NET Web Forms можно создавать динамические веб-сайты с помощью знакомой модели на основе перетаскивания, управляемой событиями. Область конструирования и сотни элементов управления и компонентов позволяют быстро создавать комплексные сайты с пользовательским интерфейсом и доступом к данным.

MVC

ASP.NET MVC предлагает эффективный, основанный на шаблонах способ создания динамических веб-сайтов для четкого разделения проблем и предоставления пользователям полного контроля над разметкой для гибких разработок. ASP.NET MVC содержит множество функций для быстрой, согласованной с TDD разработкой для создания сложных приложений, использующих новейшие веб-стандарты.

Веб-страницы ASP.NET

веб-страницы ASP.NET и синтаксис Razor обеспечивают быстрый, доступный и упрощенный способ объединения кода сервера с HTML для создания динамического веб-содержимого. Подключитесь к базам данных, добавьте видео, создайте ссылки на сайты социальных сетей и включите множество дополнительных функций, которые помогают создавать красивые сайты, соответствующие последним веб-стандартам.

Заметки о веб-формы, MVC и веб-страницах

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

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

Работа и зарплата

Вакансий много как на должности разработчика PHP, так и ASP.Net. В среднем, зарплата у ASP.Net-специалиста немного выше, но это отнюдь не значит, что нельзя найти очень хорошо оплачиваемую работу PHP-программисту – все зависит от уровня профессионализма.

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

Среди фрилансеров (людей, работающих удаленно) гораздо большее распространение получил PHP – в основном, в силу легкости изучения. Однако, в этой ситуации программист на ASP.Net имеет некоторое преимущество: создав сайт заказчику на этой платформе, он получает высокие шансы повторного обращения (например, с целью добавления функциональности на сайт) именно к нему – найти другого фрилансера, работающего с этой платформой, довольно тяжело.

Другие фреймворки

Теперь, когда я составил более четкое представление о различных показателях бенчмарков ASP.NET Core, пришло время посмотреть и на другие фреймворки.

Java

Самый быстрый Java-бенчмарк, который также использует Postgres в качестве исходной базы данных, — это Jooby.

Их реализация бенчмарка поразительно проста. Вся реализация Fortune представляет собой следующий блок кода:

Он использует маршрутизатор более высокого уровня (), а также обычные методы доступа к базе данных и настоящий шаблонизатор:

Это практически Java-эквивалент бенчмарка ASP.NET Core MVC (он же Full).

Интересно то, что этот совершенно неоптимизированный полноценный Java MVC фреймворк занимает 12 место в бенчмарке Fortunes с невероятными 404 тыс. запросов/сек. По сути, это более чем в два раза быстрее, чем эквивалент ASP.NET Core, и он все еще выигрывает у «Micro» реализации ASP.NET Core (которая пропускает все дорогостоящие операции ввода-вывода, используя поддельный движок шаблонов) и даже может конкурировать с печально известным приложением , которое, честно говоря, из-за его различий даже не стоит сравнивать.

Никакого неуважения к ASP.NET Core (потому что 184 тыс. запросов/сек — это все равно потрясающий результат), но он и близко не стоит с этим Java-фреймворком, когда речь идет о производительности. Отдадим должное.

Go

А что насчет Go?

Себастьен Рос (разработчик, работающий над производительностью ASP.NET Core в Microsoft) особо отметил Go и заявил, что ASP.NET Core все еще быстрее Go в сравнении «один на один». Меня лично очень заинтересовало это утверждение, поскольку я перевел несколько проектов .NET Core на Go и увидел значительный рост производительности в результате этого.

На момент написания этого сообщения самым быстрым бенчмарком Fortune является atreugo для Go.

Как и в Java, фактическая реализация Go предельно проста.

Маршрутизация осуществляется с помощью идиом, предоставляемых фреймворком:

Здесь не нужно искать коротких путей или хитростей. Все приложение для бенчмарка Fortunes состоит из .

Шаблонизация также выполнена надлежащим образом:

Итак, что же получается в целом? Ну, как и в случае с быстрым фреймворком Java, бенчмарк Go также сравнивается с лучшей «полной» реализацией ASP.NET Core. Иное было бы просто несправедливо. Нельзя сравнивать бенчмарк, который выплевывает созданный в памяти HTML (который даже не является частью ASP.NET Core), с бенчмарком, который использует реальный движок шаблонов, который проходит через дорогостоящие циклы чтения файлов из ввода-вывода, их разбора во время выполнения и выполнения логики для каждого запроса (циклы, переменные и т.д. в шаблоне).

Тем не менее, дорогая реализация Go занимает 22 место в TechEmpower Fortunes Benchmark с не менее впечатляющими 381 тыс. запросов/сек. Не так быстро, как Java, но все же более чем в 2 раза быстрее, чем аналогичный тест в ASP.NET Core.

C++

Надеюсь, это не должно быть для вас большим сюрпризом, в настоящее время C++ с фреймворком drogon лидирует в бенчмарках Fortunes с умопомрачительной скоростью 616 тыс. запросов/сек, что с большим отрывом опережает все остальные фреймворки (кроме Rust, где разрыв не так велик)! Что делает это достижение еще более поразительным, так это то, что ему удалось сделать это с помощью полноценной реализации MVC. Здесь нет абсолютно никаких недомолвок или хитростей.

Он даже использует шаблонизатор CSP, который выглядит следующим образом:

Я люблю .NET, но нет такой умственной гимнастики, которую можно было бы убедительно применить, чтобы .NET оказался выше C++. Любой бенчмарк, который считает иначе, знает, что он не честен с самим собой.

Выбор времени создания приложения MVC

Следует внимательно продумать вопрос о создании веб-приложения на основе платформы ASP.NET MVC или на основе модели веб-форм ASP.NET. Платформа MVC не заменяет собой модель веб-форм. Обе модели можно использовать для веб-приложений. (при наличии существующих приложений на основе веб-форм они будут продолжать работу в нормальном режиме).

Перед использованием платформы MVC или модели веб-форм для определенного веб-сайта следует взвесить все преимущества каждого из подходов.

Преимущества веб-приложения на основе MVC

Платформа ASP.NET MVC имеет следующие преимущества.

  • Она облегчает управление сложными структурами путем разделения приложения на модель, представление и контроллер.
  • Она не использует состояние просмотра и серверные формы. Это делает платформу MVC идеальной для разработчиков, которым необходим полный контроль над поведением приложения.
  • Она использует схему основного контроллера, при которой запросы веб-приложения обрабатываются через один контроллер. Это позволяет создавать приложения, поддерживающие расширенную инфраструктуру маршрутизации. Дополнительные сведения см. на веб-сайте MSDN в контроллере переднего плана.
  • Она обеспечивает расширенную поддержку разработки на основе тестирования.
  • Он хорошо подходит для веб-приложений, которые поддерживаются большими командами разработчиков и веб-дизайнеров, которым требуется высокий контроль над поведением приложения.

Преимущества веб-приложения на основе веб-форм

Платформа на основе веб-форм имеет следующие преимущества.

  • Она поддерживает модель событий, которая сохраняет состояние при передаче через HTTP, что облегчает разработку бизнес веб-приложений. Приложение на основе веб-форм предоставляет множество событий, поддерживаемых различными серверными элементами управления.
  • Она использует шаблон контроллера страницы, добавляющий функции к отдельным страницам. Дополнительные сведения см. в разделе страницы» на веб-сайте MSDN.
  • В нем используются формы состояния представления или серверные формы, которые упрощают управление сведениями о состоянии.
  • Она подходит для небольших коллективов веб-разработчиков, которым необходимо использовать большое количество компонентов для быстрого развертывания приложений.
  • Как правило, это менее сложно для разработки приложений, так как компоненты (класс Page , элементы управления и т. д.) тесно интегрированы и обычно требуют меньше кода, чем модель MVC.

Базы данных

PHP

Традиционно вместе с PHP используется база данных MySQL. В более редких случаях – PostgreSQL, имеющая более широкие возможности.

Сравнение

Обе технологии позволяют работать с любыми базами данных. В PHP есть возможность работы с Microsoft SQL Server, и из ASP.Net-приложений можно обращаться к MySQL или к любой другой базе данных. Но поскольку чаще всего встречаются связки, описанные выше – вкратце коснемся сравнения MySQL и Microsoft SQL Server. Здесь с большим перевесом выигрывает сервер от Microsoft. Возможностей у их сервера значительно больше. Например, поддержка процедур и триггеров в MySQL появилась лишь с выходом 5-й версии в 2005 году. У Microsoft SQL Server эта возможность была уже в 90-х годах.

Единственным преимуществом MySQL может казаться бесплатность, но этот вопрос поднимался ранее. Express-версия Microsoft SQL Server также бесплатна и имеет следующие ограничения: использует не более одного процессора (физического, т.е. если процессор один, но двухядерный – будут использоваться оба ядра), не более 1 Гб оперативной памяти и размер самой базы данных ограничен цифрой в 4 Гб. Но разумно предположить, что если в вашем проекте этих цифр мало – то этот проект довольно масштабный, и средства позволяют приобрести более серьезную версию.

И еще одна приятная особенность MySQL (будучи использованным вместе с PHP) – это наличие веб-интерфейса для доступа к базе данных – phpMyAdmin. Подобного продукта для Microsoft SQL Server нет (есть только старая версия от Microsoft, последний выпуск которой состоялся в 2004 году), а устанавливать приложение-менеджер возможность имеется не всегда.

Технические документы по установке и настройке

Эти технические документы содержат пошаговые инструкции по установке и настройке ASP.NET на сервере.

В этом руководстве показано, как создать и настроить пользовательскую учетную запись службы с минимальными привилегиями для запуска веб-приложения ASP.NET. По умолчанию приложение ASP.NET в Microsoft Windows Server 2003 и IIS 6.0 выполняется с помощью встроенной сетевой службы …

В этом руководстве показано, как изолировать несколько приложений друг от друга и от общих системных ресурсов в среде размещения веб-сайтов. Среда размещения может быть веб-сервером, предоставляемым поставщиком услуг Интернета (ISP), на котором размещено несколько …

В этом руководстве показано, как настроить ASP.NET веб-приложения для запуска в среднем доверии. При размещении нескольких приложений на одном сервере можно использовать безопасность доступа к коду и средний уровень доверия для изоляции приложений. Задав …

В этом руководстве показано, как использовать учетную запись компьютера NT AUTHORITY\Network Service для доступа к локальным и сетевым ресурсам. По умолчанию в Windows Server 2003 ASP.NET приложения запускаются с помощью удостоверения этой учетной записи. Это наименее привилегированный…

В этом руководстве показано, как настроить и использовать переход протокола и ограниченное делегирование, чтобы разрешить приложению ASP.NET доступ к сетевым ресурсам при олицетворении исходного вызывающего объекта. Операционная система Microsoft Windows 2000 …

В этом техническом документе описывается установка как .NET 1.0, так и .NET 1.1 на компьютере, что позволяет веб-приложению ASP.NET работать на любой из версий платформы.

В этом техническом документе описывается, что необходимо сделать, если запрос к приложению ASP.NET возвращает ошибку «Отказано в доступе к каталогу DirectoryName . Не удалось запустить мониторинг изменений каталога».

Хотя Windows Server 2003 включает как IIS 6.0, так и ASP.NET 1.1, эти компоненты отключены по умолчанию. В этом техническом документе описано, как включить IIS 6.0 и ASP.NET 1.1, и рекомендует несколько параметров конфигурации, чтобы получить оптимальный вариант…

В этом документе описывается исправление, которое устраняет проблему с обновлением безопасности MS03-32 для Internet Explorer, которое влияет на ASP.NET приложений 1.0, работающих в Windows XP Professional.

ASP.NET веб-приложения обычно выполняются с помощью встроенной учетной записи ASPNET. Иногда может потребоваться использовать пользовательскую учетную запись. В этой статье показано, как создать учетную запись с минимальными привилегиями для запуска веб-приложений ASP.NET. …

Конфигурация

В этом разделе описывается <элемент machineKey> в файле Web.config и показано, как настроить <элемент machineKey> для управления проверкой правописания и шифрованием ViewState, запросов проверки подлинности форм и файлов cookie ролей. ViewState подписан…

В этом руководстве показано, как использовать защищенный поставщик конфигурации для приложений Защиты данных Windows (DPAPI) и средство Aspnet_regiis.exe для шифрования разделов файлов конфигурации. Вы можете использовать средство Aspnet_regiis.exe для …

В этом руководстве показано, как использовать поставщик конфигурации RSA Protected Configuration и средство Aspnet_regiis.exe для шифрования разделов файлов конфигурации. Вы можете использовать средство Aspnet_regiis.exe для шифрования конфиденциальных данных, таких как строки подключения, хранящиеся в …

В этом руководстве показано, как и когда следует использовать олицетворение в приложениях ASP.NET 2.0. По умолчанию олицетворение отключено, и доступ к ресурсам можно получить с помощью удостоверения процесса веб-приложения ASP.NET. Однако вы можете использовать…

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: