Вопрос

Я здесь очень скептически отношусь к дизайну своего приложения .....

Вот схема моего приложения

Схема моего приложения

это правильно ??не мне нужно что-то менять ...

Я проработаю схему ....:

Общая библиотека: содержит классы ErrorCodes, служебные классы и т. д.
Регистратор: платформа ведения журнала
Обработка исключений: структура для обработки исключений

Представление: содержит: все различные XAML для представлений, таких как UserControls, Windows, всплывающие окна

ViewModel: содержит ViewModels для различных представлений.

Модель: содержит различные уровни, такие как ... бизнес-уровень, уровень доступа к данным и т. д.

Уровень сущности: содержит такие объекты сущности, как сотрудник, компания и т. д.

Файловое окно: здесь указывается чтение / запись из файла / базы данных ....

Это было полезно?

Решение

Трудно сказать, что вы пытаетесь сделать со своим вопросом, но, на мой взгляд, слои MVVM должны выглядеть так:

  • Модель : необработанные данные и проверка необработанных данных. Может быть и общий кодовый код, но ничего больше

  • ViewModel : бизнес-логика, доступ к данным, расширенная проверка на основе бизнес-правил и т. д.

  • Просмотры : симпатичный слой пользовательского интерфейса, который позволяет пользователям взаимодействовать с ViewModels. Больше ничего.

Например, модель может иметь свойство INotifyPropertyChanged, но она не должна отвечать за отображение диалогового окна файла, сохранение файла в базе данных или проверку того, что файл имеет расширение .pdf. Такого рода вещи и есть работа ViewModel.

< sizesЭдит

Я вижу, как вы обновили свой вопрос. Это хорошее начало, но вот проблемы, которые у меня возникают:

  • Ваши модели должны быть объектами необработанных данных. Они не должны содержать ничего более сложного, чем что-то вроде проверки длины свойства.

  • Честно говоря, я бы не рекомендовал разделять представления, модели и модели представления на 3 отдельных слоя. Я сделал это однажды, и это превратилось в кошмар обслуживания. Теперь я складываю все связанные объекты вместе. Например, я бы объединил File, FileModel и FileViewModel вместе, а FileView, SearchModel и SearchViewModel вместе

  • Я бы создал уровень доступа к данным, который отвечал бы за выполнение всех операций чтения / записи данных в / из базы данных (я предполагаю, что это может быть ваш «уровень сущности»).

  • Для небольших проектов я обычно использую свои объекты Entity в качестве моделей, поэтому модели становятся частью моего уровня DAL, хотя я знаю, что это не рекомендуется.

  • Не забывайте, что с MVVM ваши ViewModels - это ваше приложение, а не ваши представления. Представление должно отражать то, что находится в модели представления, а не наоборот.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top