суббота, 17 сентября 2011 г.

Что нового возможно будет в WCF 4.5

Как то я успел пропустить такое замечательное событие, как  .NET Framework 4.5 Developer Preview. Лично для меня интересно больше всего - что будет в WCF 4.5. Так как это всего лишь Preview, то расчитывать на фичи сильно не стоит, но все равно приятно.
Как всегда, MS говорит что жить нам будет проще и все усилия кидает на упрощение разработки. Давайте посмотрим что же готовит нам WCF 4.5:
Улучшение поддержки Streamed
Ура! Неужели я наконец то этого дождался. Улучшили потоковую передачу данных. Тут сразу 2 новинки. Во-первых, теперь передача потока действительно будет потоковой и не будет блокировать поток, в случае, если принимающая сторона не принимает потока. Во-вторых, удалили ограничения на буферизацию сообщения, в случае пересылки сообщения от клиента сервису, который располагается на IIS.
Улучшение конфигурирования SSL
Еще раз Урааа! Это второе счастье. Теперь чтобы выставить сервис поверх HTTPS нужно всего лишь настроить IIS под SSL и включить его для виртуальной дирректории.
Генерация плоского WSDL файла.
Третье Ураааа!!! Ликуют все, кто когда либо делал клиентов к WCF сервису на MSSOAP! Теперь не надо будет запариваться над тем, что WSDL файл не подхватывается с сервиса и нужно его выгружать отдельно и удалять там все зависимости, делая один plain файлик описания. Теперь WCF сможет выдавать плоский файл описания.
Поддержка нескольких моделей аутентификации
Четвертое и самое главное УРА !!! IIS давно позволяет настроить аутентификацию сразу по нескольким моделям, однако один endpoint WCF мог работать только с использованием одного способа аутентификации. Теперь, надеюсь, можно будет настроить на один endpoint несколько способов аутентификации.
Конфигурирование сервиса прямо в коде реализации сервиса
Потрясная штука, которую давно хотел. Для того, чтобы понять о чем речь, надо посмотреть примеры кода вот тут. Суть – теперь для того, чтобы сконфигурировать сервис кодом, не нужно подвешивать свои собственные behaviors. Теперь стоит только определить метод Configure в реализации сервиса и сконфигурировать все там. Кроме этого, в этом же методе можно подгрузить ВСЮ конфигурацию из другого конфига.
Кеширование ChannelFactory
ChanelFactory это штука, в которую вынесен определенный слой логики, дающий оверхед. Теперь при использовании автогенерируемого проксика ChanelFactory будет закеширован, чтобы устранить оверхед. А это значит только одно – клиент станет работать быстрее, но возможно будет кушать дополнительную память.
Поддержка WebSockets
Пока не понимаю ликовать или нет, надо попробовать работать. Но думаю что для всех веб-разработчиков это будет приятным изменением. WebSockets это технология, которая предоставляет двунапрвленный канал поверх 80 или 443 порта с производительностью TCP канала. Соответственно добавляется 2 новых типа биндинга: NetHTTPBinding и NetHTTPSBinding.
Упрощение генерации конфигурационных файлов.
Конфиги для WCF всегда были проблемой. Они большие, они тяжелые и главное – новичку в них разобраться бывает просто нереально. В WCF 4 версии упростили конфиги, вынесли дефолтную конфигурацию, но это слабо спасает если разбираться нужно в уже сконфигурированном проекте. Хотя «вхождение» в технологию упростилось.
В 4.5 обещают упростить генерацию клиентских конфигов и выкинуть из них все ненужное, оставить лишь то, что действительно нужно конфигурировать.
Поддержка принципа разработки «contract-first»
Принцип разработки, при котором первым делом разрабатывается не реализация сервиса, а его контракт и способы взаимодействия с внешним миром.
Упрощение настройки совместимости с ASP.NET
Штука сомнительная и призвана на мой взгляд, упростить жизнь ASP.NET разработчикам, которые добавляют на свои сайта WCF сервисы. В общем, теперь AspNetCompatibilityRequirementsAttribute будет по умолчанию установлен в Allowed.
Изменения в настройках по умолчанию для свойств транспорта
Значения для свойств транспорта будут изменен так, чтобы в большинстве случаев их конфигурирование не требовалось.
Изменения в настройках по умолчанию для XmlDictionaryReaderQuotas
Опять же упрощение конфигурирования.
Проверка конфигурационных файлов при сборке проекта.
При сборке проекта будут проверяться конфигурационные файлы на наличие ошибок, что должно уменьшить количество ошибок после запуска сервиса. Решение для тех, кто еще не научился читать ошибки WCF, в которых все подробно написано. Кроме этого, ко всем элементам конфигурации WCF добавятся подсказки в XML редакторе.
Binary encoder будет поддерживать сжатие
Теперь и для бинарного энкодера можно установить сжатие для экономии (еще большей) трафика.
Поддержка IDN
Тут не знаю что сказать, не занимался проблемой. Судя по описанию улучшение коснётся дуплексного канала в случае единовременной отправки сервисом сообщений куче клиентов.

Комментариев нет: