За життя

Как Microsoft очередной раз испортил хорошую идею

Есть у Microsoft'а такая платформа под названием Silverlight. Это альтернатива Adobe Flash, намного более мощная из-за того, что там используется .NET Framework.

Есть в мире такая сеть, Интернет называется. И так уж повелось, что все больше сервисов и программных решений ориентируются на взаимодействие пользователя с Internet, а именно с удаленными серверами.

Есть такой анекдот, когда милиционеры вставляли кубик в круглое отверстие. Очень сильные, да.

Вот и Microsoft поступила точно так же. Они создали платформу для разработки приложений и запуска их прямо в браузере. Предполагается, что приложения будут общаться с сетью. Предполагается всеми, кроме Microsoft, а точнее, каких-то криворуких индусов, которых компания нанимает (Microsoft у нас в клиентах, так что я знаю, кого они нанимают).

Приложение на Silverlight может безпрепятственно сходить по HTTP к тому серверу, с которого оно было закачано. А дальше начинается цирк. Чтобы сходить еще куда-нибудь (там есть нюансы, но вкратце так), Silverlight engine должен сначала скачать с порта 943 (вообще-то это protected port number, туда просто так не повесишься в нормальных системах) специальный файл policy. Неплохая идея, только вот она автоматически приводит к тому, что бОльшая часть интернет-серверов станет недоступна для Silverlight-приложений, т.к. их админы ни сном ни духом про Silverlight, а если они даже и слышали о нем, то это еще нужно сначала написать и поставить приложение, которое будет принимать запрос и тдавать указанный policy файл.

Но и это еще не все. Если вы даже укатали вашего хостера на то, чтобы он разрешил вашему Silverlight приложению, например, отправлять почту, -- обломитесь. Silverlight позволяет ходить только на порты с 4502 по 4534. Т.е. никакой почты (ни туда, ни обратно), никаких FTP и SFTP, никаких XMPP клиентов или P2P клиентов.

Т.е. фактически приложение загоняется обратно в рамки своего сервера. Так что, похоже, нужно писать прокси, который будет запускаться на сервере, для поддержки Silverlight'а.