Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Whidbey, На правах новостей :) 
:(
    Опции темы
stab
Дата 10.3.2004, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



Для тех кто не знает, Whidbey -- это следующая версия MS Visual Studio .NET. Не секрет, что Microsoft постоянно совершенствует VS, но на этот раз усовершенствования просто ошеломляют. Вот неполный список того, что появиться в Whidbey:

Язык

1. Обобщения (Generics).
Аналог шаблонов C++. Пример описания:
Код

public class Stack<ItemType>
{
 private ItemType[ ] items;
 public void Push(ItemType data) {...}
 public ItemType Pop() {...}
}

Использование:
Код

 Stack<int> stack = new Stack<int>();
 stack.Push(3);
 int x = stack.Pop();


2. Неполные типы (Partial Types).
Позволяют разделить описание\реализацию класса на несколько файлов. Особенно это полезно для самой VS, теперь код сгенерированный дизайнером форм будет в отдельном файле, а код написанный пользователем в другом.
Код

// Form1Designer.cs
public partial class Form1: System.Windows.Forms.Form
{
 // Designer code
 void InitializeComponent() { … }
}

// Form1User.cs
public partial class Form1
{
 // user code
 void Mouse_Click(object sender, MouseEventArgs e) { … }
}


3. Анонимные методы (Anonymous Methods).
Т.е. методы без имени. На первый взгляд, бесполезная вещь, но если вспомнить о событиях... smile.gif
Код

button1.Click += delegate { MessageBox.Show("Click"); };

Заметьте, что нет описания параметров, ненужные (неиспользуемые) параметры можно не описывать, а если они требуются, то:
Код

button1.Click += delegate(object sender, EventArgs e)
   { MessageBox.Show(sender.ToString()); };

Тип, возвращаемый методом, не указывается, т.к. компилятор сам определяет его.

4. Итераторы (Iterators).
Упрощают создание коллекций, элементы которых могут перебираться в foreach. Раньше приходилось реализовывать IEnumerable и IEnumerator в отдельном классе. Теперь же все выглядит так:
Код

class List<T>: IEnumerable<T>
{
 private T[] elements;
 public IEnumerator<T> GetEnumerator()
 {
   foreach (T element in elements)
   {
     yield element;
   }
 }

 public IEnumerable<T> Range(int from, int to)
 {
   while (from < to) yield elements[from++];
 }

}

Такие прелести позволяет делать новое ключевое слово yield, его можно использовать только в методах возвращающих IEnumerator, IEnumerable или их обобщенные эквиваленты (Generics).

5. Указатель обращения к глобальным пространствам имен (Global Namespace Qualifier).
Проще говоря два двоеточия, т.е. :: , которые призваны решить следующую проблему:
Код

using System;

namespace Acme
{
 namespace System
 {
   class Example
   {
     static void Main()
     {
       System.Console.WriteLine("Hello"); // ***
     }
   }
 }
}

На строчке кода, помеченной в комментариях тремя звездочками, будет выдана ошибка, т.к. было определено новое пространство имен с именем System вложенное в пространство Acme, естественно там нет свойства Console. Решается проблема следующим образом:
Код

using System;

namespace Acme
{
 namespace System
 {
   class Example
   {
     static void Main()
     {
       ::System.Console.WriteLine("Hello");
     }
   }
 }
}

Таким образом обращение происходит от корня иерархии пространств имен.

6. Статические классы (Static Classes).
Делают реализацию статических классов более красивой. Статический класс -- это класс объекты, которого не могут быть созданны, по сути, это контейнер для статических методов. Ранее у таких классов, просто, прятался конструктор с помощью модификатора private, теперь же мы можем честно написать: public static sealed class MyClass1.

7. Выключение\включение предупреждений (Inline Warning Control).
В новой версии можно выключить\включить отображение предупреждений для конкретной части кода.
Код

#pragma warning disable 135
 // Disable warning CS135 in this block
 // Some code goes here
#pragma warning restore 135


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. Рулез! smile.gif Других слов, просто, нет.

Для любопытствующих ссылка на более детальное изложение на англицком: http://msdn.microsoft.com/vcsharp/default....arp_preview.asp

з.ы. Надеюсь мой, местами вольный, перевод, адекватно отражает суть оригинального текста.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
foRaver
Дата 8.6.2004, 02:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 561
Регистрация: 6.7.2003
Где: Düsseldorf

Репутация: 1
Всего: 3



® computerra.ru

Цитата
WHIDBEY
Небольшой остров северо-западнее Вашингтона, входящий в графство Айлэнд (Island county). Один из крупнейших офшоров в США. Назван в честь штурмана Джозефа Уидби (Joseph Whidbey).


Гольф в графстве Айлэнд

Microsoft не перестает меня удивлять. Казалось бы, что нового можно предложить в среде программирования? Устранить ошибки (а заодно добавить новые) да внести некоторые количественные изменения - дополнительные компоненты и опции. Однако в новой версии Visual Studio "Whidbey", финальный релиз которой обещается в начале 2005 года, шаги вперед, пусть и не семимильные, но все-таки заметные, сделаны сразу по нескольким направлениям.

IDE

Начнем с "великолепной семерки" - семерки изменений, без которых мы вроде бы жили и раньше, но которые действительно облегчают жизнь.

1) Расширители кода (expansion, см. рис.). Как показывает практика, до 75% кода программы - это такие простые конструкции, как условия, циклы, классы и тому подобная элементарщина. Дабы не набирать этот, почти очевидный, код вручную, IDE предоставит вам возможность одним нажатием вставить весь модуль. Естественно, вы можете сделать свои или настроить существующие расширители - благо они написаны на XML.

user posted image

2) Смарт-теги.

Кому-то может показаться, что это излишество, но смею заверить, что излишество весьма и весьма полезное. Например, при ошибочном наборе ключевых слов вам, как в "Ворде" при проверке орфографии, будет предложен список возможных значений (см. рис.).

user posted image

3) Технология intelliSense подверглась доработке. Она позволяет автоматически завершить написание оператора, свойства или функции; то есть когда вы начинаете писать команду или параметр, в окне предлагаются возможные варианты, и вам остается только подтвердить один из них, нажав Enter. Появилась поддержка шаблонов и средства формирования списка из доступных значений при добавлении блоков try/catch (см. рис.).

user posted image

4) Шаблоны кода (code snippets, см. рис.) По сути, это обычные куски кода, которые раньше хранились в разрозненных файлах или, того хуже, в голове. Теперь все это хозяйство помещается в единое хранилище, откуда извлекается парой кликов.

user posted image

5) Возможность вычисления выражений непосредственно при редактировании, без компиляции, причем с проверкой синтаксиса и выводом рекомендаций (см. рис.)

user posted image

6) Визуальный рефакторинг. Звучит страшновато, но задействуется легко и в работе очень удобен. При программировании даже простейшей задачи первоначальный код размером со страничку имеет свойство распухать до вселенских масштабов. Рыться в простыне исходников длиной в несколько метров, разумеется, не составляет никакого удовольствия. Решение очевидно - разбить задачу на более мелкие и их код вынести в отдельные процедуры, функции, методы или целые классы. Безусловно, все это можно сделать и ручками, но именно лень, как известно, двигатель прогресса. И теперь наша лень формализовалась в специальном меню, где парой кликов нужный фрагмент превращается в отдельный кусок (рис. 6). В принципе рефакторинг был доступен и раньше - в виде подключаемых модулей, но порой эти надстройки не работали вообще или работали некорректно.

user posted image

Теперь рефакторинг стал неотъемлемой частью IDE, так что такие нудные операции, как переименование переменной, класса или объекта, выполняются автоматически. Причем в окошке Preview Changes вы увидите те строки кода, в которые будут внесены изменения. Какие из инструментов рефакторинга войдут в финальную версию продукта, пока не ясно, но в существующей на момент написания статьи демо-версии уже имелись следующие:
  • выделение интерфейса, наследования и метода;
  • изменение сигнатуры метода;
  • инкапсуляция поля;
  • переименование классов, функций, переменных;
  • добавление и/или изменение порядка следования параметров в функциях;
  • замена ArrayList.
