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

Обзор языков программирования, предоставляемых Visual Studio 2013

7.3. Язык Visual Basic и его новые возможности в VS 2013

Visual Basic - очень простой язык, который часто используется для разработки GUI. Рассмотрим простейший пример, который подтверждает простоту разработки графического интерфейса на этом языке:

Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
      Handles MyBase.Load

        MsgBox("Hello from Visual Basic 2013")

    End Sub

End Class
    

В данном примере создается пустая форма с заголовком Form1. При этом обрабатывается событие загрузки формы, при котором выдается сообщение "Hello from Visual Basic 2013" в виде "message box".

Как видно из примера, привлекательной чертой языка является простота и лаконичность, по сравнению, например, с аналогичной программой на языке Java или даже на языке C#.

В целом возможности Visual Basic, реализованного в среде Visual Studio, практически идентичны возможностям C#. Имеется доступ ко всем элементам библиотеки .NET Framework. Введены аналогичные конструкции (отличающиеся лишь по форме синтаксиса) для всех новых возможностей. Например, введены итераторы с оператором Yield, управляющие циклом по коллекции (см. для сравнения раздел 6.3).

Что касается новых возможностей, то Microsoft не объявил информацию о нововведениях в Visual Basic 2013, однако был реализован целый ряд новых возможностей в Visual Basic 2012:

  • Функция Async для разработки асинхронного кода;
  • Итераторы;
  • Получение информации о методе, вызвавшем данный метод;
  • Ключевое слово Global в операторе Namespace, которое позволяет определить пространство имен вне корневого пространства имен вашего проекта;
  • Улучшения в автоматической генерации кода для фактических параметров;
  • Опубликована на страницах MSDN библиотека примеров кода на Visual Basic (online samples).

7.4. Язык Visual C++ и его новые возможности в VS 2013

Язык C++ [21] был разработан в первоначальной версии под названием C with Classes в 1979 г. Автор языка Б. Страуструп разработал этот язык как расширение языка C классами в стиле языка Симула-67. Название C++ появилось в 1984 г. Язык был поддержан фирмой AT&T и благодаря этому стал активно развиваться. Далее в 1993 г., 1997 г. и т.д. были разработаны новые версии языка, в которые последовательно вводились важные концепции пространства имен (namespace), ссылки (reference), динамической информации о типе (runtime type information, RTTI), исключений (exceptions) и их обработки. Имеется ряд международных стандартов C++, отражающих развития языка, например, C99 и наиболее новый вариант - C++ 11.

Однако особо выдающийся вклад в развитие C++ внесла фирма Microsoft, которая включила C++ в качестве одного из основных языков в среду Visual Studio. Благодаря этому, язык Visual C++ стал фактически эквивалентным по возможностям языку C#. Программирование на Visual C++ возможно как с использованием управляемого кода (managed code), при выборе видов проектов CLR, так и в более традиционном варианте - неуправляемого кода, без динамического контроля типов, например, при разработке проектов вида Win32.

Для иллюстрации стиля разработки программ на Visual C++ приведем несколько примеров.

// ConsoleApplication3.cpp : main project file.

#include "stdafx.h"

using namespace System;

int main(array<System::String ^> ^args)
{
    Console::WriteLine(L"Hello World");
    return 0;
}
    

В данном примере в виде проекта вида Win32 представлено простое приложение с точкой входа - функцией main с аргументом в виде командной строки.

По сравнению с C# и Visual Basic сразу можно отметить несколько архаичные элементы - например, использование заголовочных файлов.

В другом примере определен параметризованный класс (по терминологии C++, шаблон класса - template class) [20]:

template <class T>
class Stack
{
public:
	Stack(int = 10) ; 
	~Stack() { delete [] stackPtr ; }
	int push(const T&); 
	int pop(T&) ;  
	int isEmpty()const 
   { return top == -1 ; } 
	int isFull() const 
   { return top == size - 1 ; } 
private:
	int size ;  
  // number of elements on Stack.
	int top ;  
	T* stackPtr ;  
} ;
    

Шаблоны в языке C++ широко используются как полезный механизм обобщенного программирования. Широко известна, например, библиотека шаблонов Standard Templates Library (STL), в среде Visual Studio - также Active Templates Library (ATL), поддержанная проектами вида ATL projects. Однако шаблоны C++ имеют ряд недостатков.

Во-первых, шаблоны менее надежны и безопасны для использования, чем параметризованные типы в языках CLU и Java - контроль типов при использовании шаблонов выполняется лишь частично, либо вовсе отсутствует. Детали описаны в книге [20].

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

Шаблоны могут быть также использованы в заголовках функций. Например, может быть определен шаблон функции сортировки массива из произвольных элементов.

Новые возможности Visual C++, реализованные в Visual Studio 2013, следующие:

  • Поддержка некоторых возможностей стандарта C++ 11; фактически обеспечена полная поддержка этого стандарта в среде Visual Studio, что является большим шагом вперед;
  • Поддержка некоторых возможностей стандарта C99, в частности, библиотеки шаблонов Standard Template Library;
  • Улучшение работы среды в части автоматического завершения кода (code completion) для Visual C++;
  • Улучшение производительности программ;
  • Поддержка разработки программ на Visual C++ для магазина Windows (Windows Store).
Александр Калинин
Александр Калинин

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