カドルドエグ 的个人资料たま(ご)の記録照片日志列表更多 工具 帮助

日志


10月29日

イノベーションセンターでのLINQセミナーに参加してきました

 
昨日未明にたまたまキャンセル待ちで入ることができたので急遽参加。
ちょうど、LINQについての知識がほとんど皆無だったので非常にためになりました。
 
一応、正式に.NETに組み込まれたときから存在だけは知っているし本もちょこっと持ってはいるものの、
積読しっぱなしだわ聞きっぱなしだわで。。。
今回はハンズオンもあり、基本の部分を少しだけではあるけど書けるようにはなりました^^;
 
以下、知ってる人からすればあまりにも「今更」なメモ。。。。
----------------------------------------------------------------------------
・LINQは、「全て一つで事足りる」ことに依存せず、「操作」について共通利用する。
 「構造」について平準化するものではないことに注意。
 
・LINQといえば必ず紹介されるこういう↓スタイル(クエリ構文
 IEnumerable<string> result = from p in places
                                                    where p.Legth == 2
                                                    order by p
                                                    select p.Substring(0,1);
 は、以下の表現を簡素化したものである。
 IEnumerable<string> result = places.Where(p => p.Length == 2).OrderBy(p => p).Select(p => p.Substring(0,1));
 →これを「糖衣構文(シンタックスシュガー)」と呼ぶ。
 
・LINQはコンパイルされると最終的に拡張メソッドに変換される
 →クエリ構文ではLINQの全機能を使うことはできない(クエリ構文でカバーされてないものが多々ある)
 
・LINQというか拡張メソッドのイメージ(前述のメソッド構文を例にした場合)
 places:元のコレクション > Where:データの絞り込み > OrderBy:データの並び変え > Select:データを加工し新しいコレクションとして返す
 左から右へ値が引き渡され、フィルタリングされているイメージ:パイプライン処理
 
・前述で書いたようなLINQ処理は、その場で行われて(今回の場合)resultに格納されてはいない。
 この後で、foreachなどでresultが使用されるときにはじめて動作する
 結果セットをインメモリで保持しないので別途保存(ToArray()など)が必要。
 
・C#及びVB:手続き型プログラミング = 問題の解法を記述
 →LINQは、そこに宣言的プログラミング(= 問題そのもの、必要とする結果を表現)を持ち込んだものである。
  問題の抽出方法はLINQの実装側が考えること。
 
・従来との対比
 <<LINQなし>>
 List<String> companyNames = new List<String>();
 List<String> result = new List<String>();
 
 foreach(string c in companeNames)
 {
   if(c ==  "Microsoft")
  {
   result.Add(c);
  }
 }
 
 <<LINQあり>>
 List<String> companeNames = new List<String>();
 
 return from c in companeNames
              where c == "Microsoft"
              select c;
 
 やってることは同じでも表現がとてもすっきりしている
 
・C#内でのLINQは、C#2.0~3.0にかけての新しい技術で成立している。
 →デリゲートや匿名メソッド、拡張メソッド、ラムダ式など
 
・クエリ構文で使用される「句」はメソッド構文にしたときの「演算子」に相当。
 ※一部除く。詳細はMSDN等を見てください
 
・クエリ結果は、RangeやAll、Anyといったメソッドで活用させることができる。
 ※詳細はMSDN等で。
 
・よくあるLINQプロバイダ…
        LINQ to Object:配列やListなど
                          LINQ to SQL:SQLServerへのアクセスをサポート。
                                          対象は2000~2008及びCompact 3.5。
                                          DataContextがポイント。
                                          ストアドの呼び出しも可。但しどんどん遅延していくので注意。
                          LINQ to XML:3.5から加わったSystem.Xml.Linq名前空間内のクラスを使用。より直感的に扱えるようになった。
                                          Xmlをインメモリで取り扱う。
                                          VBではXMLリテラルなどの機能で直にコード内にXMLが書けるが……。
                                          LINQ to Objectにあった標準的なクエリ拡張メソッドの他、XML用のも用意されている。(System.Xml.Linq.Extentionクラスで定義)
 
10月24日

第1回.NET中心会議に参加してきました

詳細はこちら
 
今回は久しぶりにがっつりメモってきたので掲載しようかと。
…ただ、相変わらず飽くまで「メモ」なのでそこはあしからず。
 
また、あまりよく理解できてない個所に関しては間違った表現があるかと思います。
その時は発見次第コメントでご報告頂けると助かります。
---------------------------------------------------------------------------------------------------------
@IT編集長 デジタルアドバンテージ おがわさん
前身は「VB研」:名前がVBオンリーっぽいので「.NET開発者中心」
ロゴもお金かけてます:イメージは「野武士」 日本の開発者を元気づけたい
★なんかしりきれとんぼ
宣伝:太陽生活 補助金サーチ クロールアプリ開発にえんどうさんが携わっている
大手建築会社「そのサービスほしい」最初は人使ってやろうとしたけど断念
→これがITの原点:人だけではできないこと ニーズにあったソフトを開発すること
パネラー
おがわさん
インサイダー.NET編集長 えんどうさん
副編集長(助手)
グレープシティ やまきさん
インサイダー.NETライター  日立ソフト みやざきさん(こぐまさん)
MS 赤間さん(こんさる) 新村さん(製品マーケティング) 鈴木さん(同じ)
Silverlight、クラウド、Azureは時間なければカット
大テーマ:Winアプリ&Webアプリ>データアクセス>>.NET FrameworkとVSは一括で

<3分間で「現状」を説明> 
【Winアプリ】
やまきさん:
Winフォーム:1からあるUIテクノロジ 2から大きくアップデート
3.5でもWinフォームは2.0と変わらず おそらく一番使われているUI技術
3.0からWPF:Vistaと同時に投入 実際は出た当初は移行ではなく使い分けで説明していたが……
最近は「WPFに移行推奨」 Winフォームはメンテモードに。
4.0でも、Winフォームは存在こそしているが機能追加等はない
Silverlightのブラウザ外:動きが一緒なだけ
えんどうさん:
印象=WPF少ない 現場は?
WPFはグリッドが別ダウンロード:4.0から含まれる→この現状が要因の一旦?
VSの開発でWPFでもWinフォームでもぺたぽてができる
じゃぁ、移行は必要ない?なんのためにWPF?デザインぐらい?
みやざきさん:
現場でも実際少ない。WPFの方がリッチだとは思うけどやっぱりまだまだ。
コンポーネントでもWPF版が出てないなど、外部環境が整ってない
今の業務アプリ:グリッド中心 日本は紙ベースの帳票見やすいという文化が根付いてるので
簡単に移行の流れには持っていけない
WPFへの移行の理由:デザイン性、美しさ、センスの問題
作業分担はわかるけど現場でそういう仕事があんまりない 環境が整ってない→普及しない
やまきさん:
少しはWPF版あるけどメインでは出てない。鋭意開発中。来年以降にいくつか出る…?
レイアウト:WPFで解像度の差の埋め方が楽になった
WPFはやらない理由のひとつ:開発環境が追いついてない コンポーネントも少ない
では、WPFで作るメリットって何?という問題に。
WPFのUIの基盤:自由度高い 柔軟性ある→デザイン性の自由度だけじゃない 
ちょっとしたボタン配置変更などは、Winフォームだとプロパティになければ自分で描画だったのが、WPFであれば
データ扱うための基盤もWPFは整ってる:UIだけの頭でっかちだけでなくデータ扱うのと分割
洗練されてる
移行は難しくても新規案件であれば検討の価値あり
すずきさん:
WinフォームとWPFとの違いを理解してる方少ないんじゃないの?
Winフォーム:歴史的にいうと、C++やってるとわかるけどGDIというAPIをラップしたもの。
GDIという技術はWin2(16bit)の時代から。画面上にドットを打つ、色を塗る、というAPI
ビットマップを扱う部品の集まり
広範囲のハードをサポート
WPF:その下に流れているAPIテクノロジが違う。DirectX=ゲーム用のグラフィックアクセラレータに
近いとこで動く。3D扱ったりかなり高速でやるためのAPIをラップしたもの
ベクターベースの描画するためのAPIをラップしたもの
比較的新しいハードが持ってるものをサポート
赤間さん:
.NET=ピクセルベースUIはWinフォームやGDI+ 2次元絵
   ベクターベースはDirectX
   ドキュメントベースのUI:HTML、ASP.NET
→これらをまとめて扱える技術
UIと技術が一本化してた→今は複数技術を織り交ぜる
現在開発される高度なWinアプリ=UXはこれらを混在させなくてはいけない→XAML=WPFの根幹
開発手法はどう変わる?→VB6:ぺたぺたはりつける 
WPFやSilverlight:レイアウトという概念のもとに作られる CanvasはWinフォームとほぼ同じ
しかしそもそもそんな高度なUIいるんか?というのもある。
ニーズのバランス
ぱわぽみたいに勝手にサイズごとにレイアウトかわるアプリが作りやすくなった
要は「絵じゃない」
現場でそもそも高度なUIを必要とするものがあるのかという問題
誰しも「かっこいい」とは思うけど自分の日常業務でやるのかというとそうでもない コンシューマー向けくらい
→でも最近、高度なUIを必要とするのは、業務でも参照系だと必要かも。 データ分析系だと、PCに詳しくない人向けに直感的にわかるUIが必要
→Winフォームだと行き詰まる
今まで使えなかった人が使えるようになる、マニュアル見なくても直感でわかるUIへのニーズ
コンサル現場でも、WPFデモ見せると驚かれる→思いつかないらしい
協業があるケース:デモPG作るときとか
しんむらさん:
2008:XAML編集めんどい
2010:DataGridおよびデータバインディングD&Dなど、Winフォームで簡単にできたことがWPFでも
できるようになる→追いつく
デザイン:Expression デザイナが作ったものをブラッシュアップ 元々はデザイナと開発者のコラボがテーマ
デベロッパがすべてをやる必要ない:作業の切り分け→WPFだとそれができる
マーケットの状況:これまでは開発者の生産性を重視してきたが、今の景気等でエンドユーザーの生産性を上げる必要性も出てきた→リッチなUIが求められている
WPF移行するのはいいけど金ない、といわれる→実際はWPFはWinフォームの一部としても使える
アプリ全部直す必要はない
すずきさん:
実際はWPFにいきにくいという環境まだ多い
こちらとしては新しいものを薦めたいが……。
Winフォームもこれからすぐ使えなくなるわけじゃなし。但し将来的にはWPFをおすすめしやすい環境がそなわってくる たとえば3年後、5年後どうなってるかを考えてみてほしい
MSの人間だからというのもあるけど、必ずWPFの時代が来る。
Q&A
WPFとWinフォームでは後者の方が生産性が圧倒的に高いのでは?
→社内のツールであれば十分。しかし、ITリテラシー低い人向けだとWinフォームだけでは足りない場合がある。
生産性にかんしては、ツールが多い等環境の違いもある。本来はWPFの方が使いにくい作りにくい、というのはない
WPF勉強するとSilverlightでも使える:サブセットだから
パフォーマンスやリソースの消費は?
→パフォーマンスという観点では、描画スピードは圧倒的に速い。但しハードに近いとこで動いてるのでハードのスペック次第になる。
但し、今普及しているハードの性能を考えると、Winフォームの方が早い可能性大
チューニングが進んでるのはWPF
【Webアプリ】
みやざきさん:
ASP.NET:ぺたぽて&ドラッグアンドドロップなど、Winフォーム作ったことある人にとってはすごく楽。しかし、これまでのWebアプリ作ってきた人=HTML書いて~という人にとっては使いづらかった
→そこで出たのがMVCというFramework:より大規模な開発にも耐えられるように
よりリッチな表現→Silverlight
3年後:今のWeb界はどれが標準になるかわからない混沌とした状況なので不明
ギャップが激しいといっても、今実際Webアプリをリッチにしようとして使うのはjavaScript
ViewState:かなりたくさんの情報持ってる→体感的に遅くなる
MVCは現状、VSのSP1入れても使えない(MSのサイトからだうそして使う)ので、そもそも存在知られてないのかも
大規模に耐えうる=テストしやすくなった
2が出るにあたって、考え方は無駄にならないけどこれまでの「モノ」は無駄になるかも…。
SilverlightはSilverlightでブラウザ内全画面別個で
やまきさん:
比較的小さいもの=Webフォームが向いてる しかし、ViewStateなど、使い方によっては重い
MVCであれば軽いしきれいなHTMLをはいてくれる
コントロール=中にVとC 考え方がちょっと合わない
体験:病院で、CT写真表示のアプリがなぜかIE…→Webアプリにする必要あるの?
Javaからきてる流れ?
えんどうさん:
1.0だと基本手書き:ギャップが激しい
ViewState:手間暇かけた割にチームでの調整が必要
MVCとASP.NETの混在はできないの?
MVCに新しいコントロール:それできれいなHTMLはけるの?
3年後は??
Silverlightで全画面アプリは?それだとWinフォームとかいらなくなる?
赤間さん:
MVC出た時「今更先祖帰りしてどうする」
素でのHTML→コンポーネントベースという流れから出たのがASP.NET:対話型アプリ作りやすい
確かに参照系ならMVC役立つところ多いと思うけど、使い分けるべきだと思うしViewStateが何でもかんでも悪いわけじゃないしそもそもViewState大きくなってるってのは設計的にそもそもどうなの?
→ViewStateでかくなるからMVC、は危険
URLマッピング:アマゾン=スラッシュ区切りでISDN 検索で引っかかる カタログデータをネット上にさらす分には便利 でも…?
どこで切り分けるべきか:素のHTMLをきれいに出したい&コンポーネントベースで開発したい&javaScriptとか使ってリッチにしたい の3つ
きれいに出したい:生産性は犠牲にせざるを得ない
コンポーネント:きれいさを犠牲 更新タイプだと威力発揮
操作性高めたい:ASP.NET Ajaxなど 但し、AjaxでjavaScriptがりがりは生産性高くない
コントロールつかって「吐き出させる」ならまだしも。→そこまで高度なUIを実現させるべきなのか、という話
日本では、ActiveXインストはOKなのに.NETはだめとかなんでもWebアプリであれば案件とれるとかいう土台がある
漏れるものについては.NETで、というお客さんも。
混在:できる
コントロール:対話型処理のハンドリングで発揮 
新村さん:
Webフォーム:URLの問題点
MVC:URL指定で確実に表示したいページが確実によべる RESTの考え方 インターネットで使う
鈴木さん:
ASP.NETは結局HTMLはく技術 Web系はHTMLに依存して進化してきた→MVCが出た理由の一つ
HTMLを生で書くというのを正とすべきか否か:
HTMLを生で=WinフォームでいうならAPIを直書きするのと同義
→だからASP.NETが出てきた
どちらか一方で行く、という話にはもっていくべきではない
なぜ、「Webアプリを作る?」を考えてみよう なぜ「ブラウザを使う」かを考えてみよう
例)今からHTML5のアプリ必要?
まだSilverlight開発がほかに追いついてない
確かにインストが面倒なら、Silverlightフルスクリーンもあり
Q&A
工数や開発者の確保:
→何をゴールとするのか でも基本、JavaScriptごりごりは薦めない 
書かないとなると、RIAみたいなランタイムが対抗馬に
Java
→Javaって思い込みで作られてるとこがある Winアプリ:操作性ちょっとかわる
最近はJavaも.NETも両方できる人が増えてる
【データアクセス】
赤間さん:
SQLべた書き
ウィザードベース
LINQ ORマッピング 単なるウィザードベースではない
エンティティ
上2つが大半
性能的な話するとちょっと複雑:べたがき<LINQtoSQL<ADO.NET Entity 重い
アプリケーション処理の中の「比率」で見る 業務に依存する
アプリケーションを選んでしまう
大規模案件の場合:様々な状況に対応できることを重視 参照系:生産性を重視
うまく併用することをすすめる
技術的にみた場合:LINQtoSQL ダイレクトにSQLがマッピング ADOetc:一旦概念モデルにマッピングしてから 上位のデータモデル概念を扱いたいときに向いてる MSとしてはこれに重きおいてる
LINQtoEntity以外は消えてくんじゃ…?→LINQtoXXX=言語構文 SQL:汎用概念 EntitySQL:概念モデルに書く:言語に依存しない 開発中心に使われていく
「なぜ」LINQtoEntityを使うか どこに使うメリットを見出してるか
概念データモデルだと2の方がよいけど
開発者にとって身近なのは論理データモデル:区別つかない人多い 
概念モデルから落としておくべき:概念→論理→物理の順がベスト 実際の現場では論理からはじめるのでインピーダンスミスマッチ発生
究極は概念だけを書けば全部おkをめざす
トランザクション設計、アプリケーション設計大事
データセットが非常によく出来てた:普通だとそれだけでできてしまう。
変更履歴をまとめて一括で扱う スマクラ的
POCOに対するニーズを満たすための概念=LINQtoEntityなど
履歴が持てない→外部に持たせるということでデータコンテキスト 
昨今のPOCOのニーズにこたえるのが課題
使いやすさ、わかりやすさでいえばデータセット
えんどうさん:
新しいもの使うとパフォーマンスは?
今から安心して使えるの?
画面から作ることの方がわかりやすいからだと思う。概念からというか概念自体作るのが大変
やまきさん:
みやざきさん:
実際は画面設計中心→データ関連は後付けになりがち 学術的順でいこうとすると厳しいのが現状
【.NET Framework 開発言語】
ここから進化していくための足がかり
COBOLがいい、という人の理由:上から下に向かってやるのがよい
利用バージョンの比率;グレープシティの商品利用者のアンケート
思ったより早いスピードで3.5が普及している(少なくともグレープシティの商品利用者の中では)
VSと.NETのバージョンは同じような感じで推移
2003は2002のバグフィックス版的位置づけだったのもあって移行が早かった
昔はVB6からの移行の関係でVB.NETの案件が多かったが、最近はJavaからのというのもあってC#が増えてる
今VB使ってても将来的にC#にしたい、という人が少なからずいる、ととれる結果→理由は?
でも両方存在するしVBなくならない ただ、ベータ版のサンプルコードがC#多いのは事実 開発側で使ってるのがC#だから;なので、読めるようになるくらいはしといたほういいかも
今後、VBとC#は仕様をそろえる流れ
VBの方がインテリセンスのききは良い:MyとMeとドットがわかればカーソルで、という話さえ
VB:初心者向け 思想の違い
2010からWPF使い始めてる:フルWPFモードもある
Winに標準で入ってるアプリにフルWPFがない:ExpressionはフルWPF
電卓はWPF
2010のうり:テストが使いやすい Pro版以上 Winフォームの自動化機能がついた 動きを記録して再生→自動化 テストセンター:テスト専用ツール
最新を追いかけるのもいいけど、幅をもたせるのも大事:視点ごとに触る技術を変える 別なアプローチをとってみる
開発環境として進化を期待:かゆいところに手が届くツールに
Winフォームの開発は変わらないだろうけど、WPF、Silverlightの開発は2010でスタートラインに立った感じ
・WPFは今後のコントロールや生産性の関係で先がある。新規案件であればぜひWPF
・ASP.NETに関しては、WinフォームとWPFの関係とは違って、MVCなどと共存・使い分けになってくる
また、そもそもブラウザを使うことが適しているのかも考えるべき
・「適材適所」が重要なキーワード 存在している技術には存在している理由があり、何ができて何ができないのかを理解して使い分けるべき。また、新しく出現したエリアにも目を向ける。
同じ5%生産性を高めるなら、まったく違うとこに目を向けて生産性を上げる努力をしてみる
・自分の得意なところを深くしつつ、視界は広く。いかにT字型に成長するか
・「作る」は本来楽しいものであるべき ポジティブな感情で使ってくれるとうれしい
 
6月6日

[追記]わんくま勉強会東京 #34

わんくま同盟 東京勉強会 #34
 
スタッフの方々、ご参加の皆さま、お疲れ様でした。m(_ _)m
 
今日の各セッションの様子は、それぞれのブログの中で語ってくれることを期待するとして(笑)
リンク先だけおいといて;、諸事情により自分の言い訳に終始しますすみません。
 
以下今回のスピーカーさん(且つブログ持ってる方)
 
LTスピーカー(且つブログを持っている方)
 
そして私。
 
ここにあげてない方にも、Twitterのアカウントはある方などもいらっしゃいます。
 
 
はてさて。
今日も懲りずにLTに参加したのですが…………
 
・そもそも自分で今回のテーマについて練れてない
・時間気にしすぎた
 
…ので、あのような恥さらしになりました…orz
申し訳ないという以上に壮絶に自己嫌悪です…。ええ。
ホント生きててすいません的な。。。。
 
使った資料はこちら
 
後々見たら、
というかセッション中に、
「これは一つのテーマにまとめられないなー」と。。。
 
途中で話題が別方向に逝ってますね;;;
 
要は、
「『これイイ感じにつくって』と言っていきなり渡されても
相手のことも相手がどうしたいのかもわからない状態じゃ
デザインなんてやりようがないんだよ!!!」
てのを言いたかったんです…。
 
実務でたまに、デザインぽいことをやらされるのですが、そのときに決まって言われるのが
これイイ感じにしておいて
 
…どんな感じだよ、と。
まずその前に言うこと、伝えるべきことがあるだろう、と。
幸い、こちらからつっこめば詳しいことを教えてくれる環境にはいるんですがね…。
 
 
で。
頼む側はもしかして
「この人は美術に明るいからモノを渡せば見るだけで「イイ感じ」にしてくれるだろう」
と思ってるのかな、と考えたのが今回のネタのきっかけ。
 
その原因として、
相手がいてこそ、相手のことがわかってこそ成り立つ、「デザイン」の意味について
理解されてないのが一つのあるのかな、と考えたわけです。
 
プログラムだって、
まずは要件定義があって、仕様書があって……と、
相手のことを知ってから、相手が何をしたいのか何を求めてるのか調査しはっきりさせたうえで
開発しますよね。
さらに、相手についてわかったら、それをきちんと開発してもらうために開発者にうまく伝わるようにしますよね。
 
デザインの依頼だって同じ。
「相手がどうしたいのか」
がわかった上で行うこと。
 
「イイ感じにして」ってのは、それは相手(クライアント)にとって?それともデザイナーにとって?
 
私の経験だと、
「おれそういうのよくわかんないから君の好きにしていいよ」
といわれる。
 
いやー………
そうじゃないだろう、と。
正しい発注者はクライアントだろう、と。
私の好きにするわけにはいきませんよと。
 
なぜなら、
自分の好きなように自分用に作品を作ること = アート
相手が望む形に整える、作品を作ること = デザイン
だから。
 
ただ、
「好きにしていいよ、っていわれたんだから
自分の好きにする = クライアントの意見を聞いて作る
って解釈してもいいんじゃないの?」
と思うかもしれない。
 
今回はそういうのは除きます。飽くまで元となっているモノの発注者とデザインを依頼された者とのやりとり。
 
 
そんなわけで、
言い訳終了です。
次(あったら)はこんなことないようにせねば…orz
 
--------------------------------------
追記:LTリンクに割と普通さんのブログ追加
5月30日

Silverlightのバナーセミナー

昨日、↓のセミナーに参加してきますた。
 
デザイナー向けのセミナーということで、Expressionの公式サイトの方にしか
主な案内が無くて、私もたまたま「Silverlight バナー」で検索したら引っかかった、みたいな。
 
でも、これで「無料」ってのはほんっとお得!
ご飯(軽食寄り)出るし!(←それかよ)
 
何より、今までのってもっぱら開発者向けのだったから、こういうのはマジで
「待ってました!」
という感じ。
多分、自分的に今までで一番充実したセミナーだったなと。
 
しかしそんなときに限って名刺きらしてる件…orz
恥を覚悟で講師さんらに名刺だけ頂いてきたという…。。。
本当に恐縮です。。。(※ちゃんと後でメールさせて頂きました。)
 
さて。
今日も今日とてメモ公開。
ただし、会場がレストランだったこともあり電源がなかったので手書きを帰宅後に
OneNoteに落とすというスタイルをとりました。
頂いた資料の文(というか見出し)を引用しつつメモも…、
という感じで書いたのでいつもよりは、飽くまで「いつもよりは」マシかなと。
 
あ。誤字脱字の苦情スルーは変わりません。あしからず。
---------------------------------------------------------------------------------------- 

【すごいぞ!楽しいぞ!Micorsoft Silverlight

・インストールの画像は変更可能:インストール用ボタンをGif画像に

・利用先ターゲット:マーケティング コンテンツ配信等々

・フォトビューアー = Deep Zoom つけたタグごとに絞り込む、といった動きも可能

MSNショートショートコンテストの例

・データ連動:Silverlightが最も得意とするもの

・最近では…:Eコマース、チケット予約、資産運用などの方面にも進出中

・楽天アフィリエイト用ブログパーツ作成→4月末から稼働中:Silverlight

・業務アプリは情報系が多い

BI:ダッシュボード:派手な動きなくとも操作性を上げるためにあえてSilverlight

 →手(マウス)で並べ替え ドラッグアンドドロップ:この辺の動きはまだHTMLのみではつらい

・デジタルサイネージ:動く広告:駅とかにあるやつ

Silverlight for モバイル:現在開発中:詳細はまだいえない まずはWindows Mobileへの対応

 米国ではNokiaので一つ対応してる?のがある

・イテレーション:反復

----------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------

【短期間で極める!Silverlight2バナーを作るための実用!Blend2テクニック】

・情報は開発者寄りのは多いがデザイナー視点のは非常に少ない

・広告は納期が短い

 

[1:作業全体の流れ]

・使用するソフトにExpression Web:最後にパラメータ変更時にエディタとして使用 DreamWeaverでも可能