7) Раскраска типов и ключевых слов. Теперь текст программы может сиять, как рождественская елка, достаточно настроить раскраску пользовательских типов и ключевых слов.

Безусловно, эти новшества можно считать косметическими, но их появление заслуживает добрых слов. Помимо них есть и другие маленькие радости: IDE научилась автоматически сохранять результаты работы через заданные промежутки времени. Естественно, с предоставлением возможности восстановления при фатальном сбое, что при программировании и отладке более вероятно, чем при банальном наборе. Наконец, модифицирована подсистема поиска (окошко Find and Replace), которая теперь позволяет выполнять поиск в свернутом тексте (так называемый #region). Не остался без внимания и отладчик. Если раньше всплывающая подсказка была активна только для простых (не составных) переменных, то теперь она имеет место и в более сложных случаях: достаточно навести курсор и можно увидеть специальную подсказку (DataTips), демонстрирующую не только значения переменной, но и всю иерархию типа (рис. 7). Следуя современным тенденциям (читай - большим мониторам), появились инструменты для управления все большим числом dock-окошек. Если раньше они скакали, как заправские акробаты, то теперь можно предварительно посмотреть, куда же окно прицепится.

user posted image

Framework

Присвоят ли новой версии Framework полновесную двойку или обойдутся цифирями 1.2, не столь важно, но то, что нововведения здесь действительно значимы, - факт неоспоримый:
  • добавлена поддержка 64-разрядных процессоров от Intel и AMD;
  • повышена производительность практически всех операций и подмодулей;
  • появился новый набор инструментов (кодовое название Whitehorse), ориентированный на быструю разработку приложений на базе веб-сервисов;
  • расширены функции разработки клиентских и мобильных приложений; для создания последних существенно модифицирована .NET Compact Framework, поддерживающая Windows CE 4.2 и Pocket PC;
  • включены новые инструменты разработки ASP-приложений (более сорока компонентов) и доступа к базам данных.
Вместе с формой изменилось и содержание - в том смысле, что изменились и сами языки программирования (я приведу лишь список изменений, подробнее читайте на сайте MSDN):
  • шаблоны (не путать с шаблонами кода);
  • фрагментированные типы;
  • анонимные методы;
  • итераторы;
  • квалификаторы глобального пространства имен;
  • статические классы;
  • новая обертка у VB для доступа к классам.
MSBuild

В билдер (компонент, отвечающий за сборку проекта) добавлена система, названная MSBuild, которая понимает описания проекта в XML и способна выполнять все действия поэтапно в автоматическом режиме. Разумеется, у разработчика есть средства для модификации базового сценария, который может выглядеть примерно следующим образом:
  • извлечь последние версии исходных текстов из хранилища SourceSafe;
  • собрать проект;
  • прогнать тесты;
  • разослать по электронной почте отчет с результатами сборки и тестирования всем участникам проекта.
Microsoft Office Solution Development

Конечно, в Редмонде не могли забыть и сопутствующий продукт - 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
PM MAIL WWW ICQ YIM   Вверх
December
Дата 15.10.2004, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: нет
Всего: 57



Вот что не нравится в whidbey: cовершенно дегенеративно сделана работа с консолью - теперь это смесь нормальной консоли и toolwindow в IDE.



--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
stab
Дата 17.10.2004, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



На счет консоли это точно :( Я сначала вообще ни как понять не мог где же консоль под отладкой :)
Добавлено @ 16:38
хотя... может быть, если привыкнуть, то будет удобно...
Добавлено @ 16:40
кстати, это в опциях отключить можно: Debugging->General->Use Console Window


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Fallout
Дата 7.12.2004, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.12.2004

Репутация: нет
Всего: нет



Просто супер! Я в шоке!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0482 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.