200604191. .NET Framework 概要
あおい情報システム株式会社
小野 修司
どっとねっとふぁん(
http://dotnetfan.org)
MVP for Visual Developer – Visual C#
2. .NET Framework とは
Windows OS の上に構築される統一されたアプリ
ケーションの開発/実行環境
• .NET Framework 以前はターゲット毎に異なる開発/実行環
境
• Windows アプリケーション-主に VB
• Web アプリケーション- ASP ( VBScript )
• サービス、デバイスコントロール等- VC++
• 統一環境の構築で
• 開発者もターゲットを移動できる
• サポートも省力化
3つの構成要素
• クラスライブラリ
• 実行環境
• 開発環境
3. クラスライブラリ
膨大な数のクラス
• 必要なクラスが存在していないか、まず探す
• NameSpace の階層構造が手掛りに
• System
• System.Windows
• System.Web
• System.Data
• ドキュメントを読む癖をつける
.NET アプリケーションの開発
• クラスを組み合わせることでアプリケーションができて
いく
• コードはクラス間を関係づけるもの
4. 実行環境の構築
Ver1.1 の実行環境を構築するには
• .NET Framework 1.1 再頒布パッケージ
• 日本語 Language Pack
• Service Pack 1
Ver2.0 の実行環境を構築するには
• .NET Framework 2.0 再頒布可能パッケージ
• 日本語 Language Pack
• http://www.microsoft.com/japan/msdn/netframework/downloads/default.aspx
Web アプリ、 Web サービスを稼動させるには
最初に IIS のインストールが必要
• IIS インストール→ .NET Framework インストール
• aspnet_regiis.exe ツールで修復
5. 実行できるアプリケーション
Console アプリケーション
• コマンドライン上で実行
Windows アプリケーション
• Office のようにメイン画面を持つアプリケーションがつくりやすい
• 画面が遷移していくタイプのアプリケーションをつくるには工夫が必
要
Web アプリケーション
• ブラウザとサーバがやりとりすることで処理を行う
• ブラウザの操作は人が行う
• ASP.NET 2.0 で高機能なコントロールが追加され、コーディングは最
小限に
Web サービス
• アプリケーション同士がインターネットを介して連携して動作できる
• .NET Framework は自動的でテスト用の画面を生成する
• Web サービスと通信を行うクラスも自動で作成( Web 参照の追加)
6. 実行できるアプリケーション
ネットワークアプリケーション
• TCP/IP ベースのアプリケーションの作成も容
易
管理ツール
• Windows OS を管理するツールが作成可能
開発ツール
• .NET Framework の開発に利用できる機能が組
み込まれている
8. Windows アプリケーション
• using System;
using System.Windows.Forms; // 利用するクラスがある名前空間をあらかじめ登録
class WinSample : Form
{
private Button mybutton;
public WinSample()
{
this.Text = “Hello World!”; // ウィンドウのタイトルを設定
this.mybutton = new Button(); // ボタンの作成、設定、イベントの記述
this.mybutton.Location = new System.Drawing.Point(200, 200);
this.mybutton.Text = “ 閉じる” ;
this.mybutton.Click += new EventHandler(this.mb_Click);
this.Controls.Add(mybutton); // ボタンをウィンドウに追加
}
private void mb_Click(object sender, EventArgs e) // ボタンクリック時のイベント
{
this.Close();
}
}
static class Program
{
static void Main() // エントリーポイント
{
Application.Run(new WinSample());
}
}
9. Web アプリケーション
<%@ Page Language="C#" %>
<script runat="server">
protected void Button1_Click(object sender, EventArgs e)
{
this.Label1.Text = "Hello World!";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Hello World</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server“
OnClick="Button1_Click" Text=" クリックしてください " /><br />
<br />
<asp:Label ID="Label1" runat="server"></asp:Label></div>
</form>
</body>
</html>
10. Web サービス
<%@ WebService Language="C#" Class="WebService" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
[WebService(Namespace = "http://tempuri.org/")]
public class WebService : System.Web.Services.WebService {
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
}
11. 多彩なアプリケーション例
3 D CPU メーター
• CPU の状態表示
• http://uchukamen.com/Software/index.htm
サービス状態管理
• サービス状態を管理
• http://codezine.jp/a/article.aspx?aid=157
ディレクトリ表示
• ユーザアカウント等を表示
• http://blogs.sqlpassj.org/yoshihirokawabata/archive/2004/08/02/3612.aspx
Cassini
• 簡易 Web サーバ
• http://www.asp.net/Projects/Cassini/Download/Default.aspx?tabindex=0&tabid=1
Designer Host
• デザイン画面をクラスライブラリで実装
• http://www.windowsforms.net/default.aspx?tabindex=6&tabid=47&ItemID=13&mid=142
QuickBlog
• コーディングを行わない Blog 実装( 2.0 )
• http://weblogs.asp.net/dr.netjes/archive/2006/02/10/437868.aspx
12. アプリケーションの実行
コンソール/ Windows アプリ
• コンパイラにより実行ファイルを作成
• 実行ファイルは MSIL と呼ばれる中間言語で記述
• CLR が実行ファイルを読み込む
• JIT コンパイラによりメソッド毎にネイティブコード
(機械語)に変換
Web アプリ
• aspx ファイルからソースコードを自動生成してコンパ
イル
• Debug 時、ソースは Temporary ASP.NET Files に生成
• コンパイル後は上記と同じ
13. 開発環境
最低限必要なのはコンパイラ
• .NET アプリケーションはすべてソースコードのみで記述可能
• コンパイラは再頒布モジュールに含まれる
• ASP.NET では実行時にコンパイラが自動的に呼ばれる
• 実行環境ができたら、実は開発もできる
• コマンドプロンプトからコンパイルが可能
.NET Framework SDK
• ドキュメント
• MSDN オンラインでネット上で提供されているものと同じ
• ツール
• コンパイラベースで開発している際に使えるツール
• VisualStudio .NET がある場合はその中に同等の機能が含まれる
• チュートリアル
• 実行できる実装例が解説されている
• IIS 、データベース等のインストールが必要
14. 統合開発環境
VisualStudio .NET 2003
• .NET Framework Ver 1.1 に対応
• ドラッグ&ドロップによるユーザインタフェースの作成
• インテリセンスによる入力補完
• 統合されたデバッグ環境
• データベースとの連携
VisualStudio 2005
• .NET Framework Ver 2.0 に対応
• より使いやすく進化 - 一度使うと手放せなくなる
• Express Edition は期間限定で無償ダウンロード
• http://www.microsoft.com/japan/msdn/vstudio/express/
15. 開発言語
.NET アプリケーションは様々な言語で開発可能
• すべて同じクラスライブラリを利用するので、言語による機
能的な優劣はほとんどない
• 実際にはコンパイラの出来によって多少優劣がでる
• VS2005 では言語によって操作性が異なるようになった
マイクロソフトが提供している言語
• C#
• VB
• JScript.NET
• C++/CLI
• J#
その他の .NET 対応言語
• IronPython
• COBOL.NET その他
16. Windows アプリケーションの配置
コピーするだけで配置が完了
Ver1.1 ではノータッチデプロイメントが利用可能
• Web サーバ上においた Windows アプリケーションを実行で
きる
• デフォルトではセキュリティに厳しい制限がかかる
• セキュリティの制限を緩めるには各マシン毎に設定が必要
Ver2.0 では ClickOnce が利用可能
• Web サーバから Windows アプリケーションをインストール
できる
• 配置時に .NET Framework をインストールすることもできる
• アプリケーションのバージョンアップを自動的に感知できる
• 1 つ前のバージョンへのロールバックが可能
• デフォルトではセキュリティは制限される
ただし、一定の要件を満たすことにより、インストール時に
制限を緩和することが可能
17. Web アプリケーションの配置
配置前に IIS の管理ツールにより Web アプリケーションの
設定を行う必要がある
• 1.1 と 2.0 のどちらを利用するか設定が必要
コピーするだけで配置が完了
• 特別なインストール作業を必要としない
• 1.1 では Aspx ファイルと bin フォルダ内の dll をコピーする
• 2.0 では aspx ファイル、 cs ファイルをコピーする
• 最初のリクエストを受けたときにコンパイルが行われる
Ver2.0 では事前コンパイルを行って配置できる
• Aspnet_compiler.exe
• 最初のリクエスト時に aspx ファイルがコンパイルされる時
間が必要なくなるため、起動が早くなる
• Aspx ファイルの中の記述を隠すことができる
18. Windows アプリケーションの設定
App.Config ファイルを利用
• 実行時にはアプリケーション名 .exe.config に
展開
• 起動時に読み込まれる
.NET Framework2.0 では書き換え可能な
設定ファイルをサポート
• アプリケーションレベル
• ユーザレベル
19. Web アプリケーションの設定
Web.Config ファイルに記述
.NET Framework 2.0 では IIS 管理ツール
から設定の管理画面を呼び出せる
フォルダ毎に Web.Config を記述できる
• 特定の階層(例:ルート)でないと設定でき
ないものがある
• 上位のフォルダの設定は自動的に引き継ぐ
20. Windows アプリケーションのセキュ
リティ
.NET アプリケーションでは、アセンブリが存在する場所によっ
てセキュリティの制限が変わる
• CAS ( Code Access Security )と呼ばれる
• ノータッチデプロイメントの実現に必要だった
• Internet 、イントラネット、ローカルコンピュータで制限が異なる
• 社内のサーバ上にアセンブリを置いてクライアントから実行する場合
でも、イントラネットのセキュリティが適用される
セキュリティは 3 つのレベルで管理可能
• 企業単位、コンピュータ単位、ユーザ単位
• 上位のレベルで制限されたセキュリティを下位のレベルで緩めること
はできない
• 管理者による管理が容易になっている
管理ツールの .NET Framework 構成ツールでセキュリティを変
更できる
• 変更したセキュリティをインストールする msi ファイルを作成できる
• Msi ファイルを配布-実行してもらうことでセキュリティの変更を簡単
に適用できる
21. Web アプリケーションのセキュリ
ティ
実行時ユーザが誰か、またその権限に注意する
• IIS5.0 ではサーバマシンの ASPNET ユーザ
• IIS6.0 では NT AUTHORITYNETWORK SERVICE
• 偽装によって特定のユーザやアクセスしてきたユーザを実行
時ユーザとすることが可能
• IIS の設定、 ASP.NET の設定が必要
• ファイル/フォルダへのアクセス、データベースへのアクセ
スにはこの実行時ユーザに権限を与えなければならない
• SQL Server で Windows 認証を採用している際に注意が必要
• SQL Server で混合モード認証を採用している場合や、他のデー
タベースとの接続時は接続文字列にユーザ名、パスワードを記
述すればよい
この場合、セキュリティが甘くなっていることに注意する必要
がある
22. .NET Framework のバージョン管
理
.NET Framework は複数のバージョンを同じマシン上で動
作させることができる
• Ver1.0 、 Ver1.1 、 Ver2.0 の混在が可能 (サイドバイサイド)
• アセンブリにどのバージョンでコンパイルされたかが記録されるため
、実行時には適切な Framework のバージョンが選択され、その上で実
行される
• Framework のバージョンがあがったからといって、アプリケーション
がそれに追随する必要はない
.NET アプリケーションが dll を利用する場合、アプリケー
ションと同じフォルダか、その下位のフォルダに格納する
• アプリケーションのバージョン毎に dll を用意することでサイドバイサ
イドを可能にする
ASP.NET については、 Web アプリケーション毎にどのバ
ージョンで実行するかを設定する必要がある
• Aspnet_regiis.exe を使って設定する
• Ver2.0 では IIS の管理ツールから設定の変更が可能
• ASP.NET では dll は bin フォルダに置く
23. これからの .NET Framework
Windows OS 上での唯一の開発/実行環境に?
• IIS 7はマネージド?
• まだしばらく先の話
クラスライブラリは更に拡充
• Atlas
• WPF
• WCF
• WF
デザイン中心開発(造語)がメインに
• ユーザインタフェースの意味のデザインではない
• ASP.NET 2.0 の aspx ファイルのようにコントロール、データバインデ
ィング、コントロールの動作を XML ファイルに定義
• この XML ファイルの作成は統合開発環境のデザイン画面で
• 実行時にはソースの自動生成が行われる
• コーディングは最小限に
24. 参考書籍
注:入門者向けではありません
• Essential .NET
• Windows 上で .NET Framework はどのように実現されて
いるのかが記述されている
• プログラミング Microsoft .NET Framework
• .NET Framework の中で何が起きているのかが記述され
ている
• 洋書では 2 Edition が発売ずみ
nd
• NET エンタープライズ Web アプリケーション開発大全
• ASP.NET の仕組みをきちんと理解できる
• Essential ASP.NET (洋書)
• ASP.NET の仕組みとコントロールの成り立ちが理解でき
る
• ASP.NET でいってみよう
• ASP.NET 1.1 での開発のセオリーが学べる