++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

Archive for 10月 2010

C# ユーザー会 第2回(テーマ: MVVM パターン)計画中

leave a comment »

C# ユーザー会 第2回 勉強会に関して、期日も近づいてきたとこですし、そろそろ詳細詰め始めているところだったりします。

  • 候補日
    • 11月6日、11月13日(わんくまと被るので避けたい)、11月27日、10月30日
  • 場所
    • OST(マイクロソフト新宿オフィス)会議室、もしくは、新宿近辺の部屋借りれるお店
  • 予算等
    • OSTの会議室を借りれそうなら無料 + 懇親会まで参加されるなら懇親会費
    • その他どこか借りる場合は店が決まり次第、公開します(おそらく、懇親会込みで3,000円~)
  • テーマ概要:

  • MVVM パターンとは
    • モデルを INotifyPropertyChenged とコマンドを前提としてラッピング
    • View に状態を残さないよう、ViewModel 側に追いやる → テストの切り分け
  • 必要ではあるけども、ViewModel 作るの、定型的な割にコード量が多く、大変
    • 自動生成?
      • T4? コードスニペット利用? DSL Tools?
    • 動的プロキシ?
  • ViewModel から View へのメッセージングはどうすべき?
    • 用途: ナビゲーション、ダイアログボックスの表示、ウィンドウ閉じるなど
    • 方法は?
広告

Written by ufcpp

2010年10月12日 at 08:39

WP7ローンチ、LightSpace、PRISM 4、等々

leave a comment »

Windows Phone 7

ということで、米国でローンチ イベント開催(さっきキーノート スピーチ終わったところ)。

さて、日本ではどうなりますかねぇ。諸事情合って公式発表一切ないわけですけども。なんか、ケータイ ショップの店員さんとかには「マイクロソフトは携帯電話撤退した」とか思われてるとかいないとか?出るのは出ますので!

ようやく、開発者向けの日本語サイトはできました。

Written by ufcpp

2010年10月11日 at 15:09

カテゴリー: .NET

Tagged with , ,

今日小耳にはさんだ話

leave a comment »

  • 「ベンダーロックは避けたいから Java で」というけども、「弊社は JVM の全機能を自前実装していて、全ての責任を負えます」というとものすごく受けがいい
    • ベンダーロックって何なんだっけ?
    • ↑ 結局、国産信仰かもね。国内大手にならロックされたい
  • Microsoft にはロックされたくないっていうけど、Oracle データベースはいいの?
    • 世界一の金持ち(だった)企業に金払いたくないという出る杭打つ思想?

Written by ufcpp

2010年10月9日 at 14:38

Azureロードマップ、XAML素材集、等々

leave a comment »

Written by ufcpp

2010年10月3日 at 15:37

カテゴリー: .NET

VB たん(魔法バージョン、あの子は都会に出て変わった)

with one comment

覚えてらっしゃるでしょうか、1か月前に上げた絵を。ということで、都会版。

m002

作画: Paese

  • 田舎の珍走団からバイクレーサーにクラスチェンジみたいな
  • 田舎版がほうきなのに対して、こっちは掃除機モチーフな魔法の杖

Written by ufcpp

2010年10月2日 at 15:16

カテゴリー: C#たん

Tagged with

言語設計

leave a comment »

言語設計者たちが考えること」などという本を買って呼んでいるわけですけども。Anders Hejlsberg のところを主に。この本を読みつつ、自分的に思うところなどをまとめてみる。

フレームワーク

ここ2・30年ほどを見て、言語は大して進化してない。進化してるのはフレームワーク。

属性、イテレーター ブロック、LINQ や dynamic を導入している C# を基準に見てすら、それ以上にフレームワーク側の進化の方がはるかに大きい。LINQ や dynamic も、言語上は薄い構文糖衣で、多くの部分をフレームワーク側に寄せている。

今は、言語、フレームワーク、開発ツールが切り離せない。

新言語

新しい機能が欲しいんなら既存の言語の拡張でいい。新しい言語を作りたいのはむしろ機能を削りたい時(危険だったり誤用を招く機能をなくしたい時)。

汎用言語の新機能は、汎用であるべき。LINQ はデータ アクセスという domain specific ではあるけど、拡張メソッド、匿名型など、汎用な細々とした機能の組み合わせで実現している。単純に言語内に SQL 埋め込むだけのような実装方法だったら決して採用されていない。

DSL

外部 DSL だと「特殊な文法の中で、式だけは C# のものを流用したい」って要件が多すぎてつらい。言語の9割方はありふれてて使いまわせる要件で、残りの1割程度に domain specific が詰まってる。

逆に、内部 DSLで 困るのは、制限を掛けたい時。機能が多すぎるのが煩雑さ・誤用を招くから機能制限したいけど、内部 DSL だと元の言語の機能フルに使えてしまう。

多分、必要なのは、既存言語を部分的に流用する機能。

ここ10年ほど注目浴び続けてる domain っていうと並列処理だけども、immutable がいいとか、状態を共有したくないとか色々ある。で、immutable って機能を足す方は簡単。問題は、mutable な既存機能をどう制限するか。(言語全体で制限するのはかえってまずい。GUI 部分みたいに本質的に mutable な部分はやっぱ mutable にやった方が。)

動的

動的言語の良さはメタプログラミング。でも、そのためだけに型の静的チェックをなくすのはあまりにもデメリットが大きすぎる。

注意: 動的実行・動的コード生成をしてても、型チェックだけは静的にできる。

Written by ufcpp

2010年10月2日 at 07:38