Предложения / рекомендации для веб-приложения с дополнительными приложениями

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

Это будет веб-сайт на основе интрасети, использующий проверку подлинности Windows, работающий на IIS и использующий ASP.NET. Он должен быть структурирован как основное веб-приложение с вложенными веб-приложениями. По сути, вся область представляет собой составное интранет-приложение на основе браузера, которое состоит из дискретных, функционально завершенных модулей или вложенных приложений.

Это составное веб-клиентское приложение будет иметь основной модуль или модуль оболочки для обеспечения общей структуры пользовательского интерфейса. Кроме того, модуль оболочки будет предоставлять доступ к общим службам, которые могут использовать все отдельные подпрограммы или модули. Тогда каждое подпрограмма / модуль будет содержать свою собственную функциональность и реализацию, но интегрироваться с пользовательским интерфейсом оболочки.

Затем, в зависимости от пользователя и того, какие из вспомогательных приложений доступны, основное приложение или приложение оболочки будет динамически создавать вкладки (или кнопки или что-то в этом роде) как способ доступа к каждому отдельному приложению. И мы будем хранить данные пользователя и приложения в таблице базы данных.

Так, например, у нас будет приложение для отчетов, приложение для отображения и, возможно, пара других отдельных приложений. При запуске приложения main / shell, после определения того, кем является пользователь, основное приложение будет запрашивать базу данных, чтобы определить, какие вложенные приложения пользователь может использовать, и создать пользовательский интерфейс. Затем пользователь может перемещаться между доступными подпрограммами и выполнять свою работу в каждом из них.

Я надеюсь, что все это имеет смысл.

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

Будет ли Фабрика программного обеспечения веб-клиента хорошим выбором? Будет ли какое-то другое решение MVP хорошим выбором? Будет ли ASP.NET MVC хорошим выбором? Что-то другое???? Разве ни один из них не будет хорошим выбором, и мы должны просто разработать все с нуля, используя веб-формы? Любая другая информация, о которой я должен знать?

Спасибо!!!!

2 ответа

Решение

ASP.Net MVC2 также облегчает использование областей. Вот ссылка, которая может быть полезна

http://odetocode.com/Blogs/scott/archive/2009/10/13/asp-net-mvc2-preview-2-areas-and-routes.aspx

в основном вы могли бы использовать области, чтобы разбить ваши "приложения"

Прежде чем обсуждать фреймворки, необходимо учесть некоторые моменты при создании такой системы (где могут быть подключены подпрограммы):

  • Возможные точки интеграции (Данные, Сервисы, Бизнес-логика, Пользовательский интерфейс)
  • Сквозные проблемы (ведение журнала системы, ведение журнала аудита, настройка, безопасность)
  • Кто будет разрабатывать суб-приложения (вы, люди, которые работают в вашем офисе, или кто-либо еще)

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

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

  • ASP.NET WebForms, по сути, является полностью свободным участком - вам придется создавать большинство вещей самостоятельно или вводить дополнительные фреймворки (такие как библиотеки MS Enterprise)
  • ASP.NET MVC - это то же самое, но в другом стиле.

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

  • MS Ent Libs отлично подходит для сквозных задач (таких как доступ к данным, ведение журналов и т. Д.), Но это все.
  • Существует также ряд хороших платформ Deverdency Inversion, но, опять же, это не полное решение.

Главное - контролировать зависимости: обеспечить абстрагирование уровня данных (для начала), придерживаться принципов разделения интерфейсов, повторного использования и так далее.

Одним из вариантов, который вы могли бы рассмотреть (и я здесь бью свою собственную трубу - так что я не беспристрастен), является созданная мной среда приложения с открытым исходным кодом.net (" Морфолия ", это заняло у меня около 5 лет, неполный рабочий день).). Даже если вы не используете его, вы можете найти хорошие идеи или код, который вы можете "украсть":

Morphfolia:

Он доступен для скачивания по http://morphfolia.codeplex.com/

Другие вопросы по тегам