ASP.NET MVC 2 RTM
ということで、これを待望にしていた皆さんおめでとうございます。
Download details: ASP.NET MVC 2 RTM
この公開は.NET 3.5/VS2008向けです。.NET4/VS10向けはVS10の製品リリースにあわせた方になると思います。
ということで、これを待望にしていた皆さんおめでとうございます。
Download details: ASP.NET MVC 2 RTM
この公開は.NET 3.5/VS2008向けです。.NET4/VS10向けはVS10の製品リリースにあわせた方になると思います。
NUnit 2.5からAssert.Throwsというメソッドが追加されていて、インラインでエクセプションのテストができるように拡張されています。
こんな感じですね。
1: private void ExceptionDashimakuri(string a) {
2: if (a == null) {
3: throw new ArgumentException("a is Null !!");
4: }
5: }
6:
7: [Test]
8: public void TestExceptionDashimakuri() {
9: string a = null;
10: var ex = Assert.Throws<ArgumentException>(
11: () => ExceptionDashimakuri(a)
12: );
13: Assert.That(ex.Message == "a is Null !!");
14: }
インラインで想定されているExceptionが飛んできているか、その後Assert.That等によってメッセージ内容が適切か、Exceptionのソースが適切か等も確認することができます。
Assert.Throwsすばらしいですね。見事ですねという感じなのですが、テスト実行の時に一つだけ注意点があります。Visual Studio上でテスト実行する場合には「必ずDebug無しで実行する」事です。Debug実行してしまうとVisual Studioに例外がハンドルされていないって冷たく言われます。。。(常識ですよねそうですよね。。。30分ぐらい悩んじゃった。)
しかし、日本語の情報無いなー。
講師:長沢智治
VS2010におけるチーム開発機能、ユニットテストツール、コード分析機能、モデリング機能とチーム開発環境との連携、仮想化を使ったテスト環境の管理ツール、VSとは独立したテストスィートに関する説明でした。
VS開発チームが実際にVSを使いScrumで開発を行っており、そのフィードバッグが製品に良く反映されているのだと思います。
VSのコードエディタ上でメソッド選択して、リバースでUMLのおシーケンス図を書いてくれるのにはちょっと感動しました。(逆はできませんけど)
あるいみ、VSのUMLモデリング機能はものすごくスケッチャー向けの機能なんだと思います。
ではtsudaりのまとめ。
講師:小高太郎
Open Data Protocol(OData)とそれを.NET上で実現するWCF Data Servicesについての説明でした。
OSSのサーバーソフトウェアだとよくXML RPCによるAPIがあり外部プログラムから操作可能ですが、それと同様なことがMSのサーバー製品やその他においてもODataで実現されていくのだと思います。他社への実装の働き崖が大事になってくると思います。
ではtsudaりのまとめ。
講師:荒井省三
内容は.NET 4で取り入れられた、あるいは改良されたプログラミングパラダイムについての解説で、その中でF#, XAMLといったものが解説されました。
Ruby作者のMatzさんとかも言っていますが、今後10年の言語トレンドは宣言型、あるいは関数型のパラダイムが主流になっていくと思っているので、資料を見れる方は見ていると良いかもしれません。
講師:川西裕幸
Visual Studioで追加された並列関係機能、特に.NET 4.0での並列化についての解説でした。このようなフレームワークによる並列化支援はあるものの、結局のところアムダールの法則を乗り越えるには正しいアルゴリズム設計、分割可能なデータ構造の設計といったものが結局のところ必要だと感じました。
ではtsudaりのまとめです。
講師:森屋英治(株式会社アークウェイ)
このセッションでとりあえず参加費の元は取れました。
セッション資料中の図表類は非常に効率的で有用なので、参加者の方は今すぐ見ておくことを進めします。また資料は後日一般公開がされるようなので、参加されてない方もAzureでの開発はなくても一般的なエンタープライズアプリケーションの構築に関わる方はごらんになっておくと良いと思います。
とにかく縦横無尽にWCF何とかを中心としたアーキテクチャ解説とデモは見事というしかありません。エクセレント。
講師:長沢智治
Osloは交代しているように見えるが実は現実的なところに戻って、これから元々の構想のように大きくなっていくのではないかという長沢さん言葉が印象的でした。
では自分のtsudaりのまとめです。
講師:スティーブ・マークス
このセッションに関して私がtsudaった内容のまとめです。
また、セッション資料は後日一般向けにも公開されるようです。
PDC09以降Azureでの変更点特にWorker Roleの役割の大きな変更似合わせ、今のAzureアプリケーションの作成方法、アーキテクチャーに関するナイスな解説でした。
自分でtsudaった分のまとめです。
3スクリーン + クラウドの解説と関連製品・サービスの紹介。
Azureの導入事例の紹介でした。とりあえず今Azure上でシステム構築する場合オンプレミスとクラウドをうまく連携させることを考えるとうまくいくようです。
頭の中を変えなければならないが、適したパラダイムにすればコードがシンプルになる #tdcm204 #CM-204 #techdaysj
posted at 16:33:27
関数型 関数脳が必要 #tdcm204 #CM-204 #techdaysj
posted at 16:24:01
宣言型の記述の方がS/N比が低い #tdcm204 #CM-204 #techdaysj
posted at 16:21:37
VS10でクラススタブ、プロパティスタブが追加された #tdcm204 #CM-204 #techdaysj
posted at 16:19:27
VS10ではTDD強化 TDDは「どうかくか脳」から「何を書くか脳」に変化させるのですき #tdcm204 #CM-204 #techdaysj
posted at 16:16:27
プログラミングはモデリングなので言語ツール選択が重要 #tdcm204 #CM-204 #techdaysj
posted at 16:15:02
宣言型 "What"を記述 今までは"How"を記述 #tdcm204 #CM-204 #techdaysj
posted at 16:13:10
マルチパラダイム 関数型(C#の進化 F#) 動的 並列 #tdcm204 #CM-204 #techdaysj
posted at 16:12:21
Ctrl + コロコロ で検索しても無駄 #tdcm204 #CM-204 #techdaysj
posted at 16:10:41
Navigate To #tdcm204 #CM-204 #techdaysj
posted at 16:10:02
VBとかC#とか行っているのは時代遅れ #tdcm204 #CM-204 #techdaysj
posted at 16:07:35
VBでないといけない理由 条件式のショートサー期キットをしたくない Myを使いたい #tdcm204 #CM-204 #techdaysj
posted at 16:06:51
気に入らない Call Hierarcy VBに無いのがいや#tdcm204 #CM-204 #techdaysj
posted at 16:05:52
InteliTrace 値変化のログがとれるので落ちないバグを探すのに良い #tdcm204 #CM-204 #techdaysj
posted at 16:04:48
お気に入りの新機能 #tdcm204 #CM-204 #techdaysj
posted at 16:03:36
#tdcm204 このタグをつけてつぶやくべし #CM-204 #techdaysj
posted at 16:03:20
The Managed Extensibility Frameworkのプレビュー9が出ていました。
変更点としてはSilverlight向けにいくつかの名前の変更や名前の空間に変更があったのと、バグフィックス、サンプルの追加となっています。
明日からいよいよ始まるTechDaysですが、キーノートがSmoothStreamingで公開されます。(要Silverlight)
技術的な背景とか詳しいところは以下で。
Twitterを活用したTechDaysの楽しみ方(その2):高画質版のUST?でキーノートライブ配信:Azureの鼓動:ITmedia オルタナティブ・ブログ
現在もページは生きていてデモのSmoothStreamingのビデオが流されているので、自分の環境で見ることができるか確認しておくといいでしょう。
キーノート ライブ中継 - Microsoft Tech·Days 2010
http://td10.ds.ipcasting.jp/?lang=original
MSRの主任研究員でF#の開発者でもあるSyme先生によるF#解説の3回シリーズがChannel9で公開されています。これはエリック・メイヤー先生による長かったHaskellを使った関数型言語講義に続くChannel 9の講義シリーズのようです。
以下のページにVS2008 SP1以降に出たパッチ類の情報があります。
かなりの数があって、直接のダウンロード、メールでの問い合わせによるダウンロードができるものがありますが、ほとんどはサポートの電話問い合わせが必要です。
これだけの数のパッチについてそれをやるにはあまりにも大変なので、一括でダウンロードできるようにしてほしいです。
かつて、VS2008にはGDRが出た実績もあるのだし、これらのパッチについてもSQL Serverのように定期的に累積パッチを出せないものなんでしょうか。
(ブクログより転載)
って言う本があったら今すぐ買う!っていう状態なのですが、そんな本はありません。ただ、幸いなことに以下のMSDNドキュメントに続くものがほぼそれに相当するので、何とかなりそうです。。。
自らカスタムプロバイダーを作ろうという人はそんなにいないとは思いますが、標準のプロバイダを使っていてもこういう時にどうするんだろうとか、リファレンスを読んでもその言葉に意味がわからないと言うときにはこちらを読むと、Sync Frameworkがやっていることが何となくわかって、目的の物を見つけられたり、サンプルだけでは合点がいかなかったところが合点がいくようになります。
まぁ、Sync Frameworkは何も考えなければ数行でファイル同期とれるようになるすごいやつなのは確かなので、あまり日の目を見ませんがこういうものがあると覚えておくといいと思いますよ。
何も考えなければこれだけ。(ちなみにこれは動かしてないですw)
1: using System;
2: using System.IO;
3: using Microsoft.Synchronization;
4: using Microsoft.Synchronization.Files;
5:
6: namespace FoldersSync
7: {
8: class MyFolderSync
9: {
10: public void FoldersSync() {
11: SyncOrchestrator agent = new SyncOrchestrator();
12: FileSyncProvider source
13: = new FileSyncProvider(@"C:\Folder1");
14: FileSyncProvider destination
15: = new FileSyncProvider(@"C:\Folder2");
16: agent.LocalProvider = source;
17: agent.RemoteProvider = destination;
18: agent.Synchronize();
19: return;
20: }
21: }
22: }
そゆもの。DLは以下からお願いします。
変更点はRubyForgeの方をご覧ください。
また、.NET Fx 4.0 RC対応のものがほしい方は以下より入手できます。
IronPython - Release: 2.6.1 RC1 for .NET 4.0 RC
.NET Fx 4.0 RC向けがリリースされました。
Windows Azure : Windows Azure Tools and SDK 1.1 Released
いよいよWindows Azure Drive対応となりました。
そのほかは基本Bug Fixのようです。
This release supports Visual Studio 2008 SP1 and the upcoming Visual Studio 2010 RC.
VS2010 RC ??
ダウンロードはこちら
Download details: Windows Azure Tools for Microsoft Visual Studio 1.1 (February 2010)
All-In-One Code Frameworkは.NETやWindows開発での様々なコードサンプルを一つにまとめて、一挙に提供しようというプロジェクトのようです。現在のコードサンプルは290。
以下のサイトよりダウンロードできます。
うーんこれすごいかも。
以前紹介したXBox 360のキッズ向けヴィジュアルプログラミング環境のKODUのPC版が出たようです。
使用に当たっては.NET Framework 3.5とXNAのランタイムが必要になります。(インストーラでインストールするように言われ、ダウンロード先がリンクされます)
また、操作に当たってはXBox 360コントローラと互換性のあるPC用ゲームコントローラがあった方がいいと思います。
【レビュー】複雑化するゲーム開発と『Kodu』の意義 - ゲーム作りの興味を失う前に | ネット | マイコミジャーナル
http://www.opcfoundation.org/Downloads.aspx?CM=1&CN=KEY&CI=288&CU=59
12/31にSDK1.01がバージョンアップしていました。現状は開発ベータ扱いです。
Buildとしては308になるようです。
Build 308 Release Notes
This is a Beta (Development) Build for the UA SDK v1.1.
All of the available downloads are described on a roadmap page.
Documentation for the COM interoperability components is available here.The major changes include:
This release includes the support for
- COM servers supporting DA 2.05a, DA 3.00, AE 1.1 or HDA 1.2;
- COM clients supporting DA 2.05a and AE 1.1;
The auto-generated information models have been updated to reflect the latest versions of Part 9 (A&C), Part 11 (HA) and Part 13 (Aggregates).
The ANSI C Quickstarts now use the ANSI C stack APIs to automatically create self-signed certificates when they are run for the first time.
The Mantis issues that have been fixed in this build can be viewed by setting the "Fixed in Build" property set to "1.01.308.0"
新年あけましておめでとうございます。
以下は国立情報学研究所佐藤先生の1月3日分の日記から
Windows開発者の皆様方にはたいへん失礼な物言いなのですが、Windows向けアプリケーション開発は時間が止まったような世界。そんな世界に浸った開発者がクラウドコンピューティング向けの新しいサービスを作れるかというと疑問なのですよね。あるプラットフォームが既存の開発者が有利という印象を与えたら、新規開発者はそのプラットフォームは避けるものです。Azureをイノベーティブになるには、既存のWindows開発者を切り捨ててでも、新規の開発者をAzureに引き込む必要があったのではないでしょうか。
それと過去の歴史を考えると新旧プラットフォームでアプリケーションの重複はない。例えばメインフレートとミニコンでは、メインフレームからミニコンに移行したアプリケーションよりも、ミニコン向けに新たに開発されたアプリケーションの方が多い。Azureのことに話題を戻すと、現在のWindowsのアプリケーションはWindowsで動かせばよく、Azureで動くアプリケーションは今までにないものになるということです。このため既存Windows開発者をAzureに連れて行ったために、Azureというせっかく新しいプラットフォームなのに古いアプリケーションを動かし続けることになりかねません。
ならばどうすればいいのかですが、他のプラットフォームの開発者を引き入れることも重要ですが、やはりエンドユーザによる開発ができるようにすることが求められるように思います。実際、Force.comはWebブラウザで開発できるので、開発ツールや統合環境のインストールは不要なのですが、こうしたインストール有無だけでもエンドユーザ開発の障壁になっていましたから、Visual Studioのインストールが必要なAzureって時代錯誤なのですよね。
Windowsの開発で時間が止まっているのはそうだろうな。SilverlightといってもVBから続くフォームベースのRADと大きく何かパラダイムが変わっているわけではないですし。
AzureですがAzure自体ワーカーロールで実質何をしてもいいという状態になり、いったいユーザー(この場合はAzure上にアプリケーションを作る立場の人・物)に何をさせたいのか余計にぼやけてきていますが、EUC(エンドユーザーコンピューティング)は一つの方向性を示していくと思うけど、なんでもつくれるAzureのままなんだろうなぁ。
ということで、今年はクラウド・コンピューティングが現実的な選択肢になり、本格的な普及に向けて最適なプロセス、最適な設計手法を求めてすったもんだして行く年になるのでしょう。
今年こそ、今までの何かの焼き直しでない突き抜けた新技術を見てみたいところ。オブジェクト指向を過去の物として本当に置き換える何かとか、既存のマイクロプロセッサアーキテクチャを根底から覆すようなプロセッサーアーキテクチャとか、いい加減HTTPから離れて、これからの時代に合う新しいプロトコル(wave?どうだろう?)とか、そういう物をみたいですね。
以下のリンク先でTechEd 2009のセッション内容をストリーミングで確認できるようです。 (要Silverlight)
スライドもPDFとして落とせるようになっています。
Azureストレージのテーブルでは正規化しないことがポイント - かめログ2
いくつかのソリューションサンプルを見たり、プロトタイプを作成しているうちに件の結論に行きつきました。間違っていたら教えてください。
単純に正規化しないは間違ったメッセージだと思います。
これははじめから正規化を放棄した(する)と受け取ったのですが、実際の設計作業ではそうでないと思います。KVSというかISAMが1つのKey値しか持ち得ないため、最終的なそれのデータ構造が非正規化してしまうのはある種仕方のないことなのですが、それがすぐに設計段階でデータを正規化しなくていいと言うことにはならないです。
基本的には一度従来通り正規化を行った上で、アプリケーションの特性や、Azureのテーブルならテーブル、GAEならGAEにと、それぞれにあわせた形で非正規化を行っていくというプロセスになると思っています。
無秩序にKey付きの構造化されたデータがあちこちに散らばるという状況はおそらく収拾がつかなくなるのでしょうし、RDBのように結合やグルーピングで後から任意の形にデータをまとめることができませんし、それを前提に将来のアプリケーション改修や保守を見込む必要もあり、むしろRDBの時よりAzureのようなKVSの方がデータ構造の設計は難しくなってきていると考えます。
当然非正規化されてしまっているので、データ更新するプログラムの処理も煩雑でわかりにくいコードになりがちです。
データパティーショニングの粒度設計なども絡んでクラウド・コンピューティングでのデータ設計の方が、従来のDBMSを前提としたC/SシステムやWebアプリケーションよりもデータ設計やソフトウェア設計においては難易度が高く、安易に考えない方がよいと思います。
いや、ほんとサンプル以上のものを作るのは大変だと思うんですよね。。。
Nine Months Later: Mono 2.6 and MonoDevelop 2.2 - Miguel de Icaza
Releasing Moonlight 2, Roadmap to Moonlight 3 and 4 - Miguel de Icaza
ということで、立て続けにリリースされました。
たぶん一番大きいのがMonoでLLVMを使用したことだと思います。
何というか、これが正式アナウンスのようです。
ということで
IronRubyがとうとうRCになりました。
[ANN] IronRuby 1.0 RC1 - Ruby Forum
こちらのBlogのスライドにありますが、だいたい全体的にCRuby(1.8.6?)との互換性は90%以上にまでなってきたようです。
自分の中で秀丸以外のエディタ環境を模索しつついろいろ試していますが、ある意味王道であるEmacsに戻ってみることにしました。
まずは環境作り。(NT)Emacsはバージョン23系が最新で、Windows用のものはNTEmacsと呼ばれています。(今はソースコードレベルでは本家にマージされているはず)日本国内の有志の方々がIMEでの日本語入力に対応するパッチの配布、パッチ適応のバイナリ配布をされているのですが、残念ながらSourceForge.jpのプロジェクトではまだ公開されていません。どうも最近は2chのスレで公開が主流らしい的な話もあってどうしたものかと思ったのですが、まとめていてくれた方がいらっしゃいました。
[ソフトウェア] NTEmacs 23.1 のインストール・設定 - itouhiroメモ
基本的に、ここに書かれている手順でダウンロードインストール、設定ファイルの作成を行えばほぼ問題はありません。
次にEmacsをインストールしたならC#も色づけしたくなるのが人情なので、C#モードの追加、設定もしたいところです。これまたやり方を書かれている方がいらっしゃいます。
Emacs/MeadowにC#モードをいれてみる - うっかりプログラミング日誌
これも悩むことはありません。書かれているとおりで問題ありません。ただC-x/cで呼び出すコンパイルのコマンドはCSCなので、そこは設定ファイルの修正が必要です。
また、素直にrunemacsを起動してしまうと、コマンドラインの.NETのツール類にパスが通ってなく、使いづらいので以下のようなバッチを作ってそこから起動しています。
@Echo off
cd /d %home%
call "c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86
C:\bin\emacs\bin\runemacs.exe -rv %*
ちなみにこれはVS2008をインストールしている場合です。
SDKオンリーやC# Expressionオンリオーの場合には適宜同様にバッチで環境変数やパスを通してからEmacsを起動するようにすると便利だと思います。
まぁ後は精進といったところですね。。。
リリースとなりました。 1年ぶりのメジャーバージョンアップです。
うーんDLR自体には変化がないなぁ。。IronPythonが正式リリースとなったので、こちらもリリースとなるのではないかと思います。
諸般の都合でSQL Server Compact Edition 3.5を使い始めることとになり、いろいろと祟られています。。
まぁぼやいていても仕方ないので、自分で調べたところはWikiの方にまとめ始めましたので、興味のある方はご覧ください。
しかし、これも情報が少ない。MSDNだけでもとりあえず何とかなりますが。。。
IronPython 2.6の正式リリースに向け、IronPythonのサイトができたようです。これから最新のリリースバイナリや文書の提供といった正式な窓口はこちらになるようです。ただし、CodePlexのサイトは今まで通りなので、最新および開発中のコード・バイナリの入手、バグ登録はこちらを使うことになります。
動作しているサイト:
http://rubyonrails.cloudapp.net/
Blog記事:
Simon Davies' Blog : Running Ruby on Rails on Windows Azure
もしやIronRubyで動いているのでわ!と勇んでいったわけですが、mingw32でコンパイルされた方のCRubyでした。ちぇつまんねーのw
Ruby version 1.8.6 (i386-mingw32)
まぁ多くの人にとってはCRubyの方がうれしいんでしょうけどねw個人的にはIronRubyが動いてくれる方が楽しいわけです。ただ、これでRedmineとかtDaiaryとか動くかもしれないので、適当なRubyが動くホスティング環境を探している人にはいいかもしれません。
ということで、日本時間的に今日リリースされました。
チェンジログはこちらです。
Trick and Treat !(あれ?)
今日はアングロサクソンのお盆です。(キッパリ)
と言うことでCh9もホラー風味です。
Bug Killer – A Channel 9 Halloween special | Laura Foy | Channel 9
IronRuby、IronPythonそれぞれで10/4 B2向けCTPが公開になったようです。
IronPython - Release: 2.6 CTP for .NET 4.0 Beta 2
We’re quite pleased to announce the release of "IronPython 2.6 CTP for .NET 4.0 Beta 2". This is our third preview of IronPython running under the Dynamic Language Runtime that is built directly into a .NET 4.0 release! As before, this release allows you to use IronPython objects and types as .NET 4.0 dynamic objects from within C# and Visual Basic code. This release is extremely similar to IronPython 2.6 RC 1. Please also note that "IronPython 2.6 CTP for .NET 4.0 Beta 2" will run only under .NET 4.0 Beta 2.
IronRuby - Release: CTP for .NET 4.0 Beta 2
We’re pleased to announce the release of the IronRuby CTP for .NET 4.0 Beta 2. This is our third preview of IronRuby running under the Dynamic Language Runtime that is built directly into a .NET 4.0 release! As before, this release allows you to use IronRuby objects and types as .NET 4.0 dynamic objects from within C# and Visual Basic code. These binaries are roughly equivalent to the functionality found in IronRuby 0.9. Please also note that the IronRuby CTP for .NET 4.0 Beta 2 will run only under .NET 4.0 Beta 2.
ネタもと:
DevHawk - IronPython and IronRuby CTPs for .NET 4.0 Beta 2
MSDNを持っていなくてもB2を試用できるようになったようです。
Try Visual Studio - Trial Options
どうもネットワークインストールしかできないようなので、それなりの時間は覚悟する必要はありそうです。
ということで、アメリカではIronRuby本出版のようで、早速Eary Access Editionがでています。
第1章のみPDFでただで読むことが出来ます。

筆者サイト : Ivan Porto Carrero
マイクロソフトがスマートグリッドに関するホワイトペーパを発表しました。全部で130ページほどあるなかなか気合いの入ったものです。
スマートグリッドとはいわば電力線のネットが情報のネット化すると同時にこれまで、日本であれば電力管内という県をまたぐ大きな地域レベルで行われてきた電力の需給バランス調整を、極端な言い方をすれば町内会レベルの超ミクロなレベルを行うと言うことです。
そのためにはスマートメーターと言われているような、プロセッサを積んで、ITネットワークにデータを流せる電力計や、それらの間やそれと電力会社とを結ぶバックボーンのITネットワークインフラが必要なのはもちろんですが、本当に必要なのは超ミクロなレベルでの電力調整を実現するための莫大な情報処理能力です。
したがって、その莫大なな情報処理能力(ソフトウェアの力)を得るためにGEはGoogleと組んで、Googleのクラウンドコンピューティングにその処理をさせようとしていたりします。
特に北米では元々基幹の送電電力網の設備がかなり古くメンテナンスにも限界があることや、オバマのグリーンニューディールでスマートグリッドに関する投資期待がかなり高くなっています。
当然そうした状況にマイクロソフトがただ指をくわえてみているだけのはずが無く、満を持してこのホワイトペーパが出てきたのではないかと推察します。
どっかの経産官僚は日本にスマートグリッドなどいらんとか行っているらしいですが、この国でも家庭や小規模な事業所が設置する太陽光発電や燃料電池や、これから流行りそうなそれらの余剰電力を蓄える蓄電池の有効活用を考えればスマートグリッド化は必要で不可避な流れだと思うので、将来突然仕事が回ってきたりするかもしれないので関係ないとは言わずに読んでみると良いと思います。
ああCEPってこう使うんだとか、ESBとかもう普通だよねとかまぁいろいろ思う所もあるんじゃないかと思います。
うーんMSはArevaと組みそうなのか、同じAで始まる別の会社じゃないのか。。残念。。
めも
Windows 7 64-bit 環境で Application Manifest が無視されることがあるように見える - NyaRuRuの日記
Application Manifest (Windows)
http://msdn.microsoft.com/en-us/library/dd371711(VS.85).aspx
Windows 7/Server 2008 R2のプログラムだと宣言する - 新日々此何有哉
http://d.hatena.ne.jp/kkamegawa/20090705/p1
忘れた頃にやってくる連載記事です。
今回は、やらないと前回書いた左外部結合とグループ化結合について説明します。
また、サンプルで使用するXMLファイルで、前回との違いは、category.xmlにカテゴリを一つ追加しています。
1: <?xml version="1.0" encoding="utf-8" ?>
2: <Categories>
3: <Category id ="1">
4: <CategoryName>飲料</CategoryName>
5: </Category>
6: <Category id ="2">
7: <CategoryName>前菜</CategoryName>
8: </Category>
9: <Category id ="3">
10: <CategoryName>主菜</CategoryName>
11: </Category>
12: <Category id ="4">
13: <CategoryName>デザート</CategoryName>
14: </Category>
15: <Category id ="5">
16: <CategoryName>お持ち帰り</CategoryName>
17: </Category>
18: </Categories>
グループ化結合は、階層データ構造を作成する場合に便利です。グループ化結合は、最初のコレクションの各要素と、2 番目のコレクションの相関関係を持つ要素のセットを組み合わせたものです。
使用するXMLは内部結合のものと同じです。
以下の例ではカテゴリごとの料理のリストを作成しています。
1: XDocument menu = XDocument.Load(@"..\..\menu.xml");
2: XDocument category = XDocument.Load(@"..\..\category.xml");
3:
4: var menuList = from c in category.Descendants("Category")
5: join m in menu.Descendants("item")
6: on
7: (string)c.Attribute("id")
8: equals
9: (string)m.Attribute("CategoryId")
10: into menusByCategory
11: select new {
12: ID = c.Attribute("id"),
13: CategoryName = c.Element("CategoryName").Value,
14: Menus = from me in menusByCategory select new { Name = me.Element("name").Value }
15: };
16:
17: foreach (var c in menuList) {
18: Console.WriteLine("{0} - {1}", c.ID, c.CategoryName);
19: foreach (var m in c.Menus) {
20: Console.WriteLine("\t{0}", m.Name);
21: }
22: }
1,2行目でXML文書を読み込みます。
5行目から今回新しく説明するポイントです。
5行目のjoin句で、4行目のfrom句でcategory.xmlから取り出したxmlのエレメントに結合するmenu.xmlのエレメントを指定します。
6行目からon句から始まり9行目までが結合条件で、この場合にはcategory.xmlがもつidアトリビュートとmenu.xml側が持つ CategoryIdアトリビュートの値の一致をもって結合するようにしています。アトリビュート同士の値が同値であることの確認には"=" (オペレータ)ではなくequals句を使う必要があります。正確には
from <左辺XML>
join <右辺XML>
on <左辺条件> equals <右辺条件>
となります。
10行目ではinto句を使ってcategory.xmlのエレメントが持つidアトリビュートごとにmenu.xmlのエレメントをグループ化して、category.xmlのエレメントに結合します。
14行目ではselectをネストして、グループ化された中からメニューの名前のリストを作成しています。
動作結果
1: d="1" - 飲料
2: コーラ
3: アイスコーヒー
4: ブレンドコーヒー
5: 生ビール
6: d="2" - 前菜
7: フレンチフライ
8: 湯で海老
9: チーズ盛り合わせ
10: オニオングラタンスープ
11: シェフのお任せミニサラダ
12: シェフのお任せスープ
13: d="3" - 主菜
14: 御殿場高原で育った子羊のロースト
15: あしたか牛のフィレ肉を使ったビーフシチュー
16: 沼津港スズキのグリル
17: 焼津マグロのカルパッチョ
18: あしたか牛のサーロインステーキ
19: d="4" - デザート
20: 韮山苺を使ったショートケーキ
21: 西浦みかんのババロワ
22: 朝霧高原の牛乳から作ったティラミス
23: d="5" - お持ち帰り
左外部結合は、2 番目のコレクションに相関関係を持つ要素があるかどうかに関係なく、最初のコレクションの各要素が返される結合です。LINQ を使用すると、グループ結合の結果に対して DefaultIfEmpty を呼び出すことで、左外部結合を実行できます。
以下の例は、カテゴリーID、カテゴリー名、メニュー名を表示するプログラムで、カテゴリーに対応するメニューが無くてもカテゴリーIDとカテゴリー名は表示します。
処理の手順は次のようになります。
最初手順ではグループ結合を使用して内部結合を実行します。今回の例ですと、先ほどと同じようにmenu.xmlのエレメントのリストは、 category.xmlのエレメントが持つidアトリビュート と一致する menu.xmlのエレメントに基づいて、category.xmlのエレメントの一覧に内部結合されます。
2 番目の手順では、右側のコレクションに一致する要素がない場合でも、最初 (左側) のコレクションの各要素を結果セットに含めます。これを行うには、グループ結合から一致する要素の各シーケンスで DefaultIfEmpty を呼び出します。以下の例では一致する menu.xmlのエレメントの各シーケンスで DefaultIfEmpty が呼び出されます。一致する menu.xmlのエレメントのシーケンスがすべての category.xmlのエレメントに対して空の場合、各 category.xmlのエレメントが結果コレクションに表示されるように、1 つの既定値を含むコレクションが返されます。
1: XDocument menu = XDocument.Load(@"..\..\menu.xml");
2: XDocument category = XDocument.Load(@"..\..\category.xml");
3:
4: var menuList = from c in category.Descendants("Category")
5: join m in menu.Descendants("item")
6: on
7: (string)c.Attribute("id")
8: equals
9: (string)m.Attribute("CategoryId")
10: into menusByCategory
11: from mx in menusByCategory.DefaultIfEmpty(
12: new XElement("item", new XAttribute("id", c.Attribute("id").Value), new XElement("name", ""), new XElement("price", "")))
13: select new {
14: ID = c.Attribute("id"),
15: CategoryName = c.Element("CategoryName").Value,
16: MenuName = mx.Element("name").Value
17: };
18:
19: foreach (var c in menuList) {
20: Console.WriteLine("{0} - {1} \t:\t{2}", c.ID, c.CategoryName, c.MenuName);
21: }
11行目はメニューで使われていないカテゴリが表示できるように、DefaultIfEmptyメソッドでmenusByCategory内の各シーケンスを調べ、シーケンスが空でないならシーケンスの各要素をmxに入れ、シーケンスが空であるなら、規定値としてDefaultIfEmptyメソッドの引数で与えている値がすべて空のitemエレメントをmxに入れています。(ここでは値の無いエレメントを追加していますが、それが適切かどうかは場合によります。)
動作結果
1: id="1" - 飲料 : コーラ
2: id="1" - 飲料 : アイスコーヒー
3: id="1" - 飲料 : ブレンドコーヒー
4: id="1" - 飲料 : 生ビール
5: id="2" - 前菜 : フレンチフライ
6: id="2" - 前菜 : 湯で海老
7: id="2" - 前菜 : チーズ盛り合わせ
8: id="2" - 前菜 : オニオングラタンスープ
9: id="2" - 前菜 : シェフのお任せミニサラダ
10: id="2" - 前菜 : シェフのお任せスープ
11: id="3" - 主菜 : 御殿場高原で育った子羊のロースト
12: id="3" - 主菜 : あしたか牛のフィレ肉を使ったビーフシチュー
13: id="3" - 主菜 : 沼津港スズキのグリル
14: id="3" - 主菜 : 焼津マグロのカルパッチョ
15: id="3" - 主菜 : あしたか牛のサーロインステーキ
16: id="4" - デザート : 韮山苺を使ったショートケーキ
17: id="4" - デザート : 西浦みかんのババロワ
18: id="4" - デザート : 朝霧高原の牛乳から作ったティラミス
19: id="5" - お持ち帰り :
このように「お持ち帰り」はメニューに存在しませんが表示されています。
ということでひとまず結合を含むクエリ式の説明はこれで終わりです。
それではまた次回!(あるのかー)
これまでの記事:
参考図書:
Essential LINQ (Microsoft .NET Development Series)
Charlie Calvert
Addison-Wesley Professional 2009-03-22
売り上げランキング : 109833
Amazonで詳しく見る by G-Tools
プログラミングMicrosoft LINQ (マイクロソフト公式解説書 Microsoft Visual Studi)
小高 太郎 (株)オーパス・ワン
日経BPソフトプレス 2009-05-25
売り上げランキング : 43591
Amazonで詳しく見る by G-Tools
F#のUnits of Measureについて書きましたが、 Java 7でJavaでもこの機能が追加されるようです。(matarilloさん多謝)
具体的にどんな書き方になるかは以下を見ていただくとして、いい感じです。
【コラム】Java API、使ってますか? (9) けっこう便利! 単位を扱うAPI -- JSR 275: Units Specification | エンタープライズ | マイコミジャーナル
で、まぁこれを見て思ったのは.NETの標準クラスライブラリにならないのかなと言うこと。やはりF#に限らず使えると便利だと思うんですよね。
jsr-275: ホーム
http://www.google.co.jp/search?hl=ja&q=JSR-275&sourceid=navclient-ff&rlz=1B3GGGL_jaJP339JP340&ie=UTF-8
Andrew Kennedy: F# Units of Measure | Charles | Channel 9
F#のUnits of MeasureはそのままF#で単位と単位変換を処理できるようにするものです。
詳しくは下に書くリンク先のMSDNライブラリを参照してほしいですが、あらかじめ単位と変換式を定義しておくことで、F#のコードで単位付きの工業技術計算式をほぼそのまま書くことが出来ます。
これは僕らのように工業技術計算が主となるアプリケーションを作っている人間にとってはソースコードの可読性を大幅に向上し、潜在的な単位変換によるミスを減らすことが出来るので大きな進歩です。非常に強力なツールになりそうです。
Units of Measure (F#)
http://msdn.microsoft.com/en-us/library/dd233243%28VS.100%29.aspx
Microsoft F# PowerPack for .NET 4.0 Beta1
http://www.microsoft.com/downloads/details.aspx?FamilyID=e475a670-9596-4958-bfa2-dc0ac29b4631&displaylang=en
Units of MesureはPowerPackに含まれています。
また、ビデオにもでているアンドリューのBlogも参考になります。
Andrew Kennedy's Blog
http://blogs.msdn.com/andrewkennedy/default.aspx
Blogを見るとSI単位系等メジャーなものについては定義があらかじめされているようです。
STM.NETに関しては上の川西さんのBlogに付け足すことなんて無いです。
ググったらbingったら8月はじめぐらいにInfoQで記事になってたんですね。
並列化のプログラムでやっかいなのが共有リソース(特にメモリ)に対するロック、特にデッドロックが起きることです。このデッドロックを回避するためにフレームワークが提供する機能を利用したり、デッドロックを回避するためのアルゴリズムを実装するわけですが、たいていコードは複雑化して、そしてデッドロックします。
このため、並列化プログラムにおける共有メモリに対する処理をコード的にわかりやすくし、出来るだけデッドロックの恐怖から解放するための仕組みがソフトウェアトランザクショナルメモリになります。まぁ私がうだうだ書くよりWikipediaでも読んでいただいた方がいいですね。
とりあえずこのすばらしいソフトウェアトランザクショナルメモリ(STM)が.NET Fx上でも使えるようになりますよと言うことですね。来年と言わずに今すぐくださいw
STM.NET
http://msdn.microsoft.com/en-us/devlabs/ee334183.aspx
リリースノートやプログラミングガイド、ブツもここです。
チームBlog
http://blogs.msdn.com/stmteam/
.NET APIの使い方サンプルとしてわかりやすかったので、メモ。
The CodePlex Foundation, a non-profit foundation formed with the mission of enabling the exchange of code and understanding among software companies and open source communities, launched today, September 10, 2009.
10日CodePlexの運営母体がMicrosoft Corp.からNon-profit foundationであるCodePlex Foundationに変更され、MSから管理と運営が同団体に委譲されたました。
CodePlex FoundationはMSから援助を受けるもののアメリカ国内法に基づくNPO法人として設立され、法人としてはMSとは全く別の法人となります。
これはmonoのMiguelが書いているように、MSにとっては過去フィクションとも思えていたような大きないい方向への変化だと思います。
Miguelも理事会に入るようですね。
CodePlex Foundation - Miguel de Icaza
I am glad that I was asked to be part of the board of directors of the foundation. And to work together with some great advisory board.
I hope that I can last more on this foundation than I lasted at the FSF, where I was removed by RMS after refusing to be an active part of the campaign to rename Linux as GNU/Linux.
なるほど、RMSみたいに意に沿わないからって尻を蹴っ飛ばす人はいないと思うけど。
そゆうものがMSDNサブスクライバダウンロードに
Twitter / Vineet: Silverlight. WPF. WCF. WF. ...
Silverlight. WPF. WCF. WF. C#. VB. IronRuby. IronPython. ASP.Net. ASP.Net MVC. C++. 1.2.3.4.5 Hey throw out some more stuff will ya?
もっとスタッフよこせーという気持ちはわからんでも無い。
PDC09のセッションリストが公開されているが、確実に去年のPDCでは目玉であったはずのOsloのOの字もないという。 まぁまだ全部じゃないようなので、これから追加されるかもわかりませんけど。
Nicholas Allen's Indigo Blog : Silverlight 3 GDR 2
Silverlight 3 has been updated with a small set of bug fixes and support for the GB18030 code page for developing Chinese localized applications.
いつの間にGDR1が出てたんだって方が気になりますが、GDR2が出たようです。
GB18030のサポートと言うことで、外字を使われている方は検証をしっかりやった方が良さそうです。Macでもすべきかはちょっと資料が見つけられてなくてわかりません。Silverlightの文字列周りは実際には環境依存するらしいので、気になる方はGB18030の文字でUNICODEにマップできない文字がどこにマップされるのか調べて、自分たちが使用している外字エリアと重ならないか確認した方がいいでしょう。
Windowsについては以下を参考にしてください。
OPC Diary: WindowsにおいてはUNICODEのユーザーエリアに東アジア言語のコードページ用の予約領域がある。
一応上のリンク先の数字が現在の数字らしい。
個人的にあんまり意味のない数字だと思っていたりもするのだけど、純粋にIronRubyをCRubyの代替として使いたい人には気になる数字だろう。
私としてはRails動くとか言うよりも.NETやSilverlight上でそれらのクラスライブラリや自作のライブラリやCOMを簡単に扱えるRuby言語であってほしかったりもしたのだけどもう方向性違うよなぁ。
TFSをサービスとして提供されるようです。
ユーザー数課金のようなのですが、レポジトリデータベースの容量制限についてどこにも書かれて無く、人ごとながら心配です。。。
C#擬人化と言うことで、ufcppさんが知り合いの人に頼んでいたものがほぼ完成でしょうか。
ものすごくいい感じです!
ufcppさんのBlogでは髪留め2パターンとなっていますが、C#のイメージカラーが緑なので、断然こっちの方がいいw
さてこの子の性別は。。
Windows Sensor and Location platformのお話。
でも中心のセッションででも内容としてはFreescaleの評価をキットを使ったデモで、評価キットの傾斜センサーの入力にあわせ、WPFのアプリケーション上のモデルが動作するものなどが中でした。あとは、DPWSのお話。
Windows sensor adn location platformは温度センサー、照度センサー、傾斜センサー、GPSなどのデータを統一して扱うためのCOMのAPIセットで、これまでそれぞれのデバイスメーカーごとに異なっていたAPIを統一しデバイスメーカ側にはそのためのドライバを書いてもらおうというものです。センサーは何でもかんでもあるわけでも抽象的過ぎるわけではなく、モバイルPCに付属(同じ筐体内)したり、USBで簡易に取り付けられそうで、あると便利なものが選択されている感じです。
これ向けのドライバはユーザーモードデバイスドライバフレームワーク(UMDF)として作成するので、カーネルモードデバイスドライバを作成するよりも開発が楽に行えると思います。(カーネルレベルでのデバッグをしなくてもよいので)
最後にフリースケールの評価キットまでいただいたので、これからがんばって勉強したいと思います。
リソース:
MSDN Code Gallery : Windows Sensor And Location Platforms
ここにFreescale評価キットを動かすためのコードがあります。
Flexis JM USBマイクロコントローラ搭載のWindows向けセンサ開発プラットフォーム:JMBADGE2008-B
(Freescaleの評価キット)
http://jp.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=6768698
通販で販売されてます。うっこんなするんだ。。
Jim Travis's Blog
US担当者のBlog
“匠の国”、日本で、組込み全開!!
講師太田さんのBlog
デバイスドライバーズ 組み込みLinux Windowsデバイスドライバ開発
DPWSの開発をされた会社
VB6はどこまで生き延びることができるか? - Blog on Publickey
日本での現在の調査結果は見つかりませんでしたが、僕が知る範囲でも、新規開発で使われている例はさすがにありませんが、過去にVB6で開発されたパッケージソフトのカスタマイズを案件ごとにVB6で行っているという例はまだ少なくないようです(VB5で開発されたパッケージですらまだ現役で使われているようです)。こうした現状があるからこそ、マイクロソフトはいまだにVBマイグレーションセンターのリニューアルなどに勤めているのでしょう。
いや、まだ新規案件の話とか聞くから。。。
記事にある通りまだ10年ぐらいは残ると思う。
とりあえず、VB6から.NET Framework環境へのマイグレーションは以下を参照。
まぁ基本作り直す覚悟は必要ですが。。
Moonlight 2.0 goes Beta - Miguel de Icaza
と言うことで紹介。
Moonlight 2.0はSilverlight 3.0との互換環境を構築すべく開発が進められているMonoのプロジェクトです。
wikiだけじゃなくて全部公開して。
InfoQ: CodePlexのWikiエンジンがオープンソース化
このサイトで公開。
Silverlightが簡単に埋め込めたりできるのはおもしろいと思います。
Monoでも動作するようですよ。
以下Blogで解説されています。
Microsoft Windows SDK Blog : Using the Win 7 SDK Build Environment with VS 2008
ま、前と同じでWindows SDK Configiration Toolがあるのでということですね。
また、Win7 SDKがMS Downloadでダウンロード可能になりました。
本体MSDN公開にあわせ?1.0リリースとなったようです。
Windows® API Code Pack for Microsoft® .NET Framework - Release: Windows API Code Pack 1.0
うほ。意外なところから。
Ruby Freaks Lounge:第17回 Ruby on Railsで開発するSilverlightアプリケーション|gihyo.jp … 技術評論社
おもしろいなぁ。Rubyの人はこういう発想するのか。
IronRuby is also part of the DLR project which has up-to-date IronRuby and IronPython binaries which work together. IronRuby 0.6 works on both Microsoft.NET and Mono
上から、CodePlexのダウンロードページに飛べます。
Jimmy SchementiのBlogにあるように0.9は主の機能がすべて実装されたバージョンで、これ以降は1.0リリースに向けて調整やバグつぶしが主になっていきます。
0.9で追加された機能は上でリンクしているJimmyのBlogに書かれていますが、以外でびっくりなのがWin32OLEのサポートかなぁ。こう来ますか、そうですか、CRubyとそこまで互換性をどん欲に求めますかというところです。
ということで楽しみましょう!
IronPython 2.0.2 is a minor update to IronPython 2.0.1, which in turn is a CPython 2.5-compatible release running on the .NET platform. Our priority was to make IronPython 2.0.2 a bugfix release that remains backwards-compatible with IronPython 2.0.1. In particular, we focused on issues the IronPython community brought to our attention through CodePlex. As such, there have been important improvements on the compatibility and stability of IronPython as summarized below.
ということで、2.0.2のリリースです。基本Bugfixのみです。
そゆもの。各位アップデートのほど。 ちゃんと英語版環境を用意するのですよ。
Silverlight3なTwitterクライアント。良い感じです。
とりあえずいろいろあったのを五月雨的に書いてきたのですが、いささか分散気味なのでここの断面で解りうる範囲で情報の入手先をまとめておきます。
Windowsプラットフォーム向けコンパイル済みバイナリの入手はCodePlexからになります。
最新の正式な公開バイナリーバージョンは7/2に公開されたVersion 0.6です。
RSSフィードを通してDaily Buildを入手することもできます。
http://nightlybuilds.cloudapp.net/rss.ashx?project=dlr
ソースコードの管理はここがややっこしいところですが、CodePlexではなく、githubで行われています。
http://wiki.github.com/ironruby/ironruby
http://github.com/nrk/ironruby/tree/master
ZipやTarボールでソースの入手も行えますが、Gitクライアントを使って入手されるのが良いと思います。
各プラットフォームビルド環境向けのビルド方法は以下のWikiページを確認してください。
http://wiki.github.com/ironruby/ironruby/building
Visual Studioがあると楽ですが、無くても.NET FxのSDKがインストールされている環境であればビルド可能です。
また、monoの上でもビルド、動作が可能なので、Windows以外でもmonoが動く環境なら動作する可能性があります。(個人的に未確認)
情報の中心はこれもやはりCodePlexではありません。
以下のIronRubyのページになります。
ちなみにRuby on Railsの動かし方はこちら
http://ironruby.net/index.php?title=Documentation/Real_Ruby_Applications/Rails&highlight=Rails
とりあえず以下のBlogは押さえておいた方がよいと思います。
John Lam on Software(嫌なドメイン名だw)
荒井省三のBlog(Ruby会議お疲れ様でした)
Jim Hugunin's Thinking Dynamic
IronRubyはMicrosoft Public License(Ms-PL) の元で公開されています。
http://www.opensource.org/licenses/ms-pl.html
http://www.microsoft.com/japan/opensource/licenses.mspx#Ms-PL(日本語訳)
ということで、Ruby会議に便乗して(?)まとめてみました。
ということだそうで、Re:MIX会場では大インスコ大会になっていたとかいなかったとか。
ちっ。く、くやしくなんかないんだからね。
講師:小野修司氏
オーディエンスすくねー!両手で余るぞ。
Dynamic Dataは簡単に作れるけど、使いにくいよね。
簡単なデータバインド部分だけ使って使いやすいデータ更新のWebアプリケーションを作ろうというお話。
セッション内容は基本デモ
DynamicDataManagerControlがメインのエンジン。これとグリッドコントロールを使う。
自分で作ったWebフォームからDynamic Dataのページにリンクされてしまうのは嫌なので、その場合にはGlobal.aspxでルーティング部分のコードをコメントアウトしてしまう。
SQLのフィールド名がそのままグリッドの項目名になってしまうので、Gridコントロールの列名を変更するメタデータを作って変更する。同様にメタデータを作成することでバリデーションコントロールを使ってフィールドを必須項目にしたり、デフォルトのエラーメッセージを変更することができる。
Dyanmic Dataプロジェクトを使うと煩わしい部分の多くをDynamic Dataプロジェクトがやってくれるのでデータ検証等が非常に作りやすくなることがわかりました。
オーディエンスがちょっと増えてきた。
講師:池原大然氏
Prismは分割開発を柔軟に行うためのフレームワーク
モジュール方式でモジュールを個別に開発し、それをシェルで統合する。
PrismはSL2とWPFをサポートする。
基本的にダウンロードしたパッケージを展開して、自分でビルドする必要がある(撥一つ動かすだけだけど)
すべてのモジュールを表示させる領域が表示されるメインページ
シェルを領域に分割する
静的もしくは動的に分割
三つのアダプターがある
シェルは事実上SL Pageの名前が変わっているだけ
領域の作成はXAML手書きw
領域はSLのGrid等の箱を用意しておいて、そこにCntentControlをおいていく方法。ContentControlにはRegionを設定する。
App.Xaml.csで最初に呼び出す
コンテナの設定~モジュールの生成という起動時のパイプラインを提供する。
プログラマがこれ用のクラスを作成する。UnityBootstrapperクラスを継承する。
モジュールカタログにモジュールを登録
モジュールマネージャはモジュールカタログを元にそれぞれのモジュールの初期化を制御
ここのモジュールの初期化。モジュールはIModuleインターフェイスを継承する必要がある
モジュールカタログはXAMLでも定義できる。
モジュールはMVVMモデルで構築する(ビューとコントロールは分離する)
IModuleを継承したコントロールクラスのInitializeメソッドからビュークラス(SLのPage)を呼び出す。
モジュール内またはグローバルでの情報交換
モジュール間では通常のSLのイベントは使用できない
CompositPresentaonEvent<IType>がその代わりにに用意される
EventAgregatorでイベント特定
イベントの発行元・受信先を作る必要がある。
コマンドはUIイベントの発行
RegionContext
共有サービスはサービスロケータを使用し共通インターフェイスを取得
通信めんどくさそう
なんとなく感覚的なところはわかった。
全体説明するにも40分は短い感じでした
講師:森屋氏
感想とメモだけ。
Azureを使うときは自分を責めない。
Azureを触るときはHello Azure止まりでなくてちゃんとモデルまで実装して触ってみる。
Queueが結構面白い。やっぱATOMじゃない世界はぜんぜん違うな。
DataServiceとLinqは勉強しておく。
まずアカウントを取得して書くこと。
Microsoft® Silverlight™ 3 Tools for Visual Studio 2008 SP1
Microsoft® Silverlight™ 3 SDK
Microsoft Expression Blend 3 + SketchFlow RC
肝心なやつが見つからないぜw
英語と数学の波状攻撃でさっぱりわかりません。。。
イテレータ的な何かの代わりにオブザーバパターンを使って変更通知させるって事?要はLinqを使いながらDOM的ではなくて、SAX的に処理していけるって事なのかな。やっぱりよくわかりませんでした。あほだ俺。
まずは回答者と質問者のレベルあわせが必要です。
ディベロッパー製品開発統括部 Blog : .NET Framework v4 以降の国と地域のデータの更新と取得方法に関するご意見をお寄せください
Windows NLSおよび.NET Fxの国際化関連クラスの詳細について熟知しているような開発者であれば、この質問でも意見を寄せることができると思いますが、この内容でとくに普段から NLSになじみのない開発者がほとんどな国内の状況でちゃんとした意見が寄せられるか疑問です。たぶんほとんどの人が実は反応して意見を述べておかなければならないのに、意見が言えないということに、この質問内容ではなってしまうでしょう。
我が国の開発者がアジア言語を使うにもかかわらず特にNLSを意識しないで、ソフトウェアの仕様・開発が行えるのは御社の努力以外にはないのですが、それ故にNLSの詳細について知っている人は少ないです。
従って、もう少し具体的な例を示しながら変更案を提示し意見を求めるようにしてはいかがでしょうか。その方がお互いにとって実りのある意見交換ができると思いますので、ご考慮いただけると幸甚です。
(以上MSDNフォーラムにも記載)
うー。むちゃくちゃはまったのでメモ。知っている人には常識だよね。。
ZIPファイルをダウンロードしたら、右クリックしてプロパティウインドウのブロックの解除をしておくこと。
これをやっておかずにZIPファイルの内容をどこかに展開し、その展開されたプロジェクトを開くたびにVisual Studioから、「プロジェクトの場所は信頼されていません」とお叱りを受け、散々な問題が起こります。。とりあえずVista/Win7ではダウンロードしたファイルに対してはウイルスチェック等を行い問題ないようならこのボタンを押す癖をつけといたほうがいいですね。
追記:
英語のMSDNライブラリにはコメントがちゃんと付いてるね。。
http://msdn.microsoft.com/en-us/library/bs2bkwxc%28VS.80%29.aspx
うほ。おもしろい。
Code Monkey: Mono in Visual Studio 2010
ビルド対象としてMono 2.0が選択できるyほうになっています。
VS2010はEclipseへの対抗の意味もおそらくあって、拡張性に関する機能が強化されていて、今後もこのような拡張が様々に行われる可能性があり、その可能性の中に痛IDEもあります。
いよいよ製作解説が始まるようです。
日本でITエンジニアを一定数以上望む方向に駆動しようと思う場合、戦略的に「萌え」を使う事は重要です。彼らの「萌え」を希求し、「萌え」を得るための情熱、行動力を無視することはできません。彼らは「萌え」のためであれば、寝食を忘れ、たとえ火の中水の中。。。
したがって、VS10普及のために「萌え」拡張でデヴェロッパを釣っていくことは容易です。彼らは、
とかいいながら、立派に釣られてくれます。
え?あ、はい。もちろん自分のことを話してるに決まっているじゃないですか。
I'm PCならぬI’m VBだそうです。
まぁ、国内じゃI'm PCキャンペーン自体やっていないので、よけいわけわからめですが。
ちなみにI'm C#とは誰も言っていないらしい。
しばらく間が開いてしまいすいませんです。前回は基本的なクエリーまで説明したので、今回からはもう少し複雑なクエリー式の説明をします。
今回はJOINを説明します。
JOIN(結合)はLinqにおいてもリレーショナルデータベースの結合と同じく一定の条件の下データ同士を関連付けます。
結合(Join)の概念がちょっとわかりにくいという方はSQLの入門書で結合(Join)について勉強してみるといいと思います。このJOINあたりからが実際にはLinqの非常に強力な使用方法になっていきます。リレーショナルデータベースのデータでもないものを簡単な書式でJoinできるというのは実はすごいことなのです。
日本ではTechEdも終わってませんが、そろそろPDCの話題が出てきました。そういえば2年連続でPDCをやるのは初めてじゃないかと思います。
おめでたい。
Microsoft Robotics Developer Studio
http://channel9.msdn.com/posts/LarryLarsen/Robotics-Developer-Studio-2008-R2-Available/
MSDNサブスクライバダウンロードにも登場しています。
v0.9になりました。
Windows® API Code Pack for Microsoft® .NET Framework - Home
7/4のNT-Committee2九州勉強会ではこれをねたにLTやろうと思っておりますので、よかったら来てください。
荒井省三のBlog : DLR の COM バインダーに対する考察
現状のDLRのCOMバインダではCOMのインスタンス化は動的な追加が可能になって簡単になるものの、リリースは勝手にやってくれないので、自分が面倒を見る必要がる。ただ、将来的には望みがあるかもよということのようです。
うーんそうですかって感じで、現状はDLRを使ってもReleaseComObject()地獄は変わらないか。プロセスがターミネートしてしまえば、嫌でもCOMはリリースされてしまうので簡単なコンソールアプリやフォームベースのアプリはいいのですが、サービスを造るとなると今までどおりですな。。
DynamicでCOMのリリースまでDynamicになればすばらしいのだけどなぁ。正直なところCOMのリリースがイージーにならないと、COMが使いやすくなりましたとはかなり言い辛い。
Microsoft project code named "Velocity" : Update on Velocity upcoming release - CTP4
9月半ばリリース予定とBlogに書かれています。
個人的にはちょっと興味をなくしかけていて、どこまで追いかけようかって感じなんですがね。。
正直なところMemcachedで十分いろいろまかなえそうってところで興味をなくしつつあり。
わけないだろ。しかし、実際に行動を起こした人は偉い!
Visual Studio 2010 が WPF ベースなので痛IDEに出来るのではないかという話 - using Misuzilla.Subtech; - subtech
インテリセンスのカスタマイズ。二次元キャラが僕らのコーディングを助けてくれるお。
コードエディタの背景を、お好きなグラフィックに変更w
後考えられるとこととしては、IDEのワーニングメッセージをツンデレにしてみるとか(できるのか?)、ツールバーメニューあたりの背景ももっと萌えが必要とか。
もはや無かった事にされたんじゃないかと思っていたLinq to XSDですが、CodePlexでOSS(Ms-PL)として開発が続けられることになったようです。
現状はそのままインストール可能なバイナリはありません。
ちなみにCodePlexでLinqをキーワードに検索すると401プロジェクト。Linq toで検索しても398プロジェクト。皆さん何か悪いものでも(ryということでもないと思いますので、なんか、Linqがすごい人気。
Michiko's Blog : Japanese Visual Studio 2010 Beta1 Product Documentation is now available!!
ドキュメントの機械翻訳版が提供され始めたようです。
VS10
http://msdn.microsoft.com/ja-jp/library/fx6bk1f4(VS.100).aspx
.NET Fx 4
http://msdn.microsoft.com/ja-jp/library/w0x726c2(VS.100).aspx
機械翻訳の提供のされ方はMSN翻訳とかでもおなじみの原文が左、訳文が右に来るスタイルです。
そのほかTeam Foundation Server、.NET Fx 4の日本後ランゲージパックも公開されています。
Erika Parsons and Eric Eilebrecht : CLR 4 - Inside the Thread Pool | Going Deep | Channel 9
時間がないので、後で見るという感じでまだ見てませんが、ある意味.NET Fx 4で大幅に拡張される並列化機能の肝なので、必見なんじゃないかと思います。
MicrosoftがXBox Liveでベイズ理論を使ったランキングシステムを投入し話題になっているようだ。現状対応しているゲームはHAILO 3 SOCOMらしい。
具体的にはオンでのプレイ状況を細かくデータ化して、単純に生き残った、沢山敵を倒しただけではなく、如何に巧みにプレーしたかを解析してランキングするというもの。
なんというDryadの無駄遣いとか思いつつも、今は一番そこがお金になるし、お金も出るから、技術をジャンプアップさせていくのにはいい場所だと思ったり。
以下は、これに関するMSRのサイトと資料。
TrueSkill™ Ranking System: Details - Microsoft Research
http://research.microsoft.com/pubs/74417/NIPS2007_0931.pdf
数式ばっかりでよくわからないよなw
追記:
いろいろわかったので。。。
研究は2005年ぐらいから始まっている。
製品として使われたのはHAILO 3から。
論文へのリンク
http://research.microsoft.com/apps/pubs/default.aspx?id=67956
関連すると思われるF#での機械学習についてのPPT
http://cufp.galois.com/2007/slides/PhilTrelford.ppt
基本的にF#のスライドだがTrueSkillの話も出てくる
ふぁびょって書いたけど結構長いプロジェクトなんだな。
| Framework Design Guidelines: Conventions, Idioms, and Patterns for Reuseable .NET Libraries (Microsoft .Net Development Series) | |
![]() | Krzysztof Cwalina Addison-Wesley Professional 2008-10-31 売り上げランキング : 5709 Amazonで詳しく見る by G-Tools |
豊洲の某社某社員の方が翻訳しきっているらしい。すばらしい。こんな分厚本よく仕事の合間に翻訳されたと思う。
絶対に出版すべき>日経BP&マイクロソフト