В течение последних двух дней я попытался запустить тестовое интернет-приложение MVC4 (приложение, созданное, когда внутри VisualStudio 2010 мы переходим к: File-> New-> MVC4 webApllication-> Интернет-приложению (с Razor)) на Mono, чтобы чтобы проверить, могу ли я использовать Linux для размещения любого реального приложения MVC.Есть ли способ писать независимые от системы MVC-приложения?
Сначала я попытался запустить его с Xamarian Studio и .NET - никаких проблем нет: он показывает, загрузочную страницу, я могу зарегистрироваться и логин -> Отлично.
Тогда я просто переключился с .NET на Mono, и весь ад сломался.
- Сначала он жалуется, что log4net не найден -> установка новейшего log4net исправила эту проблему, но почему она жаловалась в первую очередь ??
- После этого есть некоторая ошибка с EntityFramework -> обновление EF тоже исправлено, но, опять же - почему это не работает?
Потом я увидел запуск страницы, но попытка зарегистрировать брошено:
System.MissingMemberException типа будучи лениво инициализируется не общедоступный, конструктор без параметров.
Когда я обновил страницу, ушел выше ошибка, но я получил еще один, когда я пытаюсь зарегистрировать:
System.InvalidOperationException Для вызова этого метода, свойство «Membership.Provider» должно быть экземпляр «ExtendedMembershipProvider».
Я отказался:/
В соответствии с этим:
http://mono-project.com/Compatibility
MVC4 совместит, насколько асинхронные контроллеры не используются ... поэтому вопрос - я делаю что-то неправильно здесь или есть совместимость с моном одна большая ложь?
Позвольте мне добавить, что по совместимости я имею в виду: используя ТОЧНЫЙ код, ничего не меняя (так оно работает в Java или QT).
Заранее благодарим за ваше мнение.
С уважением.
Попробуйте использовать такие заголовки, как «Проблемы с переносимостью .NET для Mono» или что-то в этом роде. Я думаю, что нынешнее название смутно и, кажется, сообщает что-то совершенно другое. – Chrysalis
BTW, Xamarin никогда бы не требовал «кода один раз, запускать ...», поскольку он с самого начала пытается избежать ошибок стиля Java. Я не знаю, кто дает вам эту информацию, но он/она должен вводить в заблуждение. –
@LexLi: Просто зайдите на Xamarin.com: "С Xamarin, вы пишете ваши приложения полностью в C#, разделяющие же код на IOS, Android, Windows и Mac" Для меня «обмен одним и тем же кодом» означает «код один раз, бегите везде». Также матрица совместимости на заявках на моно-сайт «MVC4 должна работать, за исключением асинхронных контроллеров», поэтому для меня это означает: она должна работать из коробки. Возможно, Mono должно изменить его утверждение на что-то вроде: «MVC4 должен работать, но вам, вероятно, придется переносить хотя бы часть вашего кода, а некоторые стандартные функции, предоставляемые MS dll, могут не работать». – user2384366