Я преобразовал наш проект с .NET 2.0 в 3.5 и ищу оптимизацию, которая может быть выполнена с использованием 3.5 framework. Каковы некоторые из вещей, которые я могу сделать с 3.5, как в Datastructures. Также любые предложения по использованию DataAccess, помимо LINQ to SQL. Любые предложения/указатели были бы замечательными. Я не рассматриваю какую-либо конкретную оптимизацию, просто генерал. Я также использую VB.NET :(Оптимизация .NET 3.5 после преобразования от 2.0 до 3.5
ответ
Эта ссылка в значительной степени дает вам все новые VB 9.0 Обзор функций:
http://msdn.microsoft.com/en-us/library/ms364068.aspx
- Неявно типизированные локальные переменные
- объектов и массивов Инициализаторы
- Анонимные типы
- Deep XML Поддержка
- Запрос постижений расширения
- Методы и Лямбда-выражения
- Обнуляемые Типы
- Расслабление Делегаты
Я не совсем уверен, что вы имеете в виду оптимизации. Вы можете уточнить немного?
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 значительно упрощает это, позволяя записать следующее
Dim result = From cur in col Where cur.Name = SomeName
Это в некоторой степени зависит от C#, потому что вы не можете писать итераторы в VB.Net. Но для меня большое улучшение производительности - это комбинированный метод Iterator + Extension Method + lambda. Итераторы были доступны также в .Net 2.0, но когда вы объединяете их с методами расширения IEnumerable, у вас внезапно появляется очень мощный инструмент оптимизации.
Например, у вас есть код для чтения файла и получения всех строк, содержащих определенный текст. В .Net 2.0 вы либо используете File.ReadAllLines
, либо итерации по потоковому считывателю. В .NET 3.5 вы можете обернуть читатель потока с итератором и писать код так:
ReadLines(@"C:\MyFile.txt").Where(l => l.Contains("search text"));
Теперь это не все, что особенное, потому что вы можете написать код, который получает близко к нему в .NET 2.0. Но на самом деле классная вещь, что вы можете продолжать добавлять фильтры:
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;
}
Поп викторины — сколько раз этот код итерацию по результатам файлов? Ответ в точности один. Добавление нового .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# –
Если вы используете дистанционное управление или сериализацию в версии 2.0, вы можете переключить его на удаленный/сериализатор WCF сейчас, и из того, что я прочитал, вы увидите, что высокая производительность увеличивается.
Nice man thanks – Greens
- 1. Convert Web.config от .NET 2.0 до 3.5
- 2. .NET 2.0 или 3.5?
- 3. Ловушки для преобразования решения .net 2.0 в .net 3.5
- 4. Обновление с .NET 2.0 до .NET 3.5 проблемы
- 5. Каковы некоторые ошибки при перенацеливании .net от 2.0 до 3.5?
- 6. Обновление Dotnet - от 2.0 до 3.5 - производительность
- 7. Как обновить до .NET 3.5?
- 8. Снизьте приложение от .net 4.0 до 3.5
- 9. Производительность. Net 2.0 vs .Net 3.5
- 10. .NET HttpRequest от 1.1 до 3.5
- 11. Как можно понизить проект с .NET 3.5 до .NET 2.0?
- 12. ASP.NET 2.0 или 3.5?
- 13. Веб-сайт Обновление с ASP .NET 2.0 до 3.5
- 14. Использование .NET 3.5 в .NET 2.0
- 15. Преобразование из .NET 3.5 в .NET 2.0
- 16. obout tree view update от 2.0 до 3.5
- 17. Рамочное обновление до 3.5
- 18. Утечка памяти SerialPort в .NET 2.0/3.5
- 19. Включает ли .NET Framework 3.5 SP1 3.5?
- 20. Как и где узнать об изменениях в .net от .net 2.0 до .net 3.5?
- 21. Влияние на клиентов, перемещающихся с .NET framework 2.0 до 3.5
- 22. Преимущества .NET 3.5 vs 2.0 для клиентов
- 23. Перекомпилировать библиотеку UserControl .NET 2.0 в 3.5?
- 24. ASP.NET Development Server - пустой webResource.axd после преобразования от 2.0 до 3.5
- 25. Обновление веб-сервера от ASP.NET 1.1/2.0 до 3.5
- 26. Обновление кода с .Net 1.1 до 2.0/3.5 (C#)
- 27. Совместимость при обновлении с .net 2.0 до 3.5
- 28. .NET 3.5 Состояние просмотра
- 29. asp.net C# .net framework 2.0 и 3.5
- 30. ASP.NET 2.0, вызывающий компонент .NET 3.5
Самая большая оптимизация, которую вы можете сделать, это перейти на C#. – Randolpho