Приложения в стиле Metro с F #?

В основных докладах и демонстрациях Build 2011 они всегда говорили о C++, C#, Visual Basic и JavaScript. Могу ли я создавать приложения в стиле Metro с помощью F#? Или можно с уверенностью сказать, что если он работает с C#, то он работает и с F#?


person jeha    schedule 17.09.2011    source источник


Ответы (6)


Или можно сказать, что если он работает с C#, то он работает и с F#?

Да, так оно и должно работать. Помимо javascript и C/C++, любой CLS-совместимый язык, работающий поверх CLR, будет иметь доступ к WinRT API.

К сожалению, в выпуске VS 2011 Express вы не получаете поддержку инструментов, но я думаю, что это будет добавляться постепенно или в другие выпуски:

введите здесь описание изображения

person Darin Dimitrov    schedule 17.09.2011
comment
Это не так просто. Правда, проекция времени выполнения полностью прозрачна для всего, что компилируется в IL, но большинству компиляторов также необходимо загружать информацию о типах из сборок во время компиляции (для проверки типов). Это означает возможность читать и анализировать файлы .winmd, которые имеют несколько расширений по сравнению с ванильными сборками CLI. Кроме того, файлы .winmd описывают типы WinRT как есть, без применения правил проецирования CLR, например. если вы читаете их, вы видите тип, реализующий IIterable<T> интерфейс WinRT, но во время выполнения CLR сопоставляет его с IEnumerable<T>. Поэтому необходима поддержка компилятора. - person Pavel Minaev; 17.09.2011

Дон немного говорит об этом около 7:40 в своем выступлении.

http://channel9.msdn.com/Events/BUILD/BUILD2011/SAC-904T

person Brian    schedule 17.09.2011

У меня был тот же вопрос, и я создал сообщение в блоге: Создать Metro Приложение на F# (НЕ)

Есть несколько вопросов:

  • Вы не можете ссылаться на обычные библиотеки .NET (даже на C#). Их необходимо перекомпилировать со «ссылкой» на WinRT. Из-за этого вы не можете ссылаться на dll F#. Я думаю, что это будет решено, когда будет выпущен F # 3.0 (источник: слайд «Понимание F #» от Дона Сайма при сборке).
  • Возможность из F# создавать приложения Metro. Это должно быть создано командой F#. Это открытый вопрос. Это полностью F#-подход (в WPF сегодня это возможно, но не рекомендуется).
  • Инструментальная поддержка для создания интерфейсных проектов Metro. Это не относится к выпуску F# 3.0. (источник: слайд «Понимание F#» от Дона Сайма при сборке).
person Piet Amersfoort    schedule 21.09.2011

Используя Visual Studio 11 Developer Preview (Full, не Express), я смог ссылаться и запускать код F# из приложения в стиле C# Metro со следующими оговорками:

  • Вы получите предупреждение сборки о том, что на проект нельзя ссылаться, хотя Visual Studio по-прежнему позволит вам добавить его.

  • Вы должны удалить все ссылки на все библиотеки DLL в проекте F#, включая FSharp.Core.

Следуя этим шагам, можно запускать код F# из приложения в стиле C# Metro, но почти невозможно написать какой-либо полезный код на F# без ссылок на библиотеки основного языка. Будем надеяться, что вскоре они обновят библиотеки для совместимости с WinRT.

person jgraves    schedule 16.10.2011

Ответ на вопрос был дан здесь: Windows 8 и F# Хотя вы не можете создавать и разрабатывать приложения Metro напрямую в F# вы по-прежнему можете создать так называемую переносимую библиотеку в F# со всеми моделями и моделями представления и использовать ее в других проектах Metro. Это не идеально, но это работает.

person Martin Suchan    schedule 11.03.2012

Я перенес свою библиотеку биржевых диаграмм для .NET3.5-4.0 в переносную библиотеку, она довольно хорошо работает в Metro с приложением Metro на C# и некоторым мостом пользовательского интерфейса Metro. Я убежден, что могу использовать F# для создания приложения Metro во многих частях.

person Masahiko Miyasaka    schedule 10.08.2012