2009-08-13 4 views
3

В настоящее время я пытаюсь создать приложение, и у меня возникли проблемы с выбором архитектуры для ее использования.. Архитектура приложения .net

Это будет приложение .net, и, по сути, это приложение будет иметь сервер, на котором работает определенное программное обеспечение, с которым это приложение будет взаимодействовать. На этом сервере должна быть запущена служба обеспечения, которая будет фактически взаимодействовать с этим приложением, запросы очереди и т. Д. Затем будет веб-интерфейс, который предоставляет пользовательский интерфейс и связывается с сервисом, который затем общается с программным обеспечением, надеется в этом есть смысл. Это будет означать, что веб-интерфейс может быть установлен на другой машине для реального программного обеспечения.

Так что я пытаюсь установить это:

  1. Что лучше всего использовать на сервере запуска приложения, веб-сервис работает в IIS или службы Windows.
  2. Если услуга предоставления услуг является службой Windows, каким образом веб-приложение asp.net наилучшим образом общается с ним.
  3. Есть ли какие-либо шаблоны или архитектуры, которые имеют дело с такого рода настройками.

ответ

4

Некоторые мысли/ответы:

  1. Если вы используете WCF, вы можете перейти от хостинг в IIS или службы Windows по своему желанию. (Просто поместите свой основной код в dll, а затем напишите очень небольшую услугу обертки или веб-проект.)
  2. WCF, определенно. Он предоставляет вам всевозможные параметры: TCP, HTTP/Web Services, IPC, одноранговую связь и т. Д. Единственная проблема заключается в выборе, который вы хотите, а затем в редактировании файла конфигурации.
  3. Он уверен, что я рекомендую WCF, так что, я думаю, это и ответ на этот вопрос.
+0

Это определенно похоже, что WCF - это то, что мне нужно, лучше всего читать на этом! –

1

Для вашего обслуживания предоставления услуг я использовал бы службу Windows, которая предоставляет интерфейс службы (API) через WCF. Затем вы можете легко расширить это, чтобы предоставить API веб-службы (SOAP) или даже API REST. Насколько веб-приложение может взаимодействовать, это действительно зависит от того, как вы раскрываете уровень связи (WCF, SOAP, REST) ​​и то, что вам наиболее удобно использовать. Я бы сказал, что WCF проще всего работать, если вы контролируете обе стороны связи, что звучит так, как будто вы это делаете.

Я не уверен, какие узоры вы ищете. Это довольно стандартный шаблон дизайна n-уровня. Существует не так много инструментов (которые я знаю, по крайней мере), которые помогут вам создать реальную реализацию.

1

Для начала это звучит, как вы хотите посмотреть на Windows Communication Foundation, так как вы будете иметь веб-сайтов, взаимодействующих с услугами и/или приложений.

Фонд Windows Communication Foundation является частью .NET Framework, который обеспечивает унифицированную модель программирования для быстрого создания сервис-ориентированных приложений, которые взаимодействуют через Интернет и предприятие.

1

Службы Windows, выполняющие некоторые работы, могут быть установлены на другой машине как iis или одинаковы.

Вы можете использовать mq (например, MSMQ) для отправки сообщений из веб-приложения в службу.Служба будет подписаться на MQ и будет слушать сообщения. Есть много хороших преимуществ, идущих таким образом (гарантированная доставка), но вы должны настроить его.

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

Однако для того, чтобы веб-приложение могло осуществлять push-связь, вы можете использовать System.Net.Sockets или WCF (поставить сервер в свою службу и клиент в своем веб-приложении), но для этого требуется правильная настройка брандмауэра, чтобы разрешить вам порты говорить о разрешении.

Смежные вопросы