![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| stab |
|
||||||||||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
Для тех кто не знает, Whidbey -- это следующая версия MS Visual Studio .NET. Не секрет, что Microsoft постоянно совершенствует VS, но на этот раз усовершенствования просто ошеломляют. Вот неполный список того, что появиться в Whidbey:
Язык 1. Обобщения (Generics). Аналог шаблонов C++. Пример описания:
Использование:
2. Неполные типы (Partial Types). Позволяют разделить описание\реализацию класса на несколько файлов. Особенно это полезно для самой VS, теперь код сгенерированный дизайнером форм будет в отдельном файле, а код написанный пользователем в другом.
3. Анонимные методы (Anonymous Methods). Т.е. методы без имени. На первый взгляд, бесполезная вещь, но если вспомнить о событиях...
Заметьте, что нет описания параметров, ненужные (неиспользуемые) параметры можно не описывать, а если они требуются, то:
Тип, возвращаемый методом, не указывается, т.к. компилятор сам определяет его. 4. Итераторы (Iterators). Упрощают создание коллекций, элементы которых могут перебираться в foreach. Раньше приходилось реализовывать IEnumerable и IEnumerator в отдельном классе. Теперь же все выглядит так:
Такие прелести позволяет делать новое ключевое слово yield, его можно использовать только в методах возвращающих IEnumerator, IEnumerable или их обобщенные эквиваленты (Generics). 5. Указатель обращения к глобальным пространствам имен (Global Namespace Qualifier). Проще говоря два двоеточия, т.е. :: , которые призваны решить следующую проблему:
На строчке кода, помеченной в комментариях тремя звездочками, будет выдана ошибка, т.к. было определено новое пространство имен с именем System вложенное в пространство Acme, естественно там нет свойства Console. Решается проблема следующим образом:
Таким образом обращение происходит от корня иерархии пространств имен. 6. Статические классы (Static Classes). Делают реализацию статических классов более красивой. Статический класс -- это класс объекты, которого не могут быть созданны, по сути, это контейнер для статических методов. Ранее у таких классов, просто, прятался конструктор с помощью модификатора private, теперь же мы можем честно написать: public static sealed class MyClass1. 7. Выключение\включение предупреждений (Inline Warning Control). В новой версии можно выключить\включить отображение предупреждений для конкретной части кода.
IDE 1. Рефакторинг. В меню добавленны команды для рефакторинга кода, среди команд: Rename -- быстрое изменение имени переменной (возможно и метода, параметра, т.д.). Во всех местах кода, где есть ссылки на переменную ее имя изменяется, и что удивительно, даже в комментариях. Extract Method -- нет описания Encapsulate Field -- нет описания Extract Interface -- нет описания Change Method Signature -- нет описания Похоже, что все команды перед выполнением работы по изменению кода выводят окно с предварительным просмотром изменений, где можно отменить все или некоторые из них. 2. Шаблоны кода (Expansions). Позволяют ускорить написание стандартных языковых конструкций. Например, шаблон forr организует обратный цикл, вам требуется только указать имя переменной цикла и ее начальное значение. В редакторе кода места для заполнения подсвечиваются желтым. Есть возможность создания собственных шаблонов путем редактирования файлов XML. 3. Более детальная настройка форматирования кода редактором с предпросмотром. Настраиваются скобки, пробелы, отступы, переносы и выравнивание. 4. Возможность импорта\экспорта всех настроек IDE. Теперь после переустановке или при переезде на другой компьютер не надо настраивать все заново. 5. Усовершенствована технология IntelliSense, т.е. тот самый выпадающий список имен методов, переменных и т.д., который так упрощает нам жизнь. Теперь нам автоматически показывается список атрибутов если набрать "[", список исключений если набрать "catch(", т.д. 6. Подсветка в исходном коде типов определенных пользователем. 7. Слежение за изменениями кода. Вот это, просто, супер фича! В редакторе кода слева в вертикальном направлении идет полоса шириной в несколько пикселей. Возле сохраненого кода она окрашена в зеленый цвет, а вдоль не сохраненого в желтый. Теперь при беглом взгляде можно легко идентифицировать изменения внесенные в код с момента последнего сохранения. Будет очень удобно при отладке! Дизайнер форм 1. Новый компонент Winbar, позволяет легко создавать панели инструментов со следующими типами кнопок\элементами управления: * Обычная кнопка. * Выпадающий список. * Кнопка с выпадающим списком. Можно нажать саму кнопку или на стрелочку справа, тогда появиться меню. (Кнопки "Вперед", "Назад" в IE) * Подпись. * Разделитель. * Кнопка-выпадающий список. При нажатии на кнопку появляется меню. (Кнопка "Почта" в IE) * Обычный пункт меню. * Строка ввода. 2. При перетаскивании компонентов по форме отображаются линии выравнивания, что упрощает выравнивание. В редакторах векторной графики это обычно называется выравнивание по объектам (Snap to Objects). Отладка 1. Улучшена технология DataTips. Во время отладки при наведении курсора мыши на переменную объектного типа показывается всплывающая подсказка с информацией о значениях свойтв объекта, если какое-либо из свойств является объектом, то при наведении на него показывается еще одна подсказка с информацией о свойствах уже этого объекта. 2. Очень интересная возможность выполнения кода без запуска программы (!). Делается это с помощью окошка Immediate, например, у нас есть метод Add, который складывает два числа, в окошке Immediate пишем Add(1, 2) и там же получаем ответ 3. Рулез! Для любопытствующих ссылка на более детальное изложение на англицком: http://msdn.microsoft.com/vcsharp/default....arp_preview.asp з.ы. Надеюсь мой, местами вольный, перевод, адекватно отражает суть оригинального текста. -------------------- 6, 6, 6 - the number of the beast. |
||||||||||||||||||
|
|||||||||||||||||||
| foRaver |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 561 Регистрация: 6.7.2003 Где: Düsseldorf Репутация: 1 Всего: 3 |
® computerra.ru
Гольф в графстве Айлэнд Microsoft не перестает меня удивлять. Казалось бы, что нового можно предложить в среде программирования? Устранить ошибки (а заодно добавить новые) да внести некоторые количественные изменения - дополнительные компоненты и опции. Однако в новой версии Visual Studio "Whidbey", финальный релиз которой обещается в начале 2005 года, шаги вперед, пусть и не семимильные, но все-таки заметные, сделаны сразу по нескольким направлениям. IDE Начнем с "великолепной семерки" - семерки изменений, без которых мы вроде бы жили и раньше, но которые действительно облегчают жизнь. 1) Расширители кода (expansion, см. рис.). Как показывает практика, до 75% кода программы - это такие простые конструкции, как условия, циклы, классы и тому подобная элементарщина. Дабы не набирать этот, почти очевидный, код вручную, IDE предоставит вам возможность одним нажатием вставить весь модуль. Естественно, вы можете сделать свои или настроить существующие расширители - благо они написаны на XML. ![]() 2) Смарт-теги. Кому-то может показаться, что это излишество, но смею заверить, что излишество весьма и весьма полезное. Например, при ошибочном наборе ключевых слов вам, как в "Ворде" при проверке орфографии, будет предложен список возможных значений (см. рис.). ![]() 3) Технология intelliSense подверглась доработке. Она позволяет автоматически завершить написание оператора, свойства или функции; то есть когда вы начинаете писать команду или параметр, в окне предлагаются возможные варианты, и вам остается только подтвердить один из них, нажав Enter. Появилась поддержка шаблонов и средства формирования списка из доступных значений при добавлении блоков try/catch (см. рис.). ![]() 4) Шаблоны кода (code snippets, см. рис.) По сути, это обычные куски кода, которые раньше хранились в разрозненных файлах или, того хуже, в голове. Теперь все это хозяйство помещается в единое хранилище, откуда извлекается парой кликов. ![]() 5) Возможность вычисления выражений непосредственно при редактировании, без компиляции, причем с проверкой синтаксиса и выводом рекомендаций (см. рис.) ![]() 6) Визуальный рефакторинг. Звучит страшновато, но задействуется легко и в работе очень удобен. При программировании даже простейшей задачи первоначальный код размером со страничку имеет свойство распухать до вселенских масштабов. Рыться в простыне исходников длиной в несколько метров, разумеется, не составляет никакого удовольствия. Решение очевидно - разбить задачу на более мелкие и их код вынести в отдельные процедуры, функции, методы или целые классы. Безусловно, все это можно сделать и ручками, но именно лень, как известно, двигатель прогресса. И теперь наша лень формализовалась в специальном меню, где парой кликов нужный фрагмент превращается в отдельный кусок (рис. 6). В принципе рефакторинг был доступен и раньше - в виде подключаемых модулей, но порой эти надстройки не работали вообще или работали некорректно. ![]() Теперь рефакторинг стал неотъемлемой частью IDE, так что такие нудные операции, как переименование переменной, класса или объекта, выполняются автоматически. Причем в окошке Preview Changes вы увидите те строки кода, в которые будут внесены изменения. Какие из инструментов рефакторинга войдут в финальную версию продукта, пока не ясно, но в существующей на момент написания статьи демо-версии уже имелись следующие:
Безусловно, эти новшества можно считать косметическими, но их появление заслуживает добрых слов. Помимо них есть и другие маленькие радости: IDE научилась автоматически сохранять результаты работы через заданные промежутки времени. Естественно, с предоставлением возможности восстановления при фатальном сбое, что при программировании и отладке более вероятно, чем при банальном наборе. Наконец, модифицирована подсистема поиска (окошко Find and Replace), которая теперь позволяет выполнять поиск в свернутом тексте (так называемый #region). Не остался без внимания и отладчик. Если раньше всплывающая подсказка была активна только для простых (не составных) переменных, то теперь она имеет место и в более сложных случаях: достаточно навести курсор и можно увидеть специальную подсказку (DataTips), демонстрирующую не только значения переменной, но и всю иерархию типа (рис. 7). Следуя современным тенденциям (читай - большим мониторам), появились инструменты для управления все большим числом dock-окошек. Если раньше они скакали, как заправские акробаты, то теперь можно предварительно посмотреть, куда же окно прицепится. ![]() Framework Присвоят ли новой версии Framework полновесную двойку или обойдутся цифирями 1.2, не столь важно, но то, что нововведения здесь действительно значимы, - факт неоспоримый:
В билдер (компонент, отвечающий за сборку проекта) добавлена система, названная MSBuild, которая понимает описания проекта в XML и способна выполнять все действия поэтапно в автоматическом режиме. Разумеется, у разработчика есть средства для модификации базового сценария, который может выглядеть примерно следующим образом:
Конечно, в Редмонде не могли забыть и сопутствующий продукт - MS Office, который ныне является не только офисным пакетом, но и целой платформой (да простят меня профессионалы за столь вольное сравнение). Нельзя сказать, что появление Visual Studio Tools для MS Office System (VSTO) произвело фурор, однако вынесение его в отдельный продукт говорит о самостоятельности этого инструмента разработки. Автономный продукт, несомненно, удобнее, особенно для неанглоязычных офисных разработчиков. Ведь до недавних пор разработка собственных приложений требовала локализованной версии Office, и это помимо Office Developer, включавшего все офисные приложения и выходившего только на английском языке. К тому же полученные приложения могли не работать при иной локализации. Теперь эти проблемы должны остаться позади. Если мы заглянем во внутренности VSTO, то увидим, что механизм автоматизации и среда разработки самого Office 2003, как и прежде, базируются на традиционных механизмах VBA и COM. А вот VSTO позволяет создавать DLL-расширения для того же "Ворда" прямо в среде .NET Framework на языках VB.NET или C#. Это сообщение отредактировал(а) foRaver - 8.6.2004, 02:41 |
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: нет Всего: 57 |
Вот что не нравится в whidbey: cовершенно дегенеративно сделана работа с консолью - теперь это смесь нормальной консоли и toolwindow в IDE.
|
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
На счет консоли это точно
Добавлено @ 16:38 хотя... может быть, если привыкнуть, то будет удобно... Добавлено @ 16:40 кстати, это в опциях отключить можно: Debugging->General->Use Console Window -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| Fallout |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 5.12.2004 Репутация: нет Всего: нет |
Просто супер! Я в шоке!
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |