top 20 net interview questions
今後の面接の準備に役立つ、最もよくある.Net面接の質問と回答のリスト:
.Netは、Windowsでアプリケーションを開発するために最も広く使用されているフレームワークです。これには、ASP .Net、C#、VB .Net、Cobol、Perlなどの言語が含まれます。
.Netの広大な概念すべてを1つの記事で網羅することは不可能です。したがって、次のセクションは、.Netフレームワークとそのコアに関連する質問のみで構成されています。 .Net C#に関するその他の質問については、を参照してください。 C#インタビューの質問 。
この記事では、理解しやすいように、最も人気のある.Netインタビューの質問と回答のトップ20を簡単な用語で紹介します。
最も人気のある.Netインタビューの質問
さあ!!
Q#1).Netフレームワークとは何ですか?
回答: これは、Windows上でさまざまなアプリケーションを構築するためのプラットフォームです。これには、Webサービスやさまざまなアプリケーションの構築、デプロイ、実行に使用されるクラス、ライブラリ、およびAPIの形式の組み込み機能のリストがあります。 C#、VB .Net、Cobol、Perlなどのさまざまな言語をサポートしています。
このフレームワークは、オブジェクト指向プログラミングモデルをサポートしています。
Q#2).Netの重要なコンポーネントは何ですか?
回答: .Netのコンポーネントは、共通言語ランタイム、.Netクラスライブラリ、アプリケーションドメイン、共通型システム、.Net Framework、プロファイリングなどです。ただし、2つの重要なコンポーネントは クラスライブラリと共通言語ランタイム。
CLRは、さまざまなアプリケーションにビルディングブロックを提供します。クラスライブラリは、一般的な機能にアクセスするために使用されるクラスのセットで構成されています。機能は、さまざまなアプリケーション間で共有できます。
Q#3)CTSとは何ですか?
回答: CTSは 共通型システム 。これには、プログラムでデータ型を宣言、定義、および使用する方法を示す一連のルールがあります。アプリケーションで使用されるデータ型について説明します。
CTSに存在するルールに従うことで、独自のクラスと値を設計できます。ルールは、プログラミング言語を使用して宣言されたデータ型を、別の言語を使用して開発されたアプリケーションから呼び出すことができるように作成されています。
Javaで文字列の配列を作成する方法
Q#4)CLRとは何ですか?
回答: CLRは 共通言語ランタイム 。これは、.Netフレームワークの最も重要なコンポーネントの1つです。多くのアプリケーションにビルディングブロックを提供します。
C#を使用して構築されたアプリケーションは、独自のコンパイラによってコンパイルされ、中間言語に変換されます。次に、これはCLRを対象としています。 CLRは、メモリ管理、セキュリティチェック、ロードするアセンブリ、スレッド管理などのさまざまな操作を実行します。アプリケーションに安全な実行環境を提供します。
Q#5)CLSとは何ですか?
回答: CLSはの略です 共通言語仕様 。 CLSで説明されているルールにより、開発者は言語間互換性のあるコンポーネントを使用するようになります。これらは、すべての.Net準拠言語で再利用できます。
Q#6)JITとは何ですか?
回答: JITは ジャストインタイム。 。 JITは、中間言語をネイティブコードに変換するコンパイラです。
コードは実行中に母国語に変換されます。ネイティブコードは、CPUが読み取ることができるハードウェア仕様に他なりません。ネイティブコードは、後続の呼び出しでアクセスできるように保存できます。
Q#7)MSILとは何ですか?
回答: MSILは Microsoft中間言語 。
MSILは、メソッドの呼び出し、値の初期化と保存、メモリ処理、例外処理などの操作に関する指示を提供します。すべての.Netコードは最初にILにコンパイルされます。
Q#8)マネージコードとアンマネージコードとはどういう意味ですか?
回答: CLRによって管理されるコードは マネージコード 。このコードはCLR内で実行されます。したがって、マネージコードを実行するには、.Netフレームワークをインストールする必要があります。 CLRは、ガベージコレクションを通じてメモリを管理し、CASやCTSなどの他の機能を使用してコードを効率的に管理します。
アンマネージコード 実行をCLRに依存しないコードです。これは、.Netフレームワークに依存しない他の言語で開発されていることを意味します。コンパイルと実行に独自のランタイム環境を使用します。
CLR内では実行されていませんが、他のすべてのパラメーターに正しく従えば、アンマネージコードは正しく機能します。
Q#9)マネージコードはどのように実行されますか?
回答: マネージコードの実行中は、次の手順に従ってください。
- コードが記述されている言語に応じて言語コンパイラを選択します。
- 上記のコードを独自のコンパイラで中間言語に変換します。
- 次に、ILはCLRを対象とし、CLRはJITを使用してコードをネイティブコードに変換します。
- ネイティブコードの実行。
Q#10)ASP.Netとは何ですか?
回答: ASP .Netは.Netテクノロジの一部であり、CLRでも構成されています。これは、プログラマーが強力なWebサービス、Webサイト、およびWebアプリケーションを構築できるようにするオープンソースのサーバー側テクノロジです。
ASPはの略です Active Server Pages 。
Q#11)ASP.Netでの状態管理について説明してください。
回答: 状態管理とは、オブジェクトの状態を維持することを意味します。ここでのオブジェクトは、Webページ/コントロールを指します。
状態管理には、クライアント側とサーバー側の2種類があります。
- クライアント側 –ページまたはクライアントのシステムに情報を保存する。それらは再利用可能な単純なオブジェクトです。
- サーバ側 –サーバーに情報を保存する。状態を保持するためにクライアントに依存するよりも、サーバー上の情報を維持する方が簡単です。
Q#12)アセンブリとは何ですか?アセンブリの種類は何ですか?
回答: アセンブリは、論理ユニットのコレクションです。論理ユニットとは、アプリケーションを構築し、.NetFrameworkを使用してそれらをデプロイするために必要なタイプとリソースを指します。 CLRは、この情報を型の実装に使用します。基本的に、AssemblyはExeとDLLのコレクションです。ポータブルで実行可能です。
アセンブリには、プライベートと共有の2つのタイプがあります。
- プライベートアセンブリ 、名前自体が示すように、アプリケーションのみがアクセスできます。アプリケーションのインストールディレクトリにインストールされます。
- 共有アセンブリ 複数のアプリケーションで共有できます。 GACにインストールされます。
Q#13)アセンブリのさまざまな部分について説明してください。
回答:アセンブリのさまざまな部分には次のものが含まれます。
- マニフェスト –アセンブリのバージョンに関する情報が含まれています。アセンブリメタデータとも呼ばれます。
- タイプメタデータ –プログラムのバイナリ情報。
- MSIL –Microsoft中間言語コード。
- リソース –関連ファイルのリスト。
Q#14)EXEとDLLとは何ですか?
回答: ExeとDLLはアセンブリ実行可能モジュールです。
EXE 実行可能ファイルです。これにより、設計されたアプリケーションが実行されます。 Exeは、アプリケーションをビルドするときに生成されます。したがって、Exeを実行すると、アセンブリが直接読み込まれます。ただし、Exeを他のアプリケーションと共有することはできません。
等 ダイナミックリンクライブラリの略です。これは、非表示にする必要のあるコードで構成されるライブラリです。コードはこのライブラリ内にカプセル化されています。アプリケーションは多くのDLLで構成できます。これらは他のアプリケーションと共有することもできます。
このDLLを共有する他のアプリケーションは、このDLLの関数を呼び出すことができる限り、コードの複雑さを心配する必要はありません。
Q#15)キャッシングとは何ですか?
回答: キャッシュとは、アプリケーションが元の場所を探す代わりにキャッシュからデータにアクセスできるように、データを一時的にメモリに保存することを意味します。これにより、アプリケーションのパフォーマンスと速度が向上します。 System.Runtime.Caching名前空間は、.Netの情報をキャッシュするために使用されます。
以下に、3種類のキャッシングを示します。
- ページキャッシング
- データキャッシング
- フラグメントキャッシング
Q#16)MVCとは何ですか?
回答: MVCはModelViewControllerの略です。これは、.Netアプリケーションを構築するためのアーキテクチャモデルです。
モデル –モデルオブジェクトは、アプリケーションのデータベースからデータを格納および取得します。これらは通常、アプリケーションのデータドメインによって実装されるアプリケーションの論理部分です。
見る –これらは、アプリケーションのビューをUIの形式で表示するコンポーネントです。ビューは、モデルオブジェクトから情報を取得して表示します。ボタン、ドロップボックス、コンボボックスなどのコンポーネントがあります。
コントローラー –ユーザーの操作を処理します。ユーザー入力への応答、モデルオブジェクトの操作、およびユーザーにレンダリングするビューの選択を担当します。
Q#17)関数とストアドプロシージャの違いは何ですか?
回答:
ストアドプロシージャ:
- ストアドプロシージャは、特定のタスクを実行するために常に使用されます。
- ゼロ、1つ以上の値を返すことができます。
- 入力パラメータと出力パラメータの両方を持つことができます。
- 例外処理は、try-catchブロックを使用して実行できます。
- プロシージャから関数を呼び出すことができます。
機能:
- 関数は単一の値を返す必要があります。
- 入力パラメータのみを持つことができます。
- try-catchブロックを使用して例外処理を行うことはできません。
- ストアドプロシージャを関数から呼び出すことはできません。
Q#18)CAS(コードアクセスセキュリティ)について説明してください。
回答: .Netは、リソースへの不正アクセスを防止するセキュリティモデルを提供します。 CASはそのセキュリティモデルの一部です。 CASはCLRに存在します。これにより、ユーザーはコードの詳細レベルでアクセス許可を設定できます。
次に、CLRは、使用可能な権限に応じてコードを実行します。 CASはマネージコードにのみ適用できます。アンマネージコードはCASなしで実行されます。 CASがアセンブリで使用されている場合、アセンブリは部分的に信頼されているものとして扱われます。このようなアセンブリは、リソースにアクセスしようとするたびにチェックを受ける必要があります。
CASのさまざまなコンポーネントは、コードグループ、権限、および証拠です。
- 証拠 –権限を決定して割り当てるために、CASとCLRは、アセンブリによって指定された証拠に依存します。アセンブリの検査は、さまざまな証拠についての詳細を提供します。一般的な証拠には、ゾーン、URL、サイト、ハッシュ値、発行元、およびアプリケーションディレクトリが含まれます。
- コードグループ –証拠に応じて、コードはさまざまなグループに分類されます。各グループには、特定の条件が関連付けられています。これらの条件に一致するアセンブリはすべて、そのグループに入れられます。
- 権限 –各コードグループは特定のアクションのみを実行できます。それらはパーミッションと呼ばれます。 CLRがアセンブリをロードすると、それらをコードグループの1つと照合し、それらのアセンブリが実行できるアクションを識別します。一部のアクセス許可には、完全信頼、すべて、何も、実行、スキップ検証、およびインターネットが含まれます。
Q#19)GACとは何ですか?
回答: GACは グローバルアセンブリキャッシュ 。 CLRがマシンにインストールされるときはいつでも、GACはその一部として提供されます。 GACは、多くのアプリケーションで共有されるアセンブリを具体的に保存します。 Gacutil.exeと呼ばれる開発者ツールを使用して、GACにファイルを追加します。
Q#20)グローバリゼーションとローカリゼーションとはどういう意味ですか?
回答: 国際化は、複数の言語をサポートするアプリケーションを設計するプロセスです。これはに分かれています ローカリゼーションとグローバリゼーション 。
グローバリゼーションは、さまざまな言語をサポートするアプリケーションの開発に他なりません。既存のアプリケーションを変換して、複数のカルチャをサポートすることもできます。
一方、ローカリゼーションとは、特定の文化や言語に対応するために、すでにグローバル化されたアプリを変更することを意味します。Microsoft.Extensions.Localizationは、アプリのコンテンツをローカライズするために使用されます。ローカリゼーションに使用される他のキーワードには、IHtmlLocalizer、IStringLocalizer、IViewLocalizerなどがあります。
Q#21)ガベージコレクターとは何ですか?
回答: ガベージコレクションは、メモリ内の未使用のコードオブジェクトを解放するための.Net機能です。
メモリヒープは3世代に分けられます。ジェネレーション0、ジェネレーション1、ジェネレーション2。
- ジェネレーション0 –これは短命のオブジェクトを保存するために使用されます。ガベージコレクションは、この世代で頻繁に発生します。
- ジェネレーション1 –これは中程度の寿命のオブジェクト用です。通常、第0世代から移動したオブジェクトはここに格納されます。
- ジェネレーション2 –これは寿命の長いオブジェクト用です。
世代の収集とは、その世代とそのすべての若い世代のオブジェクトを収集することを指します。ジェネレーション2のガベージコレクションは、完全なガベージコレクションを意味し、ジェネレーション1とジェネレーション0だけでなく、ジェネレーション2のすべてのオブジェクトを収集します。
ガベージコレクションプロセスでは、最初のフェーズとして、ライブオブジェクトのリストが識別されます。 2番目のフェーズでは、圧縮されるオブジェクトの参照が更新されます。そして最後のフェーズでは、死んだオブジェクトが占めていたスペースが再利用されます。残りのオブジェクトは古いセグメントに移動されます。
おすすめの読み物=> 人気のあるADO.Netインタビューの質問
結論
ご存知のとおり、.Netは非常に広大であり、すべてのトピックを一気に網羅することは不可能です。
ほとんどの場合、面接の質問はC#などの特定の言語で行われます。この記事では、主に.Netのフレームワークの概念にのみ焦点を当てています。面接中に尋ねられる一般的な質問について、十分な情報と公正な知識が得られると確信しています。
STHチームはあなたのすべての成功を祈っています!!!