Начало работы с ASP.NET 5 и Visual Studio Code на Mac

Автор: | 01.08.2026

На конференции Build 2015 корпорация Microsoft объявила о выпуске ряда новых инструментов, призванных помочь разработчикам создавать кроссплатформенные приложения. Среди этих анонсов было сообщение о том, что ASP.NET теперь доступен и готов к нативному запуску на Mac и Linux.

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

С этим объявлением и выпуском Visual Studio Code — кроссплатформенного инструмента разработки от Microsoft — вы теперь можете разрабатывать кроссплатформенные .NET-приложения в своей любимой операционной системе.

Сегодня я покажу вам, как приступить к настройке среды разработки .NET на Mac под управлением Yosemite, а также покажу, как создать консольное приложение и приложение ASP.NET MVC 6 для журнала звонков с помощью Visual Studio Code и ASP.NET 5.

Вы можете скачать весь код из репозитория на Github, если все, что вам нужно сделать, — это настроить локальную среду и не писать весь код приложения самостоятельно.

— Компьютер Mac под управлением Yosemite или новее

— Пакетный менеджер Homebrew

— Node.Js

— Аккаунт Twilio и номер телефона Twilio — зарегистрируйтесь бесплатно!

Для начала нам нужно убедиться, что установлены все необходимые инструменты. Если вы работаете на Mac и у вас до сих пор не установлен *Homebrew*, вы многое упускаете, поэтому скачайте и установите его с сайта brew.sh.

После установки Homebrew мы можем приступить к загрузке .NET Version Manager. Это установит все необходимое для запуска .NET, а также некоторые полезные инструменты, о которых мы кратко расскажем.

Когда установка завершится, для вас будет установлено следующее:

**DNVM (.NET Version Manager)**: это набор команд командной строки, который позволяет настроить среду выполнения .NET. Мы можем использовать его, чтобы указать, какую версию среды выполнения .NET Execution Framework использовать.**DNX (.NET Execution Framework)**: это среда выполнения для создания .NET-приложений для Windows, Mac и Linux.**DNU (.NET Development Utility)**: это набор инструментов командной строки, которые позволяют нам создавать, упаковывать и публиковать проекты, созданные с помощью DNX.

Убедитесь, что все возможности DNVM доступны в вашем экземпляре терминала, выполнив команду *source dnvm.sh*. Для будущих экземпляров просто выполните следующую команду, чтобы навсегда добавить ее в ваш профиль bash или эквивалентный файл в зависимости от вашей среды.

Давайте проверим, действительно ли DNVM установлен, выполнив следующую команду:

Если вы видите экран, как показано выше, значит, DNVM установлен правильно, поэтому давайте установим последнюю версию DNX.

Мы знаем, что наша виртуальная среда .NET теперь установлена, поэтому пришло время установить Yeoman. Yeoman — это приложение командной строки, которое генерирует каркасы проектов. Оно предлагает генераторы для множества языков программирования, включая .NET.

Чтобы установить Yeoman, сначала нам нужно убедиться, что у нас установлен Node.js. Вы можете проверить это, выполнив следующую команду в терминале. Если он уже установлен, вы увидите версию Node.js.

Если он у вас не установлен, хорошая новость заключается в том, что вы также можете установить его с помощью Homebrew, выполнив следующую команду в терминале.

После установки Node.js вы можете установить Yeoman с помощью npm — менеджера пакетов для Node.js. Мы запустим его с флагом *-g*, чтобы указать, что он должен быть установлен *глобально*, а не только для этого проекта.

Осталось сделать еще одну вещь — установить отличную IDE, которая даст нам все те потрясающие функции, которые мы получаем в Visual Studio, но теперь и на Mac.

Скачайте и установите Visual Studio Code. Дополнительную информацию о дополнительных функциях настройки можно найти здесь.

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

Начните с возврата в терминал и выполнения:

Вам будет предложено выбрать тип проекта и ввести имя проекта. Выберите *Console Application* и назовите его *TwilioCallLogConsole*. Когда вы нажмете *enter*, Yeoman создаст для вас каркас проекта консольного приложения. На этом этапе вам не нужно выполнять какие-либо другие команды, предложенные на экране.

Откройте Visual Studio Code, выберите File > Open и укажите папку, в которой был создан ваш проект. Или, если вы следовали дополнительным инструкциям на сайте Visual Studio Code, вы можете просто выполнить следующую команду:

После завершения загрузки вы заметите уведомление в верхней части Visual Studio Code о неразрешенных зависимостях. Игнорируйте его, пока не откроете файл project.json и не добавите в него зависимость от библиотеки Twilio для .NET.

Нажмите кнопку *Restore*, и все зависимости будут установлены.

После этого мы можем изменить наше приложение, чтобы оно получало данные через REST API Twilio.

Откройте *Program.cs* и добавьте ссылку на библиотеку Twilio в самом верху.

В этом же файле измените метод *Main* следующим образом:

Не забудьте заменить account sid и auth token значениями с панели управления вашего аккаунта. Мы создаем новый объект для Twilio Rest API, получаем список звонков, перебираем каждый из них, чтобы показать, кто инициировал звонок и когда, а также показываем их продолжительность.

Сохраните это и в термиле введите:

Вы также можете сделать это прямо из Visual Studio Code, нажав ⇧⌘P и введя *dnx run*. Должен открыться новый экземпляр терминала и запустить приложение для вас.

Как вы видели, создавать приложения командной строки на Mac с помощью .NET довольно просто, но как насчет создания приложений ASP .NET MVC? Оставайтесь со мной, мы как раз собираемся это сделать.

Вернувшись в терминал, давайте заставим Yeoman создать каркас нового приложения типа *Web Application Basic [without Membership and Authorization]* и назовем его *TwilioCallLogMVC*.

*dnu restore*.

После восстановления всех пакетов снова зажмите ⇧⌘P и введите *dnx web*, чтобы запустить локальный веб-сервер. Теперь в браузере вы можете перейти по адресу http://localhost:5000.

Откройте project.json и добавьте в него зависимость Twilio. Обратите внимание, что Visual Studio Code автоматически находит зависимость, как только вы начинаете ее вводить.

Снова выполните *dnu restore*, чтобы зависимость была загружена.

Откройте *Controllers/HomeController.cs* и добавьте ссылку на библиотеку Twilio в самом верху.

Измените конечную точку *Index*, чтобы она принимала *string* с именем *phoneNumber**.* Затем добавьте код, необходимый для взаимодействия с Twilio Rest API. Также не забудьте заменить account sid и auth token значениями с панели управления вашего аккаунта.

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

Для этого мы привяжем представление к модели *Twilio.Call* и покажем пользователю форму, в которую он может ввести номер телефона для фильтрации.

Откройте *Views/Home/Index.cshtml* и замените его содержимое следующим изменением:

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

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

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

Как насчет того, чтобы попробовать запустить ваши существующие приложения на Mac и посмотреть, являются ли они уже кроссплатформенными? Скорее всего, вы уже ближе к этому, чем думаете.

Я был бы рад увидеть, что у вас получится. Напишите мне в Twitter @marcos_placona или на электронную почту marcos@twilio.com, чтобы рассказать мне об этом подробнее.