WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     || 2 |

Курс "Обзор перспективных технологий Microsoft.NET"

Лекция 1. Microsoft Visual Studio 2005

От 2003 к 2005

В конце 2005го года вышла вторая версия.NET Framework, а вместе с ней и новая, революционная IDE от Microsoft – ее флагманский продукт Microsoft Visual Studio 2005.

В версии 2005го года появилось огромное количество улучшений, которые затронули практически все составляющие продукта. И поэтому, несмотря на то, что курс посвящен перспективным технологиям Microsoft, рассмотреть VS 2005 просто необходимо (тем более, что все эти будущие технологии, существующие в виде beta или CTPрелизов, встраиваются в новую студию). К тому же теперь уже сложно отделить улучшения именно в самой IDE от улучшений в конкретной технологии, так тесно они интегрированы.

На этой лекции мы рассмотрим основные изменения в Microsoft Visual Studio, которые отличают ее от версии 2003го года. Грубо их можно разделить на две основные части – развитие технологий в.NET и в Visual Studio:

Нововведения в языках (aka улучшения CLR) Рефакторинг Улучшения IntelliSense Готовые шаблоны кода (сниппеты) Улучшенная диагностика исключений Улучшения ASP.NET Улучшения Windows Forms Улучшения поддержки мобильных устройств WSE – поддержка новых стандартов вебсервисов Улучшения в Visual Basic и т.д.

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

MSBuild Встроенный вебсервер Team System и Team Foundation Server Развертывание ClickOnce и т.д.

Нововведения в языках Строго говоря, нововведения в языках не являются улучшением 2005го студии, это следствие расширения CLR. Однако студия поддерживает эти улучшения всеми средствами, которые она предоставляет другому коду: такими как автодополнение, Intellisense и т.п.

Итак, в C# версии 2.0 появились:

Обобщения (generics) Частичные классы (partial classes) Анонимные делегаты Улучшения для создания перечислителей И т.д.

Основное улучшение – появление обобщений, некоторого аналога шаблонов С++, которых так не хватало в первой версии. Обобщения позволяют перенести многие проверки со времени исполнения на время компиляции, избежать ненужных операций упаковки и распаковки, уменьшить количества кода. Остальных улучшения мы вкратце коснемся на лекции о C# версии 3.0.

Много улучшений появилось и в VB.NET, чему будет посвящен отдельный раздел.

Улучшения IntelliSense Intellisense теперь работает везде, в частности, в html и xml (с учетом xsdсхемы!), в.aspx и даже в комментариях к коду.

Рефакторинг Свершилось! И до Microsoft наконец дошли популярные идеи рефакторинга, нашедшие свое чуть ли не эталонное воплощение в продукте Intellij Idea компании JetBrains. Visual Studio 2005 теперь тоже умеет производить некоторые виды рефакторингов. Правда сказать, их количество весьма невелико, но среди них есть довольно полезные – например, переименование во всем проекте, создание метода из куска кода или реорганизация параметров функции. Другой недостаток заключается в том, что к этим рефакторингам по умолчанию не привязаны горячие клавиши (что, правда, можно сделать вручную), как это сделано в Idea.

Среди третьесторонних инструментов можно упомянуть продукт той же компании JetBrains под названием ReSharper, который предназначен для работы с C# в Visual Studio и предоставляет гораздо больше видов рефакторинга (но не ограничивается только ими).

Сниппеты Появилась возможность вставлять готовые куски кода (code snippets) из поставляемой библиотечки шаблонов. Эта возможность опятьтаки не нова, и очень удобно сделана в Idea, где можно набрать «волшебное слово», которое раскрывается, скажем, в цикл. То же самое теперь можно сделать и в студии ее «родными» методами: вы можете либо выбрать сниппет из контекстного меню (что, правда, довольно долго – некоторые куски кода быстрее набрать), либо написать волшебное слово (скажем, “ctor”) и нажать два раза клавишу табуляции. Волшебные слова для сниппетов присутствуют также в меню Intellisense среди прочих имен из области видимости (то бишь, в меню, которое появляется по нажатию умолчательного сочетания Ctrl+пробел).



