ページ

2006年6月24日土曜日

.NET Framework 3.0 June 2006 CTP

出てますね。


Readme for .NET Framework 3.0 June CTP


Microsoft Pre-Release Software Microsoft .NET Framework 3.0 - June 2006 CTP
(Japanese の Language Pack が見つからない)


Windows SDK for .NET Framework 3.0 June CTP


Microsoft Visual Studio Extensions - Development Tools for .NET Framework 3.0


Visual Studio 2005 Extensions for Windows WorkFlow Foundation

ADO.NET vNext

ADO.NET vNext っていうのは ADO.NET の次のバージョンのことです。Orcas といっしょにリリースされるんだと思います。一部では ADO.NET 3.0 と呼ばれてたりもします。


ADO.NET vNext: The Entity Framework, LINQ and more
今までの ADO.NET は SqlConnection とか Sql Command とかデータベースとやり取りするためのクラスライブラリでしたが、ADO.NET vNext ではそういったローレベルだけでなく、抽象化したもっとハイレベルのレイヤも受け持つようになるようです。


そのハイレベルのレイヤっていうのは、ようするに O/R マッピングのことみたいです。データベース上のスキーマ (テーブルやビュー) はリレーショナルデータベースにむいたような構造にしてやらなくちゃいけないことが多いですし、そのままクラス / オブジェクトとして表現してもいまいちな場合が多いです。そこで、データベース上のスキーマとは別にクラス向き (オブジェクト指向向きと言ったらいいのかな?) のモデルを作ってやって、それらをマッピングしておけばいいだろうということです。で、このモデルを定義するための規則が ADO.NET Entity Data Model っていうやつみたいです。ADO.NET Tech Preview: Entity Data Model に Entity Data Model の詳細が書かれています。で、この枠組み全体を ADO.NET Entity Framework とかって呼んでるみたいです。


Next-Generation Data Access: Making the Conceptual Level Real こちらの資料にちょっと具体的な感じがありますが、真ん中チョイ下くらいの 「Making the Conceptual Level Real」 のところの 「Build the Conceptual Model」 がエンティティデータモデルで書いたモデルの例みたいです。XML で書かれてますが、とうぜん Visual Studio 上ではデザイナが提供されるんでしょう。そして、「Figure 7」 にあるような感じでデータベース上のスキーマとモデルとのマッピングを行い、これらからクラスが自動生成されるそうです。


モデルから作成されたクラス (オブジェクト) は、マッププロバイダ経由で使うようです。具体的には MapConnection、MapCommand といったクラスが用意されていて、SQL でアクセスできます。ただ、普通のリレーショナルデータベースとは違うので普通の SQL では機能が足らず Entity SQL というのが定義されているようです。The ADO.NET Entity Framework Overview とかに Entity SQL について書かれています。


