|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
|||||||||||||
Разделение функционала между слоями MVVM на примере создания простого WPF приложения с БД10.02.2024, 00:12. Показов 8829. Ответов 182
Метки нет (Все метки)
Тема создана разделением темы Вывод на печать изображения MVVM
Кликните здесь для просмотра всего текста
0
|
|||||||||||||
| 10.02.2024, 00:12 | |
|
Ответы с готовыми решениями:
182
ASP.NET MVC - разделение функционала между различными view
WPF нюансы создания проводника и мелочи по MVVM |
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
||
| 12.02.2024, 08:13 [ТС] | ||
|
0
|
||
|
Модератор
|
||||||||||||
| 12.02.2024, 08:50 | ||||||||||||
|
Для этого будет достаточно членов авторизации. И кроме них два репозитория: людей и товаров. Как я понял, по бизнес-логике список людей неизменяем. А товаров мутабельный. Верно? Добавлено через 10 минут Если да, то можно изменить интерфейсы. Вариант 1
Во втором варианте репозиторий людей реализует только IReadOnlyRepository, а репозиторий товаров IRepository.
0
|
||||||||||||
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
||||||
| 12.02.2024, 08:52 [ТС] | ||||||
|
Если вы про что то из средств мсдн для авторизации, то я сейчас вас не пойму, и в этом случае, если это нужно сделать, то можно ссылку на мсдн что будем использовать, изучу\добавлю. Если делать что то мутабельное, то лучше занять еще одну страницу меню, и там уже в datagrid выводить мутабельную коллекцию, делать фильтры. Но с этим думаю позже решим, пока что текущее сделать. А потом обновить решение.
0
|
||||||
|
Модератор
|
||
| 12.02.2024, 08:54 | ||
|
P.S. Синхронизация GIT-репозиториев.
Только увидел. Вы похоже изменения вносили не в свою, а в мою ветку. Поэтому произошло переплетение фиксаций. Проконтролируйте этот момент, а то уже не понятно что в какой ветке за что отвечает. Добавлено через 1 минуту Раз мы добавили нормальную поддержку авторизации, то необходимости в репозитории юзеров. Только с толку будет сбивать.
0
|
||
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
|||
| 12.02.2024, 09:50 [ТС] | |||
|
Добавлено через 48 секунд Элд Хасп, если у вас нет бекапа, скорее всего есть. То перед пробой я скачал вашу ветку в качестве бекапа, на всякий случай.
0
|
|||
|
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
|
||||||||||||
| 12.02.2024, 09:56 | ||||||||||||
0
|
||||||||||||
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
|||
| 12.02.2024, 10:13 [ТС] | |||
|
Добавлено через 1 минуту kotelok, как нибудь попробую спасибо) А десткопной версией, почему то ей никто не пользуется... Хотя мне кажется удобно было бы управлять репозиторием ею Добавлено через 8 минут
0
|
|||
|
Модератор
|
||||
| 12.02.2024, 10:27 | ||||
|
Я свою ветку делал не как развитие, дополнение вашей, а как примеры реализацией. Поэтому не рассчитывал и не предусматривал их слияние. Так же перед слиянием, в любом случае, лучше делать ревизию обоих веток. Особенно когда у них разная архитектура. В наших ветках, даже проекты были разные и с другими именами. Добавлено через 3 минуты Поэтому этот репозиторий надо удалить из интерфейса Модели. И даже если он нужен ей, то создавать его в приватном или include поле/свойстве. Добавлено через 3 минуты В этом одна из "прелестей" репозитория - можно откатить на любую точку фиксации. И начать опять с неё. Я бы уже это сделал. Но вам нужно сначала привести в порядку свою ветку "main", а то так и будем прыгать с фиксации на фиксацию с мильоном слияний.
0
|
||||
|
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
|
|||||
| 12.02.2024, 10:27 | |||||
|
А на живом проекте, если есть сомнения, то перед манипуляциями с гитом просто делаете 'ctrl+c, ctrl+v' целиком на всём каталоге проекта (т.е. вместе с исходниками и каталогом .git), чтобы если что, можно было бы легко откатить вашу локальную копию репозитория.
1
|
|||||
|
Модератор
|
||
| 12.02.2024, 10:32 | ||
|
Вариант с IsReadOnly требует от потребителей обязательной проверки этого свойства перед обращением к методам интерфейса. Вариант с базовым интерфейсом позволит создавать репы в которых просто нет этих методов, и потребителям не будет необходимости в доп проверках. Я бы напротив, предпочёл вариант с базовым интерфейсам. А вариант с IsReadOnly оставил бы для репозиториев в которых этот флаг может меняться динамически. Например, репозиторий один, но есть потребители (юзеры) с разными ролями. Если роль гостевая, то IsReadOnly=true, если с полным доступом, то false.
0
|
||
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
||||||||
| 12.02.2024, 12:15 [ТС] | ||||||||
|
Добавлено через 7 минут Добавлено через 5 минут Добавлено через 1 час 25 минут Элд Хасп, можете свою ветку перезалить, сейчас там наши обе, слишком много не нужного. А с учетом существующих правок ваших, архивная ветка, наверное не содержит новый код
0
|
||||||||
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
||
| 12.02.2024, 14:07 [ТС] | ||
|
0
|
||
|
Модератор
|
||
| 12.02.2024, 14:31 | ||
|
Типичный пример такой реализации это BaseInpc отсюда: Простые реализации для тем на форуме
0
|
||
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
|||
| 12.02.2024, 14:48 [ТС] | |||
|
Добавлено через 29 секунд
0
|
|||
|
Модератор
|
||
| 12.02.2024, 15:12 | ||
|
Я поэтому его и не назвал ViewModelBase. Для базового класса VM у меня есть более тяжёлая реализация с интеграцией словарей значений свойств, с созданием команд и их подпиской. Зато использовать его проще чем BaseInpc. А чуть увеличенные задержки всё равно, по сравнению с задержками в GUI, никакими тестами не выявишь.
0
|
||
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
|
| 12.02.2024, 15:53 [ТС] | |
|
0
|
|
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
|
| 12.02.2024, 18:04 [ТС] | |
|
0
|
|
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
|
| 12.02.2024, 18:04 [ТС] | |
|
В бд данные есть.
0
|
|
| 12.02.2024, 18:04 | |
|
Структура WPF приложения на MVVM
Паттерн MVVM или как писать приложения на WPF
Пример переключения между окнами WPF MVVM Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|