Блог Скотта Гатри (перевод)

  • Улучшения Intellisense в VS 2010 (из серии статей про VS 2010 и .NET 4.0)

    Это десятая из серии статей, в которых я пишу о готовящихся к выходу VS 2010 и .NET 4.

    Сегодня я расскажу о некоторых небольших, но очень приятных улучшениях в работе intellisense в VS 2010, а именно об улучшенной фильтрации названий типов/методов/свойств для автозавершения. Это позволит вам проще находить и использовать различные API по мере написания кода.

    Intellisense в VS 2008

    Чтобы помочь продемонстрировать вам улучшения в intellisense, сделанные в VS 2010, давайте начнем с простого сценария в VS 2008, где мы хотим написать какой-то код для возможности редактирования данных с использованием элемента управления GridView.

    Мы могли бы начать с ввода “GridView1.Edit”, чтобы появилось окно intellisense, где мы просмотрели бы доступные для этого элемента методы и свойства, связанные с редактированием (edit). Если проделать это в VS 2008, то появится окно intellisense, в котором курсор переместится на к членам GridView, чьи названия начинаются со слова “Edit”:

    Это здорово в том случае, если название метода/свойства/события, с которым мы хотим работать, начинается со слова “Edit”, но это не особо поможет нам, если оно начинается с чего-либо другого (например, событие “RowEditing” или вспомогательный метод “SetEditRow()”). Нам придется либо вручную прокрутить список вверх или вниз в поиске других элементов, либо вообще воспользоваться для поиска обозревателем объектов или справочной системой.

    Intellisense в VS 2010

    Теперь опробуем тот же самый сценарий в VS 2010. Здесь, когда мы напечатаем “GridView1.Edit”, то в окне intellisense, увидим, что по умолчанию все так же выбирается свойство EditIndex. Однако, на этот раз мы увидим отфильтрованный список методов/свойств/событий, в чьих названиях слово “Edit” встречается в любом месте:

    За счет этого вы можете быстро увидеть все связанные с редактированием методы/свойства/события и быстрее найти то, что вам нужно.

    Поиск по ключевым словам

    Новый механизм фильтрации intellisense в VS 2010 может оказаться полезным для поиска любого метода/свойства/события, независимо от того, с какого слова начинается их название. К примеру, если вы хотите включить возможность вывода данных grid'а на несколько страниц, но не помните точно, как это делается, вы можете просто набрать “GridView1.Paging”, и в окне intellisence автоматически будут выведены лишь те названия, в которые входит слово “paging”. Обратите внимание, что у класса GridView на самом деле нет ни одного члена, чье название начиналось бы со слова “Paging”, но, тем не менее, я смог найти два члена, относящиеся к выводу информации на нескольких страницах:

    Поиск типов

    Новый механизм фильтрации intellisense в VS 2010 также может оказаться полезным для быстрого поиска классов и типов. Например, когда мы печатаем “List” для объявления переменной, редактор кода предлагает нам список типов и классов, автоматически отфильтрованный по наличию слова “List” где-либо в их названии (включая IList<> и SortedList<>, которые не начинаются с List):

    За счет этого вы сможете намного проще находить названия типов, которые помните не полностью, без необходимости прибегать к их поиску в обозревателе объектов и/или справочной системе.

    Поддержка “PascalCase” в Intellisense

    Названия типов/методов/свойств в .NET Framework используют соглашение под названием “PascalCase” – это значит, что первая буква каждого слова в них делается заглавной (например, PageIndexChanged).

    Механизм фильтрации intellisense в VS 2010 теперь позволяет воспользоваться этим обстоятельством для быстрого поиска и фильтрации названий типов и членов по шаблону их имен, определяемому “PascalCase”. Например, если вы напечатаете “GridView1.PIC”, то VS 2010 покажет вам не только члены GridView, в чьих именах встречается PIC, но и те, в чьих названиях слова, выделенные в соответствии с “PascalCase”, начинаются с этих букв в указанной последовательности:

    Обратите внимание, как на рисунке выше напечатанное “PIC” привело к появлению в списке выбора “PageIndexChanged” и “PageIndexChanging”. Таким образом, вы можете сэкономить несколько нажатий клавиш при поиске нужных типов или методов/свойств/событий.

    Резюме

    Думаю, вы согласитесь, что новый подход к фильтрации списка имен в intellisense, используемый в VS 2010, намного упрощает при написании вашего кода поиск и использование классов и их членов. Вы можете воспользоваться преимуществами нового механизма фильтрации intellisense и в VB, и в C#.

    Надеюсь, вы нашли для себя что-то полезное,

    Скотт

    P.S. В последнее время я чаще использую Twitter, чтобы рассказывать о предстоящих планах и публиковать ссылки на интересные ресурсы. Вы можете следить за моими публикациями на Twitter по адресу: http://www.twitter.com/scottgu (@scottgu это мой ник на Twitter)

    оригинал статьи

  • Возможности поиска и навигации по коду в VS 2010 (из серии статей про VS 2010 и .NET 4.0)

    Возможности поиска и навигации по коду в VS 2010 (из серии статей про VS 2010 и .NET 4.0)

    Это девятая из серии статей, в которых я пишу о готовящихся к выходу VS 2010 и .NET 4. Сегодня я расскажу о некоторых новых возможностях поиска и навигации по коду, которые теперь встроены в VS 2010.

    Поиск и навигация по коду

    Разработчикам нужно иметь возможности легкой навигации, поиска и понимания того кода, над которым они работают. В ходе исследований, которые мы провели, выяснилось, что разработчики обычно проводят больше времени читая код, проводя его обзоры и ища в нем что-либо, нежели они тратят на собственно написание нового кода.

    В редакторе кода в VS 2010 появилось несколько приятных новых возможностей, которые сделают ваш поиск и навигацию по коду более продуктивными и позволят легче понимать, как тот или иной код используется в разрабатываемом программном решении.

    Поиск и навигация по исходному коду ASP.NET MVC

    В этот статье я для примера буду использовать исходный код ASP.NET MVC (насчитывающий многие тысячи строк кода), чтобы продемонстрировать некоторые из новых возможностей VS 2010 по поиску и навигации. Если у вас установлена 2-я бета VS 2010, вы сможете воспроизвести описываемые действия, загрузив исходный кода ASP.NET MVC отсюда.

    Вы заметите, что описываемые ниже возможности весьма работают по-настоящему быстро с этим проектом, несмотря на то, что он содержит тысячи и тысячи строк кода. Все возможности, которые я продемонстрирую, теперь встроены в VS 2010 и работают со всеми типами проектов как на VB, так и на C#.

    Поддержка “Navigate To” в VS 2010

    Иметь возможность быстрого поиска и навигации по коду одинаково важна как для больших, так и для маленьких проектов.

    Visual Studio 2010 теперь поддерживает новую комбинацию клавиш Ctrl+, (т.е. нужно одновременно нажать Ctrl и запятую). При ее нажатии появится диалоговое окно “Navigate To”, позволяющий быстро найти типы, файлы, переменные, а также методы и свойства в вашем решении (solution) и затем перейти к ним и открыть в редакторе кода:

    Диалог “Navigate To” предоставляет интерфейс для быстрого инкрементного поиска, результаты которого немедленно появляются под полем ввода по мере того, как вы вводите поисковый запрос. К примеру, напечатайте “cont” (не нажимая в конце enter) - и вы увидите, как в списке результатов поиска сразу же появится 176 результатов:

    Введите еще несколько символов - и вы увидите, что список результатов автоматически использует их для фильтрации, оставляя лишь те результаты, которые соответствуют введенной строке “controller”:

    Вы можете использовать полосу прокрутки, чтобы просмотреть результаты, либо нажать tab и использовать клавиши стрелок, если не хотите убирать руки с клавиатуры. Вы заметите, что в окне “Navigate To” выводятся результаты любых типов, удовлетворяющие поисковому запросу, включая названия типов, свойств, методов, объявления полей и названия файлов:

    Выбор любого из результатов поиска привет к тому, что в редакторе кода VS 2010 откроется соответствующий файл (если он еще не открыт), курсор переместится к соответствующей позиции в файле, а найденный идентификатор будет подсвечен:

    Приятные возможности нечеткого поиска

    Поле ввода в окне “Navigate To” поддерживает некоторые возможности “нечеткого поиска” (fuzzy search), которые позволят вам эффективно осуществлять поиск даже тогда, когда вы не знаете точно название того, что ищете. Эти возможности хорошо сочетаются с интерфейсом инкрементного/немедленного поиска в этом окне и позволяют вам уточнять поисковый запросы и сразу же видеть новые результаты по мере того, как вы печатаете.

    Чтобы опробовать это на примере, давайте для начала поищем по слову “cache”. Обратите внимание, что результаты поиска включают не только названия, начинающиеся со слова “cache”, но также и другие, в названии которых это слово просто где-либо встречается:

    Для дальнейшей фильтрации результатов мы можем добавить еще несколько слов в поисковый запрос. Например, ниже я отфильтровал результаты так, чтобы в названиях встречались слова “cache” и “action”:

    Названия типов/методов/свойств в .NET Framework используют соглашение под названием “PascalCase” – это значит, что первая буква каждого слова в них делается заглавной. В диалоге “Navigate To” вы можете воспользоваться этим обстоятельством для быстрой фильтрации типов: просто наберите аббревиатуру для слов, входящих в название, - и сразу же увидите результаты поиска, соответствующие этой аббревиатуре с учетом указанного соглашения об именовании.

    Например, введя “AMS”, вы получите показанные ниже результаты поиска (лишь те названия типов/методов/свойств, в которых встречаются слова, начинающиеся сначала с A, затем с M, затем с S):

    Таким образом, окно “Navigate To” позволяет вам быстро искать код и переходить к нему, используя лишь несколько нажатий клавиш, так что вам уже не понадобится браться за мышь, открывать окно solution explorer и щелкать по нужному файлу.

    Просмотр иерархии вызовов

    Возможность быстрого поиска и навигации по коду - это здорово, но возможность в дополнение к этому быстро узнать, как используется тот или иной код, - это еще лучше. В VS 2010 появилась новая функциональность “View Call Hierarchy” (просмотр иерархии вызовов), позволяющая быстро узнать, где в вашем исходном коде используется определенный метод или свойство, а также позволяющая быстро пройтись по графу дерева вызовов в рамках вашего исходного кода (без необходимости запускать или отлаживать разрабатываемое решение).

    Чтобы воспользоваться этой возможностью, просто выберите название метода или свойства в вашем исходном коде и либо нажмите комбинацию клавиш Ctrl+K,Ctrl+T, либо щелкните правой кнопкой мыши и выберите из контекстного меню пункт “View Call Hierarchy”:

    В результате появится вспомогательное окно “Call Hierarchy”, которое по умолчанию располагается под редактором кода. На рисунке ниже вы видите, как в окне “Call Hierarchy” отображаются два метода, которые в рамках нашего решения (solution) вызывают выбранный ранее метод ViewPage.RenderView().

    При желании мы можем перейти вниз по иерархии вызовов к первому методу “RenderViewAndRestoreContentType” и посмотреть, кто, в свою очередь, вызывает его:

    Для виртуальных методов/свойств вы также можете использовать окно иерархии вызовов, чтобы узнать, в каких классах-наследниках они перегружаются.

    При двойном щелчке мышью по любому методу/свойству в окне “Call Hierarchy” в редакторе кода откроется соответствующий файл с исходным кодом, и текущая позиция в файле установится на нужной строке:

    Таким образом, в ходе разработки вы можете быстро проходить по множеству файлов с исходным кодом вашего решения, чтобы лучше понять взаимосвязи между классами и методами.

    Подсветка ссылок

    В VS 2010, когда вы выбираете или выделяете переменную / параметр / объявление поля в редакторе кода, все последующие места их использования автоматически подсвечиваются в редакторе. За счет этого вы с легкостью можете быстро определить, где и как используется та или иная переменная или параметр.

    Например, когда вы в редакторе кода выделите параметр “controllerContext”, переданный в метод ControllerActionInvoker.GetParameterValue(), как показано ниже, то обратите внимание, как автоматически подсветятся 4 обращения к этому параметру в методе:

    Если я выберу локальную переменную метода, то автоматически подсветятся все места, в которых эта переменная используется:

    Если окажутся подсвечены несколько мест, где используется переменная или параметр, то вы можете быстро перемещаться между ними с помощью комбинаций клавиш Ctrl-Shift-Стрелка Вверх и Ctrl-Shift-Стрелка вниз.

    Резюме

    Новый редактор кода в VS 2010 позволяет быстро осуществлять поиск, навигацию и исследование исходного кода в рамках проекта или решения. Скорость выполнения этих операций по-настоящему высока (даже на больших объемах исходного кода), а соответствующая информация поддерживается в актуальном состоянии по мере того, как вы работаете над проектом и вносите в него изменения. Таким образом, новые возможности позволяют вам работать намного более продуктивно.

    Надеюсь, вы нашли для себя что-то полезное,

    Скотт

    P.S. В последнее время я чаще использую Twitter, чтобы рассказывать о предстоящих планах и публиковать ссылки на интересные ресурсы. Вы можете следить за моими публикациями на Twitter по адресу: http://www.twitter.com/scottgu (@scottgu это мой ник на Twitter)

    оригинал статьи

  • 2-я бета-версия VS 2010 и .NET 4.0

    Я счастлив сообщить, что сегодня мы выпустили версии бета 2 Visual Studio 2010 и .NET 4.0. Подписчики MSDN могут скачать их уже сейчас. Для всех остальных версии бета 2 станут доступны для загрузки с этой среды.

    Улучшения в VS 2010 и .NET

    В VS 2010 и .NET 4 реализовано огромное количество улучшений и дополнений. В их числе существенные улучшения для разработки веб-приложений ASP.NET, клиентских приложений WPF и WinForms, для SharePoint, приложений Silverlight, приложений для работы с БД, приложений параллельной обработки данных, а также приложений для облачных вычислений (cloud computing). В VS 2010 также реализовано огромное количество улучшений в IDE, редакторах кода, языках разработки и в инструментах проектирования, создания и тестирования приложений уровня предприятий.

    TFS 2010 теперь стало проще устанавливать (потребуется лишь 20 минут, чтобы настроить контроль версий файлов с исходным кодом, отслеживание запросов на исправления и улучшения, автоматизацию сборки и непрерывной интеграции), он может быть установлен как на серверные, так и на клиентские операционные системы, а также доменные контроллеры, кроме того, теперь он также включен во все варианты подписки MSDN на Visual Studio.

    Я начал серию статей в блоге, где буду освещать некоторые из улучшений и новых возможностей VS 2010 и .NET 4. Следите за моим блогом, потому что в ближайшие месяцы я собирают написать об этом много новых статей.

    Упрощение вариантов поставки в продуктовой линейке VS 2010

    Начиная с версии VS 2010, мы упрощаем продуктовую линейку и различные варианты комплектации Visual Studio, кроме того, мы предоставили дополнительные преимущества подписчикам MSDN. Теперь мы предлагаем такие варианты поставки:

    • Visual Studio Express: бесплатные варианты поставки для веб-разработчиков, а также разработчиков VB, C# и C++.
    • Visual Studio 2010 Professional с подпиской MSDN: профессиональные средства разработки, использовавшиеся вами и раньше, которые дополнены интеграцией со средствами контроля версий, средствами регистрации ошибок, автоматизации сборки проектов и многим другим. Также в эту поставку входит 50 часов в месяц облачных вычислений Azure.
    • Visual Studio 2010 Premium с подпиской MSDN: сюда входит все, что включено в Professional-версию, плюс более продвинутые средства разработки (включая расширенные возможности профилирования и отладки, контроля покрытия исходного кода тестами, анализа исходного кода и приоритезации тестирования), расширенная поддержка работы с базами данных, тестирования пользовательского интерфейса и многое другое. Вместо того, чтобы покупать несколько вариантов поставки для командной разработки, как приходилось делать в случае с VS 2008, с VS 2010 вы сможете получить аналогичную комбинацию возможностей в одной поставке. Также в эту поставку входит 100 часов в месяц облачных вычислений Azure.
    • Visual Studio 2010 Ultimate с подпиской MSDN: сюда входит все, что включено в Premium-версию, плюс дополнительные возможности для разработчиков, тестировщиков и архитекторов, такие как Intellitrace (ранее называвшийся Historical Debugging), новые инструменты для разработки архитектуры системы (UML, обнаружение сервисов), управление тестовой лабораторией, etc. Также в эту поставку входит 250 часов в месяц облачных вычислений Azure.
    Поддержка установки на одной машине с VS 2008

    VS 2010 и .NET 4.0 могут быть установлены на одной машине с VS 2008 и .NET 3.5, при этом 2-я бета VS 2010 и .NET 4.0 никак не затронет ваши существующие проекты разработки, связанные с VS 2008/.NET 3.5.

    Доступна лицензия для промышленной разработки

    В выпущенной версии .NET 4 и VS 2010 включена лицензия “go-live”, означающая, что вы можете начать использовать эти продукты для промышленной разработки, а не только ознакомления/тестирования.

    Резюме

    VS 2010 и .NET 4.0 привносят ряд очень существенных улучшений и новых возможностей. Цель сегодняшнего выпуска 2-й беты была в том, чтобы как следует поработать над вопросами производительности, стабильности и интеграции всего реализованного набора возможностей. Теперь внимание команды разработки будет сфокусировано на ваших отзывах о продукте и подготовке к выпуску версии релиз-кандидат (RC). Пожалуйста, присылайте нам ваши отзывы о выпущенной 2-й бета-версии.

    Надеюсь, вы нашли для себя что-то полезное,

    Скотт

    P.S. В последнее время я чаще использую Twitter, чтобы рассказывать о предстоящих планах и публиковать ссылки на интересные ресурсы. Вы можете следить за моими публикациями на Twitter по адресу: http://www.twitter.com/scottgu (@scottgu это мой ник на Twitter)

    оригинал статьи

  • Представляем библиотеку Microsoft Ajax (6-ю версию для предварительного ознакомления) и утилиту Microsoft Ajax Minifier

    Сегодня команда ASP.NET выпустила существенное обновление библиотеки Microsoft Ajax (6-ю версию для предварительного ознакомления). Это обновление включает целый ряд новых возможностей и улучшений нашей библиотеки AJAX; оно может использоваться с любой версией ASP.NET (включая ASP.NET 2.0, 3.5 и 4.0), а также в проектах ASP.NET Web Forms и ASP.NET MVC. Сегодняшний выпуск включает следующие функциональные улучшения:

    • Улучшенный императивный синтаксис: новый упрощенный синтаксис кода для создания элементов управления, выполняемых на клиенте.
    • Загрузчик клиентских скриптов: новый загрузчик скриптов, выполняемых на стороне клиента, который динамически загружает все файлы JavaScript, необходимые для клиентского элемента управления или библиотеки, а также выполняет скрипты в нужной последовательности.
    • Улучшенная интеграция с jQuery: теперь все элементы управления Microsoft Ajax автоматически представляются как плагины jQuery.

    В дополнение к улучшению библиотеки мы также выпустили новую беплатную утилиту - Microsoft AJAX Minifier. Эта утилита позволит вам существенно улучшить производительность ваших веб-сайтов за счет уменьшения размера ваших файлов JavaScript. Утилита может запускаться и из командной строки, и как задание MSBuild в Visual Studio, которое вы можете настроить для ваших проектов VS, чтобы автоматически уменьшать размер ваших файлов JavaScript при каждой сборке проекта.

    Использование библиотеки Microsoft AJAX (6-й версии для предварительного ознакомления)

    Начасть создавать приложения с вышедшей версией библиотеки Microsoft Ajax вы можете двумя путями:

    1) Посетите ASP.NET CodePlex и скачайте файлы библиотеки (туда также входит обширный набор примеров кода).

    2) Получите скрипты библиотеки Microsoft Ajax напрямую из сети доставки контента Microsoft Ajax (Content Delivery Network, CDN). Для этого вам всего лишь нужно добавить следующий тег script в страницу .aspx или .html:

    <script src=”http://ajax.microsoft.com/ajax/beta/0910/Start.js” type=”text/javascript”></script>

    Чтобы узнать больше о Microsoft AJAX CDN, прочитайте сообщение, опубликованное в моем блоге в прошлом месяце, или посетите http://www.asp.net/ajax/cdn.

    Улучшения императивного синтаксиса кода с этим выпуском

    Команда ASP.NET получила отклики от сообщества разработчиков о том, что многие при написании кода создания элементов управления, выполняющихся на стороне клиента, предпочли бы использовать имеративный подход (в противовес подходу с декларативным синтаксисом). С сегодняшним выпуском библиотеки мы представляем простой императивный синтаксис кода для создания клиентских элементов управления и связывания их с элементами HTML на странице. Для этого синтаксиса полностью поддерживается JavaScript Intellisense как в VS 2008, так и в VS 2010.

    Ниже приведен пример императивного кода, который вы теперь сможете писать для программного создания на стороне клиента элемента управления DataView, отображающего данные, получаемые от веб-сервиса на базе WCF:

    Приведенный выше код создает экземпляр элемента управления Microsoft Ajax DataView и присоединяет его к HTML-элементу <div> с идентификатором “imageView”. URL веб-сервиса WCF указывается в свойстве “dataProvider”, а название вызываемого метода сервиса - в свойстве “fetchOperation”. Свойство “autoFetch” указывает, что элемент управления должен автоматически после загрузки привязываться к веб-сервису WCF.

    Ниже приводится HTML-элемент <div> с идентификатором “imageView”, к которому присоединяется элемент управления DataView. Этот <div> содержит шаблон, который будет использоваться для отображения каждого элемента данных, получаемого от веб-сервиса (обратите внимание: возможность использовать шаблоны была представлена нами в вышедшей ранее версии Microsoft Ajax для предварительного ознакомления):

    Выражения {{ Uri }} и {{ Name }} в приведенном шаблоне заменяются свойствами Name и Uri изображений, получаемых от веб-сервиса. Префикс пространства имен для атрибута “sys:src” элемента <img> используется для того, чтобы браузеры не попытались загрузить изображение по фактическому пути {Uri}. Значение атрибута sys:src попадает в атрибут src после загрузки шаблона.

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

    Если же вы не хотите использовать в шаблонах декларативный синтаксис, то можете модифицировать его, остатвив лишь HTML-разметку, как показано ниже (больше никаких выражений в {{ }}):

    Затем при создании элемента управления DataView вы можете указать обработчик события itemRendered:

    Вы можете реализовать обработчик события “imageRendered”, как показано ниже, и использовать метод Sys.bind() для программного задания значений параметров тегов <img> и <span> в шаблоне:

    За счет этого вы сможете оставить в шаблоне исключительно HTML-код и все равно отображать во время выполнения ту же фотогалерею.

    Использование загрузчика клиентских скриптов Microsoft Ajax

    Библиотека клиентских скриптов Microsoft AJAX теперь разделена на несколько файлов JavaScript, за счет чего вы можете загружать и использовать лишь те файлы скриптов, которые вам на самом деле нужны, тем самым сокращая объем загружаемых данных.

    Однако, ручное добавление всех файлов скриптов, которые нужны для работы элементов управления Ajax, может быть утомительной и чреватой ошибками работой. Для упрощения использования как элементов управления, так и отдельных компонентов библиотеки мы с сегодняшним выпуском представляем новый загрузчик клиентских скриптов. Этот загрузчик поможет вам автоматически загружать все файлы скриптов, необходимые для элементов управления, выполняемых на стороне клиента, а также позволит выполнять эти скрипты после загрузки страницы в нужной последовательности.

    К примеру, приведенная ниже страница использует этот загрузчик для загрузки всех файлов скриптов, необходмых для работы элемента управления “watermark” (“водяной знак”), а затем связывает этот элемент управления с текстовым полем ввода <input>:

    Обратите внимание на вызов метода Sys.require(). Когда вы вызываете Sys.require(), вы указываете название клиентского компонента (либо массив клиентских компонентов), который хотите загрузить. Затем клиентский загрузчик sys.require() автоматически скачивает все необходимые файлы скриптов, распараллеливая этот процесс (что позволяет быстрее загрузить ваши скрипты и избежать блокирования рендеринга страницы). Когда все необходимые для элемента управления скрипты будут загружены, происходит вызов метода Sys.onReady() и создается элемент управления watermark.

    В примере выше мы связываем элемент управления “watermark” с текстовым полем ввода <input> с идентификатором “name”. Во время выполнения этот элемент управления приводит к появлению у поля ввода "водяного знака", автоматически исчезающего, как только пользователь установит фокус на это поле и начнет вводить текст:

    У загрузчика клиентских скриптов есть множество расширенных возможностей, включая автоматическое комбинирование скриптов и отложенную загрузку. Он также “понимает”, надо ли загружать рабочую или отладочную версию библиотеки. Кроме того, он позволяет вам зарегистрировать ваши собственные библиотеки и также автоматически загружать их с использованием синтаксиса Sys.require().

    Использование элементов управления библиотеки Microsoft Ajax совместно с jQuery

    jQuery поставляется Microsoft как часть стандартной поставки ASP.NET MVC, а также по умолчанию добавляется в новые проекты ASP.NET Web Forms, создаваемые в Visual Studio 2010.

    С сегодняшним выпуском для предварительного ознакомления мы существенно облегчили интеграцию jQuery с элементами управления Microsoft Ajax, что позволит разработчиками, применяющим jQuery, использовать элементы управления Microsoft Ajax в привычном синтаксисе API плагинов для jQuery. Это достигается за счет того, что теперь все элементы управления Microsoft Ajax автоматически доступны и как плагины jQuery. Иными словами, когда вы добавляете на страницу jQuery, вы можете использовать элементы управления Microsoft Ajax так же, как и любые другие jQuery-плагины.

    Приведенный ниже код демонстрирует, как вы можете использовать jQuery для создания DataView, отображающего данны от веб-сервиса WCF (используя синтаксис плагинов jQuery):

    Обратите внимание, что в приведенном примере я загружаю jQuery с использованием API клиентского загрузчика Sys.require(). Вы можете загружать jQuery с помощью нового клиентского загрузчика или же можете просто включить библиотеку jQuery в код страницы с помощью стандартного тега <script>.

    После загрузки jQuery элементы управления библиотеки Microsoft Ajax автоматически становятся доступны как плагины jQuery. Это означает, что вы можете создавать и присоединять элементы управления Microsoft Ajax, используя стандартный синтаксис для плагинов jQuery (как в примере выше), а также получаете полную интеграцию с синтаксисисом jQuery selector.

    Сокращение размера файлов JavaScript с помощью Microsoft Ajax Minifier

    Есть два основных способа сокртить размер загружаемых файлов JavaScript: сжатие и уменьшение самих файлов (minification).

    Когда ваш сайт работает под управлением IIS 7.0 на Windows Server, вы можете настроить IIS для автоматического сжатия ваших файлов JavaScript с использованием GZIP, что дает существенное повышение производительности сайта и сокращает размер загружаемых данных. Однако, вы можете получить дополнительный выйгрыш в производительности за счет использования как сжатия данных, так и уменьшения (minification) ваших файлов JavaScript. Эти дополнительные преимущества описываются в великолепной книге Стива Саундерса (Steve Sounders) High Performance Web Sites (Высокопроизводительные веб-сайты).

    Помимо новой версии библиотеки Microsoft Ajax мы сегодя также выпустили новую бесплатную утилиту Microsoft Ajax Minifier, которая может помочь существенно сократить размер ваших файлов JavaScript. Она была создана Роном Логоном (Ron Logon), работающим в команде MSN. Вы можете бесплатно загрузить Microsoft Ajax Minifier с сайта ASP.NET на CodePlex.

    Приведенный ниже скриншот показывает результаты уменьшения размера стандартной библиотеки jQuery с помощью различных подобных утилит, таких как JSMin Дугласа Крокфорда (Douglas Crockford), Packer Дина Эдварда (Dean Edward) и YUI Compressor. Два файла в конце списка были уменьшены с помощью утилиты Microsoft Ajax Minifier. Обратите внимание, что эта она уменьшила размер jQuery со 125 KB до всего 53 KB.

    Microsoft Ajax Minifier поддерживает два уровня уменьшения: обычный (normal) и гиперсжатие (hypercrunched). При обычном уменьшении Microsoft Ajax Minifier удаляет все незначащие пробелы, комментарии, фигурные скобки и точки с запятой. В режиме гиперсжатия утилита становится более агрессивна в уменьшении размера файлов JavaScript, минимизируя названия локальных переменных и удаляя код, который никогда не получит управления.

    Вот пример файла JavaScript:

    А вот как этот файл будет выглядет после обработки с помощью Microsoft Ajax Minifier (с включенным гиперсжатием):

    Обратите внимание, что все незначащие пробелы были удалены, а параметры функции firstValue и secondValue были переименованы в b и a.

    В поставку Microsoft Ajax Minifier входят следующие компоненты:

    • ajaxmin.exe – утилита командной строки для уменьшения файлов JavaScript.
    • ajaxmintask.dll – задание MSBuild для уменьшения файлов JavaScript в проектах Visual Studio.
    • ajaxmin.dll – компонент, который вы можете использовать в ваших приложениях C# или VB.NET для уменьшения файлов JavaScript.

    После установки Microsoft Ajax Minifier вы можете воспользоваться утилитой командной строки для “ручного” запуска уменьшения файлов JavaScript.

    Вы также можете выбрать опцию добавления Microsoft Ajax Minifier как задания MSBuild в Visual Studio. Это позволит вам автоматически уменьшать ваши файлы JavaScript каждый раз, когда вы выполняете сборку вашего проекта Visual Studio.

    Резюме

    В выпущенной сегодня версии библиотеки Microsoft Ajax реализовано несколько впечатляющих новых возможностей для разработчиков кода, выполняющегося на стороне клиента. Новый упрощенный императивный синтаксис должен понравиться разработчикам JavaScript. Загрузчик клиентских скриптов позволит намного проще создавать элементы управления, выполняющиеся на стороне клиента, и оптимизировать загрузку файлов скриптов. А интеграция с jQuery даст разработчикам возможность, использующим эту библиотеку, получить преимущества от использования клиентских элементов управления, шаблонов и возможностей доступа к данным, реализованным в библиотеке Microsoft Ajax, без необходимости менять свой стиль программирования.

    Наконец, новая утилита Microsoft Ajax Minifier позволит существенно улучшить производительность ваших приложений Ajax за счет сокращения размера файлов JavaScript. Вы можете использовать эту утилиту как вручную из командной строки, так и автоматически при сборке проектов в Visual Studio.

    Чтобы узнать еще больше подробностей, прочитайте статью в блоге Бертрана Ле Роя (Bertrand Le Roy). Щелкните здесь, чтобы загрузить 6-ю версию для предварительного ознакомления библиотеки Microsoft Ajax и новую утилиту Microsoft Ajax Minifier.

    Надеюсь, вы нашли для себя что-то полезное,

    Скотт

    P.S. Помимо блога, я в последнее время еще использую Twitter, чтобы публиковать краткие заметки и новые ссылки. Следить за моими публикациями на Twitter вы можете здесь: http://www.twitter.com/scottgu (@scottgu - это мой псевдоним на twitter)

    оригинал статьи.

  • Маршрутизация URL c ASP.NET 4 Web Forms (из серии статей про VS 2010 и .NET 4.0)

    [Помимо блога, я в последнее время еще использую Twitter, чтобы публиковать краткие заметки и новые ссылки. Следить за моими публикациями на Twitter вы можете здесь: http://www.twitter.com/scottgu (@scottgu - это мой псевдоним на twitter)]

    Это восьмая из серии статей про грядущий выпуск VS 2010 и .NET 4. В сегодняшней публикации я расскажу об одной замечательной возможности среды времени выполнения ASP.NET 4, а именно о возможности использовать маршрутизацию URL (URL routing) со страницами на базе Web Forms.

    Что такое маршрутизация URL?

    Маршрутизация URL - это возможность, впервые появившаяся в ASP.NET 3.5 SP1 и активно применяемая в приложениях ASP.NET MVC, чтобы сделать используемые в них URL ясными и учитывающими поисковую оптимизацию - в стиле “web 2.0”. Маршрутизация URL позволяет настроить приложение на прием запросов с URL, которые не соответствуют реальным файлам приложения. Вместо этого вы можете с помощью маршрутизации определить URL, которые семантически значимы для пользователей и могут помочь в поисковой оптимизации сайтов.

    К примеру, URL для обычной страницы, отображающей категории продуктов, мог бы выглядеть так:

    http://www.mysite.com/products.aspx?category=software

    С использованием движка маршрутизации URL в ASP.NET 4 вы сможете для отображения той же информации настроить приложение на прием таких запросов:

    http://www.mysite.com/products/software

    В ASP.NET 4.0 запросы, как в приведенном примере, могут быть сопоставлены как с классами-контроллерами ASP.NET MVC, так и со страницами на базе ASP.NET Web Forms.

    Сопоставление запросов с использованием ASP.NET MVC

    Движок маршрутизации URL, появившийся в ASP.NET 3.5 SP1, предоставляет мощные возможности для обработки входящих запросов. Обычно для регистрации/отображения URL, соответствующих определенному формату, и сопоставленных с ними обработчиков вам приходилось писать код, выполняемый при запуске приложения.

    Ниже приведен пример того, как сегодня вы можете использовать ASP.NET MVC для сопоставления URL /products/software с классом-контроллером под названием “Products”, у которого есть метод “Browse”:

    step1

    Первый параметр “products-browse” вспомогательного метода MapRoute() является дружественным именем маршрута. Второй параметр “products/{category}” - это фильтр для URL, соответствующий URL /products/software и рассматривающий второй сегмент URL как значение параметра “category”. Этот параметр затем будет передан на обработку в метод Browse() класса ProductsController.

    Сопоставление запросов с использованием ASP.NET Web Forms

    Теперь ASP.NET 4.0 также позволяет использовать движок маршрутизации URL для сопоставления не только с контроллерами ASP.NET MVC, но и со страницами на базе ASP.NET Web Forms.

    Ниже приведен пример того, как вы можете использовать новый вспомогательный метод MapPageRoute() в ASP.NET 4.0 для сопоставления URL /products/software со страницей “Products.aspx”, расположенной в корневом каталоге приложения:

    step2

    Здесь первые два параметра вспомогательного метода MapPageRoute() - те же, что и у MapRoute(). Первый параметр представляет дружественное имя маршрута, а второй задает формат URL для поиска соответствий. Третий параметр, между тем, указывает на страницу Products.aspx, которая будет обрабатывать запросы вместо класса-контроллера. Вы также можете указать MapPageRoute() дополнительные параметры, чтобы воспользоваться преимуществами “ограничений маршрута” и предоставить “значения параметров по умолчанию” точно так же, как вы можете сделать это в регистрациях маршрутов на базе ASP.NET MVC.

    Для страницы Products.aspx вы затем можете написать код, как в примере ниже, использующий свойство Page.RouteData в ASP.NET 4.0 для получения значения параметра “category”, сопоставленного с фильтром URL /products/{category}, и после этого связать полученное значение с категориями продуктов, чтобы отобразить их:

    step3

    В дополнение к программному доступу к параметрам входящих запросов при помощи кода, как в примере выше, вы также можете воспользоваться преимуществами нового декларативного элемента управления <asp:routeparameter> с любым элементом управления ASP.NET, использующим DataSource, чтобы декларативно связать его со значением из маршрута. К примеру, ниже мы используем выражение с <asp:routeparameter>, чтобы связать параметр @category оператора select с параметром /products/{category} в маршруте:

    step4

    Получение URL запросов из ASP.NET Web Form

    Движок маршрутизации URL в ASP.NET может использоваться как для сопоставления входящих запросов с обработчиками в коде, так и для программной генерации исходящих URL с применением тей же логики регистрации соответствий.

    В примере выше когда мы устанавливали соответствие для URL /products/{category}, мы дали маршруту “дружественное имя” “products-browse”. Это позволяет нам теперь также использовать новый вспомогательный метод Page.GetRouteUrl(), чтобы найти маршрут в системе маршрутизации URL, опционально указывая его параметры, и затем получить настоящий URL, который соответствует нашему сгенерированному URL на базе маршрута. Например, нижеприведенный код получит URL “/products/software”:

    step6

    Вы можете обращаться к упомянутому вспомогательному методу как из ваших файлов code-behind, так и из файлов .aspx.

    Теперь также появился нобор методов Response.RedirectToRoute(), которые вы можете использовать, чтобы перенаправить пользователей по определенному маршруту (независимо от того, обрабатывается ли этот маршрут приложением на базе MVC или Web Forms) и при желании передать ему дополнительные параметры.

    Обработка сценариев с использованием обратной передачи

    Маршрутизация URL в ASP.NET 4.0 полностью поддерживает сценарии с использованием обратной передачи (PostBack). Элемент управления <form runat=”server”> автоматически сгенерирует тот же URL, что привел к рендерингу страницы. К примеру, если вы получаете доступ к странице с помощью URL /products/software, то любой выполняющийся на стороне сервера элемент управления <form runat=”server”> на этой странице сгенерирует для клиента HTML-элемент <form action=”/products/software”> - это означает, что любые сценарии с использованием обратной передачи сохранят исходный URL страницы.

    За счет этого становится по-настоящему просто поддеживать в сценариях с использованием обратной передачи и Web Forms ясные, учитывающие поисковую оптимизацию URL, и у вас пропадет необходимость использовать различные трюки, к которым сегодня прибегают разработчики, чтобы достичь аналогичных эффектов при работе с модулями переписывания URL (URL rewriting modules).

    Резюме

    В ASP.NET 4.0 стало по-настоящему просто реализовать ясные, поддерживающие поисковую оптимизацию URL как в приложениях ASP.NET MVC, так и ASP.NET Web Forms (у вас также могут быть приложения, сочетающие эти два подхода).

    Движок маршрутизации URL позволяет вам с легкостью зарегистрировать URL любых видов и форматов и сопоставить им любые обработчики, какие вы пожелаете. А поскольку этот движок может использоваться как для сопоставления с URL входящих запросов, так и для генерации исходящих URL, вы можете на более позднем этапе разработки изменить сопоставления URL и при этом не беспокоиться о необходимости модификации какого-либо кода страниц или классов-контроллеров, чтобы отразить сделанные изменения; это позволит вам гораздо проще создавать приложения с поддержкой поисковой оптимизации.

    Надеюсь, вы нашли для себя что-то полезное,

    Скотт

    оригинал статьи

  • Представляем программу WebsiteSpark

    Представляем программу WebsiteSpark

    Я рад сообщить вам о новой программе – WebsiteSpark – которую Microsoft запускает сегодня.

    WebsiteSpark создана для индивидуальных веб-разработчиков и компаний-разработчиков, которые создают веб-приложения на заказ. Она даст вам возможность получать программное обеспечение, поддержку и доступ к бизнес-ресурсам Microsoft без предварительной оплаты на протяжении трех лет, что позволит вам расширить ваш бизнес и создавать великолепные решения на базе ASP.NET, Silverlight, SharePoint и PHP, а также приложения с открытым кодом, созданные на их основе.

    Что предоставляет эта программа?

    WebSiteSpark предоставляет лицензии на ПО, которыми вы можете пользоваться в течение трех лет. После начала участия в программе вы сможете загрузить и сразу же начать использовать следующие программные продукты Microsoft:

    • 3 пользовательские лицензии на Visual Studio 2008 Professional Edition
    • 1 пользовательскую лицензию на Expression Studio 3 (включающую Expression Blend, Sketchflow и Web)
    • 2 пользовательские лицензии на Expression Web 3
    • 4 процессорные лицензии на Windows Web Server 2008 R2
    • 4 процессорные лицензии на SQL Server 2008 Web Edition
    • Панель управления DotNetPanel (облегчает удаленное управление вашими серверами)

    Лицензии на Windows Server и SQL Server могут быть использованы для разработки и для промышленной эксплуатации. Вы можете использовать собственные физические сервера или же использовать лицензии для получения услуг хостинга от сторонних поставщиков. С помощью WebsiteSpark вы можете легко найти компании, предоставляющие хостинг, которые также участвуют в этой программе и которые смогут использовать ваши лицензии для обеспечения работы ваших веб-сайтов на выделенных или виртуальных серверах.

    В дополнение к программному обеспечению, WebsiteSpark предоставляет вам возможность расти и развивать ваш бизнес, участвуя в партнерской программе (к примеру, вы сможете предоставить отзывы клиентов о вас через наши партнерские программы). Сюда также входят услуги поддержки (включая 2 инцидента, которые будут обработаны профессиональной службой поддержки) и бесплатное обучение продуктам в онлайн.

    Кто может участвовать в этой программе?

    Программа WebSiteSpark доступна для независимых веб-разработчиков и небольших компаний, занимающихся веб-разработкой. Есть лишь два условия для вступления в программу:

    1. Ваша компания должна заниматься разработкой веб-приложений по заказу.
    2. В вашей компании должно быть на данный момент менее 10 сотрудников.

    Если вы удовлетворяете этим условиям, то вступить в программу в можете прямо сегодня, посетив сайт WebsiteSpark.

    При вступлении в программу вы должны либо предоставить рекомендацию другой компании (к примеру, компании, предоставляющей услуги хостинга, либо уже существующей компании-партнера Microsoft), либо указать код направления, полученный вами на каком-либо мероприятии или же выданный сотрудником Microsoft. Такой код вы можете получить, отправив письмо на webspark@microsoft.com, затем вы можете использовать его для вступления в программу на сайте WebsiteSpark. После вступления вы сможете сразу же загрузить и начать использовать программное обеспечение, а также воспользоваться возможностями, предоставляемыми в рамках партнерских программ.

    Если у вас возникнут какие-либо сложности со вступлением в программу, вы можете написать мне (scottgu@microsoft.com), и я постараюсь найти кого-нибудь, кто сможет вам помочь.

    А что же будет через 3 года?

    Программа WebsiteSpark расчитана на 3 года. Она не предусматривает обязательств продолжать использовать что-либо из предоставленного ПО по истечение трех лет, а также не предусматривает какой-либо платы за его использование в течение этих трех лет, кроме взноса в размере $100, взимаемого за участие в программе в конце ее трехлетнего срока.

    По истечении трех лет участники программы WebsiteSpark могут при желании приобрести все ПО, предоставленное в рамках программы WebsiteSpark, в виде одного пакета стоимостью $999 в год. В него войдут 3 копии VS Professional, 1 копия Expression Studio (включая Blend и Sketchflow), 2 копи Expression Web, а также 4 процессорных лицензии на Windows Web Server 2008 и 4 процессорных лицензии на SQL Server Web edition, которые могут использоваться для промышленной эксплуатации.

    Если же вы захотите приобрести лишь серверные лицензии для запуска ваших приложений, вы сможете воспользоваться специальным предложением: $199 в год за 1 процессорную лицензию на Windows Web Server и 1 процессорную лицензию на SQL Server Web edition. Вы сможете купить необходимое количество лицензий из предоставленного пакета по цене $199 в год за каждую.

    Резюме

    Программа WebsiteSpark дополняет две предыдущие успешные “Spark”-программы, которые мы запустили ранее, - BizSpark для стартапов и DreamSpark для студентов.

    Появившись во времена непростых экономических условий, WebsiteSpark поможет поддержать компании и разработчиков, предоставляя бизнес-ресурсы, обучение и ПО, необходимые для начала и развития успешного бизнеса на базе Веб-платформы Microsoft.

    Посетите www.microsoft.com/web, чтобы больше узнать о Веб-платформе Microsoft, а также загрузить и установить новый Установщик веб-платформы Microsoft V2, выпущенный нами сегодня; с его помощью вы легко сможете подготавливать веб-сервера и рабочие станции для веб-разработки. Затем вы также можете ознакомиться, загрузить и начать использовать веб-приложения из Галереи веб-приложений Windows.

    Надеюсь, вы нашли для себя что-то полезное,

    Скотт

    P.S. Помимо блога, я в последнее время еще использую Twitter, чтобы публиковать краткие заметки и новые ссылки. Следить за моими публикациями на Twitter вы можете здесь: http://www.twitter.com/scottgu (@scottgu - это мой псевдоним на twitter)

    оригинал статьи.

  • Совет: увеличьте свободное пространство монитора при работе в VS, отключив навигационную панель HTML

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

    Навигационная панель HTML в VS 2008

    По умолчанию при работе с исходным кодом HTML в VS 2008 и в Express-редакции Visual Web Developer 2008 непосредственно над областью с редактируемым HTML-кодом отображается несколько выпадающих списков:

    Этот набор выпадающих списков называется "навигационной панелью" (Navigation Bar) и позволяет в редакторе HTML-кода в VS 2008 переходить между функциями и методами, определенными в этом HTML-коде. Сюда входят как выполняемые на клиенте функции JavaScript, определенные непосредственно в файле .aspx/.html, так и выполняемые на сервере методы, определенные непосредственно в файле .aspx при работе без code-behind файлов.

    Отключение навигационной панели HTML и возврат кусочка полезной площади экрана

    Лично я не нахожу особой пользы в навигационной панели HTML, поскольку я стремлюсь не определять функции JavaScript непосредственно в HTML-файлах (вместо этого я использую более ненавязчивый подход и помещаю свой код JavaScript в отдельные файлы) и еще я, как правило, использую code-behind файлы вместо того, чтобы помещать весь выполняемый на сервере код обработчиков событий в один-единственный файл.

    Если в этом вы со мной схожи и не особо часто пользуетесь навигационной панелью, то, думаю, будете рады узнать, что вы можете отключить ее в VS 2008 и вернуть себе порядка 40-50 пикселей, которые можно "отдать" редактору исходного кода HTML. Для этого выберите в VS пункт меню Tools->Options, перейдите к узлу "Text Editor->HTML" и снимите галку "Navigation Bar":

    После того, как вы это сделаете и нажмете "OK", вы увидите, что выпадающие списки панели исчезли, и у вас появилось больше свободного места на экране:

    (Внимание: если изменения не проявились сразу, попробуйте закрыть и заново открыть редакторуемый файл HTML/ASP.NET)

    Надеюсь, вы нашли для себя что-то полезное,

    Скотт

    P.S. В VS 2010 (начиная с Beta2) мы по умолчанию скрываем эту навигационную панель в редакторе HTML, если используется стандартный профиль настроек для веб-разработки, но если вы находите ее полезной, то можете вернуть ее через пункт меню Tools->Options. Также в VS 2010 появился профиль для веб-разработки с оптимизацией для работы с исходным кодом , который отключает все навигационные и инструментальные панели, а также дизайнеры HTML.

    оригинал статьи.

  • Анонсируем Microsoft AJAX CDN

    Сегодня команда ASP.NET запустила новую службу Microsoft Ajax CDN (Content Delivery Network, сеть по доставке контента), предоставляющую поддержку кэширования библиотек AJAX (включая jQuery и ASP.NET AJAX). Эта служба доступна бесплатно, не требует регистрации и может использоваться как в коммерческих, так и некоммерческих целях.

    Что предоставляет CDN?

    Сети по доставке контента (CDNs) состоят из "пограничных серверов кэширования" (edge-cache servers), стратегически рассредоточенных по всему миру в ключевых областях сети Internet. Эти сервера могут использоваться для кэширования и доставки контента любых типов, включая изображения, видео, а также файлов CSS и JavaScript.

    Использование CDN может существенно повысить производительность веб-сайта с точки зрения конечных пользователей, поскольку позволяет браузерам намного быстрее получать и скачивать контент. К примеру, вместо того, чтобы заставлять запрос от браузера проходить весь путь через Internet до вашего веб-сервера, CDN может обработать его напрямую за счет ближайшего "пограничного сервера кэширования", который может находиться в одном хопе (hop) от вашего клиента (за счет чего ответ на запрос будет возвращен намного быстрее, а это, в свою очередь, существенно сократит время загрузки веб-страниц).

    Что предоставляет Microsoft AJAX CDN?

    С помощью Microsoft AJAX CDN становится по-настоящему легко добавлять в ваши веб-сайты библиотеки скриптов jQuery и ASP.NET AJAX, клиентские запросы на получение которых буду автоматически обрабатываться одним из четырех тысяч пограничных серверов кэширования, географически распределенных по всему миру.

    К примеру, чтобы использовать jQuery из Microsoft AJAX CDN, вам нужно просто добавить в код вашей страницы стандартный тег для скрипта с URL, как показано ниже:

    <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
    

    Когда браузер отправит запрос на файл с кодом скрипта, он будет автоматически обработан тем пограничным сервером кэширования, который расположен ближе всего к клиенту. Это означает, что:

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

    Полный перечень библиотек JavaScript (и соответствующих URLs), которые мы уже загрузили в нашу CDN, вы можене найти здесь: www.asp.net/ajax/cdn

    Мы будем обновлять доступные через CDN библиотеки по мере выхода новых версий ASP.NET AJAX и продолжим пополнять их список, чтобы включить туда все файлы JavaScript, которые мы поставляем с ASP.NET и Visual Studio (включая jQuery, плагин jQuery Validation и дополнительные библиотеки, которые мы будем поставлять в будущем).

    Сервис CDN совершенно бесплатен и доступен каждому как для коммерческого, так и для некоммерческого использования. Вам не нужно проходить какую-либо регистрацию, чтобы воспользоваться его преимуществами.

    Использование Microsoft AJAX CDN совместно с ASP.NET 4.0 ScriptManager

    Помимо возможности непосредственно ссылаться на файлы скриптов с помощью тега <script>, ASP.NET 4.0 также позволит проще задействовать CDN в приложениях ASP.NET Web Forms, использующих серверный элемент управления <asp:scriptmanager/>.

    У элемента упроавления <asp:ScriptManager> в ASP.NET 4.0 появилось новое свойство EnableCdn. Когда этому свойству присваивается true, ваше приложение начинает автоматически использовать Microsoft CDN для запроса файлой JavaScript:

    Когда вы разрешаете ScriptManager использовать CDN, ваше приложение начинает получать все файлы скриптов JavaScript оттуда, а не из сборок System.Web.dll или System.Web.Extensions.dll, как это обычно происходит. Это касается как JavaScript-файлов ASP.NET AJAX, так и встроенных JavaScript-файлов Web Forms (например, файла WebUIValidation.js - клиент-серверной проверки для элементов управления, таких как TreeView, Menu и проч.).

    Для конечных пользователей это приведет к улучшению производительности, а также к тому, что им не придется повторно загружать одни и те же файлы при посещении вашего веб-сайта на базе ASP.NET, если они прежде уже посещали другие веб-сайты ASP.NET, использующие CDN.

    Использование 5-го выпуска для предварительного ознакомления ASP.NET AJAX 4 из CDN

    В дополнение к запуску сайта AJAX CDN, благодаря усилиям команды ASP.NET также недавно стал доступен 5-й выпуск для предварительного ознакомления ASP.NET AJAX 4. Вы можете загрузить его вместе с примерами кода с CodePlex: http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32770

    Теперь вы также можете использовать библиотеки ASP.NET AJAX, просто добавляя приведенные ниже теги script, ссылающиеся на CDN:

    <script src="http://ajax.microsoft.com/ajax/beta/0909/MicrosoftAjax.js" type="text/javascript"></script>
    <script src="http://ajax.microsoft.com/ajax/beta/0909/MicrosoftAjaxTemplates.js" type="text/javascript"></script>

    Эти теги ссылаются на бета-версию библиотеки ASP.NET AJAX, выпущенную в сентябре 2009-го (часть URL /0909/ соответствует году и месяцу выпуска версии ASP.NET AJAX).

    После добавления тегов script, ссылающихся на библиотеку ASP.NET AJAX, вы можете начать использовать эту библиотеку в вашей странице. К примеру, приведенный ниже код присоединяет клиентский элемент управления DataView, представляющий массив фотографий, к элементу DIV в теле страницы.

    Элемент DIV с идентификатором "photos" содержит шаблон для форматирования каждой фотографии из массива. Вот как этот элемент объявлен:

    При рендеринге DataView содержимое элемента DIV с идентификатором photos рендерится для каждой фотографии из массива, в результате будут отображены следующие фотографии:

    Поскольку библиотека ASP.NET AJAX написана полностью на JavaScript, приведенный выше код прекрасно работает и в ASP.NET Web Forms, и в ASP.NET MVC, и в HTML, и даже в классических ASP-страницах. Код также работает на всех современных браузерах.

    Чтобы больше узнать о 5-м выпуске для предварительного ознакомления ASP.NET AJAX 4, загрузите исходный код примеров из раздела проекта на CodePlex: http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32770

    Ниже приведены ссылки на некоторые публикации в блогах, более подробно освещающие новые возможности этой версии ASP.NET AJAX:

    Резюме

    Microsoft AJAX CDN позволяет вам существенно повысить производительность приложений ASP.NET Web Forms и ASP.NET MVC, использующих ASP.NET AJAX или jQuery. Этот сервис доступен совершенно бесплатно, не требует регистрации и может быть использован как в коммерческих, так и в некоммерческих целях.

    С выходом ASP.NET 4.0 воспользоваться преимуществами CDN для разработчиков ASP.NET Web Forms станет совсем просто. Установив лишь одно свойство элемента управления ScriptManager, вы сможете перенаправлять все запросы ко встроенным файлам JavaScript ASP.NET на сервера CDN и, таким образом, повысить производительность ваших веб-приложений на базе Web Forms.

    Надеюсь, вы нашли для себя что-то полезное,

    Скотт

    P.S. Помимо блога, я в последнее время еще использую Twitter, чтобы публиковать краткие заметки и новые ссылки. Следить за моими публикациями на Twitter вы можете здесь: http://www.twitter.com/scottgu (@scottgu - это мой псевдоним на twitter)

    оригинал статьи.

  • Автозапуск приложений ASP.NET (из серии статей про VS 2010 и .NET 4.0)

    Это седьмая из серии статей, в которых я пишу о готовящихся к выходу VS 2010 и .NET 4.

    Я хотел бы отойти от обсуждения новых инструментальных возможностей VS 2010 и написать несколько заметок про новые возможности среды времени выполнения (не волнуйтесь - я вернусь к обсуждению многочисленных новых возможностей VS, я лишь хочу немного разбавить тему).

    Сегодня я расскажу об одной небольшой, но очень приятной новой возможности, которой вы можете воспользоваться в ASP.NET 4, - это возможность автоматически запускать и заблаговременно инициализировать веб-приложение, не дожидаясь первого запроса клиента к веб-серверу. Это обеспечит более быструю реакцию на первые запросы к вашему веб-приложению и позволит избежать написания собственных скриптов для "разогрева" сервера и заполнения любых используемых кэшей данных. Автозапуск работает с любыми видами веб-приложений ASP.NET, включая приложения на базе ASP.NET MVC.

    Автозапуск приложений с ASP.NET 4

    Некоторым веб-приложениям перед тем, как они смогут начать обрабатывать клиентские запросы, необходимо загрузить большие объемы данных или же выполнить инициализационные процедуры, требующие больших вычислительных ресурсов. Сейчас разработчики ASP.NET зачастую решают эти задачи, используя обработчик события "Application_Start" в файле приложения Global.asax (которое срабатывает при обработке первого запроса). Затем они либо разрабатывают хитроумные скрипты, которые посылают веб-приложению подложные запросы, чтобы периодически "будить" его, и выполняют этот код перед тем, как прийдет реальный запрос от пользователя, либо просто вынуждают несчастных первых пользователей, которые обращаются к приложению, ждать, пока вся эта логика отработает, прежде чем будут обработаны их запросы (что может вылиться для них в довольно длительное ожидание).

    В ASP.NET 4 реализована новая возможность под названием "автозапуск" ("auto-start"), лучше подходящая для решения подобных задач и доступная при выполнении приложений ASP.NET 4 под управлением IIS 7.5 (он идет в поставке Windows 7 и Windows Server 2008 R2). Эта возможность дает вам способ контролируемо запускать рабочий процесс IIS и инициализировать приложение ASP.NET, чтобы затем начать принимать HTTP-запросы.

    Настройка автозапуска приложения ASP.NET 4

    Чтобы воспользоваться возможностью автозапуска приложений ASP.NET 4, сначала требуется настроить автоматический запуск при загрузке веб-сервера рабочего процесс IIS, в рамках которого будет выполняться ваше приложение. Это можно сделать, открыв файл applicationHost.config IIS 7.5 (C:\Windows\System32\inetsrv\config\applicationHost.config) и добавив атрибут startMode="AlwaysRunning" к соответствующему узлу <applicationPools>:

    <applicationPools>
        <add name="MyAppWorkerProcess" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" />
    </applicationPools>
    

    Если вы запустите Диспетчер задач, установите галку "показывать процессы всех пользователей" и затем сохраните файл applicationHost.config с измененным атрибутом startMode - вы увидите, как сразу после сохранения запустится новый процесс w3wp.exe.

    Один рабочий процесс IIS может выполнять несколько приложений ASP.NET. Вы можете указать, какие именно приложения хотите запускать автоматически при запуске рабочего процесса, добавив атрибут serviceAutoStartEnabled="true" к их узлам <application> в конфигурационном файле:

    <sites>
        <site name="MySite"id="1">
            <application path="/" serviceAutoStartEnabled="true" serviceAutoStartProvider="PreWarmMyCache"/>
        </site>
    </sites>
    <serviceAutoStartProviders>
        <add name="PreWarmMyCache" type="PreWarmCache, MyAssembly"/>
    </serviceAutoStartProviders>

    Атрибут serviceAutoProvider="PreWarmMyCache" выше ссылается на узел провайдера в конфигурационном файле, позволяющего указать ваш класс, содержащий всю логику "разогрева" для вашего приложения. Соответствующие методы этого класса будут автоматически вызваны, как только загрузится рабочий процесс IIS и ваше приложение (до получения любых внешних запросов), - они могут выполнить любые действия по инициализации или заполнению кэшей данных, которые, по-вашему, необходимы перед началом обработки запросов:

    public class PreWarmCache : System.Web.Hosting.IProcessHostPreloadClient {
        public void Preload(string[] parameters) {
            // Здесь выполняется код инициализации и заполнения кэшей...
        }
    }

    IIS запустит ваше приложение в состоянии, в котором оно не будет принимать никаких запросов, пока не завершится работа вашего кода "разогрева". Когда код инициализации завершится, и метод Preload вернет управление, приложение ASP.NET будет помечено как готовое к обработке запросов.

    Вы также можете сочетать эту новую возможность "разогрева" при автозапуске с возможностями балансировки нагрузки, реализованными в расширении IIS7 Application Request Routing (ARR), и использовать ее, чтобы уведомить балансировщик нагрузки о том, что инициализация приложения завершена, и оно готово принимать HTTP-азпросы, - в этот момент сервер может быть включен в "ферму" веб-серверов для участия в обработке запросов.

    Резюме

    Новая возможность автозапуска веб-приложений в ASP.NET 4 и IIS 7.5 предоставляет четко определенный подход, который вы можете использовать для осуществления ресурсоемких операций по инициализации и предвыборке кэшируемых данных при запуске приложения, прежде чем оно начнет получать запросы от пользователей. За счет этого с самого начала работы ваше приложение может быть "разогрето", обеспечивая стабильно высокий уровень производительности.

    Надеюсь, вы нашли для себя что-то полезное,

    Скотт

    P.S. Помимо блога, я в последнее время еще использую Twitter, чтобы публиковать краткие заметки и новые ссылки. Следить за моими публикациями на Twitter вы можете здесь: http://www.twitter.com/scottgu (@scottgu - это мой псевдоним на twitter)

    оригинал статьи

  • Поддержка фрагментов кода (snippets) ASP.NET, HTML, JavaScript (из серии статей про VS 2010 и .NET 4.0)

    Это шестая из серии статей, в которых я пишу о готовящихся к выходу VS 2010 и .NET 4.

    В этой статье я расскажу о еще одном полезном усовершенствовании в VS 2010 - это поддержка фрагментов кода (snippets) HTML/ASP.NET/JavaScript. Фрагменты кода позволяют вам более продуктивно писать исходный код за счет возможности создания фрагментов исходного кода и разметки страниц, которые затем можно быстро применять и использовать в различных местах вашего приложения без необходимости заново полностью набирать их на клавиатуре.

    В предыдущих версиях Visual Studio была поддержка концепции "фрагментов кода" для VB и C#, но не для JavaScript или разметки страниц HTML и ASP.NET. С версии VS 2010 у нас теперь есть поддержка фрагментов кода и для такого исходного кода.

    Использование фрагментов кода ASP.NET

    Давайте рассмотрим, как мы можем использовать фрагменты кода, на примере быстрой реализации общего сценария обеспечения безопасности. Более конкретно, мы реализуем функционал, необходимый для отображения в верхней части страниц сайта либо ссылки "[ Login ]", либо сообщения "[ Welcome UserName ]" в зависимости от того, залогинился ли уже пользователь или еще нет:

    step1

    Этот функционал автоматически добавляется, когда вы создаете проект в VS 2010 с использованием нового шаблона ASP.NET Project Starter. Однако, для данного примера мы предположим, что начали работу над проектом с пустой главной (master) страницы и создаем ее полностью с нуля.

    Начнем с добавления на главную страницу стандартного элемента <div> и затем поместим наш курсор внутри этого элемента:

    step2

    Для реализации нашего сценария мы воспользуемся встроенным элементом управления <asp:loginview>. Это элемент управления с поддержкой шаблонов (впервые появившихся в ASP.NET 2.0), что позволяет ему легко переключаться между шаблонами "Anonymous" и "LoggedIn", автоматически отображаемыми в зависимости от того, прошел ли пользователь аутентификацию. Вместо того, чтобы каждый раз вручную набирать фрагмент разметки для элемента <asp:loginview>, мы воспользуемся поддержкой фрагментов кода ASP.NET, появившейся в VS 2010.

    Если набрать в редакторе "<log", то появится окно intellisense со списком доступных элементов управления и фрагментов кода, начинающихся с этих символов.

    step3

    Выберем встроенный фрагмент кода для "loginview" из приведенного списка и нажмем клавишу Tab, чтобы завершить ввод:

    step4

    Теперь, когда мы выбрали фрагмент кода, который хотим использовать, мы можем еще раз нажать клавишу Tab для применения выбранного фрагмента - в результате название фрагмента кода будет немедленно заменено соответствующим кодом разметки, показанном на следующем рисунке. Обратите внимание: фрагмент кода добавил для нас новый элемент управления <asp:loginview> и автоматически определил для него два наиболее часто используемых шаблона. Теперь реализовать это все можно за счет лишь шести нажатий клавиш (четыре - чтобы набрать "<log", и затем два раза нажать Tab).

    step5

    Теперь реализуем шаблон "AnonymousTemplate".

    Если набрать в редакторе "<a", то появится окно intellisense и отобразит доступные для использования элементы и фрагменты кода:

    step6

    Из приведенного выше списка мы выберем встроенный фрагмент кода "a" и нажмем клавишу Tab, чтобы завершить его выбор. Затем нажмем Tab еще раз и, таким образом, выполним фрагмент кода - в результате его название будет заменено разметкой, как показано на рисунке ниже:

    step7

    Значение артрибута "href" и содержимое элемента <a> на рисунке выше подствечено зеленым фоном. Это означает, что эти значения являются заменяемыми параметрами, и мы можем автоматически переключаться между ними с помощью клавиши Tab при указании конкретных значений - без необходимости перемещать курсор клавишами со стрелками или мышью, что существенно ускоряет дело.

    Итак, не двигая курсор, мы можем сразу начать ввод URL страницы авторизации, на которую мы хотим перенаправлять пользователей для аутентификации на сайте:

    step8

    После ввода URL мы можем нажать Tab еще раз, и VS автоматически подсветит в редакторе значение второго параметра (опять же, без необходимости ручного перемещения курсора клавишами или мышью):

    step9

    Теперь мы можем ввести текст, который хотим отображать для гиперссылки:

    step10

    После завершения настройки шаблона "<AnonymousTemplate>" мы можем перейти к шаблону "<LoggedInTemplate>". Наберем в редакторе "<log", чтобы появилось окно intellisense, и выберем встроенный фрагмент кода "loginname":

    step11

    После нажатия Tab название фрагмента кода будет заменено следующим фрагментом разметки:

    step12

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

    Итак, вот как будет выглядеть окончательный исходный код:

    step13

    После запуска нашего приложения приведенный выше код в том случае, если мы еще не прошли аутентификацию, отобразит ссылку "[Login]":

    step19

    После аутентификации мы увидим строку приветствия, как на рисунке ниже:

    step15

    Общее число нажатий клавиш для реализации всего сценария составило менее 15% от того объема текста, который пришлось бы набирать в предыдущей версии VS. Быстро печатая на клавиатуре, я смог написать весь код для данного сценария менее чем за 15 секунд :-)

    Фрагменты кода ASP.NET MVC

    Встроенные фрагменты кода доступны для всех элементов управления ASP.NET и элементов HTML-разметки.

    Встроенные фрагменты кода также доступны для наиболее распространенных сценариев для отображений (view) ASP.NET MVC, а также для встроенных вспомогательных HTML-методов ASP.NET MVC.

    К примеру, в коде отображения (view) ASP.NET MVC мы можем набрать "<act" и выбрать фрагмент кода "actionlink":

    step16

    После завершения выбора и повторного нажатия клавиши Tab название фрагмента кода будет заменено на следующий код:

    step17

    Заметьте, что значения "linktext" и "actionname" помечены как параметры фрагмента кода - это означает, что мы можем легко заменить их, не перемещая курсор стрелками на клавиатуре или же мышью. Значение первого параметра linktext выделено по умолчанию - т.е. мы можем сразу начать набирать нужный нам текст, чтобы заменить это значение, затем мы можем нажать Tab, чтобы выделить значение следующего параметра actionname и напечатать его новое значение:

    step18

    Пользовательские фрагменты кода

    В поставку Visual Studio 2010 будет включено более 200 встроенных фрагментов кода, которые вы сможете использовать сразу же после установки.

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

    В этой статье описывается поддержка фрагментов кода, которая уже реализована в VS 2008, и даются рекомендации, как создавать фрагменты кода и управлять ими.

    Резюме

    Фрагменты кода - это полезная возможность, позволяющая сократить число нажатий клавиш для набора исходного кода в редакторе и реализовывать в коде те или иные сценарии и задачи намного быстрее. А то, что фрагменты кода теперь поддерживаются не только для исходного кода VB и C#, но также и для HTML, ASP.NET и JavaScript, делает их еще более полезными, а вашу работу это может сделать еще более производительной.

    Надеюсь, вы нашли для себя что-то полезное,

    Скотт

    P.S. Помимо блога, я в последнее время еще использую Twitter, чтобы публиковать краткие заметки и новые ссылки. Следить за моими публикациями на Twitter вы можете здесь: http://www.twitter.com/scottgu (@scottgu - это мой псевдоним на twitter)

    оригинал статьи
  • Профиль для веб-разработки с оптимизацией для работы с исходным кодом (из серии статей про VS 2010 и .NET 4.0)

    Это пятая из серии статей, в которых я пишу о готовящихся к выходу VS 2010 и .NET 4.

    Сегодня я расскажу про новый профиль "Web Development (Code Optimized)" (Веб-разработка с оптимизацией для работы с исходным кодом), который появится в VS 2010 и позволит вам опционально настроить расположение элементов IDE в Visual Studio так, чтобы скрыть WYSIWYG-дизайнер веб-страниц и использовать больше пространства для расположения инструментов, ориентированных на работу с исходным кодом веб-приложений.

    Профили настройки VS 2010 для разработки веб-приложений

    При первом запуске VS 2010 предлагается выбрать один из профилей для настройки IDE. Выбранный профиль будет использован для настройки того, как в IDE по умолчанию будут расположены/пристыкованы окна различных инструментов и какие будут использованы "горячие" клавиши. Затем вы можете изменить любые из этих настроек через пункт меню Tools->Options в IDE. Также вы затем сможете сбросить используемый профиль и выбрать другой через пункты меню Tools->Import and Export Settings.

    Запустив в первый раз версию VS 2010 Beta2, вы могли заметить, что в списке выбора профилей стало доступно два профиля настроек для веб-разработки (Web Development):

    0 Choose Default Environment Settings

    Первый профиль "Web Development" является эволюционным развитием того профиля, что уже был в VS 2008 (с некоторыми приятными улучшениями, которые помогут эффективнее использовать пространство экрана в VS 2010). Этот профиль также позволит вам воспользоваться всеми преимуществами тех грандиозных улучшений WYSIWYG-дизайнера страниц HTML и ASP.NET, которые были сделаны нами в VS 2010 (более детально на эту тему я напишу в последующих статьях из этой серии).

    Второй профиль "Web Development (Code Optimized)" впервые появился в версии VS 2010 и оптимизирует настройки IDE для тех веб-разработчиков, которые не хотят использовать WYSIWYG-дизайнер, предпочитая самостоятельно работать с исходным кодом страниц. При выборе этого профиля скрываются закладки WYWISYG-дизайнера страниц, а расположение остальных окон в IDE настраивается так, чтобы максимизировать объем исходного кода, помещающегося на экране (с минимумом панелей инструментов и других окон). При этом настройки профиля обеспечивают полноценную поддержку редактирования исходного кода/отладки страниц, а также использование IntelliSense.

    Сравнение профилей VS 2010 для веб-разработки

    Лучше понять отличия между профилями можно, сравнив скриншоты IDE Visual Studio сразу после применения каждого из профилей:

    Скриншот после применения профиля "Web Development":

    На рисунке ниже представлено стандартное расположение различных оконо IDE (при разрешении 750x650) после применения профиля "Web Development". Этот профиль является развитием существующего профиля из VS 2008 и настраивает отображение закладок design/split/source в окне редактирования исходного кода любой страницы HTML или ASP.NET:

    1 Old Profile Small IDE

    Скриншот после применения профиля "Web Development (Code Optimized)":

    На рисунке ниже представлено стандартное расположение различных оконо IDE (при разрешении 750x650) после применения нового профиля "Web Development (Code Optimized)". Как вы видите, в это профиле пространство экрана оптимизируется для отображения редактора исходного кода, при этом все панели инструментов по умолчанию скрываются, а отображение закладок для переключения на дизайнер в окне редактирования исходного кода страниц HTML или ASP.NET отключается:

    2 New Profile Small IDE

    Ниже показано действие этого профиля при более высоком разрешении экрана:

    2 New Profile Full IDE Single File

    Комбинирование различных настроек

    Все различные настройки, затрагиваемые обоими профилями для веб-разработки доступны в диалоге настройки Visual Studio, вызываемом через пункт меню Tools->Options. Это значит, что в качестве отправной точки вы можете выбрать любой из профилей настройки VS (включая профили General, VB и C#) и затем включить или отключить отдельные возможности для настройки IDE в соответствии с вашими личными предпочтениями.

    Например, на рисунке ниже показана одна из настроек, доступных через Tools->Options, которая позволяет включить или отключить HTML-дизайнер (что, в свою очередь, опеределяет, будут ли закладки Design/Split/Source отображаться в нижней части каждого окна редактирования исходного кода страницы):

    0 Tools Options HTML Designer

    Это дает вам гибкие возможности по настройке IDE и оптимизации использования различных инструментов под ваш стиль разработки.

    Два профиля для веб-разработки, идущие в поставке новой версии VS, являются хорошими отправными точками в персонализации настроек IDE и, как нам кажется, предоставляют наборы настроек по умолчанию, подходящие для значительной части веб-разработчиков. Вы можете начать работу, выбрав наиболее подходящий для вас профиль, и затем при желании оптимизировать настройки IDE в соответствии с вашими предпочтениями.

    Резюме

    Мы предлагаем новый профиль настроек IDE как просто один из вариантов для тех веб-разработчиков, которые предпочитают в основном работать с исходным кодом. WYSIWYG-дизайнер страниц HTML/ASP.NET остается включенным по умолчанию во всех остальных профилях настройки VS 2010 (как это было и в VS 2008), но в VS 2010 мы также реализовали множество улучшений в его работе (о них я более детально напишу в своем блоге позже). Так что не беспокойтесь, WYSIWYG-дизайнер определенно никуда не денется - напротив, мы будем расширять и улучшать его возможности с каждой новой версией.

    Впрочем, нам кажется, что новый профиль "Web Development (Code Optimized)" является хорошей альтернативой для тех веб-разработчиков, которые предпочитают в основном иметь дело с исходным кодом страниц и не используют WYSIWYG-дизайнер. Этот профиль является для них простой возможностью отключить отображение дизайнера (а также всех связанных с ним дополнительных окон и панелей инструментов) в IDE и получить больше свободного пространства экрана для работы с исходным кодом.

    Надеюсь, вы нашли для себя что-то полезное,

    Скотт

    P.S. Помимо блога, я в последнее время еще использую Twitter, чтобы публиковать краткие заметки и новые ссылки. Следить за моими публикациями на Twitter вы можете здесь: http://www.twitter.com/scottgu (@scottgu - это мой псевдоним на twitter)

    оригинал статьи.

  • Поддержка нескольких мониторов

    Это четвертая статья в серии статей посвященных ожидаемому выходу VS 2010 и .NET 4.

    В этой статье я расскажу про важное улучшение сделанное для IDE Visual Studio, которое, насколько мне известно, уже нашло немало поклонников — поддержку нескольких мониторов.

    Использование нескольких мониторов

    VS 2008 располагала все окна для документов, файлов или дизайнеров в одном окне — что приводит к тому, что вы не можете разделить эти элементы IDE на несколько мониторов [прим. перев.: некоторые элементы VS 2008 имеют возможность отстыковываться от главного окна, но все они не настолько важны как окна документов или дизайнеров].

    VS 2010 теперь позволяет редакторам, дизайнерам и окнам с инструментами быть отсоединенными от основного окна приложения и быть расположенными где угодно, на любом мониторе в вашей системе. Это позволит вам значительно улучшить оптимальное исопльзование экранного пространства и сделает более удобным общее расположение рабочих инструментов.

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



    После этого вы можете перетащить документ или окно назад на главное окно, если захотите пристыковать его обратно (либо просто выберите в контекстном меню заголовка окна пункт re-dock).

    Visual Studio запоминает последнее положение документов на экране, что означает, что вы можете закрыть проекты и после их открытия все расопложение документов будет восстановлено автоматически.

    Сценарии использования нескольких мониторов

    Ниже на нескольких скриншотах представлены сценарии использования нескольких мониторов (кроме того, существует еще множество других сценариев, которые тут не представлены). Для более полного понимания, представьте, что каждое окно на скриншотах ниже — это отдельный монитор.

    Поддержка кода нескольких файлов


    Показывает как файлы с кодом могут быть разделены на несколько мониторов. Ниже я расположил .aspx-файл в главном окне IDE и вынес файл code-behind и файл отдельного класса на отдельный экран:


    Поддержка окон с инструментами

    Показывает как любое окно из VS 2010 может быть разнесено на разные мониторы. Ниже, я перенес окна с тестами на отдельный экран:


    Поддержка дизайнеров

    Показывает как дизайнеры в VS могут быть разнесены на несколько монитором. Ниже, я перенес WYSWIYG-дизайнер WPF/Silverlight и окно со свойствами на отдельный экран (файл code behind остался на главном мониторе). Обратите внимание, что окно со свойствами VS 2010 теперь поддерживает встроенные редакторы цвета, связывания данных, стилей, кистей и многих других для приложений Silverlight и WPF (я расскажу про это в последующих статьях):


    Заключение

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

    А если у вас пока нет нескольких мониторов у вашей системы, может быть имеет смысл их завести… :-)

    Надеюсь, эта статья была вам полезна,

    Скотт

    оригинал статьи

  • Поддержка нескольких версий .NET (из серии статей про VS 2010 и .NET 4)

    Это третья из серии публикаций, в которых я пишу о готовящихся к выходу VS 2010 и .NET 4.

    Сегодня мы обсудим расширенные возможности VS 2010 по поддержке нескольких версий целевых платформ, что позволит вам создавать приложения для нескольких версий .NET. Мы сделали существенные архитектурные изменения в VS 2010, чтобы реализовать некоторые новые возможности и в целом намного упростить для разработчиков работу с различными целевыми версиями .NET.

    Понимание установки бок о бок

    VS 2010 можно установить “бок о бок” с предыдущими версиями Visual Studio. Это значит, что вы можете установить ее на одну машину с VS 2008/VS 2005/VS 2003 – и использовать все установленные версии одновременно, если вам захочется.

    .NET 4.0 также может быть установлена на одной машине “бок о бок” с предыдущими версиями .NET. В .NET 4.0 используются новые номера версий как для сборок библиотеки, так и для движка CLR, т.е. она работает совершенно независимо от .NET 2.0, 3.0 и 3.5. Таким образом, вы можете установить .NET 4.0 на машине, где уже установлены .NET 2.0/3.0/3.5, и настроить часть приложений на работу с .NET 4.0, а остальные оставить выполняться с использованием предыдущих версий .NET (для приложений ASP.NET такую настройку можно осуществить с помощью инструмента администрирования IIS). Это позволяет вам использовать .NET 4.0 для новых приложений без необходимости обязательно тестировать по новой и обновлять ваши существующие приложения.

    Поддержка нескольких версий целевых платформ в VS 2008

    VS 2008 была первой версией Visual Studio, где мы реализовали поддержку нескольких версий .NET. Это позволило использовать VS 2008 для создания и редактирования не только проектов для .NET 3.5, но также и проектов для .NET 3.0 и .NET 2.0. За счет этого разработчики смогли быстрее обновиться на новую версию Visual Studio и получить преимущества от использования ее новых возможностей и при этом не требовать установки новой версии .NET на клиентские и серверные машины, где выполняются их приложения.

    При реализации поддержки нескольких версий целевых платформ в VS 2008 мы могли воспользоваться тем обстоятельством, что .NET 2.0, .NET 3.0 и .NET 3.5 выполняются под управлением одной и той же версии CLR, и что основное отличие между этими версиями .NET заключается в библиотеках. В результате компиляторы Visual Studio могли создавать один и тот же IL-код, отладчик мог работать с одним движком CLR, а поддержка нескольких версий целевых платформ в IDE главным образом заключалась в отфильтровывании новых сборок и шаблонов проектов, чтобы они не появлялись в случае выбора версии .NET, с которой они не поддерживаются.

    И эта поддержка нескольких версий целевых платформ работала, хотя и была далека от идеала. IntelliSense в VS 2008 всегда показывает типы и члены для библиотек из .NET 3.5 (даже если вы создаете проект под .NET 2.0). В результате вы, порой, можете по невнимательности начать использовать метод, который реализован лишь ASP.NET 3.5, несмотря на то, что работаете над проектом приложения ASP.NET 2.0.

    Поддержка нескольких версий целевых платформ в VS 2010

    Мы осуществили серьезные архитектурные изменения в VS 2010, чтобы реализовать намного лучшую и более корректную поддержку нескольких целевых платформ.

    В комплект поставки VS 2010 теперь для каждой версии .NET входит то, что мы называем “справочными сборками” (“reference assemblies”). “Справочная сборка” содержит лишь метаданные определенной сборки из каркаса приложения без конкретной реализации (за счет чего существенно сокращается ее размер). Между тем, этих метаданных достаточно, чтобы обеспечить VS 2010 всегда 100%-точную работу IntelliSense при выборе в качестве целевой той или иной версии .NET. Это также означает, что свойства, доступные через перечень свойств в дизайнерах, списки API в обозревателе объектов (Object Browser) и различные другие места в IDE точно отражают сигнатуры соответствующих методов, свойств, объектов выбранной версии API.

    В VS 2010 мы также обновили отладчик, профилировщик и компиляторы, чтобы они поддерживали проекты для различных версий CLR.

    Использование поддержки нескольких версий целевых платформ в VS 2010

    Чтобы лучше понять, как работают эти новые возможности поддержки нескольких версий целевых версий .NET, давайте создадим новое веб-приложение ASP.NET Web с помощью VS 2010. Мы можем выбрать пункт меню “File->New Project”, чтобы появился диалог создания нового проекта. Воспользуемся выпадающим списком для выбора версии в верхней части диалога, чтобы отфильтровать лишь те шаблоны проектов, которые поддерживаются при использовании .NET 2.0. Затем создадим новый проект веб-приложения ASP.NET 2.0:

    step1

    Поскольку для нашего проекта мы выбрали в качестве целевой платформы .NET 2.0, VS 2010 автоматически изменит инструментальную панель и настройку IntelliSense, чтобы позволить нам использовать лишь те элементы управления, которые поставляются с ASP.NET 2.0. В отличие от VS 2008, окно свойств элементов управления в VS 2010 теперь автоматически отфильтровывает свойства и отображает лишь те, которые доступны при использовании элемента управления "кнопка" в ASP.NET 2.0:

    step2

    При написании кода VS 2010 также теперь будет показывать информацию IntelliSense лишь для тех типов и методов/свойств/событий, которые поддерживаются в .NET 2.0. Ниже вы можете увидеть, что показывает IntelliSense объекта “Response” ASP.NET 2.0, когда мы набираем “Response.Re”:

    step3

    Когда мы запустим приложения, используя встроенный в VS веб-сервер, оно будет работать с версией ASP.NET 2.0 (а отладчик VS 2010 будет отлаживать процесс CLR 2.0):

    step5

    Перевод проектов с .NET 2.0 на .NET 4.0

    При желании мы можем изменить целевую версию .NET для нашего проекта на последнюю доступную версию в диалоге свойств проекта, который доступен, например, из контекстного меню проекта в обозревателе решения (solution explorer). Там из выпадающего списка “target framework” мы можем выбрать ту версию .NET Framework, которая нам нужна:

    stp8

    Как показано выше, мы можем выбирать из множества доступных версий .NET. В списке также есть профиль “Server Core”, ориентированный на работу под управлением Windows Server 2008 R2, установленным без графического пользовательского интерфейса; в рамках этого профиля не поддерживаются некоторые API. Поскольку IntelliSense и справочные сборки, которые мы используем для получения метаданных, могут поддерживать любые версии и выпуски, мы даже сможем распространять новые версии справочных сборок вместе с будущими сервис-паками, если в последних появятся какие-либо новые API (что позволит достичь 100% точности работы IntelliSense).

    В нашем примере изменим настройку проекта на использование .NET 4.0. Когда мы это сделаем, VS 2010 автоматически обновит перечень используемых "справочных сборок", а также файл web.config для нашего проекта, чтобы отразить сделанные изменения.

    После изменения целевой версии .NET VS 2010 отфильтрует элементы управления на панели инструментов и информацию для IntelliSense, чтобы все новые элементы управления и свойства, доступные в версии ASP.NET 4.0. К примеру, в перечне свойств на рисунке ниже теперь отображается новое свойство “ClientIDMode”, доступное для всех элементов управления в ASP.NET 4.0. Это свойство позволяет вам управлять тем, как будут создаваться идентификаторы элементов управления на клиенте (client IDs), что позволит вам избежать появления уродливых идентификаторов элементов управления (эта новая возможность ASP.NET 4.0, о которой я напишу позже в своем блоге):

    stp9

    После того, как мы обновили проект для использования .NET 4.0, VS 2010 также начнет показывать нам информацию IntelliSense для новых типов и методов/свойств/событий в .NET 4.0. К примеру, ниже вы можете увидеть некоторые из методов перенаправления, доступные в ASP.NET 4.0 для объекта “Response” (которые прежде не показывались, когда для проекта целевой еще была версия .NET 2.0):

    step7

    Новый метод Response.RedirectPermanent() на рисунке выше позволяет легко разрешить проблемы, связанные с HTTP-ответами “HTTP 301 Moved”, из-за которых число ссылок, набранное вашим сайтом с точки зрения поисковых системы, могло бы оказаться меньше, чем хотелось бы. Теперь и приложения на базе ASP.NET Web Forms, и приложения на базе ASP.NET MVC поддерживают URL Routing engine, так что новый метод Response.RedirectToRoute() позволит вам легко перенаправлять запросы на нужный маршрут.

    Наконец, когда приложение из нашего проекта будет запускаться на встроенном в VS веб-сервере, VS 2010 станет выполнять его, используя версию ASP.NET 4.0:

    step9

    Резюме

    Поддержка нескольких целевых версий .NET в VS 2010 позволяет вам работать над проектами под версии .NET 4.0, .NET 3.5, .NET 3.0 и .NET 2.0. Благодаря этому вы можете воспользоваться всеми преимуществами новой версии среды разработки без необходимости немедленно обновить клиентские машины и сервера, на которых выполняются ваши приложения, до .NET 4.0. А благодаря улучшенной поддержке нескольких целевых версий платформы работу с такими проектами в VS стала корректнее и еще удобнее, чем прежде.

    Надеюсь, вы нашли для себя что-то полезное,

    Скотт

    P.S. Помимо блога, я в последнее время еще использую Twitter, чтобы публиковать краткие заметки и новые ссылки. Следить за моими публикациями на Twitter вы можете здесь: http://www.twitter.com/scottgu (@scottgu - это мой псевдоним на twitter)

    оригинал статьи

  • Шаблоны проектов в VS 2010

    Это вторая статья в серии статей про грядущий выпуск VS 2010 и .NET 4.

    В этот раз мы поговорим о еще одном небольшом, но как мне кажется, интересном изменении, которое появится в VS 2010 и .NET 4. Изменение касается шаблонов при создании проектов ASP.NET, которые теперь содержат как «пустые» проекты ASP.NET так и новые шаблоны с набором базового функционала. Эти шаблоны могут помочь вам начать создавать новые приложения.

    Создание новых проектов

    Когда вы используете пункт меню File->New Project или File->New Web Site в VS 2010, вы увидите диалог «New Project», как представлено ниже на картинке, который позволяет вам отфильтровать список по языку и типу приложения и выбрать различные шаблоны проектов для создания нового проекта:

    VS 2010 содержит новый шаблон «пустого» проекта для создания новых приложений ASP.NET, который позволит создавать минимальные по содержанию стартовые проекты. В моей предыдущей статье есть скриншот, который показывает что создаст шаблон “Empty ASP.NET Web Application”, если вы его используете.

    Создание новых проектов с использованием Starter Template

    VS 2010 кроме всего прочего содержит стартовые шаблоны проектов, которые позволяют вам создавать новые приложения ASP.NET с некоторой готовой структурой разметки, с набором CSS и уже реализованной общей функциональностью.

    Впервые мы попробовали это решение для проектов на базе ASP.NET MVC 1.0, шаблон для этого проекта содержит master page, файл CSS, библиотеки Javascript, систему авторизации, страницы «home» и «about». В VS 2010 эта идея реализована и для новых проектов типа ASP.NET Web Forms.

    Когда вы выбирете шаблон по умолчанию «ASP.NET Web Application», вы обнаружите, что новый проект ASP.NET Web Forms создан с готовым набором директорий и файлов:

    Созданный проект содержит мастер-страницу Site.Master, которая определяет базовую разметку для всего сайта (с заголовками, подвалом и т.д.) и которая использует CSS-файл для всех стилей. Кроме того, в проекте присутствует папка «scripts», которая содержит jQuery (ASP.NET AJAX достпен через элемент script manager). Проект так же содержит страницы «default.aspx» и «about.aspx» в корневой директории, которые основаны на мастер-странице и содержат некий базовый контент. В проекте есть и папка «Account», которая содержит страницы с реализованным базовым функционалом авторизации и регистрации пользователей:

    Вы можете запустить проект без написания строчки кода или какой-либо конфигурации и получить приятный работающий сайт:

    Этот сайт полностью поддерживает атентификаию основанную на формах и поддерживает систему ASP.NET Membership для управления паролями для пользователей:

    Все оформление и дизайн содержимого сайта основано на CSS и сайт использует новые полезные вещи из ASP.NET 4, такие как улучшенная работа с клиентскими ID (больше никаких имен типа «ctrl_*», вместо этого ASP.NET 4 дает вам полный контроль над именованием элементов управления) и основанный на CSS рендеринг элементов управления, взамен основанного на таблицах, как было ранее. Я расскажу про эти новые фунции и изменения в Web Forms более полно в следующих статьях этой серии (с описанием многих других функций, которые были добавлены).

    Галерея шаблонов Online

    В дополнение к встроенным шаблонам, VS 2010 поддерживает возможность поиска дополнительных шаблонов по online-галерее внутри диалогов «New Project» и «Add Item». Вы можете поставлять свои собственные шаблоны в галерею, оценивать чужие шаблоны и писать для них обзоры. Есть возможность поиска и фильтрации списка шаблонов по типу проекта, ключевому слову и рейтингу сообщества. Выбрав шаблон, вы можете легко загрузить его и установить локально через диалог:

    Мы надеямся, что этот функционал поспособствует созданию массы полезных шаблонов стартовых проектов (не только для web, но и для других областей), так что люди смогут легко найти и быстро получить решение для своих задач.

    Надеюсь эта статья была для вас полезной,

    Скотт

    P.S. В дополнение к ведению блога, я часто использую Твиттер, для того чтобы быстро опубликовывать сообщения и делиться ссылками. Вы можете следить за мной на Твиттере: www.twitter.com/scottgu (@scottgu — это мое имя в Твиттере).

  • Упрощенные файлы web.config

    Это первая статья из запланированного мной цикла статей по ожидаемым VS 2010 и .NET 4. Эта статья будет небольшой, но мне кажется она описывает очень полезное изменение, которое будет в ASP.NET 4.0: простые и сокращенные файлы web.config. Вы столкнетесь впервые с этим изменением, когда создадите в Visual Studio 2010 новый пустой проект ASP.NET 4.0 Web application через File->New Project (именно поэтому я взял эту тему для первой статьи).

    Файлы Web.config в .NET 3.0 и 3.5

    С каждым последующим релизом .NET, файлы web.config включенные в проекты ASP.NET увеличивались в размере. Например: файл web.config используемый по умолчанию при создании нового проекта в Visual Studio 2008 SP1 вырос до 126 строк, которые содержат все: от описаний секций до определений обработчиков и модулей, включенных в механизм обработки ASP.NET http-запросов. Это увеличение в размере происходит потому, что .NET 3.0 и .NET 3.5 используют тот же самый CLR и конфигурационный файл machine.config, которые были включены в .NET 2.0 — и поэтому просто добавляют или обновляют сборки при установке. Чтобы избежать риска непреднамеренной перезаписи пользовательских настроек в оригинальном файле machine.config 2.0, мы не регистрировали определения секций, обработчиков и модулей, которые появлились с выходом .NET 3.0 и 3.5 в machine.config. Вместо этого, мы по умолчанию регистрировали все эти данные в в локальном для приложения файле web.config. Это безопаснее, но привело к тому, что файлы web.config выросли в размере и стали трудночитаемыми.

    Файлы Web.config в .NET 4

    .NET 4 содержит новую версию CLR и новый файл machine.config специфический для .NET 4 (который устанавливается рядом с имеющимся файлом для .NET 2, .NET 3 и .NET 3.5).

    Новый файл machine.config для .NET 4 теперь автоматически регистрирует все секции ASP.NET, обработчики и модули, те которые мы добавляли год за годом, включая функционал для:

    • ASP.NET AJAX
    • ASP.NET Dynamic Data
    • ASP.NET Routing (механизм, который может быть использован как для ASP.NET WebForms так и ASP.NET MVC)
    • ASP.NET Chart Control (который отныне будет встроен в поставку ASP.NET V4)

    Все эти изменения означают, что когда вы создадите новый проект «Empty ASP.NET application» в VS 2010, вы увидите новый упрощенный и уменьшенный web.config используемый по умолчанию в приложении:


    Первая секция конфигурации сообщает ASP.NET о том, что отладка должна быть включена для приложения по умолчанию и указывает версию .NET, на которую должна быть нацелена Visual Studio во время работы механизма intelliSense (VS2010 поддерживает многоцелевую разработку, поэтому intelliSense в IDE будет автоматически подстраиваться под верисю фреймворка, которую вы укажите).

    Вторая секция конфигурации указывает на то, нужно ли использовать «интегрированный» режим во время запуска ASP.NET-приложения на IIS7. Эта настройка определяет, необходимо ли запускать все ASP.NET HttpModules для всех запросов к приложению или только для URL специфичных для ASP.NET. Мы установили это значение в true, разрешив механизм по умолчанию для новых ASP.NET приложений, так как по соображениям совместимости настройки IIS7 по умолчанию установлены так, что модули ASP.NET HttpModules запускаются только для URL специфичных для ASP.NET (а не для всех запросов).

    Заключение

    Упрощенный файл web.config — это небольшое изменение, но несмотря на это, я думаю, что это изменение сделает вашу работу с созданием проектов на ASP.NET с нуля немного более удобным и доступным. В последующих статьях, я оставновлюсь на многих других более важных улучшениях, которые появятся в ASP.NET 4 (но мелкие и приятные вещи будут тоже).

    Надеюсь эта статья была вам полезной,
    Скотт

More Posts Next page »

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker