プロジェクトを.NET 2.0から3.5に変換し、3.5フレームワークを利用して行うことができる最適化を探しています。 Datastructuresのように私が3.5でできることのいくつかは何ですか?また、LINQとは別にDataAccessを使用する際の提案。 すべての提案/ポインタが素晴らしいでしょう。私は特定の最適化を見ていない、ただ一般的な。また、私はVB.NETを使用しています:(2.0から3.5への変換後の.NET 3.5の最適化
答えて
このリンクは、ほとんどすべての新しいVB 9を提供します。一目で0機能:
http://msdn.microsoft.com/en-us/library/ms364068.aspx
- 暗黙的に型指定されたローカル変数
- オブジェクトと配列初期化子
- 匿名型
- ディープXMLのサポート
- クエリ内包拡張
- 方法とラムダ式
- 件のNullable型
- リラックス代表
私はあなたが最適化によって何を意味するのか全くわからない。あなたが少しを明確にすることはできますか?
を3.5フレームワークと対応するVB.Netコンパイラを約そんなにありませんでしたLINQ(言語統合クエリ)を取り巻く概念についてはるかに詳しく説明しています。これは、多少異なるソースで使用できるSQLに似ている汎用クエリ言語を定義する方法です。
たとえば、生徒のリストを持っていて、特定の名前を持つものを取得したいと思っていました.LINQの前に、次のようなものを書いてください。
Dim list As New List<Student>()
For Each cur in col
if cur.Name = SomeName Then
list.Add(cur)
End If
Next
LINQは大幅にあなたはVB.Netでイテレータを書き込むことができないので、これは、C#の上多少依存している以下の
Dim result = From cur in col Where cur.Name = SomeName
を書くせることで、これを簡素化します。しかし私にとって大きなパフォーマンスの向上は、Iterator + Extension Method +ラムダ式コンボです。イテレータは.Net 2.0でも利用できましたが、IEnumerable拡張メソッドと組み合わせると、突然非常に強力な最適化ツールが使用されます。
たとえば、ファイルを読み込んで特定のテキストを含むすべての行を取得するコードがあるとします。 .Net 2.0では、File.ReadAllLines
を使用するか、ストリームリーダーで反復処理します。 .NET 3.5ではイテレータとストリームリーダーをラップして、このようなコードを書くことができます:あなたは.NET 2.0でそれに近い取得するコードを記述する可能性があるため
ReadLines(@"C:\MyFile.txt").Where(l => l.Contains("search text"));
さて、これは、すべてのこと特別なものではありません。しかし、本当にクールなことは、あなたがフィルタを追加し続けることができます:
var query = ReadLines(@"C:\MyFile.txt")
.Where(l => l.Contains("search text"))
.Select(l => int.Parse(l.SubStrin(5,8))
.Where(i => i > 10);
int sum=0;
foreach (int value in query)
{
sum += value;
}
ポップクイズ—何回するファイルの結果の上にそのコードの反復処理?答えはまさに1つです。新しい.Where()
または.Select()
を追加しても、結果が再びループオーバーすることはありません。むしろ、列挙型のパイプラインを作成するために実行を延期します。
.Net 2.0で同様のパフォーマンスを得るには、ファイルの読み込みと読み込みを含むもっと長い関数を書くか、IEnumerableを実装するもっと複雑なクラスを用意するか、カスタム代理人ほとんどのプログラマーは理解しません。
これにより、非常にシンプルで非常に再利用可能な方法でファイルを読み取るコードを抽象化することができます。その結果、コードは効率的なコードを書くのに役立ちます。楽しい部分はです。 VB.Netからこれをいくつか使用してください:あなたは書きたいイテレータを保持するためにC#アセンブリをどこかに持っていなければなりません。VB.Netコードは次のようになります:
Dim query = ReadLines("C:\MyFile.txt") _
.Where(Function(l) l.Contains("search text")) _
.Select(Function(l) Integer.Parse(l.SubString(5,8)) _
.Where(Function(i) i > 10)
Dim sum As Integer = 0
For Each value As Integer In query
sum += value
Next value
これは本当に素晴らしいおかげです。 – Greens
VB 9あなたが行うことができますクールなXMLプリミティブ型があります。かなりクールです
Dim book As XElement = _
<book category="fiction" isbn=<%= isbnNumber %>>
<modifiedDate><%= modifiedDate %></modifiedDate>
</book>
を! (コードはmsdnから取られました)
ええ、これはクールです。それは私が望むVBの唯一の機能(構文の砂糖)はCであった# –
- 1. .NET 3.5から.NET 2.0への変換
- 2. VS2008から.net Framework 3.5へのアップデート.net Framework 2.0の問題
- 3. .Net 1.1から2.0/3.5(C#)へのコードのアップグレード
- 4. .NET 2.0/3.5のSerialPortメモリリーク
- 5. .NET 3.5マルチスレッド化
- 6. .NET 3.5から4への切り替え後のエラー
- 7. HtmlForm.Actionと.NET Framework 2.0/3.5クエリ
- 8. 4.0から3.5のフレームワークへのC++プロジェクトの変換
- 9. Crystal Reportsの.NET 4.0から.NET 3.5へのダウングレード
- 10. サイトを.net 2.0から3.5にアップグレードする際の問題
- 11. ASP.NET 2.0呼び出し.NET 3.5コンポーネント
- 12. .NET 1.1から3.5へのマイグレーション後の予期しない動作
- 13. .Netフレームワーク2.0の.NET Framework 3.5機能の使用
- 14. ASP.Net 3.5から3.5へのアップグレードWebサイトsp1
- 15. asp.net 3.5から4にクラスライブラリを変換
- 16. 2.1.2.4000から4.0.0.4000へのnhibernateの更新(対象は.Net FW 3.5)
- 17. c#vs2005 .net 2.0:コードの最適化
- 18. 3.5 .NET Frameworkの暗号化問題
- 19. .net 1.1から.net 2.0以上への変換
- 20. asp.netのhtmlエディタajax 2.0/3.5
- 21. LINQでIEnumerableからHashSetへの変換を最適化する
- 22. .NET 2.0 Webサイトで.net 3.5 DLLを使用できますか?
- 23. 3.5の.NET 2.0 UserControlライブラリを再コンパイルしますか?
- 24. .NET 3.5対.NET 3.0
- 25. C#.Net 3.5を使用してADグループを最適化する方法
- 26. Solr 1.4から3.5へのアップグレード
- 27. .NET 3.5 WCFリクエストフィルタリング
- 28. DtdProcessing.Ignore in .net 3.5
- 29. MSCharts&.NET 3.5 SP1
- 30. string.Join().NET 3.5
最大の最適化は、C#に切り替えることです。 – Randolpho