Минусом с точки зрения данного курса, ориентированного, в основном, на C#, является то, что набор сниппетов для этого языка весьма и весьма скудный. Особенно по сравнению с таким набором для VB, который настолько велик, что организован в папочки довольно большой вложенности! Хорошая же новость заключается в том, что набор сниппетов можно расширять с помощью диалога Code Snippets Manager (к сожалению, извечная проблема Microsoft в том, что они так и не научились писать масштабируемые диалоги, поэтому на экранах с большим разрешением работать с этим диалогом – сплошное мучение). В этом диалоге вы можете проимпортировать.snippetфайлы.

.snippetфайлы представляют собой xmlфайлы с разметкой сниппета, в частности, его название, сокращение, код, который он должен породить. Сниппеты можно редактировать прямо в Visual Studio, открыв их обычным способом или с помощью drag and drop. Как и с прочими xmlфайлами, при редактировании сниппета работает Intellisense, позволяющий вставлять теги и атрибуты в соответствие со схемой (ее можно посмотреть, нажав в любом месте кода сниппета Go To Definition). Более подробно про это рассказывается в видео одной из разработчиц Microsoft – (http://www.microsoft.com/downloads/details.aspx?FamilyID=9b1c16ebea4c41ab8898587cf35a394a&displaylang=en, lisa_feigenbaum_code_snippets_2005.wmv; правда, видео в основном про VB). Там же рассказывается и про визуальный инструмент редактирования сниппета.

Стандартные файлы сниппетов для C# можно найти по следующему пути:

\VC#\Snippets\.

Улучшенная диагностика исключений При возникновении исключения новая студия выдает довольно подробное описание вокруг этого исключения: тип исключения, текстовое описание, советы по исправлению ситуации (troubleshooting tips), тут же можно посмотреть объект исключения (view detail), загрузить связанные разделы помощи из MSDN и скопировать текстовое описание в буфер обмена в следующем виде:

System.DivideByZeroException was unhandled Message="Attempted to divide by zero."

Source="ConsoleApplication3" StackTrace:

at ConsoleApplication3.Program.Main(String[] args) in C:\MyApp\Program.cs:line at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args) at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() Подсветка ошибок без компиляции В дополнение к предыдущим пунктам можно добавить подсветку синтаксических ошибок, которая теперь выполняется без компиляции. Конечно, т.к. диагностика не 100% точная, иногда после больших изменений для ее корректности требуется перекомпиляция, но в большинстве случаев ошибки подсвечиваются корректно, что экономит время на компиляции, которую уже не надо запускать, чтобы их обнаружить.

Просмотр значения объекта при выполнении Теперь для изучения значения объекта необязательно вносить его в окно watches. Достаточно навести курсор мыши на вхождение объекта в исходном тексте во время остановки отладки и во всплывшей подсказке вам отобразят значение. В случае если это нескалярный объект (массив, структура, класс) для отображения его полей вам предоставят возможность нажать на пиктограмму раскрытия объекта (плюсик) аналогично подобной операции в окне watches. Очень удобная возможность в случаях, когда вам надо разово просмотреть значение сложного объекта.

Code definition Появилось новое окно Code definition window, в котором вам показывают место в коде, где определяется выбранная в редакторе сущность. Если эта сущность существует только в откомпилированном виде, а не в виде исходников, вам покажут ее определение на основе метаданных (например, если вы выберете тип int).

Приятной связанной возможностью является также кнопка F12 (в раскладке Visual Studio 6.0), которая делает примерно то же самое, только открывает соответствующий исходник. Тем, кто привык к Goto definition из плагина к студии под названием Visual Assist, без этой возможности уже обойтись невозможно.





