Я использовал Silverlight в качестве внешнего интерфейса для коммерческого приложения для медицинской промышленности. Никаких серьезных ловушек, просто убедитесь, что вы создаете потоки для выполнения трудоемкой работы, чтобы пользовательский интерфейс не зависал, и убедитесь, что у вас есть файл clientaccesspolicy.xml, если вы обращаетесь к веб-службам.
Две «бизнес» проблемы, решаемые в Silverlight 3, - это отсутствие обработки ошибок (частично разрешенных) и поддержки безопасности на основе сообщений. Решение этих проблем очень важно для Silverlight в его стремлении продать себя как готовую к бизнесу технологию. Мое мнение, что это достаточно хорошо.
В SL2 было два ограничения, которые препятствовали обработке ошибок. Во-первых, исключения сервера поступают в виде кода ответа 500, который плагины браузера не могут обработать. Во-вторых, в SL2 нет поддержки исключений. SL3 решает вторую проблему, добавляя классы ExceptionDetail и FaultException. Первая проблема все еще существует. Код ответа 500 запрещает Silverlight доступ к содержимому ответа, но в качестве обходного пути вы можете отправить обратно код ответа 200 вместо 500.
SL2 поддерживает только безопасность на основе браузера. Приложение, разработанное с использованием этой модели безопасности, может быть уязвимо для попытки мошенничества между доменами со стороны вредоносных приложений с доступом к кэшированным учетным данным браузера. Безопасность на основе сообщений решает эту проблему путем включения учетных данных в каждое сообщение.