|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||||||||
Где лучше в MVVM реализовать дополнительную логику?25.09.2025, 19:46. Показов 8790. Ответов 118
Метки нет (Все метки)
мне почему-то кажется, что это не проблема, а как раз и задумано было, чтобы можно было переназначать свойства в зависимости от нужного (например, цвет текста при value>1000, условно говоря) - вот и вынесли это DP в отдельный класс... а за пример реализации и использования в XAML - спасибо!.. ? только в каких случаях это DP подключают обычно?.. как по мне, так Styles и Templates и даже Converters - нормальные внутренние (для объекта) свойства, дальше которых уже и придумать нечего (с практической точки зрения) чтобы захотеть подключать из-вне класса ещё и DP за гранью всего, что можно задать и в объекте...
0
|
||||||||
| 25.09.2025, 19:46 | |
|
Ответы с готовыми решениями:
118
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||||
| 17.10.2025, 14:13 [ТС] | ||||
using(context){..}SaveChanges() для заброса изменений в хранилище... или сложнее: периодически по timing'у фиксить изменения (освобождая кэш)... но EF (или др ORM) начинает внедряться с DA (тоже упускалла этот момент - проясняется)
0
|
||||
|
|
|||
| 17.10.2025, 14:43 | |||
|
Не по теме: Десктоп, который работает с БД напрямую... Добавлено через 2 минуты
0
|
|||
|
|
||
| 17.10.2025, 14:55 | ||
|
0
|
||
|
14736 / 9510 / 1364
Регистрация: 21.01.2016
Сообщений: 35,895
|
|
| 17.10.2025, 15:16 | |
|
JeyCi, а вам точно ORM нужна? Это, как бы, вещь не обязательная для работы с базой...
0
|
|
|
|
||
| 17.10.2025, 15:29 | ||
![]() Я вёл не в сторону "а давайте на веб-сервисе повторим как на десктопе", а скорее наоборот: для десктопа не делать долгоживущих объектов. Ну или отрубать кеш в местах где он явно не нужен.
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|||
| 17.10.2025, 16:19 [ТС] | |||
dotnet tool install --global dotnet-ef для управления миграциями и др задач EF - для sqlite не пригодится (если это правда, что там не сделать), но думаю если всё-таки предпочту LocalDB - то не помешает и EF. для code-first подхода (он как-то попроще, чем database-first или model-first).. имхоа SaveChanges(); после валидации, вообще, по-моему, "must-have", чем просто швырять insert'ы в бд - не надо открывать клиенту доступ в бд... (только в рамках его компетенций)LINQ to Entities можно расширять на c# (или предварительный отбор), чем всё загружать в sql... DbSet, DbQuery и DbContext в EF - очень удобны, т.к. наследуют IQueryable - и хорошо подтягиваются из дб в WPF (как ObservableCollection из локальных объектов), и не надо winform.control.Items.Refresh(), как в WinForm... мы ведь о binding'ах говорим -- конечно нужна нормальная ORM! в общем CRUD и миграции удобнее с ORM... а code-first проще, чем иное
0
|
|||
|
14736 / 9510 / 1364
Регистрация: 21.01.2016
Сообщений: 35,895
|
|
| 17.10.2025, 16:31 | |
|
JeyCi, из этой портянки текста не очень ясно, какую проблему ты решаешь взяв ORM...
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|
| 17.10.2025, 18:11 [ТС] | |
|
DbExtensions
Этот класс определяет несколько полезных статических методов, с помощью которых можно настроить запросы, например, отключить кэширование для запросов Usaga - и вас лично отключить, чтобы не тыкали там, где ты сам никто...
0
|
|
|
14736 / 9510 / 1364
Регистрация: 21.01.2016
Сообщений: 35,895
|
|
| 18.10.2025, 05:59 | |
|
JeyCi, хорошо
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||||||||||
| 20.10.2025, 20:03 [ТС] | ||||||||||
|
там, действительно, какой-то странный Update...
насколько понимаю, репозитарий может иметь свой dbContext, под один dbContext можно сделать 1 репозитарий для несложных проектов, там вроде tutorial, а не реал.проект... хотя,конечно, можно делать репозитарии и под каждую сущность...
но в моём случае пока будет - 1 connection- значит одного репозитария достаточно (чтобы убрать зависимость DAL от Модели) - на случай если потом расширять до MVC... а с EF так уже UnitOfWork в ней есть, да и DbContext она задаёт (тут зависимость от конкретной бд только если в OnConfiguration делать - но он ведь именно для этого и только там и только 1 раз делается, а дальше D.I. куда надо)... а в DAL, насколько помню - простые DTO пока что... (хотя с EF они не нужны, наверно и Репозитарий не нужен, - он entities сам может подхватить из ДБ -- просто add package Mirosoft.EntityFrameworkCore у меня что-то из dotnet не тянется под net5.0 пока, может файл проекта какой не такой - экспериментирую с TargetFrameworks)Disadvantages of Repository Pattern in C#:
вот кстати многие-ко-многим в EF мне нравится (можно разрулить прямо на клиенте, независимо от хранилища), да и SaveChangesAsync() не будет замораживать Main, вероятно (уже хорошо)... или какую другую Task уже можно исполнять... When Not to Use Unit of Work in C#?
========= вообще, с EF, наверно, действительно, будет неприятно - 2 раза прописывать Repository... но по др. никак... да и миграции в sqlite не нужны... значит IGenericRepository пока хватит, чтобы соблюдать Open-Closed principle... если потом на MVC... p.s.: касательно EF, вероятно EF больше подходит для MVC (и то для БД или, может, хранилища и выполнения приложений на облаке Azure, а для Web др DataAccessLayer, наверно, должен быть)... а MVVM (как разновидность MVC) паттерн для WPF ================ внедрять вроде и без Microsoft.Extensions не сложно, а если пока однопоточный connection к бд, то и IoC не нужен мне пока, полагаю... Простой D.I.:
в общем выходим с MVVM на более широкий смысл MVC... там и кОнтролы будут другие (не для VM) и многопоточность может появиться с race condition... для др. ветки... просто back-end пока ещё немного аморфный у меня (for generic case), поэтому и front-end у меня тоже такой же
0
|
||||||||||
|
|
||
| 21.10.2025, 08:36 | ||
|
Без обид, но прочитал всю портянку и нифига не понял...
1
|
||
|
Модератор
|
||
| 21.10.2025, 09:05 | ||
|
Не по теме: Тему нужно давно разделить. Возможно даже не на 2, а на большее количество тем.
1
|
||
| 21.10.2025, 09:49 | |
|
Не по теме: ТС какую-то белиберду несет уже 6 страниц. Больше похоже на личный блог, чем на тему "в MVVM реализовать дополнительную логику"..
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 22.10.2025, 09:27 [ТС] | ||
|
1) Dependency Injection в NET.Core для MVVM ( Middleware injection [как разновидность D.I.] или MiddleLayer) - на примере Update 2) Расширяемая архитектура проекта (чтобы переехать с WPF на Web быстро) - на примере возможностей расширения до MVC 3) При смене БД куда деть EntityFramework (создающий зависимость Model от DbContext) - последовательность, может, и не совсем соблюдена по ветке - т.к. ввиду того, что я не профи в архитектурных вопросах - вопросы возникали спонтанно и в контексте многоплановости конкретных задач... да и ответы были хаотичны (кто что подумал), но часто полезны для общего вопроса: 1) MVVM - правильное разделение на слои с соблюдением Open-Closed Principle из S.O.L.I.D. для быстрого внедрения доп. логики Стоит разделять ветку или не стоит - не знаю - т.к. всё связано со всем здесь (и не всё отвечено) для полной завершённой картины о возможностях наращивать функционал проекта - но для деталей переезжать на др. ветку однозначно стоит
0
|
||
|
|
||||
| 22.10.2025, 09:32 | ||||
|
1
|
||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 22.10.2025, 09:46 [ТС] | ||
уже приехала - в БД... на С++ в своё время... - думаю, вставлять ли тот проект Unmanaged Code'ом во взаимодействие с бд сюда (или вообще переделать на c#) или оставить как есть и делать др. проект для визуализации инфо из бд... задача обычная: взять инфо из сети, закинуть в бд для истории, посмотреть нужные данные из бд по мере необходимости... т.е. из Web - в БД - в WPF... (и может потом закинуть Хранилище на облако) - (и может потом закинуть анализ инфо из этого хранилища в Web )
0
|
||
|
|
|
| 22.10.2025, 10:09 | |
|
JeyCi, "Всё смешалось в доме Облонских" (с)
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|||
| 22.10.2025, 18:24 [ТС] | |||
|
- то что в названии ветки, потом:
- handling Exceptions in WPF - тут получили посыл к многопоточности (где нужен MVC) - посмотрели Synchronization Context - асинхронно CanExecuteChanged , но в потоке диспетчера окна - на примере 2х кнопок... - предостерижение о всё той же асинхронности... и ранее: - отсюда начали перестраивать мозг с WinForms(MVP) на WPF (MVVM), и далее опять на многопоточную архитектуру MVC... - а отсюда - то что в (1) из #114 -- уже обсуждение расширяемой архитектуры чтобы не перечитывать всё - вот примерно такое СОДЕРЖАНИЕ ВЕТКИ было (многоплановое и немного mixed-up) -- для расширения C++ кода возможностями С#
1
|
|||
|
Модератор
|
|
| 22.10.2025, 21:18 | |
|
JeyCi, Andrey-MSK, wizard41, просмотрел тему.
Там такая каша. Разделять надо не просто по сообщениям, а сами сообщения тоже. Слишком много волокиты. Эту тему я закрою. JeyCi, для следующих вопросов создавайте новые темы.
2
|
|
| 22.10.2025, 21:18 | |
|
MVVM бизнес логика и Model
Как реализовать работу нескольких окон под шаблоном MVVM? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|