Обоснование выбора windows forms

Обновлено: 04.07.2024

Я только что завершил два приложения WinForm в рамках интенсивного курса. Просто интересуюсь технологией в целом. должен ли я перейти на что-то новое, или WinForms все еще жизнеспособен для будущего?

Я бы сказал, что Windows Forms отлично подходит для приложений, управляемых формой. WPF / Silverlight отлично подходит для анимационных и графических приложений.

Если вам нужно сделать некоторую полезную работу или сделать инструмент, я не вижу, почему формы Win не могут служить этой цели. WPF может быть излишним, если вы действительно не хотите, чтобы он выглядел красиво. Кроме того, с WPF вам нужно изучить XAML, который не так прост и интуитивно понятен, как работа с Win Forms designer.

Если вы веб-разработчик или дизайнер, работающий в WPF, может показаться более похожим на проектирование веб-страницы, поскольку вы работаете в XAML и имеете мелкозернистый контроль над интерфейсом.

WPF / Silverlight также имеют отличные возможности привязки данных, плюс Silverlight может быть запущен из браузера, поэтому может быть даже выгодно пропустить WPF для первой версии и сделать версию Silverlight. SL в WPF намного проще переносить, чем WPF в SL (поскольку SL является подмножеством WPF).

для моего проекта, Я работаю on, это будет сделано только в SL4 из-за возможности запустить его из браузера, как если бы это было настольное приложение, устраняя необходимость в портировании его в WPF. Установка приложения Silverlight на компьютер пользователя проста, понятна и дает дополнительное преимущество использования всего существующего кода и автоматического обновления.

знакомство с WinForms поможет вам. Устаревшие приложения будут использовать их, и если вы работаете в магазине microsoft, вы столкнетесь с устаревшими приложениями. Вы также должны узнать что-то новое, потому что это просто часть программиста. То, что вы знаете сейчас, - это только основа того, что вы узнаете. Никогда не прекращайте учиться, или вы закончите, как степлер парень в офисном пространстве.

Я бы сказал, что WinForms хорошо знать, но я бы вложил больше времени в WPF. WPF имеет сходство с Silverlight, и это даст вам больше оснований для работы.

Это, как говорится, никогда не помешает узнать больше :)

все зависит от того, где вы работаете и чем вы сейчас занимаетесь.

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

Если, однако, вы получаете работу, где они поддерживают существующее приложение, то ответ будет "да" - даже если они преобразуют его, поскольку вы будете поддерживать старое приложение довольно долго.

обе технологии имеют свои strenghs и слабость.

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

в любом случае, так как WPF, XAML и все другие связанные технологии-это чистые продукты Microsoft, язык, такой как Delphi и другие, требует времени, прежде чем использовать их, поэтому Winform обязательно останется, по крайней мере, на несколько лет.

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

Ну, если вы удивительны с цветами и пользовательским опытом :) WPF для вас.

WPF дает вам большую силу, и с большой силой приходит большая ответственность.

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

обоснование простое-почему на земле тратят вдвое больше усилий на WPF, когда нам нужно тратить время на таргетинг конкурирующих платформ. Пространство GUI полностью фрагментируется. WPF никогда не будет кросс-платформенным и часами в WPF minutia уменьшает вероятность поддержки Cocoa, Linux. Кроме того, похоже, что Microsoft сбросила WPF в пользу удивительного Javascript и сложного HTML 5.

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

IMO есть место для вилки WinForms 3, с открытым исходным кодом и с глазом для правильной кросс-платформенной поддержки.

Это требует очень небольшого количества времени, чтобы узнать, так что я думаю, что это действительно стоит. Шаблон, который использует WinForms, также используется многими другими фреймворками, поэтому вы ничего не потеряете, изучив его.

а также, WPF, возможно, проще, если у вас есть какая-то основа.

Я бы сказал, Если вы только начинаете, WPF, вероятно, на чем сосредоточить свою энергию. Тем не менее, в настоящее время я работаю над проектом Winforms и начал 2 новых в прошлом году, и он работает отлично.

многие компании находят опыт, чтобы перенести свое решение на веб-основе. Компании используют технологии виртуализации, такие как Citrix и App-V, для доставки программного обеспечения через Интернет без необходимости разработки новых решений.

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

Windows Формы и интеллектуальные клиентские приложения

Windows Forms позволяет разрабатывать интеллектуальные клиенты. Интеллектуальный клиент — это приложение с полнофункциональным графическим интерфейсом, простое в развертывании и обновлении, способное работать при наличии или отсутствии подключения к Интернету и использующее более безопасный доступ к ресурсам на локальном компьютере по сравнению с традиционными приложениями Windows.

Создание многофункциональных интерактивных пользовательских интерфейсов

Windows Forms — это технология интеллектуальных клиентов для NET Framework. Она представляет собой набор управляемых библиотек, упрощающих выполнение стандартных задач, таких как чтение из файловой системы и запись в нее. С помощью такой среды разработки, как Visual Studio, можно создавать интеллектуальные клиентские приложения Windows Forms, которые отображают информацию, запрашивают ввод от пользователей и обмениваются данными с удаленными компьютерами по сети.

В Windows Forms форма — это визуальная поверхность, на которой выводится информация для пользователя. Обычно приложение Windows Forms строится путем помещения элементов управления на форму и написания кода для реагирования на действия пользователя, такие как щелчки мыши или нажатия клавиш. Элемент управления — это отдельный элемент пользовательского интерфейса, предназначенный для отображения или ввода данных.

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

Windows Forms включает широкий набор элементов управления, которые можно добавлять на формы: текстовые поля, кнопки, раскрывающиеся списки, переключатели и даже веб-страницы. Список всех элементов управления, которые можно использовать в форме, представлены в разделе Элементы управления для использования в формах Windows Forms. Если существующий элемент управления не удовлетворяет потребностям, в Windows Forms можно создать пользовательские элементы управления с помощью класса UserControl.

В состав Windows Forms входят многофункциональные элементы пользовательского интерфейса, позволяющие воссоздавать возможности таких сложных приложений, как Microsoft Office. Используя элементы управления ToolStrip и MenuStrip, можно создавать панели инструментов и меню, содержащие текст и рисунки, подменю и другие элементы управления, такие как текстовые поля и поля со списками.

с помощью перетаскивания конструктор Windows Forms в Visual Studio можно легко создавать приложения Windows Forms. Достаточно выделить элемент управления курсором и поместить его в нужное место на форме. Для преодоления трудностей, связанных с выравниванием элементов управления, конструктор предоставляет такие средства, как линии сетки и линии привязки. а также при использовании Visual Studio или компиляции в командной строке можно использовать FlowLayoutPanel TableLayoutPanel SplitContainer элементы управления и для создания расширенных макетов форм за меньшее время.

Наконец, если нужно создать свои собственные элементы пользовательского интерфейса, пространство имен System.Drawing содержит широкий набор классов, необходимых для отрисовки линий, кругов и других фигур непосредственно на форме.

Элементы управления Windows Forms не предназначены для маршалинга между доменами приложений. По этой причине технологии Майкрософт не поддерживают передачу элементов управления Windows Forms через границы AppDomain, хотя на первый взгляд базовый тип Control класса MarshalByRefObject подразумевает такую возможность. Приложения Windows Forms с несколькими доменами приложений поддерживаются только при условии, что элементы управления Windows Forms не передаются через границы доменов приложения.

Создание форм и элементов управления

Пошаговые инструкции по использованию этих возможностей можно найти в приведенных ниже разделах справки.

Описание Раздел справки
Использование элементов управления в формах Практическое руководство. Добавление элементов управления в Windows Forms
Использование элемента управления ToolStrip Практическое руководство. Создание базового элемента управления ToolStrip со стандартными элементами с помощью конструктора
Создание графических элементов с помощью System.Drawing Приступая к программированию графики
Создание пользовательских элементов управления Практическое руководство. Наследование класса UserControl

Отображение и обработка данных

