VISUAL STUDIO 2010 И .NET 4.0 Калита Роман TaskManagementSoft

Содержание

Слайд 2

ЧТО НОВОГО В VISUAL STUDIO 2010

ЧТО НОВОГО В VISUAL STUDIO 2010

Слайд 3

Большое количество нововведений

Breakpoint Labeling
Breakpoint Searching
Breakpoint Import/Export
Dynamic Data Tooling
WPF Tree Visualizer
Call Hierarchy
Improved WPF

Большое количество нововведений Breakpoint Labeling Breakpoint Searching Breakpoint Import/Export Dynamic Data Tooling
Tooling
Historical Debugging
Mini-Dump Debugging
Quick Search
Better Multi-Monitor Support
Highlight References

Parallel Stacks Window
Parallel Tasks Window
Document Map Margin
Generate From Usage
Concurrency Profiler
Inline Call Tree
Extensible Test Runner
MVC Tooling
Web Deploy
JQuery Intellisense
SharePoint Tooling
HTML Snippets
Web.config Transformation

Слайд 4

Большое количество нововведений

Общие улучшения
Отладка
Параллелизм
Веб
Расширяемость

Большое количество нововведений Общие улучшения Отладка Параллелизм Веб Расширяемость

Слайд 5

ОБЩИЕ УЛУЧШЕНИЯ

ОБЩИЕ УЛУЧШЕНИЯ

Слайд 6

Подсветка ссылок

CTRL+SHIFT+ DOWN ARROW (вперед) CTRL+SHIFT+ UP ARROW (назад)
Автоматическая подсветка символов
Используется с любым

Подсветка ссылок CTRL+SHIFT+ DOWN ARROW (вперед) CTRL+SHIFT+ UP ARROW (назад) Автоматическая подсветка
определенным символом – имена функций, переменных, классов, свойств и т.д.

Слайд 7

Navigate To

CTRL + ,
Поиск символов по имени

Navigate To CTRL + , Поиск символов по имени

Слайд 8

Docking

Новый docking diamond
Окна докируются где угодно
Можно вынести окно кода за IDE

Docking Новый docking diamond Окна докируются где угодно Можно вынести окно кода за IDE

Слайд 9

