The Common Opensource Application Publishing Platform (CoApp)は、LinuxやMac OSなど、他のプラットフォーム上のオープンソースプロジェクトのように、コンパイル、ビルド、配置の機能を提供するWindows向けのパッケージ管理システムを提供する予定である。
なぜ、Windows以外のオープンソースアプリケーションをマイクロソフトのOSに移植するのか?直接的な理由は、アプリケーションが新しい利用者層に提供されることにより、プロジェクトを推進する手助けをする。ことができるということである。それ以外では、WindowsとLinux/UX/Macのコミュニティの架け橋になり、それらすべてに対する利益になるということである。
UXからWindowsにオープンソースプロジェクトを移植する際の問題は、異なるファイルシステム、コマンドラインインターフェイス、基本的なAPI、ユーザインターフェイス、提供されているライブラリなどが異なることである。Cygwinは、UXに似た環境をWindowsに提供するが、アプリケーションをWindows用に構築した場合に得られるすべてのベネフィットを享受することができない。正しい解決方法は、ソースコードから、パッケージ化され、保存され、他のネイティブアプリケーションのようにWindows上で実行するバイナリを生成するほとんどのプロセスを自動化するツールを作成することである。
CoAppプロジェクトは、マイクロソフトに雇われて、フルタイムで作業を行うGarrett Serack氏によって始められているが、CoAppは、レドモンドの巨人に依存してはいない。プロジェクトの創始者は、次のように言っている。
マイクロソフトの人たちは、このプロジェクトに価値を認めました。-そして、親切にもフルタイムの仕事を申し出てきました。マイクロソフトは、私の取り組みを100%サポートしてくれています。設計は、完全に私自身とCoAppコミュニティの作業です。社内の誰からも診断を受ける必要はありません。これは、本当に夢のような仕事です。—このプロジェクトで働くことで、私はこれをオープンソースで作成することに情熱を燃やしています。
Serack氏は、Windows Installer (MSI)とマイクロソフトがDLL地獄を解決するために作ったサイドバイサイド技術のWinSXSを使用するつもりである。CoAppが実装するべきのいくつかの機能は、以下の通りである。
- 苦労や競合なしで64ビットと32ビットシステムをサポートする
- 論理的で一貫した場所へのバイナリ、ライブラリ、ヘッダファイルの配置
- 参加と利用を容易にするために、複数のプロジェクトでのコンポーネントの共有を促進する
- ライブラリとアプリケーションの両方へのアップグレードとパッチ当てを可能にする
- Windows開発者に友好的であること。すでに存在している優れたIDEの優位性を利用して‘make‘によるビルドを強制しない
- Windowsの管理者(admin)にも友好的であること。 Windows上にオープンソースアプリケーションを置くのは、オープンソース開発者である必要はない
CoAppの最も重要な機能は、依存性を取り扱うツールを提供することかもしれない。CoAppは、ほとんどの構成の問題を解決して、Windows上で実行する*.msiパッケージを構築するために、すべての依存しているコードとそれらを関連づけるヘッダファイルをダウンロードできるようにするべきである。
CoAppのチームは、WAMP:Apache、PHP、Pythonの最初のエレメントをパッケージ化することからはじめて、それらを学んで行くことになる。CoAppは早期段階として、プロジェクトWebサイトとWikiを持っている。