В основных докладах и демонстрациях Build 2011 они всегда говорили о C++, C#, Visual Basic и JavaScript. Могу ли я создавать приложения в стиле Metro с помощью F#? Или можно с уверенностью сказать, что если он работает с C#, то он работает и с F#?
Приложения в стиле Metro с F #?
Ответы (6)
Или можно сказать, что если он работает с C#, то он работает и с F#?
Да, так оно и должно работать. Помимо javascript и C/C++, любой CLS-совместимый язык, работающий поверх CLR, будет иметь доступ к WinRT API.
К сожалению, в выпуске VS 2011 Express вы не получаете поддержку инструментов, но я думаю, что это будет добавляться постепенно или в другие выпуски:
IIterable<T>
интерфейс WinRT, но во время выполнения CLR сопоставляет его с IEnumerable<T>
. Поэтому необходима поддержка компилятора.
- person Pavel Minaev; 17.09.2011
Дон немного говорит об этом около 7:40 в своем выступлении.
http://channel9.msdn.com/Events/BUILD/BUILD2011/SAC-904T
У меня был тот же вопрос, и я создал сообщение в блоге: Создать Metro Приложение на F# (НЕ)
Есть несколько вопросов:
- Вы не можете ссылаться на обычные библиотеки .NET (даже на C#). Их необходимо перекомпилировать со «ссылкой» на WinRT. Из-за этого вы не можете ссылаться на dll F#. Я думаю, что это будет решено, когда будет выпущен F # 3.0 (источник: слайд «Понимание F #» от Дона Сайма при сборке).
- Возможность из F# создавать приложения Metro. Это должно быть создано командой F#. Это открытый вопрос. Это полностью F#-подход (в WPF сегодня это возможно, но не рекомендуется).
- Инструментальная поддержка для создания интерфейсных проектов Metro. Это не относится к выпуску F# 3.0. (источник: слайд «Понимание F#» от Дона Сайма при сборке).
Используя Visual Studio 11 Developer Preview (Full, не Express), я смог ссылаться и запускать код F# из приложения в стиле C# Metro со следующими оговорками:
Вы получите предупреждение сборки о том, что на проект нельзя ссылаться, хотя Visual Studio по-прежнему позволит вам добавить его.
Вы должны удалить все ссылки на все библиотеки DLL в проекте F#, включая FSharp.Core.
Следуя этим шагам, можно запускать код F# из приложения в стиле C# Metro, но почти невозможно написать какой-либо полезный код на F# без ссылок на библиотеки основного языка. Будем надеяться, что вскоре они обновят библиотеки для совместимости с WinRT.
Ответ на вопрос был дан здесь: Windows 8 и F# Хотя вы не можете создавать и разрабатывать приложения Metro напрямую в F# вы по-прежнему можете создать так называемую переносимую библиотеку в F# со всеми моделями и моделями представления и использовать ее в других проектах Metro. Это не идеально, но это работает.
Я перенес свою библиотеку биржевых диаграмм для .NET3.5-4.0 в переносную библиотеку, она довольно хорошо работает в Metro с приложением Metro на C# и некоторым мостом пользовательского интерфейса Metro. Я убежден, что могу использовать F# для создания приложения Metro во многих частях.