Рекомендуемая архитектура - серверное приложение, обеспечивающее веб-интерфейс ASP.NET - PullRequest
1 голос
/ 23 ноября 2011

Я смотрю на лучший способ разработки серверного приложения, которое представляет интерфейс ASP.NET MVC для управления / отчетности.

Серверное приложение (служба?) Также должно будет обеспечить прослушиватель TCP и связь с устройствами через COM-порт.

Самый очевидный способ сделать это - иметь веб-приложение ASP.NET MVC и службу Windows, которая взаимодействует с веб-приложением с помощью веб-вызовов / служб. Наверное, тогда я бы поговорил со службой с помощью прослушивателя tcp или удаленного взаимодействия?

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

Есть ли у кого-нибудь опыт этого / рекомендации?

Это немного открыто, но надеюсь, я объяснил основы.

ТИА

Sam

Ответы [ 3 ]

2 голосов
/ 23 ноября 2011

Я бы, вероятно, попытался бы отделить вещи немного больше.

Начните с основного проекта, в котором лежит вся ваша бизнес-логика (независимо от того, как пользователи взаимодействуют с ней);своего рода идея модели домена DDD.

Затем создайте два проекта, которые используют этот основной проект, один - приложение MVC, а другой - сервис на основе WCF или ServiceStack, который может обрабатывать ваши компоненты TCP.

Делить состояние между ними, используя обычные средства;либо межпроцессные коммуникации, общая база данных и т. д.

1 голос
/ 23 ноября 2011

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

ServiceStack может быть запущен поверх любого хоста ASP.NET или самостоятельно размещенного с использованием опции HttpListener .См. Starter Templates для примеров проектов консольного приложения или хостов службы Windows.Несмотря на то, что даже в IIS ServiceStack работает очень быстро и требует очень мало времени, служба hello world выполняется за sub <1ms </strong> время отклика.

ServiceStack также поставляется с .NET самым быстрымсериализаторы и множество высокопроизводительных поставщиков кэширования , чтобы вы могли избежать конфигурации XML, связанной с моделью поставщика сеансов и кэширования ASP.NET.

Поскольку ServiceStack поощряет чистое основанное на сообщенияхМодель разработки Ваши те же веб-службы могут использовать Redis MQ Host , позволяющий вызывать его вне контекста HTTP с использованием Redis в качестве посредника - при никаких изменений кода не требуется .

Redis является одним из самых быстрых распределенных хранилищ данных NoSQL .

1 голос
/ 23 ноября 2011

Мне кажется, что вы ищете что-то очень похожее на Windows Communication Foundation .Ваши требования для хостинга IIS, связи ASP.NET и TCP.MSDN имеет краткий обзор WCF до здесь .Также есть статья о транспортных протоколах здесь .

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

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

...