.NET Remoting vs. Web Services и Windows Communication Foundation (WCF)

Любой, кто хочет помочь мне с плюсами и минусами в .NET Remoting, Web Services и WCF? Я немного поработал с .NET Remoting и веб-сервисами, и я занимаюсь разработкой нового веб-приложения ASP.NET 3.5, где я буду использовать базу данных SQL 2008. В первую очередь мне интересно, стоит ли действительно смотреть в WCF для этого приложения.

В этом конкретном случае здесь приведены некоторые важные моменты:

  • Наиболее устойчивыми данными будут ошибки и отслеживание использования.
  • Даже если я перейду с помощью .NET Remoting, трафик не будет гарантировать физический удаленный сервер, но я хотел бы мечтать, что он когда-нибудь будет!
  • В настоящее время я не предвижу, что нужно брать эти данные из других веб-приложений.

Однако мне все равно хотелось бы знать:

  • Когда/почему вы используете .NET Remoting в веб-приложении?
  • Когда/почему вы используете веб-службы в веб-приложении?
  • Когда/зачем использовать WCF в веб-приложении?
  • Должен ли я рассматривать технологию, такую ​​как LINQ to SQL?
  • Есть ли еще лучшие варианты?

Ответ 1

Я фактически переключил наше программное обеспечение с обычного .NET Remoting на WCF. Раздувание в общении, которое произошло от Remoting, было потрясающим (просто взгляните на трассу проводов). Прежде чем перейти к WCF, я подумал об использовании только традиционного веб-сервиса .NET, но интерфейсы, которые мы использовали для наших удаленных вызовов, потребовали бы значительной модификации (мы использовали некоторые параметры и параметры ref, которые веб-служба Asp.Net не может выполнять, если я не ошибочно).

На самом деле, я не могу придумать причину пойти с веб-сервисом Asp.Net, но я не парень Asp.Net. Для меня это не имеет преимуществ перед WCF. Возможно, проще работать с веб-сервисом, но предлагаемая гибкость WCF была тем, что мне нужно. Особенно в области форматирования сообщений.

Мне нравится моя служба WCF, потому что с одной службой я могу либо обслуживать JSON, либо SOAP/XML, и поддерживаются все протоколы (ipc, tcp и http).

Облом с WCF заключается в том, что для его строгих привязок требуется определить конечную точку для HTTP и HTTPS, если вы хотите использовать ее в сетевом сценарии. В отличие от традиционного Webservice, который "просто работает", независимо от его безопасности или нет.

Ответ 2

Хороший вопрос! Как и я, я раньше не смотрел на WCF и не думал ли он, что веб-службы более или менее устарели?

В свою очередь, о Linq2SQL - учитывая, что это новое приложение для spanky, и вы, вероятно, собираетесь поддерживать кодовую базу в течение нескольких лет - лично (и рискуя быть заниженным для этого, но помните, что это действительная точка зрения!) Я был бы склонен смотреть на Entity Framework.

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

Однако мое личное мнение заключается в том, что MS просто не собирается позволять этой технологии падать на обочину, и я должен был бы принять во внимание слухи, что она ЗАМЕНИТЬ L2S. С другой стороны, L2S - это гораздо более зрелая технология и более безопасная ставка.

Возможно, я наивна, но я считаю, что Дэн Симмонс, когда он говорит, что они работают над доставкой EF (в конечном итоге) как полностью стойкой-неосведомленной архитектурой - http://blogs.msdn.com/dsimmons/pages/ef-faq-entity-classes.aspx#_Does_Entity_Framework

Ответ 3

Я бы скорее посмотрел на EF, а затем на L2SQL.

Идея быть только способной подключиться к MSSQL была причиной того, что я никогда не принимал L2SQL, с этого момента было ясно, что MS когда-нибудь откажется от него.