5 июня 2015 года
Разбор некоторых технических
моментов нового .NET
Юлия Фаст
Разработчик .NET
Agenda
Visual Studio 2015
Diagnostic Tools
XAML
Garbage Collector
.NET 4.6
Entity Framework 7 и 6.1.3
2/31
Visual Studio 2015
3/31
Visual Studio Code
4/31
Visual Studio Code
5/31
Visual Studio Diagnostic Tools
6/31
Diagnostic Tools
PerfTips
CPU Graph
Memory Tool
Demo
7/31
PerfTips
Замеряет время между остановками
Исключает из замеров накладные расходы
отладчика
Время ожидания в режиме дебага
Загрузка кода и т. д.
Идеально подходит для объемных измерений
Наибольшая точность для CLR 4.6 и Windows 10
8/31
CPU Graph
Показывает загрузку всех доступных
ядер процессора
Пики могут быть интересны, даже если
они не достигают 100%
Доступен после остановки отладчика
9/31
Memory Tool
Показывает дельту между снапшотами
Показывает список объектов
Фильтрует по различным критериям
Работает как для C++, так и для .NET
10/31
Breakpoint Configuration
Остановка по условию
Подсчет количества попаданий
Фильтр по процессу
Вывод сообщений в output
11/31
Breakpoint Configuration
12/31
Diagnostic Tools without debugging
Timeline Tool
CPU Tool
DemoDemo
13/31
Timeline Tool
Помогает обнаружить проблемы, вызванные:
Parsing & Layout
Ошибками в коде или другой нагрузкой
на процессор
Отслеживает производительность видеокарты
14/31
CPU Tool
Максимальная нагрузка на процессор
Данные процессора каждую миллисекунду
Единый отчет
Информацию по общему стеку (.NET и C++)
15/31
Diagnostic Tools
Доступны для любого типа проекта, кроме следующих:
Приложения Windows Store на JavaScript
Приложения Windows Store, запущенные нa WP
Отладка со включенным Managed or Native
Compatibility Mode (Tools → Options → Debugging)
16/31
XAML
x:DeferLoadStrategy
x:Bind
Live Visual Tree
Demo
17/31
x:DeferLoadStrategy
Применяется при необходимости не отображать
часть UI
Позволяет отложить создание части дерева
Применяется для MVVM
Demo
<StackPanel x:Name="StackPanelName"
x:DeferLoadStrategy="Lazy" >
…………………….
</StackPanel>
var deferredPanel = FindName(“StackPanelName”);
18/31
x:Bind
Перемещает binding на уровень
скомпилированного кода
Оптимизирует запуск и память
Строго типизирован
Поддается отладке!
Demo<DataTemplate x:DataType="local:Item">
.....
<TextBlock Text="{x:Bind Title}" />
</DataTemplate>
19/31
Live Visual Tree
DemoDemoDemo
20/31
Live Visual Tree
Demo
21/31
.NET 4.6
Garbage Сollector
AppContext
Demo
22/31
Demo
TryStartNoGCRegion
23/31
Compatibility Switches
24/31
Entity Framework
Entity Framework 7
Entity Framework 6.1.3
25/31
Entity Framework 7
Кроссплатформенный
Группировка запросов пачками
Уникальные ключи (кроме первичных)
Более очевидное преобразование в sql
Поддерживает нереляционные БД
Легкие и быстрые компоненты
Доступен на GitHub:
https://github.com/aspnet/EntityFramework
26/31
MetadataWorkspace. В какую таблицу отображается класс Blog?
EF7
EF6
27/31
Исключены некоторые возможности
Multiple Entity Sets per Type (MEST)
Very complex type to table mappings
EDMX в пользу Code-base
ObjectContext API
28/31
Entity Framework 6.1.3
Все еще разрабатывается
Может устанавливаться через NuGet
Включен в Visual Studio 2015
Встроен в шаблоны ASP.NET 5
Содержит улучшения и баг-фиксы
29/31
Summary
Visual Studio 2015 + Code
Инструменты диагностики
Новый .NET 4.6
Облегченный Entity Framework 7
30/31