
Roman
23.04.2017
12:07:22
господа, я что-то туплю) <link rel="stylesheet" type="text/css" href="./css/bootstrap.css" /> на странице странице localhost:5000/blog css-ка разве не должна скачиваться с localhost:5000/blog/css/bootstrap.css?

Friedrich
23.04.2017
12:07:45
А, ну тут понятно. Нет, это так не работает.
Если у тебя страница имеет адрес /blog, это считается "файлом". Значит, у неё базовый URL будет просто /, и все ресурсы будут резолвиться относительно него.

Google

Roman
23.04.2017
12:09:32
добавил слэш в конце и все норм)

Friedrich
23.04.2017
12:10:10
Либо меняй адрес страницы, либо начинай все URL с blog/, либо используй тег <base>.

Roman
23.04.2017
12:10:21

Nikolay
23.04.2017
12:12:34
Т.к. в .Net Core F# нет Http Utilities, придётся использовать HttpClient, который в идеале надо делать reusable, а это значит придётся опять костыли с mutable делать, что не гуд)

Vasily
23.04.2017
12:15:19
А HttpWebREquest не модно, шоле?

Friedrich
23.04.2017
12:15:38
Ты чо, нет конечно!

Nikolay
23.04.2017
12:17:05
Не красиво

Vasily
23.04.2017
12:18:12

Friedrich
23.04.2017
12:18:37
Потому что WebClient, а теперь уже HttpClient.

Vasily
23.04.2017
12:18:48
Нухз

Google

Friedrich
23.04.2017
12:18:56
Да точно, точно!

Vasily
23.04.2017
12:19:09
Я за то, чтобы ближе к запросам быть
За это я, например, Restsharp не любил

Friedrich
23.04.2017
12:19:38
Там было чото по поводу эффективности обращения к серверу и переиспользования HTTP-подключений.

Vasily
23.04.2017
12:19:41
Там перед отправкой запроса низя посчитать, например, контрольную сумму

Nikolay
23.04.2017
12:19:50
https://gist.github.com/Dolfik1/ef286de68a633eda592d55077aaa8846
Уродство же?
И да, тут опять сраные ()

Vasily
23.04.2017
12:20:24
Ну как бы() вполне логичны
Читаем про мемоизацию

Nikolay
23.04.2017
12:20:41
Я думал что это будет эквивалентно return
Но ошибался)

Vasily
23.04.2017
12:21:14
КАкой-то ООП -стиль

Nikolay
23.04.2017
12:21:21
Вот
В этом и проблема

Vasily
23.04.2017
12:21:36
Ну это не клиент подталкивает, есличо

Nikolay
23.04.2017
12:21:45
У меня не получается писать в функциональном стиле с C# библиотеками)
Примеры красивого кода с HttpClient найти не удалось
И это прям опечаливает

Vasily
23.04.2017
12:22:50
Я начинал писать как-то так: https://github.com/vshapenko/fs-odata/blob/master/ODataClient/HttpRequest.fs

Google

Friedrich
23.04.2017
12:22:59
Кажись, ты там вызываешь асинк без авейта.

Nikolay
23.04.2017
12:23:22
А мне ждать не нужно

Friedrich
23.04.2017
12:23:38
А если там эксепшен?

Nikolay
23.04.2017
12:23:43
Да пофиг)

Friedrich
23.04.2017
12:23:48
Прям воще?

Vasily
23.04.2017
12:23:50
Кстати да, обработки исключений нет
Тебе имеет смысл подумать об использовании Result

Friedrich
23.04.2017
12:24:14
Ну, вернее, yield! Async.AwaitTask или как там это делается.
А мне ждать не нужно
Вот у тебя щас эта функция завёрнута в async { }, но она вся синхронная, всё тело у неё синхронно выполняется.
А, ой, не, не всё, простите.
Она аснихронно идёт по HTTP, потом стартует неотслеживаемые таски и всё.
Подозрительный код, в общем.

Vasily
23.04.2017
12:26:06
''' if not (System.String.IsNullOrEmpty(responseObj.Error)) then
bot.Api.SendMessageAsync(chatId, responseObj.Stderr) |> ignore
()
if System.String.IsNullOrEmpty(responseObj.Stdout) then
bot.Api.SendMessageAsync(chatId, "(empty)") |> ignore
Вот это кандидат на рефакторинг

Nikolay
23.04.2017
12:27:45
Я в целом косяки свои вижу и знаю

Evgeniy
23.04.2017
12:27:48
> в .Net Core F# нет Http Utilities
А собирать не пробовал? Какие там проблемы? Чего не хватает?

Nikolay
23.04.2017
12:29:08
The value, namespace, type or module 'Http' is not defined. Maybe you want one of the following:
HttpClient
HttpMethod
HttpContent
open FSharp.Data

Google

Nikolay
23.04.2017
12:29:40
Стоит

Friedrich
23.04.2017
12:30:37
Я уже совершенно запутался. А чо такое "Http Utilities"?

Nikolay
23.04.2017
12:31:00
http://fsharp.github.io/FSharp.Data/library/Http.html

Friedrich
23.04.2017
12:32:11
А, ок, инструменты выглядят хорошо.

Vasily
23.04.2017
12:32:59
ПРичем сделаны на WebRequest, походу

Friedrich
23.04.2017
12:33:00
Давайте багу там тогда заведём, если для неткора забыли положить этот модуль.

Nikolay
23.04.2017
12:33:11

Friedrich
23.04.2017
12:33:14

Vasily
23.04.2017
12:33:23
Я бы не стал

Nikolay
23.04.2017
12:33:35
There is a simple WebClient type (see MSDN) and a more flexible HttpWebRequest type

Vasily
23.04.2017
12:33:44
С веб-запросами лучше поменьше уровней абстракции
По собственному опыту

Friedrich
23.04.2017
12:33:54

Nikolay
23.04.2017
12:33:55
Хотя

Friedrich
23.04.2017
12:34:05
Про него документация отчего-то умалчивает :)

Nikolay
23.04.2017
12:34:27
To use the type, we first need to reference the library using #r (in an F# interactive) or add reference to a project. The type is located in FSharp.Net namespace:

Friedrich
23.04.2017
12:35:02

Nikolay
23.04.2017
12:35:47
dotnet add package FSharp.Net
...
error: Unable to resolve 'FSharp.Net' for '.NETCoreApp,Version=v1.1'.
error: Package 'FSharp.Net' is incompatible with 'all' frameworks in project 'L:\dev\FSharpBot\FSharpBot.fsproj'.

Friedrich
23.04.2017
12:36:01
Стой! Что ты делаешь %)

Nikolay
23.04.2017
12:36:22
Пытаюсь FSharp.Net добавить

Google

Vasily
23.04.2017
12:36:24

Nikolay
23.04.2017
12:36:27
?

Vasily
23.04.2017
12:36:36
В целом обертку написать быстро

Friedrich
23.04.2017
12:36:37

Vasily
23.04.2017
12:36:48
Над HttpClient
Но лень

Friedrich
23.04.2017
12:37:02

Vasily
23.04.2017
12:37:11
Меня пока занимает идея allmighty sql orm type provider

Nikolay
23.04.2017
12:37:19

Friedrich
23.04.2017
12:37:30
Ну, ты процитировал инструкцию для FSI.
И вообще, давай ссылку.

Vasily
23.04.2017
12:37:35
Кстати, кто может ткнуть в пример generative type provider?

Nikolay
23.04.2017
12:37:44
Вот же

Friedrich
23.04.2017
12:37:58
В FSharp.Data нету такого неймспейса, там FSharp.Data.Http или типа того: https://github.com/fsharp/FSharp.Data/blob/master/src/Net/Http.fs

Nikolay
23.04.2017
12:38:19
Ну я хз

Friedrich
23.04.2017
12:38:22
Лол, в документации косяк!
Я щас PR отправлю.

Vasily
23.04.2017
12:38:30
open System.Reflection
open System.Runtime.CompilerServices
open System.Runtime.InteropServices

Nikolay
23.04.2017
12:38:33
Там написано located in FSHarp.Net, а показывают open FSharp.Data

Friedrich
23.04.2017
12:38:36
Да.

Vasily
23.04.2017
12:38:38
bye bye core