SlideShare a Scribd company logo
.NET Framework 概要
  あおい情報システム株式会社
          小野 修司
   どっとねっとふぁん(
    http://dotnetfan.org)
  MVP for Visual Developer – Visual C#
.NET Framework とは
   Windows OS の上に構築される統一されたアプリ
    ケーションの開発/実行環境
    •   .NET Framework 以前はターゲット毎に異なる開発/実行環
        境
        •   Windows アプリケーション-主に VB
        •   Web アプリケーション- ASP ( VBScript )
        •   サービス、デバイスコントロール等- VC++
    •   統一環境の構築で
        •   開発者もターゲットを移動できる
        •   サポートも省力化

   3つの構成要素
    •   クラスライブラリ
    •   実行環境
    •   開発環境
クラスライブラリ
   膨大な数のクラス
    • 必要なクラスが存在していないか、まず探す
        • NameSpace の階層構造が手掛りに
          • System
          • System.Windows
          • System.Web
          • System.Data
    • ドキュメントを読む癖をつける
   .NET アプリケーションの開発
    •   クラスを組み合わせることでアプリケーションができて
        いく
    •   コードはクラス間を関係づけるもの
実行環境の構築

   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 ツールで修復
実行できるアプリケーション
   Console アプリケーション
    •   コマンドライン上で実行

   Windows アプリケーション
    •   Office のようにメイン画面を持つアプリケーションがつくりやすい
    •   画面が遷移していくタイプのアプリケーションをつくるには工夫が必
        要

   Web アプリケーション
    •   ブラウザとサーバがやりとりすることで処理を行う
    •   ブラウザの操作は人が行う
    •   ASP.NET 2.0 で高機能なコントロールが追加され、コーディングは最
        小限に

   Web サービス
    •   アプリケーション同士がインターネットを介して連携して動作できる
    •   .NET Framework は自動的でテスト用の画面を生成する
    •   Web サービスと通信を行うクラスも自動で作成( Web 参照の追加)
実行できるアプリケーション
   ネットワークアプリケーション
    • TCP/IP ベースのアプリケーションの作成も容
     易
   管理ツール
    • Windows OS を管理するツールが作成可能
   開発ツール
    • .NET Framework の開発に利用できる機能が組
     み込まれている
Console アプリケーション
• class ConsoleSample
 {
     public static void Main()
     {
       System.Console.WriteLine("Hello World!");
     }
 }
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());
       }
    }
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>
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";
        }
    }
多彩なアプリケーション例
   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
アプリケーションの実行
   コンソール/ Windows アプリ
    •   コンパイラにより実行ファイルを作成
    •   実行ファイルは MSIL と呼ばれる中間言語で記述
    •   CLR が実行ファイルを読み込む
    •   JIT コンパイラによりメソッド毎にネイティブコード
        (機械語)に変換

   Web アプリ
    •   aspx ファイルからソースコードを自動生成してコンパ
        イル
    •   Debug 時、ソースは Temporary ASP.NET Files に生成
    •   コンパイル後は上記と同じ
開発環境
   最低限必要なのはコンパイラ
    •   .NET アプリケーションはすべてソースコードのみで記述可能
    •   コンパイラは再頒布モジュールに含まれる
        •   ASP.NET では実行時にコンパイラが自動的に呼ばれる
        •   実行環境ができたら、実は開発もできる
    •   コマンドプロンプトからコンパイルが可能

   .NET Framework SDK
    •   ドキュメント
        •   MSDN オンラインでネット上で提供されているものと同じ
    •   ツール
        •   コンパイラベースで開発している際に使えるツール
        •   VisualStudio .NET がある場合はその中に同等の機能が含まれる
    •   チュートリアル
        •   実行できる実装例が解説されている
        •   IIS 、データベース等のインストールが必要
統合開発環境
   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/
開発言語
   .NET アプリケーションは様々な言語で開発可能
    •   すべて同じクラスライブラリを利用するので、言語による機
        能的な優劣はほとんどない
         •   実際にはコンパイラの出来によって多少優劣がでる
    •   VS2005 では言語によって操作性が異なるようになった
   マイクロソフトが提供している言語
    •   C#
    •   VB
    •   JScript.NET
    •   C++/CLI
    •   J#
   その他の .NET 対応言語
    •   IronPython
    •   COBOL.NET  その他
Windows アプリケーションの配置
   コピーするだけで配置が完了
   Ver1.1 ではノータッチデプロイメントが利用可能
    •   Web サーバ上においた Windows アプリケーションを実行で
        きる
    •   デフォルトではセキュリティに厳しい制限がかかる
    •   セキュリティの制限を緩めるには各マシン毎に設定が必要
   Ver2.0 では ClickOnce が利用可能
    •   Web サーバから Windows アプリケーションをインストール
        できる
    •   配置時に .NET Framework をインストールすることもできる
    •   アプリケーションのバージョンアップを自動的に感知できる
    •   1 つ前のバージョンへのロールバックが可能
    •   デフォルトではセキュリティは制限される
        ただし、一定の要件を満たすことにより、インストール時に
        制限を緩和することが可能
Web アプリケーションの配置
   配置前に IIS の管理ツールにより Web アプリケーションの
    設定を行う必要がある
    •   1.1 と 2.0 のどちらを利用するか設定が必要
   コピーするだけで配置が完了
    •   特別なインストール作業を必要としない
    •   1.1 では Aspx ファイルと bin フォルダ内の dll をコピーする
    •   2.0 では aspx ファイル、 cs ファイルをコピーする
         •   最初のリクエストを受けたときにコンパイルが行われる
   Ver2.0 では事前コンパイルを行って配置できる
    •   Aspnet_compiler.exe
    •   最初のリクエスト時に aspx ファイルがコンパイルされる時
        間が必要なくなるため、起動が早くなる
    •   Aspx ファイルの中の記述を隠すことができる
Windows アプリケーションの設定

   App.Config ファイルを利用
    • 実行時にはアプリケーション名 .exe.config に
        展開
    •   起動時に読み込まれる
   .NET Framework2.0 では書き換え可能な
    設定ファイルをサポート
    • アプリケーションレベル
    • ユーザレベル
Web アプリケーションの設定
   Web.Config ファイルに記述
   .NET Framework 2.0 では IIS 管理ツール
    から設定の管理画面を呼び出せる
   フォルダ毎に Web.Config を記述できる
    • 特定の階層(例:ルート)でないと設定でき
        ないものがある
    •   上位のフォルダの設定は自動的に引き継ぐ
Windows アプリケーションのセキュ
リティ
   .NET アプリケーションでは、アセンブリが存在する場所によっ
    てセキュリティの制限が変わる
    •   CAS ( Code Access Security )と呼ばれる
    •   ノータッチデプロイメントの実現に必要だった
    •   Internet 、イントラネット、ローカルコンピュータで制限が異なる
    •   社内のサーバ上にアセンブリを置いてクライアントから実行する場合
        でも、イントラネットのセキュリティが適用される
   セキュリティは 3 つのレベルで管理可能
    •   企業単位、コンピュータ単位、ユーザ単位
    •   上位のレベルで制限されたセキュリティを下位のレベルで緩めること
        はできない
    •   管理者による管理が容易になっている
   管理ツールの .NET Framework 構成ツールでセキュリティを変
    更できる
    •   変更したセキュリティをインストールする msi ファイルを作成できる
    •   Msi ファイルを配布-実行してもらうことでセキュリティの変更を簡単
        に適用できる
Web アプリケーションのセキュリ
ティ
   実行時ユーザが誰か、またその権限に注意する
    •   IIS5.0 ではサーバマシンの ASPNET ユーザ
    •   IIS6.0 では NT AUTHORITYNETWORK SERVICE
    •   偽装によって特定のユーザやアクセスしてきたユーザを実行
        時ユーザとすることが可能
        •   IIS の設定、 ASP.NET の設定が必要
    •   ファイル/フォルダへのアクセス、データベースへのアクセ
        スにはこの実行時ユーザに権限を与えなければならない
        •   SQL Server で Windows 認証を採用している際に注意が必要
        •   SQL Server で混合モード認証を採用している場合や、他のデー
            タベースとの接続時は接続文字列にユーザ名、パスワードを記
            述すればよい
            この場合、セキュリティが甘くなっていることに注意する必要
            がある
.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 フォルダに置く
これからの .NET Framework
   Windows OS 上での唯一の開発/実行環境に?
    •   IIS 7はマネージド?
    •   まだしばらく先の話

   クラスライブラリは更に拡充
    •   Atlas
    •   WPF
    •   WCF
    •   WF

   デザイン中心開発(造語)がメインに
    •   ユーザインタフェースの意味のデザインではない
    •   ASP.NET 2.0 の aspx ファイルのようにコントロール、データバインデ
        ィング、コントロールの動作を XML ファイルに定義
    •   この XML ファイルの作成は統合開発環境のデザイン画面で
    •   実行時にはソースの自動生成が行われる
    •   コーディングは最小限に
参考書籍
   注:入門者向けではありません

    •   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 での開発のセオリーが学べる

More Related Content

PPT
20050903
小野 修司
 
PDF
ふくあず Nchikita 140629-2
wintechq
 
PPT
20090328
小野 修司
 
PPT
20080524
小野 修司
 
PDF
Getting started with Windows Containers
Kazuki Takai
 
PPTX
Java on Azure with Docker container
Yoshio Terada
 
PDF
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
decode2016
 
PDF
for Developer、 Microsoft Edge とInternet Explorer で 新しくサポートされるAPI
Osamu Monoe
 
20050903
小野 修司
 
ふくあず Nchikita 140629-2
wintechq
 
20090328
小野 修司
 
20080524
小野 修司
 
Getting started with Windows Containers
Kazuki Takai
 
Java on Azure with Docker container
Yoshio Terada
 
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
decode2016
 
for Developer、 Microsoft Edge とInternet Explorer で 新しくサポートされるAPI
Osamu Monoe
 

What's hot (19)

PDF
.NET 6 時代のデスクトップ アプリケーション開発
Fujio Kojima
 
PDF
Nano Server First Step
Kazuki Takai
 
PDF
PowerShell 5.0 で広がる運用管理の世界
Kazuki Takai
 
PDF
Introducing Windows Terminal
Kazuki Takai
 
PDF
Windows Server vNext、仮想化 (Hyper-V) の向上点
Syuichi Murashima
 
PDF
Edge と IE、来年からの Web 制作
Osamu Monoe
 
PDF
Windows PowerShell 5.0 と Windows Server vNext の管理
Kazuki Takai
 
PPTX
Microsoft Edge F12 開発者ツール
Yoshihisa Ozaki
 
PDF
Windows Server 2016でコンテナを動かしてみた
Takashi Kanai
 
PDF
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
shigeya
 
PPTX
20150418 system center振り返り
Osamu Takazoe
 
PDF
PowerShell 5.0 & Security
Kazuki Takai
 
PPTX
Windows Admin Center 2018年10月のお話
Norio Sashizaki
 
PPTX
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
GoAzure
 
PPTX
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
Satoru Nasu
 
PDF
Microsoft Edgeで サポートされる 新しい API について
Osamu Monoe
 
PPTX
System Center Operations Manager 2019
Norio Sashizaki
 
PDF
[MR11] Windows as a Service との付き合い方。~法人向け Windows 10 の新機能や事例もご紹介~
de:code 2017
 
PDF
Interact2015:Host Guardian Service ってなに?(仮)
wind06106
 
.NET 6 時代のデスクトップ アプリケーション開発
Fujio Kojima
 
Nano Server First Step
Kazuki Takai
 
PowerShell 5.0 で広がる運用管理の世界
Kazuki Takai
 
Introducing Windows Terminal
Kazuki Takai
 
Windows Server vNext、仮想化 (Hyper-V) の向上点
Syuichi Murashima
 
Edge と IE、来年からの Web 制作
Osamu Monoe
 
Windows PowerShell 5.0 と Windows Server vNext の管理
Kazuki Takai
 
Microsoft Edge F12 開発者ツール
Yoshihisa Ozaki
 
Windows Server 2016でコンテナを動かしてみた
Takashi Kanai
 
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
shigeya
 
20150418 system center振り返り
Osamu Takazoe
 
PowerShell 5.0 & Security
Kazuki Takai
 
Windows Admin Center 2018年10月のお話
Norio Sashizaki
 
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
GoAzure
 
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
Satoru Nasu
 
Microsoft Edgeで サポートされる 新しい API について
Osamu Monoe
 
System Center Operations Manager 2019
Norio Sashizaki
 
[MR11] Windows as a Service との付き合い方。~法人向け Windows 10 の新機能や事例もご紹介~
de:code 2017
 
Interact2015:Host Guardian Service ってなに?(仮)
wind06106
 
Ad

Similar to 20060419 (20)

PPT
20010127
小野 修司
 
PPT
20021007
小野 修司
 
PPTX
20070310
小野 修司
 
PDF
マイクロソフトWeb開発の今と今後
Akira Inoue
 
PDF
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Yuya Yamaki
 
PDF
Mvc conf session_1_osada
Hiroshi Okunushi
 
PPT
20050623 1
小野 修司
 
PPTX
デブサミ2008 .NETの仕組み
Takeshi Shinmura
 
PDF
20101112 tf web_hirookun_p
hirookun
 
PPT
20030712
小野 修司
 
PDF
18-D-1 .Net Framework 4 概要
Developers Summit
 
PPTX
Windows 8時代のアプリ開発
信之 岩永
 
PDF
TF Seminar 20110218
hirookun
 
PPTX
20100313
小野 修司
 
PPTX
C#の書き方
信之 岩永
 
PPTX
C#の書き方
信之 岩永
 
PPTX
Silverlightの今
信之 岩永
 
PPTX
090916 X D E V今だから理解する[
Masami Suzuki
 
PPTX
基盤の改善から既存アプリケーションの改善
T.R. Nishi
 
PPTX
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Fujio Kojima
 
20010127
小野 修司
 
20021007
小野 修司
 
20070310
小野 修司
 
マイクロソフトWeb開発の今と今後
Akira Inoue
 
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Yuya Yamaki
 
Mvc conf session_1_osada
Hiroshi Okunushi
 
20050623 1
小野 修司
 
デブサミ2008 .NETの仕組み
Takeshi Shinmura
 
20101112 tf web_hirookun_p
hirookun
 
20030712
小野 修司
 
18-D-1 .Net Framework 4 概要
Developers Summit
 
Windows 8時代のアプリ開発
信之 岩永
 
TF Seminar 20110218
hirookun
 
20100313
小野 修司
 
C#の書き方
信之 岩永
 
C#の書き方
信之 岩永
 
Silverlightの今
信之 岩永
 
090916 X D E V今だから理解する[
Masami Suzuki
 
基盤の改善から既存アプリケーションの改善
T.R. Nishi
 
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Fujio Kojima
 
Ad

More from 小野 修司 (20)

PPTX
20140322
小野 修司
 
PPTX
20121215
小野 修司
 
PPTX
20120616
小野 修司
 
PPTX
20120609
小野 修司
 
PPTX
20120425
小野 修司
 
PPTX
20120128
小野 修司
 
PPTX
20111203
小野 修司
 
PPTX
20110607
小野 修司
 
PPT
20100224
小野 修司
 
PPTX
20100218 lt
小野 修司
 
PPTX
20100218
小野 修司
 
PPTX
20091207
小野 修司
 
PPTX
20090711
小野 修司
 
PPT
20090606
小野 修司
 
PPTX
20090418
小野 修司
 
PPT
20090212
小野 修司
 
PPTX
20081003
小野 修司
 
PPTX
20080630
小野 修司
 
PPTX
20080627 2
小野 修司
 
PPTX
20080627 1
小野 修司
 
20140322
小野 修司
 
20121215
小野 修司
 
20120616
小野 修司
 
20120609
小野 修司
 
20120425
小野 修司
 
20120128
小野 修司
 
20111203
小野 修司
 
20110607
小野 修司
 
20100224
小野 修司
 
20100218 lt
小野 修司
 
20100218
小野 修司
 
20091207
小野 修司
 
20090711
小野 修司
 
20090606
小野 修司
 
20090418
小野 修司
 
20090212
小野 修司
 
20081003
小野 修司
 
20080630
小野 修司
 
20080627 2
小野 修司
 
20080627 1
小野 修司
 

20060419

  • 1. .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 の開発に利用できる機能が組 み込まれている
  • 7. Console アプリケーション • class ConsoleSample { public static void Main() { System.Console.WriteLine("Hello World!"); } }
  • 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 での開発のセオリーが学べる