
Nikolay
04.06.2017
20:29:42
С textBlock какая-то печалька

Igor
04.06.2017
20:30:15
Может цвет фона задать явно в белый (или цвет textBlock)?

Nikolay
04.06.2017
20:30:32

Google

Nikolay
04.06.2017
20:31:05
Я щас пытаюсь в C# попробовать создать чистое окно, и добавить туда TextBlock, но чёт у меня студия бесконечно билдит проект :(
Грешу всё же пока на Content
acc.Content <- box value
Тут же всё ок?

Artemy
04.06.2017
20:32:19
В Expert F# 4.0 для Eto.Forms супермини-DSL на основе DU описан. Помню, и сам пробовал что-то похожее делать. Но быстро забил. А вот использование Computational Expressions для этой цели не приходило в голову (с другой стороны, я тогда их не особо понимал :D).

Astmatik
04.06.2017
20:33:00
Во, точно. ETO. А то забыл как называлось :)

Nikolay
04.06.2017
20:36:43
let w = Window()
let tb = TextBlock()
tb.Text <- "Hello, world!"
w.Content <- tb
w.Show()
Application.Current.Run(w)
Не работает

Igor
04.06.2017
20:37:18
Переписываю свой старый проект (на coreclr) с C# -> F# и думаю, на чем делать персистент слой (сейчас EF)?
Может что-нибудь подсказать по этому поводу?
До этого с F# использовал только Dapper Sqlite - и как-то больше не хочется на SQL писать все.
Я правильно понимаю что если пишу на F# на coreclr, то лучше не соваться в EF core?

Vasily
04.06.2017
20:37:29
На билдерах можно красивый dsl для ui написать, той же авалонии, wpf, etc

Летучая
04.06.2017
20:39:47
app.MainWindow = Window

Nikolay
04.06.2017
20:41:56
Это avalonia :)

Летучая
04.06.2017
20:42:15
А там в эпп равно не надо явно окно запихивать?

Google

Nikolay
04.06.2017
20:42:33

Vasily
04.06.2017
20:42:50
В WPFпервое созданное назначалось главным в свое время

Летучая
04.06.2017
20:42:52
А, точно.

Roman
04.06.2017
20:45:01

Nikolay
04.06.2017
20:45:01
Блин
Я идиот)

Летучая
04.06.2017
20:46:41
@Dolfik что было-то?

Nikolay
04.06.2017
20:47:03
proof of concept

Летучая
04.06.2017
20:48:36
супер! а круглые скобочки content можно заменить на фигурные, чтобы совсем по фен-шую?

Vasily
04.06.2017
20:48:52
Можно, если билдер написать

Nikolay
04.06.2017
20:49:13
Это было так на коленке сделано)

Artemy
04.06.2017
20:49:53
Да, выглядит годно. Только вот написать билдер для каждого контрола — неплохой такой объём работы.

Nikolay
04.06.2017
20:50:52
Ну как вариант, подумать насчёт тайп провайдера
Но я в тайп провайдерах не разбираюсь, поэтому хз можно ли это сделать

Artemy
04.06.2017
20:52:12
А с привязкой данных как быть, кстати?

Vasily
04.06.2017
20:52:41
Тож на билдер можно

Igor
04.06.2017
20:52:42
По моему без тайппровайдеров остается только dapper и EF
EF же не поддерживает иммтабельные типы F#, те как-то сложно будет подружить его с ФП.
Мне по факту НЕ нужны сложные джоины, группировками и тд.
Нужно хранилище в которое можно закинуть ~200_000 рекордов и запрашивать их потом по фильту и сортировать.
Что-то типа NoSQL.

Vasily
04.06.2017
20:53:10
Только с привязкой придется квотейшны использовать скорее всего

Google

Vasily
04.06.2017
20:53:21
Ну или писать xaml
Дабы не извращаться
Вообще, всю эту структуру контролов лучше в xaml описывать

Летучая
04.06.2017
20:54:15
Это же прям код
Прям в билдер добавить поддержку байндов нативными средствами

Nikolay
04.06.2017
21:23:09
Чуть сложнее
Правда не работает :D
Изменение текста

Artemy
04.06.2017
21:25:09
Это к WPF?

Nikolay
04.06.2017
21:25:35
Можно прикрутить к чему угодно, хоть к Windows Forms

Artemy
04.06.2017
21:26:33
Понятно. Но для каждого случая всё равно свои билдеры.
Вообще, QML напоминает.

Nikolay
04.06.2017
21:29:35

Artemy
04.06.2017
21:31:21
Ага. Интересно, в какие ограничения это всё может упереться.
Потому что если действительно получится сделать полноценный язык описания UI, то затея хорошая.
Вроде как, для превью-просмотора внешнего вида интерфейса можно сделать парсер этого кода как какой-нибудь обычной разметки.

Nikolay
04.06.2017
21:35:39
Нужно чтобы это дело генерировалось автоматически

Google

Artemy
04.06.2017
21:37:33
А, типа самоогенерирующаяся обёртка для какой-нибудь библиотеки?

Nikolay
04.06.2017
21:37:49
Это надо наверное лезть в xaml, и разбираться как его поддержка реализована
Я вот хз, может как-то помогут xml ns

Artemy
04.06.2017
21:40:20
Вот с этим не знаю. Сам провайдеры всё ещё не пробовал писать и не разбирался с принципами их работы. Но-таки собираюсь в скором времени попробовать.

Nikolay
04.06.2017
21:41:05
У них беда с неткор пока

Artemy
04.06.2017
21:42:09
Да я пока им и не интересуюсь, если честно.
На Винде ведь сижу.
Понятно, что кросс-платформенность - это круто. Но специально сейчас себя ради этого в жёсткие рамки загонять неохота; да и необходимости нету.

Friedrich
05.06.2017
03:06:05
Мне нравится идея приделать туда elm architecture или что-то вроде того — чтоб дифать "виртуальное дерево", и по нему перестраивать настоящее дерево компонентов (Windows Forms, Avalonia или WPF, не суть важно).

Vlad
05.06.2017
05:16:37
Это не превратится в pyramid of doom из-за отступов?

Evgeniy
05.06.2017
05:18:32
Vlad Можно разбивать на небольшие куски, а потом их композиционировать.

Artemy
05.06.2017
05:19:19

Nikolay
05.06.2017
05:35:08

Friedrich
05.06.2017
05:36:22

Nikolay
05.06.2017
05:37:34
Лойс!
А ты не знаешь случаем, тайп провайдеры могут делать билдеры?

Vlad
05.06.2017
05:37:47
Хм

Friedrich
05.06.2017
05:38:15

Google

Vlad
05.06.2017
05:38:36
А ещё, а там нет проблем с производительностью от большого количества computational expressions?
Помню видел совет не увлекаться ими в коде особо

Evgeniy
05.06.2017
05:39:38
@Dolfik Я недавно хотел попробовать сделать билдер через провайдер.
Может доберусь на днях.

Vasily
05.06.2017
05:39:47
Зря вызов методов в билдер засунули,имхо

Evgeniy
05.06.2017
05:40:18
Кажется, проблем не должно быть, так как билдеры — это просто обычные классы.

Alexey
05.06.2017
05:40:40
Провайдеры же не позволяют делать дженерики
Как на них сделать нормальный билдер?

Aleksander
05.06.2017
05:52:09
А дженерики возможно и не понадобятся. Как-то даже не могу вспомнить, видел ли я когда-то дженерик контролы в XAMLе.. Есть ощущение, что это и там невозможно

Evgeniy
05.06.2017
05:53:44
Нормальный не сделаешь.
Но немонадические CE сложно назвать нормальными. :)

Nikolay
05.06.2017
05:54:56
Могут понадобиться для DataContext, или как он там называется

Evgeniy
05.06.2017
05:55:01
Надо посмотреть и подумать.

Aleksander
05.06.2017
05:57:50
а, оказывается в "новом" XAML 2009 добавили поддержку generics - https://msdn.microsoft.com/ru-ru/library/ee956431(v=vs.110).aspx

Nikolay
05.06.2017
06:05:55
Кстати, если грамотно сделать, то может получится один код для HTML, Android, iOS, PC Native
Но это наверное бессмысленно для HTML :D

Igor
05.06.2017
07:09:52
Кто-нибудь интересовался темой F# + Event Store?
http://gorodinski.com/blog/2013/02/17/domain-driven-design-with-fsharp-and-eventstore/
https://medium.com/@philip.kaare/event-sourcing-in-practice-with-event-store-and-f-45714e77ebca
http://blog.2mas.xyz/fsharp-event-sourcing-and-cqrs-tutorial-and-agents/
Можно его как персистентное хранилище использовать?

Roman
05.06.2017
07:48:13

Vlad
05.06.2017
08:24:21
не знал, что хотят анонимные типы добавить