Лучшая архитектура для создания отчетов в ASP.net (с динамическими источниками) - PullRequest
3 голосов
/ 23 августа 2009

Требование простыми словами звучит так:

  • Это приложение для создания диаграмм (своего рода панель инструментов) с несколькими представлениями (диаграммы, PDF и Excel)
  • Источники данных могут быть в основном из Oracle, но есть и другие источники данных, такие как Excel, простые файлы ... и т. Д.

  • Библиотека диаграмм будет компонентным искусством (я хотел бы попробовать новую диаграмму asp.net, но, поскольку она уже используется в других приложениях, они хотели бы продолжить)

Как я уже говорил, у нас уже есть приложение, похожее на базовое 3-уровневое с некоторыми DTO и в основном DataTables, где, я чувствую, любая модель данных тесно связана с Views, они хотели бы продолжить с тем же :)

Я хотел бы предложить новую архитектуру для этого, и мне нужны ваши честные комментарии.

Я думаю

  1. Он должен быть спроектирован с использованием традиционного шаблона MVC, поскольку существует одна модель и разные виды (диаграмма, Excel, PDF)
  2. Уровень Solid Service (Enterprise Lib) с 1) безопасностью (модель провайдера) 2) абстракция источника данных (плоские файлы, oracle, excel) 3) кэширование (каждый отчет будет иметь свое время обновления и данные / представление могут быть кэшировано соответственно 4) Регистрация ошибок 5) Мониторинг состояния

3) использование служб WCF для представления представлений или DTO

4) Полный AJAX и частичный рендеринг

5) разработать надежный сервис wcfservice, который будет принимать имя и представление модели данных (chart, excel, pdf, а затем возвращает представление соответствующим образом.

Пожалуйста, укажите мне, я хочу построить слабо связанную и настраиваемую архитектуру, которую можно использовать повторно.

Ответы [ 5 ]

5 голосов
/ 27 августа 2009

Честный ответ: Похоже, вы либо чрезмерно инженеризированы , либо безответственно заново изобретаете колесо.

Я хочу построить слабосвязанную и конфигурируемая архитектура, которая может быть повторно.

Это прекрасная цель, но является ли это требованием этого проекта? Я предполагаю, что это не фундаментальное требование, в лучшем случае приятное для обладания. Кажется, что бизнес нуждается в инструментальной панели с некоторыми экспортируемыми диаграммами и отчетами, и вы предлагаете создать платформу. Это классическая чрезмерная инженерия.

Если вам действительно нужна платформа многократного использования, потребуются значительные усилия и навыки для создания интуитивно понятной, надежной, безопасной, тестируемой, конфигурируемой и поддерживаемой платформы отчетности с использованием сложных и обучаемых средств разработки.

И даже если вы создадите идеальную платформу, у вас будет собственная система, которую никто не знает . Если вы используете установленную платформу BI / отчетности, вы можете нанимать людей, которые уже знакомы с этой технологией, или направлять людей на изучение уже существующих учебных материалов.

Другими словами, его будет сложно и дороже построить, что плохо, но также сложнее и дороже для использования организацией в ближайшие годы, что еще хуже. Я обычно выбираю build over buy, но отчетность - известная проблема, которая достаточно хорошо решена коммерческими платформами.

Так что, конечно, эта архитектура звучит разумно. И, не зная больше о требованиях, невозможно судить: может быть, вам действительно нужно создать это с нуля, но из вашего описания «Создание диаграмм (своего рода Dashboard)» создание платформы отчетности кажется ненужным, хотя, возможно, довольно забавным.

0 голосов
/ 12 мая 2010

Я думаю, что вы можете сделать слабо связанную архитектуру, которая будет гибкой. Это на самом деле довольно просто. Создайте таблицу, которая содержит все ваши отчеты SQL и свяжите результаты с видом сетки. Отдельный SQL извлекается из таблиц через выпадающее меню категорий и отчетов. Вы можете добавить дополнительные таблицы с подвыборками для детализации и повторного связывания при выборе строки. Используйте параметры из Oracle Data Access, чтобы включить даты, фильтры и т. Д. Из любых элементов управления, которые могут присутствовать во внешнем интерфейсе.

После того, как данные будут динамически связаны и отображены, дайте пользователям возможность отправлять по электронной почте содержимое сетки, экспортировать в PDF, Excel и т. Д.

Я реализовал эти @ 2 клиентских сайта, и это сэкономило им кучу денег при покупке лицензий у Crystal, MS и т. Д. И стало намного более гибким.

0 голосов
/ 26 августа 2009

Мой девиз всегда покупать перед повторным использованием перед сборкой. Исходя из требований, вам может быть выгоднее купить решение COTS BI. Они имеют очень надежные наборы функций и предоставляют возможность делать такие вещи, как создание диаграмм, экспорт в PDF / Excel. Есть множество поставщиков, у Microsoft есть свой собственный набор BI. У Oracle их и тд ...

0 голосов
/ 27 августа 2009

Рассмотрите возможность использования гибкого механизма отчетности, такого как List & Label , который также используется SAP. Возможно, вам тоже подойдет использование ETL Tool + DataWarehouse (однако недостаточно информации о ваших требованиях). Возможно, в источнике данных есть какая-то общая закономерность, которую вы до сих пор не наблюдали.

List & Label довольно мощный, однако я никогда не использовал его в веб-приложении. Абстрагирование ваших источников данных с помощью простых AnnonymousTypes, затем их перевод в DataSets и выполнение всего остального с помощью List & Label помогли мне решить ряд небольших задач. См. modelshredder для инструмента, который может помочь вам в этом.

0 голосов
/ 26 августа 2009

Я рекомендую следующую книгу: Microsoft® .NET: разработка приложений для предприятия Дино Эспозито; Андреа Сальтарелло.

Они обсуждают архитектуру прагматично (да, есть примеры кода). Многие из упомянутых вами вещей будут описаны в книге. Вероятно, вы не получите ответы на все вопросы, но это вас вдохновит. (Они также написали книгу об арке Ajax / ASP.NET, но я ее не читал)

Вы хотите использовать много новых крутых технологий, это круто. Но самое главное, почему вы хотите его использовать, какую деловую ценность это добавит? Спросите себя, что вы хотите с вашим продуктом в будущем? Быть способным выяснить требования сегодня и завтра будет лучшим способом помочь вам создать «слабо связанную и настраиваемую архитектуру», это поможет вам больше, чем любой из выбранных вами технологий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...