Доброго времени суток!
Model-View-Presenter — довольно известный шаблон проектирования. С первого взгляда все выглядит просто: есть Модель (Model), которая содержит всю бизнес-логику экрана; Вид/Представление (View), который знает, как отобразить те или иные данные; Представитель (Presenter), который является связующий звеном — реагирует на действия пользователя во View, изменяя Model, и наоборот.
Сложность начинается, когда количество форм в проекте становится более одной.
В данной статье рассматривается:
— немножко теории;
— общие проблемы реализации MVP (а именно Passive View) под Windows Forms;
— особенности реализации переходов между формами и передача параметров, модальные окна;
— использование IoC-контейнера и шаблона Dependency Injection — DI (а именно Сonstructor Injection);
— некоторые особенности тестирования MVP приложения (с использованием NUnit и NSubstitute);
— все это будет происходить на примере мини-проекта и постарается быть наглядным.
В статье затрагивается:
— применение шаблона Адаптер (Adapter);
— простенькая реализация шаблона Контроллер приложения (Application Controller).
Для кого эта статья?
Главным образом для начинающих разработчиков на Windows Forms, которые слышали, но не пробовали, или пробовали, но не получилось. Хотя уверен, что некоторые приемы применимы и для WPF, и даже для веб-разработки.
Читать полностью »
Метка «WinForms»
Особенности реализации MVP для Windows Forms
2014-02-10 в 7:56, admin, рубрики: .net, mvp, pattern, windows forms, WinForms, ооп, паттерны проектирования, метки: mvp, pattern, windows forms, WinForms, паттерны проектированияDXperience 13.1 — Новая версия .NET компонентов от DevExpress
2013-06-25 в 12:10, admin, рубрики: .net, ASP.NET, CodeRush, devexpress, WinForms, WinRT, wpf, xaf, Блог компании DevExpress, разработка, метки: ASP.NET, CodeRush, devexpress, WinForms, winrt, wpf, xafНе так давно мы объявили о выходе новой мажорной версии нашего набора контролов и компонент для .NET разработчиков — DXperience 13.1. По традиции, новая версия несет в себе множество новых продуктов и улучшений для разработчиков на платформах WinForms, ASP.NET, WinRT, Silverlight и WPF.
Про общие концепции и дизайн
Дизайн Windows 8 пришёлся по душе многим пользователям и разработчикам. А потребность в приложениях для классического десктопа по-прежнему есть. Поэтому мы продолжаем развивать десктопные платформы, но при этом не остаемся в стороне от трендов. В результате появились новые темы, контролы, ориентированные на использование с сенсорными экранами, элементы навигации и визуализации данных. И всё это вы можете использовать на привычной вам платформе, будь то ASP.NET, WinForms, WPF или Silverlight.
What's New вышел довольно развесистый, так что если не хотите читать его полностью на английском — добро пожаловать под кат.
Читать полностью »
WPF, WinForms: 15000 FPS. Хардкорные трюки ч.1.5
2013-01-06 в 12:40, admin, рубрики: .net, bitmap, fast 2D, graphics, WinForms, wpf, высокая производительность, хардкор, метки: .net, bitmap, fast 2D, graphics, WinForms, wpf, хардкор Неожиданное продолжение этого поста, поэтому часть 2 хардкорных трюков, в которой речь пойдет немного о другом, пока подождет.
Итак, в двух словах, что изменилось: добавлен контрол и тестовое приложение для WindowsForms, вариант WPF немного изменился, рефакторинг-причесалинг, добавился threadsafe и контрол теперь может нормально ресайзиться в рантайме (включено в сэмплы, но не советую разворачивать на полный экран — это реально пугает). Спасибо камрадам, указавшим на ошибки и недостатки и теперь теперь проект гордо 0.5 beta. Можно сразу отправиться за обновлением на razorgdipainter.codeplex.com/, кому интересны подробности прошу под кат.
Читать полностью »
WPF, WinForms: рисуем Bitmap c >15000 FPS. Хардкорные трюки ч.1
2013-01-04 в 11:29, admin, рубрики: .net, bitmap, fast 2D, graphics, WinForms, wpf, высокая производительность, хардкор, метки: .net, bitmap, fast 2D, graphics, WinForms, wpf, хардкор Сразу уточнение: Bitmap 200x100 на компе с быстрой памятью и 3930K на 1366. Но, это System.Drawing.Bitmap.
Вводная: приложение типа осциллографа. Ссылка на готовый проект с фронтэндом в конце статьи.
Как же быстро рисовать его на экран? WriteableBitmap хорош, быстр, и он лучшее решение для WP, WinRT, WPF. Но занудного старпёра-кодера также волнует WinForms, .Net 2.0, Win2K (да-да, в некоторых гос.органах до сих пор теплый ламповый Win2K).
Далее, я обратил внимание на DirectX, тем более у нас для WPF появился полезный контрол D3DImage. Я перепробовал много движков, но ни один из них не давал удобного изящного способа рисовать GDI+ Bitmap из памяти. Некоторые работали и вовсе только с DX10-11. Ближе всех к цели оказался SlimDX. В любом случае, фронтэнд для контрола оказывался некрасивым. Все эти движки… мягко говоря избыточны, для моей простой задачи.
Читать полностью »