2016-07-08 2 views
2

Я начинаю работать с .NET и C#, и я начал работу с книги «Pro C# 6.0 и .NET 4.6 Framework».Visual Studio Express Editions - для Windows

Цитата из книги:

Каждый из инструментов Экспресс ограничивается тем, что она позволяет создавать .NET программное обеспечение, которое будет работать только на ОС Windows (7, 8.x, или 10). Однако, как упоминалось в главе 1, платформа .NET работает на широком диапазоне различных операционных систем и аппаратных устройств. Таким образом, если вам нужно для создания .NET-программы, которая может работать на (например) Android или продуктах Apple, продукты Express не будут предлагать большую помощь.

У меня есть трудности в понимании, что это значит. Насколько я понимаю, сборки .NET (управляемый код) будут независимыми от платформы. Итак, почему код, созданный экспресс-версиями IDE, должен быть специфичным только для Windows? Разве CIL не должен быть одинаковым для работы в моно-каркасе (если я не использую какие-либо фреймворки, не поддерживаемые монофоническим WPF и т. Д.) В Linux или Mac OS X? Может кто-то прояснить, что это значит? Заранее спасибо.

+1

Как продукт от Microsoft, выпуск Express имеет свою цель обслуживать только разработчиков Windows. Будет ли эта программа также поддерживаться Mono, выходит за рамки продукта, независимо от того, хотите вы этого или нет. Это то, что автор имеет в виду. Если вы хотите изучить Mono или Xamarin, вам обязательно нужно пойти в другие книги или применить свои знания самостоятельно. –

+1

Книга неправильная, Экспресс не ограничивается управляемой .NET-разработкой. Есть версии для разработки на родном языке. Однако проблема с Express не является технической, а скорее маркетинговой. Важно сохранить эти два понятия в вашем уме. Microsoft искусственно ограничивает часть своего программного обеспечения, включая Visual Studio, для сегмента рынка. Также придерживайтесь концепции IDE, которую вы используете для разработки программного обеспечения, по сравнению с самим программным обеспечением. Автор, по общему признанию, тоже плохо работает. –

+1

Управляемый код не зависит от платформы, но библиотеки, которые вы используете, не являются. Приложение WPF никогда не будет запускаться на компьютере Android или Apple, оно слишком сильно выходит замуж за DirectX. Единственный пользовательский интерфейс, который может быть агностиком для платформы, - это приложение с консольным режимом или веб-страница. Вы никогда не будете продавать его в магазине Android или Apple, пользователи ожидают, что приложение использует собственные виджеты для инструментария. Xamarin делает бизнес из этого, автор книги еще не знал, что компания была куплена Microsoft кстати. –

ответ

2

Эта версия Visual Studio (и издание сообщества):

содержит компиляторы и основные файлы Windows SDK, разработчики которых могут использовать для создания Win32 приложений

Если вы строите C# веб приложения в то, что приложение по-прежнему будет доступно для других платформ пользователей, если приложение размещается на сервере Windows (или на сервере Mac/Linux используя Mono вместо .Net).

С веб-приложений, которые необходимо только для обеспечения вашего HTML/JScript и т.д. совместим с браузером пользователей, хотя ОС сервера и веб-сервера материи с точки зрения хостинга веб-приложение.

В этом случае клиент не запустить C# .NET приложение, вы (сервер для Windows).

Но если вы строите нормальный C#.NET (не веб-приложение) для ОС, тогда вы можете разрабатывать только для Windows, поскольку у вас нет компилятора для чего-либо еще.


Примечание стороны о платформе независимости: Вы можете увидеть интересные дебаты по this Stack Overflow Question об этом. Вопрос 5 лет, но ответ новый (2016).

+0

Я принял этот ответ за предоставленную ссылку к другому сообщению stackoverflow. Ответ там действительно ответил на мой вопрос. Огромное спасибо. –

0

У меня есть трудности в понимании, что это означает. Насколько я понимаю, сборки .NET (управляемый код) будут независимыми от платформы.

Да Экспресс-версии IDE относятся только к Windows. и другие платформы идти с Visual Studio кодекса

не должны КСС генерироваться быть в равной степени имеют право работать на моно рамках

Да он должен, но он должен восстановить в моно рамках

+0

Не понимаю. Если я напишу управляемый код CLSCompliant, мне все равно нужно перестроить его для рамки Mono для меня, чтобы запустить его там? Если это так, то как C# отличается от других языков, таких как C++? Я думал, что C# также является языком WORA (Write once - Run where), например Java. –

+1

Вы можете разработать приложение Mono framwork в окнах, и оно будет запускать любое программное обеспечение, прочитайте здесь, получите дополнительную информацию http://stackoverflow.com/questions/3656721/is-net-platform-independent –

Смежные вопросы