アーカイブ

Archive for 2011年1月

Webキャンプで勉強しよう!

残念ながら日本での開催予定はいまのところないようですが、Microsoftは世界各地でWeb Campsというセミナーを開催しています。

http://www.webcamps.ms/

そこで使われるトレーニングキットを参考にしてMicrosoftの最新のWeb開発について学ぶことができます。

○オンラインコンテンツ
http://trainingkit.webcamps.ms/

○ダウンロード(上記と同じ内容)
http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=0a906559-28bd-4f5d-ac18-f895a200a2a5

○ベルギーで行われたWeb Campsのキーノートビデオ
http://channel9.msdn.com/Series/Web-Camp-Belgium-2011/Keynote-Web-Camps-Belgium-by-Scott-Hanselman

特にASP.NET MVC 3、WebMatrixの全体像を理解するにはよいコンテンツかと思います。
さて、自分の勉強のためのサンプルどう構築するか考えないと。。。

カテゴリー:.NET

これからSilverlightを学ぶ人へのメール

2011年1月28日 2件のコメント

オンラインでの友人(リアルで会ったことがない)が、今度仕事でSilverlightを触ることになった、という話を聞いたので以下のような内容のメールを送ってみました。

せっかくここまで書いたのでBlogにあげてみることにします(w


いろいろあるけど、まず書籍の話からしますか。

・「Silverlightで開発するデータ駆動アプリケーション

原書はVer.2のころに書かれたものなので、最新の部分については情報が足りないですがデータのバインディング(画面上のコントロールとデータを連携させる方法)についての説明はこの本がいまのところ一番詳しくてわかりやすいと思います。
基礎を理解する意味で、ぜひ読んでおくべきだと思います。

・「.NET開発テクノロジー入門 Visual Studio 2010対応版

良い本なんですが、頭からひとつずつしっかり読もうとすると失敗するかも(w

https://blogonos.wordpress.com/2011/01/13/%e3%80%90%e6%9b%b8%e8%a9%95%e3%80%91-net-%e9%96%8b%e7%99%ba%e3%83%86%e3%82%af%e3%83%8e%e3%83%ad%e3%82%b8%e3%83%bc%e5%85%a5%e9%96%80-visual-studio-2010-%e5%af%be%e5%bf%9c%e7%89%88/

こんな書評を書きましたが、どこが重要か、を考えたうえで読むと良い本だと思います。
Silverlightの開発、ということではWPF/Silverlightの章(3章)はまず読んでください。
WPFの部分はほとんどXAMLの説明なのでSilverlightでも基礎となる部分です。
Silverlightのところはほんとにそのまま基礎知識ですね。

あと重要なのがWCFの章の最後のほうにあるWCF Data ServicesとWCF RIA Servicesです。
Silverlightは直接データベースに接続できませんから、現状ですとこのどちらかの機能を使ってDB連携を実現するのが標準になります。
なので、4章を読むときはまずこの2つの技術の部分を先に読んだほうがいいでしょう。
サンプルとかみるとわかりますが、すごく簡単に(サンプルレベルでは)動かすことができます。
実際に動かすところまでが簡単すぎるのでその先に進もうとするとひっかかるんですよ。
業務アプリで使うなら認証は必須なはずですが、その認証をどうしたらいいか、とか(w で、4章の前のほうのWCFに関する基礎の知識が必要になってきたりします。
そんなつもりで読むといいと思います。

あと、Entity Frameworkの話ですね。
WCF Data ServicesとWCF RIA Servicesはウィザードでの動作等がサポートされているのは標準ではEntity Frameworkだけです。
なのでEntity Frameworkの知識が必須になります。
スループットの性能要件がものすごく厳しい、というようなアプリケーションでなければそんなに深いところまでの理解はなくても大丈夫かな。

この2冊と別にXAMLについての理解を深めるための本がなにか1冊あるといいかもしれません。
紹介できるような本を私は知らないんですが。。。

さて、Silverlightのアプリをつくりはじめるうえで、自分が気づいた注意点など。

上でも書いてますけど、データへのアクセスがWebサービス経由となるので、そのあたりで気を付けないといけないことがいろいろでてきますね。
SilverlightでのWebサービスの呼び出しは非同期アクセスが基本なので、というか非同期アクセスしか用意されていないのでそのやり方を知る必要があります。

で、データを取り出してきたらコントロールとバインドする必要があるのですが、ここで結構とまどいます。
バインディングの実装方法が何種類もあるので、ネットにころがってるサンプルがなかなか参考にならなかったりするんですよ。
よさそうなサンプルをいくつか拾ってきて、とりあえずそれぞれ単体では動きを確認できて、さあ必要な部分を一つにまとめよう、としたときにサンプルそれぞれで実装の仕方が違ってることが多く、「どうやったら一緒になるんだ?」と迷うことになったりします。
というかそういう状況に陥りました(w

これはいくつかサンプル動かして経験して自分としてはどういうやり方するか、をまとめていくしかないかと思います。
もしかしたら要件によって適切な実装方法が異なるといったことがあるかもしれません。
そこまでの経験はないのでこの考えが正しいかどうかわかりませんが。

あと、Silverlightでとまどうのは画面遷移かなぁ。
基本的にはHTML上のオブジェクトとしてSilverlightの表示域を確保して、という形になりますから、別ウィンドウを起動する、というWinFormだとよくやるパターンが使いにくいです。
画面の切替にしても、ベースになる領域を確保しておいて、そのなかをそっくり入れ替える、といった方法のほうが楽でしょうね。
このあたりは結構設計時に考慮が必要になるかと思います。

このあたりの注意点のいくつかは以下の記事をみていただいてやってみてもらうと経験できる部分があるかと思います。

https://blogonos.wordpress.com/category/wcf-ria-services/

SilverlightのUIは自由度が高いんですが、高いだけに考えないといけないことは多くなります。
このあたり注意しておくといいと思います。

ということで、いまできるアドバイスはこんなところかな。
慣れるのに苦労する部分はあると思いますけど、わかってくると楽しいとこも多いです。
頑張ってくださいませ。

#えと、せっかくこんなふうにまとめたので、具体的なスケジュール管理の個所はのぞいて
Blogにネタとしてアップさせてもらおうと思います(w


さて、私としてはこんなふうにまとめてみたのですが。

他の方の意見も聞いてみたいなぁ。

いろんな方にコメントに書きこんでいただけると、初学者がどういう点に気をつけて学習をすすめていけばよいかの指針ができるんじゃないかと思います。

ぜひ協力してくださいませ。

カテゴリー:Silverlight

ASP.NET MVC と Entity Frameworkの組み合わせで同時実行制御

EF Concurrency Mode Fixed + MVC

わかってしまえば実装はとても簡単。

DB内にバージョンを管理するためのデータ(上記ではTimeStamp)を追加して、EFの設定でConcurrency Mode をFixedにする、という話はEFの使い方をみてればでてきます。
いまいち自分がよくわかってなかったのはそこから先の話ですね。

Attach つかってObjectState変えて例外(OptimisticConcurrencyException)の処理をすればいい、と。。。

お手軽だなぁ。。。

 

#ちょっと気になってるのは、この元記事書いてるのが Chris Sells であること。
Entity Frameworkがらみだから、なのか???

カテゴリー:.NET

ASP.NET MVC 3 最初のプロジェクト

MVC 3 をインストールして、最初にどんなプロジェクトをつくってみるか、ということで参考になる記事がありました。

Creating a MVC 3 Application with Razor and Unobtrusive JavaScript

このチュートリアルのところっていつの間にか記事が追加されたり修正されたりしてるので時々見ておかないといけないんですよね。
上記はデータもまず自分でプログラム中に記述して動かす、というもっとも単純なプロジェクトの作り方がステップ バイ ステップで記述されています。

その次がこれかなぁ。。。

Intro to ASP.NET MVC 3

まだ正式リリースされていない Entity Framework Code-First を利用してたりするので、ちょっと注意が必要ですが。
まぁ、簡単に動くものができる、ということではいいんじゃないかと思います。

このあたりをとりかかりに、まずは動くもの作っていってみますかね。。。

カテゴリー:.NET

IIS 7.5 Express についての日本語情報

昨年後半は仕事が忙しすぎて、Blogに自分の記事をまとめるどころか、技術情報へのリンク記事でさえあげられていなかったのですが。。。

#正確には技術情報を読む時間さえなかったんです。。。

まだその余波は続いているもののすこし気分的に落ち着いてきたのと、Blogが移転したこともあり、とりあえず気になった記事はメモしていこうと思います。

ということで

[改訂版]IIS 7.5 Express について

IIS 7.5 Express は軽量版のWebサーバーということになるんでしょうねぇ。
VisualStudioで手軽に使えるようになるのはVisualStudio 2010 SP1がでてからになりそうですが、今でも利用する方法はあるようです。
これで、「開発用のWebサーバーとIISは動作が違うから~」という話を掲示板等ですることは少なくなるのかなぁ。

配布はmsi形式で、ということはCassiniのようにCD等に焼いた状態で配っても実行できる、というわけにはいかないんですね。
まぁ、そんな要件はそうないと思いますけど。

そしてmsi形式であれば普通に配布していい、ということだけど(外部からのアクセスに管理者権限が必要といった制限はあるものの)特にWebサーバーとして利用することに制限はなさそうな。。。
ということは社内で利用する程度の負荷だったらもう現役を引退させるようなXPマシン上でIIS 7.5 ExpressでWebサーバーを運用、とかってできそうな気がする。
いいのかな?

カテゴリー:.NET

【書評】.NET 開発テクノロジー入門 Visual Studio 2010 対応版

.NET開発テクノロジー入門 Visual Studio 2010対応版 (MSDNプログラミングシリーズ)

この本は誰のための本だろう?
読み始めた当初はそれがよく分かりませんでした。

章立てを見ると、

1章 .NET Frameworkの概要
2章 ASP.NET(Webアプリケーション)
3章 WPF/Silverlight(リッチクライアント)
4章 WCF(Webサービス、正確にはサービス全般)
5章 Entity Framework(データアクセス)
6章 並列プログラミング

となっています。

これは.NET Frameworkのすべてを薄く網羅した、という内容でもありません。
でてくるサンプルは確かに「入門」書らしい基本的な内容なのですが、記述されている中身は深いところまで詳しく書かれていることが多く、それなりに.NET Frameworkの知識を持った人でないと読みこなせないだろうというところばかりなのです。
なにかチグハグな印象を受けるなあ、と思いながら読み進めていたのでした。

ところがあるとき、ハタ、と気づきます。これはもしかして明確な想定読者のある本なのではないだろうかということに。

私の考えでは、この本はAzure上でこれから開発を行っていく読者に、そこで必要となる要素技術の基礎をきちんと紹介し、Azureをうまく使ってもらうための本、ということになります。

このため、.NET Frameworkの本当の基礎の部分を1章で述べたあとにくるのはASP.NETの話になります。
Azure上のアプリケーションはWebアプリケーションが基本となり、そこでベースとなる動作を司るのはASP.NETですからね。
そこでは一通りのサイトの構築方法に加えて、セキュリティ(認証)の話がきちんと紹介されています。

次に3章でリッチクライアントということでWPFの話になるのですが、ここで実際に記述されている内容はほとんどXAMLの話です。
そしてSilverlightこそがこの章の本命であり、データとの連携(データバインディング)はSilverlightに関して記述されるのです。

4章のWCFの話では、基礎的な話が長々と続くことに違和感を覚えるかもしれません。
実はこの章で最も重要なのは最後に紹介される WCF データサービスと WCF RIA サービスなのです。
Azureを中心にしたデータ連携を考えると、この2つの技術が今後中心となって使われていく技術と考えてよいでしょう。
そのWCFデータサービスとWCF RIA サービスはVisualStudioのサポート(テンプレート)により、たいへん簡単に利用できるようになっています。
あまりに簡単に利用を開始することができるのはいろいろ複雑な部分が隠されているからなのですが、なかなかそのことに気づきません。
そして何かうまくいかないことが起きてはじめて、何をどうすれば問題を解決できるのか、そのとっかかりさえ知らないことに気づいたりします。
この本ではそのような人のために、あえてWCFの基礎/仕組みはどうなっているのかを詳述し、つまづいたときに参考になる情報をまとめてくれているように思えます。

5章のデータアクセスの技術が重要なことは特に言うまでもないことでしょう。
.NET Frameworkはいくつものデータアクセスのための技術を用意していますが、現状ではWCFデータサービス、WCF RIA サービスを使ううえで主にサポートされているのはEntity Frameworkになります。
その観点からも、当然Entity Frameworkの話が中心になります。

最後の並列プログラミングの話は、.NET Framework 4でのトピックとして簡単に紹介されたもののように私には思えます。

さて、こう見てくると、なぜこの本でこれらの技術がピックアップされて、しかもそのなかでWCFに関する章が最も長いのか、それなりにうまく説明できているように見えるのではないでしょうか?

この本にはAzureについての直接の記述はありません。
ですが、Azure上での開発者にとって、どのような技術が使えて、それをどう組み合わせられるのか、そこで何かひっかかったときに参考になる情報はどこにあるのか、そういった貴重な内容がコンパクトに詰まった本がこの「.NET 開発テクノロジー入門」なのだと思います。

話をわかりやすくするためにAzure開発者向け、と書いてきましたが、Azureに限らず、Webがベースとなる環境での開発者にはぜひ読んでほしい本です。
問題を解決するための幅を広げるためのきっかけになると思います。

カテゴリー:.NET