Статьи

Напишите C # на Mac, как чемпион!

Автор Сэма Басу для Telerik Blog .

csharp_mac_header

Посмотрим правде в глаза — Apple делает некоторые из самых популярных ноутбуков в отрасли. MacBook Pro Retina любим многими разработчиками за его экранную недвижимость и тихую, но надежную производительность. MacBook Air, с другой стороны, обеспечивает портативность и длительное время автономной работы для повышения производительности. Если у вас есть один из них, вы знаете, что вы не одиноки в своей любви к ноутбукам со светящимися фруктами!

Если вы являетесь разработчиком стека Microsoft, вы можете использовать Mac в качестве машины для разработки и писать код на C # — это вообще возможно? В качестве альтернативы вы, возможно, всегда были разработчиком Mac, но заинтересованы в том, чтобы .NET работала с открытым исходным кодом, и хотите попробовать собственный ASP.NET на OSX. В любом случае, ваша цель — объединить две лучшие вещи для разработчиков: качественное оборудование Mac и комфорт C #. Хорошие новости — они счастливо сосуществуют! Давайте поговорим об опциях в этой статье.

Windows находит идеальный хост

Всегда приятно видеть инновации от производителей ПК, такие как недавно похудевший Lenovo 2-в-1 Yoga Pro 3 . Не говоря уже о том, что собственный планшетный компьютер Microsoft Surface Pro 3 продается как горячие пирожки. Но также ни для кого не секрет, что MacBook — замечательные ноутбуки для полноценной работы Windows в качестве ОС. В качестве дополнительного бонуса, если у вас есть ноутбук MacBook Pro Retina, ваша установка Windows имеет высокое разрешение, как вы можете видеть на изображении ниже Windows, работающей на моем Mac. Разработчики любят экранную недвижимость даже за счет щурящихся глаз, верно?

Разрешение экрана

Есть два способа запустить Windows на Mac:

  1. Bootcamp — это способ Apple, позволяющий запускать Windows на Mac на базе Intel . Просто используйте встроенный Bootcamp Assistant , создайте раздел и установите Windows. После этого вы можете легко загрузить Windows вместо OSX и повторно использовать все драйверы ввода-вывода (ввода-вывода) для периферийных устройств. В этом режиме Windows работает «по железу», и вы получаете все преимущества производительности. Это, конечно, означает, что вы можете установить Visual Studio и писать на C # весь день, как на компьютере с Windows.
  2. Виртуальные машины — если вы выбираете, какую ОС загружать, это не ваша чашка чая, другой вариант — запустить Windows на виртуальной машине (ВМ) с OSX, выступающей в качестве основной ОС. Существует специальное программное обеспечение, которое сделает тяжелую работу для вашей виртуальной машины — например, управление виртуализацией, памятью и периферийными устройствами. Parallels и VMWare Fusion — два отличных варианта для запуска виртуальных машин Windows на вашем Mac. Благодаря настраиваемой виртуализации, точной настройке ресурсов и легкому переключению между Windows / OSX, вы должны быстро запустить Windows как виртуальную машину. И так же легко, вы можете установить Visual Studio внутри вашей виртуальной машины Windows и писать C # в свое удовольствие.

Теперь, независимо от того, используете ли вы BootCamp или VM, вы используете полную Windows. А это значит, что вы получаете преимущество Telerik DevCraft, позволяющее повысить производительность .NET для любого типа приложения, которое вы создаете!

Визуальная студия «Монако» Редактор

Несмотря на то, что C # еще не полностью реализован, он собирается получить новый повсеместный редактор кода — да, браузер — любой браузер в любой ОС! C # в браузере поставляется благодаря специальному легковесному редактору под кодовым названием «Monaco», который был запущен с Visual Studio 2013. Цитируя Microsoft — «С Monaco мы хотим предоставить разработчикам легкий, легкий в использовании компаньон для Visual Studio десктоп IDE, который доступен с любого устройства на любой платформе. Monaco — это богатая браузерная среда разработки, ориентированная на код, оптимизированная для платформы Windows Azure, позволяющая легко создавать и поддерживать приложения для облака ». Посмотрите эту серию видео Channel 9 о том, как начать работу с редактором Visual Studio Online Monaco, а также о последних усовершенствованиях.

Хотите попробовать редактор Монако сегодня? Что ж, на данный момент он действительно предназначен для работы с сайтами, размещенными в Windows Azure. Но вы можете абсолютно написать код с выделенным кодом C # для серверной части, подключить свой код к системе управления исходным кодом и выполнять сборки / развертывания. Вот как начать:

  1. Во-первых, вам нужно иметь учетную запись Windows Azure. Зарегистрируйтесь бесплатно .
  2. Войдите на портал управления Windows Azure .
  3. Создайте новый веб-сайт Azure из большого знака «+» в левом нижнем углу.
  4. Откройте конфигурацию веб-сайта и включите параметр «Редактировать в Visual Studio Online».
  5. На панели инструментов веб-сайта нажмите ссылку «Редактировать в Visual Studio Online».
  6. Наслаждайтесь редактированием C # в вашем браузере!

