2013年10月14日
川俣晶の縁側ソフトウェアその他開発日誌 total 2618 count

TypeScriptとC#のクラスを生成するSimple TypeScript and C# Class Generator

Written By: 川俣 晶連絡先

 簡単なものしか作る気が無かったので半日で終わらせるつもりが、何日も掛かってしまったけれど、やっとCodeplexでPublishできた。(Apache 2.0ライセンスのOSSになっている)

Simple TypeScript and C# Class Generator

説明 §

 要するにGUIでシンプルなクラスの設定を作って、生成ボタンを押すとC#とTypeSriptのソースを生成してくれるだけです。サーバ側のC#プロジェクトにC#のコードを入れておき、クライアント側にTypeSriptのコードを入れておくと、JSONでデータをサーバからクライアントに送れます。

 VS2013のASP.NETのWeb APIプロジェクトでの使用を想定していて、APIのコントローラーでオブジェクトを返すとそれがJSONシリアライズされて飛んでいきます。

 クライアント側はそれを受け取ると、そのまま同じクラスのTypeScript定義の変数に入れることができます。

 詳しい説明はCodeplexのサイトの表紙に書いておきました。

 実際に転送するサンプルソースはCodeplexのソースツリーの一部にあります。

解説あるいはぼやき §

 あまりにもクラスの構造が違いすぎて、CS→TSもTS→CSも現実的ではなくて、JSONシリアライズによる情報交換用に限定してGUIで設定を作るツールにしてしまった。あまり綺麗ではないけどね。

 だからprivateなメンバーなどは作れません。メソッドも作れません(実装が別物になるから)。

 internalやprotectedなメンバーを作れない理由はちょっと違っていて、C#にはあるがTypeScriptには無いから。int型のメンバーを作れないのも同じで、TypeScript側に無いから。

 さて、時間が掛かった理由は3つ。

  1. 誤認バグ
  2. アップロードできないCodeplexのWiki
  3. めんどくさくなった

 誤認バグとは、バグだと思ってConnectにレポートしたら仕様だった件。説明されればなるほどその通り。

 アップロードできないCodeplexのWikiは、IE11やめてChromeにしたらすぐ通ったので、なんでや~という感じ。

 めんどくさくなったといのは、読んでその通り。

 たぶん、JavaScriptやめてTypeScriptに乗り換える人は多いと思いますが、C#やめてTypeScriptに乗り換える人は少ないと思うので、C#+TypeScriptのプロジェクトはそこそこ多くなりそう。だから、ちょっとはニーズがあるかな。

FAQ §

  • Q: なぜCopyまでで、ファイルを生成しないのですか? A:使われ方はいろいろだと思うし、チェックイン済みでロック状態のソースへの上書きは失敗するから
  • Q: XX機能がありません A:あらゆる機能には対応していないよ
  • Q: XX機能を追加してください A:ソース公開しているのだから自分で書き換えれば良いと思います
  • Q: 自分もコード書いてもっと強化したい A:連絡ください。Codeplex上で開発メンバーに追加することはできます
  • Q: 開発費用を寄付したい A:歓迎します