「GeckoFX」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
1行目: 1行目:
'''GeckoFX'''(読み:げっこーえふえっくす)とは、[[.NET Framework]]および[[Mono]]から[[Geckoエンジン]]を扱うための[[ラッパークラス]]である。
+
'''GeckoFX'''とは、[[Geckoエンジン]]を扱うための[[ラッパークラス]]である。大雑把に言って[[Firefox]]を[[C Sharp|C#]]で操るための[[ライブラリ]]と思ってほぼ間違いない。[[Linux]](Linux Mint 12)上の[[Mono]]とFirefoxの組み合わせでも問題なく動いている。
  
大雑把にいうと[[C Sharp|C#]][[Firefox]]を操るための[[ライブラリ]]と思ってほぼ間違いない。[[Linux]][[Linux Mint]] 12)上の[[Mono]][[Firefox]]の組み合わせでも問題なく動作している。
+
[[.NET]]純正の[[WebBrowserクラス]][[C Sharp|C#]]以前、[[Delphi]]/[[VCL]]の時代から腐っているので代用として使える。ただし、別途Firefox(に同梱される[[XPCOM]])の[[インストール]]が必要なので場合によっては配布方法などにおいて面倒なことになる。
  
== 概要 ==
+
2012年4月10日現在、Googleのウェブ検索において「geckofx」と検索すると、GeckoFX 1.xまで使われていた古いサイト(Googleコード)が上位表示され、現在の公式サイト(bitbucket)が上位表示されておらず、「古い情報しかない」「更新が止まってる」と誤認識してしまう恐れがあるので、他人に教えるときは注意すること。
[[.NET Framework]]には最初期からウェブブラウザを手軽に自作できる純正の[[WebBrowserクラス]]が用意されている。これは[[C Sharp|C#]]以前の[[Delphi]]と[[VCL]]の時代から存在している。ただ互換性を維持するためか、一切改善されることなく常に腐っており、実用には程遠い代物でもある。
 
 
 
その代用としてGeckoFXは有望である。またGeckoFXは一般的な[[ウェブブラウザ]]のみならず、[[JavaScript]]や[[CSS]]、[[Cookie]]の制御できるため[[HTML5]]に依存した[[ウェブサイト]]などを対して高精度に[[ウェブスクレイピング]]するなどの用途にも用いることができる。
 
 
 
ただしGeckoFXにも欠点があり、別途[[Firefox]](に同梱される[[XPCOM]])の[[インストール]]が必須であるため、場合によっては配布方法などにおいて面倒なことになる。なおXPCOMは単体でも配布されており、こちらを[[アプリ]]に同梱してしまう方法もある<ref>http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/</ref>。
 
 
 
== 注意 ==
 
2012年4月10日現在、[[Google]]のウェブ検索において「geckofx」と検索すると、GeckoFX 1.xまで使われていた古いサイト<ref>http://code.google.com/p/geckofx/</ref>([[Googleコード]])が上位表示され、現在の公式サイト<ref>https://bitbucket.org/geckofx/</ref>([[bitbucket]])が上位表示されておらず、「古い情報しかない」「更新が止まってる」と誤認識してしまう恐れがあるので、他人に教えるときは注意すること。
 
  
 
== 利用方法 ==
 
== 利用方法 ==
GeckoFXの利用には、別途[[Geckoエンジン]]を[[コンポーネント]]化した[[XPCOM]]([[Cross Platform Component Object Model]])が必要であり、利用時にはXPCOMのインストールパスを設定する。
+
GeckoFXの利用には、別途[[Geckoエンジン]]を[[コンポーネント]]化した[[XPCOM]]([[Cross Platform Component Object Model]])が必要であり、利用時にはXPCOMのインストールパスを設定する。XPCOMはMozilla公式サイトから単体で[[ダウンロード]]してきてもいいし、Mozilla Firefoxにも同梱されているのでFirefoxのインストールディレクトリを指定しても動く。
 
 
XPCOMはMozilla公式サイトから単体で[[ダウンロード]]<ref>http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/</ref>してきてもいいし、Mozilla Firefoxにも同梱されているのでFirefoxのインストールディレクトリを指定しても動く。同梱する場合は単品の方が確実であると思われる。
 
 
 
=== バージョン番号 ===
 
GeckoFX2.0までは独自のバージョン番号であったが、以降は最近は[[Firefox]]のメジャーバージョン番号と同一になっているので、[[XPCOM]]として用いる「Firefoxが10.x」ならば「GeckoFX10.x」を用いること。マイナーバージョンは気にしなくてよい。
 
 
 
また近年のFirefoxの[[ラピッドリリースサイクル]]の導入に伴い、GeckoFXも平行して物凄い勢いで[[フォーク]](バージョンアップ)しまくっている。FirefoxおよびGeckoFXの両方のインターフェイスなどもガンガン書き換えられているので、常に最新バージョンを用いればいいというものでもなく、基本的に開発開始時に用いたFirefoxとGeckoFXを拾ってくれば間違いない。
 
  
2012年6月26日現在まで使ってみた感じでは、Firefoxの自動アップデート後にGeckoFXを使ったアプリが壊滅したという事例があり、Firefox 10をベースとしたFirefox ESR版<ref>http://mozilla.jp/business/downloads/</ref>を使う、またはFirefoxの自動アップデートを無効化して使うのが望ましいように思われる。
+
== バージョン番号 ==
 +
GeckoFX2.0までは独自のバージョン番号であったが、以降は最近は[[Firefox]]のメジャーバージョン番号と同一になっているので、[[XPCOM]]として用いるFirefoxが10.xならばGeckoFX10.xを用いること。
  
=== x64での動作について ===
+
また近年のFirefoxの[[ラピッドアップデート]]に平行してGeckoFXも物凄い勢いで[[フォーク]](バージョンアップ)しまくっている。インターフェイスなどもガンガン書き換えられているので、常に最新バージョンを用いればいいというものでもなく、基本的に開発開始時に用いたFirefoxとGeckoFXを拾ってくれば間違いない。
[[Mozilla]]が配布している[[Gecko]]は[[x86]]専用でありGeckoFXも[[x86]]専用となっている。
 
 
 
[[Windows Server 2008 R2]]([[x64]])上で動いている[[ASP.NET Web API]]を使ったオレオレWeb API群に、URLを渡すとGeckoFXを用いて[[Webページ]]の[[スクリーンショット]]を撮るという[[プログラム]]を追加した際にこの点が問題となったので記載しておく。あまりに大雑把で強引な解決方法であり一般人にはオススメはしない。
 
 
 
# GeckoFXの[[ソースコード]]を[[ダウンロード]]してくる
 
# GeckoFXをターゲット「Any CPU」または「x64」に変更しビルドする
 
#* 面倒なので[[秀丸]]で[[slnファイル]]や[[csprojファイル]]を開いて「x86」という文字列を「AnyCPU」に一括置換である。これでも一応動いたがオススメはしない。ちゃんと1個1個設定しよう。
 
#* この状態でx86版のFirefoxを指定して動かすとDllImportで落ちる。
 
# [[Waterfox]](Firefoxの非公式x64バージョン)を[[ダウンロード]]し<ref>http://www.waterfoxproject.org/</ref>、[[インストール]]する
 
# Xpcom.Initializeメソッドの引数にWaterfoxのインストールディレクトリを指定する
 
#* 毎回フルパス指定は面倒なので以下のようにして「ProgramFile/Waterfox」を探させるようにした。これまたオススメしない。
 
#** Geckofx-Coreプロジェクトの
 
#** XULRunnerLocatorクラスの
 
#** GetXULRunnerLocationWindowsメソッドの
 
#** folderSearch変数(string配列)に「Waterfox」という文字列を追加する
 
  
 
== 使用例 ==
 
== 使用例 ==
  
 
== 関連項目 ==
 
== 関連項目 ==
* [[WebBrowser クラス (System.Windows.Forms)]]
 
* [[gluezilla]] - Monoプロジェクトにより開発が行われているGeckoベースのブラウザーコンポーネント。
 
* [[WebKit Sharp|WebKit#]] - Monoプロジェクトにより開発が行われているWebKitベースのブラウザーコンポーネント。
 
* [[WPF Chromium WebBrowser control]] - [[WebKit]]を[[DirectX]]特化型に魔改造した[[Awesomium]]の[[C Sharp|C#]]向けラッパークラス。
 
* [[C Sharp|C#]]
 
* [[.NET Framework]]
 
 
 
== 参考文献 ==
 
== 参考文献 ==
{{reflist}}
+
<references/>
 
 
 
== 外部リンク ==
 
== 外部リンク ==
; Firefox
+
* http://mozilla.jp/firefox/
* http://mozilla.jp/firefox/ - Firefox 通常版
+
* https://bitbucket.org/geckofx
* http://mozilla.jp/business/downloads/ - Firefox ESR版
+
* https://bitbucket.org/geckofx/geckofx-11.0/overview
; GeckoFX
+
* https://bitbucket.org/geckofx/geckofx-10.0/overview
* https://bitbucket.org/geckofx/
 
  
 
{{stub}}
 
{{stub}}

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: