3. 本セッションの目的
• 新しいASP.NET Web PagesとRazorの概要
を知っていただき、興味をもっていただく
• Classic ASPの移植先としてのWeb Pagesの
可能性を感じていただく
3
Okayama IT Engineers Community
4. 本日のアジェンダ
• 新しい「ASP.NET Web Pages」とは?
– ASP.NETのおさらい ~歴史を振り返る~
– ASP.NET Web Pagesの簡単な紹介
• Classic ASPと比較したASP.NET Web Pages
– Classic ASPのおさらい
– 7つのポイントで見る
• まとめ
4
Okayama IT Engineers Community
7. ASP.NET以前のIISのWebアプリケーション
• CGI
– C/C++やPerl等々
– 昔のIIS(6.0以前)ではあまりCGIのパフォーマン
スは良くなかった
– コードから文字列としてHTMLを出力
• Active Server Pages(ASP)
– Classic ASP、レガシーASP等とも呼ぶ
• 本資料では、一貫して「Classic ASP」と呼称
– ISAPIを利用し(CGIに比べ)高パフォーマンス
– HTMLにコードを埋め込むスタンス
※IIS = Internet Information Services
7
Okayama IT Engineers Community
8. ASP.NETの登場
• .NET Frameworkと共に登場(2002年)
• IISと.NET Frameworkを基盤に利用する
• 革新的なフレームワーク
– Classic ASPとは全く違う
• 2011年夏現在、3つのフレームワークを内包
– ASP.NET Web Forms
– ASP.NET MVC
– ASP.NET Web Pages
8
Okayama IT Engineers Community
9. ASP.NET Web Forms
• ASP.NET登場時からある方式
– 「Web Forms」と呼称され始めたのは割と最近
– 従来は「ASP.NET = Web Forms」
• 特徴
–
–
–
–
サーバコントロールの利用
コードビハインドによるビューとコードの分離
ポストバックやViewStateによる通信の隠ぺい
ASP.NET AjaxによるAJAX実装
• メリット
– サーバコントロールを利用による高い生産性
– VBやVB.NET,C#などでWin Formのアプリを開発してい
た人の導入が容易
デモ
9
Okayama IT Engineers Community
41. コード置き換えの留意点2
• Variant型を存分に使っているところには注意
– 「存分に使っている」例
Dim
i =
i =
i =
i
9
i + 10
'iはInteger、値は『19』
i & “10” 'iはString、値は『”1910”』
– 対応策1:見直す<オススメ!>
• 型を意識したコードに書きなおす。
– 対応策2:Object型を使用し都度キャスト
– 対応策3:Option Strinct Off<オススメしない>
• 言語にVB.NETを選択し、暗黙の型変換を許可する
41
Okayama IT Engineers Community
42. DB接続はどうするか?
WebMatrix.Data.Database経由で使うのが楽
• Web Pagesが標準で用意している
WebMatrix.Data.Databaseが楽
– Classic ASPで標準的に利用するADOと似たような操
作でDBアクセスが可能です
• ドライバも多様なものが使えます
– SQL Server/SQL Server Compactは.NET標準で
– ODBC/OLEもそのまま使えます
• 普通に.NETのドライバを使って書くこともでき
ます
– ODP.NETも使えます
42
Okayama IT Engineers Community
43. DBアクセス比較
【Classic ASPの例】
<%
Dim Cn, Rs
Set Cn = Server.CreateObject("ADODB.Connection")
Cn.ConnectionString = "<接続文字列>"
Cn.Open
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open " SELECT * FROM hoge " , Cn , 3
%>
【WebMatrix.Data.Databaseの例】
@{
var db = Database.Open(“MyDbCon”);
// MyDbConはWeb.Configに定義した接続文字列
var rec = db.Query(“SELECT * FROM hoge”);
}
43
Okayama IT Engineers Community
57. まとめ
• ASP.NET Web Pages(Razor)は
– シンプルでパワフルなフレームワークです
– ASP.NETとRazorの知識は、ほかの二つのフレー
ムワークでも活かせます!
• Classic ASP to Razorはアリ
– 勝利のカギはこれだ!(独断と偏見)
• functionsブロックの活用
• ヘルパーの活用
• VB.NETの採用
57
Okayama IT Engineers Community
60. RazorとASP.NET Web Pages関係
• Razor 構文と ASP.NET Web ページ
– http://msdn.microsoft.com/ja-jp/asp.net/gg193039
– Web/PDF/XPS
• TF セミナー資料「Razor 構文による ASP.NET Web
ページの開発
– http://msdn.microsoft.com/ja-jp/asp.net/hh182563
– PDF/XPS
• ASP.NET Web Pages Reference(英語)
– http://msdn.microsoft.com/enus/library/gg549171%28v=vs.99%29.aspx
60
Okayama IT Engineers Community
61. ASP.NET/IIS全般
• ASP.NET デベロッパー センター
– http://msdn.microsoft.com/ja-jp/asp.net
• [blog記事]なぜ、 IIS は PHP アプリケー
ションの実行に不向きとされてきたのか?
– http://blogs.msdn.com/b/osamum/archive/
2011/04/05/iis-php.aspx
– 日本マイクロソフトのエバンジェリスト、物江さ
んのblog
– IISのCGIの実行にかかわる挙動の説明が書かれ
ています。
61
Okayama IT Engineers Community
62. その他
• ASP.NET WebページでOracle DBを使って
みる
• http://d.hatena.ne.jp/kiyokura/20110704/p1
62
Okayama IT Engineers Community
63. スペシャルサンクス
• @shibayan
Microsoft MVP for ASP.NET/IIS
(April 2011 - Mar 2012)
• @onos
Microsoft MVP for ASP.NET
(April 2007 - March 2012)
63
Okayama IT Engineers Community