Ваше первое ASP.NET Core приложение на Mac

Steve Smith, Daniel Roth и Rick Anderson

ASP.NET Core определяется кроссплатформенностью, то есть он работает на Mac OS X, так же как на Linux и Windows. Узнайте, как быстро установить, провести скаффолдинг, запустить, отладить и развернуть ASP.NET приложение на Mac.

Настройка среды разработки

Чтобы настроить компьютер для разработки, скачайте и установите `.NET Core`_ и `Visual Studio Code`_ с расширением C#.

Разработка ASP.NET приложения на Mac при помощи Visual Studio Code

Установите Visual Studio Code с https://code.visualstudio.com. Когда вы впервые запустите Visual Studio Code, то увидите окошко с приветствием:

../_images/vscode-welcome.png

Чтобы начать работу с ASP.NET Core приложением на Mac, выберите File -> Open и перейдите к Empty ASP.NET Core.

../_images/file-open.png

В терминале/командной строке запустите dotnet restore, чтобы восстановить зависимости проекта. Как вариант, вы можете нажать command shift p в Visual Studio Code, а затем набрать dot, как показано ниже:

../_images/dotnet-restore1.png

Это позволит вам запускать команды, включая dotnet restore и любые другие команды, определенные в project.json, а также пользовательские задачи из .vscode/tasks.json, напрямую из Visual Studio Code.

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

Этот пустой шаблон проекта просто отображает “Hello World!”. Откройте Startup.cs в Visual Studio Code, чтобы посмотреть, как он сконфигурирован:

../_images/vscode-startupcs.png

Если вы впервые используете Visual Studio Code (или для краткости Code), обратите внимание, что он предлагает очень удобный, быстрый, чистый интерфейс для быстрой работы с файлами, а также дает инструментарий для очень эффективного написания кода.

В правой панели навигации есть четыре иконки, отображающие четыре вьюлета:
  • Explorer
  • Search
  • Git
  • Debug

Вьюлет Explorer позволяет вам быстро перемещаться по системе папок, а также видеть файлы, с которыми вы на данный момент работаете. Тут есть значок, который показывает, есть ли в файлах не сохраненные изменения, а также вы можете легко создать новые файлы и папки (не открывая отдельное диалоговое окно). Кроме того, вы можете легко использовать опцию Save All.

Вьюлет Search дает возможность быстрого поиска внутри структуры папок при поиске имен файлов и контекста.

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

../_images/vscode-git.png

Вьюлет Debug поддерживает интерактивную отладку приложения.

Наконец, в редакторе Code есть набор отличных функций. Сейчас вы можете обратить внимание, что некоторые выражения using подчеркнуты, поскольку Code определил, что в них нет необходимости. Классы и методы также отображают, сколько ссылок на них есть в проекте. Если вы использовали Visual Studio, Code включает многие горячие клавиши, которые вы использовали, например, command k c для комментирования блока кода и command k u для снятия комментария.

Локальный запуск при помощи Kestrel

В нашем примере мы используем Kestrel. Он настроен в фале project.json, где указан как зависимость.

:emphasize-lines: 10

 {
  "buildOptions": {
     "emitEntryPoint": true
   },
   "dependencies": {
     "Microsoft.NETCore.App": {
       "type": "platform",
      "version": "1.0.0"
     },

    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0"
   },
   "frameworks": {
     "netcoreapp1.0": {}
   }
 }

Запустите команду `dotnet run, чтобы запустить приложение.

Перейдите к localhost:5000, и вы увидите:

../_images/hello-world1.png

Чтобы остановить веб сервер, просто нажмите Ctrl+C.

Мы можем обновить приложение, чтобы отобразить результат на консоли, когда будет получен запрос. Обновите метод Configure таким образом:

1
2
3
4
5
6
7
8
public void Configure(IApplicationBuilder app)
{
    app.Run(async (context) =>
    {
        Console.WriteLine("Request for " + context.Request.Path);
        await context.Response.WriteAsync("Hello World!");
    });
}

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

Видите, все довольно просто. Если вы уже знакомы с инструментарием командной строки, то вам будет легко создавать ASP.NET приложения при помощи Visual Studio Code на Mac OS X.

Публикация на Azure

После разработки приложения вы можете использовать интеграцию с Git, встроенную в Visual Studio Code, чтобы отправить изменения в производственную версию, находящуюся на Microsoft Azure.

Инициализация Git

Во-первых, если вы еще так не сделали, инициализируйте Git в рабочей папке. Просто кликните по вьюлету Git и нажмите ко кнопке Initialize Git repository.

../_images/vscode-git-commit.png

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

Инициализация Azure

Вы можете развернуть приложение напрямую на Azure при помощи Git. Azure поддерживает и другие виды публикации, но простое выполнение git push может быть очень удобным способом вносить обновления.

Во-первых, создайте новое веб приложение на Azure. Если у вас нет аккаунта на Azure, вы можете создать пробный аккаунт.

Далее, настройте веб приложение на Azure для поддержки публикации при помощи Git.

Обратите внимание на Git URL для веб приложения с портала Azure:

../_images/azure-portal.png

В окне терминала добавьте azure с Git URL, представленном выше.

  • git remote add azure https://ardalis-git@firstaspnetcoremac.scm.azurewebsites.net:443/firstaspnetcoremac.git

  • Запушьте на бранч master.

    • git push azure master
    ../_images/git-push-azure-master.png
  • Перейдите в приложение, и вы должны увидеть Hello world!

Поделись хорошей новостью с друзьями!
Следи за новостями!