Как передаются данные при mvp
Перейти к содержимому

Как передаются данные при mvp

  • автор:

Как правильно передавать данные из Model во View через Presenter при использовании EF, CodeFirst, Linq?

Я пытаюсь спроектировать приложение реализующее паттерн MVP на WinForms. При этом я использую EF+CodeFirst+Linq На View есть DataGridView , который нужно заполнить данными. View вызывает метод Select() класса Presenter, который в свою очередь вызывает метод Select() класса Model. Как правильно предать полученные из БД данные обратно в Presenter, чтобы тот вставил их во View? Через возврат значения не получается т.к. используется using . Отказываться от using ? Реализация Model.Select()

 internal void Select() < using (GoodsContext context = new GoodsContext()) < var items = from Items in context.Goods select Items; >> 

UPD: Уходить от Linq не вариант.
Отслеживать
Mikhail Danshin
задан 24 дек 2015 в 18:01
Mikhail Danshin Mikhail Danshin
1,129 1 1 золотой знак 9 9 серебряных знаков 27 27 бронзовых знаков
в winforms есть binding’и. контролы можно привязать к источнику данных — см. тут
24 дек 2015 в 18:10
Я так понимаю binding и MVP — это разные подходы.
24 дек 2015 в 18:14
вам надо именно mvp или надо правильно (т.е. на основе того, что есть в winforms)?
24 дек 2015 в 18:19

@Stack хороший вопрос! 🙂 Вообще я изучаю подход MVP для WinForms. А вы хотите сказать, что MVP — это не правильно при использовании WinForms?

24 дек 2015 в 18:24

«Вообще я изучаю подход MVP» — хорошо, но на практике надо эффективно (с минимальным SLOC) использовать то, что есть. а есть в WinForms возможность создавать привязки между контролами источниками данных. в WPF тоже есть привязки и они удобнее/лучше, чем в WinForms.

Что такое MVP и как это использовать

MVP — это паттерн, который используют многие разработчики, даже если не догадываются об этом. Может, вы один из них?

Евгений Кучерявый

Евгений Кучерявый

Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.

MVP — это паттерн программирования графических интерфейсов. В нём приложение делится на три компонента:

  • Model (Модель) работает с данными, проводит вычисления и руководит всеми бизнес-процессами.
  • View (Вид или представление) показывает пользователю интерфейс и данные из модели.
  • Presenter (Представитель) служит прослойкой между моделью и видом.

Как и другие подобные паттерны (MVC, MVVM), MVP позволяет ускорить разработку и разделить ответственность разных специалистов; приложение удобнее тестировать и поддерживать.

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

Как работает MVP

На схеме выше видно, что приложение, созданное по принципам MVP, работает с помощью связи модели, вида и представителя. Происходит это так:

  1. Вид строит интерфейс и добавляет в него данные из модели.
  2. Пользователь видит информацию и взаимодействует с интерфейсом.
  3. Вид перехватывает события и передаёт (делегирует) их представителю.
  4. Представитель обрабатывает данные (не всегда) и передаёт их модели.
  5. Модель выполняет какие-то операции и обновляется (меняет те или иные свойства).
  6. Представитель получает обновлённую модель и передаёт её виду.
  7. Вид строит интерфейс с новыми данными.

Основное отличие MVP и MVC в том, что в MVC обновлённая модель сама говорит виду, что нужно показать другие данные. Если же этого не происходит и приложению нужен посредник в виде представителя, то паттерн стоит называть MVP.

Всё это можно сравнить с работой издательства:

  1. Автор готовит текст (модель).
  2. Текст получает издатель (представитель).
  3. Если с текстом всё в порядке, издатель передаёт его в отдел вёрстки (вид).
  4. Верстальщики готовят книгу, которую начинают продавать читателям (пользователи).
  5. Если пользователи как-то реагируют на книгу, например, пишут письма в издательство, то работа может начаться заново. Допустим, кто-то может заметить в книге неточность, тогда издатель передаст информацию автору, автор её обновит и так далее.

Конечно, это не точный алгоритм работы издательства, но для иллюстрации принципов MVP его достаточно.

Пример MVP-приложения

