- ProgBook — книги и учебники по программированию
- С# 4.0 на примерах — Бен Ватсон
- Современная практика программирования на Microsoft Visual Basic и Visual C# — Франческо Балена, Джузеппе Димауро
- Visual C# на примерах — Михаил Абрамян
- Привязка данных в Windows Forms — Брайан Нойес
- Программирование с использованием Microsoft Windows Forms — Чарльз Петцольд
- Введение в Windows Forms
- Создание графического приложения
- Запуск приложения
- Книги по Windows Forms на C#. Какие?
ProgBook — книги и учебники по программированию
С# 4.0 на примерах — Бен Ватсон
Издание «С# 4.0 на примерах» предлагает рассмотреть на конкретных примерах принципы программирования на языке Microsoft С# 4.0, при этом даются основы языка и разбираются решения типичных задач с использованием .NET Framework. В книге продемонстрировано, как наиболее эффективно создавать классы, интерфейсы, типы, программный код, который допускает многократное применение. Освещаются приемы обработки данных, принцип которых основан на использовании сериализации, коллекций, баз данных и XML. Показано, каким образом создаются веб-приложения на основе технологий Silverlight и ASP .NET, а также как реализуется пользовательский интерфейс с использованием технологий WPF и WinForms. На практике подробно рассматриваются новые возможности языка С# 4.0. Значительное внимание уделяется организации взаимодействия с системным программным обеспечением и операционной системой Windows, эффективному использованию шаблонов, предназначенных для создания сложных программ. В книге предоставлено более 200 готовых решений, примеров уже проверенного кода и оптимальных технических приемов. Издание, в первую очередь, ориентировано на программистов.
Современная практика программирования на Microsoft Visual Basic и Visual C# — Франческо Балена, Джузеппе Димауро
«Современная практика программирования на Microsoft Visual Basic и Visual C#» представляет собой профессиональное руководство, написанное известными программистами, и объединяет в себе богатый опыт разработчиков и консультантов по применению Visual Basic и Visual C#. Книга содержит практические рекомендации и эффективные методики программирования для существенного повышения уровня разработки программ. Детально описываются правила, их назначения, все преимущества и недостатки их применения, различные исключения из правил и существующие им альтернативы, а также практические примеры их применения. Благодаря передовым методикам, рассмотренным в книге, разработчики научатся писать безопасный, надежный и универсальный код, использовать все преимущества Microsoft .NET Framework, создавать эффективные программные решения, повышать продуктивность командной разработки путем согласования стилей и методов кодирования, создавать рациональные библиотеки классов и практичные иерархии объектов и т.д.
Руководство предоставляет передовые методики работы с ресурсами, типами и структурами, сборками, полями, методами, свойствами, событиями, конструкторами, интерфейсами, числами и датами, исключениями, пользовательскими атрибутами, строками, наборами и массивами, памятью; с приложениями Windows Forms , Microsoft ASP .NET Web Forms, различными веб-сервисами, Microsoft ADO .NET; потоками и синхронизацией; компонентами, обеспечением безопасности, удаленным взаимодействием и др. Книга состоит из 33 глав и трех приложений и позволит специалисту значительно расширить свой программистский опыт и развить творческие способности в этой сфере.
Visual C# на примерах — Михаил Абрамян
Книга «Visual C# на примерах» содержит в себе описание тридцати двух проектов, которые демонстрируют разные нюансы проектирования Windows-приложений для .NET Framework в области Visual C# 2005/2008. Здесь описываются наиболее рациональные приемы создания программ, управляемых событиями, характерные особенности консольных и MDI-приложений, а также механизм обработки исключений. В ней детально описываются ключевые элементы Windows Forms и классы, которые входят в графическую библиотеку GDI+. В данной книге демонстрируются приемы работы с мышью и клавиатурой, дополнительные функции .NET-приложений, в т.ч. реализация режима drag & drop, а также работа с реестром Windows и многое другое. На прилагаемом диске Вы найдете исходные тексты проектов, которые написаны в книге. Издание предназначено для программистов.
Привязка данных в Windows Forms — Брайан Нойес
Практически всем серьезным приложениям Windows необходимо использовать данные, которые хранятся в базах данных, и обеспечивать взаимодействие пользователя с вышеуказанными данными. Именно тут начинают работать средства и механизмы привязки данных, которым полностью посвящено издание «Привязка данных в Windows Forms». В ней детально описаны все нюансы привязки данных на вышеуказанной платформе. В этой книге описываются средства, которые обеспечивают связь с БД, такие, как адаптеры таблиц и типизированные наборы данных, привязываемые к данным компоненты управления, методики и средства обработки ошибок, интерфейсы и события привязки данных. Здесь даются подробные инструкции и советы по работе со средствами Microsoft Visual Studio, предназначенными для привязки данных. Отметим, что большое внимание в описываемом издании уделяется нововведениям, таким, как элемент управления DataGridView и адаптеры таблиц. В данной книге обсуждается написание специальных пользовательских объектов и элементов управления, которые пригодны для привязки данных. Необходимо сказать, что в приложениях рассматриваются различные параллельные вопросы, которые связаны с привязкой данных, например, доступ информационным данным в ADO.NET и привязка в ASP.NET. Эта книга в первую очередь адресована программистам, которые занимаются написанием клиентских приложений для баз данных.
Программирование с использованием Microsoft Windows Forms — Чарльз Петцольд
В книге «Программирование с использованием Microsoft Windows Forms» детально повествуется о создании программ для ОС Windows с применением библиотеки классов Windows Forms, которая входит в .NET Framework 2.0, и языка C#. Прочитав эту книгу, Вы сможете научиться комбинировать уже существующие и создавать новые нестандартные элементы управления, и даже разрабатывать меню, панели инструментов и строки состояния, применяя новинки, которые появились в .NET Framework 2.0. Из этой книги Вы узнаете об инновационном механизме динамического размещения компонентов управления на форме, а также о привязке различных элементов управления к данным. Описываемая книга состоит из семи глав и адресована программистам, которые хотят освоить новые возможности, предлагаемые .NET Framework 2.0, разработчикам, обладающим достаточным опытом программирования для Windows и всем тем, кто хочет максимально эффективно и быстро освоить Windows Forms.
Введение в Windows Forms
Для создания графических интерфейсов с помощью платформы .NET применяются разные технологии — Window Forms, WPF, приложения для магазина Windows Store (для ОС Windows 8/8.1/10). Однако наиболее простой и удобной платформой до сих пор остается Window Forms или формы. Данное руководство ставит своей целью дать понимание принципов создания графических интерфейсов с помощью технологии WinForms и работы основных элементов управления.
Создание графического приложения
Для создания графического проекта нам потребуется среда разработки Visual Studio. Поскольку наиболее распространенная пока версия Visual Studio 2013, то для данного руководства я буду использовать бесплатную версию данной среды Visual Studio Community 2013 которую можно найти на странице https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx.
После установки среды и всех ее компонентов, запустим Visual Studio и создадим проект графического приложения. Для этого в меню выберем пункт File (Файл) и в подменю выберем New — > Project (Создать — > Проект). После этого перед нами откроется диалоговое окно создания нового проекта:
В левой колонке выберем Windows Desktop , а в центральной части среди типов проектов — тип Windows Forms Application и дадим ему какое-нибудь имя в поле внизу. Например, назовем его HelloApp. После этого нажимаем OK.
После этого Visual Studio откроет наш проект с созданными по умолчанию файлами:
Большую часть пространства Visual Studio занимает графический дизайнер, который содержит форму будущего приложения. Пока она пуста и имеет только заголовок Form1. Справа находится окно файлов решения/проекта — Solution Explorer (Обозреватель решений). Там и находятся все связанные с нашим приложением файлы, в том числе файлы формы Form1.cs.
Внизу справа находится окно свойств — Properties. Так как у меня в данный момент выбрана форма как элемент управления, то в этом поле отображаются свойства, связанные с формой.
Теперь найдем в этом окне свойство формы Text и изменим его значение на любое другое:
Таким образом мы поменяли заголовок формы. Теперь перенесем на поле какой-нибудь элемент управления, например, кнопку. Для этого найдем в левой части Visual Studio вкладку Toolbox (Панель инструментов) . Нажмем на эту вкладку, и у нас откроется панель с элементами, откуда мы можем с помощью мыши перенести на форму любой элемент:
Найдем среди элементов кнопку и, захватив ее указателем мыши, перенесем на форму:
Это визуальная часть. Теперь приступим к самому программированию. Добавим простейший код на языке C#, который бы выводил сообщение по нажатию кнопки. Для этого мы должны перейти в файл кода, который связан с этой формой. Если у нас не открыт файл кода, мы можем нажать на форму правой кнопкой мыши и в появившемся меню выбрать View Code (Посмотреть файл кода):
Однако воспользуемся другим способом, чтобы не писать много лишнего кода. Наведем указатель мыши на кнопку и щелкнем по ней двойным щелчком. Мы автоматически попадаем в файл кода Form1.cs, который выглядит так:
Добавим вывод сообщения по нажатию кнопки, изменив код следующим образом:
Запуск приложения
Чтобы запустить приложение в режиме отладки, нажмем на клавишу F5 или на зеленую стрелочку на панели Visual Studio. После этого запустится наша форма с одинокой кнопкой. И если мы нажмем на кнопку на форме, то нам будет отображено сообщение с приветствием.
После запуска приложения студия компилирует его в файл с расширением exe. Найти данный файл можно, зайдя в папку проекта и далее в каталог bin/Debug или bin/Release
Рассмотрев вкратце создание проекта графического приложения, мы можем перейти к обзору основных компонентов и начнем мы с форм.
Книги по Windows Forms на C#. Какие?
Сейчас самостоятельно изучаю C# (по Шилдту), но в этой книге рассматривается создание только консольных приложений
Подскажите пожалуйста, какую почитать литературу (на русском) по созданию приложений Windows Forms на C#?
По самому C# учебников в сети тьма, а по Windows Forms нашел только учебник Лабора (2003 г. издания). Ну либо самоучители, которые показывают не дальше чем Hello World, либо непонятный новичку msdn.
з.ы. По тостеру естественно искал, но вся литература, что на русском языке идет исключительно по C#, а не по созданию на нем Windows-приложений.
- Вопрос задан более трёх лет назад
- 11738 просмотров
> потому что есть WPF. Изучайте его. Он быстрее, лучше, мощнее
Не врите.
Быстрее — это смотря что писать.
На уровне простого дефолтного GUI без весьма активной перерисовки местами — явно быстрее Winforms, а WPF будет медленно грузиться и жрать ОЗУ.
Если куча свистоперделок, анимаций, или 3D — то WPF.
Мощнее (гибче в плане свистоперделок и прочих нестандартных возможностей) — да.
Но Winforms попроще, поудобнее будет. Попроще — особенно для новичка. Поудобнее — особенно на слабых компах, где WPFовский WYSIWYG тоже будет тормозить.
> WinForms не развивается дальше, в отличии от WPF
WPF развивается дальше? Это параллельно UWP что ли?
А сторонние решения для Winforms — Telerik, DevExpress, тоже не развиваются?
Роман: как вы все зае. достали твердить заученные фразочки про аппаратную отрисовку. Наслушались их от MS или еще кого — и твердите. Ну не знаете вы недр Winforms и WPF, тем более недр винды, так и не лезли бы. Только позориться перед путными разрабами, которые аж до уровня байт и бит углубиться могут при необходимости.
Алгоритмы отрисовки — лишь малая часть GUI-фреймворка. В WPF еще куча всего, о чем вы представления не имеете. А ведь оно там убого сделано, и вот, например, нагрузка на ОЗУ обычно получается выше, это без проблем проверяется тестами. Выделение памяти разве не занимает время?
Еще DirectX медленно грузится, это и в WPF перекочевало.
И др.
И компенсировать все эти тормоза скоростью отрисовки — возможно далеко не в любом приложении.
Млять, хотя бы элементарные тесты с профилированием провели, хоть бы открыли диспетчер задач и глянули, прежде чем пиндеть чухню не пойми откуда взятую.
> Да параллельно UWP.
Пруф?
И какие новые реально стоящие фичи появились в WPF в 2015-2016?
> потому что есть WPF. Изучайте его. Он быстрее, лучше, мощнее
Горе-преподаватель сморозил лажу.
Быстрее — это смотря что писать.
На уровне простого дефолтного GUI без весьма активной перерисовки местами — явно быстрее Winforms, а WPF будет медленно грузиться и жрать ОЗУ.
Если куча свистоперделок, анимаций, или 3D — то WPF.
Мощнее (гибче в плане свистоперделок и прочих нестандартных возможностей) — да.
Но Winforms попроще, поудобнее будет. Попроще — особенно для новичка. Поудобнее — особенно на слабых компах, где WPFовский WYSIWYG тоже будет тормозить.
> WinForms не развивается дальше, в отличии от WPF
WPF развивается дальше? Это параллельно UWP что ли?
А сторонние решения для Winforms — Telerik, DevExpress, тоже не развиваются?
Спасибо за развернутый ответ!
Но половину терминологии я совершенно не понял.
Давайте немного конкретизирую:
Я изучаю программирование, чтобы создавать Desktop-приложения, позднее Web-приложения и (возможно) сайты. До этого с программированием вообще не сталкивался. Выбрал для изучения C# и начал его учить по книге Шилдта. Но беда в том, что в его книге рассматриваются исключительно консольные приложения.
С одной стороны я понимаю, что в Шилдте дан фундамент C# — операторы там, литералы, переменные. Но с другой стороны мне этого явно недостаточно для создания Desktop-приложений.
Вопрос: Как создавать десктоп-приложения на C#? Что для этого использовать? Конечно хочется, чтобы технология для создания была наиболее актуальной и я мог в дальнейшем долго пользоваться этими знаниями.
Newbie1: > мне этого явно недостаточно для создания Desktop-приложений
Для создания Desktop-приложений нужен GUI-фреймворк.
Ваши Winforms и WPF — это 2 различных GUI-фреймворка, доступных на C#.
Что такое GUI — погуглите.
Что такое фреймворк — тоже погуглите.
Заодно начнете разбираться с терминологией.
> Как создавать десктоп-приложения на C#?
Ну, для начала надо в VS создать проект типа «Приложение Windows Forms» или «Приложение WPF».
> Что для этого использовать?
Из моего ответа вроде ясно, что и Winforms и WPF имеют право на жизнь, но для новичка проще Winforms, а если комп слабый, то еще и физически легче.
> хочется, чтобы технология для создания была наиболее актуальной и я мог в дальнейшем долго пользоваться этими знаниями
То есть хотите зациклиться на одной технологии?
Каждый инструмент — для своего круга задач. Чем меньше инструментов, тем уже круг задач.
Вас устроит быть ограниченным? Если да, то круг задач сделайте узким. Где будете работать, что именно писать и т.д.
WinForms может быть быстрее, если приложение простое. Если приложение хотя бы среднее, то WPF будет быстрее. Под «быстрее» я понимаю и быстродействие самого приложения, и скорость разработки, и время изменений в проекте. Вы же сами сказали — «смотря что писать». Сделать на WinForms решение квадратного уравнения будет быстрее (и то, не факт). Про «жрать ОЗУ» тоже не факт, это сильно зависит от того, как сделано и что сделано.
На чём быстрее писать код — на Visual Studio 2008 или Visual Studio 2015? «Восьмёрка» неизмеримо быстрее запускается, скорость работы быстрее (но уже не так сильно). Но насколько «пятнадцатая» даёт скорости именно работы? На мощном компе работает быстро, и даёт очень много для производительности труда программиста.
WPF имеет более высокую кривую обучения, много сложных новых концепций, которых нет в WinForms. Изучить сложнее, но проще потом всё это использовать.
Вы сами в своём ответе сказали, что в WPF во многом лучше. Но ваш опыт будет в том, что вам это удобнее. Пусть так, я не против. Мой опыт в том, что на WPF я сделаю быстрее, используя MVVM, DI с IoC, интерфейсами, биндингами, конвертерами и пр. Особенно, когда проект развивается, изменяется.
Telerik, DevExpress — это не Microsoft, это внешние решения. К тому же, многие из вещей работают и в WinForms, и в WPF, и в Silverlight.
Ну и последнее. Сколько проектов (новых) начинается с WinForms, и сколько с WPF? То-то и оно.
В общем, для начинающего программиста полезнее изучать сразу WPF, чем WinForms.