私の意見では、3.5 に切り替えない正当な理由はありません。
本当のキラー機能は、すべての新しい言語機能を使用しながら、ランタイムの古いバージョン (2.0+) を引き続きターゲットにできることです。したがって、新しいラムダ式、拡張メソッド、匿名型、およびその他すべての優れた機能を使用できます。また、顧客がまだ主に 2.0 フレームワークを使用している場合は、引き続き以前のランタイムをターゲットにすることができます。
(以前のランタイム バージョンをターゲットにする必要がある場合は、3.5 フレームワークのクラスを使用しないでください。)
個人的には、デスクトップ GUI アプリを作成している場合、3.0 または 3.5 フレームワークを使用するのが最善の策だと思います。なぜなら、WPF は私が今まで使った中で最高のユーザー インターフェイス ライブラリだからです (長い目で見れば)。
一方、ほとんどの GUI を WinForms で既に作成している場合は、WinForms と WPF GUI 要素の (限定的な) 混在を可能にする 3.5 フレームワークに興味があるかもしれません。既に行った作業をそのまま使用できますが、WPF コントロールを使用して、必要に応じてあちこちにいくつかの優れたタッチを追加できます。
3.5 フレームワークのもう 1 つの便利な機能は、「コレクション初期化子」です。これをチェックしてください:
var myDictionary = new Dictionary<String, String> {
{ "key-1", "value-1" },
{ "key-2", "value-2" },
{ "key-3", "value-3" },
};
いいですね。
もう少し JSON に似ていれば、もう少し良かったのにと思います。でもとにかく便利な機能です。
2.0 ランタイム用にそのコードをイベント ターゲットにすることができます。