ページ

2006年3月31日金曜日

Visual Studio Information for Borland Delphi Developers

Visual Studio Information for Borland Delphi Developers


へぇ、msdn.microsoft.com の中に Delphi ユーザー向けのページなんてあるんですね。
内容は Q&A 形式ですが、「Delphi で作ったアプリがいっぱいあるんだけど今後もちゃんと動く?」 「大丈夫だよ」 とか 「Delphi に変わる Microsoft 製品は?」 「Visual Studio」 とかって感じで、とうぜん Visual Studio の宣伝です。
けど、おもしろいと思ったのが最後の質問



  1. アンダース ヘルスバーグ(Anders Hejlsberg) は Borland Delphi の開発に関わってたけど、最近何年かは Microsoft で働いてるよね。彼は何をしてきたの?

    Anders Hejlsberg は .NET Framework と C# として知られている言語の中心的なアーキテクトの一人だよ。これらのプロジェクトについては、
    ■Behind the CodeRoom: Life and Times of Anders Hejlsberg:
        http://channel9.msdn.com/Showpost.aspx?postid=159952
    ■The C# Design Process: A Conversation with Anders Hejlsberg:
        http://msdn.microsoft.com/vcsharp/homepageheadlines/hejlsberg/default.aspx
    なんかで見れる。
    ごく最近は、アンダースは Language Integrated Query (LINQ) として知られている .NET Framework の改革をやっているよ。このテクノロジーに関する議論はこちら: http://channel9.msdn.com/ShowPost.aspx?PostID=114680

Microsoft Windows 1.03

Microsoft Windows 1.03 and other tools, 1985 より


Windows 1.03 のフロッピー、インストール、起動、実行なんかのスクリーンショットが紹介されています。へぇ、初めて見ました。
ちなみに、この Windows 1.03 は
http://www.digibarn.com/collections/index.html
こちらのコレクションのうちのひとつです。すごいなぁ。

2006年3月30日木曜日

kiko.com

http://www.kiko.com/


Web ベースのカレンダーサイトです。ドラッグ&ドロップできたりとか 「今風」 な操作ができるようになっています。ちなみに、About によると Linux 上の Ruby+PostgreSQL とのことです。あと、DojoPrototype という Ajax な JavaScript Toolkit を使ってるそうです。(Dojo っていうのは聞いたことがあるような気がするけどこの辺はよく知らない)

WPF/E の書き方

WPF/E Code Walkthrough より


「まず最初に XAMLPad を使って簡単な XAML を書いてみよう」 と


<Canvas xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
 <Rectangle x:Name="myRect" Fill="orange" Width="100" Height="100" Canvas.Top="10" Canvas.Left="10"/>
</Canvas>


という XAML が紹介されています。


そして次に 「WPF/E のブラウザホストは Netscape 形式のプラグインと ActiveX コントロールがある。プラグインの方は XAML をファイル、文字列、エレメントの innerHTML から読み込める。この innerHTML からの読み込みを使ってみると。。。」 と HTML に WPF/E を埋め込んだ例が紹介されています。
へぇ、<script type="text/xaml" id="WpfeControllXaml"> として XAML を書いておいて、プラグインには SourceElement="WpfeControllXaml" なんてしてやれば、この <script> エレメントの innerHTML を XAML として読み込んでくれるんですね。<script> にしてるのは XAML の部分が HTML と認識されないようにするためでしょうね。HTML と認識されてもかまわないなら <div> でもなんでもかまわないんだと思います。


次は 「FireFox、Netscape、Safari ではなく IE を対象とするなら」 と <object> タグを使った例が紹介されています。


最後に、HTML 内のテキストボックスと JavaScript を使って、WPF/E プラグインの中の四角形の属性を操作する例が紹介されています。テクストボックスに red と入れておいてボタンをクリックすると Rectangle の Fill が orange から red に変わって赤くなるんですね。


うーん、これ、おもしろいなぁ。この方法だと 「そういう文字列を埋め込んだ HTML」 を作ればいいだけだから、Web サーバの環境はなんでもいいことになりますしね。

WPF と WPF/E

WPF、WPF/E の情報がいろいろとあったのでまとめて


Microsoft goes cross-platform with WPF/Everywhere
Tim Anderson 氏が Forest Key 氏 (Microsoft の Director of Developer Tools Product Management) と話したことをまとめた記事です。WPF と WPF/E の概論といった感じです。何箇所かで "great article" といった感じで紹介されてました。


XAML and IL
上の Tim Anderson 氏の記事のコメントが発端みたいですが MSDN Forum に 「XAML と IL の関係がはっきりしない」 と質問して、それに対する回答です。
XAML の持ち方としては、



  1. アセンブリにコンパイル
    .csproj/.vbproj ファイルに <Page Include="Page1.xaml" /> と含めるとアセンブリにコンパイルされて含まれる (.baml と関連する .g.cs/.g.vb)

  2. アセンブリにインクルード
    .csproj/.vbproj ファイルに <Resource Include="Page1.xaml" /> と含めるとアセンブリにインクルードされる (XAML はテキストファイルのまま)

  3. アプリと分離
    .csproj/.vbproj ファイルに <Content Include="Page1.xaml" /> と含めると exe とは分離される (ClickOnce 風。.exe.manifest にリストされる)

  4. その他
    .csproj/.vbproj に含めずにサーバ上やファイルシステム上に置く

といった種類があるみたいです。そして、WPF は A のパターンが基本、XPS はテキスト形式のままの XAML を持つ (XPS の中に IL を持つことはサポートしない。XPS はいろいろなデバイスやプリンタで使われるので扱いやすいようにテキスト形式のままにする)、WPF/E は XML ファイルのままの予定 (zip にすればサイズは小さくできる)、という感じみたいです。


XAML Language and XAML Formats
XAML 言語の種類を整理してくれてます (XAML の "L" は Language の "L" じゃないのかな?であれば、XAML Language っておかしいような気がするけど)。



  1. XAML Language - コア言語。XamlReader が XML 内のエレメント、アトリビュート、内容をオブジェクトのツリーとしてどう取り扱うかを定義する。XAML Language の仕様ままだ公開してない。Chuck の XAML の記事 がいいスタートになる。

  2. WPF XAML - WPF の内容 (ベクタグラフィックス、コントロール、3D、ドキュメントなど) を記述するエレメントのセット。WPF XAML のリファレンスは Windows SDK にある。

  3. XPS XAML - XPS のための WPF XAML のサブセット。XPF は XML Paper Specification のことで、独立したオープンな仕様である。この仕様は XPS ドキュメントファイルフォーマット (ページを持つ電子文書の XML ベースの表現) のアーキテクチャを記述する。仕様はこちら オーバービュー 仕様書

  4. WPF/E XAML - クロスプラットホームのための WPF XAML のサブセット。たとえば、現在の予定では 3D はなく、いくつかのコントロールがない。

  5. WF XAML - Windows Workflow のアクティビティなどの内容を記述する要素のシリーズ。More Info.

3 Coding Styles for Avalon Applications
WPF には 3種類の作り方があるそうです。



  1. 全部コードで書く。

  2. コード + XAML (実行時に XamlReader で読み込む)

  3. コード + コンパイルされた XAML (Microsoft の開発ツールはこのスタイルを推奨する)

リンク先にはサンプルコード + XAML も載ってます (1年ほど前の記事なので Avalon になってますが、後半に Feb 2006 CTP 用に修正したサンプルも載ってます)。


Dynamically load a Xaml file from a C++ app
C++/CLI で WPF してます。XamlReader を使ってるのはまだ C++/CLI 用の WPF 開発環境がないからでしょうね。


Short Video showing basic XAML and Databinding
XAML でのデータバインディングの紹介ビデオが紹介されています。

2006年3月24日金曜日

Paint.NET 2.6

Paint.NET Language Pack (日本語版)」 で紹介したときは .NET Framework 2.0 用の Paint.NET 2.6 はまだ RC1 でしたが先月くらいに正式版になっています。日本語 Language Pack はまだ 2.5 用のものしかありませんが、特に問題はないみたいです (そんなに使い込んでるわけではありませんが)。


Paint.NET plugins! Effects and a JPEG 2000 handler
Paint.NET 2.6 のプラグインが紹介されています。プラグインをダウンロードしたら C:\Program Files\Paint.NET\Effects に DLL をコピーするだけです。これで Paint.NET を起動すると 「エフェクト」 メニューの内容が増えているはずです。
で、CodeLab プラグインというおもしろいプラグインがありました。このプラグインを入れて 「エフェクト」-「Code Lab」 メニューを選択するとダイアログが開きます。このダイアログに C# でコードを記述するとそれがリアルタイムに画像に適用されます。ソースをロードしたりセーブしたりもできますし、「Make DLL」 ボタンを押すと DLL を作成することもできます。ZIP ファイルに入っているサンプルコードを見ればコードの書き方はだいたいわかると思います。

