Введение в Xamarin Studio, разработка для Web

Меня разработка C# кода на MacOS меня интересует больше из спортивного интереса. Писать боевой код на этом языке под маком я не планирую. Предпочитаю писать на том языке, который лучше для этого предназначен, а для разработки под MacOS и iOS лучше все же подходит Objective-C, потому что его официально поддерживает производитель.

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

Раньше для Web под MacOS я разрабатывал Windows сайты с помощью Mono Develop, но некоторое время назад эту срезу как-то незаметно стали заменять на Xamarin Studio. На сайте Mono для MacOS предлагают скачать именно эту среду разработки, хотя не совсем понимаю почему, ведь Mono Develop всегда был бесплатным и даже с открытым кодом. 

Xamarin Studio для Mac в принципе тоже бесплатный, но при этом есть серьезные ограничения, включая лимит на размер приложения. Какой это предел не совсем понятно, но согласно описанию на сайте, когда размер приложения перерастет начальный уровень, мне предложат обновиться до платного варианта. А вот платный вариант в самом дешевой виде стоит $299 в год. Да они с ума сошли. Это слишком много за возможность писать код под Mac, если учесть, что XCode бесплатный. 

Xamarin Studio создание проекта

В принципе, Xamarin Studio позволяет писать приложения для различных платформ, включая Андроид из под Мака. Но каждый год отдавать 299 долларов – это достаточно много, даже для американского рынка. По крайней мере на мой взгляд. Причем за эту сумму снимут всего лишь ограничение на размер. 

Если захочется чего-то более серьезного и получить премиальные функции, то стоимость бизнес версии будет уже $999 в год. Это даже выше, чем у Microsoft, только вот среда от Microsoft на много лучше. 

Те, у кого аллергия на Microsoft, но есть любовь к .NET, возможно согласятся каждый год отдавать такие деньги. 

Единственное, что меня могло заинтересовать в Xamarin Studio под маком – разработка Web приложений. И сразу после установки среды меня обрадовала возможность создавать MVC 3 приложения с использованием Razor синтаксиса. Конечно же хотелось бы видеть 4-ку, но и 3-го вполне будет достаточно. 

Я создал новый проект и дерево проекта выглядит почти так же, как в Visual Studio, что вселяло надежду на счастливое будущее, но сразу после запуска сайта, счастливое будущее обломалось, потому что сайт упал с ошибкой 500. 

Возможные варианты ошибок:

Could not load file or assembly 'System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

Или может быть чуть подлиннее: 

CS1705: Assembly `System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' references `System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version number than imported assembly `System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

Но смысл один и тот же - косяк вышел. 

Ошибка при запуске MVC приложения в Xamarin

Да уж, у приложения, за которое просят деньги падение сразу же после старта всего лишь из-за отсутствующего основного файла – достаточно неприятно. Открываю в проекте ветку References и вижу, что два файла не найдены. 

Проблему можно решить двумя способами:

1. Первобытно-общинный. Этот способ подразумевает подключения общества в поисках нужных библиотек и использование первобытного ручного труда для подключения файлов вручную в папку References. 

2. Современно-гламурный. В Xamarin есть поддержка дополнений и среди дополнений есть NuGet. Ура!!! Больше никакого ручного труда, только мышкобулдство. Только это дополнение не стоит по умолчанию и его нужно установить. 

Так что небольшая рекламная пауза в виде описания того, как ставить NuGet. 

Устанавливаем NuGet в Xamarin

Выбираем в главном меню Xamarin Studio и потом Add-in manager. В появившемся окне идем на закладку Gallery и в разделе IDE Extensions должен быть NuGet. 

Установка дополнений в Xamarin Studio

Нету? Бывают в жизни огорчения. Обезьяна стала человеком, когда взяла в руку палку, а программистом, когда сделала из этой палки клавиатуру. Мы же должны просто добавить новый репозиторий. Видите выпадающий список Repository в этом окне сразу под названиями закладок? Кликаем по нему и добавляем:

http://mrward.github.com/monodevelop-nuget-addin-repository/4.0/main.mrep

Теперь если щелкнуть правой кнопкой мышки по References, то увидим там NuGet. Дальше все просто – запускаем его, ищем Microsoft.AspNet.WebPages и устанавливаем его.

Создание Razor MVC приложения в Xamarin

Ну вот теперь мы готовы уже работать с нашим первым приложением. Все библиотеке в папке References выглядят отлично, все найдено, а значит должно работать. Компилируем, запускаем, и снова видим ошибку о правах доступа:

System.UnauthorizedAccessException

Access to the path "/Library/Frameworks/Mono.framework/Versions/3.2.0/etc/mono/registry" is denied.

Description: HTTP 500.Error processing request.

Details: Non-web exception. Exception origin (name of application or object): mscorlib.

 

Тут уже ничего страшного нет, потому что это ошибка связана с тем, что неверно наведены маршруты по умолчанию. Если в строке Url вы видите http://127.0.0.1:8080, то нужно просто добавить путь домой - http://127.0.0.1:8080/home, и вы сразу же увидите приглашения в новый мир MVC и Razor на маке. 

Чудо скажите вы? Современные технологии – отвечу я. 

Сначала эта заметка задумывалась как обзор, но когда я начал писать ее, то получился не обзор а введение или даже первый запуск. В целом мне пока понравился Xamarin Studio под мак, но удивили такие недочеты, которые так легко подправить, а они будут оставлять не очень хорошее первое впечатление у пользователей. 

 



Внимание!!! Если ты копируешь эту статью себе на сайт, то оставляй ссылку непосредственно на эту страницу. Спасибо за понимание

Комментарии

Паника, что-то случилось!!! Ничего не найдено в комментариях. Срочно нужно что-то добавить, чтобы это место не оставалось пустым.

Добавить Комментарий

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне