
Mariia
26.06.2018
20:34:42

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

Mariia
26.06.2018
20:35:31

TheRainwildsKeeper
26.06.2018
20:35:51

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
по крайней мере во всех моих проектах где я был) везде нужны либы одной версии, но всегда оказываются разных)

Mariia
26.06.2018
20:38:21
всегда нужны все либы во всем проектах?

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

Mariia
26.06.2018
20:40:49

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

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

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

Klei
26.06.2018
21:26:38


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

Klei
27.06.2018
03:16:59

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

Klei
27.06.2018
03:25:14

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

Evgeniy
27.06.2018
04:46:49
Привет!

Dark
27.06.2018
04:48:21

Google

Evgeniy
27.06.2018
05:19:05

Klei
27.06.2018
05:23:29
Эт не контр-аргумент, а реплика в тему.

Evgeniy
27.06.2018
05:24:37

Vlad
27.06.2018
05:42:50
?
А темплейт для тайп провайдеров без пакета не работает
Там нужны шимы в виде netstandard.dll которые через нугет я не понял как достать

Ayrat
27.06.2018
06:00:06

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

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

Friedrich
27.06.2018
07:39:19
Старый сайт — просто статика.
Новый мы делали на… э, Giraffe?

Vlad
27.06.2018
07:39:34

Roman
27.06.2018
08:08:37

Mariia
27.06.2018
08:45:57

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

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

Nikolay
27.06.2018
08:47:26

Evgeniy
27.06.2018
08:47:28

Mariia
27.06.2018
08:47:29

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

Дед Пегас
27.06.2018
08:53:44

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

Roman
27.06.2018
08:57:28

Дед Пегас
27.06.2018
08:57:37

Roman
27.06.2018
08:57:50
Ребят, @fsharp_flood

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

Vlad
27.06.2018
08:58:02

Mariia
27.06.2018
09:11:40

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# точно так же может наловый прилететь