
Igor
20.04.2017
18:18:30

Roman
20.04.2017
18:18:48

Igor
20.04.2017
18:19:05

Летучая
20.04.2017
19:01:50

Google

Andrey
20.04.2017
19:02:27
ух ты сколько сообщений за день:) так глядишь С# чат перегоним. Сайт fsharplang.ru я так понял с https://fsharplang-ru.github.io портировать планируете переписав на чем-то каноничном? или перенос просто?

Летучая
20.04.2017
19:06:43
не переписав, а написав же
щас там просто статика лежит с жс
кстати
кроссдоменные аякс запросы бразузеры запрещают делать
статик онлайн-компилятор не получится без бэка

Andrey
20.04.2017
19:07:46
ясно

Летучая
20.04.2017
19:08:17
по крайней мере не получится с https://run.glot.io увязать
мб я рак просто конечно
и не шарю
но гугол говорит, что если сервер протев, то просто чз браузер ничего работать не будет

Artemy
20.04.2017
19:11:02
Доброго вечера всем. Проясните кто-нибудь, пожалуйста, кое-что по SQLProvider. У меня тут не получается сделать join с таблицей, получаемой из другого запроса. В ответ получаю System.Exception: Unexpected join destination entity expression. Выходит, нельзя делать join с результатами других запросов? Или это как-то иначе можно осуществить?

Evgeniy
20.04.2017
20:51:52
@shwars Привет.

Roman
20.04.2017
20:55:02
Ого! Добро пожаловать Дмитрий!

Akhmed
20.04.2017
20:55:16
Дима!

Google

Akhmed
20.04.2017
20:55:33
отлично! Самый функциональный человек к нам присоединился
вот кто кто а вот про монады Дима знает все )

Serge
20.04.2017
20:55:53
??

Igor
20.04.2017
20:56:19
А говорили, что у Дмитрия нет телеграмма.

Akhmed
20.04.2017
20:56:23
У Димы самые крутые и интересные доклады на всех конференциях. У всех просто мозг взрывается после его докладов )

Dmitri
20.04.2017
20:57:03
Всем привет! Рад видеть, что у F# есть свой канал и толпа поклонников!

Akhmed
20.04.2017
20:57:06
Кстати у меня дома лежит две твои книги неподписанные. Специально приобрел что бы подписать у тебя )

Roman
20.04.2017
20:57:24

Andrey
20.04.2017
20:57:46
две?

Akhmed
20.04.2017
20:57:52
вообще то три

Dmitri
20.04.2017
20:57:58
Ахмед, спасибо за комплимент! Надо найти возможность пересечься!

Andrey
20.04.2017
20:58:07
какая вторая кроме "фп на f#" ?

Akhmed
20.04.2017
20:58:29
вообще то у меня три книги Димы. Но одну Дима подписал когда я свою подписывал для Димы )
Обязательно! Дима нам жутко не хватает скиловых людей которые используют в продакшене F#
если у тебя есть знакомые и им интересно принять участие в группе - то зови пожалуйста )
А то у нас тут в основном на небольших проектах опыт. У емня вообще около нуля )

Dmitri
20.04.2017
21:01:27
ЛенуДроид надо позвать! А вообще я попиарю конечно!

Roman
20.04.2017
21:01:42

Akhmed
20.04.2017
21:03:03
Это та самая Лена которая с кассандрой и F# на бою?

Roman
20.04.2017
21:03:08

Google

Roman
20.04.2017
21:03:38

Akhmed
20.04.2017
21:03:39
Прикольно. Давно смотрел ее видео. Она и правда крутая.
https://channel9.msdn.com/Events/FSharp-Events/fsharpConf-2016/Cassandra-Docker-and-F-Awesomeness

Evgeniy
20.04.2017
21:03:55
Которая теперь в Project Springfield.
В MS.

Max
21.04.2017
00:49:44
Посоветуйте пожалуйста книжечки по F# и если возможно, как и где прокачаться советы...
Без ума от литературы Димы, но этого пока маловато

Pavel
21.04.2017
03:29:22

Friedrich
21.04.2017
03:52:05
Ого, да у нас тут настоящий Дмитрий Сошников! Класс, теперь не пропадём :)

Evgeniy
21.04.2017
04:54:03
Утро.
Я переименовал репу с переводами. https://github.com/fsharplang-ru/translations

Friedrich
21.04.2017
05:13:02
Правильно.

Vasily
21.04.2017
06:24:47
Я вот вчера крутил-вертел sqlprovider.В целом все ок,но остались вопросы по встраиванию всего этого добра на замену orm.Например,интероп пока не придумал как сделать, чтобы кастомные квери можно было формировать
Т.е. получается такая вещь в себе,однако

Friedrich
21.04.2017
06:49:52
Если я ничего не путаю, то для какого-то из SQL-провайдеров был сделан computation expression с запросами.

Vasily
21.04.2017
06:52:50
Как использовать из f#-понятно,а вот как к легаси с# прикрутить-не очень

Friedrich
21.04.2017
07:00:38
Можно, к примеру, просто весь DAL реализовать на F#, а из C# к нему обращаться.

Pavel
21.04.2017
07:09:08
С SqlTypeProvider - оно так называемое erased type provider - у тебя тайп-провайдер может предоставлять бесконечное количество типов. Те, которые из кода не используются - просто не генерятся. В этом кстати разница с EF, к примеру.
Sql тайппровайдеров несколько, нормальный вроде тот, который в FSharp.Data написан.

Vlad
21.04.2017
07:10:22
а в чем разница между erased types и дженериками c# ? (для тех, кто в танке)

Pavel
21.04.2017
07:10:23
В смысле про удалённые типы - именно поэтому у тебя они не будут видны из C#-либы, если не используются в F# коде (или не экспортятся)

Google

Pavel
21.04.2017
07:11:02
Ты про тайп-провайдеры? Тайп провайдер у тебя генерит классы, в которых есть поля и методы, согласно какой-нибудь схеме.
Это больше похоже на кодо-генерацию во время компиляции
Я с хаскелистами общался - это очень похоже на template haskell, но тайп-провайдеры мощнее в том плане, что доступен intellisense в IDE
Vlad а дженерики в C# (точнее в .NET) появились только затем, что они нужны были Дону Сайму в F#
Насколько я помню из рассказов колег, они в C# появились позднее, чем появились в .NET, но я думаю историки меня поправят. Я точно не интересовался этим вопросом.

Vasily
21.04.2017
07:24:53

Pavel
21.04.2017
07:26:03
Там же есть тайп-провайдер, SqlCommand или что-то вроде.
type GetCustomersFiltered = SqlCommand< @"SELECT * FROM CUSTOMERS WHERE ...", buildTimeConnectionString >
Не помню точно как провайдер называется
Оно тебе сгенерит строго-типизировоанные классы и метод со всеми параметрами

Vlad
21.04.2017
07:28:24
скорее вопрос про то, как из c# делать кастомные вопросы через обертку на f#
я так понял

Pavel
21.04.2017
07:29:28
метод наружу открыть, который делает запросы, не?
module Storage
let getCustomer id = async {
use (cmd: GetCustomersFiltered) = createCommand ()
return! cmd.ExecuteAsync id }
И из C# потом дёргать просто getCustomer
Единственное, что добавить - наверное Async.RunAsTask - или как-то так метод называется

Vasily
21.04.2017
08:00:01

Pavel
21.04.2017
08:00:20
Это не есть плохо.

Vasily
21.04.2017
08:01:57
Я вот размышляю, насколько это гемморойно,учитывая такие положительные моменты, как строгую проверку SQL на соответствие выбранной базе
Осталось написать тайп провайдера, который по папке с sql файлами генерит набор команд :)

Google

Vasily
21.04.2017
08:04:35
И это будет бомба
Пазл сложился

Evgeniy
21.04.2017
08:10:16
Vasily Есть тайппровайдер, который просто загружает текстовый файл в виде строки.

Vasily
21.04.2017
08:10:31
Не
Там литералы
Или пути к файлам
Поэтому тут сложнее надо

Evgeniy
21.04.2017
08:11:19
Я к тому, что можно модифицировать. Наверное.

Pavel
21.04.2017
08:12:07

Vasily
21.04.2017
08:12:13
Идея в том, чтобы на лету генерить SqlCommandProvider для каждого подложенного sql

Pavel
21.04.2017
08:12:27
Только эта "папка sql" у тебя будет лежать в F# коде, и я не вижу проблемы

Vasily
21.04.2017
08:12:42
Чтобы руками не писать

Pavel
21.04.2017
08:12:55
Я не очень понимаю, что ты хочешь не писать руками.

Vasily
21.04.2017
08:13:02
Ну смотри
Есть модуль DAL

Pavel
21.04.2017
08:13:16
SQL-запросы у тебя всё равно будут. Обертки для C# - наверное да, не очень удобно.

Vasily
21.04.2017
08:13:52
В нем прописана куча кастомных запросов