Каковы планы Microsoft в отношении браузерных приложений? Silverlight, ClickOnce, ActiveX, dll

Итак, вот я, впервые разработчик 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.

Так разве то, что я хочу, просто недостижимо? Могу ли я не иметь полного доступа к файловой системе с помощью перетаскивания в приложении, которое запускается в браузере, без того, чтобы пользователь перепрыгивал через обручи, чтобы запустить его? Я пытаюсь найти вескую причину проблем, с которыми сталкиваюсь, чтобы объяснить своим коллегам.


person Shizam    schedule 20.08.2009    source источник
comment
Вы можете сгенерировать ActiveX из любой версии Visual Studio - это не устаревший сценарий - вам просто нужно использовать C ++ (и либо MFC, либо ATL) для этого. Что ж, теоретически вы можете сделать это на C # или VB, но, вероятно, это будет больше проблем, чем того стоит.   -  person Pavel Minaev    schedule 21.08.2009
comment
Как бы вы сделали это на C # в теории?   -  person Shizam    schedule 21.08.2009
comment
И если это сделано на C ++, как вы его развернете?   -  person Shizam    schedule 21.08.2009


Ответы (2)


Похоже, вам нужно приложение для браузера WPF (XBAP). Эти приложения работают в браузере, но имеют полную поддержку .NET Framework и WPF (и, возможно, даже полное доверие, если это предоставлено пользователем). Единственное, что действительно отвлекает от этого, - это то, что они работают только в Windows (очевидно) и только в IE7 / FireFox (с плагином).

Боковое примечание: приложения Silverlight 3 фактически можно запускать с рабочего стола без необходимости в окне браузера.

person Noldorin    schedule 20.08.2009
comment
Интересно, я предполагаю, что причина, по которой я не рассматривал это раньше, заключается в том, что наше приложение должно быть совместимо с .Net 2.0, но если я не могу решить эту проблему доверия / установки, то, возможно, я смогу изменить спецификацию на .Net 3.0. Итак, с XBAP запрос доверия похож на запрос доверия Java, он просто запрашивает у пользователя? Я займусь этим. - person Shizam; 21.08.2009
comment
@Shizam: Да, я считаю, что доверие работает именно так. Однако по умолчанию XBAP работают в режиме частичного доверия (если я правильно помню). Определенно то, что стоит проверить. Когда .NET 4.0 приближается к выпуску, я думаю, вы согласны с тем, что вам все еще не следует использовать .NET 2.0. ;) - person Noldorin; 21.08.2009
comment
Читая документ на XBAP, он постоянно говорит: «запущен из IE», это звучит как стратегия развертывания ClickOnce, запускается ли XBAP в браузере или он «запускается» и открывается в новом окне? Копаем больше. - person Shizam; 21.08.2009
comment
XBAP может делать и то, и другое, в зависимости от того, как вы настраиваете свое приложение. По умолчанию запускается в браузере. Чтобы увидеть, как это выглядит, перейдите сюда: xceed.com/Grid_WPF_Demo.html - это приложение XBAP. . - person Pavel Minaev; 21.08.2009
comment
@Noldorin. re: Нельзя по-прежнему использовать .NET 2.0, ха, если бы у Vista была более высокая насыщенность на этом этапе, я бы согласился, но поскольку так много людей все еще используют XP sp2, можно только предположить, что значительная часть пользовательской базы отсутствует там максимум на .NET 2.0 :) Я попытался найти данные, показывающие насыщение версии .Net, но ничего не смог найти, если бы только Google Analytics давал эти данные ... - person Shizam; 21.08.2009
comment
@Shizam: Вы абсолютно правы ... У меня просто никогда не было проблемы с необходимостью распространения на массовый рынок, поэтому установка .NET 3.0 / 3.5 всегда была вариантом. Жаль, что MS не включает обновления версии .NET в Центр обновления Windows. :П - person Noldorin; 21.08.2009
comment
Что ж, я должен сказать, что XBAP выглядят как решение (при условии, что совместимость с .Net 2.0 не является проблемой), поэтому я завершу этот вопрос. Все еще хотелось бы иметь хорошее решение 2.0. - person Shizam; 21.08.2009
comment
Обратите внимание, что многие люди, все еще использующие XP, не имеют никакого отношения к .NET 2.0 - поскольку XP (и все ее SP) не поставляется с предустановленной какой-либо версией .NET. Win2003 поставляется с .NET 1.1; Vista поставлялась с 3.0; Win7 поставляется с 3.5 SP1. - person Pavel Minaev; 21.08.2009
comment
Ой, вы правы, я думал, что XP sp2 идет с .NET 2.0, но это не так. Блин. - person Shizam; 22.08.2009
comment
Silverlight 3 вне браузера не даст вам модного перетаскивания, fyi; но +1 к этому ответу - person Jeff Wilcox; 23.08.2009

Почему вы чувствуете необходимость ограничиваться технологиями Microsoft? Я большой поклонник Microsoft / .NET, но я также верю в то, что могу использовать правильный инструмент для работы. Если Java работает, то используйте ее. Если Flash работает, то используйте его.

person David Brown    schedule 20.08.2009
comment
Я создал наш загрузчик Java, и он отлично работает в 100% случаев для всех, кроме пользователей Windows, особенно пользователей IE. Оказывается, не у каждого пользователя Windows установлена ​​Java, поэтому им нужно установить ее, что является небольшой проблемой, но, по крайней мере, ее можно обнаружить. Более серьезная проблема - это пользователи, у которых установлена ​​последняя версия java, но по какой-либо причине она повреждена, что, как оказалось, является частой проблемой. Удаление и повторная установка даже той же самой версии java решит проблему. Эти проблемы и то, что java не использует собственный файловый браузер, подтолкнули нас к .Net. - person Shizam; 21.08.2009
comment
Ах хорошо. Ну, поскольку я .NET-программист, я не знал об этих проблемах. Но спасибо, что объяснили свою позицию. :) - person David Brown; 21.08.2009
comment
Минус один на Яву. Компонент средства обновления запрашивает слишком часто и даже помещает что-то в системный трей. Возвращает меня в 98-й;) - person James Cadd; 21.08.2009