Так как MVP служит для упрощения разработки графических интерфейсов, рассмотреть его можно на примере WPF-приложения. В качестве вида будут выступать файлы MainWindow.xaml (разметка интерфейса) и MainWindow.xaml.cs (обработчик событий).

Начать можно с создания интерфейса авторизации:

Теперь можно приступить к файлу MainWindow.xaml.cs:

MVP: что это такое и как работает?

В статье рассказали, что такое MVP, о его преимуществах и недостатках. Привели примеры, как MVP помогает бизнесу.

Метод MPV: что это?

MVP (от английского Minimum Viable Product) — минимально жизнеспособный продукт, ранний релиз сервиса с ограниченным набором функций, за которые пользователь готов заплатить.

Метод MVP помогает бизнесу:

  • получить обратную связь от пользователя и улучшить продукт перед массовым запуском;
  • не тратить время и деньги на разработку сервиса, не интересного целевой аудитории;
  • быстро получить прибыль ещё на этапе разработки;
  • убедить инвесторов, что у разработки есть потенциал и нужно увеличить финансирование на его развитие.

Можно 10 лет потратить на разработки и исследования и изобрести велосипед с квадратными колёсами, в то время как все вокруг уже гоняют на флайбордах, как у Марти Макфлая. А можно за несколько месяцев сделать MVP и уже начать зарабатывать.

Создание MVP соответствует концепции бережливого стартапа и требуется, чтобы усовершенствовать продукт через постоянное тестирование.

MVP часто путают с прототипом, потому что они оба создаются для подтверждения бизнес-гипотез. Но в отличие от прототипа, MVP продукта обладает достаточной функциональностью, чтобы продать его пользователю. Деньги тут могут быть небольшие, но на этом этапе важно убедиться, что покупатель голосует за сервис рублём.

Как работает метод MVP: примеры из практики

Перед тем как стать сайтом #1 по бронированию частных квартир по всему миру, основатели Airbnb Брайан Чески и Джо Геббиа создали обычный лендинг. На нём они разместили информацию с фотографиями своего чердака и предложением о его сдаче. Через год они уже привлекли первых инвесторов и продолжили развитие проекта.

Основательница одного из крупнейших маркетплейсов Татьяна Бакальчук начала с того, что купила одежду в Германии, разместила фото из каталогов Otto и Quelle на своём сайте и начала ее продавать. В 2021 году годовой оборот Wildberries вырос до 844 млрд рублей.

Братья Бухманы сейчас близки к тому, чтобы войти в топ-10 российский миллиардеров по версии Forbes. А в 2001 году они создали компьютерную игры в жанре xonic и заработали на ней $60. На тот момент этот результат показался им успешным и они продолжили создавать новые игры. Наверное, вы тоже хоть раз играли в Township или Gardenscapes.

Варианты MVP

Создать минимально жизнеспособный продукт можно несколькими способами. Вот самые распространённые из них.

Ручной сервис (MVP Флинстоунов)

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

Этот вариант ещё называют MVP Флинстоунов. Вспомните, как семейка Флинстоунов дружно делала вид, что едет на машине, в то время как все просто быстро перебирали ногами.

Консьерж

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

Разрозненный сервис

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

Сервис с единственным параметром

В этом случае создатели не пытаются вместить в продукт всё лучшее сразу, а делают ставку на 1-2 ключевые функции. Например, сервис по доставке цветов запускает приложение с простым интерфейсом где можно заказать букет и оформить доставку, заполнив нужные поля. Позже разработчики планируют внедрить опцию создания собственного букета и эксклюзивного поздравления. Но на этапе MPV эти функции не важны и поэтому не реализованы.

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

Внедрение минимально жизнеспособного продукта:

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

Недостатки MVP

Создаётся впечатление, что от создания и запуска раннего релиза одни сплошные плюсы. Но есть и несколько недостатков.

  1. MVP больше подходит для создания цифровых продуктов. Для других видов бизнеса это решение применяется реже. Но кто сказал, что перед тем как запускать масштабное производство обуви, нельзя изготовить несколько пар и продать их на маркетплейсах?
  1. MVP не подходит для инновационных решений. Если вы создали ноу-хау, не факт, что аудитория уже готова к ним. Поэтому при публикации релиза тестирование может показать отсутствие интереса у клиентов. Хотя на самом деле вы просто предлагает людям автомобиль, когда все вокруг мечтают о новой лошади.

