メイン

2010年03月12日

ASP.NET MVC 2 RTM

ということで、これを待望にしていた皆さんおめでとうございます。

Download details: ASP.NET MVC 2 RTM

この公開は.NET 3.5/VS2008向けです。.NET4/VS10向けはVS10の製品リリースにあわせた方になると思います。

2010年03月06日

Ch9 : Your Rx.NET Prescription Has Been Refilled

Get Microsoft Silverlight

Your Rx.NET Prescription Has Been Refilled | Rx Dev Videos | Channel 9

その筋の人向け。

2010年03月03日

NUnit 2.5で追加されたAssert.Throwsでの注意点

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分ぐらい悩んじゃった。)

しかし、日本語の情報無いなー。

2010年02月25日

TechDays 2010 2日目 T2-302 Visual Studio 2010で実践するアジャイル開発 #techdaysj

講師:長沢智治

VS2010におけるチーム開発機能、ユニットテストツール、コード分析機能、モデリング機能とチーム開発環境との連携、仮想化を使ったテスト環境の管理ツール、VSとは独立したテストスィートに関する説明でした。

VS開発チームが実際にVSを使いScrumで開発を行っており、そのフィードバッグが製品に良く反映されているのだと思います。

VSのコードエディタ上でメソッド選択して、リバースでUMLのおシーケンス図を書いてくれるのにはちょっと感動しました。(逆はできませんけど)

あるいみ、VSのUMLモデリング機能はものすごくスケッチャー向けの機能なんだと思います。

ではtsudaりのまとめ。

TechDays 2010 2日目 T2-306 WCF Data Servicesの新機能とOpen Data Protocol #techdaysj

講師:小高太郎

Open Data Protocol(OData)とそれを.NET上で実現するWCF Data Servicesについての説明でした。

OSSのサーバーソフトウェアだとよくXML RPCによるAPIがあり外部プログラムから操作可能ですが、それと同様なことがMSのサーバー製品やその他においてもODataで実現されていくのだと思います。他社への実装の働き崖が大事になってくると思います。

ではtsudaりのまとめ。

TechDays 2010 2日目 T2-301 .NET Framework 4.0 時代の言語 #techdaysj

講師:荒井省三

内容は.NET 4で取り入れられた、あるいは改良されたプログラミングパラダイムについての解説で、その中でF#, XAMLといったものが解説されました。

Ruby作者のMatzさんとかも言っていますが、今後10年の言語トレンドは宣言型、あるいは関数型のパラダイムが主流になっていくと思っているので、資料を見れる方は見ていると良いかもしれません。

  • 引き続きRoom C #T2_301 #techdaysj posted at 10:48:59
  • .NET Framework 4.0 時代の言語 #T2_301 #techdaysj posted at 10:54:13
  • Dynamic(動的) #T2_301 #techdaysj posted at 10:57:29
  • 動的とは?ダックタイピングを実現するのが「動的」 #T2_301 #techdaysj posted at 10:58:12
  • Linqがすでに導入されている。エクスプレッションツリーを調べるとラムダ式が遅延実行されていることが理解できる #T2_301 #techdaysj posted at 11:00:31
  • DLRが.NET4から正式に追加される。System.Dynamic名前空間。言語ごとのバインダーがある。バインダーは振る舞いを決めるもの。 #T2_301 #techdaysj posted at 11:01:31
  • DLRと動的言語との関係。表にまとめられている。オープンソースのDLRコアは2.0対応になっているので名前空間が.NET4と違う。Mcrosoft.Scriptingで始まるヘルパーはOSS #T2_301 #techdaysj posted at 11:04:03
  • C#4、VB10とDynamic 各言語ごとのバインダーがある。C#ではdynamicキーワードが追加。実際にはこれはクラス。 #T2_301 #techdaysj posted at 11:05:22
  • VB10ではレイとバインディングを実現するクラスがDynamicを使うように再設計された #T2_301 #techdaysj posted at 11:05:57
  • DLRを提供するメリット。動的言語が作りやすい。性的言語と動的言語、動的言語同士ののり付けがしやすい。Dynamicオブジェクトが作れる、新しいCOM互換性の提供 #T2_301 #techdaysj posted at 11:09:00
  • 埋め込みスクリプトのデモ #T2_301 #techdaysj posted at 11:10:24
  • C#のコードと動的言語のスクリプトとの相互運用についてのデモ。簡単なペイントアプリケーション。ペイントオブジェクトを動的言語で制御する。 #T2_301 #techdaysj posted at 11:13:47
  • RCW Runtime COM Wrapper #T2_301 #techdaysj posted at 11:16:50
  • @k1ha410 IronRuby, IronPythonの話も出ていますが、話の内容としてはC#/VB側からの視点です。 #T2_301 #techdaysj posted at 11:23:09
  • ExpandoObjectはリテラルなメンバとDelegateを動的に増やすことができる #T2_301 #techdaysj posted at 11:24:49
  • いつDyamicを使うべきか #T2_301 #techdaysj posted at 11:25:26
  • DIコンテナの代わりにスクリプトをホスト(コンテナ)の代わりにする。振る舞いの変更をスクリプトにする。いろいろな方法論があるけど難しいかも。 #T2_301 #techdaysj posted at 11:27:45
  • 動的言語ユーザーはAOPに関心がない。(そりゃ振る舞いを自由に変えられるんだからね。。) #T2_301 #techdaysj posted at 11:28:34
  • 宣言型とは何か。 関数型言語、処理方法ではなく対象の性質を宣言する。 #T2_301 #techdaysj posted at 11:29:41
  • 宣言型パラダイム。Linq, ラムダ式 ラムダ式は関数型言語の基礎。ノイマン型プログラムはラムダ式で表現できる #T2_301 #techdaysj posted at 11:30:43
  • 宣言型パラダイム。 XAML。XAMLは対象オブジェクトの性質を宣言している。オブジェクトの複合化、依存プロパティシステム。 #T2_301 #techdaysj posted at 11:32:05
  • .NET4でのXAML。汎用言語化。SLのXAMLとWPFのXAMLとの互換性向上 XAML2009(?) #T2_301 #techdaysj posted at 11:33:09
  • 宣言型パラダイム F#言語 F#はマルチパラダイム言語 #T2_301 #techdaysj posted at 11:33:52
  • XAMLの進化。Syste.Xaml.dll XAMLエンジンの共有化され、フレームワーク化されている。 #T2_301 #techdaysj posted at 11:35:24
  • XAMLノードストリームのDemo #T2_301 #techdaysj posted at 11:35:49
  • XAMLで汎用的にオブジェクトのシリアライズ、デシリアライズができる #T2_301 #techdaysj posted at 11:40:46
  • マークアップ拡張 #T2_301 #techdaysj posted at 11:41:50
  • F# 関数をファーストクラスをとして持つ。型推論 #T2_301 #techdaysj posted at 11:44:37
  • 「副作用がない」店に関するデモ #T2_301 #techdaysj posted at 11:47:28
  • F#の型推論の説明 #T2_301 #techdaysj posted at 11:49:58
  • F#は対話インターフェイスとコンパイラが用意されている #T2_301 #techdaysj posted at 11:51:08
  • 関数は式、式は絶対値を返す。 #T2_301 #techdaysj posted at 11:54:47
  • 同時実行(Concurrent) #T2_301 #techdaysj posted at 11:55:26
  • ムーアの法則 CPUはメニーコアへ。リーク電流により実際には微細化は難しくなってきている。絶縁体の工夫、立体化による延長はあるが。。 #T2_301 #techdaysj posted at 11:56:47
  • マルチコアのの同時実行はタイムスライスによる疑似並列は違うことに注意 #T2_301 #techdaysj posted at 11:57:55
  • アムダールの法則 基本的に悲観論 #T2_301 #techdaysj posted at 11:58:08
  • .NETでの並列 #T2_301 #techdaysj posted at 11:59:38
  • OSのユーザーモードスケジューラーの説明。OSスレッド単位での管理 #T2_301 #techdaysj posted at 12:00:22
  • ユーザーモードスケジューラ。OSのカーネルベースのスケジューラーとユーザー空間内のスケジューラーを分ける #T2_301 #techdaysj posted at 12:01:12
  • .NET 3.xまではスレッドプールのキューはAppDomainごとに一つ #T2_301 #techdaysj posted at 12:01:47
  • .NET4ではタスク(ワークスレッド)ごとにスケジューリングキューを持つ。マルチコアでのキャッシュ破壊をできるだけ少なくしたい #T2_301 #techdaysj posted at 12:03:09
  • 言語と同時実行 F#にはASYNCライブラリがある #T2_301 #techdaysj posted at 12:03:50
  • PLinq #T2_301 #techdaysj posted at 12:04:01
  • PlinqのDemo #T2_301 #techdaysj posted at 12:04:18
  • まとめ #T2_301 #techdaysj posted at 12:08:28
  • 並列化を突き詰めていくとアルゴリズムになる。関数型言語でなくても良いが関数型のパラダイムを取り入れる必要が出てくる #T2_301 #techdaysj posted at 12:09:47
  • このセッションのつぶやきは以上 #T2_301 #techdaysj posted at 12:10:00

2010年02月24日

TechDays 2010 2日目 T2-303 並列プログラミングパターンとVisualStudio 2010を使ったその適用 #techdaysj

講師:川西裕幸

Visual Studioで追加された並列関係機能、特に.NET 4.0での並列化についての解説でした。このようなフレームワークによる並列化支援はあるものの、結局のところアムダールの法則を乗り越えるには正しいアルゴリズム設計、分割可能なデータ構造の設計といったものが結局のところ必要だと感じました。

ではtsudaりのまとめです。

2010年02月23日

TechDays 2010 1日目 T1-402 クラウド時代のアーキテクチャ + Azure + Data #techdaysj

講師:森屋英治(株式会社アークウェイ)

このセッションでとりあえず参加費の元は取れました。

セッション資料中の図表類は非常に効率的で有用なので、参加者の方は今すぐ見ておくことを進めします。また資料は後日一般公開がされるようなので、参加されてない方もAzureでの開発はなくても一般的なエンタープライズアプリケーションの構築に関わる方はごらんになっておくと良いと思います。

とにかく縦横無尽にWCF何とかを中心としたアーキテクチャ解説とデモは見事というしかありません。エクセレント。

TechDays 2010 1日目 T2-307 コードネーム”Oslo”の今、そして #techdaysj

講師:長沢智治

Osloは交代しているように見えるが実は現実的なところに戻って、これから元々の構想のように大きくなっていくのではないかという長沢さん言葉が印象的でした。

では自分のtsudaりのまとめです。

  • Room E #T2-307 #techdaysj posted at 14:31:32
  • 無線LANが不安定 #t2-307 #techdaysj posted at 14:36:01
  • コードネームOsloの今、そして#t2-307 #techdaysj posted at 14:38:06
  • 2007年 複数年にわたる計画として発表 #t2-307 #techdaysj posted at 14:38:43
  • PDC08 ビジネスモデリングツール #t2-307 #techdaysj posted at 14:39:01
  • PDC09 SQL Server Modeling #t2-307 #techdaysj posted at 14:39:20
  • 一エヴァンジェリストの意見としては知事待っているように見えるが現実的なっているだけ #t2-307 #techdaysj posted at 14:40:10
  • IT's ALLL DATA アプリケーションもデータである #t2-307 #techdaysj posted at 14:40:52
  • PDC08 M Quadrant Repository モデリングプラットフォームとしての要素 #t2-307 #techdaysj posted at 14:43:03
  • PDC09の段階でも構成要素は変わらないが位置づけと呼び方が変わった(決まった) #t2-307 #techdaysj posted at 14:43:42
  • SQL Server Modeling CTP VS201 Beta2が対象なので注意 #t2-307 #techdaysj posted at 14:44:23
  • Oslo Developer Center は無くなり Data Developer Centerに統合 また、英語版のサイトで確認すること(日本語のWEBでは表示されない) #t2-307 #techdaysj posted at 14:45:34
  • SQL Server Modeling 対象はアーキテクトと開発者 SQL Serverの将来バージョンの一部として提供される予定 #t2-307 #techdaysj posted at 14:47:35
  • M言語 言語仕様は08から大きく変更はないが、呼び方塔で変更がある。#t2-307 #techdaysj posted at 14:49:20
  • M言語の仕様はオープンになる #t2-307 #techdaysj posted at 14:49:40
  • Mはデータのための言語 MからT-SQL, EDMX等へのトランスレートが考えられる #t2-307 #techdaysj posted at 14:50:38
  • MVCやMVVMのModelをM出記述する #t2-307 #techdaysj posted at 14:51:23
  • ”M" えどったー #t2-307 #techdaysj posted at 14:52:48
  • プロジェクトのプロパティにM Deploymentというタブが尽かされ、リポジトリの位置を特定する。 (デモ中) #t2-307 #techdaysj posted at 14:55:32
  • M Languageのデモ中 #t2-307 #techdaysj posted at 15:04:25
  • Quadrant 開発者に様々なデータとの対話を提供 SQL Serverのデータを可視化していくためのツール 今回のCTPからはワークフロー間駅は視野に入っていない #t2-307 #techdaysj posted at 15:10:07
  • Quadrant のデモ #t2-307 #techdaysj posted at 15:10:31
  • QudrantはInteliPadの機能も内包し、様々なビューでデータの表示が行える #t2-307 #techdaysj posted at 15:15:41
  • Mによってモデリングのやり方に多様性がある。Mは構文解析ができるなど柔軟性がある #t2-307 #techdaysj posted at 15:20:58
  • Repository = SQL Server Modeling Service #t2-307 #techdaysj posted at 15:21:42
  • 現行CTPではできないがSQL Server Modeling Serviceよりリポジトリ情報を読み込んで、VS10で依存関係の表示(demo) #t2-307 #techdaysj posted at 15:27:43
  • Eclipseを使ってXMIのSQL Server Modeling Serviceへのインポートデモ #t2-307 #techdaysj posted at 15:35:37
  • すべてのデータがレポジトリ似格納される時代が来るかもしれない#t2-307 #techdaysj posted at 15:43:04
  • OData #t2-307 #techdaysj posted at 15:45:30
  • このセッションでのつぶやきは以上です #t2-307 #techdaysj posted at 15:47:40
  • @shin135 がんばって気力のある限りつぶやいていきます #t2-307 #techdaysj posted at 15:59:51

TechDays 2010 1日目 T1-301 Windows Azure アドバンスドアプリケーション解説 #techdaysj

講師:スティーブ・マークス

このセッションに関して私がtsudaった内容のまとめです。

また、セッション資料は後日一般向けにも公開されるようです。

PDC09以降Azureでの変更点特にWorker Roleの役割の大きな変更似合わせ、今のAzureアプリケーションの作成方法、アーキテクチャーに関するナイスな解説でした。

  • T1-301 は事前スライドなしか。がんばってつぶやく posted at 13:10:28
  • Azure上で動作しているPort 25を開いているサービスに送信するデモ。 Telnetでの送信デモ #T1-301 #techdaysj posted at 13:15:00
  • ロールアーキテクチャ #T1-301 #techdaysj posted at 13:15:44
  • WEBアーキテクチャ ASP.NET MVC SMTP(TCPListner) Search Lucene.NET でデモをしている #T1-301 #techdaysj posted at 13:16:41
  • Azure の新機能も使用 インターロールコミュニケーション 非HTTPエンドポイント ロールインスタンスライフサイクル VMサイズ ローカルストレージ #T1-301 #techdaysj posted at 13:17:46
  • Azureのアプリケーションモデリング 箱と矢印で書く 箱はサービス(ロール) サービスの参照方向が矢印。これから始めてみる #T1-301 #techdaysj posted at 13:19:44
  • どのロールがインターネットを向いているのか、Azureの中だけを向いているのか、外部はHTTPなのか、他のプロトコルなのか、なんで作るのかを考え、WEBロールを決定していく #T1-301 #techdaysj posted at 13:21:18
  • 入力エンドポイント 同一ドメイン上の異なるポート 常に付加分散される Service.Definition.csdefで定義。WEBロールのIISで処理。Workerロールであれば自分でどのようなプロトコルでも実装できる。 #T1-301 #techdaysj posted at 13:24:12
  • 入力エンドポイントのデモ #T1-301 #techdaysj posted at 13:24:35
  • 外に開かれているポートと実際にアプリケーションがListenするポートは違うので、APIでListenするポートを確認する必要がある #T1-301 #techdaysj posted at 13:28:41
  • スパマーがAzureを使う可能性がある。BlackListにAzureのIPアドレスが載ってしまう可能性がある リレーによるメール送信がおすすめ(Hotmailtとか) 受信は問題がない #T1-301 #techdaysj posted at 13:30:34
  • Search Lucene.NET 人気のある検索API C#の実装 データのインデクシングの機能 検索の提供(WCF) #T1-301 #techdaysj posted at 13:32:30
  • キューを使用しない非同期処理 テーブルを使った非同期の処理 セカンダリインデックスの構築 オーダー参照 (クロックドリフトに注意)要は常にテーブルに検索をかけ、変化を確認し、変化に応じた処理をする。 #T1-301 #techdaysj posted at 13:36:40
  • インスタンス間で時刻がちゃんと同期されていないので、時刻をキーにせず数字で代用するなどする必要がある (クロックドリフト) #T1-301 #techdaysj posted at 13:37:28
  • 初期化 listenするまで受信できない ロールインスタンスライフサイクルを使う OnStart() Run()#T1-301 #techdaysj posted at 13:38:32
  • OnStop() のイベントが発生する #T1-301 #techdaysj posted at 13:38:54
  • OnStart() で必要な初期化を行いポートを開く準備をする。 Run() 通常の状態 ここでPortを開き通常の動作を行う OnStop() では停止を安全に行うためにリソースをスイープする #T1-301 #techdaysj posted at 13:40:29
  • 内部エンドポイント システム内部で使われるエンドポイント Service.Definistion.csdefでエンドポイントを定義 WorkerRoleと同様にAPIでlistenするポートを確認する必要がある。#T1-301 #techdaysj posted at 13:42:02
  • ポートはAzureのシステムがランダムに決定する 相手先についてはAPIにてすべてのロールのIPアドレスを取得することができる #T1-301 #techdaysj posted at 13:42:57
  • Searchのデモ中 #T1-301 #techdaysj posted at 13:43:53
  • 内部エンドポイントのインスタンスはロードバランサーがないので使う側が自分で相手先を選択する必要がある #T1-301 #techdaysj posted at 13:46:37
  • デモのコードって後で公開されるんだろうか #T1-301 #techdaysj posted at 13:47:09
  • RAMの追加 RAMDirectoryはすべてをメモリに置くストレージ 多くのメモリがいるのでVMサイズを選択する #T1-301 #techdaysj posted at 13:50:05
  • Smallで2GB Extra Largeで16GB 設定ファイルで定義できる #T1-301 #techdaysj posted at 13:50:46
  • インデックスの保存 オンメモリのインデックスはOnStop()で保存 設定ファイルに設定を書くときにローカルストレージに保存するように設定できる。ただし、必ず保存される保証はない。 保証がほしいならAzure Storageを使用する #T1-301 #techdaysj posted at 13:52:59
  • サイドバイサイドアップグレード バージョン1とバージョン2でIPアドレスをスワップする(つまり元に戻せる) #T1-301 #techdaysj posted at 13:57:24
  • インプレースアップグレード(ローリングアップグレード) どのロールをアップグレードするかの特定。(全体をSWAPしなくて良い) ローカルストレージデータの維持。ステートフルなロールに最適 #T1-301 #techdaysj posted at 13:59:19
  • まとめ中 #T1-301 #techdaysj posted at 14:03:30
  • とりあえずここでのつぶやき終わりです #T1-301 #techdaysj posted at 14:04:47

TechDays 2010 1日目 キーノート Tsudaったまとめ #techdaysj

自分でtsudaった分のまとめです。

3スクリーン + クラウドの解説と関連製品・サービスの紹介。

Azureの導入事例の紹介でした。とりあえず今Azure上でシステム構築する場合オンプレミスとクラウドをうまく連携させることを考えるとうまくいくようです。

TechDays 1日目 CM-204 Visual Studio 2010でプチ・パラダイムシフトせよ!つぶやきまとめ

頭の中を変えなければならないが、適したパラダイムにすればコードがシンプルになる #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

MEF - Release: MEF Preview 9

The Managed Extensibility Frameworkのプレビュー9が出ていました。

MEF - Release: MEF Preview 9

変更点としてはSilverlight向けにいくつかの名前の変更や名前の空間に変更があったのと、バグフィックス、サンプルの追加となっています。

2010年02月22日

TechDaysキーノートライブ配信 #techdaysj

明日からいよいよ始まるTechDaysですが、キーノートがSmoothStreamingで公開されます。(要Silverlight)

技術的な背景とか詳しいところは以下で。

Twitterを活用したTechDaysの楽しみ方(その2):高画質版のUST?でキーノートライブ配信:Azureの鼓動:ITmedia オルタナティブ・ブログ

現在もページは生きていてデモのSmoothStreamingのビデオが流されているので、自分の環境で見ることができるか確認しておくといいでしょう。

キーノート ライブ中継 - Microsoft Tech·Days 2010
http://td10.ds.ipcasting.jp/?lang=original

2010年02月19日

Introduction F# @ Channel 9

MSRの主任研究員でF#の開発者でもあるSyme先生によるF#解説の3回シリーズがChannel9で公開されています。これはエリック・メイヤー先生による長かったHaskellを使った関数型言語講義に続くChannel 9の講義シリーズのようです。

Get Microsoft Silverlight

続きを読む "Introduction F# @ Channel 9" »

2010年02月17日

Visual Studio 2008 でも定期的に累積パッチを出せないんだろうか

以下のページにVS2008 SP1以降に出たパッチ類の情報があります。

Visual Studio 2008 サポート ページ

かなりの数があって、直接のダウンロード、メールでの問い合わせによるダウンロードができるものがありますが、ほとんどはサポートの電話問い合わせが必要です。

これだけの数のパッチについてそれをやるにはあまりにも大変なので、一括でダウンロードできるようにしてほしいです。

かつて、VS2008にはGDRが出た実績もあるのだし、これらのパッチについてもSQL Serverのように定期的に累積パッチを出せないものなんでしょうか。

2010年02月13日

書評:Microsoft.NETでのテスト駆動開発

ジェームス・ニューカーク,アレクセイ・ウォロンツォフ
日経BPソフトプレス
発売日:2004-09-02

実際はだいぶ前に読み終わっていたのですが、社内向けTDD勉強会向け資料作成のため読み返した。

NUnit自体の記述についてはもう出版されてから数年たっていることもあって古くなってきてはしまっているが、TDDやユニットテストの本質が多きく変わったわけではないので、NUnitに関して自分で情報をアップデートできれば、ほとんど問題ない。

実際問題として、日本語で読めるTDDの本はそれほど多くないし、ましてや.NETに関するものほぼこれだけなので大変貴重。

洋書も出版後アップデートしてないのだが、VSの単体テスト機能やNUnitのアップデートにあわせた改訂版がそろそろほしいところ。

(ブクログより転載)

2010年02月12日

Inside Sync Framework 2.0

って言う本があったら今すぐ買う!っていう状態なのですが、そんな本はありません。ただ、幸いなことに以下の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:  }

2010年02月11日

IronRuby 1.0 RC2

そゆもの。DLは以下からお願いします。

Download – IronRuby

変更点はRubyForgeの方をご覧ください。

RubyForge: IronRuby: リリースノート

また、.NET Fx 4.0 RC対応のものがほしい方は以下より入手できます。

IronRuby - Release: CTP for .NET 4.0 RC(Code Plex)

IronPython - Release: 2.6.1 RC1 for .NET 4.0 RC

IronPython - Release: 2.6.1 RC1 for .NET 4.0 RC

.NET  Fx 4.0 RC向けがリリースされました。

2010年02月10日

Visual Studio 2010のヘルプシステム。

image

基本はオンラインのMSDNライブラリのようです。

インストール時にローカルにヘルプドキュメントをインストールできます(分かりづらい)が、上にあるように以前のような専用ツールではなく標準ブラウザでローカルのHTMLを見るようになりました。

また、このローカルドキュメント管理のために以下のようなツールが追加されています。

image

ここでオンライン・オフラインの切り替えなど行うようです。

2010年02月09日

VIsual Studio 2010 & .NET Framework 4.0 RC

英語版ですが、RCがMSDNでダウンロードできるようになりました。

Somasegar's WebLog : Visual Studio 2010 and .NET Framework 4 Release Candidate now available

Jason Zander's WebLog : Announcing VS2010 / .NET Framework 4 Release Candidate (RC)

2010年02月02日

Windows Azure : Windows Azure Tools and SDK 1.1 Released

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)

2010年01月28日

Microsoft TechDays 2010の参加証届く

届きましたよと。

うーんTwitterでどんだけMS好きなんだといわれましたが、確かに言われても仕方のない番号。

何でも早く登録した人特典でプレミアム特典がついたらしいです。

そんなTechDaysも後二十といくつか寝たら来てしまいますねー。皆さん宿の手配、飛行機の手配等々おぬかりなく。

参加登録がまだの人は以下のバナーをクリック。

公式twitterハッシュタグは #techdaysj です。今のうちから追っかけておくといいことがあるみたいですよ。

Tech・Days 2010

2010年01月20日

All-In-One Code Framework

All-In-One Code Frameworkは.NETやWindows開発での様々なコードサンプルを一つにまとめて、一挙に提供しようというプロジェクトのようです。現在のコードサンプルは290。

以下のサイトよりダウンロードできます。

All-In-One Code Framework

うーんこれすごいかも。

2010年01月19日

KODU PC版Tech preview

以前紹介したXBox 360のキッズ向けヴィジュアルプログラミング環境のKODUのPC版が出たようです。

image

KODU Game Lab

使用に当たっては.NET Framework 3.5とXNAのランタイムが必要になります。(インストーラでインストールするように言われ、ダウンロード先がリンクされます)

また、操作に当たってはXBox 360コントローラと互換性のあるPC用ゲームコントローラがあった方がいいと思います。

image

image

image

image

【レビュー】複雑化するゲーム開発と『Kodu』の意義 - ゲーム作りの興味を失う前に | ネット | マイコミジャーナル

2010年01月12日

C#たん 痛ンブラーを作ってみた

思い立ったら吉日と言うことで昨日作ってみましたよ。

送信者 Tumbler

元絵はこんな感じです。

I Love CSharp

作成にはクリタンメーカを使わせていただきました。

ということで、君も2月23日24日はC#たんタンブラーをもってお台場に集まろう(マテ

2010年01月06日

OPC UA SDK 1.01

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"

2010年01月04日

謹賀新年 2010

新年あけましておめでとうございます。

以下は国立情報学研究所佐藤先生の1月3日分の日記から

Windows開発者の皆様方にはたいへん失礼な物言いなのですが、Windows向けアプリケーション開発は時間が止まったような世界。そんな世界に浸った開発者がクラウドコンピューティング向けの新しいサービスを作れるかというと疑問なのですよね。あるプラットフォームが既存の開発者が有利という印象を与えたら、新規開発者はそのプラットフォームは避けるものです。Azureをイノベーティブになるには、既存のWindows開発者を切り捨ててでも、新規の開発者をAzureに引き込む必要があったのではないでしょうか。

それと過去の歴史を考えると新旧プラットフォームでアプリケーションの重複はない。例えばメインフレートとミニコンでは、メインフレームからミニコンに移行したアプリケーションよりも、ミニコン向けに新たに開発されたアプリケーションの方が多い。Azureのことに話題を戻すと、現在のWindowsのアプリケーションはWindowsで動かせばよく、Azureで動くアプリケーションは今までにないものになるということです。このため既存Windows開発者をAzureに連れて行ったために、Azureというせっかく新しいプラットフォームなのに古いアプリケーションを動かし続けることになりかねません。

ならばどうすればいいのかですが、他のプラットフォームの開発者を引き入れることも重要ですが、やはりエンドユーザによる開発ができるようにすることが求められるように思います。実際、Force.comはWebブラウザで開発できるので、開発ツールや統合環境のインストールは不要なのですが、こうしたインストール有無だけでもエンドユーザ開発の障壁になっていましたから、Visual Studioのインストールが必要なAzureって時代錯誤なのですよね。

Ichiro Satoh Homepage

Windowsの開発で時間が止まっているのはそうだろうな。SilverlightといってもVBから続くフォームベースのRADと大きく何かパラダイムが変わっているわけではないですし。

AzureですがAzure自体ワーカーロールで実質何をしてもいいという状態になり、いったいユーザー(この場合はAzure上にアプリケーションを作る立場の人・物)に何をさせたいのか余計にぼやけてきていますが、EUC(エンドユーザーコンピューティング)は一つの方向性を示していくと思うけど、なんでもつくれるAzureのままなんだろうなぁ。

ということで、今年はクラウド・コンピューティングが現実的な選択肢になり、本格的な普及に向けて最適なプロセス、最適な設計手法を求めてすったもんだして行く年になるのでしょう。

今年こそ、今までの何かの焼き直しでない突き抜けた新技術を見てみたいところ。オブジェクト指向を過去の物として本当に置き換える何かとか、既存のマイクロプロセッサアーキテクチャを根底から覆すようなプロセッサーアーキテクチャとか、いい加減HTTPから離れて、これからの時代に合う新しいプロトコル(wave?どうだろう?)とか、そういう物をみたいですね。

2009年12月18日

Microsoft TechEd Japan 2009のセッションが一般公開に

以下のリンク先でTechEd 2009のセッション内容をストリーミングで確認できるようです。 (要Silverlight)

Microsoft TechEd Japan 2009

スライドもPDFとして落とせるようになっています。

Azureストレージのテーブルでは最終的に非正規化するが設計において正規化しないわけではないと思う

 Azureストレージのテーブルでは正規化しないことがポイント - かめログ2

いくつかのソリューションサンプルを見たり、プロトタイプを作成しているうちに件の結論に行きつきました。間違っていたら教えてください。

単純に正規化しないは間違ったメッセージだと思います。

これははじめから正規化を放棄した(する)と受け取ったのですが、実際の設計作業ではそうでないと思います。KVSというかISAMが1つのKey値しか持ち得ないため、最終的なそれのデータ構造が非正規化してしまうのはある種仕方のないことなのですが、それがすぐに設計段階でデータを正規化しなくていいと言うことにはならないです。

基本的には一度従来通り正規化を行った上で、アプリケーションの特性や、Azureのテーブルならテーブル、GAEならGAEにと、それぞれにあわせた形で非正規化を行っていくというプロセスになると思っています。

無秩序にKey付きの構造化されたデータがあちこちに散らばるという状況はおそらく収拾がつかなくなるのでしょうし、RDBのように結合やグルーピングで後から任意の形にデータをまとめることができませんし、それを前提に将来のアプリケーション改修や保守を見込む必要もあり、むしろRDBの時よりAzureのようなKVSの方がデータ構造の設計は難しくなってきていると考えます。

当然非正規化されてしまっているので、データ更新するプログラムの処理も煩雑でわかりにくいコードになりがちです。

データパティーショニングの粒度設計なども絡んでクラウド・コンピューティングでのデータ設計の方が、従来のDBMSを前提としたC/SシステムやWebアプリケーションよりもデータ設計やソフトウェア設計においては難易度が高く、安易に考えない方がよいと思います。

いや、ほんとサンプル以上のものを作るのは大変だと思うんですよね。。。

Mono 2.6 ,MonoDevelop 2.2 and Moonlight 2

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を使用したことだと思います。

2009年12月16日

IronRuby 1.0 RC1 - Ruby Forum

何というか、これが正式アナウンスのようです。

ということで

IronRubyがとうとうRCになりました。

[ANN] IronRuby 1.0 RC1 - Ruby Forum

こちらのBlogのスライドにありますが、だいたい全体的にCRuby(1.8.6?)との互換性は90%以上にまでなってきたようです。

2009年12月14日

NTEmacs 23.1をインストールしてみた

自分の中で秀丸以外のエディタ環境を模索しつついろいろ試していますが、ある意味王道である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を起動するようにすると便利だと思います。

まぁ後は精進といったところですね。。。

IronPython - Release: 2.6

リリースとなりました。 1年ぶりのメジャーバージョンアップです。

IronPython - Release: 2.6

うーんDLR自体には変化がないなぁ。。IronPythonが正式リリースとなったので、こちらもリリースとなるのではないかと思います。

2009年12月10日

SQL Server Compact Editionはじめました

諸般の都合でSQL Server Compact Edition 3.5を使い始めることとになり、いろいろと祟られています。。

まぁぼやいていても仕方ないので、自分で調べたところはWikiの方にまとめ始めましたので、興味のある方はご覧ください。

しかし、これも情報が少ない。MSDNだけでもとりあえず何とかなりますが。。。

2009年12月09日

IronRuby - Release: 1.0 RC1

ということで、先月20日RCだったみたい。。。

IronRuby - Release: 1.0 RC1

なんかRSSにはRCxだのRC2とかあるけどみなかったことにしておこう。

2009年12月08日

IronPython.net

IronPython.net

IronPython 2.6の正式リリースに向け、IronPythonのサイトができたようです。これから最新のリリースバイナリや文書の提供といった正式な窓口はこちらになるようです。ただし、CodePlexのサイトは今まで通りなので、最新および開発中のコード・バイナリの入手、バグ登録はこちらを使うことになります。

2009年12月03日

Windows AzureでRuby On Railsが動いたらしい

動作しているサイト:

 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が動くホスティング環境を探している人にはいいかもしれません。

2009年11月03日

IronRuby - Release: 0.9.2

ということで、日本時間的に今日リリースされました。

IronRuby - Release: 0.9.2

チェンジログはこちらです。

http://rubyforge.org/frs/shownotes.php?release_id=41087

2009年10月31日

Halloween special

Trick and Treat !(あれ?)

今日はアングロサクソンのお盆です。(キッパリ)

と言うことでCh9もホラー風味です。

Get Microsoft Silverlight

Bug Killer – A Channel 9 Halloween special | Laura Foy | Channel 9

2009年10月22日

Visual Studio 2010 Beta2を入れてみました。

image

まだ入れてみましたってところです。

個人的にいいなぁとお思ったところは、VS2008で設定していたフォント設定や背景色、C#のソースコードの書式設定等をちゃんと引き継いでいるところです。

IDEもBeta1の時より確実に早くなっている気がします。

IronRuby, IronPythonのVIsualStudio 2010, .NET Fx 4 Beta2向けCTP

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

2009年10月21日

Visual Studio 2010 Beta2が一般公開

MSDNを持っていなくてもB2を試用できるようになったようです。

Try Visual Studio - Trial Options

どうもネットワークインストールしかできないようなので、それなりの時間は覚悟する必要はありそうです。

2009年10月20日

Visual Studio 2010 and .NET Framework 4 Beta 2

そゆこと。

Visual Studio 2010 and .NET Framework 4 Beta 2

MSDNサブスクライバダウンロードより段ロード可能です。現在のところ英語版のみ。

2009年10月17日

IronRuby in Action

ということで、アメリカではIronRuby本出版のようで、早速Eary Access Editionがでています。

第1章のみPDFでただで読むことが出来ます。

Manning: IronRuby in Action

筆者サイト : Ivan Porto Carrero

2009年10月16日

Microsoft がスマートグリッドに関するホワイトペーパを発表

Microsoft Power and Utilities Blog : Microsoft Worldwide Utilities Group Releases Architecture Vision for Smart Energy Ecosystem

マイクロソフトがスマートグリッドに関するホワイトペーパを発表しました。全部で130ページほどあるなかなか気合いの入ったものです。

http://download.microsoft.com/download/0/C/2/0C2F64B1-241D-4433-9665-5F802E7510D6/Microsoft%20Smart%20Energy%20Reference%20Architecture.pdf

スマートグリッドとはいわば電力線のネットが情報のネット化すると同時にこれまで、日本であれば電力管内という県をまたぐ大きな地域レベルで行われてきた電力の需給バランス調整を、極端な言い方をすれば町内会レベルの超ミクロなレベルを行うと言うことです。

そのためにはスマートメーターと言われているような、プロセッサを積んで、ITネットワークにデータを流せる電力計や、それらの間やそれと電力会社とを結ぶバックボーンのITネットワークインフラが必要なのはもちろんですが、本当に必要なのは超ミクロなレベルでの電力調整を実現するための莫大な情報処理能力です。

したがって、その莫大なな情報処理能力(ソフトウェアの力)を得るためにGEはGoogleと組んで、Googleのクラウンドコンピューティングにその処理をさせようとしていたりします。

特に北米では元々基幹の送電電力網の設備がかなり古くメンテナンスにも限界があることや、オバマのグリーンニューディールでスマートグリッドに関する投資期待がかなり高くなっています。

当然そうした状況にマイクロソフトがただ指をくわえてみているだけのはずが無く、満を持してこのホワイトペーパが出てきたのではないかと推察します。

どっかの経産官僚は日本にスマートグリッドなどいらんとか行っているらしいですが、この国でも家庭や小規模な事業所が設置する太陽光発電や燃料電池や、これから流行りそうなそれらの余剰電力を蓄える蓄電池の有効活用を考えればスマートグリッド化は必要で不可避な流れだと思うので、将来突然仕事が回ってきたりするかもしれないので関係ないとは言わずに読んでみると良いと思います。

ああCEPってこう使うんだとか、ESBとかもう普通だよねとかまぁいろいろ思う所もあるんじゃないかと思います。

うーんMSはArevaと組みそうなのか、同じAで始まる別の会社じゃないのか。。残念。。

2009年10月12日

Windows 7 64-bit 環境で Application Manifest が無視されることがあるように見える - NyaRuRuの日記

めも

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

2009年09月30日

IronPython - Release: 2.6 Release Candidate 1

すっかり見逃していましたです。

23日に2.6 RC1となりましたよ。

IronPython - Release: 2.6 Release Candidate 1

2009年09月29日

IronRuby - Release: 0.9.1

そゆもの。

IronRuby - Release: 0.9.1

基本的にバグ修正のみのようです。

Linq to XML 入門 その4 結合(JOIN)その2

忘れた頃にやってくる連載記事です。

今回は、やらないと前回書いた左外部結合とグループ化結合について説明します。

また、サンプルで使用する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)

Essential LINQ (Microsoft .NET Development Series)
Charlie Calvert
Addison-Wesley Professional 2009-03-22
売り上げランキング : 109833
Amazonで詳しく見る by G-Tools

プログラミングMicrosoft LINQ (マイクロソフト公式解説書 Microsoft Visual Studi)

プログラミングMicrosoft LINQ (マイクロソフト公式解説書 Microsoft Visual Studi)
小高 太郎 (株)オーパス・ワン
日経BPソフトプレス 2009-05-25
売り上げランキング : 43591
Amazonで詳しく見る by G-Tools

2009年09月26日

Java 7 JSR 275: Units Specification

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

2009年09月23日

F# Units of Measure

Get Microsoft Silverlight  

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単位系等メジャーなものについては定義があらかじめされているようです。

http://blogs.msdn.com/andrewkennedy/archive/2008/09/02/units-of-measure-in-f-part-two-unit-conversions.aspx

2009年09月21日

STM.NET, .NET Frameworkでソフトウェアトランザクショナルメモリを使用する。

川西 裕幸のブログ : STM.NET

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/

2009年09月15日

Connecting a OPC-Server in VB.Net

.NET APIの使い方サンプルとしてわかりやすかったので、メモ。

Connecting a OPC-Server in VB.Net

2009年09月11日

CodePlex Foundation

CodePlex Foundation

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みたいに意に沿わないからって尻を蹴っ飛ばす人はいないと思うけど。

2009年09月10日

Expression Studio 3 (x86) - DVD (Japanese)

そゆうものがMSDNサブスクライバダウンロードに

2009年09月09日

Microsoft Robotics Developer Studioのお勉強ページ

そゆもの。

Microsoft Robotics Developer Studio

日本語化されることは・・・・・・・まず無い。

Future Technology Days - Azure

MS主催でAzureのセミナーがあるようです。

ううデイビット チャペルが来るのか・・・

Future Technology Days - Azure

10/14 13:00から

平日だよなぁ。。

いろいろ多すぎるよね。まるでJavaみたいに。

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?

もっとスタッフよこせーという気持ちはわからんでも無い。

2009年09月06日

Sessions :: Microsoft PDC09

PDC09のセッションリストが公開されているが、確実に去年のPDCでは目玉であったはずのOsloのOの字もないという。 まぁまだ全部じゃないようなので、これから追加されるかもわかりませんけど。

Sessions :: Microsoft PDC09

2009年09月04日

Silverlight 3 GDR 2

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のユーザーエリアに東アジア言語のコードページ用の予約領域がある。

2009年09月02日

ironrubyのruby specへの準拠度は92.4%

ironruby.info

一応上のリンク先の数字が現在の数字らしい。

個人的にあんまり意味のない数字だと思っていたりもするのだけど、純粋にIronRubyをCRubyの代替として使いたい人には気になる数字だろう。

私としてはRails動くとか言うよりも.NETやSilverlight上でそれらのクラスライブラリや自作のライブラリやCOMを簡単に扱えるRuby言語であってほしかったりもしたのだけどもう方向性違うよなぁ。

2009年09月01日

ビービーシステム TFS Online サービス

ビービーシステム TFS Online サービス

TFSをサービスとして提供されるようです。

ユーザー数課金のようなのですが、レポジトリデータベースの容量制限についてどこにも書かれて無く、人ごとながら心配です。。。

2009年08月30日

C#たん

C#たん - Windows Live

C#擬人化と言うことで、ufcppさんが知り合いの人に頼んでいたものがほぼ完成でしょうか。

ものすごくいい感じです!

ufcppさんのBlogでは髪留め2パターンとなっていますが、C#のイメージカラーが緑なので、断然こっちの方がいいw

さてこの子の性別は。。

2009年08月29日

CodeRush Xpress 9.2 Ships

Charlie Calvert's Community Blog : CodeRush Xpress 9.2 Ships

Free Coding Assistance Add-in for Visual Studio Developers

このツールはかなりいいかも。

2009年08月27日

Tech Ed Japan 2009 1日目 BOF-03 Windows 7 で世界をセンシング!!

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評価キットを動かすためのコードがあります。

Windows Sensor Development Platform featuring the Flexis JM USB Microcontroller: JMBADGE2008-B Product Summary Page

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の開発をされた会社

2009年08月25日

VB6はどこまで生き延びることができるか?

VB6はどこまで生き延びることができるか? - Blog on Publickey

日本での現在の調査結果は見つかりませんでしたが、僕が知る範囲でも、新規開発で使われている例はさすがにありませんが、過去にVB6で開発されたパッケージソフトのカスタマイズを案件ごとにVB6で行っているという例はまだ少なくないようです(VB5で開発されたパッケージですらまだ現役で使われているようです)。こうした現状があるからこそ、マイクロソフトはいまだにVBマイグレーションセンターのリニューアルなどに勤めているのでしょう。

いや、まだ新規案件の話とか聞くから。。。

記事にある通りまだ10年ぐらいは残ると思う。

とりあえず、VB6から.NET Framework環境へのマイグレーションは以下を参照。

VB マイグレーションセンター

まぁ基本作り直す覚悟は必要ですが。。

2009年08月18日

Moonlight 2.0 goes Beta

Moonlight 2.0 goes Beta - Miguel de Icaza

と言うことで紹介。

Moonlight 2.0はSilverlight 3.0との互換環境を構築すべく開発が進められているMonoのプロジェクトです。

2009年08月10日

CodePlexのWikiエンジンがオープンソース化

wikiだけじゃなくて全部公開して。

InfoQ: CodePlexのWikiエンジンがオープンソース化

http://wikiplex.codeplex.com/

このサイトで公開。

Silverlightが簡単に埋め込めたりできるのはおもしろいと思います。

Monoでも動作するようですよ。

2009年08月08日

VS2008とWin7 SDKの使い方

以下Blogで解説されています。

Microsoft Windows SDK Blog : Using the Win 7 SDK Build Environment with VS 2008

ま、前と同じでWindows SDK Configiration Toolがあるのでということですね。

また、Win7 SDKがMS Downloadでダウンロード可能になりました。

ISO:
http://www.microsoft.com/downloads/details.aspx?familyid=71DEB800-C591-4F97-A900-BEA146E4FAE1&displaylang=en

WEB:
http://www.microsoft.com/downloads/details.aspx?familyid=C17BA869-9671-4330-A63E-1FD44E0E2505&displaylang=en

2009年08月07日

Windows® API Code Pack for Microsoft® .NET Framework - Release: Windows API Code Pack 1.0

本体MSDN公開にあわせ?1.0リリースとなったようです。

Windows® API Code Pack for Microsoft® .NET Framework - Release: Windows API Code Pack 1.0

2009年08月03日

Ruby on Railsで開発するSilverlightアプリケーション@gihyo.jp

うほ。意外なところから。

Ruby Freaks Lounge:第17回 Ruby on Railsで開発するSilverlightアプリケーション|gihyo.jp … 技術評論社

おもしろいなぁ。Rubyの人はこういう発想するのか。

2009年08月02日

IronRuby 0.9 リリース!

Download – IronRuby

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とそこまで互換性をどん欲に求めますかというところです。

ということで楽しみましょう!

ADO.NET Data Services Cheat Sheet

まぁそうゆうもの。

image 

ADO.NET Data Services Cheat Sheet | SADev.co.za

上からPDFをダウンロードできます。

2009年07月23日

IronPython - Release: 2.0.2

IronPython - Release: 2.0.2

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のみです。

2009年07月21日

July CTP of Windows Azure SDK Released

そゆもの。各位アップデートのほど。 ちゃんと英語版環境を用意するのですよ。

Windows Azure : July CTP of Windows Azure SDK Released

sobees - your social desktop aggregator

Silverlight3なTwitterクライアント。良い感じです。

sobees - your social desktop aggregator

2009年07月19日

IronRubyのとりあえずまとめ

とりあえずいろいろあったのを五月雨的に書いてきたのですが、いささか分散気味なのでここの断面で解りうる範囲で情報の入手先をまとめておきます。

バイナリの入手

Windowsプラットフォーム向けコンパイル済みバイナリの入手はCodePlexからになります。

最新の正式な公開バイナリーバージョンは7/2に公開されたVersion 0.6です。

IronRuby - Release: 0.6.0

http://ironruby.codeplex.com/

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が動く環境なら動作する可能性があります。(個人的に未確認)

IronRubyのホームページ

情報の中心はこれもやはりCodePlexではありません。

以下のIronRubyのページになります。

http://ironruby.net/

ちなみにRuby on Railsの動かし方はこちら

http://ironruby.net/index.php?title=Documentation/Real_Ruby_Applications/Rails&highlight=Rails

Blogとか

とりあえず以下のBlogは押さえておいた方がよいと思います。

jimmy.thinking

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会議に便乗して(?)まとめてみました。

2009年07月16日

ディベロッパー製品開発統括部 Blog : Silverlight 3 SDK および Visual Studio 2008 SP1 用 Silverlight 3 Tools 日本語版をリリースしました

ということだそうで、Re:MIX会場では大インスコ大会になっていたとかいなかったとか。

ちっ。く、くやしくなんかないんだからね。

ディベロッパー製品開発統括部 Blog : Silverlight 3 SDK および Visual Studio 2008 SP1 用 Silverlight 3 Tools 日本語版をリリースしました

2009年07月12日

The Windows Azure CGI Web Role Template Explained

ということでメモ。

Cloudy in Seattle : The Windows Azure CGI Web Role Template Explained

2009年07月11日

INETA Day 2009

Dyanamic Dataお手軽プログラミング

講師:小野修司氏

オーディエンスすくねー!両手で余るぞ。

Dynamic Dataは簡単に作れるけど、使いにくいよね。

簡単なデータバインド部分だけ使って使いやすいデータ更新のWebアプリケーションを作ろうというお話。

セッション内容は基本デモ

デモ

DynamicDataManagerControlがメインのエンジン。これとグリッドコントロールを使う。

自分で作ったWebフォームからDynamic Dataのページにリンクされてしまうのは嫌なので、その場合にはGlobal.aspxでルーティング部分のコードをコメントアウトしてしまう。

SQLのフィールド名がそのままグリッドの項目名になってしまうので、Gridコントロールの列名を変更するメタデータを作って変更する。同様にメタデータを作成することでバリデーションコントロールを使ってフィールドを必須項目にしたり、デフォルトのエラーメッセージを変更することができる。

まとめ
  • データコントロールに検証コントロールを追加するのが簡単
  • 検証ルールを一箇所にまとめて定義できる

Dyanmic Dataプロジェクトを使うと煩わしい部分の多くをDynamic Dataプロジェクトがやってくれるのでデータ検証等が非常に作りやすくなることがわかりました。

PrismではじめるSilverlight LOBアプリケーション開発

オーディエンスがちょっと増えてきた。

講師:池原大然氏

Prismは分割開発を柔軟に行うためのフレームワーク

モジュール方式でモジュールを個別に開発し、それをシェルで統合する。

PrismはSL2とWPFをサポートする。

PrismのパッケージのホストはCode Plexのサイト

基本的にダウンロードしたパッケージを展開して、自分でビルドする必要がある(撥一つ動かすだけだけど)

シェル

すべてのモジュールを表示させる領域が表示されるメインページ

領域

シェルを領域に分割する

静的もしくは動的に分割

三つのアダプターがある

以上のデモ

シェルは事実上SL Pageの名前が変わっているだけ

領域の作成はXAML手書きw

領域はSLのGrid等の箱を用意しておいて、そこにCntentControlをおいていく方法。ContentControlにはRegionを設定する。

ブートストラッパとそのデモ

App.Xaml.csで最初に呼び出す

コンテナの設定~モジュールの生成という起動時のパイプラインを提供する。

プログラマがこれ用のクラスを作成する。UnityBootstrapperクラスを継承する。

モジュールとそのデモ

モジュールカタログにモジュールを登録

モジュールマネージャはモジュールカタログを元にそれぞれのモジュールの初期化を制御

ここのモジュールの初期化。モジュールはIModuleインターフェイスを継承する必要がある

モジュールカタログはXAMLでも定義できる。

モジュールはMVVMモデルで構築する(ビューとコントロールは分離する)

IModuleを継承したコントロールクラスのInitializeメソッドからビュークラス(SLのPage)を呼び出す。

通信

モジュール内またはグローバルでの情報交換

  • イベント
  • コマンド
  • RegionContext
  • 共有サービス

モジュール間では通常のSLのイベントは使用できない

CompositPresentaonEvent<IType>がその代わりにに用意される

EventAgregatorでイベント特定

イベントの発行元・受信先を作る必要がある。

コマンドはUIイベントの発行

RegionContext

共有サービスはサービスロケータを使用し共通インターフェイスを取得

まとめ・感想

通信めんどくさそう

なんとなく感覚的なところはわかった。

全体説明するにも40分は短い感じでした

Windows Azure アーキテクチャと開発

講師:森屋氏

感想とメモだけ。

Azureを使うときは自分を責めない。

Azureを触るときはHello Azure止まりでなくてちゃんとモデルまで実装して触ってみる。

Queueが結構面白い。やっぱATOMじゃない世界はぜんぜん違うな。

DataServiceとLinqは勉強しておく。

まずアカウントを取得して書くこと。

2009年07月10日

SL3

Microsoft® Silverlight™ 3 Tools for Visual Studio 2008 SP1

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=9442b0f2-7465-417a-88f3-5e7b5409e9dd

Microsoft® Silverlight™ 3 SDK

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=2050e580-f1d5-4040-bb09-e6185591b6b5

Microsoft Expression Blend 3 + SketchFlow RC

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=92e1db7a-5d36-449b-8c6b-d25f078f3609

肝心なやつが見つからないぜw

Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)

Get Microsoft Silverlight  

Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx) | Going Deep | Channel 9

英語と数学の波状攻撃でさっぱりわかりません。。。

イテレータ的な何かの代わりにオブザーバパターンを使って変更通知させるって事?要はLinqを使いながらDOM的ではなくて、SAX的に処理していけるって事なのかな。やっぱりよくわかりませんでした。あほだ俺。

2009年07月07日

I18N : .NET Framework v4 以降の国と地域のデータの更新と取得方法に関する変更に対する意見その1

まずは回答者と質問者のレベルあわせが必要です。

ディベロッパー製品開発統括部 Blog : .NET Framework v4 以降の国と地域のデータの更新と取得方法に関するご意見をお寄せください

Windows NLSおよび.NET Fxの国際化関連クラスの詳細について熟知しているような開発者であれば、この質問でも意見を寄せることができると思いますが、この内容でとくに普段から NLSになじみのない開発者がほとんどな国内の状況でちゃんとした意見が寄せられるか疑問です。たぶんほとんどの人が実は反応して意見を述べておかなければならないのに、意見が言えないということに、この質問内容ではなってしまうでしょう。

我が国の開発者がアジア言語を使うにもかかわらず特にNLSを意識しないで、ソフトウェアの仕様・開発が行えるのは御社の努力以外にはないのですが、それ故にNLSの詳細について知っている人は少ないです。

従って、もう少し具体的な例を示しながら変更案を提示し意見を求めるようにしてはいかがでしょうか。その方がお互いにとって実りのある意見交換ができると思いますので、ご考慮いただけると幸甚です。

(以上MSDNフォーラムにも記載)

2009年07月02日

CodePlexやMSDN Code GallaryからZIP形式でソースファイルをダウンロードしたとき忘れずにやっておくこと

うー。むちゃくちゃはまったのでメモ。知っている人には常識だよね。。

ZIPファイルをダウンロードしたら、右クリックしてプロパティウインドウのブロックの解除をしておくこと。

image

これをやっておかずにZIPファイルの内容をどこかに展開し、その展開されたプロジェクトを開くたびにVisual Studioから、「プロジェクトの場所は信頼されていません」とお叱りを受け、散々な問題が起こります。。とりあえずVista/Win7ではダウンロードしたファイルに対してはウイルスチェック等を行い問題ないようならこのボタンを押す癖をつけといたほうがいいですね。

追記:

英語のMSDNライブラリにはコメントがちゃんと付いてるね。。

http://msdn.microsoft.com/en-us/library/bs2bkwxc%28VS.80%29.aspx

2009年07月01日

Mono を Visual Studio 2010 のマルチターゲットに組み込む

うほ。おもしろい。

Code Monkey: Mono in Visual Studio 2010

image

ビルド対象としてMono 2.0が選択できるyほうになっています。

VS2010はEclipseへの対抗の意味もおそらくあって、拡張性に関する機能が強化されていて、今後もこのような拡張が様々に行われる可能性があり、その可能性の中に痛IDEもあります。

2009年06月29日

日本人デヴェロッパには痛 IDEが必要だ

いよいよ製作解説が始まるようです。

痛 IDE の作り方(1) - まめしば雑記

日本でITエンジニアを一定数以上望む方向に駆動しようと思う場合、戦略的に「萌え」を使う事は重要です。彼らの「萌え」を希求し、「萌え」を得るための情熱、行動力を無視することはできません。彼らは「萌え」のためであれば、寝食を忘れ、たとえ火の中水の中。。。

したがって、VS10普及のために「萌え」拡張でデヴェロッパを釣っていくことは容易です。彼らは、

そんな餌で俺様が釣られクマ――

とかいいながら、立派に釣られてくれます。

え?あ、はい。もちろん自分のことを話してるに決まっているじゃないですか。

2009年06月27日

I'm a VB!

I'm PCならぬI’m VBだそうです。

I'm a VB!

まぁ、国内じゃI'm PCキャンペーン自体やっていないので、よけいわけわからめですが。

ちなみにI'm C#とは誰も言っていないらしい。

2009年06月23日

Microsoft ADO.NET Entity Framework Feature CTP 1

そゆもの。

Download details: Microsoft ADO.NET Entity Framework Feature CTP 1

ADO.NET team blog : Announcing: Entity Framework Feature CTP 1

2009年06月22日

Linq to XML 入門 その4 結合(JOIN)

しばらく間が開いてしまいすいませんです。前回は基本的なクエリーまで説明したので、今回からはもう少し複雑なクエリー式の説明をします。

今回はJOINを説明します。

JOIN(結合)はLinqにおいてもリレーショナルデータベースの結合と同じく一定の条件の下データ同士を関連付けます。

結合(Join)の概念がちょっとわかりにくいという方はSQLの入門書で結合(Join)について勉強してみるといいと思います。このJOINあたりからが実際にはLinqの非常に強力な使用方法になっていきます。リレーショナルデータベースのデータでもないものを簡単な書式でJoinできるというのは実はすごいことなのです。

続きを読む "Linq to XML 入門 その4 結合(JOIN)" »

2009年06月20日

PDC09

日本ではTechEdも終わってませんが、そろそろPDCの話題が出てきました。そういえば2年連続でPDCをやるのは初めてじゃないかと思います。

Mike Swanson's Blog : PDC09

2009年06月19日

Microsoft Robotics Developer Studio 2008 R2リリース

おめでたい。

Microsoft Robotics Developer Studio

http://channel9.msdn.com/posts/LarryLarsen/Robotics-Developer-Studio-2008-R2-Available/

MSDNサブスクライバダウンロードにも登場しています。

2009年06月15日

Windows® API Code Pack for Microsoft® .NET Framework (v0.9)

v0.9になりました。

Windows® API Code Pack for Microsoft® .NET Framework - Home

7/4のNT-Committee2九州勉強会ではこれをねたにLTやろうと思っておりますので、よかったら来てください。

荒井省三のBlog : DLR の COM バインダーに対する考察を読んで

荒井省三のBlog : DLR の COM バインダーに対する考察

現状のDLRのCOMバインダではCOMのインスタンス化は動的な追加が可能になって簡単になるものの、リリースは勝手にやってくれないので、自分が面倒を見る必要がる。ただ、将来的には望みがあるかもよということのようです。

うーんそうですかって感じで、現状はDLRを使ってもReleaseComObject()地獄は変わらないか。プロセスがターミネートしてしまえば、嫌でもCOMはリリースされてしまうので簡単なコンソールアプリやフォームベースのアプリはいいのですが、サービスを造るとなると今までどおりですな。。

DynamicでCOMのリリースまでDynamicになればすばらしいのだけどなぁ。正直なところCOMのリリースがイージーにならないと、COMが使いやすくなりましたとはかなり言い辛い。

2009年06月13日

ASP.NET MVC For Visual Studio 2010 Beta 1

そゆもの。

ASP.NET - Release: ASP.NET MVC For Visual Studio 2010 Beta 1

2009年06月11日

Microsoft project code named "Velocity" CTP4は9月半ばリリース予定

Microsoft project code named "Velocity" : Update on Velocity upcoming release - CTP4

9月半ばリリース予定とBlogに書かれています。

個人的にはちょっと興味をなくしかけていて、どこまで追いかけようかって感じなんですがね。。

正直なところMemcachedで十分いろいろまかなえそうってところで興味をなくしつつあり。

2009年06月09日

痛IDE 化プロジェクト:メッセージのツンデレ化

できそうだな。。。

痛IDE 化プロジェクト:メッセージのツンデレ化

2009年06月08日

痛IDE、そこに日本のデヴェロッパの底力を感じる

わけないだろ。しかし、実際に行動を起こした人は偉い!

Visual Studio 2010 が WPF ベースなので痛IDEに出来るのではないかという話 - using Misuzilla.Subtech; - subtech

インテリセンスのカスタマイズ。二次元キャラが僕らのコーディングを助けてくれるお。

痛 IDE クラスタ - まめしば雑記

コードエディタの背景を、お好きなグラフィックに変更w

後考えられるとこととしては、IDEのワーニングメッセージをツンデレにしてみるとか(できるのか?)、ツールバーメニューあたりの背景ももっと萌えが必要とか。

2009年06月06日

LINQ to XSD がCodePlexに

LINQ to XSD – Home

もはや無かった事にされたんじゃないかと思っていたLinq to XSDですが、CodePlexでOSS(Ms-PL)として開発が続けられることになったようです。

現状はそのままインストール可能なバイナリはありません。

ちなみにCodePlexでLinqをキーワードに検索すると401プロジェクト。Linq toで検索しても398プロジェクト。皆さん何か悪いものでも(ryということでもないと思いますので、なんか、Linqがすごい人気。

Visual Studio 2010 Beta1 の機械翻訳ドキュメントの提供開始

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翻訳とかでもおなじみの原文が左、訳文が右に来るスタイルです。

2009年06月04日

Visual Studio 2010 日本語版 MSDNサブスクライバダウンロードに公開

そのほかTeam Foundation Server、.NET Fx 4の日本後ランゲージパックも公開されています。

2009年06月02日

CLR 4 - Inside the Thread Pool | Channel 9

Get Microsoft Silverlight  

Erika Parsons and Eric Eilebrecht : CLR 4 - Inside the Thread Pool | Going Deep | Channel 9

時間がないので、後で見るという感じでまだ見てませんが、ある意味.NET Fx 4で大幅に拡張される並列化機能の肝なので、必見なんじゃないかと思います。

InfoQ: Visual Studio 2010と.NET 4.0 ベータ1

猪俣さん翻訳開始1号記事ということで。

InfoQ: Visual Studio 2010と.NET 4.0 ベータ1

今までより格段に翻訳が読みやすくなっています。

2009年05月31日

TrueSkill Ranking System

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の話も出てくる

http://research.microsoft.com/en-us/um/redmond/about/collaboration/phd-summerschool/2006summerschool/donsyme.ppt

ふぁびょって書いたけど結構長いプロジェクトなんだな。

2009年05月30日

気になる本 : Framework Design Guidlines

Framework Design Guidelines: Conventions, Idioms, and Patterns for Reuseable .NET Libraries (Microsoft .Net Development Series)
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&マイクロソフト