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

http://ufcpp.net/

Archive for 11月 2009

C# ユーザー会忘年会

leave a comment »

新宿、12月11日 20時半から。

詳細は ATND にて。

http://atnd.org/events/2317

Written by ufcpp

2009年11月26日 at 13:41

カテゴリー: 未分類

線形駆動車両

leave a comment »

リニアモーターカー

作画: Paese

C ルート通れるかどうかでもめてるアレのことは、「磁気浮上式リニア」とか「リニア新幹線」って言わないと F# たんに絡まれます。(絡んで欲しいという変態さんはお断り。)

up主の同僚にはこれでスイッチ入る人が結構な人数いる。

鉄輪式のリニアモーターカーなら約20年前から走ってるんですよねぇ。

Written by ufcpp

2009年11月25日 at 15:57

カテゴリー: C#たん

SQL Server Modeling

leave a comment »

PDC ネタの続き。Silverlight 4 の話だけであまりにも長くなったんで記事を改める。

コードネーム "Oslo" 改め、SQL Server Modeling。

名前に関して: 「モデリングプラットフォーム」の意図するところ

過度の期待をされないように、本来の立ち位置に沿った名前にしたって感じが。

元々 Olso の背景としては:

  • Sharepoint では SQL Server 上に独自のモデルを作ってうまくいっている
    • Dynamics でも同様
    • Windows Azure でも同様
    • System Center でも同様
  • でも、それぞれ個別のモデルでやっちゃってるが故に、連携で苦労する

ってのがあって、その問題の解決、要するに、ドメインモデル(データの格納先に SQL Server を利用)の共通プラットフォームを作りたいってのが旧 Oslo、現 SQL Server Modeling の意図するところ。(M よりも、Repository の辺りが本質?)

あと、SQL Server チームによく寄せられる意見として:

  • SQL Server を(専業の DB エンジニアじゃなくて)デベロッパーにもフレンドリーにして欲しい
  • データベースアプリ作るのに T-SQL に .NET 言語に XML にと、全然構造違う言語いっぱい触れたくない

