@Fsharp_chat

Страница 616 из 772
Mariia
26.06.2018
20:34:42
А есть какой то ещё?
вроде бы переделывали или я путаю?

Igor
26.06.2018
20:35:19
Вроде бы только планировали

Mariia
26.06.2018
20:35:31
ты видишь на уровне солюшна все проекты и думаешь в каких проектах какие пакеты
только наоборот, видишь все либы и можешь посмотреть в каких они проектах, ну в райдере так

Google
Vladimir
26.06.2018
20:35:58
только наоборот, видишь все либы и можешь посмотреть в каких они проектах, ну в райдере так
ну вот) а в пакете ты просто видишь либы и не думаешь в каких они проектах, т.к. знаешь что во всех версии одинаковые

Mariia
26.06.2018
20:36:56
ну вот) а в пакете ты просто видишь либы и не думаешь в каких они проектах, т.к. знаешь что во всех версии одинаковые
ну просто не совсем понимаю почему это преподносится как что-то хорошее, ведь в большинстве случаях мне нужны определенные либы в определенных проектах и я не хочу бездумно ко всему подключать

или я не очень поняла?

Vladimir
26.06.2018
20:37:11
обычно как раз наоборот)

Mariia
26.06.2018
20:37:16
TheRainwildsKeeper
26.06.2018
20:37:19
Vladimir
26.06.2018
20:37:47
по крайней мере во всех моих проектах где я был) везде нужны либы одной версии, но всегда оказываются разных)

Vladimir
26.06.2018
20:38:52
нет, в каждом проекте ты указываешь какая либа нужна, но не указываешь версию

поэтому версии оказываются одинаковые, т.к. проставлены только в одном месте

Mariia
26.06.2018
20:40:49
ну вот) а в пакете ты просто видишь либы и не думаешь в каких они проектах, т.к. знаешь что во всех версии одинаковые
ааа т.е. все либы недоступны во всех проектах, но если у тебя одна либа нужна в 2х проектах то гарантированно версия будет одинаковая?

Vladimir
26.06.2018
20:41:01
да)

Google
Mariia
26.06.2018
20:41:10
поняла спасибо

да)
норм но не киллерфича наверное

Vladimir
26.06.2018
20:41:54
ну наверное для каждого свое, для меня именно это и есть киллер фича)

Mariia
26.06.2018
20:43:12
ну наверное для каждого свое, для меня именно это и есть киллер фича)
ну просто если ты не бездумно добавляешь зависимости а через manage for solution то никакой проблемы и не будет

Vladimir
26.06.2018
20:45:27
чаще всего бывает так - добавляешь новый проект, в него существующую либу, смотришь а уже новая версия вышла, круто, можно заюзать) а старое лучше не трогать - вдруг поломается) или просто лень обновлять ее там и еще в десяти других проектах и проверять

Roman
26.06.2018
21:23:21
мы перестали удалять стикеры?

@fvnever http://fsharplang.ru/ а это новый или старый?
это единственный) До переписанного мы так и не добрались

Klei
26.06.2018
21:26:38
>всего, что с ним связано вопрос по тулингу: господа, как так вышло что в F# прям вот оч популярен Paket? в чём киллерфичи?
Умеет генерить fsx скрипты для загрузки пакетов, а также загружать произвольные файлы прямо в проект. Например я храню некоторые модули общего назначения в виде fs файлов в гистах. В противном случае пришлось бы шаманить с нугетами, что неизбежно повысило бы объем геморроя.

Ayrat
27.06.2018
02:49:40
>всего, что с ним связано вопрос по тулингу: господа, как так вышло что в F# прям вот оч популярен Paket? в чём киллерфичи?
Главная киллер фича - лок ТРАНЗИТИВНЫХ зависимостей, чего нугет не умеет и из-за этого можно словить гейзенбаги. Я уже ловил, поэтому только пакет.

Все остальное - прикольные приблуды, но не более.

А чтобы понять почему это важно, вот реальный случай: Есть проект с явно заданными зависимостями А и Б, оба пакета зависят от С разных версий. Как отресторится пакет С у девелопера со старой версией нугет менеджера, на CI сервере со старым нугет менеджером, через год (уже вышли новые версии С) у девелопера, который решил помейнтейнить проект с новым нугет менеджером, и опять на CI с новым нугет менеджером?

Для большей реалистичности можно на CI сервере или у какого либо девелопера навсегда оставить старый нугет.

Ayrat
27.06.2018
03:22:58
Это не объясняет, почему он популярен именно в F#.
Ну он написан на F# может поэтому?) известный в комунити проект, хочется попробовать. Ну и не только F# проекты собираются. Ситуация с транзитивными зависимостями настолько вышла из под контроля в Azure Functions, что майкрософт перевели хост рантайма на пакет. А в пакете сделали специальную фичу именно для ажурных функций - внешний лок файл. Уаще норм.

Ayrat
27.06.2018
03:31:22
Тем не менее пропихнуть пакет C#-истам у меня не получается.
Они просто любят страдать и вот описанный выше баг (редкий, да, но тем не менее) решают через дневной мейнтенс всех машин в агент пуле, всех машин разрабов и пересборкой проекта под микроскопом с проверкой md5 подписей всех файлов в артефакте. Лично наблюдал эту ебанину. А могли бы юзать пакет.

Для всех моих проектов время роли не играет. Пересобери его через год на любой тачиле, он восстановит все вплоть до минорной версии так же как и год назад.

Evgeniy
27.06.2018
04:46:49
Это не объясняет, почему он популярен именно в F#.
Я где-то читал, что C# пользователей Paket больше, чем F#.

Привет!

Dark
27.06.2018
04:48:21
Google
Evgeniy
27.06.2018
05:19:05
Тем не менее пропихнуть пакет C#-истам у меня не получается.
Смена инструмента должна решать проблемы. Если их нет, то и NuGet подходит.

Klei
27.06.2018
05:23:29
Смена инструмента должна решать проблемы. Если их нет, то и NuGet подходит.
Мои проекты видимо не доросли до проблем с нугетом. Я переехал на пакет только из-за того, что expecto не ставится без него.

Эт не контр-аргумент, а реплика в тему.

Vlad
27.06.2018
05:42:50
?
А темплейт для тайп провайдеров без пакета не работает

Там нужны шимы в виде netstandard.dll которые через нугет я не понял как достать

Ayrat
27.06.2018
06:00:06
Смена инструмента должна решать проблемы. Если их нет, то и NuGet подходит.
Согласен. Нугет в тыщу раз удобнее в той же студии для использования. Если бы я делал проекты под студией, то пакет подключал бы только в крайнем случае. В вс коде одинаково неудобен и пакет, и нугет. Поэтому там выбора особо нет

Bonart
27.06.2018
06:11:12
Кстати через directory.build.props можно централизовать нугет и без пакета

Ayrat
27.06.2018
06:12:08
Bonart
27.06.2018
06:14:47
Это файлик типа project (тот же, что и cproj нового формата), он автоматом включается во все проекты солюшена в папке где размещен и далее по дереву

Самое простое: <ItemGroup> <PackageReference Include="System.Collections.Immutable" Version="1.4.0" /> <PackageReference Include="System.Reactive" Version="3.0.0" /> <PackageReference Include="System.ValueTuple" Version="4.4.0" /> <PackageReference Include="System.Threading.Tasks.Extensions" Version="4.4.0" /> </ItemGroup>

Будут подключены все пакеты указанных версий ко всем проектам

Посложнее: <When Condition="$(MSBuildProjectName.EndsWith('Tests'))"> <PropertyGroup> <TargetFrameworks>netcoreapp2.0</TargetFrameworks> <OutputType>Exe</OutputType> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" /> <PackageReference Include="FluentAssertions" Version="4.19.4" /> <PackageReference Include="NSubstitute" Version="3.1.0" /> <PackageReference Include="xunit" Version="2.3.1" /> <PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\FluentHelium.Bdd\FluentHelium.Bdd.csproj" /> </ItemGroup> </When>

Эти настройки, включая пакеты получат только сборки с юнит-тестами

И так далее. Не так хорошо, как у пакета, но внутри студии очень удобно, централизованно и без дубликатов

Ayrat
27.06.2018
06:21:56
А, ну понял, неплохо да. Резолв на уровне солюшна. Но транзитивные все так же не лочит. Спасибо за ликбез

Bonart
27.06.2018
07:30:12
У меня была другая задница. Моно требовал system.net.client версии 4.0, а из sdk упорно подсасывался 4.2. Интересно, смог бы это решить пакет. Мне кажется что нет, так как проблема была не в пакетах а в самом msbuild который сборки из sdk предпочитал любым другим

Я решил грязно - таской на шарпе, которая бегала по сгенеренным референсам и штопала версию ручками

Ayrat
27.06.2018
07:31:45
Да, я бы так же сделал. Иногда брутфорс лучше умных решений

Пакет бы сказал что не собирается нихера с твоей конфигой. Он же конфликты ловит и пытается в рамках ограничений даунгрейдить пакеты чтобы собралось. Шанс есть

Google
Andrew
27.06.2018
07:32:52
А <dependentAssembly> не помогло бы решить эту проблему?

Friedrich
27.06.2018
07:34:05
@fvnever http://fsharplang.ru/ а это новый или старый?
Это «старый», потому что новый мы ещё не сделали. У меня руки рано или поздно дойдут и начнём педалить.

Vlad
27.06.2018
07:38:18
По-идее есть идея как эти статейки через него прикрутить

Переводы

Friedrich
27.06.2018
07:39:19
на мвц жеж?
Нигде у нас нету MVC.

Старый сайт — просто статика.

Новый мы делали на… э, Giraffe?

Vlad
27.06.2018
07:39:34
Старый сайт — просто статика.
Я про разработку нового

Roman
27.06.2018
08:08:37
Новый мы делали на… э, Giraffe?
и на жирафе и на fable были версии,

Ayrat
27.06.2018
08:46:43
щас собеседовал чувака не не очень сложную должность вопрос - как можно сделать неблокирующий вызов в winforms? чтобы приложение не зависало? ответ - технология асЮнк же актуальная? ещё вопрос - а как вы организовывали работу ответ - мы работали по игил

по игил, карл

Mariia
27.06.2018
08:47:02
А что вы хотите от сайта? Что там будет? Просто текущий по активации одностраничник @fvnever

Ayrat
27.06.2018
08:47:46
сорян, да, просто не смог удержаться

по ИГИЛ он работал значит

ну ладно игил, но вот сомневаться в том что "технология асюнк" актуальная, это звоночек

Google
Roman
27.06.2018
08:51:43
Ооо а диз есть? А репо?
Сайт сейчас не совсем для мобилок, хочется сделать его сразу mobile ready и на fable + f# на бэкенде

Mariia
27.06.2018
08:53:11
Сайт сейчас не совсем для мобилок, хочется сделать его сразу mobile ready и на fable + f# на бэкенде
Ну это вообще не полноценный сайт а лендинг чисто. :) А на клиенте?

Ayrat
27.06.2018
08:54:13
он честно признался что английский не знает, но учил в школе немецкий

но даже так, прочитать agile как игил, хз с asYnc похоже на асЮнк, да

Roman
27.06.2018
08:57:28
Ну это вообще не полноценный сайт а лендинг чисто. :) А на клиенте?
Сейчас так и есть. Только клиент, никакого бекенда. Хочется сделать лендинг близкий к тому что есть сейчас, но более под мобилки, и ещё страницы со статьями, переводами + страницы с активностями. А сам сайт сделать демонстрацией возможностей fable+f#

Дед Пегас
27.06.2018
08:57:37
Roman
27.06.2018
08:57:50
Ребят, @fsharp_flood

Дед Пегас
27.06.2018
08:57:54
Сорян.

Roman
27.06.2018
09:12:40
Репы Нового или старого сайта?

Есть только старого

Ayrat
27.06.2018
09:16:56
Ну, ты его скорректировал ведь, да?. =)
не, я по вебексу сидел и лыбу давил. На заявленную должность он может пройти даже с таким английским)

Evgeniy
27.06.2018
09:20:33
https://twitter.com/MikhailShilkov/status/1011705530648334337

Для использования в раздаточных материалах.

Ayrat
27.06.2018
09:22:22
левый пример преувеличен

Evgeniy
27.06.2018
09:22:54
Я думаю, там хелперов навернуть, и будет неплохо.

Ayrat
27.06.2018
09:23:06
почему слева phoneNumber не в аргументах функции, как справа? это возможно, биндинг общий почему слева проверяется инпут на налл, а справа нет?

string в F# точно так же может наловый прилететь

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