Я создал систему форумов в шаблоне MVP, но я не уверен, правильно ли я ее реализовал. вот что я закончил:
- Я создал базу данных, в которой есть три таблицы: форумы, темы, сообщения
- добавил новый типизированный набор данных в проект, а затем перетащил в него все таблицы
- создал три новых calsses: ForumsModel, ThreadsModel, PostsModel
- добавлены три интерфейса: IForumView, IThreadView, IPostView
- еще три класса: ForumsPresenter, ThreadSresenter, PostsPresenter
внутри классов модели я просто вызываю типизированные методы набора данных, а в Presenter я вызываю методы модели. просмотры .aspx
страниц. это все, что есть для системы форумов, но вот сложная часть:
поскольку шаблон MVP является шаблоном пользовательского интерфейса, я должен выполнить проверку данных в самом приложении. так что с моим дизайном MVP это приложение!
что я сделал не так ??
edit 1: Прежде всего о том, почему я выбрал типизированный набор данных с хранимыми процедурами по сравнению с другими вариантами: это самый легкий поставщик данных, который не ставит под угрозу любую имеющуюся у вас архитектуру. другие варианты - прямой sql, который не является хорошим вариантом для вновь создаваемого приложения, классы LINQ to sql, которые слишком тяжелы для создания экземпляра при каждом запросе, Entity Framework, который хорош, но слишком велик для такой простой задачи! по крайней мере, если бы я создавал блог-движок, это был бы мой первый выбор.
Что касается того, почему я не выбрал MVC, то это потому, что я думаю, что MVP - лучший шаблон, поскольку он даст мне полное разделение различных частей моего приложения. в конце концов, это вопрос времени, но вы должны быть в состоянии реализовать любой шаблон, верно?
Я видел разные варианты MVP, но я пытаюсь реализовать следующее:
model<------------->presenter<-------------->view
опция databind предназначена для шаблона модели представления, представленного Мартином Фаулером, насколько я помню, но я пытаюсь создать версию для Microsoft, которая в основном является расширенной версией шаблона PM.
два дня назад я задал вопрос о проверке данных, и кто-то предложил мне сделать это в «самом приложении», поэтому, когда я спросил, где находится это «приложение», он сказал, что MVP - это шаблон пользовательского интерфейса, и он не должен быть вашим «Приложением», и вы должны реализовать MVP на уровне пользовательского интерфейса. вот почему я задал этот вопрос в первую очередь!