Расположение окон Пусть тоже мелочь, но тоже приятная. В предыдущих студиях вам было сложно предсказать, что произойдет с dockable окном после того, как вы его отпустите, а также, куда же его надо поместить, чтобы оно расположилось так, как вы этого хотите. В новой Visual Studio вам удобно показывают возможные варианты и куда надо перемещать окно.

Маркировка изменений В редакторах теперь отображаются пометки (line revision marks) для кусков кода, измененных с момента открытия файла. Различаются неизменившиеся куски кода, изменившиеся и сохраненные, и изменившиеся и несохраненные. Это может быть полезно, например, для комментирования ваших изменений при операции checkin.

Сохранение настроек Появилась возможность настраивать продукт для работы со своими настройками, сохраненными на другом компьютере. Это делается с помощью импорта и экспорта настроек, сохраняющего или читающего всевозможные настройки из xmlфайла. Вы можете сохранить практически все, что поддается настройке, начиная от размера и положения окон студии (например, Solution Explorer или Properties) и до собственных установок сочетаний клавиш. Кстати сказать, касаемо раскладки клавиатуры, существует удобная опция (не новая для VS 2005) задавать одну из предустановленных раскладок. Например, автор часто работает в средах Visual Studio 2005, Visual Studio 6.0 и Intellij Idea, поэтому, чтобы не запоминать уникальные для этих инструментов комбинации, выбрал общий знаменатель – раскладку студии версии 6.0, с ее привычной клавишей F7 для сборки программы вместо безумного умолчательного сочетания CtrlShiftB.

Help Улучшена система помощи. Теперь поиск вынесен на отдельную страницу, и в нем можно искать как по локальной БД, так и на сайте Microsoft и аффилированных сайтах.

По умолчанию MSDN теперь открывается в отдельном окне.

Улучшения ASP.NET Т.к. ASP.NET – самая передовая и востребованная технология среди всех.NETтехнологий (почему так, обычно обсуждается на вводном курсе по.NET), она подверглась серьезным изменениям и улучшениям. Этой технологии (вернее, различиям второй и первой версий) можно даже посвятить отдельную лекцию на усмотрение лектора. В рамках текущей лекции рассмотрим наиболее важные улучшения с точки зрения среды разработки. Более подробно про ASP.NET 2.0 можно прочитать в отличной книге небезызвестного Дино Эспозито «Знакомство с Microsoft ASP.NET 2.0», вышедшей недавно на русском языке.

Самым, наверное, экстремально полезным улучшением стало появление встроенного в IDE вебсервера. На самом деле, это измененная версия известного бесплатного ASP.NETсовместимого вебсервера Cassini. С помощью этого вебсервера вы можете отлаживать ваше ASP.NETприложение на компьютере без установленного IIS. Конечно, далеко не все особенности приложения можно отладить на встроенном вебсервере. Например, вы не сможете использовать его для посылки почты, или для проверки вопросов, связанных с безопасностью. Однако львиную долю отладки теперь можно провести без IIS.

В IDE также включен инструмент редактирования конфигурационных файлов ASP.NET, благодаря которому можно забыть о ручном редактировании xml, чреватом частыми ошибками. Но даже если вы решите это сделать, то Visual Studio и тут вам поможет (если вы будете редактировать в ней, а не в вашем любимом текстовом редакторе). Intellisense везде – одна из главных особенностей VS 2005, в частности, это касается html и xml, где вам всегда покажут набор доступных тэгов и атрибутов, предоставят возможность автозавершения и подсветят синтаксис. Intellisense работает даже в элементах связывания данных! С помощью новой студии вы также можете полностью скопировать ваш вебсайт в другое место, как локальное, так и удаленное.

Очевидным изменением в IDE является также поддержка в дизайнере вебформ всех новопоявившихся элементов управления (а их появилось несколько десятков!), просмотра и редактирования эталонных страниц (masterpages) и т.п.

Pages:     || 2 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.