ADO.NET vNext screencast
こちらにスクリーンキャストがあります (英語)。
普通に ADO.NET 3.0 と言ってますね。あと、CTP は夏の後半に出るとかなんとか。
最初は普通に ADO.NET 2.0 でアクセスするコードを書いてます。それをマッププロバイダ (MapConnection、MapCommand) と Entity SQL を使ってアクセスするように改造していっています。モデルは事前に作ってあったのを使っているみたいです。モデルをデザインやマッピングなどをどういう風にやるのか見てみたかったんですが、その辺は出てきません (というか、まだデザイナが無くて XML をガリガリ書かないといけないから見せられない、と想像してみる(^^; )。そして、さらにそのコードを LINQ を使うように書き換えていっています。最後で insert や update に相当することもできるというのもデモしてます。また、このときにデータベース上では複数のテーブルが一つのクラスへとマップされている場合に、オブジェクトを更新するとちゃんとそれぞれのテーブルを更新する SQL が自動的に発行される様子をプロファイラを使って見せています。


エンティティデータモデルもおもろいですが、LINQ を使った時点でマッププロバイダとかを気にする必要がほとんどなくなっちゃうとこもかなりおもしろく感じました。相手がデータベースなのか ADO.NET Entity Framework なのかは LINQ の中で勝手にうまいことやってくれるので、コード上はたいした違いはないっていうことですね。

あれ?WinFS?

WinFS Team Blog: 「WinFS Update」 より


えーっと、しっかり読んでないので誤読ってるかも知れませんが。。。


「WinFS beta1 について書いてから 1年近くたっちゃった。けど、私たちはその後も元気でやってるよ」 なんて感じで始まるんですが。。。 Orcas に入る次のバージョンの ADO.NET (ADO.NET vNext。エンティティデータモデルだとかいろいろな新機能があって、今までの ADO.NET とは大きく変わる) は WinFS から来たものだとかなんとか。そして、WinFS の非構造データのリレーショナルデータベースへの統合?(integration of unstructured data into the relational database) や DBA 無しでの自動チューニング?(automation innovations that make the database "just work" with no DBAs) なんかは次の SQL Server (コードネーム Katmai) に入るとかなんとか。読んでるうちに 「じゃ、WinFS って何が残るの?」 と思ってきたんですが、後半を読むと Orcas と Katmai の基礎部分としてどうのこうのとか、もう WinFS はスタンドアローンコンポーネントとしては提供されないとかなんとか。。。えーっと、これって WinFS は終了ってこと?


コメント欄の最初
「So WinFS would be similar to Cairo? (WinFS って Cairo と同じになるの?)」
うーん、やっぱりそういうことなのか。。。

2006年6月22日木曜日

BumpTop Prototype

BumpTop Prototype より


新しいデスクトップの操作方法のデモムービーです。
(今は WMV は落ちてきませんが YouTube は見れました)


なんかすごくおもしろい、これ。けど、こんなデスクトップになったらいろんな書類が山積みになって探し出すのが大変になっちゃいそう (整理整頓しろって話ですが(^^; )。
もういっそ、Multi-Touch Interaction ResearchYouTube) と合体させちゃって欲しいな(笑)

WPF MSDN Browser と MSDN/TechNet Publishing System (MTPS) Content Service

WPF MSDN Browser より


WPF を使って実装した MSDN のクラスライブラリリファレンスを参照できるブラウザが紹介されています (ソースとバイナリは下の方の "Try It" のところ)。
起動して右上のテキストボックスのところに "System.String" などと入力してエンターキーを押すと MTPS Content Service から情報を取得して表示されます。


つか、MSDN/TechNet Publishing System (MTPS) Content Service なんていうものがあったんですね。
これは、http://msdn2.microsoft.com/library と同じ内容が取り出せる XML Web Service みたいです。ブラウザで http://services.msdn.microsoft.com/ContentServices/ContentService.asmx にアクセスすれば解説が表示されます (英語)。

Lang .NET Symposium 2006

OPC Diary: 「Lang .NET Symposium 2006」 より


Microsoft アメリカ本社で Lang .NET Symposium 2006 というのが 8/1~8/3 (7/31~8/2?) に開催されるそうです。Overview によると 「Lang .NET 2006 Symposium はプログラミング言語、マネージドな実行環境、コンパイラ、マルチランゲージライブラリ、IDE (統合開発環境) のディスカッションのためのフォーラム。...」 だそうです。


で、スピーカーがすごいですね。ググってみてわかったところでは、



  • John Gough … Ruby.NET の人みたい。

  • Miguel de Icaza … Novel の Miguel 氏だから Mono の中の頂点の人ですね。

  • Mike Barnett … MS Research で Spec# をやってる人。

  • Anders Helsjberg … "あの" C# and LINQ のヘルスバーグ氏。

  • Jim Hugunin … IronPython の開発者。

  • Polita Paulus … BLINQ の人だそうです。(って BLINQ ってなに?)

  • Don Syme … MS Research で F# を作ってる人。(F# is developed and maintained by Don Syme and James Margetson. だそうです)

  • Paul Vick … 去年日本にも来た VB9 の人。

なんていう感じ。。。ほんとにすごいな、こりゃ。

2006年6月21日水曜日

Open XML File Format 用のコードスニペット

Open XML Code Snippets Live! より


Office 2007 で使われる Open XML File Format と Open Packaging Conventions を操作するコードのスニペット集が紹介されています。
ちなみに、.NET Framework 3.0 には System.IO.Packaging API があってパッケージを簡単に扱うことができます (らしいです)。まぁ、パッケージと言っても単なる zip なので System.IO.Packaging なしでもなんとでもなるんでしょうが。


どんなスニペットが含まれてるかは、
Code Snippets for Open XML Development
にリストがあります。

WPF グラフィックパフォーマンス Q & A (英語)

WPF Graphics Performance Q & A - Some explanations about WPF graphics architecture & overhead より


まだ読んでません。MSDN のアーティクルとして公開される予定だけど、一足先に blog にさらしとく、ということみたいです。


# そのうち読もう

WPF のサンプル (beta2 用)

Beta2 WPF Samples Available as Zipped Download より


zip で固めた WPF のサンプル (beta2 用) がダウンロードできるそうです。91Mバイトもあるそうですが、これは Windows SDK についてるサンプルとは別物なのかな?(まだ、中身は見てません)

Cider のカスタマイズ その場でのテキスト編集

Implementing a "Insitu editor" using CIDER Adorner extensibility model より


Visual Studio のデザイナ上でのプロパティ (たとえば Text プロパティとか) の編集はプロパティウインドウで行うのが基本ですが、Cider (コードネーム。Visual Studio 向け WPF 用デザイナのアドオン) ではその場で編集ができるようです。で、カスタムコントロールを作るときに ExtensionAttribute をつけておけばそういったことへの対応もできるよ、というサンプルが紹介されています。


まぁ、Cider の仕様が固まったわけでもないと思いますので、このサンプルがこのまま役に立つかどうかはアレですが、Cider はさらにいろいろとできるようになってるみたいだな、という覚え書き。


ところで "Insitu" って手持ちの辞書に載ってなかったんですが、
http://www.m-w.com/dictionary/insitu
これか。「自然な場所で」 みたいなニュアンスで使ってるのかな?

2006年6月14日水曜日

DLinq でプロシージャとファンクションのサポート

Spring Linq CTP finally hits the shelves!
DLinq User-Defined Function support より


sqlmetal というツールを使って DLinq で必要になるソースコードを自動作成してくれるそうですが、このとき /sprocs というオプションをつけておくとストアドプロシージャを呼び出すためのコードも作成してくれるそうです。
この 「ストアドプロシージャを呼び出すためのコード」 ですが、MethodInfo.GetCurrentMethod() を引数に ExecuteStoredProcedure を呼び出すというような感じで書かれています。これからすると、呼び出し元メソッド自身の Attribute なんかを見て呼び出すべきプロシージャの名前や引数を決定して、普通に呼び出すだけみたいですね (けど、これだと実行のたびに解釈しなくちゃいけないような気がする)。


同じく /functions をつけておくとユーザ定義関数 (User Defined Function) を呼び出すためのコードを作成してくれるそうです。
こちらは Expression Tree を作り出すコードが作り出されています。そのおかげで、


var q = from c in db.Categories
            select new {c.CategoryName,
            Total=db.TotalProductUnitPriceByCategory(c.CategoryID)};


という C# 上のコードが


SELECT [t0].[CategoryID],
               [dbo].[TotalProductUnitPriceByCategory]([t0].[CategoryID]) AS [value]
FROM [Categories] AS [t0]


という SQL に展開されるわけですね (すなわち、ユーザ定義関数は SQL 上で実行されるのであって、C# 上で実行されるのではない)。

Chatting about LINQ and ADO.NET Entities (Anders Hejlsberg 氏と Sam Druker 氏へのインタビュービデオ)

Chatting about LINQ and ADO.NET Entities


Anders Hejlsberg 氏と Sam Druker 氏が LINQ とか ADO.NET についてしゃべってるビデオです。
まだ、冒頭部分しか見てませんがこりゃきびしいな (英語を聞き取るのが)。transcript があるといいんだけど。。。

MSDN Wiki beta

MSDN Wiki Beta より


MSDN Wiki beta がリリースされたそうです。
もともとオンライン上に Visual Studio 2005 と .NET Framework 2.0 のドキュメントがありますが、MSDN Wiki はこれらを誰でも修正できるようにしたものです。まぁ、さすがに誰でも自由にとなっちゃうと、わけがわからなくなるので "Community Content" セクションに追記できるという形式になっているようです。
また、今は英語版だけですがローカライズ版も予定しているとあります。

netfx3.com

http://www.netfx3.com/


Microsoft が運営している .NET Framework 3.0 のサイトです。


また、すでに
http://www.windowscommunication.net/ は http://wcf.netfx3.com/ に
http://www.windowsworkflow.net/ は http://wf.netfx3.com/ に
飛ぶようになっています。

.NET Framework 3.0

.NET Framework 3.0 より


# もうあちこちで紹介されてますが。。。


コードネーム WinFX は正式名称 .NET Framework 3.0 となったそうです。
今まで WinFX と言うと WPF、WCF、WF のことを指していたようなイメージもありましたが、.NET Framework 3.0 は



  • 今までの .NET Framework 2.0 のすべて (ASP.NET、WinForms、ADO.NET、その他のベースクラスライブラリや CLR そのものなどなど)

  • Windows Presentation Foundation (WPF)

  • Windows Communication Foundation (WCF)

  • Windows Workflow Foundation (WF)

  • Windows CardSpace (WCS) これはコードネーム "InfoCard" と呼ばれていたものだそうです。

をあわせたものということみたいです。(上記の Somasegar 氏の記事にある画像を見ると一目瞭然ですが)


ということは、このままいくと 2.0 → 3.0 ではランタイム自体の変更はないということですね。1.x → 2.0 のときは Generics などいろいろな機能拡張がありましたからランタイム自体も変更されています。しかし、2.0 → 3.0 ではランタイムは同じで WPF、WCF などのクラスライブラリが追加されるだけということになります。もちろん、ランタイムの機能追加はないとしてもパフォーマンスやセキュリティ向上のために修正されないとは限りませんから 3.0 のランタイムが今の 2.0 のままとは限らないと思いますが。


そういや、LINQ に対応する C# の言語仕様は C# 3.0 と呼ばれてるけど、これはこのままなのかな?LINQ が出てくるときの .NET Framework ってどうなるんだろ?まさか、.NET Framework は 4.0 で、C# 言語仕様は 3.0 で、ランタイムは 2.0 なんてことになる?(笑) (ちなみに LINQ Technical Preview ではコンパイラとクラスライブラリの追加だけでランタイムは 2.0 のままのはず)

2006年6月7日水曜日

Windows Live Mail Desktop Beta

Windows Live Ideas にもおもしろそうなものがあります。


注意
.NET Passport (今は Microsoft Passport Network って言うのかな?いや、Windows Live ID?よくわからん(笑)) にサインインしている状態だと  Windows Live Ideas  を見てもたいしたものがないかもしれません。その場合は、いったんサインアウトしてみてください。(.NET Passport の言語設定を見ているようです)
サインアウトしても日本語環境からだと大差ないかもしれません。その場合は、IE のメニュー 「ツール」-「インターネットオプション」 の 「言語」 で "英語 (U.S.) [en-us]" を追加して "日本語 [ja]" よりも上になるようにしてみてください。Microsoft のサイトはブラウザの言語 (たぶん Accept-Language ) を見て自動的に言語を切り替えるものがあります。この設定をすると Accept-Language: en-us,ja; になって英語版のページが表示されるようになります。


Windows Live Mail Desktop Beta
新しいメールソフトを開発中みたいです。



  • 複数のメールアカウントを一箇所でスピーディにアクセス (AOL や Gmail も OK)。

  • Web ベースのメールソフトと共にデスクトップアプリのパワーを。

  • メールと同じくらい簡単に newsgroup と RSS feed を取得可能。

  • オフラインのときもメールの作成、削除、管理が可能。

  • オンラインストレージは 2Gバイト。

  • メールアドレス自動補完や他の便利な機能など、メールをスピーディに書けるようにする今まで無かったような機能。

  • メッセージについてのことをすぐに MSN Spaces blog にエントリできる。

  • プログラムの中で MSN Messenger で連絡を取れる。

  • メールの写真を簡単に作成、編集。

blog の方にもいろいろと書かれていますし、スクリーンショットもあります。
どうやらアプリ自体は Windows アプリで、ストレージを Internet 上にも持って同期するというような感じでしょうか?あと、広告が表示されるみたいですね (そのかわり無料になるということかな?)。

Google Notebook, Google Trends, ...

先ほど Google Spreadsheets を紹介 しましたが Google Labs にはいろいろとおもしろいものがあります。


Google Notebook
インストールしておくと IE のツールバーとステータスバーにノートのアイコンが追加され、範囲選択している部分を記録しておくことができます (画像なども含む)。気になった部分を自分用に記録しておくこともできますし、Public なノートブックも作れるようです。


Google Trends
見てみりゃわかると思います。「C#,VB」 のようにキーワードをカンマで区切って複数入れるとそれぞれを比較することもできます。


Google Reader
ブラウザ上で動く RSS Reader です。


他にもいろいろ。。。

Google Spreadsheets

Google Spreadsheets


まだ limited test ということで実際に使うことはできませんけど、Web ブラウザ上で動くスプレッドシートを Google が開発中ということだそうです。


http://www.google.com/googlespreadsheets/tour1.html
なんかを見ると



  • ゼロから作ることができ、数値の書式、カラムのソート、計算式の追加などを含むすべての基本的な操作ができる。

  • CSV か XLS を計算式や書式を維持したままでスプレッドシート/ワークシートにアップロードできる。

  • ツールバーボタンのクリックで太字、アンダーライン、フォントの変更、セルの背景色の変更などができる。

 



  • あなたのスプレッドシートにアクセスできる人を選択できる。ドキュメントを共有したい人のメールアドレスを入れて、メッセージを送るだけ。

  • スプレッドシートを共有すると指定した人はサインインするだけでそれにアクセスできる。

  • 複数の人が同時に編集/参照できる。アクセス中の人はチャットウインドウに表示される。

 



  • ダウンロード不要。インターネットに繋がっているコンピュータがあればいい (サポートブラウザは IE6 (Windows)、FireFox 1.07+ (Windows, Mac, Linux) )

  • オンラインストレージと自動保存があるのでハードディスクの故障や停電を心配する必要はない。

  • スプレッドシートを CSV、XLS、HTML でダウンロードできる。

といったものだそうです。
すごいなぁ。

2006年6月6日火曜日

Script# がアップデート(v0.1.1.0)

Script# Update and Addition to Projects List より


以前 「Script#」 「Script# を入れてみました」 にて紹介した Script# ですが、Nikhil 氏のサイト上に Script# のプロジェクト のページを作ったそうです。また、微妙にバージョンアップして v0.1.1.0 になったそうです。(プロジェクトのページの右にある Downloads のところの Binaries からダウンロードできます)


v0.1.1.0 は不具合修正と機能追加がされているそうです。また、ダウンロードした zip の中に Script#.pdf があって、まだちゃんと読んだわけではありませんが、これには Script# の動作の仕組み、Script# の使い方、どのような C# コードがどのような JavaScript コードになるか、どんな制限があるかといったことが書かれているようです (英語)。ただし、まだ [TODO] や ??? とだけ記述されているところも結構あるようです。

Subscriber Download に VSTS Trial VPC (英語版) が登場

Visual Studio Team Suite Trial VPC available to MSDN Subscribers より


Subscriber Download に Visual Studio 2005 Team Suite と Team Foundation Server の Trial 用の Virtual PC イメージが登場したそうです。ただ、まだ英語版しかないみたいですが。


2つに分かれているのでこれらをダウンロード、解凍して、Virtual PC に突っ込めば、VSTS と Team Foundation Server をすぐに試すことができるし、評価のためのデモプロジェクトまで入っているそうです。

Windows.Forms なアプリを glass にする

How to get “glass” into your application using WPF or WinForms より


Windows.Forms なアプリを Vista の glass に対応させる方法が紹介されています。2つの blog へのリンクですが、どちらも DwmExtendFrameIntoClientArea API を使っているというのは同じですね。

WeakReference の Dictionary

Presenting WeakDictionary[TKey, TValue] より


WeakReference を格納する Dicrionary の実装例が紹介されています。紹介されているのは Key も Value も WeakReference を格納できるタイプです。もちろん、Key が使用中に GC に回収されては困るので WeakKeyReference<T> というクラスを作って HashCode だけを別に持つようにしたりしているようです。


(使うことがあるかどうかはわからんけど、なんとなく気になったのでメモ)

2006年6月2日金曜日

www.seewindowsvista.com

http://www.seewindowsvista.com/


ドメイン名のまんまです。ただ、Vista が見れるというよりも、Vista 上のいろいろなアプリケーションのデモムービー (イメージムービー) というような感じですが。「アプリケーションならば Vista じゃなくてもいいんじゃ?」 という気もしないでもないですが、WPF が主っぽいアプリが多いってことで (まぁ、WPF も Vista に限らず動くわけですが(^^; )。

2006年6月1日木曜日

Ajax な IconDB

IconDB - Ajax-enabled Icon Search より


IconDB というサイトが紹介されています。"book" とか "computer" とか適当に検索するとなかなかかっこいいアイコンがいろいろと表示されます。


というか、http://www.challenger.se/ このサイトすごいですね。左に 「にゅ~」 っと出てくるメニュー、上にタブ、背景も変えられたりと、、、それぞれの記事がパネルになってるのは wema みたいな感じですね。
あと、Challenger っていうのもすごいです。Demo のところに行って "Enter" すると動かしてみることができます。Logon 画面が出てきたら guest のまま "Logon" で OK です。動かしてみれば何なのかはすぐわかりますが、IE 上に作ったデスクトップです。ほんと、すごいな。

LINQ の screencast (Anders Hejlsberg 氏)

The Screening Room #5: LINQ


Jon Udell 氏の blog でインタビュアーが Jon Udell 氏、プレゼンターが Anders Hejlsberg 氏、 Paul Vick 氏という screencast が公開されています。(XElement で始まるコードが書かれている画像をクリックすると始まります)


50分くらいありますが、ほとんどが Anders Hejlsberg 氏が VS 上でデモってるという感じです。残念ながら、とうぜんすべて英語です (せめて transcript があったらいいのになぁ)。
最初は XLinq というか XElement のデモから始まって、コード内に XML を書く代わりの 「Paste XML as XElement」 なんていうおちゃめな機能も紹介されています。DLinqObjects という VS のテンプレート (拡張子が .dlinq) を使ってサーバエクスプローラからテーブルをドロップすると自動的に .cs が生成されるなんていうのが紹介されて、Northwind を使っての DLinq のデモが紹介されています。ここの中に QueryExpression.Lambda( ... ) を使って文字列から動的に Where に使うフィルターを生成するなんていうのがナニゲに紹介されていますが、これ、個人的にはかなり興味深いです。最後の方ではデータベースへのクエリーと XML へのクエリーを組み合わせて使うデモも行われています。

Visual Studio 2005 Team Edition for Database Professionals

Visual Studio 2005 Team Edition for Database Professionals


VSTS に新しい Edition が追加されるようです。どうも、



  • 新しい Visual Studio Database Project は、データベースのスキーマをインポートしてソースコントロール下におくことができる。また、スキーマの変更をデプロイするときには、そのプロジェクトシステムで更新用スクリプトかパッケージを作成でき、選択したデータベースへそれらをデプロイする機能も提供する。

  • データベース上のいろいろなオブジェクトのリネームを簡単にできるようにする Rename Refactoring 機能。リネームしたオブジェクトに該当するすべての参照もちゃんと処理する。(C# のリファクタリング機能みたいなものですね)

  • より使いやすくなった新しい T-SQL エディタ。VS 上での複数クエリの同時実行もサポート。

  • 2つのデータベース間のスキーマの比較とスキーマを同期するためのスクリプトの更新。

  • 2つのデータベース間のデータの比較とデータを同期するためのスクリプトの更新。

  • T-SQL やマネージドコードを使ってのデータベースのユニットテスト環境。

  • DataGenerator。どうやらデータベースのユニットテストをするにあたってテストコードが前提としているデータをデータベースにきちんとセットするといったような data generation plan を作成するといったものみたい。

といった機能が搭載されるようです。


CTP は 2006年 7月 11日に提供開始みたいです。


"Get Visual Studio Team Edition for Database Professionals for Free when you upgrade to Team Suite" とあります。どうやら Team Suite には無償で追加されるみたい。