2006年3月23日木曜日

XNA Framework - Xbox 360 で .NET Framework と C# が動く

CLR Everywhere より


XNA Studio ってのはだいぶ前に聞いたことがあって、ゲーム開発を管理するための VS2005 (VSTS と言ったほうがいいのかな?) の拡張のことらしい、という程度のことだけしかしりませんでした。
なので、上記の記事に 「今週の Game Developers Conference でのビッグニュースは XNA Framework だ」 みたいなことが書いてあってもよく意味がわかりませんでした (XNA Studio と XNA Framework をごっちゃにしてました)。よくみたら XNA Studio と XNA Framework は別物なんですね。「XNA Framework は、ゲームデベロッパが高い生産性を持つ C# 言語を使って Windows と Xbox 360 で動くクロスプラットホームなゲームをより簡単に作ることを手助けする .NET Framework のカスタム実装と新しい game-development-specific ライブラリを含む」 とかなんとか書いてあります。へぇ、Xbox 360 のゲームも C# で書くようになりますか。


ところで、上記の記事にも 「XNA Framework は WPF をサポートするのかな?」 なんて書いてありますね。WPF/E は動くようにするような気もしますが、フルの WPF となるとどうなのかな。

Office Developer's Conference のキーノートスピーチ

MSDN Webcast: Office System Developers Conference Keynote with Bill Gates and Kurt DelBene


こちらで 3/21 に行われた Microsoft Office Developer's Conference のキーノートスピーチのビデオが見れます。もちろん、すべて英語で 2時間くらいあるみたいです。

VSTO March 2006 CTP

CTP for Visual Studio Tools for Office より


Visual Studio Tools for Office の CTP がリリースされたそうです。
って、VSTO って VS2005 といっしょにリリースされていたはずでは?と思ったんですが、どうやら Office 2007 beta1 (コード名 Office 12) に対応した VSTO の CTP とのことです。


ダウンロードページ
http://www.microsoft.com/downloads/details.aspx?FamilyID=2e85132b-7370-4137-a19a-15752ea83952&displaylang=en
によると、この CTP を入れるには今の VSTO もしくは VSTS が必要みたいです。また、WinFX Feb 2006 CTP も必要とあります。ん?これはこの VSTO CTP が WinFX を使ってるんでしょうか?それとも Office 2007 が WinFX を使ってる?

OpenXmlDeveloper.org

Microsoft Office Developer's Conference のビル・ゲイツ氏のキーノートスピーチで OpenXmlDeveloper.org がアナウンスされたそうです。