Вот визуальные шаги, начиная с создания веб-сайта Azure — выберите свою подписку Azure и соответствующий хостинг:

WebsiteCreate

Затем перейдите на вновь созданную панель инструментов веб-сайта и нажмите вкладку «Настройка». Прокрутите немного вниз с вашими настройками, и вы увидите параметр «Редактировать в Visual Studio Online». Включите его, чтобы увидеть магию:

EditInVSConfig

На панели мониторинга вашего веб-сайта загорается ссылка «Редактировать в Visual Studio Online»:

EditInVSLink

Идите дальше и нажмите на ссылку. Вуаля — открывается новая страница с облегченными изменениями кода для вашего веб-сайта Windows Azure. Здесь вы можете видеть, что я добавил новый Test.csфайл, и я могу написать код C # в браузере Chrome на моем Mac — насколько это круто?

C # InBrowser

Вы также можете подключить свой проект веб-сайта к GitHub или Visual Studio Online для контроля исходного кода. Когда все готово, редактор «Монако» показывает ваш Project Explorer со всеми файлами — просто дважды щелкните для редактирования.

MonacoSourceControl

Редактор Visual Studio в Monaco также поддерживает большое количество сочетаний клавиш.

MonacoCommands

Если вы редактируете HTML / CSS / JavaScript, вы найдете редактор Visual Studio Monaco довольно умным с intellisense; опыт C # продолжает улучшаться с каждым выпуском. Вы также найдете надежную поддержку онлайн-редактирования LESS, PHP, Node.js и TypeScript. Когда вы закончите редактирование в браузере, просто запустите сборку и просмотрите результаты в окне консоли или даже запустите веб-сайт Azure, чтобы получить изменения. По сути, вы можете создать полноценный веб-сайт ASP.NET в своем браузере, включая написание C # в любом браузере, работающем на вашем Mac OSX.

Давайте качать некоторые ASP.NET

Я сохранил лучшее для последнего, так как вы будете получать удовольствие от написания C # на Mac при создании современных веб / мобильных приложений с ASP.NET. Возможно, вы уже слышали о ядре .NET Framework с открытым исходным кодомбудущее .NET является модульным, кросс-платформенным и довольно захватывающим.

ASP.NET vNext лидирует, предлагая открытый исходный код и предлагая улучшенные инструменты , а также гибкий хостинг вне IIS с использованием нового KRuntime . Используя базовую кроссплатформенную платформу .NET Framework, ваши веб-приложения ASP.NET будут работать везде — и да, это изначально означает OSX на вашем Mac!

Готовиться

Прежде чем вы начнете качать C # на своем Mac, чтобы создать ваше следующее приложение ASPNET vNext, вам нужно кое-что настроить в вашей среде и получить несколько удобных пакетов. Давайте пройдемся по шагам:

  1. Прежде всего, посетите домашнюю страницу NET vNext на GitHub, чтобы убедиться, что вы понимаете движущиеся части и проверяете минимальные системные требования.
  2. Архитектура NET vNext является модульной, и вы будете использовать несколько пакетов или компонентов. Давайте сначала уберем некоторые предпосылки с пути.
  3. Установите последнюю версию Node, которая поставляется в комплекте с вездесущим менеджером пакетов npm .
  4. Homebrew — это еще один отличный менеджер пакетов с открытым исходным кодом, который позволяет вам устанавливать / управлять программным обеспечением, которое вы обычно не можете сделать через терминал OSX. Установите также Homebrew, введя следующий код Ruby в свой терминал:
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  5. Нажмите на репозитории Git, связанные с ASP.NET vNext, используя Homebrew, например:
    brew tap aspnet/k
  6. Затем установите K Version Manager (KVM) — вы можете использовать KVM для установки и переключения между различными средами выполнения ASP.NET. Просто запустите команду brew — обратите внимание, что этот шаг установит Mono на OSX, если он еще не установлен. Кроме того, вы всегда можете вручную вытащить Mono из GitHub и собрать его самостоятельно. На данный момент ASP.NET на Mac зависит от Mono.
    brew install kvm
  7. После настройки KVM следующим шагом будет установка последней версии среды K RunTime (KRE) , например:
    
    kvm upgrade
    
  8. На предыдущем этапе вы теперь технически готовы к запуску ASP.NET vNext на своем Mac. Но несколько полезных инструментов помогут вам в этом — начиная с Yeoman . Yeoman — это элегантный инструмент с открытым исходным кодом, и теперь он может работать для ваших проектов ASP.NET. Итак, возьмите Yeoman и генераторы ASP.NET Yeoman следующим образом:
    
    npm install –global yo
    
    npm install –g generator-aspnet
    

Запуск ASP.NET

Теперь вы готовы начать сборку веб-приложений ASP.NET vNext на OSX. Давайте начнем с запуска инструмента поддержки Yeoman ASP.NET в соответствующей папке проекта, например:

yo aspnet

Вы можете увидеть проблеск ожидаемого поведения, как показано ниже:

YoASPNet

