Здравствуйте, Sinclair, Вы писали:
V>>Какую именно МОЮ ошибку?
S>Вы перепутали два совершенно разных коннектора.
Не, это ты перепутал и аки утопающий за соломинку хватаешься.
А я взял доку и нашел правильный драйвер.
Попытка обвинить меня в этом даже не смехотворна, а вызывающе тупа.
V>>Июль 2020.
V>>И до этого жизни в дотнете не было, судя по всему?
S>А если копнуть в 2001 год, то там и генериков-то не было.
Не прокатило.
S>Мы же говорим про сейчас, а не про тёмное прошлое.
Сейчас достоверно работает официальный.
По твоей ссылке пока мест неизвестно что.
V>>Теперь берём некий боевой новый проект и вот мелькнула мысль взять с гитхаба код этих двух чуваков...
S>Не, давайте так. Посмотрим, к примеру, на EntityFramework 6 и проект, который на три четверти написан каким-то чудиком с гитхаба.
linq2db пишется и используется, вроде бы, с 2002-го?
В его написании, тестировании, code review, обмена идеями и проч, и проч участвовали десятки если не сотни людей, и я в том числе в разные годы.
Помимо всего этого непосредственно привносили код и тесты тоже достаточно людей.
А использовали в реальных проектах многие тысячи, скорее всего, и я тоже в нескольких.
Ну и, ес-но, накопленная база тестов на порядки больше, чем по твоей ссылке.
Вот как доживёт тот проект до такого же покрытия тестами и людьми — приходи.
S>На какой сам сядешь, на какой маму посадишь?
Ты бы выплюнул, прежде чем говорить.
V>>Ничего против этой парочки не имею, конечно... но ты примерно представляешь объем тестов корректности, которые потребуется написать, чтобы принять решение — стоит рисковать брать самописный левый драйвер в боевую разработку или нет?
S>Конечно представляю. Вот они: https://github.com/mysql-net/MySqlConnector/tree/master/tests
Во-первых, вот они:
https://github.com/mysql-net/MySqlConnector/tree/master/tests/MySqlConnector.Tests
Во-вторых, в тесты ты не заглядывал.
Сравни с тестами linq2db, включая предыдущие две инкарнации, начиная с RDF.
Тестирование поделия по ссылке еще не начиналось от слова вообще, поэтому я и поставил вопрос как поставил — необходимо написать тонну тестов с 0-ля.
Потому что в отличие от тебя, я в имеющиеся "тесты" заглядывал.
Их нет.
V>>Представь, что решения принимаешь ты и отвечаешь за них тоже ты, в т.ч. возможным банкротством.
V>>Я так думаю, что ты никаких тестов писать не будешь, тихонько возьмёшь официальный драйвер, как это делают 99.99% разработчиков и забъёшь на разницу в эффективности болт.
S>Для начала: 99.99% разработчиков никаким банкротством ни за что не отвечают.
Кто не отвечает, тот и не принимает решения.
Или принимает такие решения, от последствий которых фирма не пострадает, т.е. орудует в песочнице того или иного вида.
S>Ну, вот взять хотя бы вас. Не сможете вы внести багу, которая вашу компанию к банкротству приведёт.
Я могу
попытаться внести такую багу, которая приведёт к серьезным потерям для компании.
Если удастся такой релиз раздать приличному кол-ву клиентов — однозначно компании конец.
Одно но — эта бага до продакшена не дойдёт.
А в поделии по твоей ссылке до продакшена дойдёт любая бага.
S>Далее: бага может обнаружиться в любом коде. В том числе — и в оракловом.
Такого типа баги:
Unnamed parameter not supported by MySqlCommand.Prepare
Которые в процессе разработки не обнаружатся? ))
В любом случае, by design этот метод имеет право делать nothing прямо согласно семантики исходного интерфейса.
А еще MS SQL ADO.Net драйвер тоже не поддерживет unnamed-параметры для обычных запросов, их подерживает только ODBC-драйвер.
Хотя MS SQL ADO.Net поддерживает ODBC-like вызовы хранимок, но Prepare для хранимок ничего не делает.
(хотя пофик, это всё ни о чём в любом случае)
Оракловый драйвер хорош тем, что используется многими тысячами людьми.
Если бы данные неправильно выдавал — давно заметили бы.
В деле доступа к БД трясутся над тем, чтобы данные правильно выдавались, бо страшно.
И прецеденты с ошибками дров БД были.
S>Что ж вы не боитесь ответить банкротством за баги Оракла?
Ответил выше.
V>>Зато здесь ля-ля-ля разводить так удобно, потому что безопасно...
S>Пошёл уже феерический бред. Я правильно понимаю, что вам не пришло в голову то, что смена драйвера — это не самая сложная процедура?
Да нифига ты не понимаешь.
Перешёл на беспомощное блеяние, противно читать.
Я находил баги и в майкрософтном ADO.Net драйвере к MS SQL.
В дотнет Core тоже найдено и зарепорчено несколько багов.
А ты в этом плане никто и звать тебя никак.
Болтун-фантазёр, который вообразил себе будто дотнет бабочками какает, просто потому что это дотнет, а как дела обстоят на самом деле — ни сном ни духом.
Да, я помню, как ты чуть ли не громче всех орал примерно в 2005-м, что дотнет позволяет делать меньше ошибок.
Но на деле вышло наоборот — такого чудовищного кол-ва ошибок как в дотнетном коде еще поискать.
У багов в дотнетном коде гнездо by design.
Да и общее кач-во как высокоуровневого дизайна, так и конкретных воплощающих его сниппетов — отвратительное.
Такова реальность.
Плата за "низкую планку входа".
А как верещали, помнится: "Дотнет позволяет не отвлекаться на низкоуровневые подробности, но заниматься прикладными задачами!".
Оказалось ложью.
Не дотнет-среда или дотнет-языки позволяли, а тупо большой набор готовых либ в поставке.
Стоило поспеть аналогичным либам и в нейтиве примерно к 2007-2008-м годам — и дотнетный лозунг всё очевиднее стал читаться как "мозги теперь не нужны, программируйте на отгребись, оно всё-равно худо-бедно, но заработает!"
Чего далеко ходить, по твоей ссылке код каких-то конченных двух олигофренов, посмотри сам:
public sealed class MySqlBatch
...
protected override async Task<DbDataReader> ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
{
((ICancellableCommand) this).ResetCommandTimeout();
using var registration = ((ICancellableCommand) this).RegisterCancel(cancellationToken);
return await ExecuteReaderAsync(behavior, AsyncIOBehavior, cancellationToken).ConfigureAwait(false);
}
Ничего тебя не смущает?
Приведение sealed this к интерфейсу.
В голове у авторов мусор вместо человеческих мозгов.
А лично у меня лёгкий ступор.
И от того, как много в дотнете профнепригодных дэбилов, прям гнездо.
И особенно когда этих дэбилов представляют в духе "полюбуйтесь на наших передовиков!".
Если передовики такие, какие ж остальные?
(вот-то не спеши торопиться никогда)
Ну и чуть меньший ступор от того, насколько по-скотски ты решил отстаивать своё священное право проповедовать дэбильное легкомыслие.
С гнильцой вышли оба у тебя — и форма, и содержание.
S>Ну, то есть если вдруг окажется, что нормальный драйвер вдруг уже оказался хуже, чем оракловое говно?
Хинт: чем очевидней спекуляция, тем больше тянет на зевоту.