В приложении скрипт хостинга. Как tryfsharp.org работа?
меня интересует возможность иметь сценарии F# в моем приложении.
имея что-то вроде tryfsharp.org было бы здорово, в частности, возможность Intellisense. Что-нибудь из этого доступно на Github где-нибудь? Как это работает?
1 ответов
короткий ответ:
код, используемый для первого разреза TryFSharp с F# 2, который включает поддержку Intellisense, доступен как падение код. В качестве примера Роб Пикеринг построил онлайн-редактор для вполголоса С ним. Я подозреваю, что код, используемый на текущем сайте TryFSharp, который использует F# 3, появится вовремя.
TryFSharp использует Silverlight для размещения компилятора F# в браузере клиента (F# написан на F#). Это также можно вызвать экземпляр компилятора F#, работающего на сервере, из браузера по требованию, что является подходом, принятымTryFs.Net и Пит.
более длинный ответ
существует две стороны сценариев:
- редактирование
- исполнение
F# уже поддерживает редактирование и выполнение (.в FSX) файлы скрипта via F# Интерактивный.
Редактирование Кода F#
нет недостатка во внешних редакторах для кода F#:
поддержка редактора для Xamarin Studio, Emacs и Vim основана на open source F# Для Привязки project, который обеспечивает завершение кода. SharpDevelop использует открытый исходный код AvalonEdit и включает подсветку синтаксиса для F#. Вы можете использовать AvalonEdit в своих проектах, например open source Refunctor проект использует его для обеспечения редактирования F# внутри рефлектора.
есть еще пара о новых редакторах F# on the horizon:
- Облако Острее - web на основе F# IDE
- цунами язя - встроенный редактор для Excel, Hadoop и т. д.
AvalonEdit-хорошее место для запуска встроенного редактора на настольном компьютере. После того, как вы выбрали среду редактора, вам нужно выбрать между простой подсветкой синтаксиса или более продвинутой интеграцией с помощью Привязок F#. Если вы подозреваете, что люди будут использовать внешнюю редактор с подсветкой синтаксиса может быть достаточно.
принесите свой собственный редактор, вероятно, самое простое место для начала, которое просто оставляет выполнение.
Выполнение Кода F#
параметры для выполнения кода F#:
- F# CodeDOM С Powerpack Языка F#
- компилятор F# через падение кода компилятора F# или вызов fsi.exe
компиляция a фрагмент с F# CodeDOM:
open Microsoft.FSharp.Compiler.CodeDom
open System.CodeDom.Compiler
let compile snippet =
use provider = new FSharpCodeProvider()
let options = CompilerParameters(GenerateInMemory=true)
provider.CompileAssemblyFromSource(options, [|snippet|])
let snippet = """
module Snippet
let x = 1
"""
let results = compile snippet