Как создать MVP

Чтобы запустить успешный релиз, нужно пройти несколько этапов: от идеи до тестирования продукта. Что именно надо сделать?

Определите, какую боль клиента будет закрывает ваш сервис.

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

Возьмите трёх самых главных конкурентов и узнайте как можно больше информации о них. Какой стратегии они придерживаются, каков их уровень доходов и объем продаж, как выстроена их система маркетинга и связей с потребителем. Собрать эти данные можно из открытых источников. Для этого подойдут сайт компании, выступления топ-менеджеров, статьи в СМИ, социальные сети, а также программы веб-аналитики типа Similar Web.

Проведите мозговой штурм. Сделать это можно как в одиночку, так и командой. Разделите лист бумаги на 4 сектора и опишите все плюсы, минусы, угрозы и возможности нового продукта. Такой анализ поможет увидеть картину в целом и принять правильные стратегические решения.

О том, как использовать swot анализ, читайте в нашей статье.

  1. Нарисовать путь пользователя в продукте

User Flow чаще всего выглядит как блок-схема с элементами интерфейса. Она помогает команде увидеть, все ли процессы имеют логическое завершение. А ещё на основе этой карты можно разработать требования к контенту и дизайну сервиса.

  1. Составить список основных функций

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

Kanban, Scrum, экстремальное программирование — выберите то, что лучше подходит вашей команде. Главное, чтобы вы могли оперативно дорабатывать сервис в любой момент работы над ним.

Подумайте, какое решение оптимально подойдёт для вас и следуйте по выбранному пути.

  1. Провести тестирование

Минимально жизнеспособный продукт, надо постоянно тестировать. Иначе как убедиться, что пациент скорее жив, чем мёртв? Начните с альфа-тестирования внутри своей команды, друзьях и родственниках. А затем переходите к бета-тесту на менее лояльной аудитории. Тестировщиков можно найти на специальных сайтах или привлечь через соцсети. В процессе требуется найти все ошибки в работе сервиса и усовершенствовать его, чтобы пользователи оценили всю его функциональность.

Что нужно запомнить из этой статьи

Не зная брода — не суйся в воду. Не имея MVP — не запускай новый продукт. Чтобы создать успешный бизнес, нужно понимать, будет ли продукт или услуга интересны людям.

MVP (от английского Minimum Viable Product) — минимально жизнеспособный продукт, ранний релиз сервиса с ограниченным набором функций, за которые пользователь готов заплатить. Создание MVP соответствует концепции бережливого стартапа и требуется, чтобы усовершенствовать продукт через постоянное тестирование.

Метод MVP помогает бизнесу:

  • получить обратную связь от пользователя и улучшить продукт перед массовым запуском;
  • не тратить время и деньги на разработку сервиса, не интересного целевой аудитории;
  • получить прибыль ещё на этапе разработки;
  • убедить инвесторов, что у разработки есть потенциал и стоит инвестировать в её развитие.

Минимально жизнеспособный: как MVP помогает продукту выйти на рынок

Фото: Shutterstock

MVP (или Minimum Viable Product, «минимально жизнеспособный продукт») — это самая ранняя версия продукта, у которой есть минимальный набор функций, достаточный для презентации публике и проверке на первых потребителях. Однако такой продукт обязан демонстрировать достаточную ценность для пользователей. Понятие ввел в оборот в 2001 году соучредитель и президент консалтинговой фирмы SyncDev Фрэнк Робинсон. Он определил MVP как итог «синхронной разработки» или одновременного развития продукта и исследования целевой аудитории. MVP отличается от прототипа тем, что представляет собой рабочий продукт, который должен выполнять обозначенную функцию наилучшим образом. К примеру, это может быть бета-версия сайта компании, функциональность которой затем дополнят, изучив поведение первых посетителей.

Чем MVP полезен для бизнеса

  • получить обратную связь от целевой аудитории, чтобы доработать продукт перед его выводом на широкий рынок;
  • быстрее выпустить продукт на рынок и получать прибыль еще до завершения процесса его разработки;
  • убедить инвесторов в более серьезном финансировании на завершение разработки;
  • сэкономить средства на анализе рынка и целевой аудитории.

