« Silverlight5アプリケーションの作り方(2) | トップページ | Windows8の使い方(その1) »

Silverlight5アプリケーションの作り方(3)

さて。

SilverlightアプリケーションはXAMLベースだから、ほぼWPFアプリケーションなんでしょ。と、思いきや、これが結構違うということが判ってきた。.NET Frameworkと.NET Framework for Silverlightの差が、厳然たる差異として立ちはだかっているのだ。

今回は、ActiveXコントロールを使ってみたいと思う。ActiveXなど、.NET以前の20世紀のテクノロジーであるが、いまだにActiveXコントロールとして作った資産が世界中にあるのだから仕方ない。ソースが手元にあればC#に書き直すという方法もあるが、メンドクサイのである。Microsoft社純正の技術であるSilverlightから簡単にActiveXを呼び出せる方法があるはずだ。

Windows Formsの時代(.NET1.0~2.0)は、VisualStudioにtlbimp.exeというツールがあり、ActiveXコントロールのラッパークラス(AxHostクラスを継承したクラス)を自動的に生成でき、それをWindowsFormに貼り付けることで利用できた。WPF(.NET 3.0以降)では、WindowsFormコントロールを貼り付けるためのラッパー的クラス(WindowsFormsHostクラス)があり、それをWPFのGridに貼ることで、「ActiveXコントロール→AxHost→WindowsFormsHost→XAML」という流れで連携できる。詳しくはコチラ

SilverlightもXAMLベースだから、WPFアプリと同じ方法でイケるのでは。。。そんな希望は、.NET Framework for SilverlightにWindowsFormsHostクラスが無いという事実によって打ち砕かれた…

Windowsformshost
↑"WindowsFormsIntegration"アセンブリが無くて参照追加できず、狼狽するのみ。。。

とはいえ。ActiveXコントロールはもともとHTMLページに貼り付けて使えるものだから、最悪そうすればなんとかなるんです。「ActiveXコントロール→HTML→JScript→SilverlightのXAML」という連携でね。うん、確かに動くけど、これも結構メンドクサイぞ。。。

…やりたいことはできるけど、イマイチしっくりこないよな~。ActiveXなんか早く捨てろってコト。。。?大事なロジックならC#に書き直すか、C++/CLIに書き直した方がいいかもね。

|

« Silverlight5アプリケーションの作り方(2) | トップページ | Windows8の使い方(その1) »

Silverlight」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/543635/55417826

この記事へのトラックバック一覧です: Silverlight5アプリケーションの作り方(3):

« Silverlight5アプリケーションの作り方(2) | トップページ | Windows8の使い方(その1) »