@Fsharp_chat

Страница 193 из 772
Nikolay
04.06.2017
20:29:42


С textBlock какая-то печалька

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

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
Vasily
04.06.2017
20:42:50
В WPFпервое созданное назначалось главным в свое время

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

Nikolay
04.06.2017
20:45:01
Блин

Я идиот)

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

Nikolay
04.06.2017
20:47:03
@Dolfik что было-то?
Я забыл прописать одну штуку, которая тему подгружает



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
Это к WPF?
Это эксперимент с F# DSL для Avalonia

Можно прикрутить к чему угодно, хоть к Windows Forms

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

Вообще, QML напоминает.

Nikolay
04.06.2017
21:29:35
Вообще, QML напоминает.
Да, только это чистый F# :)

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
Это эксперимент с F# DSL для Avalonia
Выглядит симпатично — типа как ScalaFX к JavaFX. А код опубликуешь?

Мне нравится идея приделать туда 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
Это не превратится в pyramid of doom из-за отступов?
Ну в этом плане XAML, вроде, не особо лучше.

Friedrich
05.06.2017
05:36:22
Это не превратится в pyramid of doom из-за отступов?
А надо на подкомпоненты аккуратно разбивать, и тогда не превратится.

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

Vlad
05.06.2017
05:37:47
Хм

Friedrich
05.06.2017
05:38:15
А ты не знаешь случаем, тайп провайдеры могут делать билдеры?
Неа, не знаю. Я вообще, если честно, очень редко вижу, чтоб кто-то реализовывал такие вот билдеры в коде на F#. И, возможно, совершенно зря никто так не делает!

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
не знал, что хотят анонимные типы добавить

Страница 193 из 772