
Andrey
01.06.2017
08:26:40
а что с ним не так
Полная обратная совместимость. Я бы предпочёл, когда на мажорных версиях её ломают.

Nikita
01.06.2017
08:26:47
зачем
они в нетстандарт пихают только то, что туда целесообразно пихать

Andrey
01.06.2017
08:27:31

Google

Andrey
01.06.2017
08:27:49
Мир меняется и полная обратная совместимость - это боль во многом.

Nikita
01.06.2017
08:27:58
у нетстандарта смысл в том, чтобы там был только базовый платформонезависимый хлам

Andrey
01.06.2017
08:28:21

Nikita
01.06.2017
08:28:40
а назови мне ошибки в "десктопном" фреймворке
которые нельзя исправить, не поломав совместимость

Andrey
01.06.2017
08:29:23

Nikita
01.06.2017
08:29:33
так то жаба
они вообще странные

Andrey
01.06.2017
08:29:47
Ну да, а MS не могут ошибаться, верно?)

Nikita
01.06.2017
08:29:56
особо не замечены

Andrey
01.06.2017
08:30:42
Хочешь заметить?)
Я думаю, что тогда уже поздно окажется.

Nikita
01.06.2017
08:30:57
ну как бы есть история успеха

Google

Nikita
01.06.2017
08:31:03
начиная с 2002-го года

Slava
01.06.2017
08:31:10

Nikita
01.06.2017
08:31:12
когда обратную совместимость не ломали и всё ок

Slava
01.06.2017
08:31:13
не сказал бы, что саксес стори с ним

Nikita
01.06.2017
08:31:32
а какие твои претензии к сильверлайту и чем он тебе мешает сейчас писать шарпокод?

Andrey
01.06.2017
08:31:37
начиная с 2002-го года
Да, поэтому нужно выкинуть почти всю платформу, чтобы сделать её кроссплатформенной. Ошибок не было.
Лицемерие.

Nikita
01.06.2017
08:31:57
ошибок не было

Slava
01.06.2017
08:31:58
я не про шарпокод, а про "MS особо не замечены в ошибках"

Andrey
01.06.2017
08:31:59
Ладно, не почти всю, но выкидывать пришлось.

Nikita
01.06.2017
08:32:04
платформа изначально привязана к винде
и сделана для винды
единственный способ сделать кроссплатформу - исключить из API штуки, которые не живут без винды
при этом ты хоть сейчас можешь взять либу из начала нулевых
и перекомпилить её под .NET Standard

Andrey
01.06.2017
08:33:08
и сделана для винды
Поэтому в .net standard 2 появились ещё вещи, которые до этого были только для винды. А сейчас они чего не работают, если они не привязаны к винде?

Nikita
01.06.2017
08:33:25
какие, например? COM interop?

Andrey
01.06.2017
08:36:35
какие, например? COM interop?
Давай простейший пример: у RSACryptoServiceProvider во фреймворке есть методы FromXmlString и ToXmlString, а в коре нет. Тоже привязка к винде?
Да, проблем нет написать экстеншен метод, но почему этого метода нет в коре?
А если они не хотят иметь этот метод в библиотеке, то что это как не косяк?

Google


Andrey
01.06.2017
08:38:09
public static class RsaCryptoServiceProviderExtensions
{
public static void FromXmlString(this RSACryptoServiceProvider rsa, string xmlString)
{
var parameters = new RSAParameters();
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlString);
if (xmlDoc.DocumentElement.Name.Equals("RSAKeyValue"))
{
foreach (XmlNode node in xmlDoc.DocumentElement.ChildNodes)
{
switch (node.Name)
{
case "Modulus": parameters.Modulus = Convert.FromBase64String(node.InnerText); break;
case "Exponent": parameters.Exponent = Convert.FromBase64String(node.InnerText); break;
case "P": parameters.P = Convert.FromBase64String(node.InnerText); break;
case "Q": parameters.Q = Convert.FromBase64String(node.InnerText); break;
case "DP": parameters.DP = Convert.FromBase64String(node.InnerText); break;
case "DQ": parameters.DQ = Convert.FromBase64String(node.InnerText); break;
case "InverseQ": parameters.InverseQ = Convert.FromBase64String(node.InnerText); break;
case "D": parameters.D = Convert.FromBase64String(node.InnerText); break;
}
}
}
else
{
throw new Exception("Invalid XML RSA key.");
}
rsa.ImportParameters(parameters);
}
public static string ToXmlString(this RSACryptoServiceProvider rsa)
{
var parameters = rsa.ExportParameters(true);
return string.Format("<RSAKeyValue><Modulus>{0}</Modulus><Exponent>{1}</Exponent><P>{2}</P><Q>{3}</Q><DP>{4}</DP><DQ>{5}</DQ><InverseQ>{6}</InverseQ><D>{7}</D></RSAKeyValue>",
Convert.ToBase64String(parameters.Modulus),
Convert.ToBase64String(parameters.Exponent),
Convert.ToBase64String(parameters.P),
Convert.ToBase64String(parameters.Q),
Convert.ToBase64String(parameters.DP),
Convert.ToBase64String(parameters.DQ),
Convert.ToBase64String(parameters.InverseQ),
Convert.ToBase64String(parameters.D));
}
}


Лолитка
01.06.2017
08:49:41
Кор молодой, гарячий
Не выглядит как жёсткий факап

Летучая
01.06.2017
09:05:58


Vasily
01.06.2017
09:07:58
Эххх... опять виндохейтеры подтянулись
Вот шо меня в таких людях забавляет, так это привычка ругать
Впрочем, сами они это называют объективной критикой
Хотя сейчас, с текущим зоопарком технологий и языков, можно писать на чем душа пожелает

Anatoly
01.06.2017
09:09:37
Но если что-то не обсирать то становится скучно

Vasily
01.06.2017
09:09:47
Но нет, будут оправдания, что злые капиталисты заставляют писать на богомерзком дотнете этц.

Anatoly
01.06.2017
09:09:49
кто-то неправ в интернете

Vasily
01.06.2017
09:09:51
СТРАДАНИЯ
Технология - всего лишь инструмент решения задач.

Лолитка
01.06.2017
09:11:00
Я твою фамилию ща прочитал как шарпенко и орнул

Vasily
01.06.2017
09:11:17
Так меня тоже называли когда-то

Andrey
01.06.2017
09:11:50

Летучая
01.06.2017
09:12:01
Любитель копипасты в треде

Andrey
01.06.2017
09:12:05

Лолитка
01.06.2017
09:12:25
Не самая годная метрика кода)

Google

Vasily
01.06.2017
09:13:29
Метрики кода - вообще странная штука
Я видел говнокод, который успешно продавался, и видел вылизанный код, который никак не могли зарелизить

Andrey
01.06.2017
09:14:11

Лолитка
01.06.2017
09:15:03
Без всего остального)
Индусский код тоже простой и понятный, например

Andrey
01.06.2017
09:15:55

Admin
ERROR: S client not available

Aleksander
01.06.2017
09:16:08
Вообще, по сравнению с оригинальным кодом .NET фреймворка, этот код очень даже хорошо смотрится
http://www.dotnetframework.org/default.aspx/4@0/4@0/DEVDIV_TFS/Dev10/Releases/RTMRel/ndp/clr/src/BCL/System/Security/Cryptography/rsa@cs/1305376/rsa@cs

Andrey
01.06.2017
09:18:15
Да блин, я смотрел код .net core. Вот переименование типов у меня студию сломало. Зачем так делать?

Vasily
01.06.2017
09:21:35
Иногда обратная совместимость влечет за собой очень большой оверхед по поддержке

Nikita
01.06.2017
09:40:36
старый фреймворк - толстый монолит, в котором всё-всё-всё
потому что делался для времён, когда у людей интернета не было
а теперь всё раскидано по модулям в нугете

Andrey
01.06.2017
09:41:48

Nikita
01.06.2017
09:42:18
кому-нибудь будут нужны - запилит и зальёт на нугет
теперь это так работает
BTW, я вот конкретно сейчас натолкнулся на пример наркомании
в эппловкой таблице кодов символов они идут так:
1 2 3 4 6 5 = 9 7 - 8 0

Google

Nikita
01.06.2017
09:43:17
кому это вообще в голову могло прийти
ну вот кому
почему 6 перед 5, а 9 перед 7?

Timur
01.06.2017
09:46:00
Тут мс уговаривает всех на Линукс и ажуре переходить. Мол, 2017 сиквел - бох

Nikita
01.06.2017
09:46:15
а почему на линукс

Gid
01.06.2017
09:46:26
Уже допилили скл на линух?

Timur
01.06.2017
09:46:28
Зонтики дарят за это :)

Friedrich
01.06.2017
09:46:35

Timur
01.06.2017
09:46:38
Говорят, да

Nikita
01.06.2017
09:47:16
https://www.linux.org.ru/images/8818/original.jpg
И сбылось ведь
разве что с KDE ошибся

Ilya
01.06.2017
09:52:34

Vasily
01.06.2017
09:53:32
Xaml в линукс пойдет?
Потом будут с пеной у рта доказывать, что мс к этому отношения не имеет

Andrey
01.06.2017
10:17:51
Всем привет. Есть вопросик, по фабрике. Суть такая - из сокета приходит массив байтов(udp data). 7-ой байт - команда, на основании команды я могу определить наследника для конструирования. Другое дело, что наследников будет 35-40...Switch на 40 строк плохая идея по-моему, что посоветуете?
public static PacketBase FromByteArray(byte[] dataBuffer)
{
Command cmd = (Command) dataBuffer[6];
//here we must create instance based on cmd
}

Blue Screen of Death
01.06.2017
10:20:50
паттерн "команда" посоветуем

Andrey
01.06.2017
10:21:49
Я наверное неясно выразился, в данном случае команда - это байт в udp пакете, который определяет что за пакет нужно сформировать и что будет делать устройство. Для удобства обернул его в enum
Эта группа больше не существует