Продолжаю изучать F#. Как сказал один чел с ютюба, сравнивая ООП(C#) и ФП(F#): я не хочу делать
трактор, я хочу делать феррари.
Ниже, пример такой возможности, правда, пока не разбирался, как в core можно заюзать FsXaml. Но
code only тоже ничего.Кроме того, в core дополнительный бонус в виде native-сборки путем выполнения dotnet publish --runtime linux-x64(в виндос аналогично).
Целевая платформа: Xubuntu 16.04 и MonoDevelop
Version 7.5 Preview (7.5)(собрана из исходников).
module Program (*Пример использования кроссплатформенной FOSS Avalonia на языке F# на базе dotnet core 2.0 Console App + nuget install Avalonia, Avalonia.Desktop *) // Learn more about F# at http://fsharp.org open System open System.IO open Avalonia open Avalonia.Controls open Avalonia.Markup.Xaml open Avalonia.Themes.Default open Avalonia.Styling module Util = let Now() = DateTime.Now.ToString("s") type FsApp() as this = class inherit Application() override this.Initialize() = this.Styles.Add(new DefaultTheme()) let loader = new AvaloniaXamlLoader() let baseLight = loader.Load(new Uri("resm:Avalonia.Themes.Default.Accents.BaseLight.xaml?assembly=Avalonia.Themes.Default")) let style = downcast baseLight : IStyle this.Styles.Add(style) end type MainWindow() as this = class inherit Window() let button = new Button(Content = "OK") do button.Click.Add(fun e -> button.Content <- Util.Now()) this.Title <- "UI Fsharp example" this.Content <- button end [<EntryPoint>] let main argv = AppBuilder.Configure<FsApp>().UsePlatformDetect().Start<MainWindow>(); 0 // return an integer exit code

Комментарии
Отправить комментарий