BT

C#をJavaScriptへ変換するDuoCode

| 作者: Sergio De Simone フォローする 12 人のフォロワー , 翻訳者 徳武 聡 フォローする 0 人のフォロワー 投稿日 2015年2月22日. 推定読書時間: 3 分 |

原文(投稿日:2015/02/03)へのリンク

DuoCodeはC#をJavaScriptへ変換するコンパイラで、開発者がHTML5アプリケーションをC#と.NET frameworkを使い、Visual Studioで開発できるようにする。InfoQはDuoCodeの開発者にインタビューを行った。

DuoCodeは多くのC#の特徴をサポートする。強い型付け、クラスベースの継承、リフレクション、ジェネリクス、ラムダ関数、そしてLinqだ。また、DuoCodeが下記も提供するつもりだ。

  • オリジナルのC#のコードをデバックできるようにする: DuoCodeはソースマッピングを行い、ブラウザまたはDuoCodeでオリジナルのC#のコードをデバッグできるようにする。

  • 強く型付けされたDOMとWebGL: これは次のサンプルコードを参照。

    using static DuoCode.Dom
    string userAgent = navigator.userAgent
    HTMLScriptElement script = (HTMLScriptElement)document.getElementById(scriptId);
    ...
    WebGLRenderingContext gl = canvas.getContext("webgl");
    gl.bindBuffer(GL.ARRAY_BUFFER, bCubeTextureCoords);
    gl.vertexAttribPointer(aTextureCoord, 2, GL.FLOAT, false, 0, 0);
    gl.activeTexture(GL.TEXTURE0);
    gl.bindTexture(GL.TEXTURE_2D, texture);
    gl.uniform1(uSampler, 0);
    
  • コンパイルスピード: DuoCodeによれば、"ほとんどの場合、標準的なC#のコンパイルよりも速い"。

  • 継続的統合のサポート: DuoCodeによれば、MSBuildと完全に統合され、MSBuildのタスクとして、あるいはコマンドラインのツールとして実行できる。

InfoQは開発者のStav Harel氏に話を聞いた。

C#をJavaScriptへ変換することが利点になるようなケースをいくつか教えてください。どのような顧客を想定していますか。

C#をJavaScriptへコンパイルするのは、JavaScript-HTML5ウェブアプリケーションの開発で大きな利点があります。C#、Visual Studio、ソースマッピングの便利さを享受しながら、開発ができるからです。

例えば、WebGLを使ったゲーム開発、NodeJSを使ったサーバサイド開発、Cordovaを使ったモバイルアプリケーションの開発などで威力を発揮するでしょう。

さらに、C#の資産が既にある企業にとっては完璧なソリューションです。C#の資産を再利用してJavaScriptのプロジェクトを効率的に押し進めることができるからです。

Roslynの使い方について少し詳しく教えてください。とのような利点があるのでしょうか。

DuoCodeはRoslynコンパイラを使ってC#を"理解"します。Roslynはコードの解析、構文木(AST)の生成、文脈の分析を行います。その後、DuoCodeが引き継ぎ、JavaScriptのコード(とソースマッピング)を生成します。C#の既存の特徴は維持します。

Roslynへの信頼はとても重要です。これによって、DuoCodeはC# 6.0やVisual Studio 2015といった最新の技術を維持できます。

C#をJavaScriptへ変換する仕組みはすでにいくつかあります。DuoCodeはどの点でユニークなのですか。

C#をJavaScriptへ変換するコンパイラは数年前から登場しています。しかし、それらには明確な欠点があります。

C#のサポートが部分的なのです。既存のJSライブラリとの互換性も非効率です。可読性のないコードを生成します。そして、C#でデバッグできません。

既存のソリューションはすべて古いコンパイラに依存しており、Visual Studio 2015の新しい機能には対応していません。

DuoCodeは現在、非公開ベータ版プログラムを実施している。参加するには、DuoCodeのウェブサイトからリクエストする必要がある。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT