VSUG DAY 2011 Summer に参加してきた

第一部
聞いてきたのは "Microsoft Webテクノロジー ふりかえり" です。

ASP.NET 2.0

私は、この時間から参戦しました。
ASP.NET 2.0 は、画面にロジックの変数が入ってきたりするので、
ロジック層の分け方が微妙ですよね、というお話でした。

ASP.NET AJAX

利点:
UPDATE PANEL で囲むだけで OK

問題点:
メンテ時に何が起きているのかわかりにくい。
複数の UPDATE PANEL がある時のハンドリングが大変

ASP.NET 3.5

LNQ to SQL が追加
でも、この時点では、あまり使われないよね。

ASP.NET MVC

Controller に置換される。
Model が曖昧。
Action() からモデルを利用する。
HTML 側に 実装が…。

ASP.NET 4.0

ADO.NET EF が追加される(CodeFast...)
Template が変更されている。
 →最初から、フォルダや認証周りができている状態
 → JQuery もバンドルされている

Summary

本当は Browser, WebApplication, DataSource に分かれているだけ。
"""
これをやりたいだけなのです!
何をしたいのか、考えましょう

We want to render HTML based on data from data source.
We want to change data source from data submittede HTML form.
"""

第二部

Architecture is 箱と線
→どのように繋ぐか?
'Simple' does not means 'Easy'. 'Simple' means 'optimum'.
→シンプルとは最適なモノ

箱をどのように配置して、線をどのように引くか?
→多少コードを書いても、シンプルに

What is Paradigm shift
"Web application" goes "Web".
From "server" to "browser".

!Shift!
データをすべて JSon/XML で返して、Browser 側にレンダリングを任せる
> Javascript とか、それに近いですよね。

もっと言うと、Web Application じゃなくて、サービスでよいのではないか?
> まぁ、そうですよね。でも、サービスだとエラーのハンドリングなど今まで出来ていたことが
> 出来なくなることがあるのです。そこの見極めはできないといけないと思います。
> あー、ここの質問とかをすればよかった。反省です。

ポイントは、次の点

サーバーの負荷を減らすことになる。ブラウザが出来ることをする。
ブラウザは勝手に早くなるし、クライアントのPC もパワーがある。

ここからソースコードを書くライブ。
目的は、HTML と Javascript でここまでできるかな?
昔から LL ではやっていたことだと思うが、どう違うのかがポイントかも。

PMC から JQuery をインストール。
>Install-Package jquery
jQueryUI Combind
>Install-Package jquery.ui.Combind

Models に ED で作成。
Oracle からベータ版が出ている。年末には正式版がでるかも…、とのこと。

Services を作成
WCF Data Services で作成

HTML を作成
XHTML → HTML に変更。
タグのエラーが嫌だからとのこと

ajax でデータを取得する。

$.ajax({
url:"./Services/Music.svc/Artists",
type: "GET",
dataType: "json",
contentType: "application/json",
success: function(result) {

// d は、名前空間
$.each(result.d, function(index,value) {
#("#artists").append("

注:ここのJavascript は動きません。大事なとこのメモです。よよよ…。

パケットキャプチャで確認。
パケットキャプチャで確認するのは大事! By afukui

ul id="albums"
li id="item-tmpl"

こんな感じのHTMLを書いていました。

最初に span でどのような HTML を組み立てていくのかを書いておくのがポイント
このとき、item-tmpl はコピーしてから作業すること
var clone = $("#item-tmpl").clone();

data: {
$filter:"hoge" + id;
}

ここまで来たら、UI (style tag)を修正。

今回の内容は、ASP.NET Ajax から出来る内容。
たぶん、.NET Framework でも、ここまで出来るぜ!ということかも…。
ビジネスアプリでも、この内容で書こうぜ!

非機能要求について
WCF, ASP.NET, .NET Framework に依存してるし
HTTP / HTTPS, HTML / Javascript に依存してる。
この枠の中でできるのなら!

ふりかえり
奥田さん曰く " 何をやりたいか?を考えよう " とのこと。

MVVM をブラウザ内でできる。
これは、調査しよう。

福井 さん 奥田 さん
ありがとうございました。