Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

SilverLight 4.0 + COM API. Breaking the habit...[статья]

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> SilverLight 4.0 + COM API. Breaking the habit...[статья]
Имя
Сообщение << Старые топики   Новые топики >>
SilverLight 4.0 + COM API. Breaking the habit...[статья] - 2011-11-11 17:57:13.303333   
dab00

Сообщений: 13
Оценки: 0
Присоединился: 2011-01-23 17:47:06.350000
Как известно, из SilverLight-приложения достучаться до файловой системы непросто, что вполне логично с точки зрения безопасности. Нет, ну добраться до файла в каталоге "Мои документы" - нет проблем, в ином месте - приходится изобретать велосипед. В этой статье я опишу устройство подобного велосипеда.



На днях писал одно SilverLight-приложение, в котором было необходимо при создании в базе данных новой записи создавать на файл-сервере каталог с соответствующим названием, добавлять/удалять файлы в/из каталог(а) и пасти информацию обо всех файлах, находящихся в целевом каталоге. Скажем, что-то отдаленно напоминающее систему управления версиями.
И вот когда, наконец, убив несколько дней на разработку я приступил к реализации функционала работы с файловой системой… сначала мне показалось, что я выбрал не ту технологию. Даже всерьез рассматривал вариант переноса пользовательских каталогов "Мои документы" на сервер - куда деваться - неужели столько времени потрачено впустую…

А ларчик просто открывался - на помощь пришла старая добрая технология COM.
Достаточно было импортировать в проект пространство имен System.Runtime.InteropServices.Automation, дальше - песня.

Хочешь - FileSystemObject:
Dim fso As Object = AutomationFactory.CreateObject("sсriрting.FileSystemObject")

Хочешь - Shell.Application:
Dim sh As Object = AutomationFactory.CreateObject("Shell.Application")

Хочешь WshShell:
Dim wshShell As Object = AutomationFactory.CreateObject("Wsсriрt.Shell")

Со всеми вытекающими свойствами и методами. Просто праздник какой-то :).

На всякий случай можно проверить, как там дышит AutomationFactory:
If AutomationFactory.IsAvailable Then

И дело в шляпе. Easy peasy lemon squeezy :). Хорошо что приложение было внебраузерным - если бы такие фокусы прокатили в браузере, разработчиков мелкомягких можно было бы смело расстрелять раз несколько.
В общем, как добрался я до COM API, отпустило меня :). Такая вот история.

P.S. В Silverlight 5 можно обойтись и без "велосипеда". Правда в настоящий момент (11.11.11) доступна только RC-версия.
Post #: 1
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> SilverLight 4.0 + COM API. Breaking the habit...[статья]







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.