70-536に関するmasakanouのブックマーク (37)

  • .NET TIPS ガベージ・コレクタを明示的に動作させるには? - C# VB.NET - @IT

    C++やVisual Basic 6.0の世界でプログラミングしてきた技術者が.NET Frameworkの世界に入ってきてまずおどろくのは、プログラムを実行していると、プロセスが使用するメモリ量がどんどん増えていくことである。「メモリ・リークか!?」と焦ることもあるが、これは正常な動作である。 メモリの解放忘れは典型的なバグの要因であり、メモリ解放を自動化することによって、プログラムの信頼性は向上し、プログラマーの負担も減る。自動的なメモリ解放を行う機構は、ガベージ・コレクタと呼ばれ、解放する行為をガベージ・コレクションと呼ぶ。問題は、ガベージ・コレクションがいつ行われるかであるが、これはメモリが不足してきた場合や、明示的に動作を指示された場合にのみ行われる。つまり、メモリが潤沢に余っている場合には、プロセスの使用するメモリ量が増加するのが正常な動作である。そのままメモリ不足でプログラム

    masakanou
    masakanou 2009/04/12
    >処理の開始前にガベージ・コレクションを行っておきたいこともあるだろう。それを行うにはGCクラス(System名前空間)のCollectメソッドを呼び出せばよい。
  • MethodInfo クラス (System.Reflection)

    名前空間: System.Reflection アセンブリ:System.Reflection.dll アセンブリ:System.Runtime.dll アセンブリ:mscorlib.dll アセンブリ:netstandard.dll 重要 一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。 public ref class MethodInfo abstract : System::Reflection::MethodBase public ref class MethodInfo abstract : System::Reflection::MethodBase, System::Runtime::InteropServices::_Meth

    MethodInfo クラス (System.Reflection)
    masakanou
    masakanou 2009/04/12
    >このメソッドへのアクセスがクラスのメンバと派生クラスのメンバに制限されているかどうかを示す値を取得します。 (MethodBase から継承されます。)
  • 第17章 言語に内蔵されたイベント機能

    「イベント」とは、あるクラスで発生した出来事をほかのクラスに伝達する機能である。例えば、ウィンドウ内のボタンがクリックされた、というような出来事を伝達するのに適した機能である。章では、このイベント機能について解説する。 17-1 C#のイベント機能とは何か? C#のイベント機能は、あるクラスで発生した出来事を、あらかじめ登録された一群のメソッドすべてに対して、1回の呼び出しで伝える機能といえる。これはデリゲートによく似た機能である。事実、イベント機能はデリゲート機能を利用して実現されている。しかし、デリゲートとイベントは機能的に同等ではない。機能の相違は目的の相違からもたらされたものである。デリゲートは、任意のメソッド呼び出しを委譲するために使われるが、イベントはあるクラスで発生した出来事を外部に伝達するために使用される。頭の半分は、イベントはデリゲートに似たものだと思い、残りの半分は違

    第17章 言語に内蔵されたイベント機能
    masakanou
    masakanou 2009/04/12
    temp
  • EventArgs クラス (System)

    例 次の例は、 クラスから派生する という名前 ThresholdReachedEventArgs のカスタム イベント データ クラスを EventArgs 示しています。 イベント データ クラスのインスタンスは、イベントのイベント ハンドラーに ThresholdReached 渡されます。 using namespace System; public ref class ThresholdReachedEventArgs : public EventArgs { public: property int Threshold; property DateTime TimeReached; }; public ref class Counter { private: int threshold; int total; public: Counter() {}; Counter(int

    EventArgs クラス (System)
    masakanou
    masakanou 2009/04/12
    temp >イベント ハンドラがステータス情報を必要とする場合、アプリケーションは、そのデータを保持するために、このクラスからクラスを派生させる必要があります。
  • クラス インターフェイスの概要

    クラス インターフェイスは、マネージ コードには明示的に定義されないインターフェイスであり、.NET オブジェクトに明示的に公開されるすべてのパブリック メソッド、プロパティ、フィールド、およびイベントを公開します。クラス インターフェイスは、デュアル インターフェイスまたはディスパッチ専用インターフェイスです。クラス インターフェイスは、.NET クラスの名前を受け取り、名前の前にアンダースコア (_) を付けます。たとえば、クラス Mammal の場合、クラス インターフェイスは _Mammal です。 派生クラスの場合、クラス インターフェイスは、基クラスのすべてのパブリック メソッド、プロパティ、およびフィールドも公開します。派生クラスも、各基クラスに対して、クラス インターフェイスを公開します。たとえば、クラス Mammal が、クラス MammalSuperclass を拡

    クラス インターフェイスの概要
    masakanou
    masakanou 2009/04/12
    >COM クライアントが使用するインターフェイスは、クラス インターフェイスを生成するのではなく、明示的なインターフェイスを定義してください。
  • 第2回 無償データベース SQL Server 2005 Express Editionを使ってみよう ― @IT

    前回は、.NET Frameworkの仕組みとVisual Studio 2005(以降、VS 2005)によるASP.NETアプリケーション開発の基的な流れについて理解しました。 いよいよ今回からは、連載タイトルにもあるように、データベースを利用したアプリケーション開発に移っていくことにしましょう。まずは、連載でデータベース・サーバとして使用する「SQL Server 2005」の紹介からです。 SQL Server 2005の基 .NET Frameworkでは、SQL ServerやOracle Databaseはもちろん、ODBC/OLE DBに対応した主要なデータベースに接続することが可能ですが、連載ではSQL Server 2005を採用することにします。 SQL Serverはいわずと知れた、マイクロソフトが提供するデータベース・サーバで、.NET Framework

    masakanou
    masakanou 2008/10/19
    temp
  • Windowsアプリケーションのデバッグ&リリース(1/5) - @IT

    フレッシュマン企画 連載 簡単!Visual Studio 2005入門 第6回 Windowsアプリケーションのデバッグ&リリース デジタルアドバンテージ 一色 政彦 2007/07/27 前回、Visual Studio 2005(以降、VS 2005)を使って「時計」アプリケーション(MyClock)を開発した。 しかし実際のアプリケーション開発では、完成したアプリケーションがいきなり出来上がることはあり得ない。例えば前回の解説でも、アプリケーションが完成するまでに何度もビルドを行い、ビルドが通らなければ、その都度、プログラムを修正した。このように実際の実装作業では、「プログラムをある程度実装したら、その都度ビルドして動作検証を行い(=テストして)、問題があればその問題を解決する(=デバッグする)」という作業を繰り返していくことで最終的にアプリケーションを完成させていく。 また、どん

    masakanou
    masakanou 2008/10/14
    temp
  • 特集:.NET Framework入門 1.Microsoft.NETプラットフォームとWeb Service - @IT

    出発駅と目的駅をWebブラウザで入力し、検索を実行すれば、経路探索を行ってくれて、目的駅までの距離や平均所用時間、運賃などを表示してくれるサービス(画面はジョルダンが提供している「駅名入力検索」での検索例。ジョルダンのホームページ)。文句なく便利なツールではあるが……。 文句なく便利なツールである。しかし何軒も客先を回らなければならないとき、どのような順序で訪問すると効率的なのか、などといった処理は、Webブラウザに表示されたさまざまな経路情報を元に、人間が順列組み合わせを検討しなければならない。仮にそうした処理を行うロジック(客先を効率よく訪れるための順序などを決定するためのロジック)が手元にあったとして、それと電車の経路探索サービスを組み合わせることができれば、最新の時刻表と運賃をも考慮した営業支援システムができるかもしれない。あるいは出張旅費申請システムと経路探索サービスを組み合わせ

    masakanou
    masakanou 2008/10/14
    temp
  • キャッシュが性能劣化をもたらす“なぞ”を解く― データのキャッシュとコネクションプール ―

    今回のワンポイント データベースアクセスを減少させるために、アクセスが頻発する参照データをキャッシュに入れた。しかし、期待とは異なり性能が落ちてしまった。メモリをキャッシュのために使いすぎる弊害と、コネクションプールの有効な使い方を学ぶ。 キャッシュを使っているのにパフォーマンスが落ちる あるシステムでは、データベースアクセスを少なくしようと、参照するデータをアプリケーション・サーバの起動時にデータベースから取得しメモリ上に保持していた。これは、別に悪い考え方ではない。データベースへのアクセス回数の削減は、性能向上につながるからである。しかし、このシステムではそうならなかった。ガーベジコレクション(GC)が頻発し、OutOfMemoryErrorまで発生してしまった。性能向上どころか、むしろ問題を増やしてしまったのである。アプリケーションでデータをキャッシュする場合、メモリ容量の見積もりが

    キャッシュが性能劣化をもたらす“なぞ”を解く― データのキャッシュとコネクションプール ―
    masakanou
    masakanou 2008/10/14
    temp
  • ジェネリック・クラスで変わるC#とVBのコレクション ― @IT

    連載目次 Visual Studio 2005の登場に合わせてバージョンアップしたC# 2.0(以下、C#)やVisual Basic 2005(以下、VB)には、たくさんの新機能が導入されています。その中でもプログラマにとって今後欠かせない機能となるのは、やはり「ジェネリック」(Generics)です。 しかしC#やVBのビギナーにとって、ジェネリックは少々分かりづらい機能でもあります。稿では2回にわたり、ジェネリックにより何ができるのか、どのように使うのかといったジェネリックの基事項を分かりやすくまとめてみます。 ジェネリックとは? ジェネリックとは、簡単にいうと、特定の型(クラス)に依存しないクラスやメソッドを記述するための仕組みです。この仕組みは、クラス、構造体、インターフェイス、メソッド、デリゲートに適用でき、ジェネリックの仕組みを使ったクラスやメソッドは、「ジェネリック・ク

    ジェネリック・クラスで変わるC#とVBのコレクション ― @IT
    masakanou
    masakanou 2008/10/14
    temp
  • 第17回 ASP.NETにおける認証と認定

    認証(Authentication) 会員専用ページや、サイトの構成を行うための管理者向けページのように、あるページを何か特別な権利を持ったユーザーにだけ公開するには、ユーザーがアクセス権を所有するユーザー人であるか、確認するプロセスが必要となる。このプロセスが認証(Authentication)である。認証の方法はさまざまだが、ご存じのとおりユーザー名とパスワードのペアを用いて行われるのが一般的だ。 認証を必要とするアプリケーションを構築するには、ユーザーの資格情報を管理する仕組みと、未認証のユーザーに認証を求める仕組み、それに認証済みのIDを検証する仕組みが必要になる。これらをすべて独自に実装するのは骨の折れる仕事だが、ASP.NETではいずれについてもフレームワークからの支援が受けられるので、場合によっては、ほとんどコードを書かずに認証プロセスを実現することが可能だ。もしフレームワ

    第17回 ASP.NETにおける認証と認定
    masakanou
    masakanou 2008/10/14
    temp
  • 特集 私がJavaからC#に乗り換えた10の理由(2/4) - @IT

    - 理由03 - property オブジェクトがメッセージを送りあうことによってシステムが動作するという素朴なオブジェクト指向観を採用するなら、メソッドしかないJavaの文法は正しい。しかし、オブジェクト指向を応用しようとする場合、例えば開発環境に応用するような場合にはメソッドだけでは不十分である。このような場合には状態を設定するためのメソッドである「プロパティ(property)」が必要になるのだ。 JavaJava Beanというコンポーネント規格を定める際にこの問題にぶつかった。その際にJavaが採用した解決策は、プロパティとしての役割を持つメソッドの名前をgetXxx/setXxx/isXxxに統一するというものだった。文法を拡張せずにコーディング・ルールを追加したわけだ。 この方式には実装効率と実行効率の2点で問題がある。まずは実装効率での問題。それは正しくルールに従っている

    masakanou
    masakanou 2008/10/14
    temp
  • 第1回 ラムダ式(2/5) - @IT

    ラムダ式は何をもたらすか 今回の内容は、C# 2.0を習得したプログラマーを読者に想定しているので、匿名メソッドをすでに知っているという前提で書いている。もしそうでなければ、まずは「連載:C# 2.0入門」の方を一読いただいた方がよいだろう。 さて、題に入ろう。 ラムダ式(λ式)とは、ひと言でいってしまうと、(厳密には正しくないが)匿名メソッドをより短く記述するための構文である。と書くと、単に書き方が変わるだけでソース・コードの性質が変わるわけではないと思うかもしれないが、これは誤解である。規模が変わればそのものの性質が変化することがある。例えば、実験室のビーカーの中で起きた現象が、そのまま巨大プラントでも同じように起こるとは限らない。同様の現象はソース・コード上でも起こり得る。 実際に、ラムダ式を使うことで体験した出来事をまずは紹介しよう。 以下、具体的なコードで説明していくが、実際に

    masakanou
    masakanou 2008/10/14
    temp
  • 連載:アプリケーション・アーキテクチャ設計入門 第2回 論理アーキテクチャを構成するコンポーネントの設計(プレゼンテーション層編)(2/3) - @IT

    AAfNでは、ユーザー・インターフェイス・コンポーネントの実装技術として、Windowsアプリケーション、インターネット・ブラウザ、モバイル・デバイス、ドキュメントの4つを提案している。 Windowsアプリケーション Windowsアプリケーションとしてユーザー・インターフェイス・コンポーネントを実装することのメリットとしては、オフラインでも利用できること、操作性を高められること、ほかのアプリケーションのユーザー・インターフェイスを統合できること、が挙げられる。 AAfNでは、Windowsデスクトップ・アプリケーションによるユーザー・インターフェイスを3つに分類している。 1. Windowsフォームで作られた、格的なWindowsアプリケーション このメリットは、豊富な機能により快適な操作性をユーザーに提供できることと、アプリケーションの外観を自由にできることである。デメリットは、

    masakanou
    masakanou 2008/10/14
    temp
  • インサイド .NET Framework [改訂版]第4回 アセンブリとバージョン管理(2/5) - @IT

    バージョン管理機能 開発者にとっては便利なサイドバイサイド実行も、ユーザーから見るとアプリケーションを実行した結果XMLパーサーの2つのバージョンがメモリ上にロードされるのは無駄な感じがする。また、XIncludeの実装だってより高速化されたパーサーを使いたいはずだ。しかも、XIncludeアセンブリの実装が特に変わっていないのであれば、XMLパーサー1.2を参照するようにXIncludeアセンブリをコンパイルし直すのは馬鹿馬鹿しい。SIベンダにしてみれば、ユーザーの求めに応じてXMLパーサーの最新版だけを配布し、それだけでアプリケーションが高速化することを望むはずだ。.NET Frameworkは「コンポーネント指向」なのだから、コンポーネントだけを取り替えれば再コンパイルなしで動作するはずだ。 そこで.NET Frameworkには、アプリケーションのメタデータに記述されているバージョ

    masakanou
    masakanou 2008/10/14
    temp
  • ICollection.SyncRoot プロパティ (System.Collections)

    重要 一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。 ICollection へのアクセスの同期に使用できるオブジェクトです。 注釈 基になっているストアがパブリックではないコレクションの場合、現在のインスタンスを返す実装が要求されます。 現在のインスタンスへのポインターは、他のコレクションをラップするコレクションでは十分ではない可能性があることに注意してください。基になるコレクションの SyncRoot プロパティを返す必要があります。 System.Collections 名前空間内のほとんどのコレクション クラスは、Synchronized メソッドも実装しています。このメソッドは、基になるコレクションをラップする同期されたラッパーを提

    ICollection.SyncRoot プロパティ (System.Collections)
  • FileAttributes 列挙型 (System.IO)

    名前空間: System.IO アセンブリ:mscorlib.dll, System.IO.FileSystem.Primitives.dll アセンブリ:System.Runtime.dll アセンブリ:System.IO.FileSystem.Primitives.dll アセンブリ:mscorlib.dll アセンブリ:netstandard.dll 重要 一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。 public enum class FileAttributes [System.Flags] public enum FileAttributes [System.Flags] [System.Serializable] public

    FileAttributes 列挙型 (System.IO)
  • ApplicationSettingsBase クラス (System.Configuration)

    名前空間: System.Configuration アセンブリ:System.Configuration.ConfigurationManager.dll アセンブリ:System.dll パッケージ:System.Configuration.ConfigurationManager v6.0.0 パッケージ:System.Configuration.ConfigurationManager v7.0.0 パッケージ:System.Configuration.ConfigurationManager v8.0.0 パッケージ:System.Configuration.ConfigurationManager v9.0.0-preview.2.24128.5 ソース:ApplicationSettingsBase.cs ソース:ApplicationSettingsBase.cs ソース:

    ApplicationSettingsBase クラス (System.Configuration)
  • CorrelationManager クラス (System.Diagnostics)

    名前空間: System.Diagnostics アセンブリ:System.Diagnostics.TraceSource.dll アセンブリ:System.dll アセンブリ:netstandard.dll ソース:CorrelationManager.cs ソース:CorrelationManager.cs ソース:CorrelationManager.cs 重要 一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。 例 次のコード例では、トレースされたイベントに CorrelationManager 関連付けられている論理操作を識別することによって、 クラスを使用する方法を示します。 2 つの論理操作が開始されます。1 つはメイン スレッドで

    CorrelationManager クラス (System.Diagnostics)
  • extern 修飾子 - C# reference

    extern 修飾子は、外部で実装されるメソッドを宣言するために使用します。 extern 修飾子は一般に、相互運用サービスを使用してアンマネージ コードを呼び出すときに、DllImport 属性と共に使用します。 この場合、次の例に示すように、メソッドを static として宣言する必要もあります。 [DllImport("avifil32.dll")] private static extern void AVIFileInit(); extern キーワードでは、外部アセンブリのエイリアスも定義できます。これにより、単一アセンブリ内から 1 つのコンポーネントの複数バージョンを参照できます。 詳細については、「extern エイリアス」を参照してください。 abstract 修飾子および extern 修飾子を一緒に使用して同一のメンバーを修飾すると、エラーになります。 extern

    masakanou
    masakanou 2008/10/12
    extern修飾子は一般に、相互運用サービスを使用してアンマネージコードを呼び出すときに、DllImport 属性と共に使用します。この場合、メソッドを staticとして宣言する必要もあります