Примеры MVP

Гаррет Кэмп и Трэвис Каланик в 2010 году запустили приложение для iPhone UberCab, которое позволяло пассажирам арендовать для поездки автомобили премиум-класса всего в полтора раза дороже стоимости обычного такси. Идея у создателей родилась после того, как они заметили, что тарифы на городское такси стали несоразмерно высокими. Изначально приложение работало на ограниченной территории и с узкой целевой аудиторией, но спустя год бета-тестирования создатели смогли привлечь первые крупные инвестиции.

UberCab

В 2008 году Брайан Чески и Джо Геббиа не смогли платить за квартиру-лофт в Сан-Франциско и решили проверить, существует ли спрос на аренду комнат напрямую от хозяина. Они создали простой одностраничный сайт с фотографиями своей квартиры и начали сдавать собственный чердак. Молодым дизайнерам удалось рассчитаться со всеми долгами. Уже в 2009 году их стартап привлек внимание Пола Грэма и получил первые инвестиции от его бизнес-инкубатора Y Combinator. После этого Чески и Геббиа поехали в Нью-Йорк, где ходили по домам клиентов и расспрашивали их об опыте аренды. Вскоре они поняли, что многих квартиросъемщиков отталкивают изображения плохого качества, которые фигурировали в объявлениях. Тогда молодые дизайнеры взяли напрокат зеркальный фотоаппарат и отправились по адресам в Манхэттене и Бруклине, чтобы самим фотографировать квартиры арендодателей.

MVP Airbnb

MVP Airbnb (Фото: techcrunch.com)

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

MVP Spotify (Фото: madebymany.com)

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

MVP Foursquare

MVP Foursquare (Фото: techcrunch.com)

Изначально создатели сервиса купонов запустили сайт The Point, объединяющий людей, которые не могли в одиночку выполнить какую-либо задачу. Тестирование показало, что идею нужно сузить. Тогда был запущен кастомизированный блог на платформе WordPress, куда вручную добавляли информацию о возможностях коллективных скидок. При подписке на сайт его пользователи получали по почте рассылку с PDF-файлами о скидках.

MVP Groupon

MVP Groupon (Фото: mashable.com)

Основательница маркетплейса Татьяна Бакальчук сначала закупила женскую одежду из Германии, затем создала сайт и запустила рекламу своего магазина на платформе Passions.ru. Бакальчук использовала каталоги Otto и Quelle, которые работали в России только через агентов, но не были представлены в сети. В отличие от агентов, которые брали около 15% комиссии, она выставила агентское вознаграждение в размере 10% и не брала предоплату.

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

Демо-видео Dropbox

В 2009 году Ян Кум и Брайан Эктон решили создать мобильную телефонную книгу, которая бы показывала статус контакта: доступен, занят, на совещании и так далее. Контакты пользователей этой книги получали соответствующие всплывающие уведомления. Однако вскоре они стали использовать статусы для общения. Тогда создатели выпустили новую версию WhatsApp с функцией отправки сообщений.

WhatsApp 2.0

WhatsApp 2.0 (Фото: feedough.com)

Типы MVP

Существует несколько основных подходов к созданию MVP. В зависимости от этого выделяют несколько типов такого продукта.

Волшебник страны Оз использовал трюки, чтобы притворяться тем, кем он на самом деле не был. То же можно сказать о данном типе MVP. Продукт только кажется функциональным, но на самом деле его разработчик делает всю работу вручную. Это нужно для того, чтобы проверить саму концепцию продукта и понять, востребован ли он. Так развивался сайт заказа обуви Zappos. Изначально у авторов идеи не было ни склада, ни закупленных партий товара, а существовал лишь сайт с фотографиями обуви. Когда ее начали заказывать, разработчики обновили функциональность сайта.

Продукт работает по тому же принципу, что и в случае с Волшебником страны Оз: изначально все работы выполняются вручную. Однако клиенты при этом осознают, что за товаром или услугой стоит человек. Сотрудники службы финансового планирования и инвестиций Wealthfront изначально общались напрямую с клиентами, которым нужна была помощь в управлении капиталом, а автоматизированная система появилась позднее. Такой тип MVP помогает сформировать план развития продукта и собрать фидбэк от целевой аудитории.

