- История и концепция IDE
- Компоненты и возможности IDE
- Особенности различных версий Visual Studio
- Архитектура, идеи, принципы, и преимущества .NET
- Пример определения класса в языке C#
- Структура распределенного Web-приложения и инфраструктура Web-сервиса в .NET
- Простой пример кода Web-сервиса, выполняющего вычитание двух чисел и выдающего результат
- Некоторые возможности .NET Framework 4.5.1
- Система типов .NET
- Издания Visual Studio 2013
- Пример создания консольного проекта
- Информация о структуре решения и проекта
- Языки программирования
- Водопадная модель жизненного цикла программы
- UML
- Рефакторинг, тестирование, и сопровождение
- Командная разработка проектов в Visual Studio 2013
- Облачные вычисления
- Visual Studio Online и Team Explorer
- Создание учетной записи VS Online через облако Microsoft Azure
- Azure SDK
- Мобильные сервисы
- Windows Store
- Aspect.NET
- Trustworthy Computing (TWC)
- Trustworthy computing в Visual Studio 2013
- Рекомендации по дальнейшему развитию
Показаны сообщения с ярлыком Обзор возможностей Visual Studio 2013. Показать все сообщения
Показаны сообщения с ярлыком Обзор возможностей Visual Studio 2013. Показать все сообщения
Обзор возможностей Visual Studio 2013
27 Обзор возможностей Visual Studio 2013. Рекомендации по дальнейшему развитию
Расширение Perspectives аналогично по возможностям одноименному расширению другой широко известной интегрированной среды - Eclipse. Расширение Perspectives появилось в 2011 году, после выпуска Visual Studio 2010. Оно предназначено для управления конфигурациями окон, используемыми при работе в среде. С его помощью можно создать удобную конфигурацию окон, соответствующую часто повторяемым действиям. Расширение содержит менеджер окон, позволяющий управлять их конфигурациями.
Microsoft организовала программу VSIP - Visual Studio Industry Partner. Любая компания может заключить с Microsoft соглашение о партнерстве в области развития и использования Visual Studio в своем бизнесе. Фирма Microsoft предоставит поддержку в виде технической документации и информационных материалов. Имеются cпециальные страницы MSDN, посвященные программе VSIP и другим видам интеграции с Visual Studio.
Имеется также несколько видов интеграции программного обеспечения с Visual Studio c некоммерческими (учебными и исследрвательскими) целями:
Наиболее простая и реальная возможность участия в развитии Visual Studio - разработка add-ins (расширений) Visual Studio, позволяющая интегрировать с ней Ваши разработки.
Параметры-константы в параметризованных типах (generics). В настоящее время в языке C# в параметризованных типах реализованы только параметры-типы. Между тем, в первоначальной идее generics, реализованной в языке CLU, кроме параметров-типов, имелись также параметры-константы. На мой взгляд, они были бы полезны и в C# - например, параметризованный тип Stack с двумя параметрами: первый - тип элементов стека, второй - максимальный размер (глубина) стека.
Cопрограммы (coroutines). Механизм сопрограмм широко известен еще с 1960-х гг. Он заключается в особого рода взаимодействии параллельно или квазипараллельно выполняемых процессов (или потоков). Если условно обозначить два процесса через process M и process N, то сопрограммное взаимодействие можно представить следующим образом. Внутри каждого процесса имеется локальное управление (ссылка на текущую команду). Процесс M может переключить управление на процесс N оператором: resume N. При этом локальное управление в M запоминается, и активизируется процесс N, начиная с начала, если он пока не исполнялся, либо с приостановленного места, если он был ранее приостановлен. Обратная операция ("возврат" в M) не обязательна, в отличие от подпрограммной (процедурной) взаимосвязи. Например, процесс N может выполнить оператор resume K, и т.д. Другой оператор, который может быть выполнен для каждого из процессов, - это оператор detach. Этот оператор останавливает сценарий выполнения процесса и превращает его в пассивные данные, доступ к которым возможен через поля (атрибуты) процесса. Описанный механизм удобен для задач моделирования систем с дискретными событиями и впервые использован в языке SIMULA 67 в 1960-х гг. Несмотря на свою важность, сопрограммы пока не представлены в общем виде в .NET CLR. Пока в языке C# реализован лишь частный случай сопрограммного взаимодействия - взаимосвязь заголовка цикла по коллекции с его телом, при котором очередной обрабатываемый элемент коллекции передается от заголовка цикла к его телу оператором yield return (обозначения и семантика почти совпадают с оператором yield, используемым в итераторах языка CLU). Мне кажется, было бы целесообразно реализовать сопрограммы в общем виде в языке C#, либо даже в .NET CLR.
Microsoft организовала программу VSIP - Visual Studio Industry Partner. Любая компания может заключить с Microsoft соглашение о партнерстве в области развития и использования Visual Studio в своем бизнесе. Фирма Microsoft предоставит поддержку в виде технической документации и информационных материалов. Имеются cпециальные страницы MSDN, посвященные программе VSIP и другим видам интеграции с Visual Studio.
Имеется также несколько видов интеграции программного обеспечения с Visual Studio c некоммерческими (учебными и исследрвательскими) целями:
- Разработаны библиотеки (REST API) для интеграции Ваших приложений и сервисов с Visual Studio Online, облачным решением для командной разработки проектов;
- Имеется возможность расширения среды Visual Studio (элементов управления, функциональности и т.д.), используя Visual Studio SDK и Team Foundation Server SDK и, в результате, создания экспериментальной версии среды Visual Studio;
- Имеется аналогичная возможность расширения Team Foundation Server.
Наиболее простая и реальная возможность участия в развитии Visual Studio - разработка add-ins (расширений) Visual Studio, позволяющая интегрировать с ней Ваши разработки.
Параметры-константы в параметризованных типах (generics). В настоящее время в языке C# в параметризованных типах реализованы только параметры-типы. Между тем, в первоначальной идее generics, реализованной в языке CLU, кроме параметров-типов, имелись также параметры-константы. На мой взгляд, они были бы полезны и в C# - например, параметризованный тип Stack с двумя параметрами: первый - тип элементов стека, второй - максимальный размер (глубина) стека.
Cопрограммы (coroutines). Механизм сопрограмм широко известен еще с 1960-х гг. Он заключается в особого рода взаимодействии параллельно или квазипараллельно выполняемых процессов (или потоков). Если условно обозначить два процесса через process M и process N, то сопрограммное взаимодействие можно представить следующим образом. Внутри каждого процесса имеется локальное управление (ссылка на текущую команду). Процесс M может переключить управление на процесс N оператором: resume N. При этом локальное управление в M запоминается, и активизируется процесс N, начиная с начала, если он пока не исполнялся, либо с приостановленного места, если он был ранее приостановлен. Обратная операция ("возврат" в M) не обязательна, в отличие от подпрограммной (процедурной) взаимосвязи. Например, процесс N может выполнить оператор resume K, и т.д. Другой оператор, который может быть выполнен для каждого из процессов, - это оператор detach. Этот оператор останавливает сценарий выполнения процесса и превращает его в пассивные данные, доступ к которым возможен через поля (атрибуты) процесса. Описанный механизм удобен для задач моделирования систем с дискретными событиями и впервые использован в языке SIMULA 67 в 1960-х гг. Несмотря на свою важность, сопрограммы пока не представлены в общем виде в .NET CLR. Пока в языке C# реализован лишь частный случай сопрограммного взаимодействия - взаимосвязь заголовка цикла по коллекции с его телом, при котором очередной обрабатываемый элемент коллекции передается от заголовка цикла к его телу оператором yield return (обозначения и семантика почти совпадают с оператором yield, используемым в итераторах языка CLU). Мне кажется, было бы целесообразно реализовать сопрограммы в общем виде в языке C#, либо даже в .NET CLR.
26 Обзор возможностей Visual Studio 2013. Trustworthy computing в Visual Studio 2013
Проверки при наборе (вводе) кода. При вводе кода в редакторе, кроме проверок его синтаксической правильности (например, указания на незакрытую скобку, отсутствующую точку с запятой и т.д.), выполняются также проверки на осмысленность, семантическую корректность кода. Например, диагностируется ввод недостижимого кода (unreachable code) - например, если введен оператор if, в котором часть кода в одной из альтернатив, перед которой сти оператор break, оказывается недостижимой. В таких случаях на вкладке сообщений об ошибках выдаются соответствующие предупреждения, помеченные желтым осклицательным знаком.
Проверки, выполняемые компилятором. Например, если на языке Visusal C# в коде описана переменная x без инициализации, а затем она используется, компилятор выдает сообщение об ошибке. В отличие от более старых языков, например, Си или C++ (в unmanaged-варианте), в новых языках, таких, как C#, подобная ситуация считается ошибкой и не приводит вместо этого к ненадежному "случайному" поведению кода, зависящему от значения, случайно оказавшегося значением переменной.
Анализ кода. В главном меню среды имеется специальный пункт Analyze (расположен справа от пункта Architecture). Он содержит ряд действий по анализу кода, важных как с точки зрения надежных и безопасных вычислений, так и с точки зрения проверки качества кода (например, его эффективности). Данный пункт меню имеет следующие подпункты:
Тестирование и анализ результатов тестирования кода с помощью инструментов Visual Studio. Как уже говорилось, среда Visual Studio содержит генератор unit-тестов NUnit (точнее, этот инструмент может быть дополнительно инсталлирован в среду Visual Studio как внешний программный пакет с помощью утилиты NuGet) и средства запуска unit-тестов, управления их запуском и анализа результатов тестирования. Имеются и другие генераторы тестов для среды Visual Studio. В настоящее время тестирование до сих пор остается основным методом верификации (проверки правильности) кода, очень важной с точки зрения надежных и безопасных вычислений. Следует учесть, что в текстах справки и поддержки (help) и в документации по Visual Studio термин верификация (verification) означает именно тестирование, а не формальную верификацию (доказательство соответствия реализации кода его формальной спецификации). Возможно, в будущих версиях появится и встроенный верификатор, аналогично системе Spec#, основанной на спецификации кода в стиле design-by-contract, которая остается пока исследовательской разработкой Microsoft Research и не является частью коммерческой версии Visual Studio. Доступна как plug-in.
Проверки, выполняемые компилятором. Например, если на языке Visusal C# в коде описана переменная x без инициализации, а затем она используется, компилятор выдает сообщение об ошибке. В отличие от более старых языков, например, Си или C++ (в unmanaged-варианте), в новых языках, таких, как C#, подобная ситуация считается ошибкой и не приводит вместо этого к ненадежному "случайному" поведению кода, зависящему от значения, случайно оказавшегося значением переменной.
Анализ кода. В главном меню среды имеется специальный пункт Analyze (расположен справа от пункта Architecture). Он содержит ряд действий по анализу кода, важных как с точки зрения надежных и безопасных вычислений, так и с точки зрения проверки качества кода (например, его эффективности). Данный пункт меню имеет следующие подпункты:
- Performance and Diagnostics - анализ производительности программы;
- Profiler - профилирование программы (см. "Обзор возможностей .NET" );
- Run Code Analysis on Solution - самый важный пункт, с точки зрения надежных и безопасных вычислений; о нем подробнее - ниже. Выполняет анализ всего кода решения;
- Configure Code Analysis for Solution - установки для анализа кода решения;
- Run Code Analysis on <project name> - выполняет анализ кода только указанного проекта, входящего в решение;
- Configure Code Analysis for<project name> - установки для анализа кода проекта;
- Calculate Code Metrics for Solution - вычисление набора метрик для кода решения; анализ этих метрик важен для оценки качества кода, а в некоторых случаях - и его надежности. Примеры метрик: цикломатическое число графа управления программы; число операторов и описаний в программе; степень сцепления классов и методов в классе;
- Analyze Solution for Code Clones - анализ и диагностика совпадающих участков (клонов) кода. Читатель без труда поймет, в каких ситуациях это возможно и насколько это важно;
- Windows - переключение на окна основных инструментов этого пункта: Performance Explorer, результатов анализа кода, результатов вычисления метрик кода, результатов анализа кода на наличие клонов.
Тестирование и анализ результатов тестирования кода с помощью инструментов Visual Studio. Как уже говорилось, среда Visual Studio содержит генератор unit-тестов NUnit (точнее, этот инструмент может быть дополнительно инсталлирован в среду Visual Studio как внешний программный пакет с помощью утилиты NuGet) и средства запуска unit-тестов, управления их запуском и анализа результатов тестирования. Имеются и другие генераторы тестов для среды Visual Studio. В настоящее время тестирование до сих пор остается основным методом верификации (проверки правильности) кода, очень важной с точки зрения надежных и безопасных вычислений. Следует учесть, что в текстах справки и поддержки (help) и в документации по Visual Studio термин верификация (verification) означает именно тестирование, а не формальную верификацию (доказательство соответствия реализации кода его формальной спецификации). Возможно, в будущих версиях появится и встроенный верификатор, аналогично системе Spec#, основанной на спецификации кода в стиле design-by-contract, которая остается пока исследовательской разработкой Microsoft Research и не является частью коммерческой версии Visual Studio. Доступна как plug-in.
К числу проверок относятся проверки безопасности (например, наличия аннотирования кода соответствующими атрибутами безопасности), проверки соблюдения Common Language Specification (CLS compliance), характерных для платформы .NET; CLS-совместимость гарантирует возможность сочетания в коде решения для .NET использования разных языков (пример правила CLS-совместимости: не рекомендуется иметь в определении класса метод и поле с одним и тем же именем, хотя языком C# это не запрещается), проверки правильности дизайна (например, отсутствия конструкторов в абстрактных классах, которых не должно быть, так как от абстрактного класса, по его природе, нельзя образовывать объекты).
Как эксперт по надежным и безопасным вычислениям, я проверил на небольших работающих примерах специфику некоторых проверок в VS 2013. Имеются классические верификаторы (анализаторы исходного кода), такие, как lint, который входил еще в первые версии системы UNIX и выполнял проверки корректности кода на языке Си. С этой точки зрения, некоторых проверок в анализаторе кода в среде VS 2013 немного нехватает.
Например, классическая ситуация: в коде использовано недостижимое условие
if (x == 1 && x == 2)
(программист в спешке перепутал логические операции "И" и "ИЛИ"). К сожалению, в отличие от lint, анализатор кода VS 2013 отсутствие таких недостижимых условий не проверяет, даже в режиме полной проверки.
Другая классическая ситуация - fall through ("проваливание"): в операторе switch несколько альтернатив case не содержат ни операторов break, ни операторов return. В результате, по семантике C / C++, если управление передано в первую из альтернатив, то вслед за ней будут исполнены все остальные, в которых нет break / return:
int x = 1;
switch (x) {
case 1: Console::WriteLine("x = 1");
case 2: Console::WriteLine("x = 2");
}
Я проверил эту ситуацию, создав консольный проект на языке Visual C++. Ни компилятор, ни анализатор кода VS 2013 никаких предупреждений не выдают, и при выполнении программы выдается:
x = 1
x = 2.
Утилита lint подобные проверки выполняет.
Как эксперт по надежным и безопасным вычислениям, я проверил на небольших работающих примерах специфику некоторых проверок в VS 2013. Имеются классические верификаторы (анализаторы исходного кода), такие, как lint, который входил еще в первые версии системы UNIX и выполнял проверки корректности кода на языке Си. С этой точки зрения, некоторых проверок в анализаторе кода в среде VS 2013 немного нехватает.
Например, классическая ситуация: в коде использовано недостижимое условие
if (x == 1 && x == 2)
(программист в спешке перепутал логические операции "И" и "ИЛИ"). К сожалению, в отличие от lint, анализатор кода VS 2013 отсутствие таких недостижимых условий не проверяет, даже в режиме полной проверки.
Другая классическая ситуация - fall through ("проваливание"): в операторе switch несколько альтернатив case не содержат ни операторов break, ни операторов return. В результате, по семантике C / C++, если управление передано в первую из альтернатив, то вслед за ней будут исполнены все остальные, в которых нет break / return:
int x = 1;
switch (x) {
case 1: Console::WriteLine("x = 1");
case 2: Console::WriteLine("x = 2");
}
Я проверил эту ситуацию, создав консольный проект на языке Visual C++. Ни компилятор, ни анализатор кода VS 2013 никаких предупреждений не выдают, и при выполнении программы выдается:
x = 1
x = 2.
Утилита lint подобные проверки выполняет.
25 Обзор возможностей Visual Studio 2013. Trustworthy Computing (TWC)
Одним из самых важных и перспективных направлений ИТ является надежное и безопасное программирование. В более широком смысле, в современной англоязычной терминологии, данный термин звучит как trustworthy computing, что в буквальном переводе означает вычисления, заслуживающие доверия. Что это означает на практике?
Как известно, в течение всего развития развития программирования и программного обеспечения, при любых подходах к разработке программ, наиболее важными их качествами признавались работоспособность и полезность (usability) - программа должна выполнять то, чего от нее ожидают, в заданных условиях, а также быть дружественной к пользователю - быть удобной, иметь комфортный пользовательский интерфейс, "вести себя разумно", с точки зрения житейской и профессиональной логики. Только такая программа, на наш взгляд, заслуживает доверия пользователей, поэтому и ставлю эти качества на первое место при определении понятия trustworthy computing.
Как известно, в течение всего развития развития программирования и программного обеспечения, при любых подходах к разработке программ, наиболее важными их качествами признавались работоспособность и полезность (usability) - программа должна выполнять то, чего от нее ожидают, в заданных условиях, а также быть дружественной к пользователю - быть удобной, иметь комфортный пользовательский интерфейс, "вести себя разумно", с точки зрения житейской и профессиональной логики. Только такая программа, на наш взгляд, заслуживает доверия пользователей, поэтому и ставлю эти качества на первое место при определении понятия trustworthy computing.
24 Обзор возможностей Visual Studio 2013. Aspect.NET
Аспектно-ориентированное программирование (АОП) - новый перспективный подход к разработке и модернизации программ, предназначенный для поддержки сквозной функциональности (cross-cutting concerns) в программах. Под сквозной функциональностью понимается функциональность, реализация которой представляет собой совокупность рассредоточенных фрагментов кода, реализующих эту общую функциональность, и которую полностью, по принципиальным соображениям, нельзя собрать в один традиционный модуль (или группу модулей). Примеры - проверки безопасности, трассировка, управление ошибочными ситуациями и др. Все они объединяются под одним общим названием надежные и безопасные вычисления (trustworthy computing).
23 Обзор возможностей Visual Studio 2013. Windows Store
Магазин приложений Windows (Windows Store) - приложение в новых операционных системах фирмы Microsoft - Windows 8 / 8.1 и Windows RT, предназначенное для обмена полезными программами, их продажи и покупки. Впервые подобное приложение появилось в операционной системе Mac OS X фирмы Apple под названием Mac App Store.
Основная наиболее важная идея магазина приложений в том, что он обеспечивает рабочее окружение для разработчика, имеющего учетную запись Microsoft, которое разработчик может использовать на любом компьютере. При запуске магазина приложений на другом компьютере они синхронизируются с приложениями, уже установленными в магазине Windows этим же пользователем на каком-либо компьютере. Эта основная идея - обеспечить переносимое рабочее окружение для пользователя, доступное на любом компьютере, - в настоящее время реализована и развивается во многих новых разработках, в том числе - прежде всего, в облачных вычислениях на платформе Azure. Таким образом, магазин Windows - еще одно воплощение принципа user-centric computing.
Разработка приложений для магазина Windows, в том числе - в интегрированной среде Visual Studio 2013, - требует инсталляции ОС Windows 8.1.
Пустое приложение - Blank App (XAML) - это шаблон одностраничного приложения с графическим интерфейсом в стиле Metro (характерном для Windows 8). XAML - это язык разметки гипертекста (вариант XML), разработанный фирмой Microsoft в 2003 г. и впервые использованный в Windows Vista. Язык XAML позволяет сочетать разметку шаблона Web-страницы с фрагментами кода на языке C# (или Visual Basic).
Пример кода на языке XAML приведен ниже. Это файл App.xaml, в котором обычно определяются все ресурсы приложения:
<Application
x:Class="HelloWorld.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:HelloWorld">
</Application>
Основная наиболее важная идея магазина приложений в том, что он обеспечивает рабочее окружение для разработчика, имеющего учетную запись Microsoft, которое разработчик может использовать на любом компьютере. При запуске магазина приложений на другом компьютере они синхронизируются с приложениями, уже установленными в магазине Windows этим же пользователем на каком-либо компьютере. Эта основная идея - обеспечить переносимое рабочее окружение для пользователя, доступное на любом компьютере, - в настоящее время реализована и развивается во многих новых разработках, в том числе - прежде всего, в облачных вычислениях на платформе Azure. Таким образом, магазин Windows - еще одно воплощение принципа user-centric computing.
Разработка приложений для магазина Windows, в том числе - в интегрированной среде Visual Studio 2013, - требует инсталляции ОС Windows 8.1.
Пустое приложение - Blank App (XAML) - это шаблон одностраничного приложения с графическим интерфейсом в стиле Metro (характерном для Windows 8). XAML - это язык разметки гипертекста (вариант XML), разработанный фирмой Microsoft в 2003 г. и впервые использованный в Windows Vista. Язык XAML позволяет сочетать разметку шаблона Web-страницы с фрагментами кода на языке C# (или Visual Basic).
Пример кода на языке XAML приведен ниже. Это файл App.xaml, в котором обычно определяются все ресурсы приложения:
<Application
x:Class="HelloWorld.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:HelloWorld">
</Application>
Шаблон пустого приложения содержит следующие файлы:
- Файл манифеста (package.appxmanifest), в котором описывается приложение (имя, описание, плитка, начальная страница, и т. п.) и перечисляются файлы, содержащиеся в приложении;
- Набор больших и маленьких изображений логотипов (Logo.scale-100.png и SmallLogo.scale-100.png) для отображения на начальном экране;
- Изображение (StoreLogo.scale-100.png) для представления вашего приложения в Магазине Windows;
- Экран-заставка (SplashScreen.scale-100.png), который будет отображаться при запуске вашего приложения;
- Файлы XAML и кода для приложения (App.xaml и App.xaml.cs); в файле App.xaml содержатся описания используемых приложением ресурсов, в файле App.xaml.cs - код обработчиков событий, связанных со страницей;
- Начальная страница (MainPage.xaml) и соответствующий файл кода (MainPage.xaml.cs), который выполняется при запуске приложения.
22 Обзор возможностей Visual Studio 2013. Мобильные сервисы
Мобильный сервис на платформе Azure - это серверное приложение, управляющее облачной базой данных, используемой им для хранения информации, поступающей от мобильного приложения с мобильного устройства. Схема работы цепочки "мобильное приложение - мобильный сервис" следующая. Пользователь (мобильный клиент) на своем смартфоне может запускать мобильное приложение, которое взаимодействует с облачным мобильным сервисом в облаке Azure. Мобильный клиент вводит необходимую информацию в экранные формы на смартфоне и обращается к мобильному сервису, сохраняющему эту информацию в облачной базе данных. После этого возможно обращение в облако и просмотр полученной облачной базы данных средствами платформы Microsoft Azure.
Поддерживаются следующие популярные мобильные платформы: Windows Phone 8 / 8.1; iOS; Android.
Необходимо инсталлировать комплекс инструментов для создания мобильных приложений, соответствующий Вашей мобильной платформе. Для Windows Phone - это Windows Phone SDK. Имеются также соответствующие SDK для других мобильных платформ - iOS и Android. Для отладки мобильных приложений в Windows Phone SDK включены эмуляторы мобильных телефонов.
Вместе с мобильным сервисом в облаке создается (в том же регионе дата-центов) облачная база данных и, если требуется, также сервер базы данных.
Перед публикацией мобильного сервиса необходимо выбрать профиль публикации. Может быть выбран вариант создания нового мобильного сервиса или использования существующего мобильного сервиса.
URL-адрес, под которым новый мобильный сервис будет доступен в облаке, следующий: http://saf-mobile.azure-mobile.net.
Для управления внешними программными пакетами в среде VS 2013 реализована утилита NuGet. С его помощью находим в сети пакет для разработки мобильных приложений Microsoft.WindowsAzure.MobileServices. Этот пакет обеспечивает связь между клиентским мобильным приложением и мобильным сервисом.
Ниже - фрагмент кода мобильного приложения (его файла App.Xaml.cs), который обеспечивает обращение из клиентского мобильного приложения к мобильному сервису:
public static MobileServiceClient MobileService =
new MobileServiceClient(
"https://saf-mobile.azure-mobile.net/",
"…"
// пароль доступа мобильного приложения к мобильному сервису опущен
);
Данное мобильное приложение обращается к таблице текущих планов и дел TodoItems, поддерживаемой мобильным сервисом в виде облачной базы данных Azure.
С помощью GUI мобильного приложения saf_mobile в таблицу TodoItems могут быть введены новые строки. Затем таблица может просматриваться через облако.
Для обращения к таблице из мобильного приложения модифицируем его код, вставив в основной метод Application_Launching (запуск мобильного приложения) следующий код:
// Code to execute when the application is launching (eg, from Start)
// This code will not execute when the application is reactivated
private async void Application_Launching(object sender, LaunchingEventArgs e)
{
TodoItem item = new TodoItem { Text = "Awesome item", Complete = false };
await App.MobileService.GetTable<TodoItem>().InsertAsync(item);
}
Поддерживаются следующие популярные мобильные платформы: Windows Phone 8 / 8.1; iOS; Android.
Необходимо инсталлировать комплекс инструментов для создания мобильных приложений, соответствующий Вашей мобильной платформе. Для Windows Phone - это Windows Phone SDK. Имеются также соответствующие SDK для других мобильных платформ - iOS и Android. Для отладки мобильных приложений в Windows Phone SDK включены эмуляторы мобильных телефонов.
Вместе с мобильным сервисом в облаке создается (в том же регионе дата-центов) облачная база данных и, если требуется, также сервер базы данных.
Перед публикацией мобильного сервиса необходимо выбрать профиль публикации. Может быть выбран вариант создания нового мобильного сервиса или использования существующего мобильного сервиса.
URL-адрес, под которым новый мобильный сервис будет доступен в облаке, следующий: http://saf-mobile.azure-mobile.net.
Для управления внешними программными пакетами в среде VS 2013 реализована утилита NuGet. С его помощью находим в сети пакет для разработки мобильных приложений Microsoft.WindowsAzure.MobileServices. Этот пакет обеспечивает связь между клиентским мобильным приложением и мобильным сервисом.
Ниже - фрагмент кода мобильного приложения (его файла App.Xaml.cs), который обеспечивает обращение из клиентского мобильного приложения к мобильному сервису:
public static MobileServiceClient MobileService =
new MobileServiceClient(
"https://saf-mobile.azure-mobile.net/",
"…"
// пароль доступа мобильного приложения к мобильному сервису опущен
);
Данное мобильное приложение обращается к таблице текущих планов и дел TodoItems, поддерживаемой мобильным сервисом в виде облачной базы данных Azure.
С помощью GUI мобильного приложения saf_mobile в таблицу TodoItems могут быть введены новые строки. Затем таблица может просматриваться через облако.
Для обращения к таблице из мобильного приложения модифицируем его код, вставив в основной метод Application_Launching (запуск мобильного приложения) следующий код:
// Code to execute when the application is launching (eg, from Start)
// This code will not execute when the application is reactivated
private async void Application_Launching(object sender, LaunchingEventArgs e)
{
TodoItem item = new TodoItem { Text = "Awesome item", Complete = false };
await App.MobileService.GetTable<TodoItem>().InsertAsync(item);
}
Возможна обратная связь мобильного сервера с мобильным клиентом в виде так называемых push-уведомлений (push notifications) - сообщений и экранных форм, пересылаемых мобильным сервисом мобильному клиенту с целью напоминания о необходимости ввода новой информации или коррекции существующей в обласной базе данных. Например, мобильный сервис может предложить мобильному клиенту ввести новую запись в базу данных или изменить какие-либо значения ее полей.
Если компьютер поддерживает технологию Hyper-V, то обеспечивается также отладка мобильных приложений на эмуляторе мобильного телефона, иначе она возможна только на реальном телефоне с Windows Phone 8 / 8.1.
21 Обзор возможностей Visual Studio 2013. Azure SDK
![]() |
| Ключевые термины |
По умолчанию даже в самом полном варианте Visual Studio Ultimate облачные проекты (типа Cloud) в набор проектов не входят.
Для того, чтобы это осуществилось, необходимо, после инсталляции Visual Studio, инсталлировать комплекс программ Azure SDK (номер версии 2.3 по состоянию на июнь 2014 г.).
С помощью Visual Studio 2013 можно теперь разрабатывать и публиковать в Azure облачные сервисы. Для того, чтобы можно было разрабатывать также другие облачные продукты - например, мобильные сервисы, необходимы дополнительные инсталляции.
Очень важная деталь: для разработки облачного проекта среда Visual Studio должна быть вызвана от имени администратора.
Если запустить VS 2013 не от имени администратора, то у нас не окажется достаточных полномочий даже для отладочного запуска сервиса на эмуляторе облака Azure, тем более для публикации Вашего сервиса в облаке.
Роль - это разновидность облачного приложения. Интуитивно термин роль в контексте Microsoft Azure достаточно точно отражает суть: роль - это разновидность облачного приложения с определенной функцией (ролью) в облаке и в данном проекте. Роль - это код приложения. Экземпляр роли - это экземпляр (запуск) приложения. Число экземпляров ролей - это число запусков облачного приложения. Число экземпляров ролей очень важно: оно фактически выражает степень надежности облачного сервиса. Как правило, рекомендуется иметь как минимум по 2-3 экземпляра каждой роли для большей надежности облака, поскольку облачный сервис - это серверный код, на который ложится большая нагрузка (например, к нему могут обратиться одновременно несколько миллионов пользователей облака). В Microsoft Azure различают следующие основные виды ролей: Web-роль - облачный Web-сервис, Worker-роль - фоновый процесс, реализующий какие-либо вычисления. В новой версии Azure в качестве одного из видов ролей рассматривается также виртуальная машина (VM-роль). В таком случае можно сказать, что Web-роли и Worker-роли могут работать в облаке в нескольких экземплярах (и это даже рекомендуется для надежности), а VM-роль, разумеется, существует всегда в одном экземпляре. Трудно было бы представить себе, если бы виртуальные машины клонировались во многих экземплярах: виртуальная машина - это весьма серьезный облачный ресурс, а надежность виртуальной машины обеспечивается другими средствами - серверной операционной системой, которая реализует данную VM на конкретном компьютере центра обработки данных (в настоящее время это Windows Server 2012 Release 2, либо Linux).
Разновидности ролей в новой версии Azure:
- ASP.NET Web Role - облачный сервис с пользовательским Web-интерфейсом, реализованным по технологии ASP.NET, основной технологии разработки Web-приложений для платформы .NET;
- WCF Web Role - Web-роль, реализуемая с помощью Windows Communication Foundation (WCF). Эта технология, как вы уже знаете из лекции 3, обеспечивает создание Web-сервисов. В Microsoft Azure значительная часть сервисной функциональности реализована с помощью WCF;
- Worker Role - фоновый вычислительный процесс;
- Cache Worker Role - worker-роль, реализующая кластер кэш-памяти, доступный всем экземплярам роли;
- Worker Role with Service Bus Queue - worker-роль, реазилующая обработку сообщений, помещенных в очередь сервисной шины (Service Bus).
Таким образом, Web-роли реализуют различные виды Web-интерфейса, а worker-роли - обработку различных облачных ресурсов, совместно используемых экземплярами ролей.
Наиболее часто используемый вариант - ASP.NET Web Role. Создается облачный проект и его конфигурационные файлы, которые отображаются на вкладке Solution Explorer.
Рассмотрим более подробно структуру конфигурационных файлов и всех прочих файлов проекта, автоматически сгенерированных средой VS 2013. Среда создала для него три конфигурационных файла: ServiceDefinition.csdef.xml, ServiceConfiguration.Cloud.cscfg.xml и ServiceConfiguration.Cloud.Local.cscfg.xml - определение сервиса, конфигурация сервиса при запуске на локальном компьютере на эмуляторе облака и конфигурация сервиса для его развертывания в облаке. Начальные состояния этих трех файлов:
ServiceDefinition.csdef.xml:
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="WindowsAzure4"
xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"
schemaVersion="2014-01.2.3">
</ServiceDefinition>
ServiceConfiguration.Cloud.cscfg.xml:
<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName=" WindowsAzure4"
xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"
osFamily="4" osVersion="*" schemaVersion="2014-01.2.3">
</ServiceConfiguration>
Рассмотрим более подробно структуру конфигурационных файлов и всех прочих файлов проекта, автоматически сгенерированных средой VS 2013. Среда создала для него три конфигурационных файла: ServiceDefinition.csdef.xml, ServiceConfiguration.Cloud.cscfg.xml и ServiceConfiguration.Cloud.Local.cscfg.xml - определение сервиса, конфигурация сервиса при запуске на локальном компьютере на эмуляторе облака и конфигурация сервиса для его развертывания в облаке. Начальные состояния этих трех файлов:
ServiceDefinition.csdef.xml:
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="WindowsAzure4"
xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"
schemaVersion="2014-01.2.3">
</ServiceDefinition>
ServiceConfiguration.Cloud.cscfg.xml:
<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName=" WindowsAzure4"
xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"
osFamily="4" osVersion="*" schemaVersion="2014-01.2.3">
</ServiceConfiguration>
Файл ServiceConfiguration.Local.cscfg.xml идентичен предыдущему файлу.
Содержание файлов очевидно и особых комментариев не требует: в них указаны имя сервиса, ссылка на пространство имен для используемых в файлах XML-тегов, номера версий XML и XML-схем, ссылка на версию ОС.
Теперь создадим роль в данном проекте. Для этого в контекстном меню пункта Roles выбираем пункт Add (добавление роли) / New Web Role Project. Открывается окно Add New .NET 4.5 Role Project. Выбираем из двух вариантов ASP.NET Web Role. Открывается другое окно - New ASP.NET Web project: WebRole1.
В этом окне предлагаются варианты шаблонов для создания Web-роли:
В этом окне предлагаются варианты шаблонов для создания Web-роли:
- Empty - пустая роль (шаблон кода, в который необходимо добавить нужные действия роли при наступлении типовых событий);
- Web Forms - реализация роли на основе Web-формы;
- MVC (Model - Vew - Controller) - реализация роли на основе известной парадигмы Модель - Вид - Контроллер;
- Web API - реализация роли на основе Web API;
- Single Page Application - реализация роли на основе шаблона кода, управляющего единственной Web-страницей;
- Facebook - реализация роли на основе шаблона кода, обращающегося к широко известной социальной сети Facebook.
Для публикации сервиса в облаке рекомендую сначала создать "пустой" сервис в облаке Azure.
Пустой сервис используем, чтобы опубликовать и развернуть в облаке созданную нами реализацию Web-страницы. Для этого на вкладке Solution Explorer входим в контекстное меню на имени роли WebRole1 и выбираем действие Publish (опубликовать в облаке).
Перед публикацией среда VS 2013 требует от нас войти в облако с соответствующими логином и паролем. После входа в облако среда получает информацию о том, что в нем под нашей учетной записью имеется пустой сервис saf-service, и предлагает опубликовать разработанную нами страницу в облаке именно по этому URL-адресу. Он будет иметь вид: http://saf-service.cloudapp.net, по нему мы впоследствии можем обратиться и визуализировать страницу через любой Web-браузер.
Теперь можно либо войти в облако через его портал http://manage.windowsazure.com и убедиться, что наш сервис создан и развернут.
После публикации сервиса в облаке среда VS 2013 генерирует и записывает в директории облачного проекта следующие конфигурационные XML-файлы:
- saf-serviceProduction.azurePubxml - информация об опубликованном в облаке сервисе: имя сервиса в облаке (saf-service), метка его развертывания (WindowsAzure4 - имя облачного проекта в среде VS 2013), его опции и т.д.;
- конфигурационные файлы содержат следующую информацию: ServiceDefinition.csdef - спецификацию интерфейса сервиса в стандарте WSDL; ServiceConfiguration.Cloud.cscfg и ServiceConfiguration.Local.cscfg - число экземпляров Web-роли.
20 Обзор возможностей Visual Studio 2013. Создание учетной записи VS Online через облако Microsoft Azure
Входим в облако через облачный портал https://manage.windowsazure.com. На начальной странице находим пункт Visual Studio Online. С помощью этого пункта я заранее создал другую учетную запись VS Online. Щелкнув по надписи Visual Studio Online, переходим на облачную страницу, где визуализируется информация о созданных в облаке учетных записях VS Online.
![]() |
| Портал Microsoft Azure: страница с информацией о созданных в облаке учетных записях VS Online |
19 Обзор возможностей Visual Studio 2013. Visual Studio Online и Team Explorer
Visual Studio Online - облачный продукт Microsoft, реализующий функциональность, аналогичную продукту Team Foundation Server.
URL основной страницы имеет вид: http://login.visualstudio.com
На странице проекта доступна информация о дальнейших возможных действиях над проектом - Work, Code, Build, Test, информация для управления спринтом (Sprint) - настройке этапа Sprint, характерного для методологии Scrum (подведение промежуточных итогов проекта в определенные ззапланированные моменты времени), информация о созданных комнатах для командных обсуждения (Team Rooms).
Среди важных событий - Build completion, Code changes, Work item updates, Pull requests. В Team Room могут выполняться обсуждения проекта, проверка заданий, планирование и т.п.
Сервис Visual Studio Online Monaco позволяет внести изменения в код облачного сервиса Microsoft Azure без использования интегрированной среды, работая в браузере, и затем осуществить развертывание модифицированного приложения в облаке.
Сервис Visual Studio Online Application Insights обеспечивает анализ работоспособности и производительности приложений, в том числе - статистики исключений, использования памяти и т.д.
Сервис Visual Studio Online Agile Portfolio Management позволяет осуществить мониторинг разработки больших проектов.
Для создания кода командного проекта теперь мы можем открыть его в Visual Studio.
Team Explorer - компонента Visual Studio для управления командными проектами.
My Work - планирование заданий (вкладка Team Explorer / My Work)
Pending Changes - изменения, вносимые в код с помощью системы управления исходным кодом при выполнении команды check-in - закрытие исходного файла для редактирования, добавление комментария к новой версии кода, включаемые и не включаемые изменения. Вкладка Team Explorer / Pending Changes.
Source Control Explorer - просмотр рабочего пространства проекта, находящегося под контролем системы управления исходным кодом.
Builds - управление сборкой проектов: создание нового определения сборки (build definition) и просмотр всех определений сборок.
Work Items - список всех выполняемых работ над проектом;
Settings - установки и настройки командного проекта и коллекции командных проектов.
URL основной страницы имеет вид: http://login.visualstudio.com
![]() |
| Создание командного проекта |
![]() |
| Конфигурирование событий в Team Room командного проекта |
Среди важных событий - Build completion, Code changes, Work item updates, Pull requests. В Team Room могут выполняться обсуждения проекта, проверка заданий, планирование и т.п.
![]() |
| Схема использования и возможностей Visual Studio Online |
Сервис Visual Studio Online Monaco позволяет внести изменения в код облачного сервиса Microsoft Azure без использования интегрированной среды, работая в браузере, и затем осуществить развертывание модифицированного приложения в облаке.
Сервис Visual Studio Online Application Insights обеспечивает анализ работоспособности и производительности приложений, в том числе - статистики исключений, использования памяти и т.д.
Сервис Visual Studio Online Agile Portfolio Management позволяет осуществить мониторинг разработки больших проектов.
Для создания кода командного проекта теперь мы можем открыть его в Visual Studio.
Team Explorer - компонента Visual Studio для управления командными проектами.
- In Progress Work - выполняемые работы над проектом;
- Suspended Work - отложенные работы над проектом;
- Available Work Items - список всех доступных работ над проектом;
- Code Reviews - инспекция кода (она играет весьма важную роль в современных программных проектах).
Pending Changes - изменения, вносимые в код с помощью системы управления исходным кодом при выполнении команды check-in - закрытие исходного файла для редактирования, добавление комментария к новой версии кода, включаемые и не включаемые изменения. Вкладка Team Explorer / Pending Changes.
Source Control Explorer - просмотр рабочего пространства проекта, находящегося под контролем системы управления исходным кодом.
Builds - управление сборкой проектов: создание нового определения сборки (build definition) и просмотр всех определений сборок.
Work Items - список всех выполняемых работ над проектом;
Settings - установки и настройки командного проекта и коллекции командных проектов.
18 Обзор возможностей Visual Studio 2013. Облачные вычисления
Облако (cloud) - широко используемая метафора для изображения сервисов, предоставляемых через Web.
Облачные вычисления - модель вычислений, основанная на динамически масштабируемых (scalable) виртуализованных (virtual) ресурсах - данных, приложениях, Web-сайтах, виртуальных машинах, ОС и др., - которые доступны и используются как сервисы через Интернет и реализуются с помощью мощных центров обработки данных (data centers).
Для облака Azure основой реализации является платформа .NET, в которой повышенное внимание уделено безопасности, благодаря динамическому контролю типов и гибкой подсистеме безопасности (безопасность доступа к коду, ролевая безопасность, безопасность на основе свидетельств о сборках).
Рассмотрим схему архитектуры облачных вычислений:
Пользователь непосредственно обращается к какому-либо облачному сервису, например, реализующему концепцию Queue (очередь). Доступ к этому сервису является частью облачной платформы, обеспечивающей Web-интерфейс (Web-frontend), удобный для доступа к сервису.
Для того, чтобы обеспечить возможность разработки в среде Visual Studio 2013 облачных проектов, требуется дополнительно инсталляция целого комплекса инструментов - Microsoft Azure SDK.
Внутренние приложения (on-premises applications) - приложения, исполняемые на локальном компьютере пользователя.
Облачные вычисления - модель вычислений, основанная на динамически масштабируемых (scalable) виртуализованных (virtual) ресурсах - данных, приложениях, Web-сайтах, виртуальных машинах, ОС и др., - которые доступны и используются как сервисы через Интернет и реализуются с помощью мощных центров обработки данных (data centers).
Для облака Azure основой реализации является платформа .NET, в которой повышенное внимание уделено безопасности, благодаря динамическому контролю типов и гибкой подсистеме безопасности (безопасность доступа к коду, ролевая безопасность, безопасность на основе свидетельств о сборках).
![]() |
| Модели обслуживания |
![]() |
| Взаимодействие облака с клиентами при различных моделях |
![]() |
| Уровни компонент облачных вычислений |
Рассмотрим схему архитектуры облачных вычислений:
- Сервисы, доступные через облако
- Инфраструктура для их развертывания и использования
- Платформа - набор инструментов для использования облака
- Память - поддержка хранения пользовательских данных в ЦОД, реализующем облако
- Архитектор облака -главный разработчик его архитектуры
- Интегратор облака - его системный администратор, отвечающий за добавление компонент в облако и их изменение.
![]() |
| Пример типичной архитектуры облачных вычислений |
Пользователь непосредственно обращается к какому-либо облачному сервису, например, реализующему концепцию Queue (очередь). Доступ к этому сервису является частью облачной платформы, обеспечивающей Web-интерфейс (Web-frontend), удобный для доступа к сервису.
![]() |
| Архитектура новой версии Microsoft Azure (2013) |
![]() | ||
| Компоненты доступные в новой версии портала управления Azure |
Внутренние приложения (on-premises applications) - приложения, исполняемые на локальном компьютере пользователя.
16 Обзор возможностей Visual Studio 2013. Рефакторинг, тестирование, и сопровождение
Рефакторинг - систематическая модификация и улучшение существующего кода, без коренного изменения его семантики, с помощью автоматических преобразований, осуществляемых средой.
Среда VS 2013 предоставляет следующие виды рефакторинга:
- Rename - замена имени сущности;
- Extract Method - извлечь метод: преобразовать выделенный фрагмент кода в метод с заданным именем;
- Encapsulate Field - инкапсулировать поле, сделав его приватным, но добавить public-свойство для доступа к нему;
- Extract Interface - извлечь интерфейс: выделить текст класса и автоматически сформировать для него соответствующий интерфейс (если это возможно);
- Remove parameters - удалить часть параметров метода;
- Reorder parameters - изменить порядок параметров метода.
Среда VS 2013 предоставляет значительную поддержку и на этапе тестирования программ. К среде может быть дополнительно инсталлирован генератор unit-тестов (тестов для конкретных методов), - например, классический генератор тестов NUint или относительно новый генератор тестов MSUnit, разработанный Microsoft. В среде, в пункте главного меню Test, имеются возможности создания списка прогоняемых тестов, прогона тестов (полностью или выборочно), анализа тестового покрытия, конфигурирования генератора тестов и др.
Среда VS 2013 предоставляет инструмент интеграции разрабатываемого проекта с одной из систем управления исходным кодом. Наиболее популярными из них в настоящее время являются Git, Subversion, CVS. Среда Visual Studio имеет также собственную систему управления исходным кодом - Microsoft Visual SourceSafe.
15 Обзор возможностей Visual Studio 2013. UML
Для создания UML-моделей используется специальный вид проекта Modeling Project.
Для добавления к проекту новой UML-диаграммы выберем пункт меню Architecture, который специально предназначен для отображения архитектуры программы в виде UML-модели, - и в нем - пункт Add New Diagram.
Для добавления к проекту новой UML-диаграммы выберем пункт меню Architecture, который специально предназначен для отображения архитектуры программы в виде UML-модели, - и в нем - пункт Add New Diagram.
- UML Class Diagram - диаграмма классов;
- UML Sequence Diagram - диаграмма последовательности;
- UML Use Case Diagram - диаграмма использования;
- UML Activity Diagram - диаграмма активности (команды разработчиков);
- UML Component Diagram - диаграмма компонент;
- Layer Diagram - диаграмма уровней;
- Directed Graph Document - диаграмма, изображающая документ в виде ориентированного графа.
Элементы (связи) контекстного меню Add для добавления к диаграмме:
- Attribute - новый атрибут класса,
- Operation - новая операция класса,
- Comment - комментарий,
- Association - ассоциация,
- Aggregation - агрегация,
- Composition - композиция,
- Dependency - зависимость,
- Inheritance - наследование,
- Connector - коннектор.
14 Обзор возможностей Visual Studio 2013. Водопадная модель жизненного цикла программы
- Выработка требований и целей - формулировка технических, маркетинговых, эксплуатационных и других требований будущей программной системы в виде документа, который в современной западной практике носит название Marketing Requirements Document (MRD);
- Спецификация - формализованное, полное, точное и внешнее описание программной системы (термин внешнее в данном случае понимается описание того, "ЧТО, а не КАК", т.е. элементы и проект реализации в спецификацию не входят);
- Проектирование (дизайн) - разработка подробного проекта системы, включая иерархию модулей, входные и выходные данные, информационные потоки, представление данных, основные алгоритмы; частью спецификации и проектирования является моделирование - построение формальной модели проекта;
- Реализация (кодирование) - разработка программного кода системы на выбранном для реализации языке программирования;
- Верификация - проверка корректности реализации программной системы, которая на практике в большинстве случаев выполняется путем тестирования (прогона набора тестов), либо путем формальной верификации - формального доказательства того, что реализация системы соответствует формальной спецификации, выполненной на каком-либо языке спецификаций. Иногда тестирование сочетается с формальной верификацией. При обнаружении ошибки выполняется отладка;
- Выпуск (релиз) программной системы для пользователей;
- Сопровождение программной системы - исправление ошибок, обучение пользователей, ответы на их вопросы, реализация расширений функциональности системы по требованию пользователей.
13 Обзор возможностей Visual Studio 2013. Языки программирования
![]() |
| Ключевые термины |
В обновлении 2 к Visual Studio 2013, выпущенном 12 мая 2014 г., появился язык - TypeScript, расширение известного языка Web-разработки JavaScript, созданное фирмой Microsoft (в отличие от первоначальной версии JavaScript, TypeScript - язык со строгой типизацией).
Кроме того, имеется еще один интересный язык - Spec#, разработки Microsoft Research, расширение языка C# формальными спецификациями в стиле design-by-contract Мейера. Имеется его реализация для Visual Studio 2010 как add-in, который необходимо отдельно скачивать и инсталлировать. Однако для Visual Studio 2013 он в данный момент (июнь 2014 г.) пока не реализован.
Имеется еще целый ряд реализаций языков, (порядка 30) для платформы .NET, разработанных другими компаниями и университетами (например, Eiffel, Active Oberon и др.), однако не все они совместимы с новыми версиями Visual Studio.
Язык Java - это несколько упрощенная (с целью упрощения реализации, с первоначальным намерением разработки языка для встроенных систем) коллекция объектно-ориентированных возможностей, в сочетании с собственным уровнем абстракции даже для представления простейших понятий (таких, как целые числа), с целью переносимости кода на другие платформы.
12 Обзор возможностей Visual Studio 2013. Информация о структуре решения и проекта
При щелчке по пункту Properties (Свойства) открывается как дополнительная вкладка, на которой Вы сможете сделать ряд установок для проекта, например, задать скрипт на командном языке, который будет выполняться перед сборкой программы и скрипт, выполняемый после сборки программы. Можете также выбрать набор правил для анализа кода проекта, и т.д.
В пункте References отображается список пространств имен, от которых зависит проект.
Пункт App.config содержит конфигурационный XML-файл, в котором указывается версия .NET Framework (4.5.1) для запуска.
11 Обзор возможностей Visual Studio 2013. Пример создания консольного проекта
Среда Visual Studio при разработке программ оперирует двумя категориями сущностей: решениями (solutions) и проектами (projects). Решение - это более крупная единица: решение может состоять из одного или нескольких проектов. Возможно также создание пустого решения, к которому постепенно добавляются все новые проекты.
Среда Visual Studio облегчает создание проектов с помощью шаблонов (templates). Шаблон задает типовую структуру кода проекта и его конфигурационных файлов, и разработчику остается "только" добавить в шаблон конкретный код.
Среда Visual Studio облегчает создание проектов с помощью шаблонов (templates). Шаблон задает типовую структуру кода проекта и его конфигурационных файлов, и разработчику остается "только" добавить в шаблон конкретный код.
10 Обзор возможностей Visual Studio 2013. Издания Visual Studio 2013
Visual Studio 2013 распространяется в следующих изданиях:
- Visual Studio 2013 Ultimate - наиболее полная версия; она рассматривается в данном курсе, включая лекции и лабораторные работы
- Visual Studio 2013 Professional - профессиональная версия (распространяется бесплатно для студентов)
- Visual Studio 2013 Premium - версия для поддержки коллективной разработки программ методами гибкой (agile) разработки
- Visual Studio 2013 Test Professional - версия для включения тестирования и тестировщиков в процесс разработки программ
- Visual Studio 2013 Online - облачная версия Visual Studio для коллективной разработки программ.
Для удобства пользователя VS 2013 создает для пользователя учетную запись (user account) с персональными настройками. Для того, чтобы создать учетную запись VS 2013 и входить в нее (sign in), необходимо иметь единую учетную запись Microsoft, которая Вам пригодится во многих случаях - для использования облака Azure, использования ресурсов Microsoft, регистрации на конференции Microsoft и т.д. Единую учетную запись можно создать на одном из бесплатных сайтов, поддерживвемых Microsoft, например, hotmail.com, outlook.com, live.com и т.д.
Для входа в Вашу учетную запись VS 2013 необходимо в правом верхнем углу основного окна VS 2013 найти надпись "sign in" и щелкнуть по ней.
Сервисы WCF использованы в качестве основы для реализации облачной платформы Microsoft Azure.
9 Обзор возможностей Visual Studio 2013. Система типов .NET
Типы-значения и типы-ссылки
Контейнерный и ссылочный подходы к представлению объектов: хранение их в стеке или в куче
Простые типы (int, double, unsigned int, native int и др.) – относятся к типам-значениям
Структуры – также относятся к типам-значениям (хранятся в стеке; могут иметь свои методы; нет наследования)
Указатели (managed pointers) – с контролем типов
Неуправляемые указатели (unmanaged pointers) – только в небезопасном (unsafe) режиме – нет контроля типов и безопасности; нет сборки мусора
В общем случае возможен вызов неуправляемого кода из управляемого; также без контроля типов и без сборки мусора
Классы - как в других системах ООП
Класс – совокупность полей (информации) и методов, предназначенных для ее обработки. Классы могут наследовать поля и методы друг от друга.
Интерфейс – совокупность заголовков методов, которые могут реализовывать те или иные классы. Например, интерфейс Stack может содержать заголовки методов Push и Pop. Допускается любое число реализаций интерфейса различными классами.
Делегаты и события – типы данных для обработки событий. Тип делегата описывает типовую структуру заголовка обработчика события, представленного в виде callback-метода. При описании события указывается конкретный тип делегата.
Контейнерный и ссылочный подходы к представлению объектов: хранение их в стеке или в куче
Простые типы (int, double, unsigned int, native int и др.) – относятся к типам-значениям
Структуры – также относятся к типам-значениям (хранятся в стеке; могут иметь свои методы; нет наследования)
Указатели (managed pointers) – с контролем типов
Неуправляемые указатели (unmanaged pointers) – только в небезопасном (unsafe) режиме – нет контроля типов и безопасности; нет сборки мусора
В общем случае возможен вызов неуправляемого кода из управляемого; также без контроля типов и без сборки мусора
Классы - как в других системах ООП
Класс – совокупность полей (информации) и методов, предназначенных для ее обработки. Классы могут наследовать поля и методы друг от друга.
Интерфейс – совокупность заголовков методов, которые могут реализовывать те или иные классы. Например, интерфейс Stack может содержать заголовки методов Push и Pop. Допускается любое число реализаций интерфейса различными классами.
Делегаты и события – типы данных для обработки событий. Тип делегата описывает типовую структуру заголовка обработчика события, представленного в виде callback-метода. При описании события указывается конкретный тип делегата.
Подписаться на:
Сообщения (Atom)














