
Ilya
24.05.2017
10:41:36
просто скрой конкретные реализации за интерфейсами, а потом разберешься как подсунуть то что нужно. Может быть у тебя будет в конструктор передаваться этот интерфейс, может просто где то будет статическое свойство, к которому ты будешь обращаться.

Alexander
24.05.2017
10:48:24
Хз как на мобилках, но под разные версии .net framework делают препроцессорными директивами
Под мобилки так же наверное
Можно оба подхода совместить, т.е. сделать интерфейс, а реализацию выбирать под директивыми:
#if OS1
_api = new Impl1();
#elif OS2
_api = new Impl2();
...

Google

Ilya
24.05.2017
10:54:38
насколько я понял нужна одна библотека на все платформы, а так получится на каждую платформу своя библиотека
не то, чтобы это было плохо, просто стоит учитывать

Daniel
24.05.2017
11:01:33
Законопроект о запрете анонимности в мессенджерах внесен в Госдуму via @meduzaproject https://meduza.io/news/2017/05/24/zakonoproekt-o-zaprete-anonimnosti-v-messendzherah-vnesen-v-gosdumu

Му
24.05.2017
11:03:21
когда не можешь написать свой мессендер, начинаешь паразитировать на других

Nikita
24.05.2017
11:08:07
на авалонии это ловили уже
если в методе НЕ используются статические поля
то в момент его вызова статический конструктор НЕ будет вызван
смотри в ildasm
хотя твой случай от моего немного отличается
но оно в целом более лениво вызывает всё

Ilya
24.05.2017
11:17:36

Google

Egor
24.05.2017
11:47:31
есть
есть? а если я добавляю пустой статический конструктор - че будет?)
тем не менее я говорил про код, а не про ИЛ, это как показывать класс с одной пропертью и говорить: смотрите! поле! Его нет, но оно какбе есть
неявный статический конструктор и явный - две большие разницы
явный уберет с класса beforefieldinit и поведение поменяется

Ilya
24.05.2017
11:52:39
беда с тобой) только IL код важен, что там написано на C# или VB не столь важно

Egor
24.05.2017
11:54:08
Эквивалентный код?

Ilya
24.05.2017
11:54:37
да

Egor
24.05.2017
11:54:43
ну вот нихрена подобного
в обынчном дотнете у них будет разное поведение и перфоманс.
в дотнет коре - разный перфоманс

Ilya
24.05.2017
11:57:14
это влияет на блокировки во время выполнения
именно поэтому разный перформанс

Egor
24.05.2017
11:58:08
не блокировки а тупо лишние проверки перед вызывами статических членов у D

Ilya
24.05.2017
11:58:13
вызываются они одинаково в одной и той же среде

Egor
24.05.2017
11:58:20
которые будут проверять - а про инициализировался
ну и как я сказал - в обычном дотнете моменты инициализации у C и D разные
что может привести к неожиданным последствиям, таким как те, с которыми я столкнулся

Ilya
24.05.2017
12:03:46

Egor
24.05.2017
12:04:19
я же уже два раза кидал тут - https://gist.github.com/EgorBo/6bcd2719209e5dd7470aaa65b8d89ead

Google

Egor
24.05.2017
12:04:53
замени в Foo на статический конструктор и запусти

Ilya
24.05.2017
12:05:14
дествительно поведение разное, но всё равно непонятно, какие это может вызвать проблемы?

Egor
24.05.2017
12:09:55
очевидно же - вызовется код, который не должен вызываться
в моем случае тот код содержал pinvoke

Ilya
24.05.2017
12:10:37
код в статическом конструкторе, который содержит вызовы Pinvoke? это точно то, что нужно?

Egor
24.05.2017
12:13:06
да
проинициализировать native dll перед работой
собсно я говорю о конкретном коде который все из вас юзают - внутрянка System.Data.dll

Ilya
24.05.2017
12:14:36
Оооо, и у тебя перфоманс проблема? или что то падает?

Egor
24.05.2017
12:16:58
перфоманс отдельная тема, есть паренек который недавно выкосил все явные статические конструкторы из дотнета где можно
а у меня - падал код

Ilya
24.05.2017
12:23:08
и как ты решил эту проблему?

Egor
24.05.2017
12:27:35
никак. так уж получилось что я тот класс смог выкинуть
но вообще можно было бы либо переписать на синглитон с геттером либо вставить пустой статический конструктор
за второе меня бы на вилы

Ilya
24.05.2017
12:29:06
мне кажется что здесь всё таки стоит править System.Data, чтобы он не вызывал ничего такого в статическом конструкторе

Pavel
24.05.2017
13:03:26
Подскажите, каким образом нынче предлагается использовать утилиты командной строки, которые с nuget-пакетами поставляются?
Есть, к примеру, XUnit.Runner - как мне оттуда консольную утилиту запустить после билда?

Nikolay
24.05.2017
13:04:12
Можно как-то обьявить Action/Func делегат через var?

Google

Pavel
24.05.2017
13:04:31
Func<int> getAnswer = () => 42;

Nikolay
24.05.2017
13:05:17
Думал может чего не знаю)

Pavel
24.05.2017
13:05:25
По-другому C# не умеет
Он не может понять, что ты объявляешь, Func<int> или Expression<Func<int>>

Nikolay
24.05.2017
13:06:21
Проблема с выводом типов понятна

Admin
ERROR: S client not available

Nikolay
24.05.2017
13:06:34

Pavel
24.05.2017
13:07:05
мне нужно protoc из Google.ProtoBuf.Tools в pre-build экшне запустить

Nikolay
24.05.2017
13:07:11
Под nunit вроде отдельная тулза поставляется, которую ты запускать должен
Ещё видел, когда отдельно билдится .exe, который и запускает тесты

Pavel
24.05.2017
13:09:05
Раньше можно было написать ./packages/Google.ProtoBuf.Tools/tools/protoc ./MyProject/Contracts.proto —csharp_out и всё
А теперь MS решили почему-то, что это никому не надо
И сука кладут Google.ProtoBuf.Tools в жопу - читай в ~/.nuget

Nikolay
24.05.2017
13:10:18
Читай его)

Pavel
24.05.2017
13:11:05
Оно в разных местах лежит
для разных платформ

Arseniy
24.05.2017
13:13:30
DevCon School в июне
кто-то был там, есть смысл идти? там интересно?
имеется в виду вообще DevCon School

Google

Igor
24.05.2017
13:16:09

Pavel
24.05.2017
13:16:24
Ок, где мне раннер-то взять?
В смысле котогенератор protobuf-классов
сделали бы тогда dotnet nuget exec ...
полтора часа уже мучаюсь с тем, что всегда в пол пинка делалось

Igor
24.05.2017
13:18:29

Pavel
24.05.2017
13:18:49
Мне на линукс машине это билдить надо
И на винде тоже

Nikita
24.05.2017
13:23:12
а что, там уже 4-ый ангулар?
мда
ЧЕТВЁРТЫЙ
наплодили-то

morlord
24.05.2017
13:23:30
А dotnet restore чем не помогает?

Pavel
24.05.2017
13:23:56
А чем оно помогает?

Nikolay
24.05.2017
13:24:07
Лол. Я думал с 4 ангуларом это мем такой :D

Nikita
24.05.2017
13:24:41
я к ним на сайт зашёл и узрел

Pavel
24.05.2017
13:24:42
~/.nuget/packages/google.protobuf.tools/3.3.0/tools/windows_x64/protoc.exe --csharp_out=./GraphQL/IDL ./GraphQL/IDL/Contracts.proto

Alexander
24.05.2017
13:24:58
Это тот же второй считай)

Pavel
24.05.2017
13:25:01
Как версию отсюда вытащить пакета и windows_x64 нормально запустить?

Nikita
24.05.2017
13:28:34
а bridge.net кто-нибудь в продакшне использовал?
Эта группа больше не существует