Какие технологии для более крупного проекта? - PullRequest
0 голосов
/ 18 июля 2009

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

В проекте будет использоваться 3-х уровневая архитектура проектирования. Уровень представления будет ASP.NET, но это может быть какая-то другая технология. На данный момент это не имеет значения.

Мои вопросы:

  1. Для сервера приложений я должен использовать службу Windows или просто обычное приложение?
  2. Что я должен использовать для связи между уровнем представления и уровнем домена? Я хотел использовать удаленное взаимодействие .NET, но я читал, что удаленное взаимодействие является частью WCF. На самом деле я не очень знаком с WCF, поэтому я спрашиваю. Так .NET Remoting или WCF?

Буду признателен за любую подсказку

Ответы [ 6 ]

5 голосов
/ 18 июля 2009

Для сервера приложений сейчас, я думаю, службы Windows подойдут вам лучше, хотя это и больше работы, чем должно быть. Если вам не нужно развертывать прямо сейчас, возможно, вы захотите взглянуть на « Dublin » - дополнение к .NET 4.0, которое дополнит WAS (сервер активации Windows) с помощью инструменты управления и прочее. Таким образом, вы сможете разместить и управлять своими службами WCF хорошим и очень мощным способом.

Что касается # 2 - я бы определенно рекомендовал WCF - это предпочтительная платформа для связи в распределенных системах, и благодаря своей настраиваемости и гибкости она может справиться практически с любой задачей, которую вы хотите выполнить. От очень быстрой связи на компьютере (NetNamedPipeBinding) до обработки связи через Windows Azure ServiceBus - службу ретрансляции «в облаке» - это , что мощно! Вы не ошибетесь с WCF - он может удовлетворить все ваши потребности в общении, я бы сказал. Не тратьте свое время на изучение устаревших технологий, таких как .NET Remoting, ASMX или веб-сервисы WSE (только мои 0,02 доллара за это обсуждение).

Марк

2 голосов
/ 18 июля 2009
  1. Услуги - это путь; пользователь не должен входить в систему, чтобы он работал; они хорошо оборудованы для удаленного администрирования; они также лучше подходят для наблюдения за состоянием здоровья

  2. Remoting может быть использована через WCF; WCF объединяет множество различных коммуникационных платформ и предоставляет простые в использовании конфигурации для них. На мой взгляд, лучше всего было бы изучить WCF, однако, если вы разбираетесь в Remoting и уверены, что он отвечает всем вашим потребностям, то это тоже должно быть хорошо.

1 голос
/ 18 июля 2009

WCF - единственная технология, используемая для связи. Обратите внимание, что даже .NET Service Bus, являющаяся частью Azure, использует WCF. Что касается других «выборов»:

Другого разумного выбора нет, если только по какой-то причине вы не застряли с использованием .NET 2.0 или .NET 1.1.

1 голос
/ 18 июля 2009

Отвечая 2)

WCF - это новая библиотека, которая объединяет различные механизмы связи с использованием единого API. Выбор того, какой механизм (или связывание в языке WCF) зависит от ваших требований.

Для повышения производительности вы можете попробовать NetTcpBinding или, если вы хотите, чтобы он был доступен через HTTP, вы можете попробовать BasicHttpBinding. Больше информации о WCF от MSDN .

0 голосов
/ 18 июля 2009

Если вы задаете подобные вопросы, то в определении вашего проекта все еще есть много чего вы не знаете. На самом деле это не проблема, так как даже если бы вы это сделали, большинство из них, вероятно, изменилось бы, прежде чем вы все равно закончили.

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

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

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

0 голосов
/ 18 июля 2009

На самом деле, ваш выбор уровня представления имеет значение.

Если вы выполняете установку на стороне клиента, то имеет смысл использовать WCF для связи между уровнем домена и клиентом. Однако, если вы пишете чисто -ASP.NET UI, то наличие веб-приложения, вызывающего веб-службы, которые, вероятно, размещены локально, имеет серьезные последствия для производительности (пересылка сообщений и сериализация / десериализация).

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

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