Санкт-Петербургский государственный университет
Опубликован: 25.07.2014 | Доступ: свободный | Студентов: 1041 / 80 | Длительность: 17:26:00
Лекция 16:

Перспективы Visual Studio

Заключение

В курсе рассмотрены возможности новой версии интегрированной среды Visual Studio 2013 - выдающегося программного продукта фирмы Microsoft, имеющего миллионы пользователей во всем мире. Рассмотрены как базовые возможности, так и новые уникальные черты. Особое внимание уделено использованию Visual Studio 2013 для облачных вычислений на платформе Microsoft Azure.

При подготовке курса инсталлированы самые новые версии самой среды (Visual Studio 2013 Ultimate Update 2) и сопутствующих инструментов - Windows Phone 8.1 SDK, Team Foundation Server. Я испытал удивительное, ни с чем не сравнимое ощущение того, как столь интересный и мощный программный продукт и его новые контуры как бы "рождаются из-под пера" талантливых разработчиков из Microsoft, за что выражаю корпорации Microsoft огромную благодарность.

Материал отражает текущее состояние на момент написания курса - июнь 2014 года.

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

Желаю разработчикам Microsoft новых выдающихся успехов, а читателям и пользователям Visual Studio - успешной работы в этой удивительной среде.

Общий глоссарий

