Я должен разработать простое веб-приложение для создания отчетов. У меня есть один «контракт» для таблицы, и я должен возвращать очень простые агрегированные значения: количество документов, созданных во временном диапазоне, среднее количество страниц для документов и т. Д. Таблица заполняется пакетным приложением, у пользователей будут роли, которые позволят им видеть только часть отчетов (если они могут быть вызваны так).Применимые шаблоны проектирования
Моя цель:
- разработать класс, который генерирует так называемые отчеты, открыто для будущего расширения (добавление новых методов для создания новых отчетов для различных ролей должны быть легко)
- разъединить Интернет графический интерфейс от доступа к базе данных
Я оцениваю различные шаблоны: декоратор, посетитель, ... но, будучи данными о возврате, так просто, я не могу оценить, какие применяются или даже если его случай использовать. Кроме того, я должен сделать это менее 5 дней. Это можно сделать, если я создаю так называемый «умный gui», но, как сказано в пункте 1, я не хочу получать проблемы при добавлении новых ролей или метода.
Благодарим вас за ответы. Извините, я понимаю, что я не предоставил слишком много информации. Я живу в мире Дилберта. на данный момент у меня есть следующая информация: db будет оракулом (конкретный db еще не существует), поэтому нет EF, может быть, linqtodataset (но я новичок в linq). О новых функциях приложения, благодаря незабываемым впечатлениям, единственное, чего я хочу, - это не обязать распространять изменения во всем приложении, даже если это просто. это причины, по которым я разработал шаблоны (обратите внимание, что я сказал «если это так» в моем вопросе). Я ПОЛУЧАЮ его, а затем реорганизую его, если это необходимо, по предложению ladislav mrnka, но я по-прежнему ценю любое предложение о том, как сохранить открытое расширение класса сбора данных
Просто не пытайтесь добавить многие шаблоны. Overengineering не помогает для такого маленького приложения. Просто используйте MVC и Linq-to-SQL или Entity Framework. Это должно сделать это, учитывая закономерности. –
Что заставляет вас думать, что вам нужно набить x количество шаблонов в ваш код? –
Я бы порекомендовал вам найти более подробную информацию о виде «будущего расширения», который наиболее вероятен. Исходя из этого, вы можете выбрать шаблон, который позволит вам это сделать. «Добавление новых методов для создания новых отчетов - это слишком общий» imho, чтобы действительно было полезно. Yves выше, используя EF/LNQ2SQL, следует позаботиться о развязывании вашего доступа к БД ... – InSane