Archive for 11月 2009
線形駆動車両
作画: Paese
C ルート通れるかどうかでもめてるアレのことは、「磁気浮上式リニア」とか「リニア新幹線」って言わないと F# たんに絡まれます。(絡んで欲しいという変態さんはお断り。)
up主の同僚にはこれでスイッチ入る人が結構な人数いる。
鉄輪式のリニアモーターカーなら約20年前から走ってるんですよねぇ。
SQL Server Modeling
PDC ネタの続き。Silverlight 4 の話だけであまりにも長くなったんで記事を改める。
コードネーム "Oslo" 改め、SQL Server Modeling。
- ダウンロードページ: SQL Server Modeling CTP – Nov 2009
- Release Notes for the SQL Server Modeling Community Technology Preview (CTP)
- SQL Server Modeling CTP Questions and Answers
- Announcing the SQL Server Modeling (née “Oslo”) CTP for November 2009
名前に関して: 「モデリングプラットフォーム」の意図するところ
過度の期待をされないように、本来の立ち位置に沿った名前にしたって感じが。
元々 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 っての追加
ちょっと時間厳しくなってきたんで続きは明日以降書く。
P・D・C! P・D・C!
やっと落ち着いて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が微妙に整理されてる
- 個人設定もできるようになったって
Silverlight 4
- 公式サイトの get-started 記事
- 公式サイトの Screencasts and Training Videos
- Silverlight 4 Beta – A guide to the new features
- New Web Services Features in Silverlight 4 Beta
↑この辺りの記事を荒訳していこうかと。()内は僕の注釈。
- まだ Go-Live じゃないよ
- Visual Studio は 2010 にしか対応しないっぽい
- Silverlight Tools for Visual Studio 2010
- (ちなみに、日本語版には入らないので注意。)
さて、それじゃあ、Silverlight 4の新機能について。かなり大量。覚悟して読まないといけない。
- Visual Studio のツールサポートが充実
- (WPF 並み!・・・とは行かないんですよねぇ。ちょっと触ってみた感じ、微妙なところがちらほら)
- コントロールのドラッグ&ドロップ開発が可能に
- なったものの、デザイン側でクリックしたところと同期してコード側のカーソル移動してもらえたりはしない
- コードスニペットが WPF 用。propdp とか、微妙に修正必要
- やっぱ Blend 覚えなきゃダメかなぁ
- コントロールのドラッグ&ドロップ開発が可能に
- (WPF 並み!・・・とは行かないんですよねぇ。ちょっと触ってみた感じ、微妙なところがちらほら)
- WCF RIA Serviceとかのテンプレートが標準で入るようになった
- NetTcp バインディングに対応
- TCP 接続で双方向通信できる
- ただし、使えるポートは4502~4534だけ
- 最も要望多かったもの
- 拡張性の高いモデルを採用
- 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 要素にスタイルを適用できるように
- コマンドに対応したんで MVVM な開発が可能に
- (Button と Hyperlink だけ。InputBinding とかはさすがにない)
- (DependencyObject に OnPropertyChanged がなかったり、微妙にやっぱり WPF と変えなきゃいけないところあり)
- ちゃんとクロスプラットフォームなクリップボードアクセスが可能に
- Clipboard クラスがある
- (ただし、SetText と GetText のみ)
- ClientHttp ネットワークスタックを使う場合、NetworkCredential を指定可能に
- AllowDrop プロパティを設定しておくと、デスクトップや Explorer からのファイルドロップを受け付けるように
- (Drop イベントの拾い方とかは WPF と同じっぽい)
- (DataFormats は FileDrop しか対応してないっぽい)
- IDataErrorInfo に対応
- データ検証用
- IDataErrorInfo はプロパティ単位の検証になる
- もう1個、Sivlerlight 4 で追加される INotifyDataErrorInfo ってのを使うことで、プロパティをまたがる検証が可能
- (INotifyDataErrorInfo を使うサンプルを書いてみた。確かにこれはこっち使った方がよさげ)
- 今まで FrameworkElement しかバインディングできなかったのが、DependencyObject でも可能に
- 例えば、RotateTransform.Angle とかがバインディング可能に
- いずれも WPF にはある Binding プロパティ
- DateTime に対して StringFormat=’MM-dd-yyyy’ とか指定するとこの形式に沿ってデータを表示してくれる
- バインドする値が null の時には TargetNullValue に設定した値が表示される
- 値が正しく変換できなかった場合には FallbackValue の値が表示される
- ジェスチャーを受けとれるように
- (今まではローレベルな WM_TOUCH 相当のイベントしか受けれなかった)
- WebBrowser コントロール
- Silverlight の中に HTML(Flash さえも)を表示できるように
- (ブラウザ内実行時は WebBrowser コントロール内に「無効です」って表示される)
- HtmlBrush も使える
- (PDC 2日目基調講演でやってたみたいな、YouTube ページを動画再生したままジグソーパズル化したりできる)
- NotificationWindow クラスを使う
- 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 でも対応するユーザーフォルダーを取得可能)
その他:
- Google Chrome をサポート
- 動作が2倍高速に
- 通常の .NET Framework 4 と Silverlight でライブラリを共有できるように
Auzre
PDC 初日のキーノートでほぼ情報出てた感じ?PDC 初日に書いた日記に、キーノートの日本語でのまとめ記事へのリンクもあるんでそれを参照するのが速そう。
あんまりきれいにまとまってる記事みつからないなぁ。↓くらい。
これも簡単に訳す。
- Role の設定 UI
- Visual Studio の Solution Explorer で各 Role のところをダブルクリックするだけで設定画面開ける
- 設定画面をいろいろ改善
- ASP.NET MVC 2.0
- F# Worker Role
- WCF サービス Web Role
- Azure Table がないとき、自動的に作成してくれるようになった
- (かなり変更多いとか。ほんとに今までのは単なるサンプルだったようで)
- (どうも、聞きかじった話だと、これは Web Role ⇔ Worker Role 間の通信に使う Endpoint っぽい。Worker が外からの通信を直接受けれるわけではないとか)
- 1, 2, 4, 8 個から選べる
- (これのことかな → [PDC09]ただのNTFSディスクボリュームではない、「Azure XDrive」の凄い中身)
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 使うから)
- 言語のあまりにも多くの部分に影響ですぎるとかで
- (基本が mutable な言語で immutable を導入するのは大変そうよね)
その他
- Microsoft Application Architecture Guide, 2nd Edition が PDF でダウンロードできるようになってる
- DevLabs: Reactive Extensions for .NET (Rx) が公式にダウンロードできるように
- 今まで、Silverlight Toolkit に含まれてて触れはしてたんだけど
- でも、Rx for .NET Framework 4.0 Beta 2 のリンクが切れてる・・・
- しかも、マルチタッチ対応な Windows 7 タブレット PC だよ!
- 過半数も・・・
- うちとか気が付いたら 1600×1200 と 1920×1080 のデュアルなのに
痛IDE、ドイツで人気!?
ちょっと前に、初音玲さんがVisual Studio Galleryに痛IDEを登録していたわけですが。
なんか今日、衝撃のつぶやきが:
@msdnjp 【ダウンロード】 ItaStartPage (VS Gallery) – http://j.mp/4pCBYu …(ドイツで人気でした)
ドイツもか!
フランスがオタ国家なのは割と身に染みて感じてるんですけどねぇ、コミケとか闘劇とか行くと会場内で必ずフランス語が聞こえてくるんで。
PDC 2日目、Silverlight 4
昨日は mono meeting から帰ったら結構いい時間になってて、気が付いたら PDC 2日目が始まる時間になってた。そのまま PDC 見始めたら寝れず・・・
まあ、とりあえず、速報ページをリンク↓
IE 9 の話もちらっと出てたけども、「描画が Direct 2D になって速くてきれいに」ってあたり以外はそんなに興味が。
やっぱ本命は・・・↓
Silverlight 4
初日の Azure と比べて、実際に動いてるのを見てのインパクトが強い。ストリーミング配信リアルタイムに見たの結構楽しかった(ので、結局深夜3時まで見てた)。
ということで、Siverlight 4。
一気にものすごい量の機能足してきたなぁ。マジですげー。
「Flash と比べて Silverlight の何がいいの?」って聞かれたとき、
- 今まで: Visual Studio なので開発者にやさしいです キリッ
- これから: 機能面でも敵なしです!
とようやく言えそう。
まあ、Flash にはもともとあった機能もちらほらあったりしますが。そういう機能面の話は置いといて、Microsoft すげーって思うのは↓
数か月前からやってた「Silverlight に入れてほしい機能 フィードバック投票場」。上述のサイトに書かれてる Silverlight 4 の新機能と見比べてみれば、かなりの割合対応されてることがわかります。
- フィードバック受け付ける
- 実際、多数のフィードバックが集まる
- そして実現する
ってのが数か月でこれだけやれちゃうんだからほんとすごい。
PDC09, Azure, Office 2010, SQL Server Modeling
Professional Developers Conference 2009 開始
今日は起きたら twitter のタイムラインが PDC がらみの話題で埋まってえらいことになってた(PDC は米時間の朝からやってるから、日本時間だと25時半開始)。
- 速報記事とかほんとありがたい。
- [速報]マイクロソフトのPDC09開幕、Windows Azureを仮想ドライブに、クラウドで仮想マシンも実行可能
- [PDC09]Windows Azure上のアプリケーション市場やデータ市場を発表、基調講演速報
- [PDC09]クラウドが提供する「データサービス」がイノベーションを加速、レイ・オジー氏が基調講演
- リアルタイムで見れなかった人も、Video Gallary で動画が見れます
- おまけ
以下、個人的に気になってる点:
- 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
月は出ているか?
もうすぐ PDC 2009 開始、つまるところ、Windows Azure Platform のラウンチですね。
言語擬人化 C# たんの世界では、Azure とか Silverlight とかの .NET 技術は C# たんの追加兵装にしようかと。
ということで、Azure モードの C# たん↓
作画: Paese
Azure モードになった C# たんはクラウドの向こう側にある施設からスーパーマイクロウェーブを介してエネルギーを受信し、キャノン砲をぶっ放すことができるのだ!
X 字の集光板がチャームポイント。
Azure Tools Nov. 2009、XAML 2009、Facebook Toolkit for .NET、Paint.NET 3.5
Azure Tools and SDK (November 2009) Release
ダウンロードページ: Windows Azure Tools for Microsoft Visual Studio (November 2009)
関連ブログ:
Windows Azure Tools and SDK v1.0 November 2009 Release
Windows Azure and Visual Studio 2010
- やっと VS 2010 β2 に対応!
- PDC までお預けかと思ってたらもう出た
- 新機能、自分が気になったところいくつか
- Azure Strage 利用クライアントが、サンプルからちゃんとしたライブラリになった
- Worker Role で input endpoint をサポート
- Role のインスタンスに対して VM のサイズを指定できるように
- 他にも、文面見てる限りなんか楽しげ。ちゃんと触りたい
XAML 2009
XAML 2009 Features: Node Loop flexibility
- WPF 4 では XAML 読み書き用の API が色々 public になってて面白そう
Facebook for .NET
Facebook Toolkit for .NET Developers
- Facebook の API を.NET 言語から使うための Toolkit がリリースされた
- それも、ちゃんと MS 製!
- デスクトップ用も Silverlight 用も ASP.NET 用も
- Facebook、日本法人もできるらしいしどうなるかなぁ
Paint.NET v3.5
Paint.NET v3.5 (Final) is now available!
- なんか見た目が変わったなぁって思ってたら、Vista と 7 向けに Aero 対応したらしい
- 7 では文字描画に DirectWrite 使うように
魔法少女設定
長らく「制服版」だけ出してたけど、C# たんには魔法少女設定があったりする。
作画: Paese
ということで設定も:
- 他のキャラも魔法設定あり
- 制服版の延長な感じの衣装
- ぶっちゃけ、イメージしてるところは「月に代わって・・・」
- .NET 系は近代兵器っぽく、Native 系は魔法の杖なイメージ
- C# たんは重火器全般なんでも使う
- 主に作画的な理由で普段は銃だけ
- 無難にベレッタにした
- 某漫画ぱくって銃身長めの銀色の改造ベレッタ(しかも二丁拳銃(トゥーハンド))にするかどう悩んだけど、そこは思いとどまった
- この絵は初期ラフ
- 銃のデザイン、C をあしらったものから .NET ロゴをあしらったものに変更
- .NET っていう近代魔法フレームワークに乗っかった兵器ってイメージ
- イルカのマスコット
- おい、今「お前を消す方法」って質問した奴表出ろ