Меня разработка 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 позволяет писать приложения для различных платформ, включая Андроид из под Мака. Но каждый год отдавать 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'
Но смысл один и тот же - косяк вышел.
Да уж, у приложения, за которое просят деньги падение сразу же после старта всего лишь из-за отсутствующего основного файла – достаточно неприятно. Открываю в проекте ветку References и вижу, что два файла не найдены.
Проблему можно решить двумя способами:
1. Первобытно-общинный. Этот способ подразумевает подключения общества в поисках нужных библиотек и использование первобытного ручного труда для подключения файлов вручную в папку References.
2. Современно-гламурный. В Xamarin есть поддержка дополнений и среди дополнений есть NuGet. Ура!!! Больше никакого ручного труда, только мышкобулдство. Только это дополнение не стоит по умолчанию и его нужно установить.
Так что небольшая рекламная пауза в виде описания того, как ставить NuGet.
Выбираем в главном меню Xamarin Studio и потом Add-in manager. В появившемся окне идем на закладку Gallery и в разделе IDE Extensions должен быть NuGet.
Нету? Бывают в жизни огорчения. Обезьяна стала человеком, когда взяла в руку палку, а программистом, когда сделала из этой палки клавиатуру. Мы же должны просто добавить новый репозиторий. Видите выпадающий список Repository в этом окне сразу под названиями закладок? Кликаем по нему и добавляем:
http://mrward.github.com/monodevelop-nuget-addin-repository/4.0/main.mrep
Теперь если щелкнуть правой кнопкой мышки по References, то увидим там NuGet. Дальше все просто – запускаем его, ищем Microsoft.AspNet.WebPages и устанавливаем его.
Ну вот теперь мы готовы уже работать с нашим первым приложением. Все библиотеке в папке 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 под мак, но удивили такие недочеты, которые так легко подправить, а они будут оставлять не очень хорошее первое впечатление у пользователей.
Внимание!!! Если ты копируешь эту статью себе на сайт, то оставляй ссылку непосредственно на эту страницу. Спасибо за понимание
Паника, что-то случилось!!! Ничего не найдено в комментариях. Срочно нужно что-то добавить, чтобы это место не оставалось пустым.
Добавить Комментарий