Миграция веб-служб ASP.NET на платформу WCF

Платформа ASP.NET предоставляет библиотеки классов .NET Framework и средства для построения веб-служб, а также возможности для их размещения в службах Internet Information Services (IIS). Windows Communication Foundation (WCF) предоставляет платформа .NET Framework библиотеки классов, инструменты и средства размещения, позволяющие сущностям программного обеспечения взаимодействовать с помощью любых протоколов, включая те, которые используются веб-службами. Перенос веб-служб ASP.NET в WCF позволяет приложениям воспользоваться новыми функциями и улучшениями, уникальными для WCF.

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

Даже для проектов разработки веб-служб WCF поддерживает больше протоколов веб-служб, чем поддержка веб-служб ASP.NET. Эти дополнительные протоколы позволяют реализовывать более сложные решения, в том числе решения, использующие надежные сеансы и транзакции.

WCF поддерживает больше протоколов для передачи сообщений, чем ASP.NET веб-службам. Веб-службы ASP.NET поддерживают только отправку сообщений с помощью протокола передачи гипертекста (HTTP). WCF поддерживает отправку сообщений с помощью ПРОТОКОЛА HTTP, а также протокола управления передачей (TCP), именованных каналов и очереди сообщений Майкрософт (MSMQ). Более важно, WCF можно расширить для поддержки дополнительных транспортных протоколов. Таким образом, программное обеспечение, разработанное с помощью WCF, можно адаптировать для совместной работы с более широким спектром других программ, тем самым увеличивая потенциальную отдачу от инвестиций.

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

Учитывая эти потенциальные преимущества WCF относительно ASP.NET веб-служб, если вы используете или рассматриваете возможность использования ASP.NET веб-служб, у вас есть несколько вариантов:

  • Продолжайте использовать ASP.NET веб-службы и забыли о преимуществах, предоставляемых WCF.

  • Продолжайте использовать веб-службы ASP.NET с намерением принять WCF в некоторое время в будущем. В разделах этого раздела объясняется, как максимизировать перспективы использования новых приложений веб-службы ASP.NET вместе с будущими приложениями WCF. В разделах этого раздела также объясняется, как создать новые веб-службы ASP.NET, чтобы упростить их перенос в WCF. Тем не менее, если требуется обеспечение безопасности служб или надежность или гарантии транзакций, или если необходимо создать пользовательские средства управления, то лучше использовать WCF. WCF предназначен для точно таких сценариев.

  • Применяйте WCF для новой разработки, продолжая поддерживать существующие ASP.NET веб-службы. Этот вариант с большой вероятностью может быть оптимальным. Это дает преимущества WCF, а также экономит затраты на изменение существующих приложений для его использования. В этом сценарии новые приложения WCF могут совместно существовать с существующими ASP.NET приложениями. Новые приложения WCF смогут использовать существующие веб-службы ASP.NET, а WCF можно использовать для программирования новых операционных возможностей в существующие ASP.NET приложения в силу режима совместимости WCF ASP.NET.

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

Примечание.

Если служба WCF размещается службой IIS 5.x и ASP.NET удаляется. Если служба WCF размещается службой IIS 5.x, код службы можно запросить, если ASP.NET удаляется. При удалении ASP.NET в операционной системе, работающей под управлением IIS 5.x и WCF, файл с расширением SVC считается текстовым файлом, а содержимое, включая любой исходный код, возвращается в запрашивающий объект.

В этом разделе подробно описаны эти параметры, сравниваются ASP.NET веб-службы с WCF и приводятся инструкции по переносу кода веб-служб ASP.NET в WCF.

См. также