
ect"==typeof module.exp
23.07.2017
17:00:23
Приложение может сделать бсод и не трогая ядро.

Oleg
23.07.2017
17:03:46
но это, кажется, оффтопик. Я предполагаю что проблема в железе, может быть в ОС и едва ли связана со связкой VSCode + Ionide

seq
23.07.2017
18:38:59
Ребят, кто-нибудь делал ассинхронные запросы на бд в Websharper? Юзаю SQLProvider + провайдеры, пробовал как sqlite, так и postgres, но при ассинхронном запросе всё время одна и таже ошибка на стороне клиента - "Failed to load resource: the server responded with a status of 500 (Internal Server Error)".
Синхронные запросы отрабатывают как надо.

Vladimir
23.07.2017
22:01:28
А как в F# сделать типа такого: (await SomeFunc()).SomeValue

Google

Vladimir
23.07.2017
22:01:28
F# Weekly #30, 2017 - Happy 2nd-anniversary Jet
https://sergeytihon.com/2017/07/23/f-weekly-30-2017-happy-2nd-anniversary-jet/

Friedrich
24.07.2017
06:47:12

Vasily
24.07.2017
06:48:20
В мой энтерпрайз .net core рановато сувать-можно на бабки попасть :)

Friedrich
24.07.2017
06:48:21

Vasily
24.07.2017
06:49:17
Я пытался сделать концепт генерации типов поверх провайдера
С помощью пребилд скрипта
В целом, оно даже из c# было видно как нормальные функции
Но есть фундаментальная проблема,к сожалению
Для компиляции актуального провайдера нужен доступ билд сервера к актуальной бд в том или ином виде

Friedrich
24.07.2017
06:56:59
Да, ты прав.

Vasily
24.07.2017
06:57:25
Поэтому это норм взлетает на исследовательских или пет проектах

Friedrich
24.07.2017
06:57:25
Мне казалось, там были какие-то подвижки в этом направлении? Можно было читать схему БД из файлов или что-то в этом роде?

Vasily
24.07.2017
06:57:55
Ну там есть что-то,что по dbml генерит

Google

Evgeniy
24.07.2017
06:57:56

Vasily
24.07.2017
06:58:15

Friedrich
24.07.2017
06:58:19

Vasily
24.07.2017
06:59:04

Friedrich
24.07.2017
06:59:25
Ну, мы же полагаем, что её сам провайдер будет уметь генерировать и обновлять?

Vasily
24.07.2017
06:59:41
Вряд ли
Источником схемы является бд

Friedrich
24.07.2017
07:00:03
Прям даже в него можно встроить такую фичу, чтоб он обновлял и сохранял текстовое описание схемы. И фолбэчился на него, если настоящая БД недоступна.

Vasily
24.07.2017
07:00:32
Есть провайдеры с работой из dbml уже
Проблема в другом
Как поддерживать его в актуальном состоянии
В команде из нескольких разработчиков

Friedrich
24.07.2017
07:01:37
Да, ещё и миграции сюда же вмешиваются.

Vasily
24.07.2017
07:02:01
Миграции из той же серии,да

Evgeniy
24.07.2017
07:02:11

Vasily
24.07.2017
07:02:18
В целом получается,что руками проще
Провайдеры-гиковская фишка

Friedrich
24.07.2017
07:02:48
Я предлагаю так:
- разработчики меняют БД, в девелопер-моде провайдер читает данные из БД
- перед коммитом разраб, который менял БД и написал миграцию, обновляет DBML
- на билд-сервере юзаем DBML

Google

Evgeniy
24.07.2017
07:03:39

Friedrich
24.07.2017
07:03:48
У нас с провайдерами лучше.

Vasily
24.07.2017
07:04:20
Нормально там

Evgeniy
24.07.2017
07:04:24

Vasily
24.07.2017
07:04:29
Бойлерплейта больше
С моей точки зрения,провайдеры могут быть интересы для имплементации dsl

Nikolay
24.07.2017
07:05:57
Осталось написать тайп провайдера, который по папке с sql файлами генерит набор команд :)
Кто-то поднимал такую тему

Vasily
24.07.2017
07:06:30
Ну такой провайдер не получился с наскока

Vlad
24.07.2017
07:06:53
Что ооочень удобно

Vasily
24.07.2017
07:07:13
Там проблема в вызове тайп провайдера из тайп провайдера

Nikolay
24.07.2017
07:07:56
Кстати, интересная идея, тайп провайдер для Sql файлов, типа пишешь ручками запрос, а он генерит обёртку для него :)

Vasily
24.07.2017
07:07:57

Evgeniy
24.07.2017
07:08:20

Vasily
24.07.2017
07:08:22
Проблемы обычно в рантайме подстерегают

Evgeniy
24.07.2017
07:08:38

Vasily
24.07.2017
07:08:38
Не тот инструмент,похоже

Google

Evgeniy
24.07.2017
07:09:20

Vasily
24.07.2017
07:09:42
Проблема SQL провайдеров,да и прочих,в том, что они генерятся по данным,а не по метаданным

Evgeniy
24.07.2017
07:10:17

Nikolay
24.07.2017
07:10:34

Vasily
24.07.2017
07:10:57

Evgeniy
24.07.2017
07:11:17

Nikolay
24.07.2017
07:11:50
И как он распознаёт типы, что topN это int64, regionName это string

Vasily
24.07.2017
07:12:00
В реальных- по модели данных

Nikolay
24.07.2017
07:12:38
А, он только для Sql Server'a

Evgeniy
24.07.2017
07:14:19
Пруф он концепт провайдеров, параметризуемых типами, забросили немного.
https://github.com/colinbull/visualfsharp/tree/rfc/fs-1023-type-providers
Это была бы более полезная в повседневности фича, как мне кажется.

Vasily
24.07.2017
07:18:44
В общем, я про что

Nikolay
24.07.2017
07:19:06
Я тут пишу кстати micro orm, типа Dapper + Slapper, но для F#

Vasily
24.07.2017
07:19:16
Про то, что написать на базе провайдера преализатор парсера грамматики какой-нить типа antlr - ок
Можно написать конструктор sql запросов, по идее

Nikolay
24.07.2017
07:19:54

Vasily
24.07.2017
07:19:56
Описанный какой-нить грамматикой
Но работать напрямую с источниками данных - это ад
И очень жаль, что Рослин не поддерживает F# пока, как я понимаю

Google

Evgeniy
24.07.2017
07:21:52

Vasily
24.07.2017
07:22:40

Friedrich
24.07.2017
07:22:56
Ну и кодеген, конечно :)

Vasily
24.07.2017
07:23:04
Мне ща скажут , что есть квотейшны для этого

Evgeniy
24.07.2017
07:24:10

Friedrich
24.07.2017
07:24:27
Для чего? ._.
Квотейшены не компилируют же мне код.
visualfsharp компилирует мне код.

Evgeniy
24.07.2017
07:24:56

Friedrich
24.07.2017
07:25:00
Было бы неплохо, если б код компилировался через Roslyn!

Evgeniy
24.07.2017
07:25:06

Friedrich
24.07.2017
07:25:12
Но это нереалистично, конечно.

Nikolay
24.07.2017
07:25:29
Сейчас так:
execute (sqlQuery "select * from table where id = @id", [ "id" = 1 ])
Думаю может быть сделать как-то так (если вообще возможно):
execute << sqlQuery "select * from table where id = %i" id

Friedrich
24.07.2017
07:26:04
Зачем?
1) нативная поддержка в студии
2) шаринг всей инфраструктуры без дополнительных усилий с нашей стороны
3) все новейшие фичи флагманских языков (string interpolation, nameof, etc.) бы почти автоматически были у нас в кармане

Evgeniy
24.07.2017
07:26:19

Friedrich
24.07.2017
07:26:45
Увы, в этом направлении пока никто не работает. Ну, расшарим хотя бы проектную систему, а там посмотрим.

Evgeniy
24.07.2017
07:26:55

Vasily
24.07.2017
07:27:02

Nikolay
24.07.2017
07:28:35