Генератор тестов (unit test generator) - инструмент для генерации типовых тестов для тестирования модулей (units) - методов или процедур - с различными возможными сочетаниями значений аргументов; типичные примеры - инструмент JUnit в интегрированных Java-средах и аналогичный инструмент NUnit в среде Visual Studio
Инструменты поддержки коллективной разработки программ (teamwork) - инструменты поддержки этапов жизненного цикла программы (требования и спецификации, проектирование, реализация, тестирование), распределения заданий по разработке среди участников команды программистов, контроля выполнения заданий менеджером проекта. В среде Visual Studio такая компонента называлась сначала Team Foundation Server (TFS), а, начиная с версии Visual Studio 2013, она реализована в виде облачного интерфейса и получила название Visual Studio Online.
Интегрированная среда (integrated development environment - IDE) - набор инструментов для разработки и отладки программ, имеющий общую интерактивную графическую оболочку, поддерживающую выполнение всех основных функций жизненного цикла разработки программы - набор и редактирование исходного текста (кода), компиляцию (сборку), исполнение, отладку, профилирование и др.
Набор инструментов (toolkit, toolbox) - набор инструментов разработки программ, родственных по тематике и функциональности, но не объединенных в одну интегрированную интерактивную среду и вызываемых в командном режиме
Рефакторинг (refactoring) - инструментарий систематических групповых модификаций программ в среде, без принципиальных изменений их функциональности, с целью улучшения кода. К типичным подобным действиям относится, например, изменение имени метода в его определении и во всех использованиях, добавление его аргумента, добавление try-catch - блока для обработки ранее не учтенного исключения и т.п.
Система поддержки сборки (build) - инструментарий для компиляции проектов из исходных кодов, включающая компилятор с исходного реализуемого языка и компоновщик (linker) объектных бинарных кодов в единый исполняемый код (загрузочный модуль); компоновщик используется либо штатный, поставляемый вместо с ОС, либо специфичный для данной среды
Турбо-среды (Turbo Pascal, Turbo C, Turbo C++, Delphi и др.) - интегрированные среды фирмы Borland для поддержки программирования на конкретных языках, реализованные сначала для операционной системы MS DOS, затем - для Windows
GNU Emacs - многоязыковая и многоплатформная интегрированная среда разработки, реализованная для MS DOS, затем для Windows, OpenVMS и для Linux
.NET - объектно-ориентированная многоязыковая платформа программирования, стандартизированная международными стандартами ISO и имеющая несколько реализаций, в том числе - Microsoft.NET, разработанную фирмой Microsoft
C# - новейший объектно-ориентированный язык программирования, разработанный и активно развиваемый фирмой Microsoft, являющийся основным языком программирования для платформы .NET
Visual Basic - язык программирования, объектно-ориентированное расширение языка Basic, разработанный и развиваемый фирмой Microsoft
Visual C++ - язык программирования, расширение языка C++, разработанное и развиваемое фирмой Microsoft
Visual FoxPro - один из ранних объектно-ориентированных языков программирования, разработанный фирмой Microsoft, содержащий средства обращения к базам данных, совместимым с языком запросов SQL
Visual Studio - интегрированная среда разработки фирмы Microsoft.
CLI (Common Language Infrastructure) - общая инфраструктура языков платформы .NET
CIL (Common Intermediate Language) - единый промежуточный язык платформы .NET, бинарная форма постфиксной записи инструкций виртуальной машины .NET
CTS (Common Type System) - общая система типов платформы .NET
WSDL (Web Service Description Language) - синхронный протокол для реализации Web-сервисов и взаимодействия с ними, используемый, в частности, для платформы .NET
Add-in (расширение) - Расширение среды Visual Studio дополнительным пользовательским интерфейсом для управления специализированными функциями
GUID - глобальный уникальный идентификатор объекта; используется в компонентной модели COM
NuGet - инструмент Visual Studio для управления программными пакетами
Spy++ - инструмент для управления окнами, потоками, процессами и сообщениями среды Visual Studio
Team Foundation Server (TFS) - инструмент для поддержки командной разработки программ в среде Visual Studio
Контрольная точка (breakpoint) - точка (строчка) в программе, которая может быть установлена в отладчике для постедующей контрольнойё остановке в данной точке в ходе отладки.
Проект (project) - концепция среды Visual Studio, предназначенная для поддержки разработки программы того или иного назначачения
Решение (solution) - концепция среды Visual Studio, предназначенная для группировки проектов.
Сборка (build) - компиляция проекта в среде
Отладка (debugging) - поиск ошибок и исследование программы путем установки и использования контрольных точек и визуализации динамической картины выполнения программы, состояния стек3а и переменных в каждой контрольной точке.
Профилирование (profiling) - получение динамических характеристик программы (использование процессора, вызовы методов, использование памяти и др.) путем контрольных прогонов программы и сбора статистической информации в ходе прогонов в специальной базе данных, файле или директории).
Шаблон (template) - заготовка кода для какого-либо вида проектов, в которую разработчик должен добавить свой конкретный код
JavaScript - динамический объектно-ориентированный язык, широко используемый в браузерах для анимации Web-страниц
TypeScript - расширение языка JavaScript со строгой типизацией, реализованное фирмой Microsoft в обновлении 2 среды Visual Studio 2010
Итератор (iterator) - конструкция в языках программирования для перебора элементов коллекции
Параметризованные типы (generics) - возможности обобщенного программирования в современных языках, обеспечивающие разработку в общем виде алгоритмов обработки коллекций
Верификация - проверка корректности разработки программы в виде тестирования (прогона набора тестов) или в виде формального доказательства корректности программы (т.е. соответствия ее реализации ее спецификации).
Водопадная модель жизненного цикла - классическая модель разработки программы в виде совокупности этапов, выполняемых последовательно.
Жизненный цикл разработки программы - последовательность этапов, из которых состоит разработка программы: выработка требований, спецификация, проектирование, реализация, верификация (тестирование), сопровождение, выпуск программного продукта.
Моделирование программы - разработка формальной модели программы, выполняемая, как правило, на языке Unified Modeling Language (UML).
Рефакторинг (refactoring) - систематические автоматизированные преобразования программного кода с целью улучшения его структуры, без коренных изменений в его семантике.
UML (Unified Modeling Language) - язык моделирования для построения формальных моделей программ и процессов их разработки.
Бригада главного программиста - классический метод организации командной разработки программ Ф.П. Брукса (IBM)
Командная разработка программы - процесс выполнения жизненного цикла разработки программы командой проекта.
Agile development - современная схема организации процесса гибкой разработки программ, с кратковременными этапами и анализом результата в конце каждого этапа.
CMMI - современный метод командной разработки программ на основе тщательно разработанных количественных критериев оценки работы каждого члена команды и специальных программных инструментов для этой цели.
Security Development Lifecycle - современный метод организации процесса разработки безопасных программ (Microsoft).
Scrum - одна из современных схем организации процесса гибкой разработки программ, с кратковременными этапами и анализом результата в конце каждого этапа, относящаяся к группе методов agile development
Team Foundation Server - инструмент для организации командной разработки проектов в Visual Studio.
Visual Studio Online - новый облачный инструмент для организации командной разработки проектов в Visual Studio.
Microsoft Azure - облачная платформа фирмы Microsoft
SQL Azure - облачная версия СУБД Microsoft SQL Server.
Архитектор облака - главный разработчик его архитектуры.
Внутренние приложения (on-premises applications) - приложения, исполняемые на локальном компьютере пользователя.
Интегратор облака - его системный администратор, отвечающий за добавление компонент в облако и их изменение.
Инфраструктура как сервис (Infrastructure as a Service - IaaS) - модель обслуживания клиентов облака, при которой провайдер облака предлагает реальные или виртуальные машины и их ресурсы: образы дисков, виртуальные локальные сети и др.
Облако сообщества (community cloud) - менее масштабная модель облака, при которой облачная инфраструктура предоставляется какому-либо сообществу, т.е. более узкому кругу лиц.
Облачные вычисления (сloud computing) - вычисления, основанные на масштабированных и виртуализованных ресурсах (данных и программах), которые доступны пользователям через Интернет и реализуются на базе мощных центров обработки данных (data centers).
Облачные приложения (cloud applications) - приложения, фактически исполняемые в среде облачных вычислений (например, Microsoft Azure) на компьютерах центра обработки данных.
Общедоступное облако (public cloud) - модель облака, при которой облачные приложения, память и другие ресурсы доступны любому пользователю.
Платформа как сервис (Platform as a Service - PaaS) - модель обслуживания клиентов облака, при которой провайдер облака предлагает клиентам компьютерную платформу: операционную систему, окружение для выполнение программ на языках программирования, базу данных и Web-сервер.
Поставщик облака - центр обработки данных, поддерживающий облачные вычисления.
Программное обеспечение как сервис (Software as a Service - SaaS) - модель обслуживания клиентов облака, при которой провайдер облака инсталлирует в облаке прикладные программы, которые используются клиентами облака.
Уровень инфраструктуры - предоставление полной виртуализованной платформы через облако, например, Amazon AWS.
Уровень клиента - клиентское ПО, используемое для доступа к облачным сервисам, например, web- браузер.
Уровень памяти - поддержка хранения данных пользователя и доступа к ним через облако.
Уровень платформы - программная платформа, объединяющая полный набор инструментов для развертывания и использования облачных вычислений на пользовательском компьютере (без дополнительных инсталляций, покупки оборудования и др.).
Уровень приложений - программы, доступные через облако и не требующие инсталляции на компьютере пользователя (в последнем - одно из главных преимуществ облачной модели).
Уровень сервисов - облачные сервисы, используемые через облачную модель.
Центр обработки данных (ЦОД, data center) - мощный вычислительный центр, состоящий из компьютеров, объединенных в локальную сеть, обслуживающих сервисы облачных вычислений некоторой компании.
Частное облако (private cloud) - модель облака, при которой облачные услуги предоставляются только сотрудникам какой-либо организации.
Azure SDK - инструментальный программный комплекс для поддержки разработки облачных сервисов в среде Visual Studio 2013
http://manage.windowsazure.com - портал Microsoft Azure
ServiceDefinition.csdef.xml - конфигурационный файл определения облачного сервиса, после публикации в облаке преобразуемый в спецификацию WSDL-интерфейса
ServiceConfiguration.Cloud.cscfg.xml - конфигурационный файл для развертывания сервиса в облаке; содержит число экземпляров Web-роли.
ServiceConfiguration.Local.cscfg.xml - конфигурационный файл для запуска сервиса на локальном компьютере на эмуляторе облака; содержит число экземпляров Web-роли.
VM-роль - виртуальная машина, развернутая в облаке Azure.
Web-роль - облачный сервис с Web-интерфейсом, развернутый в облаке Azure.
Worker-роль - фоновый вычислительный процесс, развернутый в облаке Azure.
Развертывание в облаке - запуск облачного Web-сервиса с целью его последующего использования.
Публикация в облаке - создание Web-сайта с URL-адресом специального вида в домене облака Azure с целью его последующего развертывания.
NuGet - утилита интегрированной среды VS 2013 для поиска и инсталляции внешних программных пакетов.
Push-уведомления - сообщения и экранные формы, отправляемые мобильным сервером мобильным клиентам
Windows Phone SDK - инструментальный комплекс для разработки и отладки мобильных приложений и мобильных сервисов для платформы Windows Phone.
Мобильное приложение - клиентское приложение, выполняемое на мобильном устройстве и взаимодействующее с облачным мобильным сервисом и обслуживаемым им облачной базой данных.
Мобильный сервис - облачный сервис, обеспечивающий взаимодействие с клиентскими мобильными приложениями.
Магазин приложений Windows (Windows Store) - приложение в новых операционных системах фирмы Microsoft - Windows 8 / 8.1 и Windows RT, предназначенное для обмена полезными программами, их продажи и покупки
XAML - язык разметки гипертекста на основе XML, позволяющий сочетать разметку Web-страницы с фрагментами кода на языках C# или Visual Basic
Аспектно-ориентированное программирование (АОП) - новый перспективный подход к разработке и модернизации программ, предназначенный для поддержки сквозной функциональности (cross-cutting concerns) в программах
Aspect.NET - инструмент АОП для платформы .NET, разработанный группой под руководством автора курса.
Microsoft Enterprise Library Integration Pack for Windows Azure - решение компании Microsoft для выделения "сквозной функциональности" при разработке облачных приложений ( требует для этого модификации их исходного кода).
Анализатор кода в среде Visual Studio 2013 - часть интегрированной среды, обеспечивающая анализ кода проекта (решения) на типичные ошибки и проблемы безопасности, надежности и другие проблемы truatworthy computing.
Надежные и безопасные вычисления (trustworthy computing) - актуальное направление ИТ, имеющее целью на улучшение надежности и безопасности кода, соблюдение конфиденциальности информации, оперативность и корректность бизнеса по разработке и сопровождению программ.
Безопасность (security) - устойчивость кода программного продукта к внешним угрозам и атакам, способность к их предотвращению и отражению (ослаблению их эффекта).
Надежность (reliability) - способность кода программного продукта обеспечивать специфицированное для него ожидаемое поведение в заданных условиях.
Соблюдение конфиденциальности информации (privacy) - сохранение кодом программного продукта конфиденциального статуса для любой используемой им частной или корпоративной информации о пользователе, его приложениях и инфраструктуре.
Оперативность и корректность бизнеса (business integrity) - быстрота, качественность и полнота сопровождения программного продукта, а также соблюдение фирмой-разработчиком программного продукта всех законодательных актов и юридических установлений.
lint - классический верификатор исходного кода в системе UNIX.
Perspectives - расширение Visual Studio для управления конфигурациями часто используемых окон
VSIP (Visual Studio Industrial Partner) - программа сотрудничества Microsoft и фирм-пользователей Visual Studio
Сопрограммы - классический механизм взаимодействия процессов, при котором управление явно передается от одного процесса другому оператором resume.
Александр Калинин
Александр Калинин

Осенью прошёл курс и получил ключ. Но т.к. уже имел действующую подписку, то ключом не воспользовался. Сейчас захожу сюда, а про DreamSpark вообще ни слова. Где же мой ключ?