Learn more about OpenXML によると Office Open XML Formats (ECMA で標準化中) に関する情報提供や質問の場となるようです。もちろん、この OpenXmlDeveloper.org は Microsoft が運営しているんでしょうが、フォーラムを見ると Java や Linux といったグループもちゃんと用意されていますね (まだ投稿はないみたいですが(^^; )。


Office Open XML Formats ってのは、もちろん次期 Office がネイティブフォーマットにするという XML ベースの docx とか xlsx とかってやつのフォーマットのことです。docx とかは実際には ZIP で、この中に XML ファイルとか画像ファイルとか必要なものが一通り入ってるわけですが、ZIP の中にどんな風に収めるかというのは Open Packaging Conventions という仕様としてまとめられています。


# それにしても Office Open XML Formats の ECMA の最初のドラフトが 2000ページ近くあるっていうのはすごいな。

2006年3月22日水曜日

WPF/E は C#、VB をサポートする?

WPF/E - Windows Presentation Foundation Everywhere at MIX06 より


WPF/E っていうのは WPF Everywhere のことだそうです。WPF (Windows Presentation Foundation) は、表示の定義は XAML ですがコード部分は C# なり VB なりで記述しますから .NET Framework の存在が前提になっています。これの表示部分だけを抽出したのが WPF/E です。機能を絞り込んでコンパクトにした代わりにいろいろな OS、いろいろなブラウザ用の WPF/E エンジン (プラグイン) が提供される予定になっているそうです。で、WPF/E ではイベントなどのコードの記述は JavaScript を使用すると聞いてました。


で、上記の記事です。箇条書き部分をざっと訳してみます。。。



  1. WPF/E エンジンは、組み込まれた IL スクリプトエンジンを持つ。これは、IL (C# や VB) コードをどこでも実行できるってことをあなたに与える。とうぜん、クラスライブラリは制限されているが。
  2. WPF/E エンジンには、あなたがどこでもビデオを再生できるように、 Media Player チームによる media stack built が付属するだろう。これは、マシンやブラウザにプレイヤーがインストールされているかどうかに関わらず、ビデオを再生できるようになるということを意味する。
  3. Microsoft は、IE、Firefox、Safari、Mozilla を Windows、Apple、(Linux、Solaris はサードパーティによって) サポートするだろう。
  4. Just kidding :-)

。。。って、えーと、この 4番の "Just kidding" ってどういう意味でしょう?普通に考えると "冗談だよ" って意味なように思うんですが。。。


(3/22 16:20 修正・追記)
上記の 「4. Just kidding :-)」 の意味がよくわかりませんが、1~3 の内容は別に冗談というわけではないようです。
http://content.mix06.com/content/sessions.aspx
↑に MIX06 のセッション一覧があります。これの 「NGW036 - A First Look at Windows Presentation Foundation Everywhere (WPF/E): a Cross-Platform subset of WPF」 の PPT 資料: NGW036_Stegman.ppt を見ると 「WPF/E は x-platform .NET runtime をホストする。 C#、VB.NET コードは IL にコンパイルされる。IL はセキュアで管理された環境で実行される」 などといった内容が書かれています。また、外部パッケージ (拡張子 .wpfe) に XAML と IL をまとめておくようなこともできるようです。

WPF で WndProc をフックする方法

Subclassing Window's WndProc より


WPF で WndProc をフックする方法が紹介されています。
こういうのが紹介されるっていうことは、やっぱり必要になっちゃう場合もあるってことなんでしょうねぇ。

2006年3月17日金曜日

WWF beta 2.2

Windows Workflow Foundation Beta 2.2 Released Today より


Windows Workflow Foundation の Beta 2.2 がリリースされたそうです。

The Microsoft "Made In Express" Contest

http://www.madeinexpresscontest.com/


The Microsoft "Made In Express" Contest というものが始まったそうです。日本語で言うと 「 "Express で作ろう" コンテスト」 といったところでしょうか。Visual Studio 2005 Express and/or SQL Server 2005 Express を使って作ったソフトのコンテストですが、単にソフトの出来栄えをきそうだけじゃないようです。ルールによると、



  • まずは 3/13~4/30 のアイデアフェーズに 「自分がファイナリストになったら何を作るか」 「なぜ自分がファイナリストに選ばれるべきなのか」 といった申し込み and 自己アピールを提出するようです。

  • そして、5/1~5/14 にファイナリストの選出が行われます。

  • みごとファイナリストに選ばれたら 5/15~8/6 のプロジェクトフェーズに実際にソフトを作ります。このとき、その進捗具合を Made In Express コンテストのウエブサイトに用意される Made In Express blog で公開しながら進めます。もちろん blog の内容も審査対象となるようです。

  • そして、9/1 までに審査員による勝者が決定され、また、ウエブ上での投票によって Community Choice Winners が選ばれます。

という 「作る過程をさらけだすコンテスト」 となるようです。
"worldwide contest" と書いているところもありましたから日本からも参加できると思いますが、きっと、申し込みや blog の記事なんかは英語でやらないといけないんでしょうね。

SQL Server 2005 SP1 の CTP

SQL Server 2005 SP1 CTP Available より


はやくも SQL Server 2005 SP1 の CTP がリリースされたそうです (正式版ではなくあくまで CTP)。
上記の記事によると、SP1 ではミラーリングが有効になるようです。

2006年3月10日金曜日

カッシーニ (Cassini) がアップデート

Cassini Update より


カッシーニ (Cassini) っていうのは、ASP.NET (.aspx) をホストする C# で書かれた簡易 Web サーバです。
で、上記の記事は 「コネクションオブジェクトがリークするっていう指摘をもらったから修正したソースをポストしとく」 ということで Cassini v2 のソースが添付されています。ちなみに、Cassini v2 は .NET Framework 2.0 用のソースで ASP.NET 2.0 をホストします。

Expression Interactive Designer March 2006 CTP (WinFX Feb 2006 CTP 用)

Announcing the availability of the March 2006 CTP of Expression Interactive Designer より


Expression Interactive Designer March 2006 CTP が公開されたようです。
これは WinFX Feb 2006 CTP と完全に互換性があるとのこと。また、他にもいろいろと機能強化されてるようです。

2006年3月9日木曜日

live.com がアップグレード

http://www.live.com/ がかっこよくなってます。


http://microsoftgadgets.com/ に Tetris とか Pac-Man とかなんてものをあったので入れてみました(^^; この Pac-Man はすごいなぁ。これって JavaScript なんだろうか?けど、JavaScript で音なんて出せたっけ?Flush なのかな?
ちなみに、http://microsoftgadgets.com/ からガジェットを追加するには 「+Live.com」 ってところをクリックするだけです。すると、live.com の 「自分のコンテンツ リスト」 ってところに追加されてますから、あとは好きな場所にドラッグ&ドロップで配置できます。

2006年3月6日月曜日

Street-Side

Street-Side


こりゃ、すごいな。ちと重いけど。


Channel 9 に開発チームのビデオがあるそうです。
Virtual Earth Team - Streetlevel

MSN Spaces が MetaWeblog API に対応

MSN Spaces MetaWeblog API より


MetaWeblog API っていうのは、blog の記事の管理 (記事の投稿、編集、削除やカテゴリーの追加、編集など) を行う API です。もちろん、API と言っても OS の API とかって意味じゃなく、Web サービスみたいなもんです。って、私も詳しくは知らないので興味のある方はググってみてください。


で、ここで使っている blog エンジンである .Text も MetaWeblog API に対応しています (ん?Blogger API なのかな?この辺の違いはよくわかんない)。なので、この API に対応した blog 編集ツールを使えばブラウザ上ではなくアプリ上で記事を書くことができます。前に調べたところでは w.bloggar とか blogBuddyzemptslugBlogJet などといったツールがあるようです。けど、どれも日本語がまともに使えなかったり機能的に不十分だったりで 「.Text の管理ページのほうがまし」 という感じでした。


そういや変わったところでは
A simple InfoPath blog editor for .Text - SimpleBlogger
なんていうのもあります。これは InfoPath で作った blog 編集ツールだそうです。今見てみたら、その後 Community Server 対応の CSBlogger へとバージョンアップしてるみたいですね (http://blogs.msdn.com/guowu/archive/category/6612.aspx)。

Vista でも VB6 ランタイムはサポートされる

Vista To Support Legacy VB6 Apps より


Vista でも VB6 ランタイムはサポートされるそうです。
って、まぁ、さすがに 「Vista では VB6 アプリはまったく動きません」 とは言えないでしょうしねぇ。

非矩形のウインドウ Windows.Forms/WPF

Creating Non-Rectangular Splash Screen - using Alpha Channel
Windows.Forms のフォームでレイヤードウインドウにするサンプルコードが紹介されています。レイヤードウインドウっていうのは、ウインドウスタイルに WS_EX_LAYERED を追加しておいて UpdateLayeredWindow API を使ってビットマップを指定してやればウインドウをそのビットマップの形にできるという機能です。ちなみに、レイヤードウインドウは Windows 2000 以降でサポートされています。
ただ、別にレイヤードウインドウを使わなくても GraphicsPath を使えばほとんど同じことができると思いますけど (「四角くないフォームを作る方法」 とか)


Part II : Creating Non-Rectangular Splash Screen - using WPF
WPF で四角くないウインドウを作るコードが紹介されています。HwndSourceParameters で名称と幅、高さを指定しておいて HwndSource で WPF なウインドウが生成できるということかな?(最初の HwndSourceParameters s = new HwndSourceParameters("visual"); っていうのは消し忘れだと思う。いらないんじゃないかな) で、XamlReader を使って .xaml を読み込んでそのウインドウの中身を指定してあげると。へぇ、こんなことができるんだなぁ。


Part III: Non-Rectangular Window in WPF (use of Thumb)
さらに上記の WPF な四角くないウインドウを Thumb を使ってドラッグで移動できるようにするコードが紹介されています。ついでに今度は .xaml を読み込むんじゃなくて XAML に相当する内容をコードで作っているみたいですね。

Adobe Illustrator to WPF/XAML Export

Adobe Illustrator to WPF/XAML Export も WinFX Feb 2006 CTP 対応版になってるようです。


(私自身は Illustrator は使ってないんですが)