Что будет лучшим выбором для Windows, Forms или WPF на C #? - PullRequest
5 голосов
/ 22 сентября 2010

При изучении языка C #. Со всеми приложениями, разрабатываемыми в эти дни. Буду ли я лучше сосредоточиться на разработке форм Windows или WPF. Я хочу разработать программное обеспечение, которое использует ADO.net для доступа к базе данных SQL Server. Также автономные приложения для интеграции с Microsoft Office для создания диаграмм и графиков и т.д ...

Ответы [ 7 ]

7 голосов
/ 22 сентября 2010

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

WinForms проверена и верна, не развивается из-за сильных корней.Это не означает, что WinForms устарела.Это просто означает, что базовые классы для WinForms хорошо разработаны и гибки.Имейте в виду гибкость в расширении WinForms с помощью класса Control и углубленного обмена сообщениями пользовательского интерфейса (с помощью дескрипторов, предоставляемых классами WinForms).

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

ПреимуществоWPF заключается в том, что вы изучаете три различные цели для своих приложений - Windows UI, SilverLight и теперь Windows Phone.WinForms ориентирован на Windows UI и Windows Mobile (CE).Чистый пользовательский интерфейс, основанный на общих виджетах, имеет соответствующую основу в WinForms.Если ваша цель - настроить динамический пользовательский интерфейс, возьмите WPF за вращение.

1 голос
/ 22 сентября 2010

То, что вы пытаетесь сделать, может быть сделано как с WinForms, так и с WPF. WinForms - более знакомая парадигма, но (большой, но) XAML в целом, в частности WPF, - это не будущее, а текущий способ работы Windows UI в .NET , WinForms - это прошлое, которое в основном находится в обслуживании режим (хорошо для существующих приложений, смею сказать, устарел для новых приложений). Да, в XAML есть несколько крутая кривая обучения, но способности, которые вы получаете, стоят усилий, кроме того, есть все больше и больше ресурсов (книг, библиотек) по XAML / WPF / Silverlight, в то время как для WinForms есть много, но они не работают Через пару лет я не видел ни одного нового издания книги WinForms). Одна вещь, на которую стоит обратить внимание, - это возможности XAML для привязки данных, которые делают ненужным много кода, перемещающего данные из / в объекты / наборы данных в / из визуальных элементов управления.

1 голос
/ 22 сентября 2010

Несмотря на то, что WPF - это будущее, и оно дает вам большую гибкость, я не рекомендую полностью переходить на WPF.Кроме того, вы сможете максимально использовать возможности WPF, если у вас есть дизайнер, который сможет работать над частью дизайна.Я не говорю, что вам нужен дизайнер, но исходя из моего опыта работы с WPF, если вы хотите разработать приложение, которое выглядит просто потрясающе, вам обязательно нужен кто-то, кто знает биты и байты WPF.Как сказал BrokenGlass, кривая обучения с WPF слишком крутая.Так что просто сделайте постепенный переход.Если у вас уже есть приложения Windows Form, попробуйте переписать некоторые из них в WPF.

1 голос
/ 22 сентября 2010

Кривая обучения с WPF определенно намного круче - в то же время вы можете легко создать простой интерфейс в Windows Forms, чтобы удовлетворить ваши потребности в доступе к базе данных ADO.net или SQL Server. После того, как вы добавите диаграммы / графики к миксу, вы захотите изучить WPF своими руками.

Также вы можете взглянуть на Lightswitch, который решает некоторые сложности с Silverlight / WPF.

1 голос
/ 22 сентября 2010

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

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

0 голосов
/ 06 июня 2011

WPF и XAML - это кривая обучения, но мой опыт позволяет создавать более мощные, сжатые и поддерживаемые приложения за меньшее время.Можно копировать и вставлять XAML с одной страницы на другую.В Windows Forms я отказался от копирования и переноса элементов пользовательского интерфейса с одной страницы (формы) на другую, поскольку слишком много раз блокировалось все приложение.Двухстороннее связывание данных - это мечта.Пользовательский интерфейс WPF имеет более коммерческий вид.Переносимость на Silverlight.Для меня это 98% того, что я получил бы от C ++ за долю усилий.

0 голосов
/ 22 сентября 2010

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

Я не уверен, есть ли у вас какой-либо опыт работы с консольными приложениями, WinForms, WPF или ASP.net, но для изученияследует выбрать тот, который вам удобнее всего.Если вы начинаете заново, я бы посоветовал вам сначала начать с WinForms, так как вы будете писать много кода на C # в WinForms, а затем в WPF, а позже - WPF.

Мой ответ полностью сфокусированна том факте, что вашей главной целью является изучение C #, а не на том, какие рамки пользовательского интерфейса лучше и т. д.

...