Выбор между формами Windows Forms и веб-формами
Обновлен: Ноябрь 2007
При разработке приложений, включающих пользовательский интерфейс, можно использовать либо формы Windows Forms, либо веб-формы. Оба варианта обладают полной поддержкой режима разработки в среде разработки и предоставляют многофункциональный интерфейс пользователя и дополнительные функциональные возможности приложений для решения коммерческих задач. Из-за сходства функций может быть непросто выбрать, какая технология лучше подходит для того или иного приложения.
Можно выбрать нужную технологию на основе назначения приложения. Например, при создании веб-узла электронной торговли с общим доступом к нему в Интернете целесообразно разрабатывать приложение с помощью страниц с веб-формами. При построении интенсивно работающего быстродействующего приложения, для которого необходимо использовать все функциональные возможности клиентского компьютера (например, офисного приложения) лучше пользоваться формами Windows Forms. В других случаях выбор может оказаться не столь очевидным.
В следующих разделах содержатся сведения о функциональных возможностях и производительности обоих типов технологий.
Когда использовать формы Windows Forms
Формы Windows Forms используются для разработки приложений, в которых клиентское приложение должно взять на себя значительную часть обработки, которой загружено приложение. Это относится к классическим настольным приложениям Win32, которые традиционно разрабатывались в предыдущих версиях Visual Basic и Visual C++. Примерами таких приложений являются приложения для рисования или графические приложения, системы ввода данных, системы для розничной торговли и игры.
Общее свойство этих совместно используемых ресурсов приложений состоит в том, что для них требуется мощный настольный компьютер и экран с высоким разрешением. Некоторые приложения Windows Forms могут быть полностью автономными и выполнять всю обработку приложения на пользовательском компьютере. К такому виду приложений относятся игры. Другие приложения могут являться частью более обширной системы и используют настольный компьютер в основном для обработки пользовательского ввода. Например, для систем для розничной торговли часто требуется сложный пользовательский интерфейс, создаваемый на настольном компьютере, но связанный с другими компонентами, выполняющими окончательную обработку.
Поскольку приложение Windows, использующее Windows Forms, разрабатывается на основе Windows, оно имеет доступ к системным ресурсам клиентского компьютера, в том числе к локальным файлам, реестру Windows, принтеру и т. д. Этот уровень доступа может быть ограничен для устранения любых возможных нарушений безопасности или проблем, возникающих вследствие нежелательного доступа. Кроме того, в Windows Forms можно воспользоваться графическими классами .NET FrameworkGDI+ при создании графического многофункционального интерфейса, который часто требуется для игровых приложений или приложений переноса данных.
Когда использовать веб-формы
Веб-формы ASP.NET используется для создания приложений, в которых интерфейс предназначен в основном для веб-обозревателя. Естественно, к таким приложениям относятся приложения, предназначенные для общего доступа через Интернет, такие как приложения для электронной торговли. Но веб-формы используются не только при создании веб-узлов. Многие другие приложения, такие как справочник о сотрудниках на основе интрасети или приложение для учета выплат, также прибегают к малофункциональному интерфейсу. Важное преимущество приложений на основе веб-форм заключается в том, что для их распространения не требуется никаких затрат. У всех пользователей уже установлено средство доступа к таким приложениям: веб-обозреватель.
Приложения с веб-формами не зависят от платформы, т. е. являются "расширенными" приложениями. Пользователи могут взаимодействовать с приложением вне зависимости от типа обозревателя и даже от типа компьютера. В то же время приложения веб-форм могут быть оптимизированы для получения доступа к функциональным возможностям, встроенным в самые последние версии обозревателей, таких как Microsoft Internet Explorer 6.0, для повышения производительности и удобства работы.
Примечание. |
---|
Во многих случаях оптимизация встроена в используемые компоненты веб-форм. Эти компоненты автоматически определяют, какой применяется веб-обозреватель, и соответственно отображают страницу. |
Приложения с веб-формами обладают некоторыми функциональными возможностями, которые используются даже вне веб-среды. Они основаны на HTML и подходят для приложений любого вида, работающих с большими объемами текста, особенно для тех, где важно форматирование текста. Поскольку приложения на базе веб-обозревателей обычно ограничены в доступе к пользовательским системным ресурсам, они особенно удобны в ситуациях, когда необходимо ограничить доступ пользователей к некоторым разделам приложения.
Сравнение Windows Forms и веб-форм
В следующей таблице представлено сравнение различных особенностей приложений и их поддержке в Windows Forms и веб-формах.
Функция и условие |
Формы Windows Forms |
Веб-формы |
---|---|---|
Развертывание |
Формы Windows Forms позволяют осуществлять "изолированное" развертывание с ClickOnce, при котором приложения можно загружать, устанавливать и запускать непосредственно на компьютерах пользователей без изменения реестра. Дополнительные сведения о ClickOnce см. в разделе Обзор развертывания ClickOnce. |
У веб-форм нет развертывания клиентской части. Клиенту требуется только веб-обозреватель. На сервере должна быть запущена среда Microsoft .NET Framework. Обновления приложения выполняются путем обновления кода на сервере. |
Графика |
Windows Forms включают GDI+, что позволяет использовать сложную графику в играх и других многофункциональных графических средах. |
При использовании веб-форм интерактивная или динамическая графика требует цикла обработки сервером для обновления. Для создания графики на сервере можно использовать GDI+. |
Скорость отклика |
Приложения Windows Forms могут запускаться полностью на компьютере клиента. Они могут предоставлять наиболее быструю скорость ответа для приложений, требующих высокой степени интерактивности. |
При наличии у пользователей Internet Explorer 5 или более поздней версии приложение на основе веб-форм может воспользоваться возможностями динамического HTML (DHTML) обозревателя при создании многофункционального быстрого пользовательского интерфейса. При наличии у пользователей других обозревателей для большей части обработки (в том числе связанные с интерфейсом задачи, такие как проверка) требуется цикл обработки для веб-сервера, который может оказывать влияние на скорость отклика. |
Управление размещением формы и текста |
Сетка Windows Forms позволяет точно задать положение двумерного элемента управления (в координатах по горизонтали и вертикали) относительно других элементов управления. Для отображения текста в Windows Forms требуется вставить его в элементы управления (например, в элемент управления Label, TextBox или RichTextBox). Форматирование ограничено. |
Веб-формы основаны на построчной компоновке, характерной для языка HTML, и поддерживают все возможности разметки веб-страницы. Они особенно удобны при поддержке форматирования текста. Можно управлять компоновкой элементов управления (с некоторыми ограничениями, такими как запрет на перекрывающие друг друга элементы управления). При наличии у пользователей DHTML-совместимых обозревателей можно установить более точную разметку с помощью двухмерной (в координатах по горизонтали и по вертикали) разметки. |
Платформа |
Для Windows Forms необходимо запустить .NET Framework на клиентском компьютере. |
Для веб-форм требуется только обозреватель. DHTML-совместимые обозреватели могут воспользоваться дополнительными возможностями, но веб-формы можно разработать для работы в любых обозревателях. На сервере должна быть запущена среда .NET Framework. |
Доступ к локальным ресурсам (файловой системе, реестру Windows и т.д.) |
Приложения, если им это разрешить, могут получить полный доступ к ресурсам на локальном компьютере. При необходимости можно ограничить доступ приложения к определенным ресурсам. |
Средства безопасности обозревателя не предоставляют приложению доступ к ресурсам локального компьютера. |
Модель программирования |
Windows Forms основаны на клиентском режиме работы Win32, в котором экземпляры компонентов создаются, используются и удаляются разработчиком. |
Веб-формы основаны на существенно асинхронной отключенной модели, компоненты которой слабо связаны с интерфейсом приложения. Обычно компоненты приложения вызываются по протоколу HTTP. Эта модель может не подходить для приложений, требующих повышенной производительности пользовательского интерфейса или использующих транзакции с большим объемом. Аналогичным образом приложения с веб-формами могут не подходить для приложений баз данных, требующих высокого уровня управления параллельной работой (например, пессимистической блокировки). |
Безопасность |
В Windows Forms используются разрешения при реализации управления доступом для кода для защиты компьютерных ресурсов и конфиденциальных сведений. Это позволяет правильно использовать функциональные возможности одновременно с сохранением безопасности. Например, разрешение для печати, на одном уровне позволяющее печать только с принтера, установленного по умолчанию, на другом уровне позволяет печать с любого принтера. С помощью ClickOnce разработчики могут легко настроить разрешения, которые приложения должны получать в клиентской системе. Дополнительные сведения см. в разделе Развертывание и безопасность ClickOnce. |
Проверка подлинности для получения доступа к ресурсам веб-приложения обычно управляется на основе URL-адреса путем проверки подлинности учетных данных (например, сочетания имени и пароля) запрашивающего. Веб-формы позволяют разработчикам управлять удостоверением пользователя, с учетной записью которого выполняется серверный код приложения. Приложения выполняют код с идентификацией запрашивающего объекта, известного как воплощение. Приложения также могут динамически изменять содержимое на основе идентификации или роли инициатора запроса. Например, руководитель может получить доступ к узлу или более высокий уровень содержимого, чем кто-либо с разрешениями более низкого уровня. |