@Fsharp_chat

Страница 241 из 772
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
хз кодирую на f# в вскоде из-под виндовс
Я тоже, кстати, работаю с проектами на .NET Core в VSCode. Полёт нормальный. Правда, дебаг немножко кривовато работал (сбивался с номерами строк).

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

Friedrich
24.07.2017
06:48:21
@fvnever а ты же там что-то писал связанное с sql?
Хм. Нет, наверное. Не уверен, что правильно понял вопрос. Провайдеров я не писал.

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
Поэтому это норм взлетает на исследовательских или пет проектах
Если честно, мне кажется, что такая же история со всеми провайдерами.

Friedrich
24.07.2017
06:58:19
Если честно, мне кажется, что такая же история со всеми провайдерами.
Не со всеми. С теми провайдерами, которые уже из файлов что-то генерируют (JSON, XML, Protobuf) проблемы нет.

Ну там есть что-то,что по dbml генерит
Вот. Я планировал для билд-сервера паковать эту схему БД в какой-то dbml (или типа того, неважно), ну а потом уже из неё билдиться.

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
Не со всеми. С теми провайдерами, которые уже из файлов что-то генерируют (JSON, XML, Protobuf) проблемы нет.
Я про другое. Провайдеры сложно писать, у многих из них довольно низкое качество, непонятно как использовать в продакшене. Кажется, если убрать провайдеры из языка, то никому хуже не станет.

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
Если честно, мне кажется, что такая же история со всеми провайдерами.
Ну...провайдеры удобны очень, когда надо что-то быстро сделать. 2 провайдера: один для бд, второй для экселя, для парсинга, заменяют кучу кода на с#

Что ооочень удобно

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

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

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

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
http://fsprojects.github.io/FSharp.Data.SqlClient/
Он просто кортежи возвращает что-ли?

Vasily
24.07.2017
07:10:57
Здесь нет никаких принципиальных ограничений.
Нету,да.Но в исследовательских задачах удобнее по данным

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
Я тут пишу кстати micro orm, типа Dapper + Slapper, но для F#
Если у кого есть идеи, предлагайте

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!

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.) бы почти автоматически были у нас в кармане

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

Nikolay
24.07.2017
07:28:35
В некоторых SqlProvider реализовано через query
Ну я что-то в последнее время предпочитаю обычный Sql

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