SilverlightFlash:どちらかを先に作るか、または並行して作る

 :今回は現実的な話としてFlashSilverlightにおきかえ、というのが多いのでFlashで制作したバナーをベースに制作

・レギュレーション(仕様)

 媒体:MSN

 Silverlightのバージョン:2

 サイズ:350240

 容量:250KB

 アニメ:15秒以内ループ無

 形式:XAP

 他:フレームレートは12~18fps 背景は白

・今のフロー…… モック作る→チェックする→Flashオーサリング→動作確認→調整や代替Gif作り→納品

 これから……… モック作る→チェックする→FlashSilverlightオーサリング→動作確認→移植作業→調整や代替Gif作り→納品

 

[2:Blend2の起動と初期設定]

・新プロジェクトでSilverlight2アプリを選択。言語はC#

Blend       Flash

 オブジェクトと   レイヤーフレーム

 タイムライン

 アートボード    ワークスペース

 プロジェクトタブ   ライブラリ

 プロパティタブ   プロパティ

 リソースタブ    カスタムユーザーインターフェース

           カスタムスキン

           PhotoShopのカスタムブラシ

・作りながらXAMLを覚えるために分割ビュー

 Blend     Flash

 UserControl  _root

 LayoutRoot  シーン

StoryboardUserControl.Resourcesタグの中

・デフォルトのパネル系コントロールはGrid:リキッドレイアウト = 相対位置を保つ

 左上を基軸にした座標をベースに制作するのでCanvasに変更:これでFlashと同じ環境

・サイズ変更はプロパティからでもXAMLからでもお好みで

 

[3:デザインパーツの読み込み]

・読みこみ可能なデータ:JPGPNGがベスト:資産流用のためGifは避ける(Flashでは可能)

・イメージデータ読み込み:イメージ用フォルダをプロジェクト内にきっておく

・いじるファイル = Page.xaml.cs Flashでは表に出ないファイルがBlendでは出てるので気をつける(参照フォルダやPropertiesなど)

 →VS見慣れてると違和感ないのだが

VSの起動:デザイナにとってはBlendが一発で起動してほしいところだが…?→関連付けは「可能」ではあるが非推奨。

 右クリックで頑張るかプロジェクトファイルをBlendアイコンにドロップ

Blend           Flash

 ソリューションのビルド   パブリッシュ

 ソリューションのテスト   プレビュー

・ビルド後のファイルの場所:プロジェクトのファイル名/bin/Debug

 リリースでのビルドはVSが基本

 XAPファイルが最終的な納品形式

・流れとしては(若干こじつけはあるとしても)BlendFlashもほぼ同じ

 

[4:アートボードへのデザインパーツ配置]

・イメージファイルを右クリックで「外部で編集」:Flashだとサムネイルが見れるが…

・レイアウト用テンプレート(イメージ)を配置

・このイメージを下敷きにして制作:座標がわかりやすくなる 絵コンテのコマみたいなもの

・配置したデータには必ず名前付け:Flashだとレイヤーとオブジェクト本体でばらばらに名づけられるがBlendは共有なので注意

 →開発者視点だとインスタンス名ということで理解できるが…

・ザムる:イラレプラグインでXAMLはいてくれるのがあるがコピペ必要→Designにおとして直にXAMLファイルにする方が早い

・アニメーションをつける前に:Blend タイムライン終わっても実体が残ったままになる→無駄な動き有

                Flash タイムライン終わったら実体消滅

 

[5:アニメーションをつける]

Blendのタイムライン:1600%まで拡大 スナップ精度を変更 = めもりどおりに動いてくれる

・移植するFlashの「X,Ys」を見る:Flashがフレームで見るのに対しBlendは飽くまで「時間」を軸とするから

・タイムライン始まる前でも動いてる:この無駄な動きでCPU食う場合があるので「ホールドイン」

・バナーでよく使うアニメ:フレームイン&アウト イージング フェードイン&アウト ワイプイン&アウト

・ワイプとは:対象をマスクし時間とともにマスクをずらすまたは消していくことで表現

・アルファフェードイン:Opacityプロパを変更

・始点設定→キーフレームをセット→終点設定→キーフレームをセット

・「記録オン」の状態でレイヤーの増減は× 

・四角形→クリッピングパス→マスクされる

・ループ設定:共通プロパティの「RepeatBehavor1x2xForever

 

[6:アニメーションのスタートとリンクを設定]

Silverlightは起動したらすぐにスタートはしない:LoadedイベントにStoryBoard1.Begin()メソッド

 Flashだと_root.play()に相当

・リンク用クリッカブルの設定:透明なボタンを配置→それのMouseleftButtonDownイベントを設定してアクションを書く

Blendはビルドとテストは別物

・共通プロパのCursolhand

 

[7:Silverlight表示エリアの設定と納品用ファイルの用意]

・表示領域のトリミング:Default.htmlのスタイルシート部分にある

 #SilverlightControlhostに縦横値を設定する

・実行形式のファイルのみ移す

HTML変更後にビルドすると上書きされるので最後の最後に変える

・データサイズダウン:Png圧縮「PNGGauntlet」画質を落とさず、ごみコードだけ抜いてくれる

           XAP圧縮「XapOptimizer

XAPの実体はZIP

----------------------------------------------------------------------------------------

 

 

【イノベーションセンター】XAML入門 ~XMLから依存関係プロパティまで~

5/26に行われた森博之さんが講師を務めたセミナー。
既に終了済みのイベントのため詳細ページが消えてるのでコピペ。
------------------------------------------------------------------------------------------------------------------------------
日付/時間: 2009年5月26日 19:00 - 2009年5月26日 21:00
言語: 日本語.
製品: Microsoft Expression,Microsoft Silverlight,Microsoft Visual Studio 2008
対象者: 開発者
講師名: 森 博之



イベントの概要

リッチでインタラクティブなUser Experienceを持ったUIの作成が行える話題のUIフレームワークであるSilverlightやWindows Presentation Foundation(WPF)。これらの利用にはXMLベースのマークアップで記述する宣言型プログラミング言語「XAML(ザムル)」の理解は避けて通れません。
XAMLの文法そのものについては.NETで開発を行ったことがある方であれば、それほど難しいものではありません。 
そして、XAMLが持つユニークなメカニズムを理解することでより柔軟にUI表現を行えるようになります。
本セミナーでは、調布技術センターで実施しているWPF/Silverlightセミナー内の1カリキュラムである「XAML入門」をベースに、さらに詳細な解説を加えて、より理解しやすい形で再構成しました。
XAMLの文法やそのメカニズム、開発時に覚えておいたほうがいいポイントについてデモを交えて解説します。
特にXAMLを習得する際に難しいといわれる「依存関係プロパティ」や「添付プロパティ」についても詳細に解説いたします。
※ このセミナーは無償です。
※ 18:30開場、19:00開始となります。 
セッションコンテンツ概要
●XAML概要
●XML
●XAML構文
●マークアップ拡張
●コンテンツプロパティ
●依存関係プロパティ
●添付プロパティ
●ルーティングイベント
------------------------------------------------------------------------------------------------------------------------------
 
元々丸1日やるものを2時間に圧縮したセミナーなので内容が濃い濃い^^;
「XAMLという言語」についてみっちり学ぶにはとってもお得なセミナーでした。
1度あの1日バージョンに行ってみたいが…。。。
平日はなかなか難しい…。。。
 
さて。いつものメモです。
相変わらず誤字脱字等々酷い体裁ですが「内容が間違っている」「この解釈は違う」といった
苦情以外はすべてスルーしますのであしからず。
------------------------------------------------------------------------------------------------------------------------------

基本はXML

属性;タグの中にスペースあけて記述 ひとつのタグの中に1つの要素のみが記述できる

名前空間:同じ名前のタグの存在を可能にする xmls:aaa URIの形で記述

 

サンプル

namespace Sample

{

   public class MyObject

  {

    

  }

}

 

XAMLの文法

インスタンス化:<MyObject xmlns="clr-namespace.Sample">

単純に要素ひとつを記述するだけでインスタンス化可能

1行でシンプルに記述できる

 

XAMLで表現できるもの:名前空間 クラス プロパティ イベント

名前空間:CLR名前空間で表記他 2種類

複数の名前空間表記したいとき:接頭詞をそのつどつける

XmlDefinition:複数の名前空間に対するエイリアス→まとめて定義:WPFのみで可能

 

てんぷれーとのデフォルト定義:WPFのライブラリが含まれる名前空間

Grid等はWPFの中であらかじめ定義済み

:X」定義そのものはすでに定義済みのもの:特に変更しない方がよい→Silverlgiht

x:XAMLで定義されているもの

 

プロパティの設定:属性の中に入れるか要素.◎◎とするか

属性で設定する場合にはルールがある:XAMLは根本的にはXML→文字列:プロパティの型がStringの場合はそのままだが、他の型の場合はその型に直接変換可能である型でなくてはならない

イベントハンドラ→メソッド名:文字列

要素構文:例:ブラシ型のプロパティ→別のオブジェクトを生成して指定できる

→グラデーションのブラシなどを設定できる

ブラシ型がどうして「Red」という文字を赤い色と認識できたのか→型コンバータ

いくつかの型変換のメカニズムが働く:文字列以外型の場合、プリミティブ型は直接変換、

列挙たいの場合はその名前と一致するかチェック、他のオブジェクトの場合は型コンバータ使用

型コンバータとは?変換できるかどうか型がもつタイプあとりびゅーたをXAMLが探しに行く

タイプコンバータ:継承させてオリジナル作成可能 任意作成可能

TypeconverterAttribute

CanConvertFromTo)→bool ConvertFromTo)→オブジェクト

CanConvertFromTo)変換可能ならTrueを返すメソッド

ConvertFromで変換

RED→型こんばーたが探してくる→みつけたらConvertFromで変換する

XAMLC#VBがなんらかでつながってないといけない→コードビハインドの仕組み

パーシャルクラスで実現している仕組み

WPF:ビルドした段階でバイナリ形式のファイルできる

SilverlightXAMLのまま

C#Internal メンバ変数の形

指定がなければX:name申請で可能

2つ同時定義は不可

 

マークアップ化拡張

入れ子可能

 

定義済みのマークアップ拡張もある

WPFのみで定義済みのマークアップ;iStateResorce

バインディングをマークアップ格著うで票下可能

XAMLで扱うモノ「リソース」ディクショナリの用に扱える

1つのオブジェクトを使いまわしたいときはリソースを使う

 

クラス内にContentPropertyAttribute:あらかじめプロパティを設定しておく

→利用先で、省略された形で設定ができる

 

XAMLの特殊プロパティ:

プロパティの設定(特性)によってコントロールの動きや特徴が決まる

アクションではなく、開発者の意図を表現することを優先した仕様

→ただし、外部に公開や変更に関しては別に仕組みが必要になる

 

プロパティの種類がいくつかあるので、一般的なプロパティを「CLRプロパティ」と呼ぶ

依存関係プロパティ = DependencyPropertyクラスによって管理されているプロパティ

→インタラクティブな表現を簡単に行うために欠かせない

 

作り方:DependencyObjectを継承させる:UIElementWPFSilverlightの基本となるクラス)は

最初からDependencyObjectを継承している

Static インスタンス化されることなくすでに設定されている

 

DependencyProperty→コンストラクタがPrivateRegisterメソッドで定める必要がある

XAML:プロパティを介してアクセスされなくてはならない

DependecyPropertyGetValueメソッドで値をセット

 

バインディング:2つの「データを設定する場所」(データポイント)を持つ

依存関係プロパティでなくてはならない→通知の必要があるため

FrameworkPropertyMetadata 依存関係プロパに指定できるメタデータの1つ

→規定値を持ち、検証や強制、変更時のコールバックに関する情報も持つ プロパの特性

GetMetadataメソッドで取得可能:イベントに関する検証や強制のコールバックに使用

 

プロパティの継承

基本は親から子へ上→下というように継承されていくが、途中で変わるとその「変更された値」が次の子に引き継がれる

→論理ツリー

 

添付プロパティ

定義するクラス以外でプロパティ値を設定する必要があるときに使う

コントロールを経由してアクセスする必要がある

メタデータを通して

RegisterAttachedメソッドを使うのが特徴

 

ルーティングイベント:バブル型 トンネル型

トンネル→親から子へ バブル→子から親へ

WindowからButton  ButtonからWindow

------------------------------------------------------------------------------------------------------------------------------

「XAMLを使った○○~」 = SilverlightであったりWPFあったりといったセミナーは多いけど、
こうしてXAMLを一つの言語として深く学ぶセミナーって意外とないなと。
森さん自身は資料があまりなくとても苦労なさったそうです。

次から下はセミナー終了後の質問タイム時に聞きとったもの。
私はあまり深い質問はできないのだが、aetosさんがたくさん質問をされていたところを横から聞き耳立てていました(笑)
私ももっと深いツッコミ(?)ができるようになりたい…。
あ。深すぎて理解ができなかった&メモの意味がわからなかった(←手書きだった)ものについては割愛。(…)
------------------------------------------------------------------------------------------------------------------------------
・XAMLは、画面に配置されたコントロールいかにしてレンダリングするかが肝になっている
・アイテムプレゼンター、コントロールテンプレート、コントロールセディクター ←各コントロールの下でがんばっている物
・ルーティングイベントは途中で切れることはない
・Silverlightはいわば「マネージもどき」
・FrameworkPropertyMetaData:WPFにのみ「公開」されている
・レンダリング時に各コントロールをチェックしている→作り方によっては恐ろしく重いものに…
・Buttonタグに直にテキストを入れているのと、TextBlockをかませてテキストを表示していることの違いとは?
 →前者は先ほどのコントロール化でがんばっているものものが頑張って最終的にobject.ToStringで表示している。
   後者はプロパティの値。
・Buttonをはじめ、各コントロールには基本何でも入る。もし、型が不特定のオブジェクトを入れたければデータバインディング。
・1コントロールが抱えられるのは1コントロール。(レンダリングの関係?)
 複数コントロールを抱えたいなら複数用のコントロールが必要→だからCanvas等がある
------------------------------------------------------------------------------------------------------------------------------

5月14日

TechFieldersセミナー「All About Silverlight3」

本日、こちらに参加してきました。
 
タイトルにもありますが、Silverlight 3に関するセッションです。
本日の講師はエバンジェリストの大野元久氏
 
4月にも同じタイトル・内容で行ったそうですが、
私はスケジュールの都合でそっちには参加できず今日に。
個人的には、興味のあるRIA関連の話がいっぱい詰まっててなかなか面白かったです^^
 
あと、
またもLT、ライトニングトークスに参加させて頂きました。
資料はこちら
 
今回は技術的な話ではなく、(私の場合「技術的話題」といってもレベルがタカがしれてるのですが)
「日本語のSilverlight専門コミュニティやサイト、ブログって少な過ぎ!」
という文句…いや感じたことについて。
ゆるーいネタです。
 
資料内にあるサイトのほか、個人的によく見てる、
RSSで拾ってるサイトやブログは以下の通りです。ここのブログでもよくピックアップしてます^^;
但し全て英語圏のなのでご了承をば。。。
 

飽くまで個人的目線からなので参考程度だけに…;
因みにSilverZineは他に比べて珍しく(?)デザイナー向けのところなので
私にとってはとても面白い&ためになりますw

最後に、セッション中にとっていたメモを置いておきます。
誤字脱字ひらがなカタカナ多々ありますがお手数ながら脳内変換でお願いします;;;
(※実は最初の方にアウトブラウザの話があったのですが並行してBlend3いじくってたので
ついていけずすっとんでます……orz きっとどなたかもレポートまとめてる…はず…!)

-----------------------------------------------------------------------
 まだ実運用サイトで使うことは想定されていない>SL3Beta

北京オリンピック→普及に貢献

gyaoYahoo動画→日本国内での普及に貢献

:米国に続き日本も普及率高い

メディア関係メインに普及している

イージング:イージングファンクション:動きの抑揚をつけられる

バウンス

定義済みの関数を使用:表現によって変えてみよう

自分でも新しい関数を割り当てて使用することも可能

グラーエフェクト:スライダーの値を反映させる

画像ににじみを与える Blur Effect

イメージエフェクトタグ = 単数形 =ひとつに対してしか指定できない

Borderタグでかこってやると、Borderの要素として扱われる

ぼーだー いめーじ いめーじえふぇくと

エフェクト:ドロップシャドウも可能 徐々に影がつく感じとか

Grid EffectGrid内のすべてにエフェクト:操作しているスライダーも含む

ピクセルしぇーだー :

フリップオーバーエフェクト 左右反転する もともとDirect Xで使っているもの

エフェクトかける→反転する 処理の順番も関係あり

うずまき効果とか:動画にもOk

Silverlightでオンラインプレゼンツール→それをオフラインで使ってみようとか>その中の使えるエフェクトとして

WPF:カメラの位置

SL3:置くのは3D空間だけどモノはあくまで2次元

ボタンにかたむきとかのエフェクトをかけても機能が崩れることはない:押せなくなるとかはない

例)ヘルプボタン押すとフォーム(紙のイメージ)が裏返ってそこに内容→Perspective D

テキストボックスが斜めってると字も斜め

カジュアルな3D表現 ゲームとか本格的なものをやろうとするとちょっと大変かも…

ビットマップの作成が可能になった:今までは疑似的

WritableBitmap 引数に書き出したの時のサイズ かきこみをしてレンダリングをする

→ビデオのスナップショット キャプチャ機能を作ることもできる

WrapPanel:折り返し可能パネル

鉛筆アイコンのボタンクリックでエディットモード

C#側で属性をつけたりなんだりで効果発揮

データフォーム:一つのコントロールを編集しやすくする

[Bindable(false)]属性Classの前に置いといたりとか→編集不可

BindingDirection.TwoWay OneWay 属性 編集の仕方の方向性

プロパティにDisplay属性 [Display(Name="名前")] [Display(Name="名字")] 表示される内容が変わる

[Display(Name="名字"),Discription="firstname"]→ヒント出せる

RequiredField:必須項目化させる

[Range(1,100) ErrorMessage="xxxxxxx"][String.]設定以上の文字の長さとかでエラーを表示させることができる

XAMLAutoCommit = True or False ページ遷移時に保存するか否か:

保存ボタン押さないとまた編集モードに戻すとか

AutoEdit

<dt:DataFormFields> データフォームのタグ

ClearType:フォントでRGBの並びまで考えてスムージングしてくれる機能 ※SL3B未実装:最終版では実装予定

CaretBrush:ぐらでや効果、果てはイメージ、動画も設定してブラシ化

上と右はSL下はHTML:上のSLは動画:上:ローカルアプリ

LocalMessageSenderオブジェクト LocalMessageReciver受け取り手

アニメを自動で再生し終わったらイベント発生→また再生

バイナリXMLをサポート&デフォルト:パフォーマンスアップ目的 テキストより効率的

Silverlightページ:フレーム内で動くもの

ナビゲーションフレームワーク

メインページにTagを使って各SLページに飛べるようにする

ボタンのタグを取り出し、メインフレームのナビゲートのURIに設定→SLページへ

ブラウザのURLも変わる=それぞれにブックマーク可能:デフォルトのページ名も設定できる

戻るボタン:ちゃんと辿った順に戻れる:今まではサイト丸ごと戻っていたのでSLサイトの前に戻っていた

App.XAML Navigate:URIMapping Navigate:URIMapper  で各URIを設定→Tagに設定するURIAppで設定した短縮名にできる

 

Silverlightページもスケッチフローで設定というかBlendで設定できんの?

→Blendでは最終版でおそらく可能になる / スケッチフローでできるようになるかは不明

 

スケッチフロープレイヤー:テスト用

英語版のワード入ってたら仕様書できあがってくる

プロパティタブの縮小幅に制限がなくなった

ビヘイビアはWPF

 

UXの目的:かっこよくするだけでなく、ユーザーの入力時の間違いを減らす・手間を省く・正しいページに導く

-----------------------------------------------------------------------

 

4月21日

【Codeseek】第39回:Silverlight 3とBlend3の新機能から今後の開発スタイルを考える

 
本日(時刻的には昨日)、Codeseekさんの勉強会に参加してきました。
前回、Osloのセッション後にちょこっとやったSilverlight3についてを、2時間に拡大してお届け。
 
なので、
こないだとなるべくかぶってない箇所だけメモ。
相変わらずの誤字脱字聞き間違いは御容赦ください。
 
-------------------------------------------------------------------------------- 

Silverlight製の言語、というのは存在しない:それぞれの言語から別言語を呼び出せる

JavaScriptからマネージドを呼び出すこともできる

途中で飛ばしてもバッファリングで待たせることがない→飛ばした瞬間に画質落とす:画質落ちてる瞬間に残りを取りに行く

音はあまり途切れない

あかまい:ログもみれる

ビットマップに落してから転送:前はすべてCPUレンダリング

指定したSilverlightの域でエフェクトがすぐかけられる

↓サンプル集

http://samples.msdn.microsoft.com/Silverlight/SampleBrowser/index.htm

DeepLinkとは:ボタンのタグプロパティに指定されたXAMLへ飛ぶ 小さなページ遷移

RIAサービスを使った実例とか

http://code.msdn.microsoft.com/RiaServices

RIAサービス:英語版のVSにしか入らない

英語版を上書きして両用 日本語版FullSP1→英語版FullSP1International Settingで日本語選択

新しいテクノロジープレビューをいろいろ使える:英語オンリーが多いから

インストールメニュー:ブラウザの外で動くようになる:タスクマネージャで見ると??

SLランチャーの名前でホスト 1画面1ランチャー どっちを強制終了したいか、というときはちょっと困る?

2つのらんちゃーの間のデータのやりとりは?:ローカルコネクション(SL3から)

ローカルに限って同じドメインのあぷりどうしで通信可能:ドメイン一緒であればブラウザ不問

Local connection Silverlight3で検索

アプリのアイコンは変えられるの?

単独でSLランチャー動かしてるときのデバッグ:DOMアクセスとかありえないのにやってしまったらどうする??

「削除はユーザーにはさせたくない」ときは?:そのシナリオは考えてない

カレントユーザーのとこにインストールとおもわれ:ALLUserはたぶんない

自動バージョンアップ可能

アウトオブブラウザ:マックも可能

Blend3本体とTFSとの連携が可能

Blend3からコードのインテリセンス使用可能

イベントにコード書く必要がなくなる:ビヘイビア

アセットライブラリ→ビヘイビア:CallMethodAction ChangePropertyActionなどなど

:ボタン等にドラッグアンドドロップ TriggerEventNameともども入る

イベントを連結すみのユーザーコントロールを作っておきあとはデザイナに任せる

右上のデータタブ→サンプルデータソースの追加

Editサンプルバリューで各列ごとに系統を設定可能

データバインドされている:裏でコードができてる

メイクイットコントロール:取り込んだフォト所等のレイヤーごとにボタンなどのコントロールの変換

スケッチフローでつくった流れはワード等に出力可能:あくまでひな形

MS側としては自由度を高めるためにあえて足りないものもある:マネージドコードで作れる

--------------------------------------------------------------------------------

 

 

よく、メインに持ってくる「SkechFlow」。

近いうちはまだ一般化の予定はないそうなorz

4月4日

【わんくま同盟】DataBase Day

東京勉強会、参加してきました。
 
今日は「DataBase Day」ということでセッションスピーカーもめっさゴージャス!
てかベテラン揃いもいいとこで!
詳細はこちら

また、私個人としては初体験となった
「資料のダウンロード」
「ディスカッション&その結果の発表」

これらも非常に良い体験でした。
前者は、パワポ形式であれば各スライドごとにメモが入れられて超便利。
パワポ以外の形式のときはやっぱりワンノートだけどね。