В этом случае запрашивались леса приложения ASP.NET MVC. Перейдите в каталог, в котором вы запускали ваши леса, и вуаля — точную структуру проекта со всеми необходимыми файлами (как показано ниже), как если бы вы создали веб-проект ASP.NET MVC с помощью Visual Studio.

YoScaffolding

Теперь, когда у вас есть настроенный проект ASP.NET, как вы запускаете его на Mac? Именно здесь вступает в игру KVM Command line. Просто перейдите в каталог проекта ASP.NET в терминале и выполните следующую команду, чтобы устранить все недостающие зависимости пакета:

kpm restore

И, наконец, вы можете использовать среду выполнения Mono для размещения вашего веб-приложения ASP.NET. Просто запустите его с помощью следующей команды:

k kestrel

На вашей терминальной консоли должно появиться сообщение о том, что сайт запущен. Теперь просто откройте любой браузер и перейдите к нему http://localhost:5004, как показано ниже (ASP.NET работает на LocalHost в Chrome на Mac):

NativeASPNetOnMac

Если вы похожи на меня, то в первый раз, когда вы видите нативное веб-приложение ASP.NET, работающее на Mac, это момент «WHOA»!

OmniSharp

Итак, на данный момент у вас есть полностью защищенное веб-приложение ASP.NET, работающее на вашем Mac. Но вам все равно может понадобиться немного больше помощи, так как вы взломаете работу над кодом сайта, особенно если вы пишете много кода на C # на стороне сервера. Войдите в чудесный OmniSharp.NET .

Может быть рискованно запускать приложения .NET в OSX или Linux, но практично ли писать код на C # вне комфорта Visual Studio? OmniSharp поможет вам сделать это. Процитируем: «OmniSharp — это семейство проектов с открытым исходным кодом, каждый из которых преследует одну цель — обеспечить отличную разработку .NET в ВАШЕМ редакторе по вашему выбору». И это распространяется на не-Windows редакторы, такие как Sublime Text, Atom, Emacs, Brackets или Vim. Да, вы можете написать C # в любом из этих редакторов по вашему выбору!

Возвышенный текст

Давайте поговорим о том, как использовать один из самых популярных вариантов — Sublime Text . Хотите написать C # в Sublime Text и получить некоторые преимущества, которые вы ожидаете от Visual Studio? Оказывается, предпринимаются усилия, чтобы сделать C # первоклассным гражданином в таких редакторах, как Sublime Text.

Вот несколько простых шагов для настройки Sublime Text для написания C # в приложениях ASP.NET:

  1. Загрузите бета-версию Sublime Text 3 .
  2. Убедитесь, что у вас установлен последний плагин Sublime Text Package Manager .
  3. Установите плагин Kulture через управление пакетами .
  4. Установите плагин Omnisharp с помощью Package Control.
  5. Выполните некоторые настройки для языка C #, чтобы обеспечить соответствующие триггеры событий intellisense

Это все, что нужно. Теперь откройте проект ASP.NET vNext, созданный в Yeoman, из вашего каталога OSX в Sublime Text (укажите на корневую папку). Sublime показывает все ваши файлы в дереве проекта, каждый из которых отлично редактируется. Откройте или создайте новый файл C #, начните печатать и (бум!) Visual Studio, как intellisense при вводе, все внутри Sublime Text, как показано ниже:

SublimeIntellisense1

Более того, попробуйте использовать контекстно-зависимый оператор точки (.) В C # — вы получите intellisense и контекстные подсказки завершения кода, как показано ниже:

SublimeIntellisense2

Интересно, как все это работает в Sublime Text или других редакторах? Это любезно предоставлено OmniSharpServer .

“OmniSharpServer is a local web server (written in Nancy) that accepts requests to various different endpoints which returns results about the code you sent to it. For example, in Sublime Text when you have a string variable and you type (.) after the variable name, a request is sent to OmniSharpServer with a specific payload and the response contains all the possible completions for that variable.”

“NRefactory is the C# analysis library used in the OmniSharpServer. It allows applications to easily analyze both syntax and semantics of C# programs. It is quite similar to Microsoft’s Roslyn project; except that it is not a full compiler – NRefactory only analyzes C# code, it does not generate IL code.”

Sounds complicated, but you get to reap the benefits as the open source community works on OmniSharp.NET with Microsoft’s endorsement. Essentially, as you type your C# code, the locally hosted Omnisharp Server is doing all the heavy lifting trying to provide you with contextual intellisense, while stopping short of actually compiling your code. You get to write C# on your editor of choice, complete with Visual Studio like code editor features. As for Sublime Text, you get to enjoy features like – Intellisense, Go To Definition, Rename, Find Usages, Go To Implementation, Format Document, Override, Add Reference, Syntax/Semantic Errors, Code Refactoring, Build Solution and many more! Check out this wonderful post on what to expect when writing C# in Sublime Text, complete with GIFs demonstrating each interaction.

Conclusion

Choice is a good thing for developers, and most popular .NET language on one of the best possible laptops seems like a solid match. Pick what works best for you – VM, browser or native editors with OmniSharp – but the bottom line is: you can write C# on a Mac, like a champ. And you can do so today! Fun times indeed.

Header image courtesy of Mircea