Call Hierarchy (C# only)

CTRL + K, T
Просмотр вызвовов к/из метода
Удобный способ отслеживать

Call Hierarchy (C# only) CTRL + K, T Просмотр вызвовов к/из метода
вызовы в design time

Слайд 10

Zoom

CTRL + колесико мыши
Увеличение/уменьшение размера кода
Удобно например при парном программировании (или подобных

Zoom CTRL + колесико мыши Увеличение/уменьшение размера кода Удобно например при парном программировании (или подобных сценариях)
сценариях)

Слайд 11

Generate from Usage

Используется для автоматической генерации кода, например заглушек
Использование классов и их

Generate from Usage Используется для автоматической генерации кода, например заглушек Использование классов
членов до их полного определения
ТDD стиль написания кода

Слайд 12

Intellisense Suggestion Mode

CTRL + ALT + SPACE
Когда классы и их члены используются

Intellisense Suggestion Mode CTRL + ALT + SPACE Когда классы и их
до их полного определения
Избегает ситуаций кHelps to reduce situations where IntelliSense inserts unintended text into the editor
ТDD стиль написания кода

Слайд 13

Поддержка нескольких мониторов

Все окна теперь можно сделать плавающими
Даже Code Editor и Design

Поддержка нескольких мониторов Все окна теперь можно сделать плавающими Даже Code Editor и Design View
View

Слайд 14

УЛУЧШЕНИЯ ОТЛАДКИ

УЛУЧШЕНИЯ ОТЛАДКИ

Слайд 15

Breakpoints

Можно добавлять метки к точками останова
Можно искать по точкам останова
Импорт/ Экспорт точек

Breakpoints Можно добавлять метки к точками останова Можно искать по точкам останова Импорт/ Экспорт точек

Слайд 16

Плавающие подсказки (Data Tips)

Плавающие подсказки (Data Tips)

Слайд 17

Call Hierarchy (C# only)

Call Hierarchy (C# only)

Слайд 18

Окно потоков

Полностью redesigned
Фильтрация, поиск по call-stack, сворачивание, группировки
Новіе колонки:
Affinity masks
Process names
Managed IDs

Окно потоков Полностью redesigned Фильтрация, поиск по call-stack, сворачивание, группировки Новіе колонки:

Слайд 19

Окна Parallel Stacks, Parallel Tasks

Новые окна для визуализации и отладки паралельного кода

Окна Parallel Stacks, Parallel Tasks Новые окна для визуализации и отладки паралельного
на C++, C#, или Visual Basic
Parallel Stacks – несколько call stack одновременно
Parallel Tasks просмотр паралельных задач и их стату

Слайд 20

Дампы

Можно сохранять дамп файл и дебажить его позже на другой машине например,

Дампы Можно сохранять дамп файл и дебажить его позже на другой машине
где есть исходники и симоволы отладки
Умеет читать дамп файлы содержащие информацтю про управляемый, неуправляемый код и смешаный код

Слайд 21

ВЕБ ПРИЛОЖЕНИЯ

ВЕБ ПРИЛОЖЕНИЯ

Слайд 22

Сниппеты

Сниппеты для веб рпиложения
Сниппеты для:
JavaScript
HTML
ASP.NET

Сниппеты Сниппеты для веб рпиложения Сниппеты для: JavaScript HTML ASP.NET

Слайд 23

Сниппеты

Из менеджера сниппетов
На уровне IntelliSense в коде

Сниппеты Из менеджера сниппетов На уровне IntelliSense в коде

Слайд 24

Intellisense для JavaScript

Intellisense для JavaScript

Слайд 25

Web.config

Более чистый web.config файл приложения.
Web.config transforms - web.config проекта меняется в зависимости

Web.config Более чистый web.config файл приложения. Web.config transforms - web.config проекта меняется
от разных сред развертывания

Слайд 26

One-Click Web Deployment

MSDeploy интегрирован в Visual Studio 2010
После конфигурации профайла, развертывание

One-Click Web Deployment MSDeploy интегрирован в Visual Studio 2010 После конфигурации профайла, развертывание в один клик
в один клик

Слайд 27

Расширяемость

Включен новый Extenion Manager для дополнений к Visual Studio 2010

Расширяемость Включен новый Extenion Manager для дополнений к Visual Studio 2010

Слайд 28

Multitargeting

Создание приложений от .net 2.0 до .net 4.0

Multitargeting Создание приложений от .net 2.0 до .net 4.0

Слайд 29

F#

Новый язык программирования в Visual Studio 2010

F# Новый язык программирования в Visual Studio 2010

Слайд 30

Ссылки

What’s New in Visual Studio 2010 http://msdn.microsoft.com/en-us/library/bb386063(VS.100).aspx
Visual Studio on MSDN http://msdn.microsoft.com/vstudio
Scott Guthrie blog
http://weblogs.asp.net/scottgu/

Ссылки What’s New in Visual Studio 2010 http://msdn.microsoft.com/en-us/library/bb386063(VS.100).aspx Visual Studio on MSDN

Слайд 31

ЧТО НОВОГО В .NET 4.0

ЧТО НОВОГО В .NET 4.0

Слайд 32

Dynamic тип

Операции которые содержат выражения типа dynamic are не проверяются компилятором. Компилятор

Dynamic тип Операции которые содержат выражения типа dynamic are не проверяются компилятором.
упаковывает информацию об операции и эта информация используется для выполнения операций в run time.

dynamic int1 = 1;
dynamic ex1 = new Exception("Oops!");
dynamic result = int1 + ex1;

Слайд 33

DLR

DLR
Новая среда выполнения для поддержки динамических типов и динамических языков.

DLR DLR Новая среда выполнения для поддержки динамических типов и динамических языков.

Слайд 34

DLR

DLR набор сервисов для CLR для поддержки динамических типов:
Expression Trees. Используются для

DLR DLR набор сервисов для CLR для поддержки динамических типов: Expression Trees.
представления семантики языка
Call site caching. Кеширование операций, сбор информации необходимой для выполнения операций
Dynamic object interoperability. IDynamicMetaObjectProvider, DynamicMetaObject, DynamicObject и ExpandoObject

Слайд 35

DLR

Основное применение – интероп и рефлексия.
Пример – DynamicXML



DLR Основное применение – интероп и рефлексия. Пример – DynamicXML dynamic dynamicXml


dynamic dynamicXml = new DynamicXml(document);
string value = dynamicXml.nodes.firstnode.samplenode.value;

Слайд 36

Именованные и необязательные параметры в методах

static void DoTask(string taskName = "sample task",

Именованные и необязательные параметры в методах static void DoTask(string taskName = "sample

int repeatCount = 1, object yetAnotherArg = null)
{
Console.WriteLine("a1 = {0}, a2 = {1}, a3 = {2}",
taskName, repeatCount, yetAnotherArg);
}
DoTask("name", 1, 15);
DoTask(taskName: "new task", yetAnotherArg: 15);
DoTask();

Слайд 37

Возможности для COM Interop

  Теперь  можно COM объекты определять как динамические  и

Возможности для COM Interop Теперь можно COM объекты определять как динамические и
не приводить постоянно получаемые объекты к определенным типам для вызова методов или свойств.

excel.Cells[1, 1].Value = "Hello";
// вместо
((Excel.Range)excel.Cells[1, 1]).Value2 = "Hello";

Слайд 38

Ко- и контравариантность generic

  Приведение generic
Теперь generic типы можно приводить к базовому

Ко- и контравариантность generic Приведение generic Теперь generic типы можно приводить к
и к наследнику (контра- и ковариантность, структуры - инвариантны)

IEnumerable d = new List();
IEnumerable b = d;

 In, Out в generic для обозначения котнра- и ковариантности
Func func1 = null;
// явное приведение не нужно
Func func2 = func1;

Слайд 39

Типы BigInterger и Complex

BigInteger
Неизменяемый тип которые представляет большое целое число чье значение

Типы BigInterger и Complex BigInteger Неизменяемый тип которые представляет большое целое число
теоретически не имеет пределов

Complex
Тип для представления комплексных чисел.
SortedSet
Представляет самобалансирующееся дерево которое поддерживает данные в сортированом виде после вставок, удалений и поиска элементов

Слайд 40

Новое в VB.NET

Auto-Implemented Properties
Упрощенный синтаксис для обьявления свойств
Public Property Owner As String

Новое в VB.NET Auto-Implemented Properties Упрощенный синтаксис для обьявления свойств Public Property
= "DefaultName"
Инициализация коллекций
Упрощенный синтаксис для обьявления и наполнения коллекций значениями
Public Property Items As New List(Of String) = {“M“, “T“, “W“}
Implicit Line Continuation
Для продолжения конструкции на следующей строчке нет необходимости использовать подчеркивание

Слайд 41

In-Process Side-by-Side Execution

Позволяет загружать и стартовать несколько версий .net в одном процессе
Например

In-Process Side-by-Side Execution Позволяет загружать и стартовать несколько версий .net в одном
приложение для которого написаны плагины как на .net 2.0 так и на .net 4.0

Слайд 42

Code contracts

Новый способ задавать контракты к методу или типу
Сценарии использования контрактов:
Статическое нахождение

Code contracts Новый способ задавать контракты к методу или типу Сценарии использования
багов. Программирование в стиле defenisve programming
Создание утверждений для автоматизированых утилит тестирования для улучшения покрытия кода тестами
Играет роль документации к коду

Слайд 43

Code contracts

Старый вариант
if (item == null)
throw new ArgumentNullException("item", "item is null.");
Новый вариант
Contract.Requires(item

Code contracts Старый вариант if (item == null) throw new ArgumentNullException("item", "item
!= null);
Contract.Requires(item.Price >= 0);

Слайд 44

Managed Extesibility Framework

MEF – это механизм, который позволяет минимумом кода внедрить в

Managed Extesibility Framework MEF – это механизм, который позволяет минимумом кода внедрить
проекты поддержку расширяемости (например, плагинов)

Слайд 45

Parallel Computing. Новые типы для синхронизации

Thread-safe, scalable collections
IProducerConsumerCollection
ConcurrentQueue
ConcurrentStack
ConcurrentBag
ConcurrentDictionary
Phases and work exchange
Barrier
BlockingCollection
CountdownEvent

Parallel Computing. Новые типы для синхронизации Thread-safe, scalable collections IProducerConsumerCollection ConcurrentQueue ConcurrentStack

Partitioning
{Orderable}Partitioner
Partitioner.Create
Exception handling
AggregateException
Initialization
Lazy
LazyInitializer.EnsureInitialized
ThreadLocal
Locks
ManualResetEventSlim
SemaphoreSlim
SpinLock
SpinWait
Cancellation
CancellationToken{Source}

ManyCore: http://microoftpdc.com/Sessions/P09-09 (50:00)

Слайд 46

Parallel Computing. Parallelize For.

Управление поток – основная работа
Можно распаралелить если итерации независимі

Parallel Computing. Parallelize For. Управление поток – основная работа Можно распаралелить если
друг от друга
Synchronous
All work quiesces, regularly or exceptionally
Lots of knobs
Cancelation, breaking, task-local state, custom partitioning, scheduling, degree of parallelism

for (int i = 0; i < n; i++)
{
work(i);
}

foreach(var item in data)
{
work(item);
}

StatementA();
StatementB;
StatementC();

Parallel.For(0, n, i=>
{
work(i);
});

Parallel.ForEach(data, item=>
{
work(item);
});

Parallel.Invoke(
() => StatementA(),
() => StatementB,
() => StatementC());

ManyCore: http://microsoftpdc.com/Sessions/P09-09

Слайд 47

PLINQ

Реализует полный набор стандартных LINQ операций
Реализовано на екстеншн методы к IParallelEnumerable
Дополнительные операторы

PLINQ Реализует полный набор стандартных LINQ операций Реализовано на екстеншн методы к
для паралельных операций

from n in names.AsParallel().WithDegreeOfParallelism(ProcessorsToUse.Value)
where n.Name.Equals(queryInfo.Name, StringComparison.InvariantCultureIgnoreCase) &&
n.State == queryInfo.State &&
n.Year >= yearStart && n.Year <= yearEnd
orderby n.Year ascending
select n;

Слайд 48

Task Parallel Library (TPL)

Набор типов и APIs
System.Threading
System.Threading.Tasks
// Последовательно
foreach (var item in sourceCollection)

Task Parallel Library (TPL) Набор типов и APIs System.Threading System.Threading.Tasks // Последовательно

{
Process(item);
}
// Паралелльно
Parallel.ForEach (sourceCollection, item => Process(item));

Слайд 49

I/O

Файлы спроектированые в память
(Memory-Mapped File)
Используются для редактирования очень большых файлов и

I/O Файлы спроектированые в память (Memory-Mapped File) Используются для редактирования очень большых
создания разделяемой памяти для межпроцессного взаимодействия
Stream.CopyTo
Позволяет копировать содержимое одного потока в другой

Слайд 50

Сборка мусора

В .net 4.0 появилась фоновая сборка мусора (background garbage collection) на

Сборка мусора В .net 4.0 появилась фоновая сборка мусора (background garbage collection)
смену  concurrent garbage collection
Обеспечивает улучшенную производительность
Имя файла: VISUAL-STUDIO-2010-И-.NET-4.0-Калита-Роман-TaskManagementSoft.pptx
Количество просмотров: 422
Количество скачиваний: 0