後者は、その日のメインテーマについて自分で実践できるから
記憶に残りやすい = 真の意味で勉強になるなー、と。
ただ時間短いからドタバタになるのがアレですが^^;
やっぱり受身じゃダメだよネー。ヽ(´ー`)ノ

受け身にならざるを得ない形式でも、聞きながら質問を考えたりすることで
身になるんだけど、なーんも知らないと質問すら出ないこともあるしね……。。
「やってみて初めてわかる・気づく」というか。

1つにテーマを絞った会なら(身に付くという意味で)なかなか高い効果を発揮するのではないかと。


そんなこんなでいつもどおりのめも。
LTについては出番待ちで立っててなかなかキーを打てなかったので省略しま。。。
因みにやったテーマは…
※タイトルではないので注意
・こくぶんさん:SQLiteとADO.NET Entities Framework
・野良さん:SQL Server 2005の時間系のデータ型
・あたし:Blend3とSilverlight3の紹介(この間聞いたモノほぼそのまま…;←次のわんくまでやるの後から知ったorz)

---------------------------------------------------------
【はつねさんの「データベース設計入門」】

<<<<< OneNoteメモ >>>>>
お勧めは「Oracle + .NET」

業務アプリにはDB

当時「難しい」と言われていたOracle7を入れてみた(Win)→実際は意外とそうでもない
Oracle Objects for OLE:
今日の環境:

クライアント
Vista Business SP1
VS2008 TFS SP1
ODAC
ODT→スタンダード以上
DP.NETはエクスプレスでも可能
Virtual PC 2007 SP1
サーバー
Oracle Enterpruse Linux 5
Oracle 11g R1

概念設計>論理設計>物理設計
概念設計とは:
現状分析>お客さんの業務の流れ、状況を把握 データをどれくらい保存するのか
今データはどんな方法でどのように保存されているのか
例:電話きたら手元のノートに書く>コピー>上の人のはんこもらって保管→いつ使うの>結局使ってない

エンティティ抽出>例:問い合わせ→承認 これが終わったら>次のは何?←エンティティ
リレーションシップ>関係性
属性抽出
…以上この流れで行う
ないがしろにされがち:リーダー一人でやってたり営業さんがやってたりが現状
「今この状態」を知りたいので想像できず飛ばされがち

論理設計
正規化:これだけでほぼ完璧

論理設計:
テーブル設計
非正規化
今は概念、論理が大事

非正規化状態:エクセルの表みたいなやつ→この後の問題を分析しないと…>>
-----------------------

<<<<< パワポメモ >>>>>
[スライド:第1正規化]
誰でも使えるようにする
必ず手書きにする→抜けがないか確認する
場合によってはここで一気にひろがることもある

[スライド:第2正規化]
もともと数学の世界の言葉:正規化
最初の3つの項目だけで誰だかわかるはず:質問者に依存してるところは変えよう
同じ質問者かわかるようにIDを使おう:部分に依存
→これも「第2正規化ができるか ○」みたいに手書き
見開き
昔のメアドや昔の名前はそのまま残す、という仕様の場合→これではだめ:日付が必要:履歴
↑概念設計で現状分析でこういった仕様が必要かしっかり洗いだしておく→故に概念設計と論理設計物理設計が別な人というのは危険

[スライド:第3正規化]
第2正規化で終わるときもある
第2正規化とどう違うの?>第2:質問者とメールアドレスは同じモノ:同じモノを表現するものを分離
第3正規化:開発側の都合で必要なものを分離する:勝手に決まるもの

[スライド:ER図]
仕様書と実態をいつも一致させることができる:ERブラウザ
昔の:一度非正規化しないと遅くなったりした
バッファもったいないのでテーブルわけたりくっつけたりもした
今はOracleもSQLServerも最適化してくれる
9i:もほぼ正規化はやい:多少残ってる
11g:ルールベースなくなってる

<<DEMO>>
Object Browser ER
Entities + Relation = ER図
有料のだと線がきれいに出てクロスしないようにしてくれたりする
あんまり細かいことは書かない
質問:IDと質問内容
答え:答えの日付と回答内容
→誰が質問し、誰が回答したか、は関係ない

それらに付随してそれぞれカテゴリや名前などがある
→綺麗にまとめると、「これらは1こいいのでは?」といった面が出てくる
Ex)質問者と回答者が同じ場合 サポセンみたいに回答者と質問者が必ず別の場合で分け方違う

客「既にテーブルできてる」というとき→インポート

----------------------


【KEUNAさんのManaging SQL Server for IT Pro】
※PDF資料のみだったのでOneNoteメモのみ
SQLServerを正しく認識
車内に存在するSQLServerを管理していくために役立つポイント

※基本2008で説明
SQLServerはどういうサービスで構成されてるの?
SSAS,SSIS,SSRS


データベースファイル:データベースのデータ
チェックポイント =DBのキャッシュをフラッシュするタイミング
コミット:SQLの中でプログラマが設定することが可能
直接の関係はない:データを保護するタイミングを見てる

どんなに早いCPUがたくさんあってもスレッドは1つ→ボトルネックになる可能性大

復旧間隔:デフォは1分

パッチ
すぐ当てなければいけないもの、そうでもないもの、の分類がある(ISM)
完全復旧モデル:書き換えるほどたまっていくので注意>ディスクにたまりまくって落ちることも…
ログをどうバックアップするか事前に設定しておくこと
Express:単純復旧がデフォルト
基本、ログはひたすらたまるもの:ログで1Tとか…
「ディスクのこのあたりをバックアップしたので次はこのあたりね」→一括復旧:差分バックアップ可能
例)毎回「1万行更新しました」みたいなのを避けるため
「これが最新」という情報のみ→単純ふっきゅ

バックアップ圧縮:CPU使用率は上がるがIO量を削減 見掛け上速度が上がる
ex)中身がjpgばかりのとかだと圧縮無理
→リソースガバナーでポリシーを定義:それに従ってCPU使用率やメモリ利用量を制限させることができる

tempDB外出しでパフォーマンスアップ
------------------------


【レジェンド・オブ・ジニアスさんのSQL Server 2008 の新機能をチェック】
<<<<<パワポメモ>>>>>
[スライド:MERGEステートメント]
オラクルでいうUPSERT

[スライド:ユーザー定義テーブル型]
オラクルのストラクチャみたいな使い方ができる
READONLYにしないとエラーになる
ストアドの中でテーブル作ってる

[スライド:ユーザー定義テーブル型 + MERGE]
あれば更新なければ追加マスタになければ削除

[スライド:ロックエスカレーションの無効化]
2008からテーブル単位で設定できるようになった
前はDB単位
ロックエスカレーション:いろんなコストを考えてロックを昇格する 900の行ロックかテーブルロックかを考える
オラクルにはそれがないので全部行ロック:メモリ食う 場合によってはそれがよい場合がある
→そこでロックエスカレーション
自分でやるかSQLServerに任せるかは自分次第
機能があるからって下手に使わない

[スライド:Date型とTime型]
日本のはたいてい文字列で入ってる
文字列変換して比較しなくてもよくなる

[スライド:hierarchyedデータ型のプログラミング]
.NETデータ型
再帰コードなしでツリービューができる
実際はバイナリ
2.1と2.2の間にいれたら2.11になる
数値でもってるので下から考えている
論理的矛盾が出たときは?ループにはまるような移動は??→フラットだからループしようがない

[スライド:FILESTREAMストレージ]
単なる巨大なバイナリである画像やPDF→ファイル管理の方が都合がいい
DBの中には入っていない 単なるフォルダの中に入っている

[スライド:FILESTREAM使用例]
デフォルトではOFFになっている
画像:データ直す =フォルダの中のファイル直す でもよいということ

[スライド:空間データ型]
位置情報
Geometry:数学的

[スライド:空間データの操作]
VirtualEarthやGoogleMapのデータ:ほぼ同じ
線でも点でも面積でもなんでもいい:LINESTRING:線 呼び出されたオブジェクトも点になる

Geography:実態バイナリ:TOSTRINGで文字列にしないとわからん
世界規格用日本規格用のパラメータを持っているのでそこで調整

[スライド:JIS2004対応]
DBの中身のみ対応
Shift –JISはUnicodeに変換不可
プログラム側でバリゲートしておく
Unicode制御文字:間に0幅文字が入る:バックスペースで消していくとわかる

[スライド:ぜひ、ご評価ください]
全部タダ


<<DEMO>>
リソースガバナ:TSQLでもダイアログでも設定可能
:CPUの喰いあいを制御 動的に設定可能
他のタスクが終わり、CPUが空き次第一気に占領:そのCPUの状況によりそのつど動きを変える:
設定によっては賢い

ユーザ定義テーブル型:コード側でDataTable型を引数にして設定でいる

--------------------


【えムナウさんの あなたにもわかるデータベース設計】
[スライド:業務モデリング]
わけてしまう

「業務ビジョン」が大事:誰からお金をもらってるのかを考える→お客さんからいただいている>>システムを作る決定権のある人
→その人に合わせて設計するべき

[スライド:業務プロセスモデル]
アクター:システムのときもある

[スライド:業務プロセスモデル・業務フロー図]
今回のはVisioで作成

[スライド:エンティティ関係図]
ここ大事:正規化の前段階
カテゴライズする

[スライド:カテゴライズ]
意味でも形式でも重複してるものをまとめる:この場合は両方ありうる

[スライド:エンティティモデル]
データを主観にする

[スライド:エンティティモデルの設計方法・物理モデルを作成]
SQL Serverは特にtimestampを使うと早い

[スライド:物理モデル]
DataSetみたいなやつ
----------------------------------------------------------------------

パワポのは、資料が目の前にあるとわかるんだけど、
そうじゃないとメモだけだとわかりにくいね;;;;
そしてパワポ自体に大半のことが書かれてるとメモの量は著しく少なくなるっていう…;w

パワポに書いてあったのことは勝手に詳細を公開していいのかわからんので
とりあえずこんな形式で。
もし、全体でダウンロード可能になってたら落とした資料と合わせて見てみてくだしあ。
スライド名は、わんくまテンプレートで一番上に書いてあることか、あるいは
内容の見出しから取ってます。


あ。そうだそうだ。
ジニアス氏のデモをちょこちょこ撮ったんだけど
あげてよいのかまだわからんので保留。
なかなか面白く、そして毎度のごとく(笑)わかりやすかったです。
ホントすごい人だなー。(・ω・)


写真といえば。
データベースをみんなでつくってみよう、ってんでグループディスカッション&発表
やったんだけどそれの写真撮るのすっかり忘れてター!!
あー…もたいね。。

因みに私は、
わんくま代表である中さん、
今日一緒にLT参加だったこくぶんさん、
海外の方Benさん、
他、じゅんさん、おかじまさん、いちけんさん、という初めておあいする方らと
グループになりますた。

Benさんは途中でお仕事だかで抜けてしまったのが残念。。。(´・ω・`)
海外のエンジニアさんとなんてめったにお話できないのに。。。
名刺交換すっかり忘れてたわorz

DB作りのテーマは「時間割」。
結果はシンプルながらそれゆえに考えること(仕様)が多く、
40分じゃあ、とてもマトモにまとまらないwwwwwww

もう発表時間間近になって、
でも模造紙まっちろwwwwwwwww
確かに深く話し合いたい気持ちはわかるけど、
とりあえず発表できるようにかいちまおうZE☆
というわけで一人で勝手に仕切ってガリガリ書きましたすいませんorz

一番年下(多分)なのにこんなこというのアレだけど、
あのままだと誰も書かない気がしましてね…。。。
中さんはそもそも全体の代表者なのでほかの班まわったりなんだりしなきゃいけなかったし。
ま、今思えばそんな焦って書かなくてもよかったなー、と思いつつ。



それにしても見事に全8班、かぶらずいろんな考えが発表されますた。
ホント人間は面白いですねw

これ1時間や2時間だったらもっといろいろ深められたんだろうな。

こういった形式の勉強会はまたぜひ参加してみたいところ。
3月22日

【Codeseek】第38回codeseek勉強会「やっぱりOsloは長沢さんから教わりたい」

詳細はこちら
 
3月19日に、Codeseekさん主催のOslo勉強会がありました。
前回もOsloがメインテーマでしたが、今回はなんとMSのエバンジェリスト:長沢智治氏自らが講師に!
さらに、飛び入り乱入(笑)ということで同じくMSの大西彰氏による、今旬な「Silverlight 3」についての
プチ講座も。
 
そんなわけでいつもどおり(?)編集無しのメモを公開します。
 
------------------------------- Oslo編 -------------------------------
 

できたモデルはリポジトリに蓄積しランタイムで即見に行く→使った先で加工

MSはかなり本気

簡単にモデル定義するための言語=M 視覚的に簡単に扱えるようにするためのツール=クアドラント

とにかく作ったモデルはリポジトリに保存

モデルを作る作業=クアドラント:データベースの仕組みを利用

クアドラント:ビジュアル的に見せる

現在仕様が変わり、言語の文法も変わってきている

 

コードの例

module Microrsoft.Samples

{

  type MusicItem

  {

    Id :Integer64 = AutoNumber();

    Album: Text;

    Artist:Text;

    Rating Integer32 where value <= 3;  

  } where identity Id;

 

  MusicLibLibrary: MusicItem*;

}

 

コマンドラインも使用可能:コンパイラがある:m.exe

リポジトリへのインポート

 

コンパイル→リポジトリに保存

Mコンパイラを使い、.mファイルをコンパイルすると.mxになる→単なるZIP圧縮

XAMLちか入ってる

MXファイルのイメージを格納してる感じ

保存したモデルはエクセルで見れる→表(テーブル)のイメージ

 

一見単なるデータアクセスの仕組みに見える

いろいろな制約表現とかもできておもしろい

入れたものはクアドラントを使うことで、エクスプローラという形でリポジトリに入ってるモデルが見れる

クアドラントはまだ未公開

クアドラントの面白いところ:ビューをいろいろ変えられる:人によってデータの見やすい形が違うから

非常にグラフィカル:ドラッグアンドドロップ自由自在

SQL Server2008必須:Express版にはまだ未対応 なくてもインテリパッドは使えるが、リポジトリがないため蓄積できない

「表現」の方法をクアドラントでモデル単位でかえられる:ビジュアルなものをつくるのは大変:ちょっと使い勝手悪い

構成を理解していないとまだ難しい段階

製品をまたがった形、上にアプリケーションがある形だと現在のMSのモデルソフトでは無理

ダブリンもモデルはOslo

システムセンターもそのうちOslo:そのうち全体のモデルをOslo

DSLを作る:

ビジュアルなDSLを作る→クアドラントで

クアドラント:ノンテクニカルな人でも使える、誰でも使える形を目指している 

汎用的なDSLを書いたり使ったり→クアドラント

専用のDSLVS、しぇあぽ

→共存?:評判によってはVSにクアドラント要素とりこんだり…

Mグラマー:独自に文法を定義できる

Token BY = "by"|"By"|"BY"|"bY"

自然言語である必要は全くない:自然言語を解析するためのものではないから

英語圏で使える書き方 a…z|A…Z  日本はそういうわけにいかない→ユニコードごとに定義(但し全部は不可能なのでよく使うことばのみ)

現在のインテリパッドは日本語可能

テキストベースのモデルは重要

DSL作るのがOsloの一番の面白さかも(それ以前にモデルをしっかり組む):今の段階は遊び道具なのでいっぱい使って

M言語自身がMグラマー:その定義もSDKの中に入ってる

すべての目的のためにOslo

モデルを書くだけでそのモデルを実装できる

2010:モデル、WFWCFを使ったウェブサービスを作れる

モデル駆動でより簡単に:コードごりごりがすべてじゃない→ただしモデルの完成度を問われる:抽象度を上げるのはよいこと

画像も扱えたり途中でコード呼んだりとかなり柔軟性高い

将来的にはダブリン後ろで動かしたりとか…

ライブメッシュ:リモートみたいな

MWindow:だうそ可能

コードの中でMグラマー呼び出して何かする:モデルの中でれいあうとやデザインを決め、リポジトリの中を見にいって動かす

モデルだけでビジネスが成立するレベルを目指す

M自体は仕様公開→サードパーティによる実装可能

ランタイムに対応するとどんどん広がる:MSは(頓挫しなければ)全製品対応予定

似たようなやってる企業は結構ある:ただし、リポジトリだけとかツールだけ、といったのが多く、全部やってるのはそうそうない

---------------------------------------------------------------------
 
------------------------------- Silverlight 3編 -------------------------------
 

MIX09

今日日本時間深夜2時にScottGuから大量の発表@キーノート

079V1 去年V2 今日V3

Expression Blend3 CTP

スムースストリーミング

パフォーマンス強化:疑似3D:面を傾けてみせる パースペクテブ3D

1ピクセルずつ操作可能 

作ったアプリの外観をスキンとして切り替え

検索にひっかかりやすくした

アクセシビリティ:システムカラーの認識、読み上げ

ブラウザ外で動くアプリ作れる

アウトブラウザモード:ネットワークの切断の認識/復旧

アセンブリをキャッシュしてくれるようになった

Silverlightのレンダリング空間全体

WPFみたいにデータバインディングでリアルタイムで状態変化可能になった

スケッチフロー

ビデオもパースペクティブ3D対応

デザイン側で全部できる:トリガー対応:WPFとはちょっと違う

Blend3からはインテリセンス対応 XAMLにもインテリセンス

画面遷移のスケッチの段階(フロー)からBlendが使えるようになった

デザイン時にサンプルデータがない:Blendからはデータが扱えるようになり、サンプルデータを定義できるようになった→実行すると即反映

コードをかかずしてストーリーボード作ったりできる

おえかきをしながら動きを確認できるようになる:WPFSL3

サンプルデータもリアルにクラスが作られている:コレクション作ってバインドしている

TFSと連携できるようになった

下位互換性キープ:2のものも動く

WIndows7からSilverlightでのマルチタッチ対応

.NET RIA Services Framework:データ関連扱うときの開発が大変なのでそれをなんとかしようというためのもの

DataGridViewの設定みたいなことできる

---------------------------------------------------------------------------
2月18日

Codeseek勉強会37「モデリング言語「M」を使ってみよう。」

Windows 7、Asureに続いて話題沸騰中(?)のMSの新技術「Oslo」。
コレ、特定の商品を指してるんじゃなくて、MSが進めているモデリング技術の総称なんだそうな。
今日初めて知った…;w
さて。この「Oslo」。
こないだ行われた「Tech Days 2009」でも2つほどセッションがあったらしく、
その資料は公開されている。
今回の勉強会もその資料を参考に行われた。

で。
この「Oslo」の中心となっているのが「M言語」。
「M」は「Modeling:モデリング」のMだそうな。
作られた目的としては、
「コンピューター(に関する事柄を提供する)側からユーザーに歩み寄ろう」とのこと。

要は、プロではないけれどもプログラミングをしている・せざるを得ないエンドユーザーのために
もっと扱いやすい、もっと仕様を表現しやすい技術
→特定(そのプロジェクト)の目的に沿った言語・モデルを作るための技術
ってことだとか。
※正直、まだ漠然とした感覚でしか捉えることができてないので表現としては適切ではないかも…。
今現在、その立場にあるのはAccessやExcelで使われているVBAがいい例らしい。
 
実際にCTPを動かしながらいろいろなお話が聞けた。
しかし、まだまだこの「モデリング」自体を私が理解していないのもあり、
これ以上まとめられなくなった…orz
のでメモをそのまんま公開。
--------------------------------
PDCでMSが見せたいと思われたもの
・Win7
・Asure
・Oslo:モデリング技術の総称。特定の製品を指しているわけではない。
長沢さんのパワポ参照
.NET 3.0をベースにしたWPF、WF
あちこちにモデルがあってめちゃくちゃ:今のアプリ→何かまとめる
モデル = ツール群
Ex)SharePoint:テキストベースDSL、
ばらばらになってるものを1つにまとめ、本質に力を注げるようにする
情報を一か所にまとめる:リポジトリにまとめておく
ビジュアルDSL テキストベースDSL:Domain Specific Language
最近の言語は汎用化してるので目的があるようでない→DSLとはいえない
COBOLやFortranはまだせまい
目的で縛ってあるものがDSL
M言語:M =モデリング:コンパイラをつくるためのコンパイラ?→特定の目的用の言語がつくれる
Unicodeなので日本語もおk
Mschema:SQLつくれる
MGrammar:PG言語をつくるための言語
MGraph:数値、データの抽象モデルー>ここからデータをつくる
Quadrant:ワークフローのリンクみたいなインターフェース
たとえば、その店のウェブサイトつくるときにそれ専用の言語をつくるetc
M言語でSQL生成のコード書く→SQL生成される→コンパイル→リポジトリ(SQL)に登録
生成されたSQLはそのままDBで流せる
ビルドに組み込めばコマンドラインで細かいものを書かなくて済む
.mxはバイナリ
もしSQLServerに登録できたら…→Excelで表示させたりとか…
MMode、SQL Mode
数値として設定した箇所を文字列にすると…?
スキーマのマッチングはしてない:マッチングするようにはできる?
yaccに似てる
左側:コード 右側:定義
もとから定義されているもの(ベースがある)もあるが、リポジトリの中にはなんでも入れられる
ベースがあるものも、それを元にして新しく作ったり…
バージョニング:IISの拡張 = ダブリンがバージョニング持ってる:データにバージョンがあり、
その処理方法を選べる:バージョン不整合によるエラーを避けられる
ルーティング:ワークフローとかを流してるときに、様々な条件でメッセージを流す→それらを一括でやるエンジン:行先を決めるイメージ:実際はDB見ながらループしてるだけ
ストアドはどうなの??→ストアド用のM言語を自分で作る???
Vista+VS2008+Winアップデート全部:環境にうるさい
やりたいことをまず書く:「やりたいこと」からの目線でつくられたのがM
Ex)M言語を介してレガシーシステムと新システムを同一上で動かせたり
FLKにも使える??
Mスキーマをコンパイルするとバイナリになる
今後のロードマップの説明とかはまだない:未完成品故?2010に入れたいらしい ダブリンはまだ
VSの「アーキテクト」に入れる??
--------------------------------

実際にもっと触ってみないとなー。
1月15日

[Codeseek]コメントは必要か、不要か

本日は2009年初のCodeseek勉強会ですた。
主催のtatsugoroさんはじめ、御参加の皆さまお疲れ様でした
そして今年も何卒宜しくお願い申し上げます。m(_ _)m

[前篇:コメントの必要性]
しばしば議論される「美しいコードとは?」とも絡む永遠のテーマ。
…といっても過言ではない気がするけど実際は既に結論は出ている、という。

結局は、
「コメントを書かなくてもわかるコードを目指すべき」
てのが正しいのであって、これがいつの間にやら
「コメントは書かないのが正しい・かっこいい」
と考えてる人が出てしまっているのが現実。

以下、tatsugoroさんから伺ったお話。
その昔、
COBOLという言語が世界初の高級言語として誕生した。
因みにその前はアセンブラ。

COBOLは「仕様書を書く言語」として作られ、要は
「コメント無し = コードオンリーで仕様も動きもわかる」
というのを目指し、目的とされた。

しかし、
いざ普及してみると
仕様書書く→(COBOLで)コード書く
という現実。
結局は何も変わらなかった。

また、どうしてもコードだけでは仕様を後々に伝えるための表現が不可能になり、最終的には「コメント」を許可せざるを得なかったとか。

その後、「フォートラン」が誕生。
これはtatsugoroさん曰く
「わけわかんないのがかっこいい、と思われた」ことの結果だとか。

このCOBOL等々だけでなく、
その後誕生するどの言語も、同じ夢・理想を追求していったが、
表現が違うだけで結局は「コメントは必要不可欠」なのが事実上の真理。

因みに、
開発言語のベースが英語だろうと、なでしことかのように日本語だろうと結論は一緒。
そもそもそういった自然言語自体が決して完璧にロジカル(論理的に)つくられてるわけではないのに、
無理にそれをベースとしてしまっているもんだから別途表現(説明)が必要になる、と。


ただし、
「必要」なのはあくまでそのシステム、コードの中で仕様を相手に伝えるのに無くては困る場合。
ゴミコードやわざわざ日常の文章表現に直す必要のないものを置いておくための仕組みではない。

多分、後者が蔓延してるからこういう「いる・いらない」の議論が起こるのかな…。


[後篇:Windows 7ベータ所感]
ひろりんさんとめさいあさんの発表。

御二方だけでなく、実際に使ってみた人の大半は
「意外とVistaより使いやすい」。
無論、ベータ故に(?)いろいろアレな箇所も多いみたいだけど…。
以下所感メモ。

・コンパネまわりが変わってる
・ログが英語と日本語混在してしまうバグ
・コンピューターの管理:Windowsログ・システム・イベント→全般タブ:日本語と英語混じる
・システムロケールの設定:規定位置を入力させるパネルが追加→なんのため?管理者用
・ロケーションによってウェブサイト等見れるものが変わってくるからそのため
・多言語対応が豊富になった
・地域と言語のオプション
・キーボードと言語:表示言語のボタン:文字ぎりぎり→やっちゃいけない
・ユーザー単位で表示言語、入力言語、形式、場所を設定できるようになった→ようこそ画面も
・ウェブ:日本語URL入れるとだめ
・エアロシェイク:直前の画面が最小化したり最大化したり
・エアロスナップ
・全画面にしても枠の色は変わらない
・VBのバイナリ→再生成してる?
・ocx減った:ソースないから再生成できない?
・SDKも豊富
・最近いじったファイルがそれぞれで表示:ピンもさせる
・南京錠アイコンや電源アイコンではなく文字で「シャットダウン」になった
・PowerShellが最初から入った
・タブレットPCだと書き文字の認識率が上がっているのがわかる
・壁紙やスクリーンセーバーが選択しやすくなった
・時間単位で変わる壁紙にも対応
・ライブメッシュが入ってるとうまく動かない?

OneNoteで取ってたメモそのまんまなんでわけわかんない箇所もあるかも。。。


私はギリギリでインストールしたので(てかインストールしながら = ノート抱えながら移動してきた)
正直まだ大してさわってない;;
しかも、Viutual PC 2007に入れたんだけどメモリの設定間違った?のか、動きがやたら遅いんだよね…。
描画間に合ってないしorz
1GB(1031MB)割り当てたんだけどなあ。。。

家PCのVirtual PCにも入れて試してみるか。
11月16日

わんくま同盟 東京勉強会 #26 - ライトニングトーク大集合!!

昨日 = 15日土曜に溜池山王タワー13Fにて行われました。
私も参加させていただきました。
 
で。
一応自分除いて49人分メモを取ったのだけど、いかんせん
数が多いのと風邪ひいてるのとで、
見苦しさMAXなのを自覚の上でメモそのまんま公開。
因みにOneNoteで取ってたり。(どうでもいい
 
当日の登壇順はこちらを参照してください。
私(37番目)のは後日PPTと一緒に別記事でアップします。
------------------------------------------------------------
1:中さん:身近な野鳥
すずめ、むくどり、はと、からす←かっこよくて一番好き。東京にきて嬉しいのはからすがおおいこと
最後のオチ(?)はボーイングの飛行機
 
2:たっくさん:聖地巡礼のススメ
「ヲタ的」聖地巡礼 ある意味宗教的行為
世界にひろがる聖地巡礼 海外からのお客様
イタリア ARIRA マリみて とか ハーロックとか宇宙
 
3:鈴木宏昌さん:配色を考えてみよう
あるフォーム:背景黄色、OK赤、キャンセル青→まんまやるとうるさいし悪趣味
たとえばBlendを使って整えてみよう
 
4:Kei1さん:ソフト開発によるシステム管理
バージョン情報とは:アプリexeとかに含まれてる
バージョンを取得してみる
要件の実現には1つの手段にはこだわらない 十分なテスト 万全なセキュリティ対策
 
5:なかchanさん:Silverlight2でわんくまボタンをつくろう
Blend2SP1でつくったソリューション→そのままだとVS立ち上がるので右クリックでプログラム選択
マウスオーバーでツールチップみたいなセリフ登場 クリックでウィンク
テンプレート化して貼り付けるだけでいろんなバージョン
SilverlightApp.sln button stateで設定
 
6:ZOETRPE RubyでSilverlifht
Sliverlight Dynamic Language SDK 見た目はXAMLロジックはIronRubyで書く
メソッドやプロパ名が「_」区切り
SDL SDK付属のChiron.exeでXAPファイルを作る必要
ページにはりつける
MSがレイルズと連携するためのSilverligthプラグインを開発してるとかなんとか
 
7:アキラさん FC++ ブログ:Faith and Brave
C++で関数型プログラミングを行うためのライブラリ Haskellを意識されてるとか
公式サイトからfcpp1.zipをだうそBoostのフォルダにつっこんでおk
 
8:猪股健太郎さん 私がJavaからC#に乗り換えた10の理由
2003年に@ITにのった記事
道具は設計思想にそって使わなければ真価は発揮されない
実行効率がC#の方がよい→今はJavaも改善
C#=現実をふまえたごった煮言語 Javaやらいろいろ 4では動的型が使えるようになったり
無節操だが無秩序ではない 豊富な機能と理解しやすさとのバランス
 
9;zio3さん プロパティ設定に新提案 PropertyMatrixの提案
VSのプロパティ設定は簡単だけど数多いとめんどい
アドイン作ってみた
1つのフォームにはりつけたコントロールのプロパティをグリッド上でまとめて設定
一括設定も可能 同一プロパないで違う値があったら色変えるとか
CSVでのインポートエクスポートもOK
 
10:とっちゃんさん インストーラ作ってます?
市販:作らないという選択肢はない
業務:デスクトップ向けは多いがサーバー向けは…
VSでもインストーラは作れます フリーソフト、オープンソフトでもあります WiXとか
ただし日本語ドキュメントない…
作らないのは英語の壁じゃなく、インストーラなくても動いてるし困らないから
Vistaになって正直かなりめんどう UACとかUACとかUACとか
趣味の世界:使うの自分一人なんだから作ってみれば? ClickOnceとかどう?
3.5 SP1で大きく変わったがやっぱり英語
MSIは?UAC出さない方法もばっちり ファイルさえ渡せればおk .NETいらない
 
11:takaさん シガー
キューバ:少量生産だが需要が高い 偽物もおおい、ドミニカは高い:ダビドフが有名 
ホンジュラス、ニカラグアは安い:煙草屋の趣味によってはある
紙巻き:味がない たまに香りがついてる
葉巻の香り:クリーミー ナッツのような ココアのような スパイしー←この辺そのまんま
木の香り:木を燃やした時のようないい香り
どこで買えるのか:趣味によってはおいてるけど少ない 専門店:少ない新宿とか ネット:質がわからない
 
12:高見知英さん:コミュニティ参加のすすめ
磯子クリエイティブチーム:共同制作を行うコミュニティ
オフ会もコミュニティの一種
なぜコミュニティイベントに出るのか:出会いが楽しい 共有できる話題
 
13:片桐継さん:
瓶詰の魚:アカヒレ:3度~30度で暮らせるので非常に丈夫:原産地で中国ではほぼ野生では存在しないが
丈夫故に下手にはなすと生態系破壊の可能性
 3cmの魚3匹が3年間くらす→もっと良い環境に
ビンはいわば核シェルター:広いシェルターに変えよう
環境整えたら少しずつ水を変えていく:温度とPhを必ず整える
一気に変えると心臓止まる可能性
 
14:chY:人文諸科学への招待
Googleの広告システム:ユーザーが見てるページの内容に合わせて変化
最近では「リアル」の履歴がとれるようになってきている
特に何も考えずに履歴を取っていたデータが個人の情を体系づけて構築してしまう
常に見世物にされてるようなもん→何もできない:人文諸科学「超パノプティコンとデータベースにおける問題」
個人情報がどんどん盗まれていく世の中:←?誰が?なぜ?盗む側も盗まれる→結果共有??
 
15:やじゅさん:北斗の拳の世界でオブジェクト指向を
3大要素:クラス、継承、多態せい
クラスはデータと操作の集まり:オブジェクトの設計図
インスタンスとは実態
クラス化:人間(能力はさておき)、拳法、ストーリー進行管理
クラス人間:プロパティ設定例:名前ラオウ 性別 通商 組織 所属 流派 しちょうせいの可視
メソッド:特技
インスタンス化 Dim けんしろう As new 人間()
継承:拳法クラス 北斗南斗
ポリもーふぃずむ 呼び出す側 呼び出される側
ケンシロウ.特技.
 
16:出水さん:公開鍵暗号とRSA
平文←→暗号文
RSA:公開鍵暗号の一つ
a=bのd乗×mod×n
dは233
詳細はWikiで
 
17:takeshikさん C#4の動的型の使い道を妄想してみる
動的が キーワード引数などなど
Dynamic dobj 宣言
DynamicObj
ユーザーがオブジェクトの根本的なふるまいを自由に定義
tween開発に参加してる人
 
18:IIJIMASさん VS2010CTPのC#4をのぞいてみよう
新機能:dynamic 遅延バインディングサポート 省略可能ぱらめ 省略可能ref
省略可能ぱらめ:Office相互運用アプリのコード記述の簡素化が実現
 
19:こくぶんまさひろさん:C#であそんでみた
C#:ドの半音上
ミクとの組み合わせでピアノソフト
Vocaloid2のRealtime VSTi <VST Host< C#アプリ メッセージ投げるてリアルタイムで歌う
MIDIYoke:仮想MIDIデバイス
 
20:Crystal Dew World ひよひよさん:ハードディスク監視しよ
ハードディスクは壊れることがある:故障予測ができれば…?→S.M.A.R.Tという仕組み
おかしな動作をしたのちに壊れることが多いことから;故障と大きな相関関係
約10万台のハードを解析したのちに論文で発表
作ってみた>USB接続のHDDに対応できないか
CristalDiskInfo2.0:6台も
一部標準化されているか基本的に隠し機能として監視・解析機能を持たせている
11月20日リリース予定 crystalmark.infoで公開
 
21:あんどちんさん:キャッシュの功罪
CPUのキャッシュ:CPUとメインメモリの間にありCPUの動作に対して遅いメモリのアクセス速度
を隠ぺいするための高速メモリ
HDDキャッシュ:HDD内部に存在 IDE/SATA/SCSI等転送速度より遅いデバイスアクセスを隠ぺい
ライドバック、ライトスルー:書き込みは後で CPU書き込みタイミングで書き込む
書き込み時キャッシュの不整合:CPUが書き込みを行った時に同期していない
読み出し時キャッシュの不整合:
キャッシュとメインメモリの整合性に注意 JIT等の処理ではキャッシュ制御に注意しないと暴走することも
→バーチャルマシンなんぞ使うな
 
22:松崎さん えばの人 Tech Fieldersって何
Tech Fielders:コミュニティ向けの企画を開始
MSDNセミナーやIT Pro道場の名前変わっただけ?ブログ開設?→違う
よく聞くイメージ:一方的にUpdateやら説明会やら…
それを変えてみよう:米国では頻繁に技術者が入れ替わり立ち替わり:MSの人ももとはいち技術者
社員からの一方的なセミナーではなく、互いにやりとりしていこう
MS側から取材して情報発信
コミュニティの一環として
 
23:おかむらさん:結婚の諸届出
戸籍変更=婚姻届:親の戸籍から抜けて新しい戸籍を作る 二人の戸籍謄本も必要 
はんこは三文判&旧姓 新しい本籍地 どこでもよい 地番が存在するとこならおk
元の本籍地と同じ場所でもよい 親と同じ場所に違う戸籍
届け出先は事実上どこのしやくしょでもよい
たいていけっこんしきの日は入籍日ではない
一人で出しに行ける:後日確認の書類郵送
戸籍は1週間くらいでできる
住民票の変更届を出す
最寄りの警察署で免許とか帰る 新しいハンコ 郵便物の届け出先も変更
社会保険の変更:会社に住民票をもってくだけでよい?
届け出以外は姓が変わる側のみの仕事
 
24:やまささん スマートフォンでライブストリーミング
自転車にくくりつけ ライブチャットもおk
いろんなことができる
 
25:昇日 FormとReflection
Formの遷移がループしてる場合参照もループ
Webのリンクみたいにできないか:Reflection;PGの中でPGの情報を得ること
クラス名でNew
欠点;コンパイルの時にチェックが入らない 若干重い
 
26:mxbさん ASP.NET開発標準化を考えてみよう2
1はBLogで公開中
ネーミングルール、コーディングルール、CSSのコーディングルール、HTMLの、JavaScriptの
これらにAjaxのコーディングルール追加
さまざまな現場の声もいれるが…
 
27:割と普通さん:型付言語で作るマッシュアップサイト .NET vs Java
マッシュアップサイトとは:WebAPIと連携し独自のサービスを公開しているサイト
まだまだビジネスロジック(BL)は.NET、Javaが現役… COBOLはさておき
Java(JBossSeam) マッシュアップサイト>IIS>ASP.NET→ぐるなびAPIやVirtual Earth
Javaはめんどい:しかしクロスプラットフォーム アプリサーバーもいっぱい
さまざまなWebあぷりの構築方法がある
 .NET:JavaScript連携が容易 デバッグ簡単 IDEからのアプリ起動が高速
マッシュアップサイトは… Javaはあんまり向かないかも .NETはそこそこよさそう
Webアプリ作成そのものは… Java:OSS系ソフト連携が強み .NET:MS系で固めるなら最強
しかしPythonなどでやったほうがいい
 
28:fnyaさん 派生開発プロセス XDDPのすすめ
派生開発とは:既存システムの修正や機能追加開発など 保守よりも概念は広い
開発現場の7割が派生開発といわれている
規模に対して開発期間が短いのが特徴:あせって失敗する傾向
XDDPとは:極端な派生開発専用プロセス
プロセス改善コンサルタントの清水吉男氏が提唱
要求仕様をベースにした開発プロセス 氏が20年かけて構築
差分に特化し不要なプロセスを徹底的んい排除
ソースの修正は最後に1度だけ→ドキュメントのない派生開発にも対応
取り組み方:要求→ユーザが望む状態want  仕様→PGとして実装するものwhat
ドキュメントテンプレの用意:USDMというエクセル用書式あり 
 
29:ちゃっぴさん Coding以外のセキュリティ対策
どんな脆弱性があるか:バッファオーバーフロー SQLインジェクションなどなど
対象範囲:Coding関連:SQLインジェクション Directory
SQL:渡すパラメータ内に特殊な文字列が入ることで想定外のSQL
directory trabasal:同じディレクトリを複数のパスであらわすことが可能なため扱うパスによって
制限をかけるコードかいてるときにおこる 利用できてはいけないユーザーが利用できることが問題
バッファオーバーフロー:予約サイズ外にまでメモリを書き込むこと
Codingのみで対策を行うとテストが面倒
 
30:Rさん:3分でWCF
SOA構築のためのMSの統一PGモデル
サービス志向アークテクチャ:大規模なシステムをサービスの集まりとして考えよう
分散処理が簡単に構築できる 
Using System.ServiceModel

31:初音さん Oracle Enterprises Manager リカバリ機能の紹介
ThinkPad メモリ3GB Vistaビジネス VirtualPC2007にOracle EnterpriseLinux
VirtualPC:壊れてもコピーあればはりつけで
データベースファイルOSレベルで削除 起動するとエラー リカバリ実行:

32:yukiyukkiさん もやしもんで学ぼう!風邪対策
代理でHarunyanさん
風邪ウィルス:ライノウィルス:37度前後の熱と鼻かぜ 親戚は100種ほど
生姜に弱い RNAウィルス
インフルエンザウィルス;風邪とは別物 これから活発 乾燥してるとこ大好き RNA
予防注射
 
33:匠さん フリーランスってどうですか?
自己紹介
できないことをできるといわない:しかしこれによって火消しの方法とか
契約内容を軽視しない
非こみゅ系になるなかれ
 
34:skylab13さん 天文学とは何か
観測、理論:計算シミュレーションとか、装置開発の3つ
観測天文学とは何か:宇宙望遠鏡または地上望遠鏡で観測
分光観測:星にスリットをあててそこか漏れた光をスペクトルで分ける
わかること:温度、物質、速度、距離(ドップラー法みたいな)などなど
天文学者は何を見るか:銀河 星団 星
天文学でわかること;宇宙の進化、天体の進化、物質の進化、生命の進化などなど
第2の地球はあるのか、そこに生命があるのか
 
35:ぶらっくさん WSHと自作PG(VB)でクラスタサーバのリブート
何をするものか;クラスタサーバーをリブートさせます 安価で管理ソフトいらず
サポート問い合わせ時の問題を回避 何かしらの不具合が発生した時の「サーバ負荷が高いと…」
難しい技術不要 ログファイル退避とか
注意;作成OSがウィンドウズ2000 WS2003で使えてたみたいだけど 2008は不明
 
36:SAN_Morishiさん 生クリームについて
痛んぶらー
クリームの定義:乳脂肪率18%以上0.2%以下
生乳をほっとくと脂肪分が浮く→そこをクリーム
ホイップ:35%~45% 
純乳脂肪:クリーム(乳製品):風味がよい。そのまま飲んでもほんのり牛乳味保持期限が短い 製造から1週間でダメになる
乳脂肪+植物脂肪分
 
38:luxionさん  iPhone開発
納税者番号
 
39:凪瀬さん:JSPでウィルスもどきを作る
定義:自己伝染機能、潜伏機能、発病機能のうちどれか1つ以上有するもの
今回は自己伝染機能で。
「感染するとテキストが増える」
バイナリと違いテキストファイルに記憶するだけで簡単に感染することができる
感染を防ぐには:JSPプリコンパイル ファイルおくフォルダに対して権限もたせない
 
40:mihochannelさん ネットワークの無い環境でセキュリティパッチ適用を行う
WindowsUpdateを客先で
パッチをだうそしとく リンク先の技術文書をまず確認 本当にそのパッチが必要なのか確認
一括だうそはまだ非対応
台数がおおい場合やsyspreb直後のマシンが大量にある場合とかに有効
 
41:guichengさん ロケット
固体ロケットと液体ロケット
東大の教授が中心になって30年以上前から国産ロケットの計画
中島飛行機→解体→富士精密工業(自動車のエンジンとか)→プリンス自動車工業と合併
→プリンス自動車工業に名称変更→日産に吸収→宇宙部門が日産へ
日産は70年代から打ち上げ:しかしその分負債も。。。。
 
42:かずさのすけさん 車載動画をやってみよう
車やバイクで走りながら景色を撮影
等倍速で生で流したりBGMやテロップをつけたり
うpするには?:ビデオカメラ
ビデオカメラを固定する方法、PCへ取り込む方法、編集方法
吸盤でフロントガラスに固定・ダッシュボード、クランプ、三脚、つっぱり棒etc
どの車にもつけられる・吸盤はしっかりしたものを
ダッシュボード:うまく三脚がはまるものもある 両面テープで固定
 
43:まーるさん RAID
HDDの特徴:ガラスまたはアルミの円盤を回して金属製のヘッドで円盤状の磁気記録を読み取ったり
書き込んだりする
機械稼働部品がおおいため半導体部品に比べて故障率高い
安価な冗長ディスクアレイ:RAID直訳
安いディスクを複数うまく組んでアクセス処理
RAID0:並列 ディスク1本しぬとだめ
RAID1:N本構成の場合、HDDがN-1になっても大丈夫
RAID5:元データから復元可能 書き込み遅い DBのデータには使わない方がいい
バックアップは必ず
 
44:岩永さん C#4をさっそく逆コンパイルしてみた
動的型付変数 dynamicキーワード スクリプト言語とかの連携
オプション引数名前付き引数
共変性反変性
↓ダイナミック属性がついたオブジェクト
Static dynamic GetX(dynamic x)
{
  return x.X; CallSiteクラスを通した動的アクセス
}
オプション引数:属性つくだけ。現状のVBの実装と同じ
[Optional
コンパイル時に引数んおデフォルト値を展開:メタデータは呼び出し側には残らない
ILの仕様上はIL2.0の辞典で共変性、反変性に対応済み
 
45:goyokiさん 開発言語マネジメント
C言語のイメージ:あまりよくない 総合的な機能安全の認証規格「推奨しない」車開発「使うな」
使えない言語をどうするか:使える言語を自分らで作る→サブセット作る
Cの言語仕様を満たす独自言語
サブセット=言語仕様としてのコーディング規約
レビュー依存はなるべく避ける:自動検出できるようにする
解析ツールが検出可能なルールから選んでサブセットを作る
既存サブセットを使うのも手 MISRA-Cが最も成功しているCのサブセットの1つ
サブセットのサブセットもあり
既存資産を活かしつつ、言語の特製をカスタマイズ可能に
マネジメントでなんとかなる
 
46:ymonさん WPFのメモリリークについて
長時間運用の場合は特に危険
TextBox:undo機能使った時に危険
ComboBoxをNewしただけでもメモリリークが発生
めげずにひとつひとつ対処
IMEも
 
47:長月葵さん パースの基本とお手軽テクニック
遠近法:心理遠近法:画面上に物があればそれ以外は背景とみなしたりする心理的効果に基づく遠近法
 重なり遠近法:重なったものがあるとき後ろとみなすものを隠すことによって感じる奥行に基づく遠近法
 隈どり遠近法 鳥瞰図遠近法 大小遠近法 透視図法 空気遠近法:遠くのものほど淡く見えることを利用
消失遠近法:遠くにあるほどディテールが見えないことを利用 色彩遠近法
透視図法(パースペクティブ):消失点
48:TAKESAKOさん HTML 2.0 Binary Hacks
11/11はHappy Binary Day
JavaScript.gif バイナリの中にJavaScriptと読めるものがはいっちゃう
 
49:花子さん Ocamlくんと友達になろう
事前にしっかりチェック:Objective Caml 推測型付
最新は3.10.2
コンパイルも可能だがインタプリンタもおk
#print_string"Hello";;←;;で終了をしめす
#1+2;;
-:int=3
#0.1+0.2;;→floatとして認識:桁数多い
OCamlは単精度ではなく倍精度
# let a=1::
Val s :int = 1
#a + 2 ;;
-:int=3
#let b ;; ←初期化必須。どの値に名前つければいいかわからずエラーになる
参照型を使う:定数の前に「ref」 := で代入
関数;# fun x -> x + 1;;
# let add = fun x-> x + 1;;
↑この関数に名前をつける
 
50:ぽぴ王子さん タイマーを作ってみた
セッション中の時間調整は難しいので自分用タイマーを作ってみた
 
 
 

11月2日

【@IT】データベース勉強会 簡単に実現できるDB開発カイゼン術

 
今日初めて、@ITの勉強会に参加してきた。
MSはもちろん、あとはわんくまやCodeseek(←私の場合は大抵こちらがメイン)はよく参加するのだけど。
 
プログラマーになって3年。
ヒトの少ないプロジェクトにいるせいもあり、いろいろなことに携わるようになってきた。
データベースもその一つ。
正直、名前とSQLだけちょこっと知っていて、深い仕組みや事情はさっぱりなのだが、
いわゆる「参加することに意義がある」ということで & 無料なので勢いで申し込んでみた。
以下今日のまとめ。
 
元々データベースの知識も開発経験も浅いので、聞き違い勘違いも多数あると思われます。
そのときは是非つっこみよろしくです。
また、これらの文章は正確に登壇者の方の言葉を反映したものではなく、講演、ディスカッションを聞いて
私なりに理解した結果を書いているものです。御了承下さい。
あと、記憶違いも結構あるかも…。
---------------------------------------------------
<1>基調講演:富士通ソーシアルサイエンスラボラトリ 福岡寿和氏
「データベース開発の品質向上と生産性はどう向上出来るのか その実践型開発スタイルとは?」
 
・今回の前提:
 クライアントOS…Windows 2000、XP、Vista
 開発ツール…VS2005、2008
 データベース…Oracle 10g R2、11g R1
 サーバーOS…該当DBが稼働すればなんでもよし
 
・開発側にとって、データベースが動けばなんでもよい。が、実際のお客さんなんかは
 「SQL ServerだったらWindows系じゃないといけない」
 といった固定観念を持っている人も多く結構驚かれる
 
・「自分たちのシステムに本当に必要な(データベースの)機能とは?」を考えないままただただ
 「全機能使えるから」などといった理由で非常に高い = コストのかかるEnterPriseを選んでいるところがとても多い
 →本来はStandard Editionで十分な場合も多く、このEditionが使われるべき
 
・最近の方針として、機能面はすでに飽和状態にある。よって、いかに運用しやすくするかに力と目が向けられている
 また、障害耐性の向上もテーマの一つ。これはどこも一緒。
 
<2>パネルディスカッション:福岡寿和氏、わんくま同盟 えムナウ氏(児玉宏之氏)、モデレータに ブレインハーツ株式会社 取締役 谷川 耕一氏
※サイトには掲載されていないが、当日は日本Oracleの方が1名参加されていた。大変失礼ながら名前を失念。。。。。
 
<最近のニーズの動向は?開発環境は?>
・  福岡氏:自分の場合は中規模が多く、全くの新規でというよりは現在の環境を生かしたうえで品質を上げたい、という注文が多い
        運用面ではログを重視するなど「見える」システムづくりに力を入れる
        テストをしやすいようにロジックを分離
        新人など、システムや開発方法が全くわからない人には「作らせない」:教育等にもコストがかかるから
        .NET上で独自にフレームワークを作ると、.NETと独自フレームワークの両方の知識がないといけない→よって.NETのみで開発
        コーディング規約はだいたい6Pくらいにしておく。そのくらいでないと読まない覚えられない
        運用管理を重視した設計、開発を行う。ログは必須。エラーが出たときのトラブル対応の仕方など
        →一部はOracle(データベース)の機能として既に実装されている場合もある
・えムナウ氏:4,5人の店舗といった小規模~中規模物件が多い。最近は同じく全くの新規よりはアップグレードや改善などが多い。新規は新規でもリプレイスなど。
        見た目 = UIのみ変更も多い
        問題発見にはやっぱりログ。何レベルも用意しておく。実行環境を変えずにログが出せるようにする
        モジュール化、部品化によって効率化を図る
        .NETの上に独自のフレームワークをつくり、共通部品を多めにする
        御客さんで、出現したエラーの内容を正確に教えてくれる、教えられる人というのはまずいないので、ログに出たエラーの詳細も含めておく
 
<DB開発環境:規模や用途別の切り替えはどのポイントで見極めるべきか>
・   福岡氏:基本的に動けばなんでもよいので、サーバーOSにWindowsが使える、などと提案すると驚かれることがある
         おおもとのコードがあるから直る、というのは幻想
         ADO.NETはDB2やSQLiteも接続可能
         .NETはデータベースと親和性の高いフレームワーク
         データベースにはどこまでやらせるべきか?例:Viewを作ってレポーティングシステムを利用することでノンプログラミング
         昔は帳票というと「このフォーマットじゃないとダメ」というのが多かったが、今は「このシステムを使うとこんなことができる」と提案すると割とすんなり受け入れてくれる
・日本Oracle:開発系の機能は10gでほぼ完成。11gでは運用のしやすさに重点を置いている。従って11gで新たな開発系新機能は少ない
・えムナウ氏:開発はもっぱらVSで。データベースはSQL Server
        小規模なところだと、Express版を使ってコストを下げる、ということも
        VSのTeam Suite Database Edition(後々Developer Editionに統合)は結構ストアドのバグやゴミを見つけてくれて便利
        使用言語を分ける基準:元々アセンブラからC言語、C++、C#と経験したこともあり、自分に選択権がある場合はC#。
        VBは昔、ホビーユースから仕事向けに変わった時代に使ってみたら、お客から「遅い」といわれそれ以来基本はC#。
        また、VBはガベージコレクト時にやたら深くもぐってしまう
 
<DBを取り巻くテクノロジー>
・  福岡氏:予測をうまくつかった運用の仕方が今後のキーポイント
        アドバイスの仕方の研究
        突如使い勝手がよくなったEnterpriseManager:以前はJavaベースのクライアントで、そのマシンでうまくJavaアプリが動くかどうかという問題があった
        今はWebベースになり、応答もはやいしリロード機能付き、UIも良くなった。インストーラが1枚におさまった
        マルチコアが主体になるなら、環境が勝手に処理してくれるくらいのレベルになるまでは危険というか面倒→いかにモノをつくらずに済ませるか
        CPU余ってたら仮想化
        データは企業の財産。従って、しっかりしたデータセンター以外の他のところ(例えばアマゾン)に預けるのはいかがなものか。→アマゾンのはいつ何に使うのか
        特に日本は他社に財産を預けることを嫌う(銀行かタンスか)
        銀行はデータセンター。クラウドはまた別。データベースとアマゾンは全く別モノ
・日本Oracle:実は10gのときに開発担当らが変わった。彼らの方針が開発効率よりもまず「良いものを作る」ということだったためあのように方針や開発方法が改善された
        Oracle(現時点では米国)でVMテンプレートを出している。仮想化ソフトに既にセットアップ済みのソフト。営業系SEがよく使ってる。日本でも近々出す予定
・えムナウ氏:最近のSQL Serverは大規模物件に主眼を置いている
        DSL、モデリング関連が今アメリカで熱い
        これからはマルチコア。インテルは昔から進めていたがMSはまだ実験段階
        .NET:マルチコア用のクラスが増えたり、ちょっとしたマルチコア用キーワードが必須になる?
        客の要求と資産はデータベースの行・列とはまた違うことを念頭に置く