狠狠撸

狠狠撸Share 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

What's hot (19)

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

Similar to 20060419 (20)

.NET vNext
.NET vNext.NET vNext
.NET vNext
信之 岩永
?
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Akira Inoue
?
Java on Microsoft Azure
Java on Microsoft AzureJava on Microsoft Azure
Java on Microsoft Azure
Yoshio Terada
?
Windows serverとインフラ関連アッフ?テ?ート
Windows serverとインフラ関連アッフ?テ?ートWindows serverとインフラ関連アッフ?テ?ート
Windows serverとインフラ関連アッフ?テ?ート
Tsukasa Kato
?
Clrh 20121215
Clrh 20121215Clrh 20121215
Clrh 20121215
Tomoyuki Obi
?
JAWS-UG Meets Windows (JAWS Days 2017)
JAWS-UG Meets Windows (JAWS Days 2017)JAWS-UG Meets Windows (JAWS Days 2017)
JAWS-UG Meets Windows (JAWS Days 2017)
Amazon Web Services Japan
?
Windows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみるWindows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみる
Kazuki Takai
?
Windows Phoneで始める拡張現実の世界
Windows Phoneで始める拡張現実の世界Windows Phoneで始める拡張現実の世界
Windows Phoneで始める拡張現実の世界
Akira Hatsune
?
.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム
shozon
?
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Fujio Kojima
?
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
david9142
?
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
Akira Inoue
?
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
Akira Inoue
?
G0042 h
G0042 hG0042 h
G0042 h
silicone69
?
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
shigeya
?
App controllerとwindows azure packで作る大規模プライベートクラウド
App controllerとwindows azure packで作る大規模プライベートクラウドApp controllerとwindows azure packで作る大規模プライベートクラウド
App controllerとwindows azure packで作る大規模プライベートクラウド
Takashi Kanai
?
Windows 7 オプショナルツール 一挙紹介
Windows 7 オプショナルツール 一挙紹介Windows 7 オプショナルツール 一挙紹介
Windows 7 オプショナルツール 一挙紹介
shigeya
?
TF Seminar 20110218
TF Seminar 20110218TF Seminar 20110218
TF Seminar 20110218
hirookun
?
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Akira Inoue
?
Java on Microsoft Azure
Java on Microsoft AzureJava on Microsoft Azure
Java on Microsoft Azure
Yoshio Terada
?
Windows serverとインフラ関連アッフ?テ?ート
Windows serverとインフラ関連アッフ?テ?ートWindows serverとインフラ関連アッフ?テ?ート
Windows serverとインフラ関連アッフ?テ?ート
Tsukasa Kato
?
Windows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみるWindows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみる
Kazuki Takai
?
Windows Phoneで始める拡張現実の世界
Windows Phoneで始める拡張現実の世界Windows Phoneで始める拡張現実の世界
Windows Phoneで始める拡張現実の世界
Akira Hatsune
?
.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム
shozon
?
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Fujio Kojima
?
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
david9142
?
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
Akira Inoue
?
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
Akira Inoue
?
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
shigeya
?
App controllerとwindows azure packで作る大規模プライベートクラウド
App controllerとwindows azure packで作る大規模プライベートクラウドApp controllerとwindows azure packで作る大規模プライベートクラウド
App controllerとwindows azure packで作る大規模プライベートクラウド
Takashi Kanai
?
Windows 7 オプショナルツール 一挙紹介
Windows 7 オプショナルツール 一挙紹介Windows 7 オプショナルツール 一挙紹介
Windows 7 オプショナルツール 一挙紹介
shigeya
?
TF Seminar 20110218
TF Seminar 20110218TF Seminar 20110218
TF Seminar 20110218
hirookun
?

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