SlideShare ist ein Scribd-Unternehmen logo
1 von 51
VISUAL STUDIO 2010 И .NET 4.0 Калита Роман TaskManagementSoft
ЧТО НОВОГО В VISUAL STUDIO 2010
Большое количество нововведений Parallel Stacks Window Parallel Tasks Window Document Map Margin Generate From Usage Concurrency Profiler Inline Call Tree Extensible Test Runner MVC Tooling Web Deploy JQueryIntellisense SharePoint Tooling HTML Snippets Web.config Transformation Breakpoint Labeling Breakpoint Searching Breakpoint Import/Export Dynamic Data Tooling WPF Tree Visualizer Call Hierarchy Improved WPF Tooling Historical Debugging Mini-Dump Debugging Quick Search Better Multi-Monitor  Support Highlight References
Большое количество нововведений Общие улучшения Отладка Параллелизм Веб Расширяемость
ОБЩИЕ УЛУЧШЕНИЯ
Подсветка ссылок CTRL+SHIFT+DOWN ARROW (вперед) CTRL+SHIFT+UP ARROW (назад)  Автоматическая подсветка символов Используется с любым определенным символом – имена функций, переменных, классов, свойств и т.д.
Navigate To CTRL + , Поиск символов по имени
Docking Новый docking diamond Окна докируются где угодно Можно вынести окно кода за IDE
Call Hierarchy (C# only) CTRL + K, T Просмотр вызвовов к/из метода Удобный способ отслеживать вызовы в design time
Zoom CTRL + колесико мыши Увеличение/уменьшение размера кода Удобно например при парном программировании (или подобных сценариях)
Generate from Usage Используется для автоматической генерации кода, например заглушек Использование классов и их членов до их полного определения ТDD стиль написания кода
Intellisense Suggestion Mode CTRL + ALT + SPACE Когда классы и их члены используются до их полного определения Избегает ситуаций кHelps to reduce situations where IntelliSense inserts unintended text into the editor ТDD стиль написания кода
Поддержка нескольких мониторов ,[object Object]
Даже Code Editor и Design View,[object Object]
Breakpoints Можно добавлять метки к точками останова Можно искать по точкам останова Импорт/ Экспорт точек
Плавающие подсказки (Data Tips)
Call Hierarchy (C# only)
Окно потоков Полностью redesigned Фильтрация, поиск по call-stack, сворачивание, группировки Новіе колонки: Affinity masks Process names Managed IDs
Окна Parallel Stacks, Parallel Tasks Новые окна для визуализации и отладки паралельного кода на C++, C#, или Visual Basic Parallel Stacks – несколько call stack одновременно Parallel Tasks просмотр паралельных задач и их стату
Дампы Можно сохранять дамп файл и дебажить его позже на другой машине например, где есть исходники и симоволы отладки Умеет читать дамп файлы содержащие информацтю про управляемый, неуправляемый код и  смешаный код
ВЕБ ПРИЛОЖЕНИЯ
Сниппеты Сниппеты для веб рпиложения Сниппеты для: JavaScript HTML ASP.NET
Сниппеты Из менеджера сниппетов На уровне IntelliSense в коде
Intellisenseдля JavaScript
Web.config Более чистый web.configфайл приложения. Web.config transforms - web.configпроекта меняется в зависимости от разных сред развертывания
One-Click Web Deployment MSDeployинтегрирован в Visual Studio 2010  После конфигурации профайла, развертывание в один клик
Расширяемость Включен новый Extenion Manager для дополнений к Visual Studio 2010
Multitargeting Создание приложений от .net 2.0 до .net 4.0
F# Новый язык программирования в Visual Studio 2010
Ссылки What’s New in Visual Studio 2010http://msdn.microsoft.com/en-us/library/bb386063(VS.100).aspx Visual Studio on MSDNhttp://msdn.microsoft.com/vstudio Scott Guthrie blog http://weblogs.asp.net/scottgu/
ЧТО НОВОГО В.NET 4.0
Dynamic тип Операции которые содержат выражения типа dynamic are не проверяются компилятором.  Компилятор упаковывает информацию об операции и эта информация используется для выполнения операций в run time. dynamic int1 = 1; dynamicex1 = newException("Oops!"); dynamicresult = int1 + ex1;
DLR DLR Новая среда выполнения для поддержки динамических типов и динамических языков.
DLR DLR набор сервисов для CLR для поддержки динамических типов: Expression Trees. Используются для представления семантики языка Call site caching. Кеширование операций, сбор информации необходимой для выполнения операций Dynamic object interoperability.IDynamicMetaObjectProvider, DynamicMetaObject, DynamicObjectи ExpandoObject
DLR Основное применение – интероп и рефлексия. Пример – DynamicXML <nodes>   <firstnode>     <samplenodevalue="sample value"></samplenode>   </firstnode> </nodes> dynamicdynamicXml = newDynamicXml(document); string value = dynamicXml.nodes.firstnode.samplenode.value;
Именованные и необязательные параметры в методах staticvoidDoTask(stringtaskName = "sample task",  intrepeatCount = 1, objectyetAnotherArg = null) { Console.WriteLine("a1 = {0}, a2 = {1}, a3 = {2}",  taskName, repeatCount, yetAnotherArg); } DoTask("name", 1, 15); DoTask(taskName: "new task", yetAnotherArg: 15); DoTask();
Возможности для COM Interop  Теперь  можно COM объекты определять как динамические  и не приводить постоянно получаемые объекты к определенным типам для вызова методов или свойств. excel.Cells[1, 1].Value = "Hello"; // вместо  ((Excel.Range)excel.Cells[1, 1]).Value2 = "Hello";
Ко- и контравариантность generic  Приведение generic Теперь generic типы можно приводить к базовому и к наследнику (контра- и ковариантность, структуры - инвариантны) IEnumerable<Derived> d = newList<Derived>(); IEnumerable<Base> b = d;  In, Out в generic для обозначения котнра- и ковариантности Func<Object, ArgumentException> func1 = null; // явное приведение не нужно Func<String, Exception> func2 = func1;
Типы BigIntergerи Complex BigInteger Неизменяемый тип которые представляет большое целое число чье значение теоретически не имеет пределов Complex Тип для представления комплексных чисел. SortedSet<T> Представляет самобалансирующееся дерево которое поддерживает данные в сортированом виде после вставок, удалений и поиска элементов
Новое в VB.NET Auto-Implemented Properties Упрощенный синтаксис для обьявления свойств Public Property Owner As String = "DefaultName"  Инициализация коллекций Упрощенный синтаксис для обьявления и наполнения коллекций значениями Public Property Items As New List(Of String) = {“M“, “T“, “W“} Implicit Line Continuation Для продолжения конструкции на следующей строчке нет необходимости использовать подчеркивание
In-Process Side-by-Side Execution Позволяет загружать и стартовать несколько версий .netв одном процессе Например приложение для которого написаны плагины как на .net2.0 так и на .net4.0 2.0 add-in 3.0 add-in 3.5 add-in 4.0 add-in 3.5 .NET 4.0 3.0 .NET 2.0 Host Process (i.e. Outlook)
Code contracts Новый способ задавать контракты к методу или типу Сценарии использования контрактов: Статическое нахождение багов. Программирование в стиле defenisve programming Создание утверждений для автоматизированых утилит тестирования для улучшения покрытия кода тестами Играет роль документации к коду
Code contracts Старый вариант if (item == null) thrownewArgumentNullException("item", "item is null."); Новый вариант Contract.Requires<NullReferenceException>(item != null); Contract.Requires(item.Price>= 0);
Managed Extesibility Framework MEF – это механизм, который позволяет минимумом кода внедрить в проекты поддержку расширяемости (например, плагинов)
Parallel Computing. Новые типы для синхронизации Thread-safe, scalable collections IProducerConsumerCollection<T> ConcurrentQueue<T> ConcurrentStack<T> ConcurrentBag<T> ConcurrentDictionary<TKey,TValue> Phases and work exchange Barrier  BlockingCollection<T> CountdownEvent Partitioning {Orderable}Partitioner<T> Partitioner.Create Exception handling AggregateException Initialization Lazy<T> LazyInitializer.EnsureInitialized<T> ThreadLocal<T> Locks ManualResetEventSlim SemaphoreSlim SpinLock SpinWait Cancellation CancellationToken{Source} ManyCore: http://microoftpdc.com/Sessions/P09-09  (50:00)
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 foreach(var item in data)  {    work(item); } for (int i = 0; i < n; i++)  {    work(i); } StatementA(); StatementB; StatementC(); Parallel.ForEach(data, item=> {    work(item); }); Parallel.For(0, n, i=>  {    work(i); }); Parallel.Invoke(    () => StatementA(),     () => StatementB,     () => StatementC()); ManyCore: http://microsoftpdc.com/Sessions/P09-09
PLINQ ,[object Object]
Реализовано на екстеншн методы к IParallelEnumerable
Дополнительные операторы для паралельных операций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 orderbyn.Year ascending                        select n;
Task Parallel Library (TPL) ,[object Object]
System.Threading

Weitere ähnliche Inhalte

Was ist angesagt?

Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.Dima Dzuba
 
Поговорим о JavaScript, основы и современные тенденции развития языка
Поговорим о JavaScript, основы и современные тенденции развития языкаПоговорим о JavaScript, основы и современные тенденции развития языка
Поговорим о JavaScript, основы и современные тенденции развития языкаAlexander Kucherenko
 
Современный статический анализ кода: что умеет он, чего не умели линтеры
Современный статический анализ кода: что умеет он, чего не умели линтерыСовременный статический анализ кода: что умеет он, чего не умели линтеры
Современный статический анализ кода: что умеет он, чего не умели линтерыcorehard_by
 
Практика использования Dependency Injection
Практика использования Dependency InjectionПрактика использования Dependency Injection
Практика использования Dependency InjectionPlatonov Sergey
 
паттерны программирования
паттерны программированияпаттерны программирования
паттерны программированияguestfc8ae0
 
Шишки, набитые за 15 лет использования акторов в C++
Шишки, набитые за 15 лет использования акторов в C++Шишки, набитые за 15 лет использования акторов в C++
Шишки, набитые за 15 лет использования акторов в C++Yauheni Akhotnikau
 
C++ refelection and cats
C++ refelection and catsC++ refelection and cats
C++ refelection and catscorehard_by
 
Dependency injection
Dependency injectionDependency injection
Dependency injectionGetDev.NET
 
Асинхронность и сопрограммы
Асинхронность и сопрограммыАсинхронность и сопрограммы
Асинхронность и сопрограммыPlatonov Sergey
 
Евгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияЕвгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияPlatonov Sergey
 
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...Rinat Shaikhutdinov
 
Методики «Inversion of Control» и «Dependency Injection». Применение в Spring.
Методики «Inversion of Control» и «Dependency Injection». Применение в Spring.Методики «Inversion of Control» и «Dependency Injection». Применение в Spring.
Методики «Inversion of Control» и «Dependency Injection». Применение в Spring.Fedor Malyshkin
 
Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Alexander Babich
 
Опыт тестирования API САПР платформы
Опыт тестирования API САПР платформыОпыт тестирования API САПР платформы
Опыт тестирования API САПР платформыSQALab
 
Основы Java. 5. Databases
Основы Java. 5. DatabasesОсновы Java. 5. Databases
Основы Java. 5. DatabasesSergey Nemchinsky
 
Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Fedor Malyshkin
 

Was ist angesagt? (20)

Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.
 
Поговорим о JavaScript, основы и современные тенденции развития языка
Поговорим о JavaScript, основы и современные тенденции развития языкаПоговорим о JavaScript, основы и современные тенденции развития языка
Поговорим о JavaScript, основы и современные тенденции развития языка
 
Современный статический анализ кода: что умеет он, чего не умели линтеры
Современный статический анализ кода: что умеет он, чего не умели линтерыСовременный статический анализ кода: что умеет он, чего не умели линтеры
Современный статический анализ кода: что умеет он, чего не умели линтеры
 
Java 9 - Back to the Future
Java 9 - Back to the FutureJava 9 - Back to the Future
Java 9 - Back to the Future
 
Практика использования Dependency Injection
Практика использования Dependency InjectionПрактика использования Dependency Injection
Практика использования Dependency Injection
 
паттерны программирования
паттерны программированияпаттерны программирования
паттерны программирования
 
Шишки, набитые за 15 лет использования акторов в C++
Шишки, набитые за 15 лет использования акторов в C++Шишки, набитые за 15 лет использования акторов в C++
Шишки, набитые за 15 лет использования акторов в C++
 
C++ refelection and cats
C++ refelection and catsC++ refelection and cats
C++ refelection and cats
 
Dependency injection
Dependency injectionDependency injection
Dependency injection
 
Асинхронность и сопрограммы
Асинхронность и сопрограммыАсинхронность и сопрограммы
Асинхронность и сопрограммы
 
Евгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияЕвгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализация
 
JRebel
JRebelJRebel
JRebel
 
Цена ошибки
Цена ошибкиЦена ошибки
Цена ошибки
 
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...
 
Методики «Inversion of Control» и «Dependency Injection». Применение в Spring.
Методики «Inversion of Control» и «Dependency Injection». Применение в Spring.Методики «Inversion of Control» и «Dependency Injection». Применение в Spring.
Методики «Inversion of Control» и «Dependency Injection». Применение в Spring.
 
Zend Framework и Doctrine
Zend Framework и DoctrineZend Framework и Doctrine
Zend Framework и Doctrine
 
Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Microsoft Visual Studio 2010
Microsoft Visual Studio 2010
 
Опыт тестирования API САПР платформы
Опыт тестирования API САПР платформыОпыт тестирования API САПР платформы
Опыт тестирования API САПР платформы
 
Основы Java. 5. Databases
Основы Java. 5. DatabasesОсновы Java. 5. Databases
Основы Java. 5. Databases
 
Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)
 

Andere mochten auch

三鶯橋下野草花
三鶯橋下野草花三鶯橋下野草花
三鶯橋下野草花cvn68
 
Job Hunting - How to boost your chances by building your network
Job Hunting - How to boost your chances by building your networkJob Hunting - How to boost your chances by building your network
Job Hunting - How to boost your chances by building your networkMalcolm Hornby
 
Banca relacional y capital social en España
Banca relacional y capital social en EspañaBanca relacional y capital social en España
Banca relacional y capital social en EspañaIvie
 
for linked certificates
for linked certificatesfor linked certificates
for linked certificatesSara Huther
 
10. Community Training ITsax.de - technische Neuheiten 2012
10. Community Training ITsax.de - technische Neuheiten 201210. Community Training ITsax.de - technische Neuheiten 2012
10. Community Training ITsax.de - technische Neuheiten 2012Community ITsax.de
 

Andere mochten auch (6)

三鶯橋下野草花
三鶯橋下野草花三鶯橋下野草花
三鶯橋下野草花
 
Easy .... Difficult
Easy .... DifficultEasy .... Difficult
Easy .... Difficult
 
Job Hunting - How to boost your chances by building your network
Job Hunting - How to boost your chances by building your networkJob Hunting - How to boost your chances by building your network
Job Hunting - How to boost your chances by building your network
 
Banca relacional y capital social en España
Banca relacional y capital social en EspañaBanca relacional y capital social en España
Banca relacional y capital social en España
 
for linked certificates
for linked certificatesfor linked certificates
for linked certificates
 
10. Community Training ITsax.de - technische Neuheiten 2012
10. Community Training ITsax.de - technische Neuheiten 201210. Community Training ITsax.de - technische Neuheiten 2012
10. Community Training ITsax.de - technische Neuheiten 2012
 

Ähnlich wie Что нового в Visual Studio 2010 и .Net 4.0

анализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестированияанализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестированияRuslan Shevchenko
 
Диагностика проблем в рабочей среде при помощи IntelliTrace и Visual Studio 2...
Диагностика проблем в рабочей среде при помощи IntelliTrace и Visual Studio 2...Диагностика проблем в рабочей среде при помощи IntelliTrace и Visual Studio 2...
Диагностика проблем в рабочей среде при помощи IntelliTrace и Visual Studio 2...Герман Криммель
 
AOP and Design Patterns (GoF)
AOP and Design Patterns (GoF)AOP and Design Patterns (GoF)
AOP and Design Patterns (GoF)Andrey Gordienkov
 
Aspect Oriented Programming and Design Patterns
Aspect Oriented Programming and Design PatternsAspect Oriented Programming and Design Patterns
Aspect Oriented Programming and Design PatternsAndrey Gordienkov
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationAndrii Dzynia
 
Обзор платформы B4
Обзор платформы B4Обзор платформы B4
Обзор платформы B4Bars Group
 
Parallelism в .net 4 и vs2010
Parallelism в .net 4 и vs2010Parallelism в .net 4 и vs2010
Parallelism в .net 4 и vs2010Roman Kalita
 
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»  O...ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»  O...
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...WDDay
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobileUA Mobile
 
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NETОпыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NETGoSharp
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyDmytro Zharii
 
Zend Framework и мультиязычность
Zend Framework и мультиязычностьZend Framework и мультиязычность
Zend Framework и мультиязычностьStepan Tanasiychuk
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flashguestb0af15
 
IOP202 DevCon 2012 Apache Lucene in Windows Azure
IOP202 DevCon 2012 Apache Lucene in Windows AzureIOP202 DevCon 2012 Apache Lucene in Windows Azure
IOP202 DevCon 2012 Apache Lucene in Windows AzureVadim Novitskiy
 
Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”GlobalLogic Ukraine
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй этоRoman Dvornov
 
Приемочные тесты на огурце
Приемочные тесты на огурцеПриемочные тесты на огурце
Приемочные тесты на огурцеAlexander Byndyu
 

Ähnlich wie Что нового в Visual Studio 2010 и .Net 4.0 (20)

анализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестированияанализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестирования
 
Telerik Web aii
Telerik Web aiiTelerik Web aii
Telerik Web aii
 
Диагностика проблем в рабочей среде при помощи IntelliTrace и Visual Studio 2...
Диагностика проблем в рабочей среде при помощи IntelliTrace и Visual Studio 2...Диагностика проблем в рабочей среде при помощи IntelliTrace и Visual Studio 2...
Диагностика проблем в рабочей среде при помощи IntelliTrace и Visual Studio 2...
 
AOP and Design Patterns (GoF)
AOP and Design Patterns (GoF)AOP and Design Patterns (GoF)
AOP and Design Patterns (GoF)
 
Aspect Oriented Programming and Design Patterns
Aspect Oriented Programming and Design PatternsAspect Oriented Programming and Design Patterns
Aspect Oriented Programming and Design Patterns
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test Automation
 
Обзор платформы B4
Обзор платформы B4Обзор платформы B4
Обзор платформы B4
 
Silverlight 5
Silverlight 5Silverlight 5
Silverlight 5
 
Parallelism в .net 4 и vs2010
Parallelism в .net 4 и vs2010Parallelism в .net 4 и vs2010
Parallelism в .net 4 и vs2010
 
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»  O...ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»  O...
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobile
 
Aspect Oriented Approach
Aspect Oriented ApproachAspect Oriented Approach
Aspect Oriented Approach
 
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NETОпыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
 
Zend Framework и мультиязычность
Zend Framework и мультиязычностьZend Framework и мультиязычность
Zend Framework и мультиязычность
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flash
 
IOP202 DevCon 2012 Apache Lucene in Windows Azure
IOP202 DevCon 2012 Apache Lucene in Windows AzureIOP202 DevCon 2012 Apache Lucene in Windows Azure
IOP202 DevCon 2012 Apache Lucene in Windows Azure
 
Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй это
 
Приемочные тесты на огурце
Приемочные тесты на огурцеПриемочные тесты на огурце
Приемочные тесты на огурце
 

Mehr von akrakovetsky

qiss.IM - wp7rocks.com
qiss.IM - wp7rocks.comqiss.IM - wp7rocks.com
qiss.IM - wp7rocks.comakrakovetsky
 
Семантический HTML5 - iForum
Семантический HTML5 - iForumСемантический HTML5 - iForum
Семантический HTML5 - iForumakrakovetsky
 
Dependency Injection на примере Unity и NInject
Dependency Injection на примере Unity и NInjectDependency Injection на примере Unity и NInject
Dependency Injection на примере Unity и NInjectakrakovetsky
 
jQuery для ASP.NET разработчиков
jQuery для ASP.NET разработчиковjQuery для ASP.NET разработчиков
jQuery для ASP.NET разработчиковakrakovetsky
 
Функциональное программирование на F#
Функциональное программирование на F#Функциональное программирование на F#
Функциональное программирование на F#akrakovetsky
 
Переходим на Windows 7 и Windows 2008 R2
Переходим на Windows 7 и Windows 2008 R2Переходим на Windows 7 и Windows 2008 R2
Переходим на Windows 7 и Windows 2008 R2akrakovetsky
 
Разработка и раскрутка iPhone приложений "с нуля"
Разработка и раскрутка iPhone приложений "с нуля"Разработка и раскрутка iPhone приложений "с нуля"
Разработка и раскрутка iPhone приложений "с нуля"akrakovetsky
 
Основи розробки ігор на платформі XNA
Основи розробки ігор на платформі XNAОснови розробки ігор на платформі XNA
Основи розробки ігор на платформі XNAakrakovetsky
 
Введение в Microsoft Silverlight 3.0
Введение в Microsoft Silverlight 3.0Введение в Microsoft Silverlight 3.0
Введение в Microsoft Silverlight 3.0akrakovetsky
 
ASP.NET 4.0 Cache Extensibility
ASP.NET 4.0 Cache ExtensibilityASP.NET 4.0 Cache Extensibility
ASP.NET 4.0 Cache Extensibilityakrakovetsky
 
Microsoft .NET User Group Вінниця #4
Microsoft .NET User Group Вінниця #4Microsoft .NET User Group Вінниця #4
Microsoft .NET User Group Вінниця #4akrakovetsky
 
What's new in Visual Studio 2010.
What's new in Visual Studio 2010.What's new in Visual Studio 2010.
What's new in Visual Studio 2010.akrakovetsky
 
Что нового в ASP.NET 4
Что нового в ASP.NET 4Что нового в ASP.NET 4
Что нового в ASP.NET 4akrakovetsky
 
Введение в Windows Communication Foundation
Введение в Windows Communication FoundationВведение в Windows Communication Foundation
Введение в Windows Communication Foundationakrakovetsky
 
Microsoft User Group Vinnitsya
Microsoft User Group VinnitsyaMicrosoft User Group Vinnitsya
Microsoft User Group Vinnitsyaakrakovetsky
 

Mehr von akrakovetsky (17)

Alco calculator
Alco calculatorAlco calculator
Alco calculator
 
qiss.IM - wp7rocks.com
qiss.IM - wp7rocks.comqiss.IM - wp7rocks.com
qiss.IM - wp7rocks.com
 
Семантический HTML5 - iForum
Семантический HTML5 - iForumСемантический HTML5 - iForum
Семантический HTML5 - iForum
 
Dependency Injection на примере Unity и NInject
Dependency Injection на примере Unity и NInjectDependency Injection на примере Unity и NInject
Dependency Injection на примере Unity и NInject
 
jQuery для ASP.NET разработчиков
jQuery для ASP.NET разработчиковjQuery для ASP.NET разработчиков
jQuery для ASP.NET разработчиков
 
Функциональное программирование на F#
Функциональное программирование на F#Функциональное программирование на F#
Функциональное программирование на F#
 
Переходим на Windows 7 и Windows 2008 R2
Переходим на Windows 7 и Windows 2008 R2Переходим на Windows 7 и Windows 2008 R2
Переходим на Windows 7 и Windows 2008 R2
 
Разработка и раскрутка iPhone приложений "с нуля"
Разработка и раскрутка iPhone приложений "с нуля"Разработка и раскрутка iPhone приложений "с нуля"
Разработка и раскрутка iPhone приложений "с нуля"
 
Основи розробки ігор на платформі XNA
Основи розробки ігор на платформі XNAОснови розробки ігор на платформі XNA
Основи розробки ігор на платформі XNA
 
Html5
Html5Html5
Html5
 
Введение в Microsoft Silverlight 3.0
Введение в Microsoft Silverlight 3.0Введение в Microsoft Silverlight 3.0
Введение в Microsoft Silverlight 3.0
 
ASP.NET 4.0 Cache Extensibility
ASP.NET 4.0 Cache ExtensibilityASP.NET 4.0 Cache Extensibility
ASP.NET 4.0 Cache Extensibility
 
Microsoft .NET User Group Вінниця #4
Microsoft .NET User Group Вінниця #4Microsoft .NET User Group Вінниця #4
Microsoft .NET User Group Вінниця #4
 
What's new in Visual Studio 2010.
What's new in Visual Studio 2010.What's new in Visual Studio 2010.
What's new in Visual Studio 2010.
 
Что нового в ASP.NET 4
Что нового в ASP.NET 4Что нового в ASP.NET 4
Что нового в ASP.NET 4
 
Введение в Windows Communication Foundation
Введение в Windows Communication FoundationВведение в Windows Communication Foundation
Введение в Windows Communication Foundation
 
Microsoft User Group Vinnitsya
Microsoft User Group VinnitsyaMicrosoft User Group Vinnitsya
Microsoft User Group Vinnitsya
 

Что нового в Visual Studio 2010 и .Net 4.0

  • 1. VISUAL STUDIO 2010 И .NET 4.0 Калита Роман TaskManagementSoft
  • 2. ЧТО НОВОГО В VISUAL STUDIO 2010
  • 3. Большое количество нововведений Parallel Stacks Window Parallel Tasks Window Document Map Margin Generate From Usage Concurrency Profiler Inline Call Tree Extensible Test Runner MVC Tooling Web Deploy JQueryIntellisense SharePoint Tooling HTML Snippets Web.config Transformation Breakpoint Labeling Breakpoint Searching Breakpoint Import/Export Dynamic Data Tooling WPF Tree Visualizer Call Hierarchy Improved WPF Tooling Historical Debugging Mini-Dump Debugging Quick Search Better Multi-Monitor Support Highlight References
  • 4. Большое количество нововведений Общие улучшения Отладка Параллелизм Веб Расширяемость
  • 6. Подсветка ссылок CTRL+SHIFT+DOWN ARROW (вперед) CTRL+SHIFT+UP ARROW (назад) Автоматическая подсветка символов Используется с любым определенным символом – имена функций, переменных, классов, свойств и т.д.
  • 7. Navigate To CTRL + , Поиск символов по имени
  • 8. Docking Новый docking diamond Окна докируются где угодно Можно вынести окно кода за IDE
  • 9. Call Hierarchy (C# only) CTRL + K, T Просмотр вызвовов к/из метода Удобный способ отслеживать вызовы в design time
  • 10. Zoom CTRL + колесико мыши Увеличение/уменьшение размера кода Удобно например при парном программировании (или подобных сценариях)
  • 11. Generate from Usage Используется для автоматической генерации кода, например заглушек Использование классов и их членов до их полного определения ТDD стиль написания кода
  • 12. Intellisense Suggestion Mode CTRL + ALT + SPACE Когда классы и их члены используются до их полного определения Избегает ситуаций кHelps to reduce situations where IntelliSense inserts unintended text into the editor ТDD стиль написания кода
  • 13.
  • 14.
  • 15. Breakpoints Можно добавлять метки к точками останова Можно искать по точкам останова Импорт/ Экспорт точек
  • 18. Окно потоков Полностью redesigned Фильтрация, поиск по call-stack, сворачивание, группировки Новіе колонки: Affinity masks Process names Managed IDs
  • 19. Окна Parallel Stacks, Parallel Tasks Новые окна для визуализации и отладки паралельного кода на C++, C#, или Visual Basic Parallel Stacks – несколько call stack одновременно Parallel Tasks просмотр паралельных задач и их стату
  • 20. Дампы Можно сохранять дамп файл и дебажить его позже на другой машине например, где есть исходники и симоволы отладки Умеет читать дамп файлы содержащие информацтю про управляемый, неуправляемый код и смешаный код
  • 22. Сниппеты Сниппеты для веб рпиложения Сниппеты для: JavaScript HTML ASP.NET
  • 23. Сниппеты Из менеджера сниппетов На уровне IntelliSense в коде
  • 25. Web.config Более чистый web.configфайл приложения. Web.config transforms - web.configпроекта меняется в зависимости от разных сред развертывания
  • 26. One-Click Web Deployment MSDeployинтегрирован в Visual Studio 2010 После конфигурации профайла, развертывание в один клик
  • 27. Расширяемость Включен новый Extenion Manager для дополнений к Visual Studio 2010
  • 29. F# Новый язык программирования в Visual Studio 2010
  • 30. Ссылки What’s New in Visual Studio 2010http://msdn.microsoft.com/en-us/library/bb386063(VS.100).aspx Visual Studio on MSDNhttp://msdn.microsoft.com/vstudio Scott Guthrie blog http://weblogs.asp.net/scottgu/
  • 32. Dynamic тип Операции которые содержат выражения типа dynamic are не проверяются компилятором. Компилятор упаковывает информацию об операции и эта информация используется для выполнения операций в run time. dynamic int1 = 1; dynamicex1 = newException("Oops!"); dynamicresult = int1 + ex1;
  • 33. DLR DLR Новая среда выполнения для поддержки динамических типов и динамических языков.
  • 34. DLR DLR набор сервисов для CLR для поддержки динамических типов: Expression Trees. Используются для представления семантики языка Call site caching. Кеширование операций, сбор информации необходимой для выполнения операций Dynamic object interoperability.IDynamicMetaObjectProvider, DynamicMetaObject, DynamicObjectи ExpandoObject
  • 35. DLR Основное применение – интероп и рефлексия. Пример – DynamicXML <nodes> <firstnode> <samplenodevalue="sample value"></samplenode> </firstnode> </nodes> dynamicdynamicXml = newDynamicXml(document); string value = dynamicXml.nodes.firstnode.samplenode.value;
  • 36. Именованные и необязательные параметры в методах staticvoidDoTask(stringtaskName = "sample task", intrepeatCount = 1, objectyetAnotherArg = 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 объекты определять как динамические  и не приводить постоянно получаемые объекты к определенным типам для вызова методов или свойств. excel.Cells[1, 1].Value = "Hello"; // вместо ((Excel.Range)excel.Cells[1, 1]).Value2 = "Hello";
  • 38. Ко- и контравариантность generic  Приведение generic Теперь generic типы можно приводить к базовому и к наследнику (контра- и ковариантность, структуры - инвариантны) IEnumerable<Derived> d = newList<Derived>(); IEnumerable<Base> b = d;  In, Out в generic для обозначения котнра- и ковариантности Func<Object, ArgumentException> func1 = null; // явное приведение не нужно Func<String, Exception> func2 = func1;
  • 39. Типы BigIntergerи Complex BigInteger Неизменяемый тип которые представляет большое целое число чье значение теоретически не имеет пределов Complex Тип для представления комплексных чисел. SortedSet<T> Представляет самобалансирующееся дерево которое поддерживает данные в сортированом виде после вставок, удалений и поиска элементов
  • 40. Новое в VB.NET Auto-Implemented Properties Упрощенный синтаксис для обьявления свойств Public Property Owner As String = "DefaultName" Инициализация коллекций Упрощенный синтаксис для обьявления и наполнения коллекций значениями Public Property Items As New List(Of String) = {“M“, “T“, “W“} Implicit Line Continuation Для продолжения конструкции на следующей строчке нет необходимости использовать подчеркивание
  • 41. In-Process Side-by-Side Execution Позволяет загружать и стартовать несколько версий .netв одном процессе Например приложение для которого написаны плагины как на .net2.0 так и на .net4.0 2.0 add-in 3.0 add-in 3.5 add-in 4.0 add-in 3.5 .NET 4.0 3.0 .NET 2.0 Host Process (i.e. Outlook)
  • 42. Code contracts Новый способ задавать контракты к методу или типу Сценарии использования контрактов: Статическое нахождение багов. Программирование в стиле defenisve programming Создание утверждений для автоматизированых утилит тестирования для улучшения покрытия кода тестами Играет роль документации к коду
  • 43. Code contracts Старый вариант if (item == null) thrownewArgumentNullException("item", "item is null."); Новый вариант Contract.Requires<NullReferenceException>(item != null); Contract.Requires(item.Price>= 0);
  • 44. Managed Extesibility Framework MEF – это механизм, который позволяет минимумом кода внедрить в проекты поддержку расширяемости (например, плагинов)
  • 45. Parallel Computing. Новые типы для синхронизации Thread-safe, scalable collections IProducerConsumerCollection<T> ConcurrentQueue<T> ConcurrentStack<T> ConcurrentBag<T> ConcurrentDictionary<TKey,TValue> Phases and work exchange Barrier BlockingCollection<T> CountdownEvent Partitioning {Orderable}Partitioner<T> Partitioner.Create Exception handling AggregateException Initialization Lazy<T> LazyInitializer.EnsureInitialized<T> ThreadLocal<T> Locks ManualResetEventSlim SemaphoreSlim SpinLock SpinWait Cancellation CancellationToken{Source} ManyCore: http://microoftpdc.com/Sessions/P09-09 (50:00)
  • 46. 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 foreach(var item in data) { work(item); } for (int i = 0; i < n; i++) { work(i); } StatementA(); StatementB; StatementC(); Parallel.ForEach(data, item=> { work(item); }); Parallel.For(0, n, i=> { work(i); }); Parallel.Invoke( () => StatementA(), () => StatementB, () => StatementC()); ManyCore: http://microsoftpdc.com/Sessions/P09-09
  • 47.
  • 48. Реализовано на екстеншн методы к IParallelEnumerable
  • 49. Дополнительные операторы для паралельных операций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 orderbyn.Year ascending select n;
  • 50.
  • 52. System.Threading.Tasks// Последовательно foreach (var item in sourceCollection) { Process(item); } // Паралелльно Parallel.ForEach (sourceCollection, item => Process(item));
  • 53. I/O Файлы спроектированые в память (Memory-Mapped File) Используются для редактирования очень большых файлов и создания разделяемой памяти для межпроцессного взаимодействия Stream.CopyTo Позволяет копировать содержимое одного потока в другой
  • 54. Сборка мусора В .net 4.0 появилась фоновая сборка мусора (background garbage collection) на смену  concurrent garbage collection Обеспечивает улучшенную производительность