読者の皆様へ:ノイズを減らすための一連の機能を開発しました。関心のあるトピックについて電子メールとWeb通知を受け取ることができます。新機能の詳細をご覧ください。
Monoは長い間、Linux、Mac、Windows用のWindows.Formsスタックを純粋なC#で実装してきた。技術動向が変化するにつれて、MonoのWindows.Formsプラットフォームは積極的には開発されていないが、サードパーティのさまざまなライブラリやアプリケーションに共通の依存関係が残っており、WinFormsアプリケーションを直接書くことよりも、そのサポートの方が重要になっている。Monoがデフォルトで64ビットプラットフォームに切り替わると、MacOS上のWindows.Formsのサポートを継続する上での問題が発生した。理由は、そのサポートがCarbonの32ビット基盤上に構築されているためである。
このギャップに対処するために、MonoのMiguel de Icaza氏は最近、MacOSのサポートをどのようにモダンにできるかを検討した。彼の初期の選択は、64ビット版のCarbonが提供するAPIを使用するか、Xamarin.Macを使っているCocoaの上に新しいバックエンドを構築することであった。64ビットCarbonについての最初の調査で、Windows.Formsに必要なAPIが文書化されておらず、64ビット対応かどうかを見極めるのがが難しいことがわかった。そのため、de Icaza氏はXamarin.Macの実験を始めた。
幸いにも、de Icaza氏は自身の開発を公にしていたため、Filip Navara氏はde Icaza氏の活動を知るきっかけとなった。Navara氏はde Iacaza氏に連絡を取り、de Iacaza氏のプロジェクトの1つがこの新しい試みに役立つかもしれないと言った。Navara氏は既存のCocoaバックエンドを利用できるようにした。これによって、CocoaバックエンドをMonoに適切に組み込むためにも利用することができる。Navara氏のコードはMono SWFから作成されており、Mono用のCocoaバックエンドを構築した。
de Icaza氏はその後、このコードをMacOS上のMonoのWindows.Formsの新しい64ビット実装の基礎として使用することに決めた。コードレビュー時に、de Icaza氏はいくつかのコントロールに対してネイティブのAppKitコントロールを使用していることに気付いた。また、MonoがもともとiOSユーザ向けに開発したSystem.Drawingのカスタムバージョンも使用している。
Rate this Article
- Editor Review
- Chief Editor Action