Во многих приложениях нужно отображать данные из базы данных, XML-файла, веб-службы XML или другого источника данных. Windows Forms предоставляет гибкий элемент управления с именем DataGridView для отображения таких табличных данных в традиционном формате строк и столбцов так, что каждый фрагмент данных занимает свою собственную ячейку. С помощью DataGridView можно, помимо прочего, настроить внешний вид отдельных ячеек, зафиксировать строки и столбцы на своем месте, а также обеспечить отображение сложных элементов управления внутри ячеек.

При использовании интеллектуальных клиентов Windows Forms можно легко подключаться к источникам данных по сети. Компонент BindingSource представляет подключение к источнику данных и содержит методы для привязки данных к элементам управления, перехода к предыдущей или следующей записи, редактирования записей и сохранения изменений в исходном источнике. Элемент управления BindingNavigator предоставляет простой интерфейс на основе компонента BindingSource для перехода между записями.

Вы можете легко создавать элементы управления с привязкой к данным с помощью окна "Источники данных". В нем приводятся имеющиеся в проекте источники данных, такие как базы данных, веб-службы и объекты. Создавать элементы управления с привязкой к данным можно путем перетаскивания объектов из этого окна в формы проекта. Также можно связывать существующие элементы управления с данными, перетаскивая объекты из окна "Источники данных" в существующие элементы управления.

Другой тип привязки к данным в формах Windows Forms — это параметры. Большинство интеллектуальных клиентских приложений должны сохранять некоторые сведения о своем состоянии во время выполнения, такие как последние известные размеры форм, а также сохранять пользовательские предпочтения, например место сохранения файлов по умолчанию. Параметры приложения отвечает этим требованиям, предоставляя простой способ хранения обоих типов сведений на клиентском компьютере. После того как вы определите эти параметры с помощью Visual Studio или редактора кода, они сохраняются в XML-файле и автоматически считываются обратно в память во время выполнения.

Отображение и обработка данных

Пошаговые инструкции по использованию этих возможностей можно найти в приведенных ниже разделах справки.

Развертывание приложений на клиентских компьютерах

Приложения ClickOnce можно настроить так, чтобы они работали только при подключении к сети или как в сетевом, так и в автономном режиме. при указании того, что приложение должно поддерживать автономную работу, ClickOnce добавляет ссылку на приложение в меню " пуск " пользователя. Пользователь может открыть приложение без использования URL-адреса.

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

развертывание ClickOnce приложений

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

Другие элементы управления и функции

Реализация других элементов управления и функций

Пошаговые инструкции по использованию этих возможностей можно найти в приведенных ниже разделах справки.


Winforms

  • В приложении Windows формы Windows предоставляют оболочку, состоящую из набора классов C ++, для разработки приложений Windows, и каждый элемент управления в приложении формы Windows является конкретным экземпляром класса. Он предоставляет различные элементы управления, такие как текстовые поля, кнопки, метки и веб-страницы, а также параметры для создания настраиваемого элемента управления. Для этого в Visual Studio имеется инструмент конструктора форм Windows, который обрабатывает элементы управления в форме и упорядочивает их в соответствии с желаемым макетом для добавления кода для обработки событий.
  • В формах Windows настройка приложения - еще одна функция для создания, хранения и обслуживания информации. Класс формы Windows можно расширить с помощью наследования для разработки инфраструктуры приложения, которая обеспечивает абстракцию и возможность повторного использования кода. Формы должны быть компактными с элементами управления на ограниченном размере. Формы могут быть разбиты на куски, упакованные в сборки, которые могут автоматически обновляться. Разработка приложения обеспечивает масштабируемость и гибкость с легкостью для отладки и обслуживания. Формы Windows не могут быть переданы через границы домена приложения.
  • Основными компонентами архитектуры WPF являются структура представления, ядро ​​представления и mallcore. В WPF элементы пользовательского интерфейса разработаны в XAML, а поведение может быть реализовано на процедурном языке. С XAML в WPF программисты могут работать параллельно с дизайнерами. WPF - это мощная среда для создания приложений Windows, обладающая такими замечательными функциями, как привязка данных, медиа-сервисы, шаблоны, анимация, direct3D и альтернативный ввод.
  • Разработка приложений WPF может быть выполнена с помощью инструментов Microsoft, таких как Visual Studio и Expression Blend. VS в основном используется разработчиком для создания приложения WPF, а Blend в основном используется разработчиками для приложений WPF.