ってのがある。なので、M の意図するところ、1つはC 系言語(C# とか)に慣れた人が違和感なく読めるデータベースアクセス言語だし、1つはより抽象度が高くて直感的にドメインモデリングができる言語。

以下、私見。

  • 「モデル(のデータ格納先)の共通プラットフォーム化」って意図には素直に賛同
    • そもそも、プラットフォームをきっちり作り上げるのは Microsoft のいいところだと思う
      • Windows だってそもそもヒットした理由は「Device Independent な(機器から独立した)ソフトウェア開発プラットフォーム」だったからで
      • .NET Framework はいろんな言語の相互運用をしやすくするための共通プラットフォームだし、DLR はその動的言語版
  • SQL からの解放&直感的なドメインモデリングってのはどうだろう
    • もちろんデベロッパーな自分としては歓迎なんだけど
    • 今でも、O/R マッパーとかはパフォーマンス的な問題で、最終的には SQL 書いてカリカリにチューニングしたりするわけで
      • M の進歩とともに解消する問題なのか(希望としては解消して欲しいけど)
    • 前世紀的なモデル駆動開発よりはだいぶ具体化したとは思うけど、それでも結構「先を見た技術」っぽいんで、いつこいつの時代が来るか
    • クラウド的には「リレーショナルやめて可能な限り Key-Value ペアで行こうよ」的な空気もあるんで、そっちとの折り合いどうなるんだろう?

言語作り

で、なまじ MGrammar(現 M Languages)がいい感じだったもんだから、言語好きーな人がたくさん集まってきちゃったと。まあ、僕もそっち方面の人ですけども。MGrammar を使って C++ のパースして遊んでたし。

  • いい加減、Yacc/Lex とか bison/flex を現代的に書き直したものが出てもいいんじゃないかな
    • TeX だって、昔は絶対他に置き換わらないってくらいの勢力だったのが、今や MS Word に押されちゃってるし
  • DLR が話題になってた時期だったのも重なって
    • DLR は、抽象構文木を作るところから先(コード生成とか動的ディスパッチとか)を担ってくれるもの
    • 抽象構文木作るところまで(字句解析、構文解析)は各自やってね
    • → M ってので構文解析できるらしいぞ!

ちなみに、MGrammar 改め M Languages は、今後もなくなることはないです。曰く、ドメインモデリングでも DSL は重要な要素の1つなので。

こっちも以下、私見。

  • SQL Server Modeling の本来の意図はわかるんで、あんまり強くは言わないけども
  • でも、単なる Yacc とかの置き換えとしての M Languages も欲しい
  • まあ、現状でもそっち方面に使えちゃいそうではあるんで、外法と知りつつやっちゃいそう

November CTP での変更点

前置きはこのくらいにして、今回の変更点。(注: M Languages 辺り以外は元々さらっとしか触れてないんであんまり更新点がつかめないで適当。)

  • 用語がいろいろ変更かかってる
    • Oslo → SQL Server Modeling
      • スタートメニューとかからは Oslo の名は消えたけど、実はまだ Program Files とかの名前に残ってるとか
    • 旧 MSchema → M Types: 型定義(OOP でいうクラス定義 & SQL でいう DB スキーマ定義)
    • 旧 MGraph → M Values: データインスタンスの定義(SQL でいうところの insert とか)
    • 旧 MGrammar → M Languages: テキスト形式の DSL 定義(要は任意形式のテキストから M Values を作るためのパーサー)
      • (Types, Values, Languages の3つはわかりやすくなってすっきりしたなぁ)
    • 旧 Repository → SQL Server Modeling Services: SQL Server にスキーマとかインスタンスとかの情報を収めておくための仕組み
      • データの格納先という意味でリポジトリって言葉は今後も使う
  • 全般
    • Visual Studio 2010 / .NET Framework 4 β2 のみのサポートになりました
    • 内部的なバージョン番号が 3.0 → 1.0 に
      • Oslo 3.0 から SQL Server Modeling 1.0 にってことかと
  • SQL Server Modeling Services (旧 Repository)
    • pre-defined なドメインがいくつか追加
      • ErrorInformation
    • 逆にいくつかは「サンプル扱い」として Base Domain Library から削除
      • Applications, Frameworks, Services
    • UML domain (System.UML2)色々修正
      • リポジトリ内のデータから UML を吐ける。他の UML ツールとの相互運用可能に
    • CLR domain
      • LoadAssembly.exe(CLR からメタデータを読み出してリポジトリに登録するツール)の挙動が変わったって
    • サンプルに PatternApplication っての追加

 

ちょっと時間厳しくなってきたんで続きは明日以降書く。

Written by ufcpp

2009年11月23日 at 14:58

カテゴリー: .NET

P・D・C! P・D・C!

leave a comment »

やっと落ち着いてPDCの動画見てみたり、関連情報たどってみたり中。今日、ちょっとずつメモ書き残す。

PDC内、あるいは、PDCに合わせて発表されたものっていうと、

  • Azureのアップデート、新機能
  • PinPoint(特にコード名"Dallas")
  • Silverlight 4
  • "Oslo"改め、SQL Server Modeling
  • Office 2010
  • IE 9

とかですか。

IE 9

軽いのから行こう。IE 9。

  • 申し訳程度に発表されただけな感じもするけども。
  • 発表された内容としては:
    • JavaScript の高速化
    • Direct 2Dベースのレンダリング

Office 2010 β

もう公式サイトの日本語化されてる

  • 一番の売りは共有がらみっぽい
    • 複数人で同時編集できたり
    • SkyDriveとかにも標準で保存できるようになったり
  • 機能面もちらほら修正されていはいる
    • Wordのナビゲーション、Excelのセル内データチャートとか
    • リボンUIが微妙に整理されてる
      • 個人設定もできるようになったって
  • どのグレードにもOneNoteが入った

Silverlight 4

↑この辺りの記事を荒訳していこうかと。()内は僕の注釈。

さて、それじゃあ、Silverlight 4の新機能について。かなり大量。覚悟して読まないといけない。

  • Visual Studio のツールサポートが充実
    • (WPF 並み!・・・とは行かないんですよねぇ。ちょっと触ってみた感じ、微妙なところがちらほら)
      • コントロールのドラッグ&ドロップ開発が可能に
        • なったものの、デザイン側でクリックしたところと同期してコード側のカーソル移動してもらえたりはしない
      • コードスニペットが WPF 用。propdp とか、微妙に修正必要
      • やっぱ Blend 覚えなきゃダメかなぁ
  • WCF がらみ
    • WCF RIA Serviceとかのテンプレートが標準で入るようになった
    • NetTcp バインディングに対応
      • TCP 接続で双方向通信できる
      • ただし、使えるポートは4502~4534だけ
  • 印刷 API
    • 最も要望多かったもの
    • 拡張性の高いモデルを採用
    • System.Windows.Printing.PrintDocument ってクラスを使うらしい
    • PrintPage イベントをハンドリングして、PrintPageEventArgs の PageVisual に任意の UIElement を入れる
  • 右クリック対応
    • 普通に MouseRightButtonUp と MouseRightButtonDown の2つのイベント追加
    • e.Handled = true すれば標準の右クリックメニュー出なくなる
    • (FlameworkElement.ContextMenu はないみたいなので、コンテキストメニューを出したければ自力で menu.Show)
    • (Flash みたいに標準のコンテキストメニューに MenuItem 足すのもなさそう)
  • マウスホイール対応
    • 同上、MouseWheel イベント追加
  • ウェブカメラ&マイク
    • System.Windows.Media の下に CaptureSource とか CaptureDevice とかが増えてる
    • CaptureSource クラスに VideoCaptureDevice と AudioCaptureDevice プロパティがあって、それぞれウェブカメラ、マイク
  • テキスト関連
    • TextTrimming
      • TextBlock に TextTrimming プロパティ追加(中身が表示しきれないときに … を表示するかどうかの設定)
    • アラビア語みたいな右から左に書く言語に対応
    • その他、ヘブライ語とかタイ語とか、30個の言語に新たに対応
  • コントロール関連
    • ViewBox 追加
    • RichTextArea コントロール追加
      • 編集可能なリッチテキストコントロール
    • DataGrid に機能改善あり
    • fluid インターフェース
      • ItemsControl に BeforeLoaded, Loaded, Unloaded 追加。項目の状態が変わったときの遷移アニメーションを入れたりできるように
    • 暗黙的なテーマ適用
      • 今まで、キーを指定して明示的にスタイルを適用しないといけなかったけど、4 では、TargetType 指定で全ての UI 要素にスタイルを適用できるように
  • ICommand と ButtonBase、Hyperlink
    • コマンドに対応したんで MVVM な開発が可能に
    • (Button と Hyperlink だけ。InputBinding とかはさすがにない)
    • (DependencyObject に OnPropertyChanged がなかったり、微妙にやっぱり WPF と変えなきゃいけないところあり)
  • Clipboard API
    • ちゃんとクロスプラットフォームなクリップボードアクセスが可能に
    • Clipboard クラスがある
      • (ただし、SetText と GetText のみ)
  • ネットワーク認証
    • ClientHttp ネットワークスタックを使う場合、NetworkCredential を指定可能に
  • PlayReady DRM が H.264 にも対応
  • デスクトップからのドラッグ&ドロップ
    • AllowDrop プロパティを設定しておくと、デスクトップや Explorer からのファイルドロップを受け付けるように
    • (Drop イベントの拾い方とかは WPF と同じっぽい)
    • (DataFormats は FileDrop しか対応してないっぽい)
  • バインディング関連
    • IDataErrorInfo に対応
      • データ検証用
      • IDataErrorInfo はプロパティ単位の検証になる
      • もう1個、Sivlerlight 4 で追加される INotifyDataErrorInfo ってのを使うことで、プロパティをまたがる検証が可能
    • DependencyObject バインディング
      • 今まで FrameworkElement しかバインディングできなかったのが、DependencyObject でも可能に
      • 例えば、RotateTransform.Angle とかがバインディング可能に
    • StringFormat, TargetNullValue, FallbackValue
      • いずれも WPF にはある Binding プロパティ
      • DateTime に対して StringFormat=’MM-dd-yyyy’ とか指定するとこの形式に沿ってデータを表示してくれる
      • バインドする値が null の時には TargetNullValue に設定した値が表示される
      • 値が正しく変換できなかった場合には FallbackValue の値が表示される
  • マルチタッチ
    • ジェスチャーを受けとれるように
    • (今まではローレベルな WM_TOUCH 相当のイベントしか受けれなかった)
  • ブラウザ外実行時
    • WebBrowser コントロール
      • Silverlight の中に HTML(Flash さえも)を表示できるように
      • (ブラウザ内実行時は WebBrowser コントロール内に「無効です」って表示される)
      • HtmlBrush も使える
        • (PDC 2日目基調講演でやってたみたいな、YouTube ページを動画再生したままジグソーパズル化したりできる)
    • "toast" (トースト焼き機からパンがポンと出てくるような)通知
      • NotificationWindow クラスを使う
    • オフライン時でも DRM 対応
    • ブラウザ外実行時のウィンドウ位置とかを設定可能に
  • Elevated(昇格権限) trust(信頼済み) applications
    • Visual Studio で、Silverlight のプロジェクトのプロパティに「Requre elevated trust when running outside the browser(ブラウザ外実行に昇格を要求する)」を設定
    • Out-of-Browser インストール時にセキュリティ警告が出るようになる
    • これをやっておくと、セキュリティ的な問題で普通の Out-of-Browser 実行ではできないことがいくつかできるようになる:
    • ローカルファイルアクセス
      • MyDocuments, MyMusic, MyPictures, MyVideos のみだけど、OpenFileDialog や SaveFileDialog を介さずに読み書き可能に
      • Environment.GetFolderPath でパスを取得(Mac OS X でも対応するユーザーフォルダーを取得可能)
    • 信頼済みアプリでは、クロスドメインポリシー(clientaccesspolicy.xml もしくは crossdomainxml)不要に
    • 信頼済みアプリでは、全画面表示しているときでもキーボード入力を拾えるように
    • COM とか呼んだり、他のアプリの機能を使えたり、USB 機器触れたり

その他:

  • Google Chrome をサポート
  • 動作が2倍高速に
  • 通常の .NET Framework 4 と Silverlight でライブラリを共有できるように

Auzre

PDC 初日のキーノートでほぼ情報出てた感じ?PDC 初日に書いた日記に、キーノートの日本語でのまとめ記事へのリンクもあるんでそれを参照するのが速そう。

あんまりきれいにまとまってる記事みつからないなぁ。↓くらい。

これも簡単に訳す。

  • Role の設定 UI
    • Visual Studio の Solution Explorer で各 Role のところをダブルクリックするだけで設定画面開ける
    • 設定画面をいろいろ改善
  • Role テンプレートの追加
    • ASP.NET MVC 2.0
    • F# Worker Role
    • WCF サービス Web Role
  • テーブル作成
    • Azure Table がないとき、自動的に作成してくれるようになった
  • Storage Client がサンプルじゃなくて、ちゃんとしてクオリティのライブラリに
    • (かなり変更多いとか。ほんとに今までのは単なるサンプルだったようで)
  • 新しい診断ライブラリ: .NET API を使ったログ記録と、サービスを通した診断情報の取得が可能に
  • Worker Role が input endpoint に対応
    • (どうも、聞きかじった話だと、これは Web Role ⇔ Worker Role 間の通信に使う Endpoint っぽい。Worker が外からの通信を直接受けれるわけではないとか)
  • 開発用シミュレーション環境の高品位化
  • 1つの Role に対する VM 数を設定可能に
    • 1, 2, 4, 8 個から選べる
  • ローカルストレージアクセスが可能に
  • 証明書管理

C#/VB の将来の方向性

あと、気になるところでは↓こんなのが。

まず、そんなに目新しくもない情報から:

  • C# 3.0 のころからずっと言ってることだけど、トレンドは:
    • Declative: 宣言的プログラミング
    • Dynamic: 動的処理
    • Conccurent: 同時実行
  • というトレンドに合わせて、LINQ とか C# 4.0 の dynamic とか Task Parallel Library の話が中心

で、そのさらに先(ほんとに実現するかどうかは現段階では不透明):

  • C# のコンパイラは C# で、VB のコンパイラは VB で書き直す(これはかなり本気)
    • 今までブラックボックスだった部分をオープンに
    • 字句解析、構文解析、コード生成とかを自由に使えるように
  • Agent 型の並列処理を模索(Erlang とか Go 言語で使われてるタイプの並列処理ね)
    • 出てきたデモでは yield キーワードで非同期実行を開始する構文が出てた
    • (これはせめてキーワード変えるべきだなぁ。C# じゃイテレーターに yield 使うから)
  • あと、immutability を扱う構文も追加したいけど、今のところ、4・5個試してみたものはあるけど、なかなかいい構文を思いついてないとか
    • 言語のあまりにも多くの部分に影響ですぎるとかで
    • (基本が mutable な言語で immutable を導入するのは大変そうよね)

その他

Written by ufcpp

2009年11月23日 at 04:32

カテゴリー: .NET

痛IDE、ドイツで人気!?

leave a comment »

ちょっと前に、初音玲さんがVisual Studio Galleryに痛IDEを登録していたわけですが。

なんか今日、衝撃のつぶやきが:

@msdnjp 【ダウンロード】 ItaStartPage (VS Gallery) – http://j.mp/4pCBYu …(ドイツで人気でした)

ドイツもか!

フランスがオタ国家なのは割と身に染みて感じてるんですけどねぇ、コミケとか闘劇とか行くと会場内で必ずフランス語が聞こえてくるんで。

Written by ufcpp

2009年11月23日 at 04:15

カテゴリー: .NET

PDC 2日目、Silverlight 4

leave a comment »

昨日は mono meeting から帰ったら結構いい時間になってて、気が付いたら PDC 2日目が始まる時間になってた。そのまま PDC 見始めたら寝れず・・・

まあ、とりあえず、速報ページをリンク↓

IE 9 の話もちらっと出てたけども、「描画が Direct 2D になって速くてきれいに」ってあたり以外はそんなに興味が。

やっぱ本命は・・・↓

Silverlight 4

初日の Azure と比べて、実際に動いてるのを見てのインパクトが強い。ストリーミング配信リアルタイムに見たの結構楽しかった(ので、結局深夜3時まで見てた)。

ということで、Siverlight 4。

一気にものすごい量の機能足してきたなぁ。マジですげー。

「Flash と比べて Silverlight の何がいいの?」って聞かれたとき、

  • 今まで: Visual Studio なので開発者にやさしいです キリッ
  • これから: 機能面でも敵なしです!

とようやく言えそう。

まあ、Flash にはもともとあった機能もちらほらあったりしますが。そういう機能面の話は置いといて、Microsoft すげーって思うのは↓

数か月前からやってた「Silverlight に入れてほしい機能 フィードバック投票場」。上述のサイトに書かれてる Silverlight 4 の新機能と見比べてみれば、かなりの割合対応されてることがわかります。

  1. フィードバック受け付ける
  2. 実際、多数のフィードバックが集まる
  3. そして実現する

ってのが数か月でこれだけやれちゃうんだからほんとすごい。

Written by ufcpp

2009年11月19日 at 00:53

カテゴリー: .NET

PDC09, Azure, Office 2010, SQL Server Modeling

leave a comment »

Professional Developers Conference 2009 開始

今日は起きたら twitter のタイムラインが PDC がらみの話題で埋まってえらいことになってた(PDC は米時間の朝からやってるから、日本時間だと25時半開始)。

以下、個人的に気になってる点:

  • 3 Screens + Cloud
    • 11/5 にあった Developer Forum でも出てた話だけど、「PC、テレビ(XBOX とか)、携帯 + クラウド」
    • 携帯にはほんと期待。携帯機器にも機器からの独立(device independence)を
  • Windows Azure Virtual Machine
    • Azure Platform みたいな PaaS だけじゃなく、Amazon EC2 みたいな VM の間貸しだけするサービス
    • これはこれで確かに欲しい。「Azure Platform だけだとやりにくい部分は EC2 借りるか!」とかいう話も出るんで
  • Microsoft PinPoint
    • Azure 上に作ったサービスを販売できる市場(マーケットプレイス)
    • データだけの販売のできる「Dallas(開発コード名)」ってのもある
      • これ、XNA と組み合わせて、「インディーズゲームでもアイマス商法!」とかできないかなぁ
      • そういう意図じゃない気もするけど
        • 本来の意図は「データ as a Service」というか
        • 「みんな、うちの地図情報を月額○○円で使ってね」的な
      • いや、そういう意図もありか・・・
        • 「みんな、うちの作った 3D メッシュやアニメーションデータ、1個○○円で買ってね」的な
  • AppFabric
    • .NET Services って名前はなくなって AppFabric の一部になりました
    • Windows Azure とか SQL Azure は Server との対応関係きれいでわかりやすかったけど、.NET Services はほんと意味わかんなかったんで
    • jniino さんのまとめ記事の下から3枚目の絵を見ての通り、非常にきれいに収まった
  • この「何でもやるよ」感がいいなぁ
    • IaaS も PaaS も SaaS も
    • On-Premise もクラウドも
    • そしてそれらの間の連携も
    • 全部 .NET や Visual Studio 使って
  • Azure から NTFS ドライブ認識できるってマジで?
  • 1日目の内容、あまりにも Azure 一色でクラウドに興味ない人にはつらいかもなぁ

その他、PDC に合わせてか一気に色々出てるなぁ↓

Office 2010

マイクロソフト、「Office 2010」ベータ版を開発者向けにリリース

さっそく入れてみた。

機能面のこまごまとした改善よりも、個人的に気になるところは SkyDrive とかとの連携が標準で入ってるところですねぇ。「やっと」ではあるんですけど。

でも、肝心の OneNote の SkyDrive 共有が「申し訳ございません。このサービスは現在ご利用になれません。」なのが残念でならない。

Oslo 改め、SQL Server Modeling

Oslo も新しい CTP が出たみたい。

SQL Server Modeling CTP – Nov 2009

Windows Phone Market Place

http://marketplace.windowsphone.com/Default.aspx

  • パズルボブルw

Written by ufcpp

2009年11月18日 at 10:25

カテゴリー: .NET