Я занимаюсь разработкой MS-технологий дольше, чем хочу вспомнить на данном этапе. Когда появился .NET, я думал, что они бьют по голове, и с каждой итерацией и версией я думал, что их технологии становятся все сильнее и сильнее, и с нетерпением ждал каждого выпуска.
Однако, поскольку мне пришлось работать с WCF в течение последнего года, я должен сказать, что мне очень трудно работать с этой технологией и понять ее. Поначалу это довольно привлекательно, но когда вы начинаете разбираться в этом, конфигурация становится кошмаром, когда приходится переопределять поведение для размеров сообщений, количества объектов, содержащихся в сообщениях, сложности модели безопасности, избавления от прокси при сбое и, наконец возвращаясь к определению интерфейсов в коде, а не в XML.
Это просто не работает из коробки, и я думаю, что должно. Мы обнаружили все вышеперечисленные проблемы во время тестирования самих себя или других случаев, когда наши продукты отсутствовали на сайте.
Я понимаю причину всего этого, но наверняка они могли бы придумать более простой механизм реализации.
Полагаю, я спрашиваю:
- Я смотрю на WCF неправильно?
- Какие сильные стороны у него над
альтернативы?
- При каких обстоятельствах я должен
выбрать использовать WCF?
ОК, ребята, извините за задержку с ответом, работа иногда имеет неприятную привычку мешать:)
Некоторые уточнения
Моя главная точка рисования с WCF, я полагаю, падает в следующих областях
В то время как это работает из коробки, у вас осталось несколько серьезных сюрпризов под капотом. Как указано выше, основные вещи ограничены, пока они не будут переопределены
- Размер строки, которую можно передать, не может быть больше 8K
- Количество объектов, которые могут быть переданы в одном сообщении, ограничено
- Прокси не восстанавливаются автоматически после сбоев
- Количество конфигурации, пока оно есть, - это хорошо, но все это понимать и что использовать, что и при каких обстоятельствах может быть трудно понять. Особенно при развертывании программного обеспечения на сайте с различными требованиями к безопасности и т. Д. Говоря о конфигурации, нам приходилось скрывать многие из нас в серверной базе данных, потому что специалисты по безопасности и сети на месте пытались что-то изменить в файлах конфигурации без понимания это.
- Сохранение конфигурации интерфейсов в коде, а не переход к явно заданным интерфейсам в XML, которые могут быть опубликованы и использованы почти всем. Я знаю, что мы можем экспортировать XML из сборки, но он полон мусора, и некоторые генераторы кода задыхаются от него.
Я знаю, что мир движется, я много раз за последние (уже 22 года я развивался) и активно использую WCF, так что не поймите меня неправильно, я понимаю, что это для и куда оно движется.
Я просто думаю, что должны быть доступны более простые параметры конфигурации / развертывания, более простая настройка и лучшее управление конфигурацией (возможно, поставщик конфигурации SQL, а не только файлы web.config / app.config).