Сравнение лицом к лицу между Winforms и WPF (Инфографика)


Ниже приведены 6 лучших сравнений Winforms и WPF:

Ключевые различия между Winforms и WPF

Обе Winforms против WPF являются популярным выбором на рынке; Давайте обсудим некоторые основные различия между Winforms и WPF:

  1. Формы Windows не являются векторным интерфейсом. Принимая во внимание, что WPF - это уровень представления пользовательского интерфейса на основе векторной графики. Благодаря векторной основе он позволяет уровню представления плавно масштабировать компоненты пользовательского интерфейса без каких-либо проблем с искажением размера.
  2. Формы Windows легче использовать при разработке приложений, тогда как WPF не так сложен в использовании, так как для его использования требуются хорошие знания.
  3. В окнах форм мы можем настроить элементы управления в соответствии с требованиями. В WPF у нас есть сторонние элементы управления, чтобы обогатить возможности приложений.
  4. Окна формы имеют меньшую кривую обучения. Принимая во внимание, что WPF имеет большую кривую обучения, что требует понимания всего потока элементов управления и дизайна.
  5. Окна форм меньше времени или сложнее. WPF сложнее и требует больше времени для разработки приложений.
  6. Формы Windows не используются для разработки новых приложений. WPF используется в основном для разработки новых приложений.
  7. Формы Windows являются большой поддержкой с точки зрения разработчиков, интернет-сообщества, библиотек для помощи любого рода при разработке приложения для начинающих. WPF также имеет достаточно поддержки и библиотек для разработки приложений и быстрого получения поддержки для начинающих.
  8. В формах Windows элементы управления сложно настроить, тогда как в WPF элементы управления можно легко настроить, так как они полностью написаны с нуля.
  9. Формы Windows плохо обеспечивают согласованность. WPF обеспечивает большую согласованность приложений.
  10. В формах Windows пользовательский интерфейс был разработан с помощью языка бизнес-логики. В WPF он использует XAML в качестве языка разметки для разработки пользовательского интерфейса приложения
  11. Формы Windows в основном основаны на пикселях, тогда как WPF не основан на пикселях, что позволяет масштабировать часть пользовательского интерфейса для приложения.
  12. Формы Windows поддерживают привязку данных ограниченным образом, тогда как WPF полностью поддерживает привязку данных.
  13. Формы Windows не используются с разными темами или оболочками. WPF в основном поддерживает скины или темы, где для пользовательского интерфейса могут использоваться различные скины или темы.
  14. Формы Windows требуют меньше усилий для разработки пользовательского интерфейса. WPF требует больше усилий, так как большую часть работы нужно выполнять самостоятельно.

Winforms против WPF Сравнительная таблица

Ниже приведено лучшее сравнение между Winforms и WPF:

Winforms

WPF

Вывод - Winforms против WPF

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

Рекомендуемая статья

Это было руководство для самого высокого различия между Winforms против WPF. Здесь мы дополнительно рассмотрим дифференцирование ключей Winforms и WPF по инфографике и сравнительной таблице. Вы также можете посмотреть следующие статьи, чтобы узнать больше -


СРАВНИТЕЛЬНЫЙ АНАЛИЗ ГРАФИЧЕСКИХ СИСТЕМ WPF И WINFORMS

1 Волжский политехнический институт (филиал) ФГБОУ ВПО "Волгоградский государственный технический университет" Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Изменения графических систем отображения Windows

Разработка графического интерфейса для Windows-приложений основывается на двух компонентах операционной системы:

User32 – содержит основные элементы окна;

GDI/GDI+ -- предоставляет функционал для рисования фигур, текста.

Для решения этой проблемы была разработана технология WPF. Её главное отличие от WinForms в том, что для отображения графических компонентов используется не GDI/GDI+, а DirectX – технология, разрабатываемая Microsoft для создания игр в тесном сотрудничестве с изготовителями видеокарт, и по этой причине имеет поддержку аппаратного ускорения.

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

Преимущества WPF

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

Рассмотрим наиболее существенные изменения:

Аппаратное ускорение. Как уже было сказано, DirectX разрабатывался в сотрудничестве с изготовителями видеокарт. Однако, просто мощной видеокарты недостаточно, необходима программная поддержка. Именно по этой причине с 2004 года изготовители видеокарт при написании драйверов следуют новым инструкциям от Microsoft.

Аппаратная поддержка предоставляется всем приложениям. В момент запуска анализируются возможности видеокарты и на основание полученных результатов присваивается уровень визуализации от 0 до 2.

Уровень 0 – отсутствие аппаратной поддержки.

Уровень 1 – частичная аппаратная поддержка.

Уровень 2 – полная аппаратная поддержка.

Стили. В основу идеи отрисовки пользовательского интерфейса легла технология HTML. Переход к разработке на XAML дал возможность выводить свойства элементов окон в отдельные стили, по аналоги с CSS. И теперь изменить внешний вид окон стало ее проще, достаточно просто заменить файл со стилями.

Модель рисования. Если в WinForms рисовали пиксели, то в WPF работают с примитивами – это уже готовые базовые фигуры и прочие графические элементы. Кроме того, имеется встроенная поддержка трехмерно графики.

Анимация. В WinForm для того, чтобы форма отрисовала себя, необходимо использовать таймеры. При разработке технологии WPF в Microsoft пошли другим путем и дали ей поддержку анимации.

Видео и аудио. WPF работает с любым форматом видео и аудио, поддерживаемого проигрывателем Windows Media. Есть возможно интегрировать видеосодержимое в любые части пользовательского интерфейса. Впечатляюще выглядит совместное использование трехмерной графики и видео.

Команды. Также, как и в WinForms, в WPF присутствует событийная модель, базовые элементы были переписаны и наделены новыми возможностями, что также отразилось на событиях, и, тем не менее, принцип остался прежним. Иногда разные компоненты окна вызывают одно и тоже действие, но которое вызывается в разных обработчиках событий. В WPF появился способ вызвать реакцию элемента интерфейса через так называемые команды. Команды подчиняются определенным правилам, например, название метода оканчивается на Command, которое опускается при вызове метода.

Приложения на основе страниц. Можно строить веб-подобные приложения на основе страниц, что дает возможность пользоваться навигацией.

Безопасность. Ранее при разработке приложения, в него могли записать опасный код. Повышение уровня открытости и безопасности стали одними из причин появления языка XAML.

Независимость от разрешения. WPF берет на себя компоновку элементов интерфейса подстраивая его под разные разрешения.

Привязка данных. Привязать данные можно было и в WinForms, но в WPF этот механизм доведен до совершенства. Благодаря привязке существенно снижается количество строк кода и упрощает его анализ.

Заключение

Исходя из стратегии развития Microsoft, можно предположить, что технология WPF будет развиваться и дальше. Например, эта технология используется для написания приложений в стиле Metro.

Если сравнивать графические системы WinForms и WPF, то можно прийти к выводу, что вторая система имеет огромное превосходство. Единственным существенным достоинством WinForms можно назвать кроссплатформенность, такие приложения можно запустить на Mono. О планах по поддержке WPF в системах семейства Unix нет никаких сведений.

Но это не значит, что стоит забыть о технологии WinForms и все свои проекты переводить на WPF. Microsoft не сообщала о прекращение поддержки WinForms. Кроме того, у нее имеется большая история развития, а, следовательно, под неё написано множество готовых решений. Проекты, в которых пользовательский интерфейс стоит не на первом месте, могут быть написаны и на WinForms.

Читайте также: