Итак, вот я, впервые разработчик Windows (сделал java swing, iphone, flash / flex), и меня смущает, какую технологию Microsoft хочет, чтобы я использовал в приложениях, богатых браузером. Приложение, которое я разрабатываю, представляет собой загрузчик файлов, который поддерживает перетаскивание из файловой системы, кажется простым, я уже реализовал это уже на Java, и я подумал, что было бы еще проще использовать инструменты Microsoft, но какую платформу развертывания использовать ...
Silverlight: отлично подходит для видео, легких приложений, множества элементов управления и виджетов, работает в браузере, как Flash, потрясающе. Нет доступа к файловой системе с перетаскиванием, бу.
ClickOnce: вы можете развернуть полноценное приложение Windows со всеми навороченными функциями, однако оно не будет работать внутри браузера даже для развертывания только через Интернет, оно открывается в новом окне, бу .
В библиотеках DLL браузера: они работают точно так же, как старые приложения ActiveX, и это здорово, за исключением того, что пользователь может запускать их только путем добавления сайта в качестве надежного сайта через панель безопасности и изменения их безопасности .Net с помощью caspol, что не является приемлемая стратегия развертывания. Вы должны иметь возможность просто побуждать пользователя доверять, как в приложении Java.
ActiveX: делает почти все, что может полноценное приложение Windows, включая полный доступ к файловой системе, запускается в браузере, отлично. По какой-то причине это устаревшая технология, о которой никто больше не говорит и не использует, похоже, что вы можете генерировать файлы ActiveX cab / ocx только из действительно старых версий VS (2003) или VB6.
Так разве то, что я хочу, просто недостижимо? Могу ли я не иметь полного доступа к файловой системе с помощью перетаскивания в приложении, которое запускается в браузере, без того, чтобы пользователь перепрыгивал через обручи, чтобы запустить его? Я пытаюсь найти вескую причину проблем, с которыми сталкиваюсь, чтобы объяснить своим коллегам.