Цель такого типа продукта состоит в том, чтобы донести до клиентов ценность использования существующих инструментов вместо создания уникального решения. Его используют, чтобы проверить и реализовать идею без разработки уникального программного обеспечения. Так начал работать Groupon. Создатели начали с сайта на WordPress, где все взаимодействие с пользователями осуществлялось по электронной почте. Лишь позднее сервис дополнили социальными функциями, полноценной email-рассылкой и мобильным приложением.

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

Этапы создания MVP

Чтобы создать успешный продукт, потребуется детальный план его развития. Предварительно нужно подтвердить базовые принципы и методы MVP. Команда должна следовать им на протяжении всего процесса. При этом нужно стремиться потратить как можно меньше денег и усилий.

Выделяют несколько этапов проверки идеи и превращения ее в продукт.

  1. Обозначить проблему для решения. Необходимо в нескольких словах ответить на вопрос: для чего нужен этот продукт.
  2. Определить целевую аудиторию и сузить ее. Для начала нужно подготовить развернутое описание клиента или покупателя: определить его возраст, пол, образование, сферы работы и уровень доходов. Можно указать конкретные привычки и хобби.
  3. Проанализировать конкурентов. Выяснить сильные и слабые стороны их продуктов, чтобы определить функциональность своего собственного. Проанализировать трех главных игроков рынка, исследовать их прошлые и текущие стратегии, объем продаж, доходы, финансовые и маркетинговые цели. Информацию можно брать на сайтах компаний, в блогах, журналах и газетах, а также посещать деловые мероприятия с участием конкурентов. подойдут и инструменты программной аналитики, такие как Similar Web, Ahrefs, Quantcast, App Annie или AppFollow, которые собирают данные о сайтах и приложениях.
  4. Провести SWOT-анализ. Этот метод стратегического планирования крупные компании используют для принятия управленческих решений и формирования бизнес-политики. Он позволяет определить сильные и слабые стороны продукта, его возможности и угрозы для MVP.
  5. Определить карту путей пользователя (user flow) — тот путь, который проходит пользователь при взаимодействии с продуктом. Это позволит разработать требования к контенту и дизайну сайтов и приложений.
  6. Составить список функций с градацией по приоритету. Он должен начинаться с обязательных функций для будущего продукта. В этом помогут пользовательские истории — описания полезных функций с точки зрения пользователей.
  7. Определить объем MVP. Для начала нужно создать продукт с самыми необходимыми функциями, отделив их от несущественных.
  8. Выбрать наиболее подходящий тип MVP.
  9. Провести альфа- и бета-тестирование. Первое представляет собой внутреннее тестирование, когда продукт оценивает близкое окружение. В режиме бета можно позволить реальным пользователям попробовать продукт в течение короткого срока и проанализировать обратную связь. Затем продукт обновляется и снова выходит в бета-тестирование. Количество циклов «создания-тестирования» и их временные рамки зависят от типа продукта.

SWOT-анализ проекта

SWOT-анализ проекта (Фото: stecpoint.ru)

Идея MVP отвечает концепции «бережливого стартапа». Главная цель создания заключается в тестировании концепции или продукта на рынке. Именно по его итогам бизнес может принимать решения о выпуске. Автор методики развития клиентов Стив Бланк говорит, что главная причина провала успешных по многим показателям проектов — это недостаточное знание своих клиентов. Это подтверждает и исследование CB Insights, согласно которому в 42% случаев причиной провала стартапа становится отсутствие рыночного спроса. Создание MVP позволяет понять потребности аудитории на ранних стадиях развития продукта и не выпускать на рынок товар или услугу, которая не будет пользоваться популярностью.

Фото:Unsplash

MVP подходит не только для стартапов, но и при разработке решений на предприятиях. Зачастую разработка нового продукты достаточно сложна, а изменения сопряжены с серьезными рисками. Концепция Minimum Viable предполагает небольшие и постепенные изменения, которые достаточно безопасны и позволяют внедрять функции или обновления, не доставляя неудобств клиентам.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *