4

.NET には多くの機能があります。言語に関連するものもあれば、フレームワーク自体に関連し、xyz にアクセス/実行/実行する機能を持つものもあります。.NET または ASP.NETのコミュニティのお気に入りの機能には何が含まれているのでしょうか?

これはコミュニティ wiki の質問です。これは主に、 .NETのすべての側面に対してどのような応答があるかを確認するためのポーリングを目的としています。

具体的には、コード サンプルのようなものを含めるようにしてください。

カテゴリとトピックの例:

  • DLR
  • リンク
  • WPF
  • ジェネリック
  • WCF
4

17 に答える 17

14

ジェネリック。独自のコンテナ クラスをローリングしない場合に最適です。C# 2.0 以降で利用可能。

public T Remove<T>(T item) {
  foreach (T t in this.list) {
    if (t.equals(item)) {
      list.delete(t);
      return t;
    }
  }
  return null;
}
于 2008-10-26T01:54:59.750 に答える
11

反射。現実を直視しましょう: リフレクションがなければ、.NET はただの C になりたがりです。または、寛大になりたい場合は、Java 志望者ですが、Java にはリフレクションがあり、それ以外の場合は Pascal 志望者のような匂いがするので、その議論を避けて、.NET が移植可能なアセンブラーになりたいと強く望んでいることを受け入れましょう。 VB を機能させるのに十分なメタデータが含まれています。

プログラムの速度が低下し、静的分析ツールの使用が困難になるため、リフレクションの使用を避けるべきだと人々が主張するのを聞いたことがあります...率直に言って、それは肥料の負荷です。関数は C を遅くしますが、関数のない C コードを誰が書くでしょうか? マクロは C の静的解析を困難にしますが、C はマクロなしでは何もありません! したがって、私はあなたに気が狂ってしまうことを強くお勧めします.Reflectionがあなたの人生を楽にするなら、それを使ってください. なんてこった、悪用してください。選択した .NET 言語を自分の意志に曲げて、誰がボスかを示しましょう。リフレクションを、意志を曲げる信頼できるオーク クラブとして使用します。次に、アイスティーをすすり、自分の手の作品を眺めてください。誰もあなたがツールの達人ではないとは言いません。

于 2008-10-26T02:39:10.487 に答える
8

.NET には多くの優れた機能があると思いますが、このプラットフォームを最高のソフトウェア テクノロジの選択肢の 1 つにしている内部の機能に投票します。

  • ガベージ コレクション- オブジェクトのメモリの割り当てをいつ解除する必要があるかについて無知であることは、すばらしい贈り物です。他の言語 (C++) では、自分でクリーンアップしないと、メモリ リークやブルー スクリーンが発生します。

  • ジャスト イン タイム コンパイル- コンパイラは使用前に各メソッドを最適化し、冗長または最適化されていないコードを削除します。

  • AppDomains - .NET アプリが停止しても、システムが不安定になることはありません。

  • Side by Side 実行XCopy 展開- もう DLL 地獄はありません。言っ途切れる。

  • プラットフォームの抽象化- フレームワークは、ネイティブの Win32 API の多くのバージョン管理の詳細を隠します。

  • 中立言語- VB.NET、C#、または好みの言語のいずれであっても、すべて MSIL です。VB.NET で C# クラスを継承できることは、非常に優れています。

  • 相互運用性- 従来の Win32 API を呼び出す機能、COM+ との相互運用性など

その他:

  • 前述のように、リフレクションはキラーです。
  • Xml 構成のサポートは、Java のプロパティ ファイル構文よりもはるかに優れています。

私は本当に1つを選ばなければなりませんか?

于 2008-10-26T04:18:20.820 に答える
7

代表者; 私は、F#の苦痛を伴わずに機能スタイルのコードを記述できる機能と、C++の型指定されていない関数ポインターが好きです。それに加えて、非常に優れたラムダ構文(C#)と、キャプチャーのコンパイラーサポートがあります。値はどちらの方法でも流れることができるので、JavaキャプチャよりもC#キャプチャの方が好きです(値ではなく変数がキャプチャされます)。

ささいな例として-これはどれほど苦痛ではありませんか?

string name = // something interesting
var item = list.Find(x => x.Name == name && x.Status == Status.Open);
于 2008-10-26T08:47:01.103 に答える
4

Linq To SQLADO.NET Entity Frameworkの素晴らしい機能...

于 2008-10-26T03:11:34.713 に答える
3

ガベージコレクター。あなたはしばらくしてそれを当然のことと思います。

于 2008-12-24T13:29:01.123 に答える
2

順不同

リフレクション
Linq
ラムダ

まったく、3 つすべてを 1 つのステートメントにまとめた場合がありました。

于 2008-12-24T14:06:54.947 に答える
2

コード ビハインドファイル

..クラシック ASP 時代 (および php?) からの大きな一歩

于 2008-12-24T14:10:34.330 に答える
2

ASP.NET の状態管理と WebForms。

多くの人が WebForms を正しく使用しておらず、状態をどのように使用すべきかを理解していないため、WebForms が悪い名前になっています。

正しく使用すると、ViewState が不要な場合は無効になり、必要な場合はデータの再作成が行われます。Web フォームを使用すると、PHP や ASP などを使用する場合よりも Web 開発がはるかに簡単になります。

于 2008-10-26T03:43:15.617 に答える
1

属性(Java:注釈)。

于 2008-12-24T13:22:24.240 に答える
1

ジェネリックと式のツリー

于 2009-02-25T12:05:56.463 に答える
0
  • LINQ
  • すべてがILに移行するという事実は、その上に任意の言語を実装して、ジェネリックスやLINQなどをごくわずかで入手できることを意味します。
  • WF-それは複雑で、これの最大の実装ではないことを私は知っていますが、それを使って時間を費やすと、それが目的の目的のためにうまく機能することがわかります。
于 2009-01-20T10:48:02.837 に答える
0

GDI +

グラフィックスは、以前は本当に難しいものでした。GDI +を使用すると、痛みがなくなります。そして、それには非常に多くの機能があります。Matrix、Path、Transparency、SmoothingModeのようなものは素晴らしく、遊ぶのがとても楽しいです。

それでも不十分な場合は、DirectDrawまたはDirect3Dを使用することもできます。

于 2008-12-11T10:13:17.033 に答える
0

コンボ:デリゲート+匿名メソッド+ラムダ式

于 2008-12-24T13:28:53.073 に答える
0

私は「お気に入り」と呼べる言語機能を実際には持っていません。つまり、私はジェネリックが大好きで、LINQ が大好きですが、それらはすべて、他の言語でうまく機能するものの中途半端な模倣です。

例: ジェネリックは優れていますが、C++ テンプレートほど強力でも有用でもありません。例 2: LINQ 拡張メソッドは優れていますが、オープン クラス + ruby​​ の単純な古いメソッドほど強力でも有用でもありません。

などなど。

正直なところ、私が .NET で最も気に入っているのは、その速度展開モデルです。これらの中途半端で素晴らしい機能をすべて使用できることは、まったく使用できないよりも無限に好ましいです。実行時間が非常に遅いため (例: ruby​​)、まったく同じものを使用しない限り、誰もあなたの dll を読み込めないためです。特定のフラグを使用したリリース モードのクレイジー コンパイラのバリアント (例: C++)

于 2008-10-26T03:38:09.887 に答える
0

ADO.NET、DataAdapter で使用される厳密に型指定された DataSet。データベースやストアド プロシージャとのインターフェイスのコード管理が面倒になります。

于 2008-10-26T04:06:18.690 に答える
0

Windows Communication Foundation (WCF)は、.NET の私のお気に入りの機能です。これは、単純な Web サービスからの大きな前進です。また、ますます人気が高まっている REST 設計も取り入れています。

于 2009-01-20T11:22:40.350 に答える