Этого треда уже нет.
Это копия, сохраненная 29 апреля 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
15992087369920.png331 Кб, 1044x1122
C#/Сишарп/.NET Тред #23 /csharp/ 1870468 В конец треда | Веб
Прошлый тред >>1846539 (OP)

Литература вторым постом

1. Ресурсы:
- https://docs.microsoft.com/ru-ru/dotnet/csharp/
- https://metanit.com/
- https://professorweb.ru
- https://www.tutorialspoint.com/csharp/

2. Онлайн-компиляторы:
- https://ideone.com/
- https://dotnetfiddle.net/

3. WinForms или WPF?
Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.

4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
Неправда. C# активно развивается, недавно вышел .NET 5 и С# 9.0. Дотнет стал полностью опенсорсным и кроссплатформенным. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.

5. Какую IDE выбрать?
Для Windows самым очевидным вариантом будет Visual Studio ( https://visualstudio.microsoft.com/ru/downloads/ ). Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрайз эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений.
Кроссплатформенный полуредактор/полуIDE VS Code ( https://code.visualstudio.com/ ).
Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана.
Также можете взглянуть на кроссплатформенную IDE Rider.

6. С# для мобильной разработки
Если нужны инструменты для разработке под мобилы, смотри сюда - https://docs.microsoft.com/ru-ru/visualstudio/cross-platform/cross-platform-mobile-development-in-visual-studio?view=vs-2019.
Из актуальной литературы
- Xamarin Mobile Application Development
- Xamarin Essentials

7. Дополнительные инструменты для разработки на C#
LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных
dnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а
dotPeek - бесплатный декомпилятор от JetBrains
scriptcs - для запуска C# кода как скриптов, возможность использовать как REPL

8. Расширения для студии
ReSharper - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентов

Новые возможности C# 9.0: https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/

Текст шапки: https://pastebin.com/pbK8CGqw
2 1870472
9. Что почитать?
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 7.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином. Уже появилось издание для 8.0, однако в интернетах пока его нет.
- C# 7.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- Pro C# 8 with .NET Core 3 (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.

10. Более хардкорный материал
- CLR via C# (Jeffrey Richter) - это классика, это знать надо.
- C# in Depth (Jon Skeet) - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
- Writing High Performance .NET Code (Ben Watson) - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили.

11. Хочу еще хардкорней
- C# Deconstructed (Mohammad Rahman) - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата.
- Expert C# 5.0 with .NET 4.5 Framework - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.
- .NET IL Assembler (Serge Lidin) - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам

12. Литература по WPF
Из более-менее актуального можно выделить пару книг:
- Pro WPF 4.5 in C# (Matthew MacDonald)
- Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)

13. Литература по ASP.NET
- Pro ASP.NET Core 3 (Adam Freeman)
- Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
- Beginning ASP.NET for Visual Studio 2015 (William Penberthy)

14. Литература по асинхронности, параллелизму и всему такому
- Concurrency in C# Cookbook (Stephen Cleary) - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции
- Multithreading in C# 5.0 Cookbook - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
- Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg

15. Литература не по шарпу, но так или иначе связанная с языком
C# Game Programming Cookbook for Unity 3D (Jeff W. Murray) - разработка на шарпе под Unity
Introduction to Neural Networks with C# (Jeff Heaton) - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
Machine Learning Using C# Succinctly (James D. McCaffrey) - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.

16. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"

17. Что еще нужно знать, чтобы взяли работать за еду?
- SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper
- Системы контроля версий - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick
- Гитхабы-гитхабчики - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун
- Алгоритмы - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках
- Структуры данных - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы
- Если идти в веб - HTML, CSS, JavaScript, веб-сокеты, REST
- Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID

18. Я не умею читать, что посмотреть?
- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
- Канал по C# IAmTimCorey (на английском) - https://www.youtube.com/user/IAmTimCorey
2 1870472
9. Что почитать?
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 7.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином. Уже появилось издание для 8.0, однако в интернетах пока его нет.
- C# 7.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- Pro C# 8 with .NET Core 3 (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.

10. Более хардкорный материал
- CLR via C# (Jeffrey Richter) - это классика, это знать надо.
- C# in Depth (Jon Skeet) - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
- Writing High Performance .NET Code (Ben Watson) - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили.

11. Хочу еще хардкорней
- C# Deconstructed (Mohammad Rahman) - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата.
- Expert C# 5.0 with .NET 4.5 Framework - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.
- .NET IL Assembler (Serge Lidin) - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам

12. Литература по WPF
Из более-менее актуального можно выделить пару книг:
- Pro WPF 4.5 in C# (Matthew MacDonald)
- Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)

13. Литература по ASP.NET
- Pro ASP.NET Core 3 (Adam Freeman)
- Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
- Beginning ASP.NET for Visual Studio 2015 (William Penberthy)

14. Литература по асинхронности, параллелизму и всему такому
- Concurrency in C# Cookbook (Stephen Cleary) - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции
- Multithreading in C# 5.0 Cookbook - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
- Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg

15. Литература не по шарпу, но так или иначе связанная с языком
C# Game Programming Cookbook for Unity 3D (Jeff W. Murray) - разработка на шарпе под Unity
Introduction to Neural Networks with C# (Jeff Heaton) - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
Machine Learning Using C# Succinctly (James D. McCaffrey) - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.

16. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"

17. Что еще нужно знать, чтобы взяли работать за еду?
- SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper
- Системы контроля версий - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick
- Гитхабы-гитхабчики - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун
- Алгоритмы - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках
- Структуры данных - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы
- Если идти в веб - HTML, CSS, JavaScript, веб-сокеты, REST
- Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID

18. Я не умею читать, что посмотреть?
- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
- Канал по C# IAmTimCorey (на английском) - https://www.youtube.com/user/IAmTimCorey
3 1870480
Для тех, кто хочет попробовать.

Консолька
dotnet new console -o myApp
cd myApp
dotnet run

Веб проект
dotnet new webApp -o myWebApp --no-https
cd myWebApp
dotnet run
http://localhost:5000

Работает и на винде и на маке и на линухе.

Для Докера
Dockerfile

FROM mcr.microsoft.com/dotnet/sdk
WORKDIR /app
RUN dotnet new webApp --no-https
ENTRYPOINT ["dotnet", "run"]

Потом делаешь
docker build . -t my-app:latest
docker run -p 5000:5000 --name my-app my-app
4 1870483
>>1870474 →
class HotPotato<T>
5 1870492
test
image.png87 Кб, 829x423
6 1870524
>>870468 (OP)
Я таки тоже начал новую шапку пилить с новыми ссылками, но ОП оказался быстрее. Надо к лого добавить их новый маскот, а то у других языков в тредах есть, а у нас нет. И официальных ссылок накидать:
https://dotnet.microsoft.com/learn
https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/intro

И ссылку на их новое видео, где они всё по полочкам вокруг дотнета раскладывают:
https://www.youtube.com/watch?v=bEfBfBQq7EE
.png41 Кб, 613x635
7 1870604
Хм. Я вот долго думал-думал и вот что придумал(прикриплейд).
В общем, что думаете?
Зачем придумал? Ну, типа я столкнулся с тем что со всей этой DI дрисней довольно сложно использовать события обычные. Идея в чем: делаем синглтоны INotifier'ов, затем Scoped и Transient объекты получают этого INotifier в конструкторе, делают свои штуки грязные, и когда надо - пингуют методом Notify, те кому это надо - слушают и что-то там делают. Они(слушатели), так же получают этот INotifier в конструкторе, подписываются, в деструкторе - отписываемся.

Какие подводные камни? Вообще, я не придумал опять велосипед? А то я это, книг не читаю, только справку по языку на сайте МС читал. Ну и меня очень огорчало что с событиями в современных реалиях очень грустно, а мне так нравились события. Вот, посидев, подумав, придумал такое вот решение. Может быть есть что-то лучше?
Reflection 8 1870607
Шарпач, как с помощью рефлексии правильно запустить приватный метод из приватного объекта приватного вложенного типа?
https://pastebin.com/7k7w8Ujd

Public pub = new Public();
//добываю тип
Type hiddenType = typeof(Public).GetNestedType("Nested", BindingFlags.Instance | BindingFlags.NonPublic);
//добываю метод
MethodInfo hiddenMethod = hiddenType.GetMethod("GetMe", BindingFlags.Instance | BindingFlags.NonPublic);
//но как добытое поле привести
object hiddenFiled = typeof(MPCharCtrl).GetField("nestedInstance", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(pub);
//инвокаю
hiddenMethod.Invoke(hiddenFiled, null);

Вот так решил проблему, есть ли более лаконичный вариант?
10 1870634
>>870619
Прикольно. Только хз подходит ли оно мне.
Ну, просто, допустим вот такой вот сценарий. У меня есть апи-контроллер. На этапе разработки я хочу логгировать всякие обращения в этом контроллере, но после того как закончится разработка - это уже не надо будет, а нужно будет что-то другое, например, трафик по разным API чтобы знать где у нас больше всего обращений, чтобы как-то в будущем оптимизировать это все. Так вот, я не хочу передавать логгер напрямую в какой-то контроллер и штуку для подсчета трафика, я бы хотел просто их написать, и чтобы они своими делами сами занимались когда в контроллере происходит событие. В примере я не понимаю как это будет происходить, может быть я просто тупой. В моем решении - лично мне - все понятно, я сделал нужный мне INotifier, сделал слушателей, передаю в контроллер инстанс этого INotifier'а, он пингует, слушатели тоже получают инстанс и делают свои штуки когда получат уведомление.
11 1870752
>>870604

>что со всей этой DI дрисней довольно сложно использовать события обычные.


не совсем верно. Просто внедрив DI jни используются точно так же. Ведь в базисе IoC просто автофабрика
Либо обычные события, либо всякие *Listener/Subsciber/Receiver<T> и Subscribe(this)
Разница в том, что все, на что нужно подписаться, теперь должно быть по хорошему просунуто в конструктор, а не мы сами за ними ходим. Но и это не проблема, ведь IoC все это сам прокинет за нас.

Но некоторыми считается, что плохо подписываться в конструкторе и отписываться в диспозере.
таймкод
https://www.youtube.com/watch?v=ZzmK7K2ZIxI&feature=youtu.be&t=275

И если ты считаешь так же, то тогда обычные события и будут доставлять проблем. И вынудят использовать Listener/Subsciber/Receiver<T> (если сам их еще не ввел учитывая побочки обычных событий даже без DI)

но альтернатива "если не мы подписываемся, то кто-то за нас". А кто??? Например IoC
таймкод:
https://www.youtube.com/watch?v=ZzmK7K2ZIxI&feature=youtu.be&t=2178

Но это решит только момент "подписываемся в конструкторе и отписываемся в диспозере" (не вижу чтобы это решало "нужно подписаться отписаться много раз за время жизни компонента). К тому же раз мы не можем отписаться в диспозере, то тот, кто нас подписал, обязан знать наше время жизни чтобы отписать. А это не вкрутить, если не использовать концепцию lifetime (скоупы в IoC, либо явные lifetime)
12 1870949
>>870468 (OP)
Аноны, кому нехуй делать - въебеньте
RSABigInteger: https://github.com/username1565/BigInteger.js/commit/2b2057db04a32996247f2d1182511b6f2fe82395
куда-нить сюда:
https://github.com/bazzilic/BigInteger/blob/master/BigInteger/BigInteger.cs
А то RSACryptoServiceProvider не позволяет подписывать
данные произвольной длины, приватным ключём,
а здесь, двумя функциями, и подписывать и шифровать можно, байтовые массивы,
причём как приватными так и публичными ключами.
Ну и пофиксить бы, и оптимизировать весь этот код,
а то пиздец как распидарасило на кучу строку, что я аж сам хуею.
image.png8 Кб, 407x197
13 1871152
Реквестирую строчную помощь!

Аноны, переговорил с босом на работе, и решил таки перекатываться на MVC (на мой страх и риск), И ТУТ я сразу же словил маслину в задницу, при попытке юзнать создание вида посредством автогенерации (addView) получаю пикрил, я вообще не понимаю чего оно хочет, проект абсолютно пустой и дефолтный за одним исключением, в работе мы используем devexpress, собственно есть подозрения на него, но я не знаю как это фиксить,
14 1871154
>>871152
А забыл сказать что речь идет о среде .net core 3.1
15 1871169
>>871152
>>871154

https://supportcenter.devexpress.com/ticket/details/t679373/when-adding-view-already-exists-error

Этот пост самое близкое что мне удалось найти по этой теме, но я не понял как он это решил, я не нашел никакого Web Development Tools про который он мог говорить
Screenshot1.png60 Кб, 875x565
16 1871171
>>871169
В Visual Studio Installer "ASP.NET и разработка веб-приложений" добавлена?
17 1871176
>>871171
мне кажеться если бы у него не было этого элемента он бы тупо не мог создать проект мвс в котором у него вылезла эта ошибка, имхо
18 1871178
>>871152

> я вообще не понимаю чего оно хочет


> проект абсолютно пустой и дефолтный


Ну так по указанному пути точно файлов нет? А если проверю?
image.png13 Кб, 240x346
19 1871181
>>871178
есть собственно тот самый контроллер на который он ругается, вся соль в том что когда создаешь представление разве создается новый контролер с таким же названием? это же бред
image.png35 Кб, 933x646
20 1871202
>>871178
Есть еще одна странность, тот чувак писал что теперь работает обычное представление и представление с devExpress, у меня же есть только одно, с devExpress
21 1871205
>>870634
Во-первых, дотнет за тебя всю эту инфу собирает по дефолту. Ты можешь подключить какой-нибудь Serilog и отправлять и логи и производительность во всякие лого агрегаторы, типа Kibana, Grafana, Azure App Insights, New Relic, миллионы их. Там тебе будут твои логи красиво групповать, выдавать отчёт по производительности и ошибках.

Во-вторых, уж очень твой юзкейс подходит под эту тулзу: https://github.com/jbogard/MediatR/wiki
У него есть IRequest и INotification.
Никаких зависимостей, кроме самого медиатра (это вообще паттерн такой) в твоих контроллерах, а дальше твой DI решит в какой конкретно Handler твой запрос отправить. Тот Handler уже будет иметь логер, репо, сервисы и прочее.
22 1871225
>>871181
Бред или не бред, но я бы на твоём месте папочку-то подчистил.
23 1871227
>>871225
ты понимаешь что я вызываю генератор кода в самом контролере, без контролерра я не могу вызвать генератор кода для этого контроллера!
24 1871254
>>871227
Значит ты где-то неправильно настроил конфиг и он пихает выходные файлы под себя. Ищи конфиг. Насколько я помню девэкспресс, у них главная фишка - гибкая настройка в инспекторе без единой строчки кода.
image.png75 Кб, 959x509
25 1871269
>>871254
Если ты знаешь ведЕкспрес скажи тогда вот что, почему в демо проекте присутствуют ошибки но не смотря на это он запускается и работает? это что за магия?
26 1871285
>>871269
ребут студии с дропом .vs лечит даже геморрой
image.png636 Кб, 735x759
27 1871286
>>871285
Да сразу весь шиндовс, чет там уже, +- 30 гигов тогда уже разницы не сыграют, вот сидел себе на вебФормах и все работало.

А если серьезно тогда я боюсь как бы мне реально не пришлось после такого ребута всю систему сносить
28 1871287
>>871285
А ничего что у меня девЕкспрес установлен не на cистемный раздел?
29 1871288
>>871286
>>871287
вы упоротые. это папка в папке солюшена.
30 1871289
>>871288

>вы упоротые. это папка в папке солюшена.


Ага,
А ничего что девЕкспрес установлен не на cистемный раздел? Это может быть вызвано таким расположением? девЕкспрес Зависим от локации?
31 1871292
>>871289
да плевать кто куда установлен. основные проблемы из за расинхрона кода и содержимого кешей и тому подобного.
32 1871293
>>871292
Ну потому что ребут с удалением временных файлов был сделан в первую очередь, я даже на всякий пеку перезагружал, мало ли
33 1871295
>>870468 (OP)
9 вакансий на ждуна, так еще и конкурировать с вышкоблядями за миску риса на легаси, ну пиздец. И это в дс. Пока два отказа, ожидаю что с остальными откликами...
мимо вкатун из техподдержки
34 1871299
>>871293
ну мне обычно хватает только удаления .vs
остальные кеши у меня на рамдиске и не переживают ребуты.
один раз пришлось переставить студию
2 раза решарпер

где именно стоит студия и другой софт - никогда значения не имело.
35 1871309
>>871295
Ты DevExpress знаешь?
36 1871315
>>871309
Я не знаю. Зачем платный девэкспресс, когда есть бесплатная Авалония! Авалония! Скачай Авалонию! Юзай MVVM!
37 1871319
>>871315
А mvc .net core 3?
38 1871323
>>871315
у него ж въеб проект
39 1871353
>>871319
.net core же работает на Windows server правда? ну он ведь кроссплатформенный, было бы глупо если бы не работал... просто у меня даже их демо не работают, .net framework работает ок, а вот кор нет...
40 1871357
>>871353
Ну это уже слишком толсто.
image.png136 Кб, 1594x824
41 1871375
>>871357
Я тоже думаю что меня затролили, такого ведь не бывает
42 1871378
>>871375
Небось и девексы ворованые, да?
43 1871384
>>871378
НЕТ, честно взят трайал с последующей покупкой в перспективе, взят отсюда

https://www.devexpress.com/Products/Try/

Когда мне дадут нормальный уже не будет времени разбираться поэтому пытаюсь сейчас в свободное время
44 1871417
>>871202
А как вы вообще дошли до смеси C# и S/4Hana?
45 1871445
>>871417
А мы и не доходили, то что я смотрю это демо девекспреса, раньше я на вебформах сидел, мне на дваче объяснили что я не прав и я таки попросился в кор, мне сказали что знаний по кору у меня нихрена поэтому буду пока с вебекспресом работать, а он не работает нихрнеа, фремворк работает а кор нет
image.png101 Кб, 995x611
46 1871448
>>871417
кстати не все демки кора не работают, некоторые работают, а тот который мне надо нет, собственно пикрил
47 1871520
За 2 года работы столкнулся с тем что из проекта в проект пишу маленькие методы расширения и уже не представляю как без них писать.
Ну, например, оч удобный метод расширения для хоста для "засеевания" базы и миграции, инизиализации всяких синглтонов, либо проверка строки на пустоту, ну и всякие Guard'ы, чтобы можно было валидацию удобно провести.
Ну, я из проекта в проект папочку ношу.
И тут я задумался. А вдруг я хуйню делаю? Ну, типа вот есть несколько проектов, в одном эта папочка, а перенес в другой проект, в этой папочке добавилось пару новых методов. Перенес в третий там тоже добавилось. Может быть стоило бы это все таки в библиотеку оформить? А то нужно будет вернуться в старый проект, я опять эту папочку потащу. С другой стороны это полностью утилитарная библиотека, там нет классов, нет ООП, все методы это либо расширения, либо статические. С третий, если оформлять как библиотеку, то тут уже нужно будет более ответственно подходить, не менять внутренности под конкретные нужды, чтобы не поломать то что использует библиотеку.
48 1871685
>>871520
Как вариант: Оформи нугет-пакет, опубликуй и подтягивай в свои проекты. Когда добавляешь новую утилиту - обновляешь пакет на сервере.
49 1871815
>>871520
локальные нюгет либы тоже никто не отменял
50 1871927
>>871375
А при чем здесь неткор и ос? Или ты даже не в состоянии понять сообщения об ошибке и исправить причину?
51 1872063
>>871927
Какая ошибка болезненный, это демо девекса, я пробовал на другой пеке все работает, собственно задал закономерный вопрос, может ли влиять ось
52 1872069
>>872063

>какая ошибка


>Exception Exception



Ясно. Пиши в саппорт девекса. Самое смешное, что ошибка в SampleData, т. е. в данных которые там в качестве примера, но вместо того чтобы посмотреть в код, долбоеб бежит на двач со своими умозаключениями про ОС.
53 1872075
>>872069
Чел, ты понимаешь что SampleData они тоже сами представляют, оно должно работать с коробки, оно везде работает кроме сервера, разве мой вопрос о совместимости оси не закономерный в таком случае? или ты на полном серьезе хочешь что бы я полез дебажить и править демо пример?
54 1872090
>>872069
Ну и да, если ты читал предыдущие посты я писал что я этот же проект с ЭТИМИ ЖЕ ДАННИМИ запускал на фремворке, и там проблем не было, то есть проблема именно в кор версии проекта, что я и спросил, а ты рассказываешь мне что я там что-то дебажить в данных должен
55 1872197
>>870468 (OP)
Нахуя нужен core? Есть одно несложное wpf приложение, нужно "портнуть" на asp.net сайт. Я думал что core нужен для кроссплатформености, а мне как раз нужно было бы захостить на линуксе asp.net сайт, но зашел только что и почитал что на апаче есть мод - mono по типу шиндосовского iis, который позволяет захостить проект.
Какие подводные и в чем лучше core?
56 1872216
>>872197

>Нахуя нужен core?



Для кроссплатформенности.

>в чем лучше core?



Лучше тем что это полноценное решение, а не какой-то модуль на развитие которого большинству просто похуй. Я написал бэкенд на коре, фронтент на ангуляре, в пару кликов захостил всё на линуксе. Не понятно зачем мне искать какие-то модули и костыли.

>Какие подводные



Не знаю, но беглый взгляд по описанию этого mono нашел на это:

>Under high load, mono process consumes a lot of memory, website stops responding


>These symptoms have been reported, but their underlying causes are not known. Set the MonoAutoRestartMode, MonoAutoRestartRequests, MonoMaxActiveRequests, and MonoMaxWaitingRequests directives as described earlier to limit the lifetime of the mono process and to restrict the concurrency happening in the server.

57 1872223
>>872197
К тому же стоит упомянуть что Core производительней.
58 1872239
>>872197
кора больше нет, моно больше нет, теперь это всё под одной крышей под названием .NET 5.
IIS тоже больше не нужен, теперь всё по умолчанию хостится на Kestrel.

Смотри сюда чтобы узнать как создать проект и запустить его на любой ОС через Kestrel -> >>870480
59 1872244
>>872090
Со времён фреймворка куча системных АПИ поменялась. Один и тот же пример не сможет запустится и там и там без изменений. Если ты скачал пример конкретно под какую-то из версий кора, и пример у них под эту конкретную версию кора, и у тебя эта версия установлена, то у них в примере тогда ошибка и скорее всего во входных данных.
ОС и дотнет тут вообще не причём. Обращайся в девэкспресс или как их там вообще хз чё это такое
60 1872246
>>872244
и данные у них под эту конкретную версию
быстрофикс
61 1872261
>>872244
По поводу версии кора, у примера версия 2.1, у другого примера которій работает 2.1, на компе где примеры работают 2.1, и на сервере где нужный мне пример не работает тоже 2.1, почему я думаю что ось ТЕОРЕТИЧЕСКИ может быть причем потому что ошибка типизации, а значит например на оси может использовать другая культура даты, локализация, все это зависит от оси, я правда вот что скажу, один и тот же проект на разных машинах имеет разные хеши, я думаю это не должно так быть
62 1872303
>>872261
Ну опять всё упирается в этот девэкспресс. У них там какой-то метод с датой, в котором они вполне могли не учесть всякие локализации с форматом даты/времени.
63 1872305
>>872303

> девэкспресс


Что за пунктик на этом девэкспрессе? Насяльнике деньги некуда девать? Пусть он лучше тебе премией их выдаст, а ты сваргань приложуху на авалонии.
image.png14 Кб, 1116x154
64 1872306
>>872303
Ну так ясно что не в гугл, но вот чем именно вызвана ошибка я это пытался узнать, я тут все таки сравнил исходники и вот что получил, и я просто не понимаю почему данные отличаются в двух одинаковых демках, причем вписаны они нативно, тоесть не культура дат тут виновата, а то что нативно вписано не правильные даты, я просто без понятий
65 1872309
>>872305
В том что можно нанимать программистов более дешевого класса и один раз заплатил за девексперсс ты экономишь на зарплате программистам, хотя кстати я говорил шефу что да хуй с ним с этим девекспресом я перекачусь на мвс без него, мне ответили что это уже вопрос поддержки ранее сделанных проектов
66 1872311
>>872309

> можно нанимать программистов более дешевого класса


Маркетинговая лапша девекспресса. Поздравь своего насяльнику от меня - он на эту лапшу купился.
67 1872313
>>872311
А что? ты думаешь нельзя? что бы юзать девекс даже программистом не надо быть, копипаст и презентуешь насальнику с важным видом, хочет девекс пускай будет девекс, я найду куда свободное время потратить
image.png16 Кб, 955x91
68 1872458
Я спокоен.
69 1872535
Подскажите позязя по бест практисам, так сказать.
Я создаю приложение, которое работает в фоне, выкидывает иконку в трей, из контекстного меню иконки можно показать форму настроек.
1) По инициализации приложения. Есть класс формы, есть класс трея. Сначала я создаю трей, потом создаю окно. Прописываю в событие завершения приложения анонимную функцию, которая прячет трей-иконку. Пробрасываю ссылку на форму в трей (для манипулирования ею из трея). Запускаю майнлуп методом Run приложения. Всё верно делаю?
2) По знаменитому функционалу "сворачивание в трей" возник головняк. Ссылка на форму пробрасывается в трей-объект как Form, то есть, нет никаких дополнительных свойств, которые я нахуевертил. А нахуевертил я свойства bool CanHideInTray, bool CanClose, первое говорит окну, может ли оно вместо минимизации просто исчезнуть, второе говорит ему же, может ли оно при нажатии на крестик минимизироваться, а не закрыться. В сочетании с первым второе работает на исчезновение вместо закрытия. Я бы мог пробросить сабкласс MyConfigForm в инстанс трея, но я планирую несколько формочек, которые будут динамически меняться по ходу развития ситуации, пробрасываться к трей-объекту и он уже действующей формочкой будет манипулировать. Поэтому я сделал интерфейс ITrayedForm, в котором описал все нужные мне флаги, которых я напихал в форму. Затем я прописал форме, что она реализует этот интерфейс. После чего, в трей-объекте я создал два ридонли свойства, первое типа Form, которое отдаёт прилинкованную форму, если есть, второе интерфейса ITrayedForm, которое проверяет, прилинкована ли форма вообще, затем смотрит, форма is TrayedForm и если да, возвращает имеющийся инстанс, скастованный на этот интерфейс. Так вот, потом в коде мне приходится работать с двумя переменными, в первой свойства формы, во второй свойства велосипедного интерфейса. Правильно ли я делаю? Нет ли способа проще?
70 1872583
>>872458
И что вам дал этот дутнет 5? Я хайпа вокруг него не заметил, чего ждали непонятно.
71 1872597
>>872583
Как что? Как это что?
72 1872616
>>872583
Мы любим всё новое. Обновления венды накатываем в день релиза. Вот у тебя какой апдейт десятки 20Н2 я надеюсь?
73 1872633
>>872616

>Мы любим всё новое.


Двачую. Новая циферка (на этот раз даже больше чем у .net framework), более лаконичное название (без кора) — уже классно.
74 1872929
>>872535
Ну, я хз за бест практис, но я бы делал так: 1 основное приложение - виндовый сервис. 2 ui - обычная форма, из нее при выходе шлёшь сервису сообщение, например, о выключении, ждёшь пока состояние сменится на stopped и закрываешь формочку. Ну и настройки всякие, перезапускаешь сервис и все такое.
75 1872937
>>872929
Подумаю над этим. Спасибо! А иконка в трее к кому должна относиться, сервису или приложению?
76 1873059
Я вот ебанул такой вот велосипед:
У меня есть очередь, в которой лежат Func<CancellationToken, Task>. Есть семафорчик, есть работники, они когда в очереди что-то появляется - тащат оттудова. Такой велосипед я придумал чтобы ограничить число одновременных задач, чтобы сервер если куча запросов которые долго выполняются, был доступен для быстрых обращений. Так вот, я боюсь что в реальных условиях всплыват какие-то подводные камни. Потому предложите способ лучше.
Суть самого приложения - мониторинг состояния устройств, клиент может отослать запрос на чтение, устройство может ответить, а может и не ответить, потому там есть таймаут на отсет, который казывает клиент. Ну, чтобы в случае если куча клиентов разом читать ломанется, я это фигнию и придумал, потому что даже с стандартной асинхронностью, в случае если на пеке обычной запустить 10 клиентов и послать запрос на чтение всех параметров устройств(а их, в среднем, у устройств в районе 10к), все начинало тормозить, клиент не мог к апишке обратиться и вообще. Как нормальные люди это решают-то?
77 1873067
>>873059
А нет никакой разницы между вариантами
1 у тебя список фанков и ты следишь за тем, чтобы не больше лимита работнички брали
и
2 у тебя нет никаких фанков, но есть семафор и все делают все что им надо, но семафор залимитирует то, что нужно лимитировать - по факту та же очередь, только неявная + семафор
78 1873070
>>870949
Короче, сам впилил, вроде робит, но пиздец там говна, в коде: https://github.com/username1565/BigInteger.cs/commit/9a48f46c53c1e307c2d5441c5ba451e86349611a
79 1873088
>>873067
Ну, просто тут в чем проблема. Количество возможных одновременных работ остается либо за мной(я ебану константу), либо за тем кто настраивать сервер будет(я вынес настройку в конфигурацию, одмен может поменять число). Оба варианта мне кажутся говном в этом плане, типа блин, если клиентов не так много, то можно было бы и пожрать больше ресурсов, а если много - пусть задачи на чтение подождут, таки основная цель - смотреть что уже есть, а почитать большую часть параметров можно и в 2 часа ночи, когда нагрузка поменьше должна быть.
Вот и я думал, может быть есть какие-то более правильные способы это все делать. Конечно, я могу изъебнуться и свою хреновину для анализа запилить, которая будет в реальном времени ограничивать число работников, а когда ресурсы появляются - создавать новых, но это выйдет долго и сложно, да и не уверен что затраты по времени стоят того чтобы неделю-две ебаться с этим.
80 1873092
>>873070
Умничка!
81 1873093
>>873088
да какая разница сколько клиентов. Они упрутся в ограничения тред-пула (которые для I/O), что несомненно много или ты им дашь синхронизацию в которую они упрутся - TaskScheduler (на любителя) или семафор. Не хочешь делить семафор между всеми - пусть они не тащат из твоего "оттудова", а, наоборот, кладут туда свои фанки, чтобы они выполнялись лимитировано
и вот там можешь измерять фазы луны (ну а что еще) и на лету менять лимиты.
82 1873102
>>873070
а зачем ты вообще это делал. бигинтегеров разных что ли мало
83 1873115
>>873059
Зачем тебе семафорчик? Делай все задачи асинхронными, CLR сама распределит ресурсы по мере необходимости. Те которые будут выполнятся долго запускай с опцией TaskCreationOptions.LongRunning.
84 1873168
>>873092
Пасиб, оч приятно. :3 Рили, я долго с этим пердолился.
>>873102
Изначально, у меня, стоял вопрос в том, как бы - зашифровать трафик в локальной сети,
при передаче JSON-постов наноборды, от сервера к клиенту, и на клиенте дешифровать его.
Потому что, даже в локальной сети, могут быть натыканы снифферы, жучки, и анальные зонды всякие,
а JSON, он же, открытым текстом - он прёт по HTTP.
Поэтому, я создал тред о полуанонимной аутентификации, здесь: https://arhivach.net/thread/628790/
и сам же, пришёл к вот такой вот схеме: https://arhivach.net/thread/628790/#1839162
Где юзается RSA.

Поскольку RSА, подразумевает не только шифрование-дешифрование, но и подпись данных, с проверкой пописи,
с учётом того, что операции эти эквивалентны (возведение в степень по модулю, но с разными ключами),
и поскольку среди этих методов: https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.rsacryptoserviceprovider
я не нашёл ни одного, который позволял бы шифровать данные (не их хэш), приватным ключём, и дешифровать публичным,
поэтому я и решил запилить это. И на ".js" (клиентская сторона), и на ".cs" (серверная сторона).

А ещё, до этого, вот сюда подумывал всунуть это: https://github.com/username1565/rsaVault/issues/3
Потому что там тоже подпись не пашет нихуя, только шифрование публичным, и дешифрование приватным ключем. Это нихуя не рса.
85 1873180
>>873168
А HTTPS чем плох?
86 1873201
>>873168

>я не нашёл ни одного, который позволял бы шифровать данные


> приватным ключём, и дешифровать публичным,


Вот тут уже стоило задуматься.

>поэтому я и решил запилить это


А вот тут понять что ты совершаешь ошибку!

Причина почему этого не существует потому что это бессмысленная операция.
С тем же успехом ты можешь шифровать симметрией, даже лучше будет.
Темам криптографии уже десятки лет и там уже все предумано передумано, если ты гений математики (а ты явно не он), то сделать в этой сфере что-либо новое ты уже не сможеьш, поэтому просто берешь и используешь готовое, а не выдумываешь свой велосипед, потому что если его нет, то скорее всего (99.999999999999999%) он невозможен или тупой и никому не нужен.
87 1873312
>>873201
Тащемта, всё гораздо проще...
RSA-операция по подписи данных, приватным ключём, эквивалентна шифрованию данных приватным ключем, сообщения, внутрь подписи.
Проверка подписи, эквивалентна дешифрованию сообщения, но ключем публичным, извнутри подписи, с последующим сравнением сообщений.
Да, это туповатая операция, потому и не испльзуется, ведь байтовая длина подписи равна длине сообщения, поэтому используется хэш от сообщения - он короче. Однако хэш имеет коллизии, и ваша подпись не подпись. А тут таки-подпись.
Такие дела.
88 1873314
>>873180

Тем что CA сотрудничает с тащмайором.
89 1873410
Чет мне кажется что Fluent - какая-то хуета. Как минимум из-за того что я должен полгаться на то что там никакой магии нехорошей не происходит. Ну, т.е. да, LINQ с ним довольно удобно и все такео, но это майкрософты делали, если они там что-то наворотят, это не моя проблема, я вполне могу использовать и остальные штуки языка. Но когда какой-то чел в своей библиотеке или вообще в проекте делает что-то с Fluent во мне параноик просыпается, вдруг там что-то нахуевертили, вдруг там пересоздание объектов, вдруг еще что-то, я начинаю все равно весь этот Fluent разбивать на отдельные вызовы методов, потому что хуй знает, а так хотя бы увижу строчку где конкретно хуйня начинает происходить. Опять же, некоторые долбоебы проектируя такой интерфейс леняться нормально декомпозировать всю хурму и ты должен вызывать методы в строгом порядке.
Короче, не знаю, что думаете обо всех этих Fluent Interface'ах?
90 1873413
>>873314

>сотрудничает с тащмайором


Словно что то плохое
91 1873415
>>873410
Думаю, что ты параноик, а LINQ - хуйня. Почему хуйня? Работает пиздец как медленно, аж в х10 раз, чем старым дедовским способом. Не защищает от долбоебов как ты, которые вместо передачи лямбды в FirstOrDefault, хуевертят Where, а потом пустой FirstOrDefault.
92 1873491
>>873312

>эквивалентна


Нет. Иначе бы результат операции для одинаковых входных данных всегда был бы одинаковым.
А подпись данных дает различный результат от раза к разу, хотя результат не уникальный, а закономерный, просто не единичный.
То есть 2 разных строки могут быть подписью одних и тех же данных.

А шифрование публичным и дешифровка приватным не используется по причине того что операция небезопасна, если ты кому-то дал приватный ключ, то сообщение сможет расшифровать любой, хоть и не сразу, но это операция становится возможной.

Именно по этой причине существует лишь одна модель безопасной передачи данных. Это передача ключей любого симметричного шифрования с помощью ассиметричного, можно конечно и RSA общаться, но глупо, так как медленно и опять же смысла 0 так как в конечном итоге все хранится на машине пользователя и в обоих случаях доступ к ключу есть только на машинах пользователей.
93 1873514
>>873491

>>эквивалентна


>Нет. Иначе бы результат операции для одинаковых входных данных всегда был бы одинаковым.


Так он и есть одинаковый, этот результат (подпись),
если данные подписывать именно так, как описано здесь: https://ru.wikipedia.org/wiki/RSA#Цифровая_подпись

>s = m^d mod n; где m - подписываемое сообщение, d - секретная экспонента, n - модуль, s - подпись, (d, n) - приватный ключ.


Но битовая длина сообщения s получается, порядка битовой длины сообщения m, к тому же и m надо передать в паре (m, s),
а это уже - две битовых длины m. Поэтому, оно и непрактично, как-бы, и проще подписать hash(m), а не m.

>А подпись данных дает различный результат от раза к разу,


>хотя результат не уникальный, а закономерный, просто не единичный.


Тут, я, не совсем понял, что ты хотел сказать. Если менять хэш-функцию, или добавлять какую-то nonce к данным, то да, подпись меняется. А если данные статичные и не меняются, то с чего бы значению подписи изменяться?

>То есть 2 разных строки могут быть подписью одних и тех же данных.


Да, возможно, если подписывать разными ключами, криптоэквивалентными ключу d.
О таких ключах, расписано здесь: https://ru.wikipedia.org/wiki/RSA#Алгоритм_создания_открытого_и_секретного_ключей
Поэтому алгоритм генерации ключей, я, реализовал через функцию Кармайкла(лямбда), а не через функцию Эйлера (фи).
Также, об этом, сказано и здесь: https://en.wikipedia.org/wiki/RSA_(cryptosystem)#OriginalWithPhiN

>А шифрование публичным и дешифровка приватным не используется


Оно используется, и по дефолту, енкриптит - пабом, а декриптит - привом.
А вот наоборот - нельзя сделать, заенкриптить привом, и декриптнуть - пабом.

>А шифрование публичным и дешифровка приватным не используется


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


>то сообщение сможет расшифровать любой


Нахуя кому-то дать приватный ключ, если это - ПРИВАТНЫЙ, блять, ключ?

>хоть и не сразу, но это операция становится возможной.


Может ты имел в виду публичный ключ, а не приватный?
Ну да, декрипт возможен, в долгосрочной перспективе, если факторизовать n, на два простых,
что сводится к довольно сложной - задаче дискретного логарифмирования в кольце вычетов по простому модулю:
https://ru.wikipedia.org/wiki/Дискретное_логарифмирование#В_кольце_вычетов_по_простому_модулю

>Именно по этой причине существует лишь одна модель безопасной передачи данных.


>Это передача ключей любого симметричного шифрования с помощью ассиметричного


MITM-атакер - может подменить ключи, сначала асимметричные, и как следствие и симметричные.

>можно конечно и RSA общаться, но глупо, так как медленно


Именно. Для этого и вхуярены - CRT-методы.
Опционально, при генерации ключей, можно сравнивать e и d,
и выдавать более короткий e и более длинный d,
так как от битовой длины их, зависит скорость операций шифрования-дешифрования.
Если d более короткое, и его можно акселлерировать с помощью CRT,
то шифрование-дешифрование с длинным e будет требовать больше времени.

>и опять же смысла 0


>так как в конечном итоге


>все хранится на машине пользователя


>и в обоих случаях доступ к ключу есть только на машинах пользователей.


Тут не очень понятно, что ты хотел сказать.
Смотри, короче.
Есть сервер, он стоит на машине пользователя,
там хранится только приватник и данные, скажем - база постов наноборды.
Паб, этот сервер - он отдаёт в паблик, расшаривает, этот паб - прешаренный (pre-shared).
Рандомный клиент, желающий подключиться к серверу, анонимно,
зная pub-сервера, генерирует пару своих ключей,
затем - обмениваются по той схеме общим ключём симметричного шифрования, и гонят в обе стороны - шифр.
Снифферы - сосут, митмщики - сосут.
93 1873514
>>873491

>>эквивалентна


>Нет. Иначе бы результат операции для одинаковых входных данных всегда был бы одинаковым.


Так он и есть одинаковый, этот результат (подпись),
если данные подписывать именно так, как описано здесь: https://ru.wikipedia.org/wiki/RSA#Цифровая_подпись

>s = m^d mod n; где m - подписываемое сообщение, d - секретная экспонента, n - модуль, s - подпись, (d, n) - приватный ключ.


Но битовая длина сообщения s получается, порядка битовой длины сообщения m, к тому же и m надо передать в паре (m, s),
а это уже - две битовых длины m. Поэтому, оно и непрактично, как-бы, и проще подписать hash(m), а не m.

>А подпись данных дает различный результат от раза к разу,


>хотя результат не уникальный, а закономерный, просто не единичный.


Тут, я, не совсем понял, что ты хотел сказать. Если менять хэш-функцию, или добавлять какую-то nonce к данным, то да, подпись меняется. А если данные статичные и не меняются, то с чего бы значению подписи изменяться?

>То есть 2 разных строки могут быть подписью одних и тех же данных.


Да, возможно, если подписывать разными ключами, криптоэквивалентными ключу d.
О таких ключах, расписано здесь: https://ru.wikipedia.org/wiki/RSA#Алгоритм_создания_открытого_и_секретного_ключей
Поэтому алгоритм генерации ключей, я, реализовал через функцию Кармайкла(лямбда), а не через функцию Эйлера (фи).
Также, об этом, сказано и здесь: https://en.wikipedia.org/wiki/RSA_(cryptosystem)#OriginalWithPhiN

>А шифрование публичным и дешифровка приватным не используется


Оно используется, и по дефолту, енкриптит - пабом, а декриптит - привом.
А вот наоборот - нельзя сделать, заенкриптить привом, и декриптнуть - пабом.

>А шифрование публичным и дешифровка приватным не используется


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


>то сообщение сможет расшифровать любой


Нахуя кому-то дать приватный ключ, если это - ПРИВАТНЫЙ, блять, ключ?

>хоть и не сразу, но это операция становится возможной.


Может ты имел в виду публичный ключ, а не приватный?
Ну да, декрипт возможен, в долгосрочной перспективе, если факторизовать n, на два простых,
что сводится к довольно сложной - задаче дискретного логарифмирования в кольце вычетов по простому модулю:
https://ru.wikipedia.org/wiki/Дискретное_логарифмирование#В_кольце_вычетов_по_простому_модулю

>Именно по этой причине существует лишь одна модель безопасной передачи данных.


>Это передача ключей любого симметричного шифрования с помощью ассиметричного


MITM-атакер - может подменить ключи, сначала асимметричные, и как следствие и симметричные.

>можно конечно и RSA общаться, но глупо, так как медленно


Именно. Для этого и вхуярены - CRT-методы.
Опционально, при генерации ключей, можно сравнивать e и d,
и выдавать более короткий e и более длинный d,
так как от битовой длины их, зависит скорость операций шифрования-дешифрования.
Если d более короткое, и его можно акселлерировать с помощью CRT,
то шифрование-дешифрование с длинным e будет требовать больше времени.

>и опять же смысла 0


>так как в конечном итоге


>все хранится на машине пользователя


>и в обоих случаях доступ к ключу есть только на машинах пользователей.


Тут не очень понятно, что ты хотел сказать.
Смотри, короче.
Есть сервер, он стоит на машине пользователя,
там хранится только приватник и данные, скажем - база постов наноборды.
Паб, этот сервер - он отдаёт в паблик, расшаривает, этот паб - прешаренный (pre-shared).
Рандомный клиент, желающий подключиться к серверу, анонимно,
зная pub-сервера, генерирует пару своих ключей,
затем - обмениваются по той схеме общим ключём симметричного шифрования, и гонят в обе стороны - шифр.
Снифферы - сосут, митмщики - сосут.
.png7 Кб, 371x236
94 1873552
Вопрос на про шарп, а про студию.
Не смотрите на то что коде делает, это просто пример.
В общем, можно ли как-то в студии настроить так, чтобы студия автоматически как в варианте с 'a' форматировала?
Просто по дефолту она как b делает, а если я хочу как a - вторую строчку каждый раз вручную приходится пододвигать, дальше уже нормально.

Ну и еще вопрос, как блин сделать чтобы intellisense только если я какую-то клавишу жмакну работал, например tab. Очень странно просто эта фигня себя ведет в лямбдах, я пишу "(x" а он мне каждый раз какую-то хрень вставляет, каждый раз я вынужден это добро отменять. Не то чтобы прямо жить невозможно, но пиздец раздражает.
Screenshot1.png6 Кб, 614x183
95 1873591
>>873552

>Ну и еще вопрос, как блин сделать чтобы intellisense только если я какую-то клавишу жмакну работал, например tab.


Называется Toggle suggestion/completion mode, но включать её приходится каждый раз при запуcке Студии, по-другому вообще никак. Не знаю что это за ебанатство такое. Я им в поддержку уже не раз про это писал, игнорят.

Здесь кто-то предложил это исправить, и бот ответил что якобы исправлено, но это ложь
https://developercommunity.visualstudio.com/content/problem/712824/intellisense-toggle-completion-mode-should-persist.html
96 1873747
>>870468 (OP)
Можно ли кодить на связке js+css+html на фронте и c# на бекенде?
97 1873754
>>873747
Да, только не забудь побольше var в шарповом коде вписать.
98 1873764
Не совсем вопрос по сишарпу но все же.
Пытаюсь сделать парсер постов с каналов.
И шота сразу затуп.
Куда слать то запросы в апи телеграм? Не в бот апи, а именно в атпи телеграм.
В бот апи это понятно сразу есть ссылка https://api.telegram.org/bot<token>/METHOD_NAME а в Telegram API в нет нихуя

Чи я просто тупой?
Вобщем анончике помогите, куда слать запросы то?
99 1873769
>>873754
поясни
100 1873782
>>873180

>А HTTPS чем плох?


Так его же поднимать надо. Это во-первых.
К тому же, этот >>873314 , может быть вполне себе прав,
и нет гарантии того, что CА не наёбут,
ведь удостоверяющий центр (Certification authority, CA),
может попросту подписать левый сертификат,
после чего, возможен будет MITM, с перехватом трафика.
Пикрил.

>>873413
А что хорошего в зондах и дырах от "спецслужб", хрен знает из кого состоящих?
101 1873784
>>873769
Шарп же, JS-подобный, не?
102 1873785
>>873747
Разрешаю. в чём сомнения то, блять?
image.png173 Кб, 994x467
103 1873790
>>873782

>А что хорошего в зондах и дырах от "спецслужб", хрен знает из кого состоящих?


Это мировая практика
104 1873795
>>873790
Этот дегенератизм - результат капиталистической централизации, в процессе монополизации рынка.
А в децентрализованных сетях, без центров, такая хуйня не канает.
105 1873820
>>873795

>А в децентрализованных сетях, без центров, такая хуйня не канает.


У них куча своих проблем
106 1873846
>>873764
почему не погуглить бы а?
https://github.com/sochix/TLSharp
107 1873879
>>873820

> У них куча своих проблем


В отличие от вышеописанных проблем, проблемы децентрализации вполне приемлемы.
108 1873988
>>873168

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


>при передаче JSON-постов наноборды, от сервера к клиенту, и на клиенте дешифровать его.



Вот эту бы шнягу шифрануть асимметрией, по MITM-защищённой схеме (поверх HTTPS и TOR):
https://github.com/username1565/nanoboard/blob/8f0edd8d02b9f680f7ce1f70ddd29b8f7c367110/nanodb.exe-source/Server/DbApiHandler.cs#L40
а потом уже можно наделать кучу серверов в TOR'e и в локалках,
чтобы они ещё и синхронились между собой, беспалевно.
Тогда наноборда будет ваще неуязвимой, походу (потому что база децентрализирована, а центры - хуй знает где), и всегда онлайн.
109 1873995
>>873782
>>873314
Вы главное шапочку из фольги поправлять не забывайте.
110 1873998
>>873415
https://www.youtube.com/watch?v=Dv_nsoEmC7s
Посмотри все серии. А ещё учти, что он кор в пример приводит. В NET 5 линк ещё больше подшаманили. Например Any() выполняется как надо, без енумераторов.

Короче Linq на производительности особо не отражается. Старый дедовский метод (а скорее всего вообще всякий разный страшный хакинг) надо будет только для хайлоада для узких мест применять.
111 1874001
>>873552
Я такой опции не нашёл. Даже решарпер не может. Но после того, как ты задашь отступ первой строчке, остальные строчки студия должна сама подстроить.
Надо чтобы кто-то такой code style fix запилил.
112 1874002
>>873747
любому бэкэнду пофигу, чё там у тебя на фронтенде.
113 1874018
>>873998
Когда там TakeLast переделают так чтобы он не проходил по всему массиву и брал только последние значения, а начинал с конца?
114 1874054
Хм, а как настроить так чтобы Vue'вский фронтенд отдавался из приложения которое я начал как WebApi.
Просто сначала делал их обособленно, и на время доработки Api для фронтенда использовал ноду, в коде запросов просто прописал адрес куда слать. Теперь вот хочу чтобы просто запустил екзешник и, например, сервер на 80 порте висит, я делаю запрос на этот 80 порт, и мне отдавалось то что там на Vue написано, а в коде для фронтенда я бы не полный адрес писал, а типа: 'api/v1/Что-то что мне нужно'. Ангуляровский проект же как-то так делает, но я не сильно разбираюсь и не знаю как сделать так же для vue. Ну, т.е. концептуально я понимаю, я должен как-то прописать чтобы при сборке запускалась и сборка фронтенда, потом я копировал бы то что собралось в папочку, допустим www, и при запросах к сайту я бы отдавал index.html, но вот как это делается ручками я чет не совсем понимаю.
115 1874091
>>873998
Слабоватенько и я это видео видел. Вот чуть лучше https://youtu.be/W64C3FsxjXE

Старый дедовский способ - обычный фор.
116 1874099
>>874054
Безобразие. Мне, как серпом по яйцам, когда я вижу, когда приложения с интерфейсом работают как веб-сервис с локальным веб-сервером. Как побороть этот импринтинг, подскажите зумераны?
мимо дед-дельфист, формошлёп
117 1874193
Писать или не писать I у интерфейсов? С одной стороны - все пишут. С другой - хуй знает зачем. ИДЕ подсветит, называть интефейс и имплементацию одинаково - дурной тон, и вообще сейчас модно интерфейсы вообще в отдельный неймспейс отправить.
Вот и не знаю я. Лично я бы не писал, но все пишут, и я пишу.
118 1874206
>>874193
Хочешь как в плюсах? 100500 либ с 100500 стилей, круто ведь, когда в проекте 100500 разных стилей из-за либ. И гитхаб не подсвечивает, а код ревьювить надо.
1607253086982.png400 Кб, 720x400
119 1874207
>>874206
>>874193
А раньше ещё и у классов Т писали вначале. Потому что тип. Т в дженериках оттуда потянулось. Но сейчас не пишут. Так что, глядишь ещё два-три поколения и I в интерфейсах перестанут писать.
120 1874217
>>874207
Блин, так ведь правильно же. Почему-то вот сейчас венгерская нотация не считается чем-то хорошим, писать прификсы-суффиксы тоже не поощряется, а вот у интерфейсов осталось.
121 1874218
>>874217
Это вопрос соглашений, как верно заметил анон выше. Следуешь принятым соглашениям - испытываешь удобство при коллаборации. Вот и вся суть.
122 1874556
>>874193
Филип, ты?
123 1874718
Есть тут C#/OCaml шизоиды? Начал писать тесты на xUnit/F#, вставляет очень хорошо, чувствую себя как на спидах.
124 1874740
>>874718
Тесты для сишарпо кода на фшарпе? И чем оно лучше за тесты на сишарпе? но звучит интересно. Давно хотел попробовать фшарп, так как немного хаскель знаю.
125 1874939
Аноны, говорил только что с клиентов, тот посмотрев мой код сказал что ему не нравиться концепция работы с базой данных через entity framework core, так вот... а что есть другие способы работать с базой в .net core?
126 1874948
>>874939
Дедовский метод ещё есть.
127 1874949
>>874939
Напрямую через SQL запросы. Есть еще не реляционные бд, с ними можно без sql работать.
128 1874950
Посаны, посоветуйте стейтмашину. Кто какими ассетами пользуется?
129 1874955
>>874949
Это как "напрямую"? я если честно слабо себе представляю как это должно работать.
130 1874957
>>873070
Чё-то EncryptFile как-то хуёво тупо срабатывает. Надо фиксить.
131 1874959
>>874955
Ну так изучи матчасть по реляционным СУБД, чо ты? Некогда?
132 1874961
>>874959
Ну я понимаю как писать запросы в самом "ссмс" но я не понимаю как писать такие же запросы из под дотнета
133 1874989
>>874961
Я может сейчас напишу неправильно, ибо знания у меня устаревшие. Пусть более знающие поправят.
В целом, классический подход, это использование из комплекта поставки БД-тулкита специального объекта, который олицетворяет запрос в БД. Этому объекту скармливаешь строку вида "SELECT * FROM db_table WHERE foo=bar" после чего объект возвращает датасет. Который мы уже либо скармливаем табличному виджету, либо ещё как с ним работаем.
134 1875012
>>874939
Dapper, Hibernate
135 1875013
>>874961
Как вообще такие как ты дышат? Почему не умирают спускаясь по лестнице?

https://stackoverflow.com/questions/21709305/how-to-directly-execute-sql-query-in-c/21709663
136 1875019
>>875013
Господи как сложно... и чем єто лучше EntityFramework?

>>875012
Не слышал о таком, стоит вкатываться?

>>874989
Я не особо что понял...
137 1875035
Сап, анон! Нужна твоя помощь.

Есть старинный нешарповый проект, который может быть только 32-разрядным, и он периодически дёргает вызовы из dll, написанной на c++, которая, в свою очередь, обращается к с#-dll которая зовёт через ещё пару прослоек искомый функционал, но это не важно.

Поскольку 32-разрядное говно мамонта должно работать и на 64-разрядной машине используется именной такая цепочка вызовов (разрядность конечной библиотеки должна совпадать с разрядностью ОС, а 32 не может звать 64): мамонт <-> с++ - с# <-> ServiceHost-обёртка для 64-разрядной ОС <-> c# <-> конечная dll, последние 2 пункта поставляются сторонней конторой, считаются рабочими и сделать с ними ничего нельзя.

Выглядит максимально уродливо, но тут 2 решения: поддерживать то, что есть, либо избавиться от мамонта и сделать всё с нуля под .NET, на что, конечно же, нет ресурсов, поэтому только первый вариант.

В общем, есть функция, назовём её bool MyFunc(filepath), внутри неё идёт обращение к сторонней библиотеке на c#. При обновлении сторонних библиотек (c# и конечной, на c++) появилась необходимость заменить вышеупомянутое обращение на новое, подробное руководство прилагается. Заменить - заменил, тесты прогнал и довольный собой пошёл докладывать коллегам, чтобы забрали мои поделки и использовали в нашем ПО с Мамонтом. И тут вдруг выяснялось, что вываливается ошибка на этой самой MyFunc!

При замене обращения к внешней c#-dll на старое Мамонт начинает работать корректно (тесты тоже), при обновлённом вызове Мамонт начинает ругаться, а тесты продолжают проходить (тесты нехитрые - 32-разрядное плюсовое приложение, где вызываются функции из библиотеки). Причём, если Мамонту подсунуть обновлённые c++.dll и c#.dll, оставив старый хост-процесс, то всё продолжает работать корректно.

Подозреваю, я упустил что-то в подключении ресурсов (dll) к собираемым проектам, но в свойствах видны правильные пути до явно новых версий файлов. А когда я попробовал удалить и добавить заново в Хост стороннюю c#.dll, то всё вообще наебнулось. До моей попытки этого действия dll была с синей стрелкой на иконке в обозревателе решений, а теперь без

В чём тут может быть проблема? кроме выбора работы, днк и прочих, связанных со мной неприятностей Как искать её решение?
137 1875035
Сап, анон! Нужна твоя помощь.

Есть старинный нешарповый проект, который может быть только 32-разрядным, и он периодически дёргает вызовы из dll, написанной на c++, которая, в свою очередь, обращается к с#-dll которая зовёт через ещё пару прослоек искомый функционал, но это не важно.

Поскольку 32-разрядное говно мамонта должно работать и на 64-разрядной машине используется именной такая цепочка вызовов (разрядность конечной библиотеки должна совпадать с разрядностью ОС, а 32 не может звать 64): мамонт <-> с++ - с# <-> ServiceHost-обёртка для 64-разрядной ОС <-> c# <-> конечная dll, последние 2 пункта поставляются сторонней конторой, считаются рабочими и сделать с ними ничего нельзя.

Выглядит максимально уродливо, но тут 2 решения: поддерживать то, что есть, либо избавиться от мамонта и сделать всё с нуля под .NET, на что, конечно же, нет ресурсов, поэтому только первый вариант.

В общем, есть функция, назовём её bool MyFunc(filepath), внутри неё идёт обращение к сторонней библиотеке на c#. При обновлении сторонних библиотек (c# и конечной, на c++) появилась необходимость заменить вышеупомянутое обращение на новое, подробное руководство прилагается. Заменить - заменил, тесты прогнал и довольный собой пошёл докладывать коллегам, чтобы забрали мои поделки и использовали в нашем ПО с Мамонтом. И тут вдруг выяснялось, что вываливается ошибка на этой самой MyFunc!

При замене обращения к внешней c#-dll на старое Мамонт начинает работать корректно (тесты тоже), при обновлённом вызове Мамонт начинает ругаться, а тесты продолжают проходить (тесты нехитрые - 32-разрядное плюсовое приложение, где вызываются функции из библиотеки). Причём, если Мамонту подсунуть обновлённые c++.dll и c#.dll, оставив старый хост-процесс, то всё продолжает работать корректно.

Подозреваю, я упустил что-то в подключении ресурсов (dll) к собираемым проектам, но в свойствах видны правильные пути до явно новых версий файлов. А когда я попробовал удалить и добавить заново в Хост стороннюю c#.dll, то всё вообще наебнулось. До моей попытки этого действия dll была с синей стрелкой на иконке в обозревателе решений, а теперь без

В чём тут может быть проблема? кроме выбора работы, днк и прочих, связанных со мной неприятностей Как искать её решение?
138 1875055
>>875035

> старинный нешарповый проект, который может быть только 32-разрядным, и он периодически дёргает вызовы из dll, написанной на c++, которая, в свою очередь, обращается к с#-dll


Лол блять. Походу, кто-то у нас здесь работает со взломанным нелицензионным программным комплексом. Без палева так.
139 1875061
>>875055
Лолблядь, ты ошибся. И с чего ты вообще взял, что тут чего-то взломано? В цепочке, начиная с Мамонта, и заканчивая хост-процессом, всё написано в рамках одной организации, остальная часть (.Net-обёртка для вызовов конечной dll) в рамках другой.
140 1875069
>>874091

>Старый дедовский способ - обычный фор.


Очень полезная расшифровка, без неё точно бы никто не догадался. Я имел ввиду, что когда приходится воевать с производительностью и код писали не любители индусских фильмов, то и старый дедовский не поможет. Там будет куча хаков и хреново читаемый код.
141 1875070
>>874718
OCaml не пользовал, но F# люблю. Пытаюсь АПИ проекты на нём писать, а остальная логика на шарпе. Тесты на F# - это интересная мысль.
142 1875079
Аноны, почему в mvc core нет ADO.NET Entity Data Model? и там и там есть EntityFramework
143 1875081
Блин, так давно не видел разорпейджи, и тут нужно было накидать за пару часов фронтенд. Господи, какой же это кайф, просто в HTML ебанул что надо, сверху кинул стилей, пару скриптов и все, охуенно, красиво, быстро. ХЗ почему эта штука не взлетела особо. Каждый раз как приходится каким-нибудь ангуларом, или вью пользоваться, это же пиздец, ты просто чтобы отрисовать простенькую сьраничку хреначишь будто это реальное приложение, хотя по факту - просто шлем запросик - биндим это к элементам, ничего сложного, но нет, JS-еры хотят чувствовать себя настоящими программистами, потому давайте-ка как в нормальных языках заебеним.
Короче, хочу чтобы разор ожил, чтобы на нем были нормальные проекты, а не только когда нужно за час-два накидать что-то чтобы показать.
144 1875086
>>873747
Да что там бэкэнд, с помощью Blazor ты и фронтэнд можешь хуярить на шарпе.
https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor
145 1875087
>>873784
Нет.
146 1875114
>>875019

>Господи как сложно... и чем єто лучше EntityFramework?



Почему ты здесь спрашиваешь, скотина тупорылая? Спрашивай у своего заказчика. Может ему EF не нравится потому что в нём некоторые запросы не оптимизированы, тогда можно всё равно использовать EF но писать все запросы в виде чистых SQL, у EF есть такая функция.
147 1875116
>>875114
Тут такое дело. Тут кэп стучит в окно и орет что как бэ если использовать все запросы как чистые SQL, то НАХЕРА ТОГДА EF, если даже тот же linq2db удобнее будет. Чё кэпу передать?
image.png61 Кб, 561x331
148 1875119
Что значит эта ошибка?

System.InvalidOperationException: 'No suitable constructor was found for entity type 'ART_Artykuly'. The following constructors had parameters that could not be bound to properties of the entity type: cannot bind 'session' in 'ART_Artykuly(Session session)'.'
149 1875129
>>875116
Человек уже написал на EF, но заказчику это не понравилось, вместо того чтобы всё переделывать под что-то другое, нужно сначала узнать причину по которой не устраивает EF, если это "хотим чтобы все SQL запросы составлялись без посредников", то переписывать на другой фреймворк смысла, можно просто использовать чистые SQL запросы используя EF для миграций и создания моделей.
150 1875132
>>875119
Ему не нравится название ART_Artykuly
151 1875133
>>875132
ARTArtykuly а так будет норм?
152 1875138
>>875129
Если писать запросы так как предложил этот >>874989
уважаемый анон, обработка запросов будет занимать меньше времени??
153 1875142
>>875133
Нет, Articles подойдет. ART можешь заменить на что-то более понятное.
154 1875144
>>875138
Зависит от уровня твоего мастерства. Если хорошо знаешь SQL, то очевидно ты напишешь лучше, чем транспиляция от EF или другого фреймворка. В других случаях эффект может быть отрицательным.
image.png132 Кб, 1151x487
155 1875146
>>875142
изменение имя не дало результатов... та же ошибка ,я дума проблема в девексе
156 1875150
>>875119
Блядь, если в английский не можешь - выдели ошибку и в гуглтранслейте посмотри. Нет конструктора который бы принимал параметр который ты(фреймворк/либа) забиндить пытаешься.
157 1875151
>>875146
Нихуя гуднайсовый код
158 1875153
>>875150
что значит "забиндить"?
159 1875154
>>875019
Stackoverflow Dapper использует. Они его и разработали.
160 1875158
>>875013
Двачую. Как можно работать с БД за деньги и не понимать, как это всё работает? Используешь EF - обязан понимать что твой EF делает, иначе у твоих клиентов начнут возникать магические ситуации и тормоза.
161 1875165
>>874939
Тебе уже сказали, что твой вопрос в принципе твою недоквалификацию показывает. Но клиент - еблан.
Он видимо боится того EF, который был костыльным году в 2012. Сейчас он производителен и почти также немногословен, как и Dapper, а где-то даже выигрывает, потому что запросы руками или кодогенераторы писать не надо.
EF, кстати, может все исполняемые sql запросы показать, если очень надо. Он также может голый sql запускать и результат маппить к твоим классам/рекордам.
Основная его фишка - это не маппинг результата в объекты. Это может любой Даппер. Основная фишка - это миграции, когда ты руками БД вообще не трогаешь, а отдаёшь эту привилегию приложению. Забываешь про многие головняки с работой в БД быстро.
exp.png65 Кб, 728x454
162 1875167
Поясните за экспрешны. Вот написал я поиск гипотенузы по теореме Пифагора, а нахуя непонятно. Где они используются ИРЛ? Вам они пригождались в вашей практике?
163 1875170
>>875153
ёбанарот...
164 1875172
>>875170

И вообще я не знаю что это за сессии, модели были созданы автогенерацией девекса, первый пик дюКонтекст, второй модель

я поискал и нашел вот это https://docs.devexpress.com/XPO/DevExpress.Xpo.Session

там есть вот такая магическая строка
Session workSession = new Session();
но я не знаю куда ее кастовать

ошибка у меня здесь на третем пике
165 1875175
>>875167
кодогенерация же. собственно ты ее и сделал
166 1875178
>>875167
На них весь LINQ построен. У тебя есть дерево вызовов, которые надо как-то менеджить и испольнять в какой-то последовательности. Дальше ограничен только фантазией.
Можешь кучу примеров на гитхабе найти. В обычных приложениях врят ли понадобится, а вот во всяких утилитах вполне.
167 1875181
>>875146
Попробуй добавить конструктор без параметров.
image.png9 Кб, 457x77
168 1875185
>>875181
Ты имеешь ввиду убрать параметры здесь?
169 1875189
>>875185
Почитай какую-нибудь книжку по шарпу, нахуй ты пытаешься что-то делать не зная основ?
170 1875194
>>875170
Вот ты тока щас охуел, а я ещё два дня назад, как только он заикнулся о девексах, сразу понел, с каким уровнем придётся столкнуться.

Намекал >>872311>>872305
171 1875196
>>875189
Но это и есть основы... и я сейчас эти основы изучаю, иногда я могу где-то завтыкнуть, поэтому я буду очень благодарен если мне укажут на мой завтык или ошибку
image.png636 Кб, 735x759
172 1875200
>>875194
Я не виноват, раньше я был на нетФремворке, там был орм от еф, и там все работало с коробки... а тут какие-то пляски с бубном, сессии-хуессии
173 1875207
>>875200
Core намного проще в обращении, чем старый фреймворк.
Сложно сказать, чего тебе там надо сделать, потому как у тебя там десятки, а то и сотни, всяких зависимостей и всё что мы тут пытаемся сделать - это ткнуть палочкой в одну и надеяться что оно заведётся.
1-2 недели потыкай, почитай статьи хорошо, а потом нормальных вопросов принеси (если останутся). Ещё у тебя есть поддержка от девэкспресса, их форум с вопросами/ответами и стэковерфлоу.
174 1875209
>>875172
>>875185
Няша, по твоей же ссылке в примере модель наследуется от XPObject, ты делаешь пустой конструктор:
public ModelObject(Session session) : base(session) {}
Попробуй, я думаю в этом проблема вся.
175 1875233
>>875207

> Core намного проще в обращении, чем старый фреймворк


А вот не сказал бы.
Лично мне разобраться было легко, но я-то разбирался уже подрочив паттерны, солиды и покодив в реальных проектах и на джаве и на старом фреймворке. А вот вспоминая себя на первом курсе, я бы увидел эти дженерик хосты, подумал бы что это магия какая-то. А уж про лнику, так вообще говорить не приходится, я когда их увидел - просто повторял как в туториалах, ну и вообще. Короче, чем меньше всего есть из коробки - тем лучше новичку к.м.к. потому я бы наоборот советовал тем кто только разбирается взять какой-нибудь 3.5, а в идеале еще старше, там все как раз просто, и магию ты сам постепенно учишься делать.
176 1875240
>>875209
По поводу ModelObject(Session session) : base(session) {} тот файл создан автогенерацией и мне кажется его трогать нельзя
177 1875245
>>875240
Ты просто добавь наследование от XPObject и проверь.
Если боишься - сделай локальный коммит перед тем как что-то трогать, если что-то сломается - откати.
image.png22 Кб, 692x210
178 1875254
>>875245
К сожалению получилось вот это вот...
image.png150 Кб, 785x523
179 1875256
>>875245
Но вот что я видел в туториале здесь https://www.youtube.com/watch?v=oXL9xlaXdJk&ab_channel=DevExpress
180 1875258
>>875254
Ну блин. Тяжело советовать нормально.
Копипастни этот текест:
public class ART_Artykuly: XPObject {
public ART_Artyculy(Session session) : base(session)
}
181 1875260
>>875258
Блядь. Как же тяжело пытаться соответствовать твоему стилю нейминга
public class ART_Artykuly: XPObject {
public ART_Artykuly(Session session) : base(session)
}
image.png14 Кб, 786x130
182 1875264
>>875260
Ну теперь вот...
image.png27 Кб, 543x298
183 1875270
вот структура XPObject
184 1875275
>>875264
У тебя где-то в проекте есть другая часть этого класса.
Добавть перед class - partial
image.png25 Кб, 338x507
185 1875281
>>875275
подозреваю что другая часть это ART_Artykuly.Designer и там уже есть partial
186 1875282
>>875275
подозреваю что другая часть это ART_Artykuly.Designer и там уже есть partial
image.png85 Кб, 518x701
187 1875284
>>875282
быстрофикс
188 1875291
>>875281

>fART


>ART


>fART


Фарту ворам, сквирту мусорам...
189 1875292
>>875291
Это автогенерация, а "ТАГ_Нейм" это конвенция заказчика, я ее изменить не могу
190 1875293
>>875292
Не нейм, а НАЗВА. пшпшпш...
191 1875303
Аноны, а можно ли зашифровать файл с строкой подключения к бд с последующей расшифровкой содержания при инициализации?
192 1875318
>>875303
Разрешаю
193 1875324
>>875303
Ммм, я тоже не возражаю. Но используй шифрование по ГОСТ-2012, а не то накажу.
194 1875327
>>875318
>>875324

Спасибо, вы очень добры
image.png55 Кб, 1066x276
195 1875365
>>875303
Файл с connString. Новенький что ли?

В прошлом у нас был web.config, в котором была секция специально для этого. Фреймворк умел из коробки шифровать и дешифровать этот файл с помощью machine key
https://docs.microsoft.com/en-us/dotnet/api/system.web.configuration.machinekeysection?view=netframework-4.8

Теперь у нас apsettings.json/yaml, который ты тоже можешь шифровать, как нравится. Но рекомендуемое решение - Vault. Любое хранилище, типа https://www.vaultproject.io. Это хранилище в любом облаке доступно или можно руками доустановить там, где его нет. Даже в контейнере можно.

Все пароли, секреты, строки подключения, сертификаты должны быть в защищённом хранилище и добавляться в твоё приложение через IConfiguration при старте приложения. И потом в самом приложении ты делаешь config["ConnString"] и работаешь.

Можно как на скриншоте или как тут https://github.com/kdcllc/NetCore.HashiCorp.Vault

У майков есть своя реализация для коннекта к их Azure Vault. Но смысл один в один такой же.
196 1875366
кто нибудь использует Polly?
image.png46 Кб, 999x291
197 1875390
>>875366
Уже нет. Иногда имеет смысл для ручного throttling или когда работаешь с ресурсами, к которым мало доверия и приходится по несколько раз запрос повторять, пока правды не добъёшься. Но это какие-то особые ситуации.
Проще и производительнее просто взять HttpClient, добавить DelegatingHandler для обработки Auth фигни, настроить сервис и вперёд.

DelegatingHandler может за тебя нужные хэдеры и токены обновить и подставить вместо того, чтобы как по старинке делать запрос и получать 400/401/403, править и потом опять дёргаться. Никаких lock, никаких Retry() и прочей хуйни, которую так любят люди за 40. Этим надо или на пенсию или садиться и учить целый пласт тенхологий, которые развивались за последние 10 лет.
198 1875419
>>875061
>>875035
С# дергается через COM? Что за ошибка хотя бы. Или типичное C++ - разбирайся сам.
199 1875421
>>875055
Кекус, в энтерпрайзе и не такие франкенштейны бывают. Там может быть C - C++ - C# - Python в рамках одного рантайм-квазимоды. Ещё видел тысячи строк кода в базе данных через кастомные интерпретаторы - это вообще пушка.
200 1875512
Объявление переменных не явных способом var считается плохим тоном или все норм?
201 1875555
>>875512
Не считается. Олды бухтят только. Ты всё равно var можешь юзать только как локальные переменные, члены класса изволь объявлять явно. Так что бухтение олдов мимо кассы. Если им нравится, пусть сами вручную дважды пишут что нибудь типа IEnumerable<KeyValuePair<int,KeyValuePair<string, Rect<int, int, long, long>>>>

А теперь мой вопрос.
Когда я пишу event += ... не вводит ли меня в заблуждение этот оператор? Хандлеры ивента стакаются же? Стакаются? Прямо в стек? Я могу передавать результат работы хэндлера в следующий?
202 1875559
>>875512
Явно объявлять нужно только в тех местах в которых нельзя точно определить какой тип возвращает выражение присваивания, т. е. результат правой части.
203 1875561
>>875555
Каждый обработчик получает одинаковый объект-событие, результат обработки никак не передается от обработчикак к обработчику.
204 1875569
>>875561
Спасибо! Я так и подумал. И уже понял, что делал неправильно и отказался от стаканья обработчиков, оказалось был путь проще.

Теперь ещё один вопрос, наверное совсем нубский:
Есть солюшен. В нём есть несколько проектов типа exe. Как я могу запускать на исполнение второй экшешник из первого? Наверняка же в дотнете реализовано внутреннее "управляемое" решение. Ну не запускать же мне по старинке через шелл?
И вдогонку, я хочу внутри солюшена отдельную dll с общими ресурсами для всех exe. Как к ней обращаться за ресурсами? Вчера налепил навскидку и чот нихуя не заработало, каждый exe ищет ресурсы только у себя.
205 1875590
>>875569

>Как я могу запускать на исполнение второй экшешник из первого?



https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.process.start?view=net-5.0

Общаться между процессами можно через MemoryMappedFile и EventWaitHandle

>И вдогонку, я хочу внутри солюшена отдельную dll с общими ресурсами для всех exe



Нужно регестрировать эту длл в global assembly cache, тогда все программы использующие эту dll будут брать её оттуда.
206 1875592
>>875390
чет ты странного наговорил. Проблемы сети или временную недоступность компонента никто не отменял - и тут нужен повтор.
207 1875606
>>875590

> process.start


Это и есть "по старинке", ИМХО. Я надеялся, что есть способ прямо изнутри вызывать события запуска тех или иных проектов решения. Ну, например, главное приложение и конфигуратор, при запуске главного приложения, если конфиг отсутствует, вызывается конфигуратор. Ну всё равно спасибо. Думаю, ничто не помешает мне сделать из главного ссылку на конфигуратор и просто вызывать публичную форму конфигуратора из приложухи, не запуская процесс вообще.

> регестрировать эту длл


Эммм, сложно, тупо, неудобно. Буду искать другие решения.
208 1875636
>>875209
>>875189
>>875170
>>875142

Решил вопрос на свежую голову почитав документацию здеся https://docs.devexpress.com/XPO/2123/connect-to-a-data-store там нашел правильную правильную инициализацию подключения, сейчас все работает
209 1875793
Аноны, что за сессии используются в этой статье

https://dev.to/skipperhoa/login-and-register-using-asp-net-mvc-5-3i0g

У меня такого нет...
211 1875821
>>875804
У меня такого нет, как получить?
Screenshot2.png22 Кб, 589x363
212 1875959
>>875821
Это для старого ASP.NET (который на .NET Framework), а не ASP.NET Core. У тебя по всей видимости проект на ASP.NET Core, так немного по другому с сессией работают, гугли. Либо если тебе нужен именно ASP.NET MVC 5, то создай правильный проект.
213 1875961
>>875804
Зачем грубить?
214 1875963
>>875959
Ясно, мне нужен именно нет кор
215 1875966
>>875959
Кстати если есть может репозиторий какой с примером работы с сессиями в коре я бы с радостью почитал
216 1876047
>>875592
Отдал клиенту нужный код и заставил его повторить запрос. Нефиг выдумывать какой-то херни без надобности.
217 1876058
>>875559
Ещё один. Оно тебе надо знать какой там из тысяч доступных типов сейчас вернулось? Ты их все в голове держишь что ли? Я перепрыгнул на var как только он появился и ни разу не испытывал потребности знать, что там конкретно вернулось из какой-то функции.

Мне нужно знать, что мой код делает, а не как он типы матчит.

var client = CreateHttpClient(params);
var user = client.GetUser(id);
var comments = user.GetComments();
var commentsToRemove = comments.Where(x => IsTwoYearsOld(x.CreatedOn));

псевдо код выдуманный на лету
218 1876062
>>875793
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/app-state?view=aspnetcore-5.0#session-state

Там же есть ссылка на их гитхаб с примерами. В самой статье тоже примеры есть.
Использовать stateful backend для многопользовательских приложений - моветон.
219 1876070
>>875561
Хм. Хм.
Они получают один и тот же объект? Ну, дорустим я в EventArgs передаю ссылку на кусок памяти, вот обычный такой ref Memory<byte>. Вот я такой умный, я знаю для чего оно мне нужно. Вот кто-то через год взял мой код и не знает, для чего это нужно было и подписался в своем хендлере раньше, он берет и этот кусок памяти делает Slice и с полученным куском нехорошие штуки проделывает. Пойдет ли в моем коде все по пизде из-за этого?
220 1876077
>>874091
Спасибо за ссылку!
221 1876085
>>876047
ну так и говори - "у меня веб бэкенд CRUD подобный"
и не нужно свой частный случай на все ситуации проецировать.
222 1876087
>>876070
пойдет конечно. и правильно будет. раскладываешь мины - не удивляйся, что рвануло
223 1876089
>>876087
Ну блин. А ведь так удобно все казалось.
Придется переделывать(((
224 1876115
Сап сишарпач, наклепал простенькую приложуху которая чекает все доступные tcp и udp порты, так вот, как можно заблокировать нужный мне tcp/udp порт? Чтобы он перестал принимать пакеты и всю хуйню. Просто отключить его. Юзать cmd нельзя
225 1876116
>>876115
Убей процесс что открыл его.
226 1876118
>>876116
Че-то жиденько, мб есть другие способы? Но ладно, как тогда вычислить процесс открывший порт?
227 1876130
>>876118
Юзаешь винапи, смотришь, кто там открыл эти порты, получаешь PID - убиваешь процесс.
228 1876135
>>876130
После этого твою приложуху совершенно справедливо прибивает антивирус. На большинстве пользовательских компов, у тебя-то ясно антивирусозонда нетути.
229 1876147
Вечер в хату.
Может кто работает в автоматизации на C#
подскажите пошагово как запустить через Jenkins выполнение Nunit тестов? Где вообще про это адекватно почитать. А то тесты написал на гит закинул и на этом как то все.
230 1876154
Возможно как-то сказать фабрике, какой объект какого типа мне нужен, не передавая в неё объект этого типа?
231 1876156
>>876154

> Возможно как-то сказать фабрике, какой объект какого типа мне нужен, не передавая в неё объект этого типа?

232 1876170
>>876156
Create<T>?
233 1876187
А вообще, такой вопрос.
Вот как я понимаю - фабрика это именно та штука, в которой мы примерно следущее делаем: factory.AddZalupa().UsePizda(x=>x.AddHair()).Build();
А я вот в своих залупах обычно делаю класс, который возвращает интерфейс, типа клиент этого класса не знает что и как там билдится, он просто получает интерфейс и пользуется им, вся ответственность за создание - на таком классе. Вот и как правильно такую сущность обзывать? Я, сначала добавлял суффикс Factory, но из-за того что часто под фабриками то что я выше описал подразумевают - начал называть Provider, но блядь, меня смущает этот суффикс, потому что что он там провайдит-то? Просто видел как в некоторых других проектах подобное так называли, вот и стал повторять, но сейчас думаю и кажется что нужно как-то иначе обзывать. Builder? Ну, может быть, но тоже как-то не нравится.
Короче, как бы вы назвали класс, который, допустим дает клиенту какой-то класс для шифрования, либо класс который дает репозиторий, например во время разработки - там обычный лист, а в реальном проекте - уже обертка над каким-то провайдером БД.
234 1876191
>>876187
builder.AddZalupa().UsePizda(x=>x.AddHair()).Build(); — Это билдер, а не фабрика. Фабрика это factory.CreateZalupa()
235 1876223
>>870604
если тебе нужно выполнять повторяющуюся логику не связанную с бизнес логикой, то посмотри в сторону мидлвейров/атрибутов фильтрации
236 1876240
>>876062
Спасибо, почитал, попробовал, у меня получилось сделать, особенно после прочтения этой статьи, https://metanit.com/sharp/aspnet5/16.12.php

Единственное там используется какая-то локальная автосгенерированая база, как подставить свою я не понял... в дальнейших статьях я так понял они работают с ней, но мне это не подходит...
237 1876269
>>876147
Твои скрипты, которые ты будешь запускать в дженкинсе, должны примерно также работать локально. Ты вообще их писать и тестить локально должен, а не тыкаться в слепую через CICD (хоть дженкинс, хоть хуенкинс, тысячи их).

Дотнет тесты умеет запускать через dotnet test. У этой команды есть куча параметров. Для генерации и сбора отчётов могу использоваться дополнительные тулзяки. Но для обычного прогона и креша Jenkins job пойдёт простой dotnet test.
238 1876291
Очередной нубовопрос - как не писать два раза листтип
static List<Street> Streets = new List<Street>();

Хочу как-то так
static var Streets = new List<Street>();

Пишет что низя?
239 1876292
>>876291
static List<Street> Streets = new();
image.png16 Кб, 1196x90
240 1876294
>>876292
Низя в моем шарпе.. Хм.
241 1876295
>>876294
в файле проекта .csproj либо смени целевую платформу на .NET 5:
<TargetFramework>net5.0</TargetFramework>

либо добавь:
<LangVersion>9.0</LangVersion>
242 1876299
>>876295

>.NET 5


У меня просто софтина пишется под семерку, на .net core 3.1. А поддерживается ли .net 5 на семерке?
243 1876300
image.png42 Кб, 928x650
244 1876305
Анон, такой вопрос. Есть код -тут короче, открывается база Access, в ней запускается VBA модуль.. Тут все норм. При этом база должны быть открыта всю работу приложения (глобальные переменные)

А вопрос в следующем - как мне 100% вызвать метод Quit при всех ситуациях?

Ведь, когда оно открывает базу, оно создает процесс Access в диспетчере задач. Если где-то происходит бага с вылетом - я обычно останавливаю работу приложения и смотрю. Или например дебажу метками - дохожу до бряка, смотрю что там, понимаю что надо сделать, останавливаю выполнение.

Но в итоге эти процессы зависают мертвым грузом и мешают дальнейшей работе. Приходится открывать диспетчер задач и удалять руками.

Попробовал запихнуть в деструкторы - толи не понимаю, но не сработало.

Есть какой--нибудь 100% способ вызвать метод при всех вариантах закрытия проги? Вот в С++ такой способ есть
245 1876426
1) Почему в wpf release отжирает автоматом на +100мб больше озу, хотя по логике он ведь должен жрать меньше ресурсов?
2) Можно как-то урезать размер готового .exe?
246 1876511
>>876305

> останавливаю работу приложения и смотрю


Я могу только один вариант в таком случае придумать. Сделать батник, кинуть ярлык на него во внешние инструменты студии / на десктоп / на пинбар. В батнике вызовами taskkill -im "Access.exe" прибивать все экземпляры акцесса.

Но вообще, акцесс дерьмо, я бы перешёл на нормальные СУБД здорового человека при первой возможности
247 1876535
>>870468 (OP)
Как запустить net core проект для windows в линукс? Мне не нужна компиляция или развертывание под линукс, мне нужно чтобы проект разработанный на windows запускался у меня в линуксе.
248 1876540
>>876269
Так когда через консольку пишу запуск автотестов то все в порядке.
А когда через jenkins то гавно какое то. Только изменения кода в гит показывает и все. Может быть из за того что все делаю локально? хотя по идее должно быть всё равно.
249 1876544
Аноны, кто нибудь работал с azure, есть веб-аппликация которая хостится на азуре, и использует базу данных которая тоже размещена на азуре, локально проект работает, соединяется с целевой базой на азуре и работает как предполагается, но при паблише аппликации на азур сайт выдает ошибку An error occurred using the connection to database 'Analizy' on server 'tcp:analizy.database.windows.net,1433'.

В чем может быть причина?
image.png6 Кб, 659x103
250 1876590
>>876544
проблема решена, удивительно но азур по умолчанию добавляет себя в фаервол... фейсплам, ну или может если есть анон который знает зачем это сделано объяснит
251 1876600
Подскажите каким инструментом можно нарисовать png фон на jpg картинке и получить на выходе новую картинку?
Желательно чтобы был на выходе bitmap.
252 1876693
Анон. Я только начинаю изучать C#, начал с книги Библия С#, и в упор не получается разобраться в теме привязки данных, а именно с x:Bind. Есть xaml код следующего содержания:

<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<TextBox Text="{x:Bind Path=Data.FirstName }" />
<TextBox Text="{x:Bind Path=Data.LastName }" />
<Button Click="Button_Click">Нажмите меня</Button>
</Grid>
</Window>

Компилятор меня убеждает в том, что Bind не существует в пространстве имен и т.д. https://pix.my/TCAeOD
Сколько не гуглил - подобное решается объявлением типа xmlns:x=.... но оно сделано. Ссылки вроде бы нужные тоже есть, кажется. В общем, то ли лыжи не едут, то ли я идиот.
253 1876757
>>876693
Насколько я знаю, x:Bind это для UWP, а в WPF используется Binding.
254 1876759
>>876693
Так ты сначала C# изучи, а потом уже к фреймворкам переходи. Ты сразу пытаешься и шарп учить и wpf осваивать.
255 1876781
>>876540

>я делаю какую-то фигню, а получается какая-то хуйня


damn son, как тебе помочь то, когда ты двух слов связать не можешь? Где хоть что-то, за что можно ухватиться и начать помогать?

Я с дженкинсом знаком с 2014, ставили его локально, на виртуальные машины, в местный дата центр, в AWS. Там же блять всё просто как "раз два три".
Правда когда есть возможность альтернативы - перепрыгиваем на неё. Типа Azure DevOps. Дженкинс немного устарел.
257 1876784
>>876590
Это только для публично доступного сервера. Т.е. его можно пингануть через интернет. Я бы на вашем случае добавил виртуальную сеть (Virtual network) с подсетью (subnet) и настроил фаервол чтобы БД сервер был доступен только из этой подсети и добавил ваш App Service в ту же самую подсеть.
Нефиг БД наружу выставлять.
258 1876785
>>876783
Спасибо, попробую.
259 1876786
>>876759
А на чём его тогда изучать? Но WPF для новичка сложно конечно. Лучше консольные приложения пару месяцев пописать.

>>876693
Примеры из книг почти всегда полное гавно. Лучше идти на официальный сайт и смотреть примеры там. У них всегда есть гитхаб репо, который можно стянуть и запустить.
https://docs.microsoft.com/en-us/visualstudio/get-started/csharp/tutorial-wpf?view=vs-2019

Там намного больше примеров есть, в том числе и работа с БД.
260 1876788
>>876784
Понятно, ты прав, попробуй так сделать
261 1876827
>>876788
щас я за вас еще работу выполнять буду))
262 1876839
>>876535
Бамп вопросу. Тут что никто в net core не может? Или в линукс? Пиздец, одна школота.
263 1876842
>>876827
Ахаха, извини, опечатался, лол, по фрейду наверное...
264 1876847
>>876590

>азур


эйжур
265 1876883
>>876847
АзурЭ
266 1876898
>>876883

>АзурЭ


ˈæʒər
image.png67 Кб, 171x127
267 1876900
268 1876901
>>876847
Вообще-то Ажьур c мягкой ж и А, которая звучит как среднее между А и Э.
269 1876903
>>876535
>>876839
Сразу под ОПом пример висит, как чего запускать. Если тебе этой инфы не достаточно, то тебе сначала надо закончить школу.
270 1876907
>>876839
То есть ты сам школьник, раз не знаешь ответа на свой вопрос? Тогда покинь сайт, борда 18+.
271 1876923
>>876535
Это просто - берешь приложение разработанное под вин, берешь линукс и запускаешь.
272 1876924
>>876923
А разве там не нужен докер?
273 1876926
>>876924
ты размер образа докера винды видел?
274 1876931
>>876926

> размер образа докера винды


Размер-размером, а там же ещё и лицензия нужна, никто не отменял.
мимо
275 1876937
>>876931
лицензия малая проблема. ведь поди еще попробуй запусти докер вин образ под линуксом
276 1876942
>>876937
Думал об этом, но трафика жалко.
277 1876943
>>876781
А все разобрался.
Спасибо что пытался помочь. А я паниковал и херню писал.
Все запустилось и заработало когда в Jenkins написал команды консольные на запуск автотестов и все норма начало работать.
278 1876944
>>876924
>>876926
>>876931
>>876937
Это или один троль сам с собой разговаривает или несколько тролей или один трольнул, а другим захотелось подбросить саркастических искромётных комментов.
279 1876949
>>876944
Один из 4 - я.
мимо
280 1876950
>>876944
Спросил я, и я не знаю, нужно не нужно, я в облаке работаю, просто слышал что-то такое
281 1876968
>>876535
Берешь рантайм, запускаешь собранную неткором dll
282 1876970
>>876968

>Берешь рантайм, запускаешь собранную неткором dll


Нахуя мне это? Мне не готовое приложение нужно, а сам проект.
283 1876983
>>876950
В облаке у тебя точно также крутится какая-то машина с какой-то ОС. Если заведёшь своё произведение локально, то и в облаке также запустится. Хочешь в докере, хочешь в кубернетес, хочешь прям на хосте.

Веб приложению на дотнете пофиг, на какой ОС его запустили. Убунту, Виндовс, Alpine. Можешь вообще на Raspberry PI захостить.
Код везде будет ОДИНАКОВЫМ!

Естественно, если ты в коде решил дёрнуть АПИ какой-то ОС на прямую или подключиться к чисто виндовому сервису (AD, Cert Store, Event Storage, etc.), то на Убунте оно рухнет, потому что там таких сервисов нет. Но рухнет тупо на этапе подключению к виндовому сервису.
284 1877013
>>876757
с Binding не работает, хоть и не выдает ошибку, но это уже другой момент. В книжке черным по белому пишут, мол биндинг прошлый век, щас надо юзать бинд.
>>876759
Учу по книге, но похоже буду искать другой материал. Изначально понравилась подача, а вот то что в примерах не разобраться ибо не работает - косяк.
>>876786
тТут такое дело, что не зная основ оф документация - это как изучать иностранный язык не зная алфавита.
285 1877021
>>877013

> не зная основ оф документация - это как изучать иностранный язык не зная алфавита


Глупости.
оф.документация - это как словарик в дополнение к учебнику при изучении языка.
286 1877169
Сап шарпач, есть одно приложение на винформах, датагридом, sqlite'ом, энтитями и картинками в них. Админы говорят что оно начинает лагать после добавления около 100 записей. Я вангую что это из-за энтити контекста.
Мне нужно как-то чистить контекст? И реализовать пэйджинг в датагриде? Есть какие-то опенсорс примеры?
287 1877177
Можно ли в енум как-то одному элементу присвоить несколько значений? Я гуглил и нихуя не понял, вроде можно что-то с флагами делать, но получается какая-то дичь. Нужно что-то типа такого
enum MyEnum {
Element1 = 1,
Element2 = 3,
Element2 = 10, 11
}
288 1877206
>>877177
нельзя
20190929095249.jpg94 Кб, 1307x531
289 1877220
290 1877223
>>877220
Подожди, а если вот так (ElemntType)2 сделать, то я получу Element2 типа ElementType? Потому что он мне для этого и нужен.
20190929095249.jpg94 Кб, 1080x799
291 1877240
image.png120 Кб, 226x289
292 1877529
Анон шарящий в скл, можешь написать скрипт для создания следуйщего тригерра

/ Object: Trigger [dbo].[TriggerAspNetUsersInsert] Script Date: 12/10/2020 8:05:02 AM /
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [dbo].[TriggerAspNetUsersInsert]
ON [dbo].[AspNetUsers]
AFTER Insert
AS
BEGIN
\tSET NOCOUNT ON;
\t
INSERT INTO USR_User with (rowlock)
([USR_Nazwa]
,[USR_Telefon]
,[USR_Ulica]
,[USR_Miasto]
,[USR_NumerDomu]
,[USR_NumerLokalu]
,[USR_KodPocztowy]
,[USR_NIP]
,[USR_KONID]
,[USR_AspNetUsersId]
,[USR_WaznoscUmowy]
,[USR_DataWeryfikacji]
,[USR_Komentarz]
,[USR_PoziomUprawnien])
select
'',
PhoneNumber,
'',
'',
'',
'',
'',
'',
0,
Id,
'2020.01.01',
null,
'',
0 from inserted

END
image.png120 Кб, 226x289
292 1877529
Анон шарящий в скл, можешь написать скрипт для создания следуйщего тригерра

/ Object: Trigger [dbo].[TriggerAspNetUsersInsert] Script Date: 12/10/2020 8:05:02 AM /
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [dbo].[TriggerAspNetUsersInsert]
ON [dbo].[AspNetUsers]
AFTER Insert
AS
BEGIN
\tSET NOCOUNT ON;
\t
INSERT INTO USR_User with (rowlock)
([USR_Nazwa]
,[USR_Telefon]
,[USR_Ulica]
,[USR_Miasto]
,[USR_NumerDomu]
,[USR_NumerLokalu]
,[USR_KodPocztowy]
,[USR_NIP]
,[USR_KONID]
,[USR_AspNetUsersId]
,[USR_WaznoscUmowy]
,[USR_DataWeryfikacji]
,[USR_Komentarz]
,[USR_PoziomUprawnien])
select
'',
PhoneNumber,
'',
'',
'',
'',
'',
'',
0,
Id,
'2020.01.01',
null,
'',
0 from inserted

END
image.png293 Кб, 592x512
293 1877544
>>877529
Изивините, я запаниковал, оказалось это не так сложно...
294 1877547
>>877529
>>877544
Ты в следующий раз как запаникуешь - выкладывай ссылку на пастебин. Будь человеком.
tenor.gif41 Кб, 220x292
295 1877554
>>877547
Ладно, боже как стыдно
296 1877619
Аноны, а где мне можно посмотреть код этой странице, по адресу прописки ее нет...
297 1877621
Что посоветуете почитать про фрэймворки.
Что сформировать базовое понятие о них и как их писать.
298 1877625
>>877169
Там миллион возможных причин. Криворукостью можно столько всего наделать. Без нормального анализа кода помогать тебе как в воздух пальцем тыкать. Авось да поможет.
DbContext надо по новой на каждый запрос (клик по кнопке) создавать. Или уметь его в ручную менеджить и писать дополнительные сотни строк кода.
299 1877722
аноны, почему эта строка return RedirectToPage("Registration/FormFilling"); переводит на этот адрес https://localhost:44366/?page=/Account/Registration/FormFilling а не на этот https://localhost:44366/Registration/FormFilling
300 1877724
>>877625

> DbContext надо по новой на каждый запрос (клик по кнопке) создавать.


Нахуя? Я думал там ленивые загрузки, оптимизация изподкоробки все дела и создаю в скопуе окна/класса. Алсо, это же будет означать что к базе идет новый запрос, а это же нихуя не оптимизация. У меня в sqlite простой vacuum 10 секунд на околонекроте работает. Разве не лучше наоборот выгрузить данные в контекст?

> Там миллион возможных причин.


Причина в том что когда я делаю изменения в бд я обновляю датагрид и делаю это простым присвоением сурса = контекст.таблицанейм и он походу пытается загрузить всю таблицу.
image.png32 Кб, 960x190
301 1877767
мне стыдно спрашивать но как такое фиксить?
302 1877812
Может кто сталкивался -
WinForm, есть DataGridView
в ячейках есть выпадающее меню с списком(коллекция)
Проблема в том что при кликах на выпадающее меню оно вызывается минимум с второго раза (первый клик видимо берет ячейку в фокус, а второй уже отрабатывает как и положено) или с третьего если кликать на ячейку а не на саму галочку выпадающего списка
Как фиксить? хочу делать одиночный клик
303 1877814
>>877812
Нашел, EditMode, не идеальный результат но сойдет
304 1877823
>>877619
Хоть бы сказал, Razor pages или MVC или чего там?
Если не Razor Pages, то надо всегда смотреть контроллеры, а там уже увидишь, куда ссылки ведут.

/Identity route обычно добавляется через
services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<ApplicationDbContext>();

Если всё это добавлялось не в ручную, а через scaffold, то он тебе сам надобавлял всяких View.
305 1877824
>>877724
блиаааа.....я даже не знаю откуда тут заходить, чтобы хоть как-то помочь начинать. Чувак, кури мануалы.
306 1877825
>>877722
Потому что надо смотреть все твои конфиги, и выяснять, чего ты там нагородил.
307 1877826
>>877767
А там что-то сломано?
308 1877828
>>877826
Ну когда создаешь новый объект все параметры можно добавить одним обращением по типу :

object = new object{pmtr1, prmtr2, prmtr3 .... prmtr99}

а тут :

object.pmtr1 = pmtr1;
object.pmtr2 = pmtr2;
....
object.pmtr99 = pmtr99;

нельзя это сделать одним обращением как при добавлении?

>>877825
Да ничего я не городил, проект почти пустой, и рутингы я не трогал

>>877823
MVC CORE 3.1
Верно это Identity route, но как мне туда зайти и там что-то поменять, мне нужно сделать авто переадресацию с этой страницы
309 1877866
>>877828

>Верно это Identity route



Значит гугли как сделать кастомные страницы регистрации и всё что связанно с аккаунтами.
310 1877883
Можно ли в double засунуть нечто такое, что при ToString() превращалось бы в пустую строку?
311 1877915
>>877883
Нельзя, это тебе не ЖС
312 1878023
>>877767
Инициализатор же, анон, ну ты чего, совсем штоле нуб?
MyUser user = new MyUser
{
USR_Foo = Bar,
USR_Baz = Hurr,
USR_Durr = Derp,
USR_Date = DateTime.Now
}
313 1878029
>>878023
Так в том то и дело что там идет обновление, а не инициализация
314 1878049
>>878029
В си и его потомках нет и не будет никогда конструкций, наподобие "with" (фууу, мерзость какая, паскалебляцкая).
Это принципиально и любой сишник тебе скажет, что твой код на скрине правилен.
315 1878054
>>878049
А какие + такого подхода, я виду только минус, множество обращений к обьекту
Screenshot2020-12-11 Welcome to C# 9 0 NET Blog.png28 Кб, 932x386
316 1878070
317 1878073
>>878070
Лол, они таки прогнулись. Ну сорян, не уследил за событиями. Игнорируйте пост >>878049
318 1878076
>>878073
А что собсна плохого в этом?
319 1878077
>>878076
Ну когда я в последний раз интересовался, сишники аргументировали, что этот кейворд якобы запутывает кодера относительно того в каком неймспейсе он сейчас находится. Если я правильно понял и/или запомнил.
320 1878086
>>878077
... но когда я был молод и кодил в дельфи, этот кейворд был идеальным решением для написания паттерна "адаптер", при условии, что адаптируемые классы имеют разные методы. Но если методы совпадают, просто прописываешь явно класс, напишу пример псевдокодом, чтобы не мучить вас бегин эндами:

ForeignClass obj1;
InternalClass obj2;

with (obj1, obj2)
{
obj2.Name = obj1.Name;
Date = CurrentDate;
State = ObjectState;
Position = Rect.Position;
Size = Rect.Size;
}

Вот так быстро и красиво происходит адаптация. Происходила.
321 1878096
>>877883
В double? можно
322 1878181
А вы заметили что комментов 10 пропало? Тут один всех матами крыл, а его отправляли лечиться. Ну и попутно технологии обсуждали.
У нас тут модератор есть?
323 1878188
>>877828

>Да ничего я не городил, проект почти пустой, и рутингы я не трогал


Все мы так когда-то отмазывались. Магии не существует. Где-то лежат заветные строчки кода. И лежат они на самом видном месте. Только у тебя знаний нет их прочитать правильно.

На вот почитай. И ещё несколько сопутствующих статей.
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity
324 1878210
>>878181
Не 10, а 25.
Обсуждали там что-то тупое насчет запуска нет кора на линуксе
325 1878214
>>878210
Откуда такая точная цифра? Модератор, ты?
Screenshot20201211-162508.jpg228 Кб, 720x1520
326 1878218
>>878214
Просто с телефона капчую
327 1878225
>>878188
Я уже все папки переклацал, нигде нет...
328 1878242
>>878218
О! Он показал файл проекта? А то я реквестировал и ушёл. На коре проект-файлы несколько иначе организованы. Нужно по новому таргет прописывать, чтобы заработало.
329 1878247
>>878242
Вот репост специально для тебя:

>>1876966


> Вот пример проекта https://github.com/dotnet-architecture/eShopOnWeb


> Он у меня ни в докере не запустился, ни локально на линуксе. Там бардак полный, образ контейнера вроде линуксовый используется, но в csproj захардкожены виндовые пути со слэшами и много еще windows-специфичных штук. Это может пример не очень подходящий, сложноватый, но и другие проекты от microsoft запустить часть не получается, потому что почти все написаны под виндой в visual studio.

330 1878251
>>878225
Не слушай дурачка. Всё что есть из коробки в айдентити - вшито в программный код, никак это изменить нельзя, только писать своё и говорить айдентити чтобы он использовал его, а не вшитое по стандарту.
331 1878257
>>878251

>никак это изменить нельзя


https://docs.microsoft.com/en-us/aspnet/core/security/authentication/scaffold-identity
Скафолдишь нужные файлы и редактируешь их по своему вкусу.
332 1878275
>>878251
Он же не сказал, как он это айдентити добавлял. Командой, гуи, с какими опциями, или может в ручную код копипастил из разных статей? Он этот айдентити раут и сам мог прописать где-то, но не понял, что он это сделал.
333 1878280
>>878257
Сам то по ссылке статью читал?

>To maintain full control of the Identity UI, run the Identity scaffolder and select Override all files.



И далее идёт пример в котором убирается вызов services.AddDefaultIdentity<IdentityUser>() и указываются пути по которым будет браться написанный тобой UI. Т. е. то что я написал:

>только писать своё и говорить айдентити чтобы он использовал его, а не вшитое по стандарту.


>>878275
Он сказал, что ничего не трогал, на что в ответ получил какой-то бред про отмазывания.
334 1878297
>>878280

>Он сказал, что ничего не трогал


Программист, который не смог разобраться с раутами в маленьком проекте, сказал что ничего не трогал. Сам то в это веришь? Миллион раз на таких джунов нарывался в разных городах и странах. Всегда круглые глаза, всегда "это не я, оно само!!!", и никогда нормально проблему объяснить не может.
335 1878299
>>878280
Я-то читал и делал, а вот ты видимо нет.

>To maintain full control of the Identity UI, run the Identity scaffolder and select Override all files.


Это чтобы всё полностью переписать. Но это делать необязательно, можно изменить только пару нужных тебе файлов.
336 1878305
>>878280
Если ты это всё так хорошо знаешь, чего парню не поможешь?
337 1878311
>>878299
Но каких именно ты конечно не скажешь, хотя это как раз то о чём тебя спрашивают. Не перестаю проигрывать с дебила
>>878305
Чем это не помощь? Уже даже дураку понятно что нужно сделать для того чтобы изменить UI identity
338 1878328
>>878311
Всё ведь в статье, читайте внимательнее.
Right click on project -> Add -> New Scaffolded Item -> Identity -> выбираешь нужные страницы
339 1878703
>>878328
>>878257
>>878299
Ага, теперь понял, надо чекнуть галочку напротив "comfimdEmail' после этого появиться представление и его можно будет изменять, спасибо!
340 1878716
>>870468 (OP)
Ребят, можно ли скомплить с помощью vs 2019 проект сделанный на vs 2015, там есть совместимость? Язык иттшный
341 1878725
>>878716
Можно
342 1878751
>>878716
Я встречал пару раз проблемы при подобном переходе. Один раз они были связаны с Windows Workflow Foundation, а другой - с неправильными nuget пакетами подключенными. Шансы встретить неполадки - минимальны.
343 1878898
На каком уровне нужно знать сисярп, чтобы клепать прилы в юнете?
.jpg178 Кб, 922x1300
344 1878900
>>870468 (OP)
Довольно тупой вопрос, но все равно поясните.
Вот допустим, я хочу такую возможность дать пользователю: Он загружает шаблон устройства в определенном индустриальном формате, формат, естественно, не божественный JSON, а какой-нибудь MIB или что-то в этом духе; может быть кто не знает, но эти MIB бывают по 90к и больше строк, соответственно нужно будет ждать пока оно загрузится, потом нужно это распарсить, а потом я бы хотел вернуть клиенту уже JSONчик с тем что я там прочитал, распарсил, чтобы он то что ему нужно отметил, может быть как-то по своему назвал(думаю тупо выглядеть просто будет если пользователь все это MIB - дерево будет видеть, возможно человек хочет имена в нормальном человеческом виде смотреть).
Ну так вот, как оно должно выглядеть
1. Со стороны взаисодействия клиент-сервер? Ну, в смысле должен ли я сразу пытаться парсить как только получил первые байтики или сначала мне бы полностью загрузить файл, потом уже парсить, а затем удалить его?
2. Как вот такая двухуровневая фигня должна работать? Ну, т.е. я правильно понимаю, что я просто на сервере делаю 2 эндпоинта, один для файлов, другой уже для конечного json'чика, который и буду сохранять в базу? Или как-то иначе делать нужно?
3. Самое наверное сложное. Я правильно понимаю, что будет говнокодом если я все это просто в api-контроллере делать буду? Ну, просто как я понимаю - правильно было бы это все разбить по сервисам, но ведь эти сервисы никогда и нигде переиспользоваться не будут, я вобще, по сути это для себя делаю, чтобы вручную не забивать базу принтеров, а можно было вот так вот кинуть на форму этот MIB-файл, он бы там распарсился, я отметил что мне нужно только объект который за уровень чернил в базе иметь, и сохранил такой вот шаблончик устройства, а потом мог бы создавать новые принтеры, смотря сколько в них чернил осталось. Не будет ли оверхедом выносить парсинг mib'а и создание dto для него в отдельный сервис?

все тот же сисадмин, который таки сделал возможность читать состояние чернил в принтере но в процессе заебался ручками вбивать описание какой объект нужно читать у принтера
.jpg178 Кб, 922x1300
344 1878900
>>870468 (OP)
Довольно тупой вопрос, но все равно поясните.
Вот допустим, я хочу такую возможность дать пользователю: Он загружает шаблон устройства в определенном индустриальном формате, формат, естественно, не божественный JSON, а какой-нибудь MIB или что-то в этом духе; может быть кто не знает, но эти MIB бывают по 90к и больше строк, соответственно нужно будет ждать пока оно загрузится, потом нужно это распарсить, а потом я бы хотел вернуть клиенту уже JSONчик с тем что я там прочитал, распарсил, чтобы он то что ему нужно отметил, может быть как-то по своему назвал(думаю тупо выглядеть просто будет если пользователь все это MIB - дерево будет видеть, возможно человек хочет имена в нормальном человеческом виде смотреть).
Ну так вот, как оно должно выглядеть
1. Со стороны взаисодействия клиент-сервер? Ну, в смысле должен ли я сразу пытаться парсить как только получил первые байтики или сначала мне бы полностью загрузить файл, потом уже парсить, а затем удалить его?
2. Как вот такая двухуровневая фигня должна работать? Ну, т.е. я правильно понимаю, что я просто на сервере делаю 2 эндпоинта, один для файлов, другой уже для конечного json'чика, который и буду сохранять в базу? Или как-то иначе делать нужно?
3. Самое наверное сложное. Я правильно понимаю, что будет говнокодом если я все это просто в api-контроллере делать буду? Ну, просто как я понимаю - правильно было бы это все разбить по сервисам, но ведь эти сервисы никогда и нигде переиспользоваться не будут, я вобще, по сути это для себя делаю, чтобы вручную не забивать базу принтеров, а можно было вот так вот кинуть на форму этот MIB-файл, он бы там распарсился, я отметил что мне нужно только объект который за уровень чернил в базе иметь, и сохранил такой вот шаблончик устройства, а потом мог бы создавать новые принтеры, смотря сколько в них чернил осталось. Не будет ли оверхедом выносить парсинг mib'а и создание dto для него в отдельный сервис?

все тот же сисадмин, который таки сделал возможность читать состояние чернил в принтере но в процессе заебался ручками вбивать описание какой объект нужно читать у принтера
345 1878907
>>878900

> должен ли я сразу пытаться парсить как только получил первые байтики или сначала мне бы полностью загрузить файл


В зависимости от того, как этот файл читается. Если читается построчно/побайтово, то зачем тебе ждать весь? Читаешь синхронно.

> Как вот такая двухуровневая фигня должна работать?


Паттерны-паттернушки 2020, ёпт. Я с дивана вижу помимо клиент-сервера паттерн адаптер.

> я вобще, по сути это для себя делаю


С этого надо было начинать. Ебашь с подливой любой говнокод за который не стыдно перед самим собой. Лишь бы работало.
346 1878908
>>878900

>должен ли я сразу пытаться парсить как только получил первые байтики



Не обязательно, но желательно. Если будешь сразу парсить из потока, то займешь меньше оперативной памяти.

>сначала мне бы полностью загрузить файл, потом уже парсить, а затем удалить его?



Удалять ничего не нужно, также как и сохранять, всё держится в оперативной памяти. Ты же не гигабайтные файлы собрался в JSON конвертировать?

>Как вот такая двухуровневая фигня должна работать?



Где ты там два уровня увидел? Со стороны клиента делается POST-запрос, со стороны сервера приходит либо ответ с телом в виде готового JSON, либо ссылка на месторасположение файла.

>правильно было бы это все разбить по сервисам,



По каким сервисам? Один сервис MibToJsonConverterService в котором будет логика конвертации, далее добавляешь его в виде синглотона и внедряешь в контроллер, который будет его использовать.
.jpg334 Кб, 910x1100
347 1878915
>>878907
>>878908
Спасибо, няшки. Держите сисястое аниме.
348 1878952
В чем лучше писать код-то?
Типа студия почему-то уже на проекте с 10к строк и 2 проектами в одном солюшне начинает через 2-3 часа лагать жутко. Это на пеке с i7 9700k, 32 гигами оперативки, ссд который по PCI Express подключается. Это пиздец как раздражает.
С другой стороны - райдер. Пиздец какое-то кривое поделие, еще и за меня хочет форматировать. И эти уебищные подсказки насчет типов и имен, блядь, пол экрана отнимают. Вообще какая-то всратая параша на мой взгляд. Но она хотя бы не тормозит.
С третьей - вс код. Тоже не тормозит, но пиздец, постоянно этот ебучий Omnisharp - отваливается, постоянно ломается подсветка, не так удобно многие штуки делать как в студии.
С четвертой - нахуй это все, буду кодить в Notepad++, вот серьезно, я в нем отрыл проект на 500к строк, он открыл его нормально, по нему оч шустро бегать можно, было бы нормальное автодополнение, нормальные инструменты которые позволяли бы чуть больше в ИДЕ чем редактор превратить - было бы заебись. Пока что приходится писать в нем, переключаясь на студию для отладки.

Как вы кодите в проектах больше 50к строк? Неужали терпите по 2 минуты на создание нового файла каждый раз? Или есть какие-то способы заставить студию быть чуть шустрее? Просто у меня в студии из плагинов только который гайдлайн рисует чтобы не забывался и держался в 120 символов на строку, в остальном - голая.
349 1879037
>>878952

>2 проектами в одном солюшне начинает через 2-3 часа лагать жутко


Не знаю, со студией проблем уже лет 6 не было. Проект с 2кк строк и 30ю проектами + пару других солюшенов держатся открытыми днями без перезагрузок. Полёт нормальный.
image.png49 Кб, 680x735
350 1879040
>>879037
Забыл добавить, что у меня ещё и решарпер стоит. А без него ставил стоял Productivity Power Tools. На скрине то что сейчас установлено.
351 1879051
>>878952
Вообще в этом году с резким подъёмом Cloud Native Development появилась куча тулзяк, с которыми можно и без студии большую часть времени кодить. VS Code отличная штука. Иногда файлы в Notepad++ правлю.

Из тулзяк советую глянуть https://devspace.sh/cli/docs/introduction
Но вообще их щас дофига. Даже Майкрософт свою готовит: https://github.com/dotnet/tye

В чём прикол: берёшь голую машину с установленным Git и Docker с включенным Kubernetes (k8s можно и через другие инструменты локально завести, просто через докер удобнее), стягиваешь свой репо с кодом, описываешь свой проект и его зависимости в devspace.yaml файле, запускаешь devspace dev.
Оно стягивает все твои Redis, Postgres, Sql Server, Vault, RabbitMQ и т.д. Заводит это всё в твоём локальном кластере и начинает работать. Быстро, просто. Если напортачил, сносишь всё через devspace purge и начинаешь заново. Отнимает секунды. Также очень круто для интеграционных тестов и деплоймента в QA/Prod/подставь_название.

Дебаг становится почти не нужным. Ты изменяешь файл и твой проект сразу же перекомпилится и новая версия доступна через секунду. Проще добавить какой-нибудь Console.WriteLine() с нужной инфой, чем дебаг подключать. Но дебаг по-прежнему доступен для более сложных ситуаций.

VS 2019 всё-таки самая удобная для разработки.
352 1879132
>>872583
Мелкие выпустили опенсурс, а потом поглотили его (классика же). Теперь будут выходит несовместимые с линуксом интересные либы, которые мотивируют переходить на швиндовс
https://ru.wikipedia.org/wiki/Embrace,_Extend,_and_Extinguish
353 1879137
>>879132
как там в 90х?
354 1879139
>>879137
Некоторые языки пиарятся что победили косяк "==" с человеческим фактором. А язык, который позиционирует безопасность, привносит сразу два а может и больше аналогичных костыля.

Очередная недальновидная хипстота а сейчас уже модное СЖВ гробит неплохой проект. Ведь тусовка важнее идеи.
355 1879141
>>879137
Как видишь подход из 90х работает до сих пор.
356 1879143
>>879139
Это было в раст тред.
357 1879179
>>879141
Не вижу.
358 1879213
>>879179
Земля тебе пухом, братишка, раз так.
359 1879282
>>879132

>несовместимые с линуксом интересные либы


это как?
360 1879387
>>879282
Как WPF.
Запусти мне готовое большое и сложное легаси-приложение на WPF не устраивая адских кранчей по переписыванию всех форм на всякие там авалонии, эты и прочие вэиквиджетсы.
361 1879388
>>879387

> Запусти в линуксе


Разумеется.
Фикс.
362 1879397
>>879387
Проиграл с дауна. Это не либа, а фреймворк. Не работает он на линуксе не потому что злые майки так захотели, а потому что на момент создания wpf не было возможности сделать его кроссплатформенным. Сейчас майки делают отдельный фреймворк для этих целей, под названием MAUI.
363 1879399
>>879397

> эта либа не либа


> выписалась из неймспейсов ещё вчера


Не виляй жопой, маугли, блять.
364 1879408
>>879399
Ты главное таблетки не забывай пить.
365 1879413
>>879397

>Проиграл с дауна.


Зачем грубить?
366 1879423
>>879413
Чтобы в следующий раз человек думал перед тем как что-то высрать.
367 1879433
Сап анончики, у меня есть порт COM3. На него я подключил Arduino с RFID-RC522. Как с ардуинки записать что-то в мою прогу на C#? Получить просто так доступ к COM3 я не смогу т.к он занят ардуино. Че делать? Ебусь уже хуй знает сколько времени.
image.png11 Кб, 382x245
368 1879436
>>879433
Собсна сам код которым я пытаюсь что-то сделать. Было много разных версий, но сейчас когда я пытаюсь считать с порта то программа будто попадает в беск. цикл и не может найти выход
369 1879440
>>879423
Из-за того что ты назвал его дауном? Кого это вообще останавливает на дваче?
370 1879510
>>879397

>Сейчас майки делают отдельный фреймворк для этих целей, под названием MAUI.


в котором поддержка не винды будет силами комьюнити
ну и мауи так себе замена
371 1879522
>>879510

>в котором поддержка не винды будет силами комьюнити


Только Линукса; Мак, iOS и андроид будут из коробки
image.png40 Кб, 1283x653
372 1879589
Как программно отключить запоминание\автозаполнение форм?
373 1879599
>>879589
<form autocomplete="on | off">...</form>
374 1879602
>>879599
Если бы все было так просто, не работает это.
375 1879621
>>879602
Должно работать. Может ты говоришь про placeholder'ы у инпутов?
image.png38 Кб, 1359x594
376 1879630
>>879621
Нет, я захожу на новую страницу а полях уже введенные данные поверх плайсхолдеров, а еще когда ввожу выпадает подсказки, и они не отключаются блин...
377 1879639
>>879213
То другой анон был, но я тоже не вижу. Вообще зачем на эту тему уже есть миллионы комментов на англоязычных ресурсах с аргументами один в один как здесь. Сидит группа обиженных Майкрософтом в 90х-начале 00х и продолжает ныть про Embrace, Extend, and Extinguish. В то время как остальной мир уже давно moved on.
378 1879644
Нахрена нужен сингоетон, и как его реализовывать, я сделать обычную реализицаию по типу

string dataString = init();

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

а еще я не понимаю как вернуть собственно сам стринг
379 1879647
вот как мне отсюда вернуть стринг?

class Singleton{
private static Singleton instance;
private Singleton()
{}
public static Singleton getInstance()
{
if (instance == null)
instance = new Singleton();
return instance;
}
}
380 1879650
>>879630
Это поведение браузера, отключается через браузеровское АПИ: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete

Есть жс библиотеки, которые так делают. Тогда копай доку по этой библиотеке. Но судя по скрину - это твой браузер.
381 1879654
>>879650
Клиент говорит что у него на других сайтах все работает нормально... без этих всяких авто-заполнений
382 1879655
>>879522
Ну собственное EEE и работает. Линукс уже бортанули с кривой поддержкой, а мак и прочее заманят несовместимыми решениями онли винда.
383 1879657
>>878898
Если с околонуля до пару часов. Основные конструкции языка + Основы ОПП и уже можно пилить игори. Дальше только курить документацию юнити. Код был конечно с точки зрения С# дно, но зато легко переносимый на любые движки.
384 1879658
>>879647
Ладно, разобрался, Аноно лучше ответь зачем он нужен то по факту, этот https://www.youtube.com/watch?v=-AlFSe_K27A&t=658s&ab_channel=VolodyaMozhenkov дело говорит?
385 1879663
>>879644
Нифига из твоего описание не понятно, что конкретно тебе нужно сделать.
Синглтон прост как два пальца: что-то, что возвращает один и тот же объект на любой вызов. Нынче делается через всякие IoC/DI. Когда пишешь свой код как обычно, без всяких статиков, но для производительности создаёшь только один экземпляр своего класса и переиспользуешь его везде. Например HttpClient, MongoClient, Configuration. Иногда проще статик класс запилить.

Вообще последние лет 5 вижу ручные синглтоны только в индусских проектах. Эти же индуссы любят про них во время собеседований спрашивать, типа выдай все 50 возможных вариантов написания синглтона для всех возможных и невозможных ситуаций: запретить наследование, выдать/запретить конструктор, изменяемый синглтон (для всяких токенов, например), и ещё миллион ситуаций, которые за тебя уже решили во всякий DI тулзах.
386 1879667
>>879654
Ты чё как офисный планктон? На каком устройстве, в каком браузере клиент проверяет? В самом браузере это можно отключить. Всякими плагинами это можно отключить. Не все браузеры это делают. Чё за детский сад?
387 1879673
>>879658

> этот дело говорит?


Не смотрел, но осуждаю. Синглтон много где применим и слепо его избегать глупо. Тебе нужно, скажем, держать в памяти часто используемые данные, это быстро и удобно. Но ты не используешь их, ПОТОМУ ЧТО ПРЕПОД НА КАФЕДРЕ СКАЗАЛ, ЧТО СИНГЛТОН ПЛОХА-ПЛОХА!Поэтому ты каждый раз грузишь одни и те же данные, чтобы один раз к ним обратиться, а потом ГЦ их высвобождает, забирая ресурсы компа. А через пару секунд ты снова грузишь те хе самые данные в новый инстанс. Чтобы снова один раз прочитать. И снова ГЦ. Потомушта синглтон плоха, тупа, ламерски!
388 1879681
>>879663
Да я разобрался, и сделал, этот >>879673 анон уже ответил, только не понял что он там за кеш расписывал, разве глобальные переменные не кешируются?
389 1879682
>>879667
Что за Плагины?
390 1879694
>>879681
Давай тогда определения кеша и глобальных переменных, что ли. У меня есть подозрение, что ты мягкое с тёплым сравниваешь.
А ещё, судя по твоему коду выше, то что ты там разобрал будет периодически ломаться в рантайме.
if (instance == null) - эта проверка is not thread safe.
391 1879695
Оцените мой синглтон, аноны. Всё правильно сделал?
https://ideone.com/FT2oYq
Из другого модуля тоже единичку вернёт?
392 1879704
>>879694
Потоки предусмотрены, юзал этот пример https://shwanoff.ru/singleton/ но спасибо за замечание.
393 1879718
>>879704
И тебе спасибо за ссылку. Изучил lock.
>>879695-кун
394 1879736
>>879704
https://help.semmle.com/wiki/display/CSHARP/Double-checked+lock+is+not+thread-safe

В том примере тоже не правильно. Double check с локом - это древний подход и его желательно избегать. Лучше всего в шарпе Lazy подходит. Код компактнее и никаких локов.
Новичок, бойся локов как огня. Там бездна инфы для изучения, и даже после изучения не факт, что у тебя что-то да не отвалится.
395 1879752
>>879736
Простая обёртка.

> В том примере тоже не правильно.


Там весь класс объявлен волатильным.
396 1879983
>>879752
а, сорян, не заметил, тогда норм
397 1879985
Почему считается что сложно переписывать wpf и winforms приложения на кроссплатформу? Ну типа сделали бы какой-нибудь класс прослойку для графического интерфейса, а оттуда бы всю логику вызывали. Или там все сложнее с подводными камнями?
398 1879987
>>879985
Вот пытаются MAUI сделать. Написать движок для отрисовки под конкретную платформу не хухры мухры. Не всякие электроны, которые в инстансе браузера хтмл рисуют, а когда настоящий АПИ у хостящей ОС тягать надо, чтобы нативно выглядело. WPF и WinForms приварено к АПИ винды. Проще новый фреймворк запилить.
399 1880000
>>879704
Пример хуевый, никакие volatile и локи не нужны, эффективнее использовать конструкцию
if (SingletonValue != null) return SingletonValue;

var singletonValue = new SingletonValue();
return Interlocked.CompareExchange(ref SingletonValue, singletonValue, null) ?? singletonValue;
400 1880001
>>879658

> зачем он нужен то по факту


Если без всяких контейнеров и прочего, то зачастую тебе бывает удобно иметь некую сущность которая бы была неким узлом приложения, и тебе не всегда хочется перегружать конструктор других классов отдавая туда этот узел, чтобы иметь такой вот узел.
Допустим, вот ты пилишь абстрактноте приложение. У тебя есть свой планировщик задач, есть своя ОРМка, есть свое логгирование, ты хочешь из любого класса получить возможность пользоваться всем эти. Довольно удобно в данном случае сделать этот класс синглтоном, Да, тут получается проблема с тем, что классы начинают быть завязаны на синглтон, да, получается, непереносимый код, только вот зачастую это не так и страшно, как многие малюют. Ну и да, то что синглтону трудно наследование реализовать - тоже не так страшно, зачастую сущности что должна быть синглтоном это и не нужно.
Другое дело что ньюфаг узнав про него нечинает пихать куда надо и куда не надо, у него в проекте этих синглтонов становится куча, в рандомных местах дергаются инстансы и просто чтобы вникнуть в логику работы приходится разбираться во всей этой "архитектуре".
Блядь, как вспомню свой первый год, дали мне проект, пилил его какой-то хитровыебанный мастер архитектуры: синглтон для создания событий, синглтон для логгирования, синглтон для того чтобы поверх старого синглтона логгирования можно было логгировать новым методом, синглтон для глобальной обработки ошибок(ведь мы такие вот хитренькие, падать из-за говнокода не хотим), синглтон, блядь, для моделей, нахуй, синглтон для подключения к БД, при этом без какого-то нормального пула соединений, не, нахуй, пусть у нас все пытаются получить соединение, а база просто в определенный момент начинает охуевать. Как же охуенно было это разгребать, просто не представляете.
image.png25 Кб, 860x305
401 1880079
Пытаюсь обработать исключение можно ли как то писать без второго return ? Или в типе возвращаемых данных метода лучше поставить Void ? Или нормально метод написан ?
402 1880103
>>880000
и получить параллельное создание new SingletonValue();
ну-ну
403 1880127
>>879657
Ну а вообще в среде юнитистов принято нормально писать? Обычно всё что я видел было либо как ты описал, либо ооочень сильно оверинженирено.
404 1880130
Поясните ньюфагу.
Допустим есть класс C с методом M { int r = 2+2; return r;}
Далее в Main присваивается int a = С.М();
Вопрос. Каждый раз, когда мы используем переменную a у нас производится вызов С.M? Или результат для а хранится в памяти?
Хранится ли в памяти r? Или он сразу убирается сборщиком после присваивания а?
code.png17 Кб, 251x221
405 1880136
>>880079
Вот так?
406 1880137
>>880130
конечно не производится

производится он только для свойств вида
public int a => С.М();
407 1880143
>>880130

>Хранится ли в памяти r? Или он сразу убирается сборщиком после присваивания а?


это значимые типы. они вообще на стеке лежат и GC про них не знает.
408 1880147
1879139
А можно подробнее, чего там именно гробит хипстота?
409 1880150
>>879139
А можно подробнее, чего там именно гробит хипстота?
Сорян, запорол разметку в первый раз
410 1880206
>>880136Ну да так получше выглядит. Благодарю.
411 1880356
>>880079
return y == 0 ? 0 : x / y;
412 1880455
>>880356

> return y == 0 ? math.MaxInt : x / y;


Мы вам перезвоним (нет).
.png3 Кб, 388x110
413 1880488
>>880079
Тебе не придется ловить исключение, если ты кидаешь его первым!
414 1880586
>>880488
>>880455
>>880356
вы все упороты. какой нафиг дивайдзероэксепшен
нужно кидать ArgumentException и тому подобное
415 1880594
>>870468 (OP)
Аноны, зачем нужна база данных и СУБД? Можо ли как-то, на c#, на серверной стороне, реализовать базу данных на файлах,
чтобы хранить там логины-хэши паролей, и данные юзера, его активность - в файлах, а не в базах данных?
416 1880599
>>880594
Можно. Получится менее удобно в пользовании, сложнее будет управлять доступом, работать будет медленнее. Дерзай.
417 1880607
>>880594

> зачем нужна база данных и СУБД


Затем что она просто хранит твои данные, удобно и предоставляет быстрый доступ. СУБД же не дураки пишут, там всякие хитрые алгоритмы применяются для сжатия данных, для индексирования, всякие статистические методы, чтобы обеспечить тебе более быстрый доступ, например - "горячие-холодные данные", когда то что чаще нужно - лежит в начале очереди и таким образом поиск часто запрашиваемых данных происходит быстрее. Ну и вообще, там много хитростей, обеспечивающи тебе наиболее быстрый и комфортный доступ к данным.

> Можо ли как-то, на c#, на серверной стороне, реализовать базу данных на файлах,


Можно. Другое дело что если ты будешь постоянно держать в памяти какой-то здоровый кусок данных, допустим базу данных пользователей - твое приложение будет жрать кучу ресурсов, а если не будешь, у тебя будут постоянные обращения к диску, что медленно. Опять же, придется заморачиваться с доступом к этим файлам, допустим, вот тебе из 10 потоков нужно почитать и 2 потока хотят писать, это довольно заебисто на самом деле, особенно на больших файлах.
Опять же, почти все СУБД сейчас позволяют вынести себя на отдельный сервер, что позволяет строить более гибкие системы, т.к. можно замутить кластер серверов для данных, кластер серверов для твоего приложения, в случае если что-то из этого упадет, клиент и не заметит, в случае же с обычным файлом ты заебешься все это как-то синхронизировать, а если таки начнешь пытаться, то так или иначе придешь к концепции СУБД, независимо от того будет ли это реляционная, документоориентированная или какая-то еще.
418 1880616
>>880594
конечно можно. только вот потом понадобится поиск в этих файлах, транзакционное обновление, частичное обновление чтобы не перезаписывать весь файл, разделение на файлы и управление ими, файлы индексы
и ты напишешь кучу кода которое будет это делать -и тем самым ты создашь примитивный движок субд
а потом плюнешь и заменишь на готовый
419 1880679
>>880599>>880607>>880616

Ну вот смотрите, есть задача - сделать простую регистрацию-авторизацию пользователей на сервере с#,
чтобы у каждого юзера был свой аккаунт, и счет внутри аккаунта, чтобы он мог пополнять его
(или зарабатывать деньги на аккаунт, например вводя каптчу),
дальше, за деньги на аккаунте - заказывать какую-то услугу и что-то получать за эту услугу,
и выводить остаток - себе на счёт, оформляя заявку.

Самое простое, что приходит в голову, это сделать файл:

>admin;hash(adminPassword);


>user1; (hash(user1Password) XOR hash(adminPassword)); (hash(controlQuestionUser1) XOR hash(adminPassword))


>user2; (hash(user2Password) XOR hash(adminPassword)); (hash(controlQuestionUser2) XOR hash(adminPassword))


>user3; (hash(user3Password) XOR hash(adminPassword)); (hash(controlQuestionUser3) XOR hash(adminPassword))


>...


где user1 - логин юзера,
user1Password - пароль юзера (передающийся по открытому каналу, кстати, отчего его могут стырить),
hash(user1Password) - хэш пароля для хранения, чтобы его не стырили из базы если чо,
(hash(user1Password) XOR hash(adminPassword)) - поскоренные хешы, чтобы не подобрали пароль брут-форсом, или радужными таблицами,
(hash(controlQuestionUser1) XOR hash(adminPassword)) - то же самое, но только с контрольным вопросом, позволяющим восстановить пароль.

Это, как-бы, одна таблица. При числе юзеров в 1000000, файл будет достаточно велик, и грузится сразу.
Поэтому, сразу, появляется идея - создать 1000000 файлов для каждого юзера, чтобы обеспечить к записям произвольный доступ.

Дальше, вторая таблица, уже как-бы вяжется к нику юзера:
user1; balance; pending_balance; available_balance
user2; balance; pending_balance; available_balance
user3; balance; pending_balance; available_balance
Это балансы разных юзеров;
balance - суммарный баланс;
pending_balance - баланс, который надо выплатить юзеру,
available_balance - баланс, которым он может распоряжаться.

Дальше, pending_balance - ещё таблица:
user1; witdrawOrderID; amount; whereToPay; status
user1; witdrawOrderID; amount; whereToPay; status
user1; witdrawOrderID; amount; whereToPay; status

Короче, блядь, ебическая куча таблиц, которую, может быть нужно будет - ещё и расширить.
Можно как-то без СУБД всю эту хуйню заебенить, чтобы не пердолится с её настройкой и установкой?
Я гляжу там только проприетарные лицензии, именно это и отталкивает, блядь.

Ну... Или... Подскажите что-ли, норм СУБД, для .NET Core 2.0, чтобы open-source она была.
419 1880679
>>880599>>880607>>880616

Ну вот смотрите, есть задача - сделать простую регистрацию-авторизацию пользователей на сервере с#,
чтобы у каждого юзера был свой аккаунт, и счет внутри аккаунта, чтобы он мог пополнять его
(или зарабатывать деньги на аккаунт, например вводя каптчу),
дальше, за деньги на аккаунте - заказывать какую-то услугу и что-то получать за эту услугу,
и выводить остаток - себе на счёт, оформляя заявку.

Самое простое, что приходит в голову, это сделать файл:

>admin;hash(adminPassword);


>user1; (hash(user1Password) XOR hash(adminPassword)); (hash(controlQuestionUser1) XOR hash(adminPassword))


>user2; (hash(user2Password) XOR hash(adminPassword)); (hash(controlQuestionUser2) XOR hash(adminPassword))


>user3; (hash(user3Password) XOR hash(adminPassword)); (hash(controlQuestionUser3) XOR hash(adminPassword))


>...


где user1 - логин юзера,
user1Password - пароль юзера (передающийся по открытому каналу, кстати, отчего его могут стырить),
hash(user1Password) - хэш пароля для хранения, чтобы его не стырили из базы если чо,
(hash(user1Password) XOR hash(adminPassword)) - поскоренные хешы, чтобы не подобрали пароль брут-форсом, или радужными таблицами,
(hash(controlQuestionUser1) XOR hash(adminPassword)) - то же самое, но только с контрольным вопросом, позволяющим восстановить пароль.

Это, как-бы, одна таблица. При числе юзеров в 1000000, файл будет достаточно велик, и грузится сразу.
Поэтому, сразу, появляется идея - создать 1000000 файлов для каждого юзера, чтобы обеспечить к записям произвольный доступ.

Дальше, вторая таблица, уже как-бы вяжется к нику юзера:
user1; balance; pending_balance; available_balance
user2; balance; pending_balance; available_balance
user3; balance; pending_balance; available_balance
Это балансы разных юзеров;
balance - суммарный баланс;
pending_balance - баланс, который надо выплатить юзеру,
available_balance - баланс, которым он может распоряжаться.

Дальше, pending_balance - ещё таблица:
user1; witdrawOrderID; amount; whereToPay; status
user1; witdrawOrderID; amount; whereToPay; status
user1; witdrawOrderID; amount; whereToPay; status

Короче, блядь, ебическая куча таблиц, которую, может быть нужно будет - ещё и расширить.
Можно как-то без СУБД всю эту хуйню заебенить, чтобы не пердолится с её настройкой и установкой?
Я гляжу там только проприетарные лицензии, именно это и отталкивает, блядь.

Ну... Или... Подскажите что-ли, норм СУБД, для .NET Core 2.0, чтобы open-source она была.
420 1880696
>>880679
Не еби себе мозги и посвяти пару вечеров изучению СУБД.
421 1880700
>>880696

>При числе юзеров в 1000000, файл будет достаточно велик, и грузится сразу.


держать все в памяти? зачем?

А вообще очевидно что нужно будет делать выборку по пользователю и если не держать все в памяти, то мудрить индекс по файлу
проще уж sqlite взять в котором тот же файл с готовым этим
422 1880704
Кстати, какие СУБД нынче наиболее удобно интегрированы в дотнет?
423 1880708
>>880679
ПостгреСКЛ бесплатная, МССКЛ урезанная бесплатная. Можно использовать не реляционную базу данных типа МонгоДБ или Файрбейз у которых есть бесплатные версии с ограниченным объемом хранимых данных.
424 1880723
>>880696
А каким именно? Литературу подвезёшь?
Я же сам писать собрался функционал СУБД, разве это не очевидно?

>>880700

>держать все в памяти? зачем?


Потому что - один файл: https://github.com/username1565/nanoboard/blob/8f0edd8d02b9f680f7ce1f70ddd29b8f7c367110/nanodb.exe-source/Database/PostDb.cs#L36

>А вообще очевидно что нужно будет делать выборку по пользователю и если не держать все в памяти, то мудрить индекс по файлу


Впрочем, индекс уже есть:
https://github.com/username1565/nanoboard/blob/8f0edd8d02b9f680f7ce1f70ddd29b8f7c367110/nanodb.exe-source/Database/PostDb.cs#L28

и диффы:
https://github.com/username1565/nanoboard/blob/8f0edd8d02b9f680f7ce1f70ddd29b8f7c367110/nanodb.exe-source/Database/PostDb.cs#L29

>проще уж sqlite взять в котором тот же файл с готовым этим


>>880708

>ПостгреСКЛ бесплатная, МССКЛ урезанная бесплатная.


>Можно использовать не реляционную базу данных типа МонгоДБ


>или Файрбейз у которых есть бесплатные версии с ограниченным объемом хранимых данных.


Вообще, база наноборды, не очень годная,
но не хотелось бы, всякие копирастические зонды,
в неуязвимую и неубиваемую - нанобордочку впиливать.
Вдруг захакают базу данных через бекдоры?
Нахуй, нахуй, лучше уж свой движок СУБД впилить, зато опенсорцный,
c минимальными функциями, чтобы без зависимостей...
К тому же и несно, всё это, оно разве заработает на .NET Framework 4.0?

В саму наноборду, я не хотел бы базу прикручивать, (и так всё работает, вроде).
Но я хотел бы - отдельный проект заебенить, или даже несколько.
А как работает эта ебучая база - так понять и не могу, блядь. Пиздец просто.
SQL, выборки, какие-то сервера, кластеры, подключения, TLS, пиздец - каша в голове после этого.
80 вкладок в браузере открыл, пытаясь вкатиться в эту поебнятину, всё пересмотрел,
нихуя не понял и закрыл всё нахуй.

То что я описал выше, с таблицами для юзеров - это я хочу сделать faucet,
для раздачи крипты за решения каптчи.
А то сидят куча людей, без работы, скучают, делать нехуй, последний хуй без соли доедают,
а так хоть можно будет - каптчу повводить, и крипту получить.
Ещё, хотелось бы заебенить сервис для продажи пасскодов, как на двоще,
и юзать решённые каптчи наборды там.
Конечно я вижу это как два РАЗНЫХ сайта, или даже, быть может - один, но там, очевидно,
нужна регистрация и авторизация, и эти вот таблицы ебучие, и база данных, и СУБД,
и хуй знает как это всё впилить - пиздец просто. Сплошной пердолинг какой-то, ебать.
424 1880723
>>880696
А каким именно? Литературу подвезёшь?
Я же сам писать собрался функционал СУБД, разве это не очевидно?

>>880700

>держать все в памяти? зачем?


Потому что - один файл: https://github.com/username1565/nanoboard/blob/8f0edd8d02b9f680f7ce1f70ddd29b8f7c367110/nanodb.exe-source/Database/PostDb.cs#L36

>А вообще очевидно что нужно будет делать выборку по пользователю и если не держать все в памяти, то мудрить индекс по файлу


Впрочем, индекс уже есть:
https://github.com/username1565/nanoboard/blob/8f0edd8d02b9f680f7ce1f70ddd29b8f7c367110/nanodb.exe-source/Database/PostDb.cs#L28

и диффы:
https://github.com/username1565/nanoboard/blob/8f0edd8d02b9f680f7ce1f70ddd29b8f7c367110/nanodb.exe-source/Database/PostDb.cs#L29

>проще уж sqlite взять в котором тот же файл с готовым этим


>>880708

>ПостгреСКЛ бесплатная, МССКЛ урезанная бесплатная.


>Можно использовать не реляционную базу данных типа МонгоДБ


>или Файрбейз у которых есть бесплатные версии с ограниченным объемом хранимых данных.


Вообще, база наноборды, не очень годная,
но не хотелось бы, всякие копирастические зонды,
в неуязвимую и неубиваемую - нанобордочку впиливать.
Вдруг захакают базу данных через бекдоры?
Нахуй, нахуй, лучше уж свой движок СУБД впилить, зато опенсорцный,
c минимальными функциями, чтобы без зависимостей...
К тому же и несно, всё это, оно разве заработает на .NET Framework 4.0?

В саму наноборду, я не хотел бы базу прикручивать, (и так всё работает, вроде).
Но я хотел бы - отдельный проект заебенить, или даже несколько.
А как работает эта ебучая база - так понять и не могу, блядь. Пиздец просто.
SQL, выборки, какие-то сервера, кластеры, подключения, TLS, пиздец - каша в голове после этого.
80 вкладок в браузере открыл, пытаясь вкатиться в эту поебнятину, всё пересмотрел,
нихуя не понял и закрыл всё нахуй.

То что я описал выше, с таблицами для юзеров - это я хочу сделать faucet,
для раздачи крипты за решения каптчи.
А то сидят куча людей, без работы, скучают, делать нехуй, последний хуй без соли доедают,
а так хоть можно будет - каптчу повводить, и крипту получить.
Ещё, хотелось бы заебенить сервис для продажи пасскодов, как на двоще,
и юзать решённые каптчи наборды там.
Конечно я вижу это как два РАЗНЫХ сайта, или даже, быть может - один, но там, очевидно,
нужна регистрация и авторизация, и эти вот таблицы ебучие, и база данных, и СУБД,
и хуй знает как это всё впилить - пиздец просто. Сплошной пердолинг какой-то, ебать.
425 1880726
>>880704
нет такого понятия
ряд реляционных бд представлен через унифицированный подход ADO.NET
если хочется ORM, то тут уже выбор поменьше и зависит от ORM
Ну а если NOSQL то там каждый предоставляет свой подход и понятия "наиболее интегрирован" просто нет

>Потому что - один файл:


потому что один файл что? Я так и не понял. sqlite/firebird тоже один файл и что - они полноценные бд. Куча NoSql тоже представлены одним файлом базы данных
или о чем это ты

ну а если тебе хочется написать свое (ну может спортивный интерес) то это другое дело
Ну не верю я что нельзя понять как использовать бд, но при этом умудриться написать свою.
426 1880765
>>880726

> ряд реляционных бд представлен через унифицированный подход ADO.NET


Спасиб.
Я не наношизик >>880723 если чё. Я мимопроходил.
427 1880777
>>880726

>потому что один файл что?


Я же ссылку на код вбросил, там и посмотри как он пишется этот файл. Там тупо данные в файле, и отдельно - файл со смещениями, где эти данные лежат.
Смещеня - целиком, грузится в память, при загрузке nanodb.exe.

Так вот, если табличку юзеров и паролей - заебенить в один файл, он же тоже будет грузится в память целиком. Иначе, придётся создавать файл смещений, и опять же, целиком -грузить смещения для записей в основном файле.

Это я хотел сказать, когда писал "потому что файл один".
Когда файл один, он в память целиком так и грузится, даже если записей там будет лярда полтора.

>ну а если тебе хочется написать свое (ну может спортивный интерес) то это другое дело


Именно. Изначальный вопрос, был о том, как с нуля реализовать минимальную СУБД, и БД, желательно - в виде файлов. Именно с нуля.
Короче, реквестировалась годная инфа, чтобы вкатиться в сами "Основы СУБД".

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


Да мне не особо нужен весь функционал СУБД, и БД, как таковая.
Просто, блядь, таблички эти ебучие, надо же как-то грамотно схоронять и ориентироваться по ним. Вот и всё. Если это можно сделать в пару строк кода, нахуй тогда инклюдить СУБД с этими ихними нечитабельными файлами баз данных, которые ещё и задамажится могут от одного лишь бед-сектора, и которые имеют проприетарный копирастический говнокод, коммерческий, и наверняка, обфусцированный вместе с дырами (бекдорами), вирями и троянами. А одни только SQL-инекции чего стоят. И всё это говно - пхнуть заместь такой опенсорцной няшки, как 0.db3, которая на нанобородчке? Ну нахуй. Понял, да?
428 1880793
Как я могу я получить модель из базы в _layout.cshtml? мне нужно настроить кастомизацию навбара
429 1880803
>>880777

>и опять же, целиком -грузить смещения для записей в основном файле.


Ну для тех кто хранит индекс в виде плоского списка - для них да.

>А одни только SQL-инекции чего стоят


ничего не стоят. в шарпе изначально был инструментарий их избежать. это вам не пхп. И кто хоть немного соображал, тот избегал.

>этими ихними нечитабельными файлами баз данных


писать свой код для чтения данных чужой базы данных напрямую вместо чтения средствами самой бд (который суть тот же функционал и оптимизирован по самое) - это как бэ ну эта....

>пхнуть заместь такой опенсорцной няшки, как 0.db3, которая на нанобородчке? Ну нахуй. Понял, да?


а вот это непробиваемый аргумент. Нечего возразить.
но я лучше sqlite возьму при таких требованиях, ну или LiteDB
430 1880805
>>880793
эээх не доходят руки переделать MVC асп.нета в MVP. Спасибо что напомнил
431 1880813
>>880803

>но я лучше sqlite возьму при таких требованиях, ну или LiteDB


А они пойдут на .NET Framework 3.5 или на .NET Core 2.0, или не, и придётся таки свою "базу" пилить?
432 1880841
>>880127
Если планируешь работать в нормальных конторах конечно там требования повыше, а так каждый дрочет как он хочет.
433 1880847
>>880813
LiteDB - отпадает, блядь.
https://github.com/mbdavid/LiteDB/blob/fcffb6919de9b279c811a031e5d71641a170a9da/LiteDB/LiteDB.csproj#L4
Минимальные требования - .NET Framework 4.5

><TargetFrameworks>net45;netstandard1.3;netstandard2.0</TargetFrameworks>

image.png8 Кб, 666x71
434 1880853
Как позволить специальные символы в форме?
435 1880857
>>880803

>писать свой код для чтения данных чужой базы данных напрямую вместо чтения средствами самой бд (который суть тот же функционал и оптимизирован по самое) - это как бэ ну эта....



Я так и не понял, вообще, чисто в теории, можно полностью заменить весь этот ебический функционал СУБД,
каким-то универсальным набором чисто файловых операций, и вместо базы,
и таблиц в ней, и записей в этих таблицах - попросту хранить ебическую кучу файлов, и папок,
где каждый файл - запись из какой-либо таблицы?
Насколько я понимаю, файловая система - это же и есть БД, не?
Только как оно всё работает, на принципах "концепции СУБД" - я не ебу,
просто потому, что я в душЕ не деру, что такое ваще эти грёбанные СУБД.
436 1880888
>>880857
Я правда надеюсь что ты просто троль. Читая тебя начинаешь думать что в дурдом завезли интернет...
437 1880909
>>880888
Это не ответ. Если SQLite тоже не станет на .NET Framework 4.0, то придётся пилить свой велосипед.
438 1880988
Господа, как понять, что можно претендовать на позицию миддл девелопера? 1.10 опыта, работал в основном с WCF, WebAPI, хранимками в MSSQL, плагинами под Azure DevOps, ну и немного с ангуляром. ЗП 115к на руки, ДС.
439 1880993
1
440 1881080
>>880805
Так как такое реализовать?
441 1881084
Тут у меня один знакомый интересуется. Можно ли совместить в одном проекте дотнет и моно? Он жалуется, что у него какие-то пакеты отказываются работать. А проект изначально на моно. Подробностей доставить не могу, этот хуй мне не друг.
442 1881165
Парни есть вопрос походу он супер тупой но все же.
Написал пачку Unit Tests они каждый раз все бегают.
А можно как то часть из них отключить? Ну что бы выполнялись только первые 2 а остальные не прогонялись. Использую VS 2019.
443 1881234
Котятки, помогите с частью одной лабы пожалуйста. У меня есть родительский и дочерний класс. В родительском есть приватное поле, и виртуальное свойство для доступа к этому полю. В аксессоре set этого свойства я просто всегда присваиваю этому полю значение 5. В дочернем классе нужно переопределить это свойство, чтобы сеттер уже нормально работал. Это вообще реально? Выглядит как абсурд какой-то. https://ideone.com/rHJQtr
444 1881243
Как впихнуть в интерфейс статичный метод? Этот метод должен быть независим от стейта инстанса, в котором его вызывают. Конечно, я могу в доках прописать чтобы в нем не юзали this, но хотелось бы это на уровне кода сделать.
446 1881298
>>881084
Моно теперь часть .NET 5, пусть на него переходит.

А так то можно любые библиотеки друг с другом дружить. Тут у людей есть C# -> Java -> C++ -> C# -> C++ цепочки. Зависит от креативности.
447 1881300
>>881165
Можно, разрешаю.
Для юнит тестов есть куча разных библиотек, читай доку как это делать конкретно в твоей библиотеке. А так они все это поддерживают.
448 1881304
>>881243
Через extension methods же.
449 1881315
>>881080
А зачем. Это ж фломастеры.
В MVC у нас контроллер, который принимает запрос, достает что нужно из базы и передает виду "вот тебе параметры - рендери". И вид на их основе рендерит. Ну еще и на основе того, что может сам достать - текущий запрос, сервисы...
В MVP у нас презентер, задача которого сформировать данные для рендера и вид рендерит используя презентер. То есть вид ЗНАЕТ про презентер и использует для рендера.

Тут сложно понять в чем разница, поэтому поясню на компонентах.

Фреймворки без компонентов это трэш и угар, но раз в asp.net core они есть - это сильно сглаживает разницу, но разница все равно есть.

Есть ViewComponent, которые суть виджеты. Им можно передать параметры и они себя рисуют.
В контексте MVP они точно такие же, но их создает не вид, а они существуют в контексте презентера.
если в MVC мы обязаны дотащить контекст от контроллера до виджета, то в MVP мы получаем уже готовый инстанс компонента, который был создан в контексте презентера.

То есть в "action" презентера мы достаем и работаем со всеми компонентами удобным кодом вида
GetComponent<Adblock>.SetIdentifier(...)
GetComponent<Paginator>.SetPage(total, current)
и в виде будут использованы не созданные Adblock, Paginator - а конкретно эти инстансы, которые вид попросит отрендерить себя.
Вид определяет местоположение компонента и вызов его рендерингОВ (в ViewComponent только один Invoke - неудобна)

без поддержки движка разница довольно фломастерная, ведь "всегда можно все передать".

Ну а если движок поддерживает, то некоторые плюшки сверху вида
- persistent свойства, которые автоматически прокидываются через запросы (урлбилдер знает про них и автоматом дописывает в GET, пока оно нужно)
- сигналы. пусть у нас таблица компонент и мы меняем сортировку с перегрузкой всей страницы. Презентеру срать на этот запрос - он вообще не в курсе ни про какую сортировку, он знает про компонент "таблица", а что внутри - его не парит. Сигнал дойдет до компонента и при этом "action" презентера также отработает. И страница будет перегружена, только компонент "таблица" пересортирует.
Потому что по факту его action не action, а рендер, хоть и выглядит идентично.

Но сила asp.net core в контейнере и возможности получить контекст
А значит те же сигналы легко делаются и в ViewComponent, ведь можно достать урл и получить с него нужный сигнал сортировки. Правда логически он оторван от котроллера, но это ж фломастер

И с прокидываем параметров можно накодить. Всегда все можно накодить

Это просто мне приятнее работать с компонентами, которыми я оперирую в презентере в виде нормальных вызовов методов и построения урла с учетом всех этих особенностей. Но мир привык к MVC
449 1881315
>>881080
А зачем. Это ж фломастеры.
В MVC у нас контроллер, который принимает запрос, достает что нужно из базы и передает виду "вот тебе параметры - рендери". И вид на их основе рендерит. Ну еще и на основе того, что может сам достать - текущий запрос, сервисы...
В MVP у нас презентер, задача которого сформировать данные для рендера и вид рендерит используя презентер. То есть вид ЗНАЕТ про презентер и использует для рендера.

Тут сложно понять в чем разница, поэтому поясню на компонентах.

Фреймворки без компонентов это трэш и угар, но раз в asp.net core они есть - это сильно сглаживает разницу, но разница все равно есть.

Есть ViewComponent, которые суть виджеты. Им можно передать параметры и они себя рисуют.
В контексте MVP они точно такие же, но их создает не вид, а они существуют в контексте презентера.
если в MVC мы обязаны дотащить контекст от контроллера до виджета, то в MVP мы получаем уже готовый инстанс компонента, который был создан в контексте презентера.

То есть в "action" презентера мы достаем и работаем со всеми компонентами удобным кодом вида
GetComponent<Adblock>.SetIdentifier(...)
GetComponent<Paginator>.SetPage(total, current)
и в виде будут использованы не созданные Adblock, Paginator - а конкретно эти инстансы, которые вид попросит отрендерить себя.
Вид определяет местоположение компонента и вызов его рендерингОВ (в ViewComponent только один Invoke - неудобна)

без поддержки движка разница довольно фломастерная, ведь "всегда можно все передать".

Ну а если движок поддерживает, то некоторые плюшки сверху вида
- persistent свойства, которые автоматически прокидываются через запросы (урлбилдер знает про них и автоматом дописывает в GET, пока оно нужно)
- сигналы. пусть у нас таблица компонент и мы меняем сортировку с перегрузкой всей страницы. Презентеру срать на этот запрос - он вообще не в курсе ни про какую сортировку, он знает про компонент "таблица", а что внутри - его не парит. Сигнал дойдет до компонента и при этом "action" презентера также отработает. И страница будет перегружена, только компонент "таблица" пересортирует.
Потому что по факту его action не action, а рендер, хоть и выглядит идентично.

Но сила asp.net core в контейнере и возможности получить контекст
А значит те же сигналы легко делаются и в ViewComponent, ведь можно достать урл и получить с него нужный сигнал сортировки. Правда логически он оторван от котроллера, но это ж фломастер

И с прокидываем параметров можно накодить. Всегда все можно накодить

Это просто мне приятнее работать с компонентами, которыми я оперирую в презентере в виде нормальных вызовов методов и построения урла с учетом всех этих особенностей. Но мир привык к MVC
image.png18 Кб, 476x172
450 1881317
>>880909
http://system.data.sqlite.org/index.html/doc/trunk/www/faq.wiki#q5

>there are legacy NuGet packages for backwards compatibility


Тебя в гугле забанили?
20190929095249.jpg34 Кб, 433x389
451 1881324
452 1881333
>>881317

>Тебя в гугле забанили?


это же очевидно. иначе бы он давно разобрался в субд
453 1881415
>>881300
О ништяк ) Буду искать а то что то даже не знал где искать
image.png44 Кб, 970x337
454 1881445
В винформах после апликейшн ран код ниже что ли не работает?
Продебажил, на этом остановился, функции не выполняет, это в классе Form1 дальнейший код писать или всё же как-то заставить его можно дальше работать?
455 1881447
>>881445
Код выполнится после того как закончится работа метода Application.Run
456 1881451
>>881447
а блин, логично, эпликейшн же запущен...
457 1881456
>>881451
Код синхронно выполняется. Вызываешь один метод и всё что ниже отработает только когда этот метод вернёт управление вызвавшему его коду. Эпликейшн, не эпликшн, разницы нет.
image.png52 Кб, 860x507
458 1881487
>>881456
Какое-то мучение, и где код писать, основную логику? У меня логика была в статическом классе, форму делать статической это ещё куча проблем с наследованием и прочим. Хочу лейбл изменить, во время увеличения таймера, но постоянно какая-то с этим беда, сначала думал экземпляр формы создавать, но тогда в бесконечный цикл уходил, делал публичным, статическим и т.д... вообще жуть какая-то.
Извините за столь очевидные вопросы, просто сгорел уже.
459 1881489
Я доделаю эту лабу и выкачусь из айти :(
image.png63 Кб, 856x362
460 1881492
да и че-то сомневаюсь что вручную кто-то меняет модификаторы из программистов, значит в этом же классе пишут...
461 1881516
>>881487
Используй паттерн MVC.
462 1881519
>>881516
В формсах используют MVP
463 1881527
>>881519
И больше нигде, а MVC пригодится если для веба будешь писать, поэтому не вижу смысла учить то, что нигде кроме винформс не пригодится.
464 1881548
>>881527
Было бы что учить
Аж полчаса почесывая яйца из которых 10 минут гуглить
465 1881552
>>881519
Двачую
>>881527

>И больше нигде,


Ага, ну раз ты сказал что больше нигде. Он сплош и рядом в мобайле используется, только все равно, использование хуй пойми где это не аргумент за выбор чего-либо
>>881527

>пригодится если для веба будешь писать, поэтому не вижу смысла учить то,


Мои соболезования если тебе их приходится учить
466 1881575
>>881527
Да это другой анон ответил, но всё равно спасибо
>>881519
Хорошо, посмотрю что за мвп.
467 1881852
Спиздил проект для курсача, переделал под себя. В С# я нуб.
Спрашивают про стек использованных технологий, а я не понимаю какие там технологии использовались. Asp net ли там, entity framework ли, sql или mysql. Как это определить?
468 1881952
>>881852
Посмотри все csproj файлы, там описаны все установленые зависимости для проекта.
ppp.PNG14 Кб, 390x227
469 1881969
>>881952
Оно, да?
470 1882024
>>881969
У тебя на диске файл есть с расширением .csproj. В него глянь, можно сюда скрин кинуть.
scr.png80 Кб, 1246x874
471 1882025
>>882024
Вот что мне открылось.
472 1882027
>>882025
справа ты загородил всё классами.. ну вижу что у тебя MVC aspnetcore, субд попробую в конфиге посмотреть
scr.png15 Кб, 360x425
473 1882028
>>882027
Оу, сейчас.
image.png25 Кб, 425x604
474 1882030
>>882028
Я просто сам в шарпе нубас, раз никто не отвечает пытаюсь помочь.
Короче, вот статья как подключается, в нугет пакетах надо посмотреть установлен энтити фреймворк, ну и вообще чекни что в статье написано.
https://metanit.com/sharp/entityframeworkcore/1.3.php
475 1882045
>>882025
Ебические силы. Ты не в шарпе нубас, ты в принципе с компом на Вы. Я тебя попросил файл открыть. Файл блядь. В текстовом редакторе. Просто открой контент файла. Делается в 1 секунду на любом компе.
476 1882053
>>882045
О, я все понял)))
Лихо ты меня приложил, плюсую.
Стикер255 Кб, 512x512
477 1882144
>>870468 (OP)
Читаю я тут статью в стиле "Геттеры/сеттеры - зло" и немножко переосмысляю свое существование.
Однако один вопрос все еще стоит ребром.

К примеру, у нас есть класс Dog, конструктор которого принимает на вход вес собакена, т.е.:
Dog dog = new Dog(10);

Получить вес собакена я могу как:
int dogWeight = dog.weight;
Console.WriteLine(dogWeight.ToString()) выдаст 10.

Но собакен со временем набирает вес.
Предположим, после выполнения метода dog1.eat() собака поправилась на 1 кг. Поскольку dogWeight - переменная, ссылающаяся на поле класса, она автоматически становится равной предыдущему весу + 1, а вызов Console.WriteLine(dogWeight.ToString()) выдаст 11.

То есть предыдущее состояние не запомнилось. А мне в будущем нужно работать с историей веса собакена. Как быть? Неужто все-таки использовать геттер? Итого:
Dog dog = new Dog(10);
int dogWeight0 = dog.getWeight();
dog.eat();
int dogWeight1 = dog.getWeight();


Или есть иной способ?
478 1882148
>>882144
Ну т. е. у тебя знаний на уровне "1 час изучаю язык", а ты уже какой-то бред в стиле "Геттеры/сеттеры - зло" читаешь? В очередной раз убеждаюсь, что маняме в посте это маркер умственно отсталого.

>dogWeight - переменная, ссылающаяся на поле класса



Она не ссылается на поле класса, она хранит в себе значение типа int.

>становится равной предыдущему весу + 1



Не становится, она так и будет хранить в себе значение 10, если ты не перезапишешь значение этой переменной.
479 1882158
>>882148
Да, ты прав, оказывается.
А почему в питоне не так?
480 1882165
>>882158
В питоне всё так.
481 1882169
>>882165
Ррррррррр.
videoplayback.mp41,7 Мб, mp4,
1280x720, 0:12
482 1882176
483 1882194
>>882176
Ну что? У меня не получается повторить, но я абсолютно точно уверен, что видел такую хуйню. Переменная менялась сама, когда менялись данные класса, на которые она ссылалась.
484 1882206
>>882144
Самое главное, при чем тут нахуй геттер? Я вообще не понял какое он имеет отношение к

> То есть предыдущее состояние не запомнилось. А мне в будущем нужно работать с историей веса собакена. Как быть


Тут хоть с геттером, хоть без - предыдущее состояние не запомнится само по себе
Но я сегодня добрый, потому вот тебе сразу вариант без геттера

Метод eat в конце просто вызывает событие WeightChanged(Dog sender, EventArgs e), в аргументах можешь хранить дельту относительно старого значения, можешь отправлять старое и новое значение и т.д.

А вообще, ты какую-то хуйню прочитал.
485 1882215
В общем ребятки, смотрите, я хочу через сигналр оповещать клиента о том что что-то обновилось. Воооооот.
Что я сделал. Я сделал синглтончик который некая уродливая помесь медиатора и обсервера. Я в своем репозитории передаю этого монстра, в нем есть метод Notify, когда мой ЮнитОфВорк коммитит успешно изменения, в хабе я подписался на событие этого монстра и рассылаю клиентам уведомление.
Суть, мне кажется что это какая-то залупа, не нравится, короче мне как оно выглядит, особенно мне не нравится то что из-за того что хабы - короткоживущие - мне приходится вручную отписываться в методе Dispose от этого нотифаера, чтобы не было ObjectDisposedException. Есть ли более элегантый способ в реальном времени актуальную инофрмацию из базы клиенту предоставлять? Или все так делают и в этом ничего такого нет?
486 1882222
>>882194
Переменная никогда сама не меняется, таблетки уже выпей, манямедитё.
487 1882224
>>882144
неосилятор в треде))))
какого осознавать что на завод пойдёшь?
488 1882225
>>882194
Ну так ты бы хоть проверил для начала, происходит то о чём ты спрашиваешь или нет.
В шарпе есть типы-ссылки (reference types) и типы-значения (value types). Все примитивные типы (int, double, char, bool, и т.д.) являются типами-значениями, т.е. они хранят в себе само значение, а не ссылку на объект.
По-моему вообще не существует ни одного языка, где int не был бы простым значением.
489 1882230
>>882225
В петухоне все значения ссылочные, просто какие-то из них иммутабельны, а какие-то нет. Иммутабельны те которые в других языках являются значимыми типами.
490 1882233
>>882230
Ну ок, но с точки зрения новичка разницы в поведении не будет.
491 1882237
>>882233
Суть в том, что в данном случае тип данных не имеет значения. Переменная всегда будет иметь то значение, которое ей присвоили, независимо от типа этого значения. Если это ссылка на объекта, то она этой ссылкой на объект и останется, независимо от того что ты с этим объектом делать будешь.
492 1882275
Чот на тред набег какой-то. Или я параною?
493 1882317
Аноны, Как указать в нет кор, по какому адресу попадает пользователь если он не залогинен я использовал автогенерацию Идентити, но хочу изменить
494 1882322
>>882215
Да, залупа. Надо учить паттерны проектирования. Без них тут только готовое решение поможет. На пальцах будет несколько месяцев объяснять.
495 1882323
>>882275
В плане тупых вопросов? Видимо сессия, сдавать надо срочно.
496 1882325
>>882317
Один миллион и один способ. Это вопрос вида: как увидеть дерево? Просто ответ - возьми да увидь. Но потом добавляется, что чувак находится в пустыне, в катакомбах под песком, и вообще у него нет глаз. А через время выясняется что вместо глаз у него электронные визоры, в которые по идее можно было бы загрузить изображение дерева и наебнуть систему.

Чё я хочу сказать - если хочешь помощи, то оформляй вопрос правильно, с деталями, скриншотами, что пробовал, какие результаты получил. или иди нахуй
497 1882328
>>882325
ЛОЛ, чет проорал, но я понял о чем ты, вопрос снимается
498 1882391
>>881317
Интересно, откуда эта картинка?
Если она опен-сорц, то можно ли как-то из сорца её сбилдить на .NET 4.0?
>>881333
Так а что искать-то, говорил же, 80 вкладок открыл, многабукаф английских про непонятное увидел, и закрыл их нафиг.
499 1882394
>>882391
Всё, нашёл: https://devpractice.ru/sqlite-c/
Там исходник, ссылки на пре-компиленные dll-ки, и вся хуйня.
Ебать меня разворотило, здесь, от этих неведомых СУБД.
500 1882395
>>882394
sqlite - не субд, а просто бд. Это файлик в особом формате. И к нему на разных языках поставляется провайдер, который знает как этот файлик читать.
501 1882431
>>882394
Бля, там прекомпиленная либа на гитхабе, а сорца нет чтобы её собрать. Хз как её сбилдить, и где этот долбанный сорц.

>>882395

>sqlite - не субд, а просто бд. Это файлик в особом формате.


Как я понимаю, бд - это сами файлы базы данных, с данными.

>И к нему на разных языках поставляется провайдер, который знает как этот файлик читать.


Это та самая .dll-ка, с хуй знает какими бекдорами?
С её помощью можно создать, эту ебучую базу данных, и писать данные в неё, и читать их?
Вот эту всю хуйню как реализовать? https://www.google.ru/search?q=взаимосвязанные+таблиы+базы+данных

Чтобы не инклюдить неведомое, в опенсорцный проект, можно ли без баз данных этих и СУБД, вообще обойтись,
и просто хранить таблицы - хуй знает как, в JSON'е-файлах, штоле, отдельных, с каким-то ёба-уровнем организации,
так, чтобы не грузить весь JSON-файл, в память, а только то, что нужно?
Первое что приходит в голову - это куча папок, где каждая - имя таблицы,
и внутри них - тупо JSON-файлы, со значениями строчек таблиц, этих ебучих.
А уже через логику софтины, читающей и записывающей, всю эту залупу,
всю эту хуйню взаимосвязывать, и извлекать и писать что надо, и искать, и делать выборки.
Тупо минимальный функционал.
Нахуй мне вся СУБД от хуй знает какой корпорации, которая корпоративные хуйни корпоративизирует,
и где какой-нибудь файл setup.exe весит 500 мегабайт, и содержит хуеву кучу проприетарного обфусцированного говнокода, с троянами?
502 1882433
>>882431
О, ебать. Я только что открыл для себя - файловую базу данных: https://habr.com/ru/post/16123/
Надо поколупать в этом направлении, бгггг
503 1882443
>>882433
Если глянуть глубже, то согласно принципу однородности памяти, из принципов архитектуры Фон-Неймана в двоичном коде любой программы - команды и данные хранятся в одной памяти. Данные, можно рассматривать как базу данных, а команды - как СУБД, то есть логику работы с этой базой данных.
504 1882468
Парни нужна небольшая помощь или подсказка.
Установил Selenium и Nunit пакеты в VS.
Надо проинициализировать браузер зайти на сайт проверить статус поле поиска(isDisplayed, isEnabled) - получить значение методов.
Подскажите в каком nameSpace эти методы не могу их отобразить.
И еще когда пиши локатор не могу подтянуть класс BY и его методы для определения в чем соль?
505 1882510
>>882468
А уже все нашел. СПС
506 1882513
Как кто делает ожидание страницы ?
Ну когда нужно подождать загрузки и т.д. метод Thread.Sleep() сказали использовать только в крайнем случае. Подскажите вариантов или примеров если можно.
507 1882517
>>882513
Многопоточность? асинхронное вычисление? не?
508 1882537
>>882513

>метод Thread.Sleep() сказали использовать только в крайнем случае


Долбоебы сказали.
Ты делаешь кастомный метод WaitPage(int timeout=10), в котором пишешь цикл, ждущий конкретного результата. Если не находит, спит секунду и повторяет поиск. Находит — break и возвращает, что надо.
509 1882571
>>882323
Когда я учился, сессия в январе была. Что же с нами стало.
510 1882580
>>882513
await Task.Delay(TimeSpan.FromSeconds(secondsToWait));
511 1882582
>>882571
У нас сессия в январе, но сдачи у нас еще в ноябре начались
512 1882595
Как считаете, требования в США к программистам выше, чем в России? К тем же .NET разрабам.
Может прогер, считающимся Джуном в России, найти там работу?
513 1882601
>>882595
В европе требование ниже, меня взяли в тим на фронтенд на первом курсе просто потому что я умел работать с пиратским фотошопом и верстать на хтмлке, в дотнет я уже попал на взрослую должность с опытом програмирования, но вообще без опыта в .net, в сша из того что я знаю требования еще ниже, что тут говорить когда там даже индусы пользуются спросом...
514 1882604
>>882595
Не слушай его >>882595, это наш местный шизик
515 1882607
>>882595
его >>882601
быстрофикус
Inception.jpg107 Кб, 1029x346
516 1882618
Можно ли в этой лямбде в конструкторе избавиться от ссылки на конкретный экземпляр листа, и использовать поле из экземпляра, в конструктор которого она передаётся?
this возвращает экземпляр AbilityWalk, а не AbilityInput
517 1882657
>>882618
Нельзя.
518 1882715
>>882657
Ладно, тогда буду переопределять инпут для каждого конкретного случая. Дальше так всё равно будет удобнее, хоть и кода больше.
519 1882812
>>882604
Значит требования как минимум не ниже?
image.png62 Кб, 1277x549
520 1882815
Сижу кароче над одним кейсом.
Можете посмотреть, и сориентировать насколько верно реализовал, и где херня если неверно.
521 1882819
Посоны, что за # Eval? В гугле и документации ничего не нашёл.

namespace SomeNamespace {
public class SomeClass : global::SomeOtherClass {
protected void Some_Page_Load(object sender, EventArgs e) {
# Eval("onlineId")
# Eval("GUID")
# Eval("onlineAccess")
}
}
}
image.png49 Кб, 1200x500
522 1882857
Или вот это будет посинглтонистее?
Ну или херня как и прошлый пример.
523 1882868
>>882513
Ожидание загрузки страницы делается на фронте, не? Зачем ты бэкенд спать отправляешь?
524 1882872
>>882595
От конторы зависит. Были как лёгкие так и жёсткие собеседования и там и там.
525 1882879
>>882857
Для тестов пойдёт. Вообще можно сделать сам класс статичным и добавить приватный статичный конструктор, в котором будет инициализация.
526 1882890
>>882879
И в кострукторе можно через Null объединение ебануть проверку и если что инициализацию?
527 1882892
>>882868
Ну мне нужно для написания тестов UI что бы страница загрузилась и можно было дойти до всех элементов.
528 1882957
>>882892
Ты в курсе, что Селениум по умолчанию ждет, пока страница не загрузится? Отследить это можно по спиннеру, который крутится на месте фавиконки сайта. Пока он крутится - Селениум ничего не предпринимает. Докрутился - начинает искать элементы.
529 1883016
>>882957
Теперь знаю.
530 1883038
>>874740
Ну у меня не просто тесты. У меня ещё на F# пишется генератор рандомных данных для проекта + много математики.
531 1883056
>>882819
Бамп вопросу. Это что-то из C#, или какая-то левая хуйня?
532 1883116
>>883056
Левая хуйня. Вызывает функцию жабоскрипта браузера.
533 1883192
>>883116
Спасибо.
1608267023452.jpeg9 Кб, 323x190
534 1883276
Извините за вероятно ньюфажный вопрос - можно ли использовать энтити фреймворк просто в качестве sql запросов, без явной загрузки данных в контекст?
Я писал простой примитивный код для работы с бд, на уровне dbContext.SaveChange()/tableName.ToList() , но при полугиговой бдшке, простая форма для админки с энтитей сожрала у меня 3-4гб озу и это не смешно =[ . Раз в пару минут приезжает GC и просто уполовинивает занимаемую память, но это все равно пиздец. На форме конечно datagridview для просмотра, за него я знаю, к нему нужно прикрутить воннаби paging, с ним я разберусь.
А еще, дело в том что я работаю с шифрованием и потому на каждую таблицу делаю дополнительный класс-прослойку для корректного отображения в датагриде. Там расшифровка данных + небольшая логика преобразований данных из базы для нормального отображения. +Изменение данных происходит не при помощи датагрида, а посему мне бы вообще данные в контексте не хранить если так можно.
535 1883328
>>883276
Можно.
contex.Set<T>().FromSqlRaw("Select zalupa from Pizda")
Но вообще, раз уж тебе не нужен EF - выпили его нахуй, возьми, например, даппер. Если писал все по-уму, тебе просто нужно будет заменить провайдера и чутка попроваить репозитории. Привет всем кто кричал что не нужно делать репозитории и юнит оф ворк, когда EF юзаешь.
536 1883330
Посоны, впервые понадобилась ваша помощь! Нужна фигня вроде ELMAH, чтоб ловила исключения веб-апликации, и давала в веб интерфейсе их посмотреть со всяческим контекстом. В идеале, еще и с дашбордами. Но чтоб живая была, и бесплатная.
537 1883367
>>883328
Привет.
538 1883507
>>882815
>>882857
Полная херня уровня детский сад.
Используй https://docs.microsoft.com/ru-ru/dotnet/api/system.lazy-1 и не еби мозги.
image.png73 Кб, 1326x545
539 1883600
Есть вопрос.
Есть определенный Test-case.
Его нужно прогнать для Chrome и FireFox.
Возможно ли как то сделать так что бы не писать два теста под каждый браузер. Или нужно реализовывать тест для каждого браузера?
540 1883609
>>882815
Что будет если два потока одновременно войдут в GetChromeObject когда _crome - еще null?
Короче, классическая проблема для синглтона.
Ну и да, нахуя тебе Get в свойстве? Убери.
541 1883613
>>883600
Если ты именно тестер и ты просто с "драйверами" работаешь, которые никаких общех интерфейсов не имеют - два тестовых. Если есть интерфейсы - используй их. Если ты разработчик - добавь интерфейсы и потом при тестировании используй их.
image.png46 Кб, 1129x493
542 1883673
Я в общем вообще вот так сделал. Не знаю насколько херово это выглядит но ментор сказал нормас.
543 1883693
А как через консоль запустить конкретный тест а не сразу все ?
544 1883711
>>883673
Твой ментор - долбоеб. Требуй деньги взад.
Еще раз: Что блядь будет, если из двух потоков обратятся к твоему классу, до того как инициализирован? Либо делай синглтон на основе Lazy либо - после проверки на null - ебани lock там делай еще одну проверку на null и уже там создавай создавай экземпляр.
И переименуй GetChrome. Get подразумевает что это метод. А у тебя свойство. Это вводит в заблуждение. Раз у тебя синглтон, то называй это Instance, оно понятно и все кто знают что такое синглтон - поймут что вернет это свойство.
545 1883742
>>883693
Тест на беременность? Зависит от того чем ты пользовался когда эти тесты писал.
546 1883783
>>883276
Или переходи на Dapper, или выключай EntityTracking при запросах и он не будет ничего кешить. Гугли, на stackoverflow всё есть.

А зачем такое сложное шифрование? Можно же всю БД или какие-то таблицы/колонки шифровать/дешифровать на уровне СУБД (зависит от твоей СУБД). Но даже Sqlite умеет целиком БД файл шифровать.
547 1883789
>>883711
Что что, два раза инициализируют и дальше пойдут. Даже для Прода такое выкатывают в целях производительности (избежать локов/семафоров и очередей потоков). А для тестов вообще пофиг. Напишет несколько тестов, они начнут прогоняться паралелльно в разных потоках и он для себя решит - работает этот подход или нет.

>>883673
Приватный статичный конструктор сделает инициализацию при старте приложения. Не надо будет никаких проверок на нулл и всякие антоны перестанут бояться, что страшные потоки будут иметь твои переменные одновременно.
мимо
548 1883790
Анонче, зачем нужны virtual методы и override?
Ну типо метод который хотим переопределить помечаем виртуальным а переопределяймый метод пишем оверайд. Но нахуя? Я попробовал и без этих слов все работает. Просто что бы знать что мол этот метод мы переопределили или есть какой сакральный смысл?
549 1883799
>>883783

> выключай EntityTracking


Спасибо, я уже выключил. Теперь хотя бы память не течет.

> Но даже Sqlite умеет целиком БД файл шифровать.


А вот с этого момента поподробнее? Как мне в шарп коде тогда с ней взаимодействовать?
550 1883842
>>883799
https://stackoverflow.com/questions/12190672/can-i-password-encrypt-sqlite-database
Разные провайдеры делают шифрование по разному. Microsoft.Data.Sqlite и System.Data.SQLite должны по умолчанию шифровать БД, если ты в connection string укажешь пароль.

Или можно вручную их АПИ покопать http://www.hwaci.com/sw/sqlite/see.html
551 1883846
>>883790
Ты ни черта не переопределил. То что ты видишь - сокрытие, причем неявное.
552 1883850
>>883846
Ну и что?
Все работает же у меня.
Вопрос нахуй оно тогда надо если и без него работает?
553 1883853
>>883850
нахуй ты вообще нужен, если и без тебя всё работает?
.png53 Кб, 1034x723
554 1883857
>>883850
Оно не работает ни у тебя ни у кого другого.
Я повторяю - ты просто сделал сокрытие. Это значит что при вызове из базового класса - будет вызван не метод этого класса, а тот что определен в базовом классе. Переопределение - это когда при вызове через базовый класс будет вызван переопределенный метод, если такой имеется.
555 1883876
>>883850
Блядь, чтобы тебе понятно был. Смотри, допустим тебе нужно отрисовать контролл какой-то. Ты, блядь, не знаешь какой контролл будешь рисовать, и ты не хочешь думать о том что тебе придет: кнопка, лейбл, текст или вообще TreeView, ты просто знаешь что у всех контроллов есть виртуальный метод Draw, твой класс, допустим, занимается тем что выставляет все контроллы по сетке, ты хочешь просто расставить их по этой сетке, а думать о том как они рисоваться будут - должен тот кто эти контроллы писал. Так вот, если он такой же еблан как и ты и не сделал базовый метод виртуальным, а методы не переопределил - после того как ты вызовешь controll.Draw() у тебя получится ебанина, прийдет ПМ, ебнет тебя по голове палкой, и выгонит на мороз, когда ты будешь кричать что свою работу ты сделал - он пойдет к программисту что делал контроллы, а он как и ты будет пиздеть что у него-то все работает, в итоге вы оба на мороз отправились и сдохли; если он был не мудаком и все нормально переопределил - ты получишь нормально отрисованные контроллы, вы оба получили квартальные премии и ебете на корпаративе студенток-практиканток, которые решили вкатиться в ОйТи.
556 1883885
>>883876
>>883857
Все равно нихуя не понятно.
Ну да ладно.
557 1883888
>>883857
И на будущие, шизойд, пользуйся пастебином или тут так поведено код скриншотами кидать?
558 1883890
>>883888
шизоид - это ты, в пэйстбин кидают, чтобы можно было с кодом поиграть, тут же надо быстро продемонстрировать результат небольшого куска кода, скрин быстрее всего. Ты сука вообще ни одного примера не привёл, как оно там у тебя работает, а хочешь чтобы люди тебе ещё дополнительные телодвижения делали.
559 1883895
>>883876
Я не этот шизик, у которого "все работает же", но из твоей стены текста действительно нифига не понятно, кроме части про студенток.
image.png75 Кб, 888x831
560 1883923
>>883890
Не ну вот щас понятно по скрину зачем это надо. Но возникает вопрос зачем создавать объект одного типа и передать его в переменную другого типа? Какие профиты?
.png62 Кб, 1085x938
561 1883926
>>883923
Вот такие.
562 1883927
Шарпаны, подскажите, как называется паттерн проектирования, когда есть несколько источников данных, один источник оригинальный, иммутабельный, остальные инкрементны основному, ну и мутабельны. Паттерн получая данные, ищет их во всех зарегистрированных инкрементах, начиная с самого лёгкого (у источников-инкрементов есть веса), как только паттерн находит данные, он их отдаёт. Если не найдено ни в одном из инкрементов, отдаёт из оригинала. Если запрашиваемых данных нет в оригинале, отдаёт поданное на вход дефолтное значение.

Вроде погуглил, не нашёл подходящих.
563 1883932
>>883926
Сложна и нихуя не понятно.
20190929095249.jpg94 Кб, 755x805
564 1883938
>>883885
Что ты не понял, дурик? Есть у тебя BaseClass, есть DerivedClass который унаследован от BaseClass, есть у тебя метод который принимает BaseClass, на пикриле различия в поведении. При этом метод без override может иметь любую сигнатуру.
565 1883940
>>883927

> остальные инкрементны основному



И какой смысл ты вкладываешь в "инкрементны"?
566 1883943
>>883932
Конечно, легче вскукарекнуть что ООП нинужна и есть ничто иное как лишняя писанина, как это делает большинство неосиляторов.
567 1883946
>>883932
Чего там непонятного? Ты можешь таким образом не думать о конкретном классе который тебе пришел.
Вот пример, метод SendMessage - он не знает как будет отправлено сообщение, его цель - создать сообщение и отослать, а как оно будет отослано - было определено сверху тем кто метод вызвал и передал туда отправителя. Есть два класса, которые переопределили метод SendMessage - таким образом, если в метод SendMessage прийдет класс, который переопределил метод - будет вызван именно переопределенный метод, вместо базового. Если бы не было переопределения, а использовалось сокрытие, чтобы вызвать отправку по СМС или по электронной почте, ты должен был бы проверить какой конкретно объект к тебе пришел и привести к нему, либо ебашить 2 метода, один для SMS другой для emal'ов.
568 1883950
>>883940
Как инкрементные архивы, только датасорцы. Содержат добавочные данные, в том числе замену оригинальных данных, поскольку оригинальный датасет иммутабелен.
569 1883954
>>883943
Я же не говорю что не нужно.
Вот к примеру разделение программы на объекты и работа с ними мне нравится. Типо Каждый класс отвечает за свои данные и ничего лишнего, каждый метод выполняет только 1 действие и все. Это ведь ООП?

Просто пару раз начинал писать мелкие программки и когда код переваливал за 200 строк и я хотел внести какие либо изменения то приходилось все писать заново. Но некоторые вещи мне все еще не понятны.
Например
Person tom = new Employee("Tom", "Microsoft");// Зачем мне это делать???
Вот где может понадобится на простом примере создавать объект и присваивать его переменной длругова класса?
570 1883957
>>883946

>Чего там непонятного


Сложный код, перечисления лямбда выражения, я путаюсь. И еще пиздец как не привычно имя переменных когда начинается с _ я как вижу сразу пугаюсь и думаю шо это такое то метод или шо.
571 1883959
>>883954
Тебе надо почитать классику.
ООП взят из природы, из наблюдения человека за природой. И именно на природе можно найти примеры ООП от самого Боженьки, кек.
Например.
Есть абстрактный класс "млекопитающие". Почему он абстрактен? Потому что все млекопитающие реализуются в реальности через дочерние классы, например, собака реализует класс "псовые", который унаследован от млекопитающих и обладают генерацией молока. Дельфины от класса "дельфиньи", так же наследемого от млекопитающих. Человеки - от "приматов", ну ты понел.

Для чего передавать собаку класса "псовые" в массив типа "млекопитающие"? Другого типа массив же, епт! Ну, догадался? Нет? Потому что у нас теперь есть возможность положить в один массив всех млекопитающих! Несмотря на то, что это собаки, люди, белки, обезьяны, медведи, дельфины! Они все могут быть помещены в обдин массив и специальный робот доильщик пройдёт по массиву и подоит всех! И собак, и кошек и людей.
572 1883983
>>883954

>Типо Каждый класс отвечает за свои данные и ничего лишнего, каждый метод выполняет только 1 действие и все



Если на каждый случай создавать свой класс и методы, то вместо 10 строк тебе придётся писать 100 или больше, а потом ты во всей этой каше запутаешься.

Суть ООП в том, что ты выносишь всё общее в отдельные, основные классы, а всё конкретное в классы, которые будут передаваться в эти основные классы. Таким образом общий код ты будешь трогать редко, а в случае добавления какой-то конкретики, ты просто создаешь дополнительный класс с нужной логикой.
Создавать программу нужно мысля именно так, например, ты хочешь создать парсер двача, который отсеет все посты без прикрепленных файлов и оставит только файлы с каким-то контентом. Если применять ООП подход, то ты будешь делать парсер не для двача, а для сайта в котором есть сущности объединяющие несколько сообщений и сообщения двух видов - с медиа контентом и без.
Какие в этом плюсы? Плюсы в том, что код, который будет работать с сущностями объединяющими сообщения (в случае двача это треды) и непосредственно с сообщениями, можно будет использовать для любой другой борды, а конкретными будут только способы получения данных. Т. е. написал ты для двача, а для того чтобы тоже самое делать с 4chan'ом, krautchan'ом и другими бордами, тебе будет достаточно переписать те методы, которые отвечают за получение тредов и сообщений.
Минусы только в том, что тебе придётся тщательней обдумывать архитектуру и если опыта мало, то затратишь ты на это гораздо больше, чем на решение "в лоб".
При этом логика схожа не только с бордами, но и с форумами в которых есть темы и сообщения в этих темах, т. е. при хорошей архитектуре ты написанный код можешь применять не только для двача и борд, но и для форумов.

>Person tom = new Employee("Tom", "Microsoft");// Зачем мне это делать???



Так никто и не делает, частый случай это передача производного типа методу который принимает базовый тип, т. е. Person у тебя будет в сигнатуре метода, а инициализировать ты будешь Employee и использовать его в методе принимающем как Person, так и Employee.
572 1883983
>>883954

>Типо Каждый класс отвечает за свои данные и ничего лишнего, каждый метод выполняет только 1 действие и все



Если на каждый случай создавать свой класс и методы, то вместо 10 строк тебе придётся писать 100 или больше, а потом ты во всей этой каше запутаешься.

Суть ООП в том, что ты выносишь всё общее в отдельные, основные классы, а всё конкретное в классы, которые будут передаваться в эти основные классы. Таким образом общий код ты будешь трогать редко, а в случае добавления какой-то конкретики, ты просто создаешь дополнительный класс с нужной логикой.
Создавать программу нужно мысля именно так, например, ты хочешь создать парсер двача, который отсеет все посты без прикрепленных файлов и оставит только файлы с каким-то контентом. Если применять ООП подход, то ты будешь делать парсер не для двача, а для сайта в котором есть сущности объединяющие несколько сообщений и сообщения двух видов - с медиа контентом и без.
Какие в этом плюсы? Плюсы в том, что код, который будет работать с сущностями объединяющими сообщения (в случае двача это треды) и непосредственно с сообщениями, можно будет использовать для любой другой борды, а конкретными будут только способы получения данных. Т. е. написал ты для двача, а для того чтобы тоже самое делать с 4chan'ом, krautchan'ом и другими бордами, тебе будет достаточно переписать те методы, которые отвечают за получение тредов и сообщений.
Минусы только в том, что тебе придётся тщательней обдумывать архитектуру и если опыта мало, то затратишь ты на это гораздо больше, чем на решение "в лоб".
При этом логика схожа не только с бордами, но и с форумами в которых есть темы и сообщения в этих темах, т. е. при хорошей архитектуре ты написанный код можешь применять не только для двача и борд, но и для форумов.

>Person tom = new Employee("Tom", "Microsoft");// Зачем мне это делать???



Так никто и не делает, частый случай это передача производного типа методу который принимает базовый тип, т. е. Person у тебя будет в сигнатуре метода, а инициализировать ты будешь Employee и использовать его в методе принимающем как Person, так и Employee.
573 1883986
>>883983
Моё объяснение круче, ящитаю.
574 1883987
>>883957
Ну, сорян, я просто хотел чтобы на один экран уместилось.
Ладно, вот тебе пример на пастебине.
https://pastebin.com/dc3K0XtV
575 1883988
>>883673

>ментор


Судя по тому что тебе сказали что это норм, то ты с курсов, при том люто говняных курсов, так как тема синглтона изи на того чтобы завалить человека на собесе.
А ты с таким кодом не то что провалил его, повезет если тебя в черный список не внесут.
Эта настолько старая и избитая тема что не знать ее признак абсолютного отсутствия опыта.
Тебе уже написали как делать и в интернете сотни статей почему именно так, а не как иначе.

>>883789

>Что что, два раза инициализируют и дальше пойдут.


Да, но существует шанс использования двух разных экземпляров на протяжении всей работы приложения без понимания что же тут не так. В нормальных конторах есть анализаторы которые помечают такой код как ERROR и за такое могут легко лишить премии, потому что это в будущем может сломать работу на месяцы.

>Даже для Прода такое выкатывают в целях производительности


В продакшене производительность это десятое место, а экономить на локах или lazy лютая глупость, цена настолько низкая что даже в гейм дизайне так можно делать не говоря уже о том что через лок там только 1 проверка дальше по факту будет, то есть ты экономишь один if не понятно зачем.
576 1883992
>>883986
Твоё это бред про природу? Ты либо троллишь, либо сам от того кому объяснить пытаешься недалеко ушел. В хороших книгах про ООП первым делом предостерегают от того чтобы пытаться проецировать жизнь на код и искать что-то схожее.
577 1883994
>>883992
Не, щас ты троллишь. Слишком толсто.
image.png51 Кб, 648x819
578 1883995
>>883959
Ну вот животные все в одном массиве и те которые cat a1 = new cat и те которые Animal a2 = new cat
И в чем разница то?
579 1883997
>>883994
Так попробуй про ООП не из статей в интернете читать, а из полноценных книг. Начать можешь с Agile Principles, Patterns, and Practices in C# By Martin C. Robert, Martin Micah

Тогда перестанешь в этом видеть троллинг.
580 1884000
>>883995
В данном случае нет разницы.
Но вот добавь классу Aminal метод MakeNoise() и сделай для cat - Console.WriteLine("mew"); для dog - Console.WriteLine("Woof"); и базовому классу Console.WriteLine("Animal noise"), а затем вызови это в своем foreach. Ты увидишь что без virtual-override - будешь видеть методы базового класса, вместо мяуканья и гавканья.
581 1884002
>>883983

>Employee и использовать его в методе принимающем как Person, так и Employee.


Ну тогда зачем это надо если метод принимающий родительский класс может принимать и производные?
Я не понимаю профит этой конструкции.
15855935722820.png26 Кб, 743x536
582 1884004
>>883673
Если инициализация синглтона не требует больших затрат, т. е. нет какого-то дорогого запроса к БД или чтение из файла и загрузка в память нескольких сотен мегабайт, то используй конструкцию вида Singleton, иначе Singleton1
583 1884005
>>884002

>зачем это


Что "это"?
584 1884007
>>884005
Person tom = new Employee("Tom", "Microsoft");

Профиты этой ебаты с типами.
585 1884008
>>884000
Четко спасибо, более менее разобрался.
586 1884009
>>883997
Вот теперь точно толстота. Жирнющий демагогический приём - отсылать в гугл за некими "настоящими шотландцами книгами".
587 1884011
>>883983
Ну, ты описал кстати утопию. В реальности тебе дают неделю - ты должен сделать, иначе пизда, трындец, ПМ плачет, умоляет, а потом грозит уволить, а потому ты таки будешь вынужден ебануть изначально говнокод, который решит задачу здесь и сейчас, а все ООП начнется уже через 100 итераций этой хуйни, когда разгребать говно и костыли с велосипедами прийдут уже другие люди.
588 1884012
>>884007

>Person tom = new Employee("Tom", "Microsoft");



Если tom передать в метод принимающий Person, то не будет проверки типа.

Если объявить так

>Employee tom = new Employee("Tom", "Microsoft");



И передать tom в метод принимающий Person, то сначала будет проверка типа и только потом работа метода.

Но, как я уже сказал, так мало кто делает в реальности, это просто неудачный пример от анона с двача.
589 1884013
>>884009
Да не, в изначальном посте все верно написано. Примеры с природой это хуета для гуманитариев и школьников.
590 1884016
>>883988
Не я не с курсов, сам учился всему этому поэтому так херово и выходит )
591 1884017
>>884012
Всмысле проверка типа?
Я должегн сделать проверку? или компилятор будет ее делать и время тратить?
592 1884026
>>884009
В чём демагогия, дурачок? В том что тебя отослали к источникам, которые разбираются в теме уж явно лучше тебя, долбоеба с двача, который высрал хуйню про природу?

Не хочешь развиваться, хорошо. Тогда вот тебе выдержки из книги которую я тебе посоветовал. Это из 20-ой главы , там как раз разбирается ситуация с которой сталкиваются идиоты вроде тебя, пытающиеся натянуть физический мир на логический.
593 1884029
>>884017
Да, JIT компилятор будет проверять является ли объект tom наследником класса Person, если ты присвоил его переменной типа Employee, если он у тебя изначально присвоен переменной Person, то никаких проверок происходить не будет.
Просто в этом мало логики, потому что если ты собираешься передать этот объект, который ты присвоил переменной типа Person, в метод принимающий объект типа Employee, то тебе придётся явно приводить эту переменную к типу Employee. Если ты не собираешься этого делать, то зачем тогда вообще присваивать объект Employee типу Person?
594 1884030
>>884013
>>884026

>дурачок


>долбоёб


Не бомби, в следующий раз получится затроллить.
595 1884033
>>884029

> зачем тогда вообще присваивать объект Employee типу Person?


Чтобы в цикле обойти инстансы и вызвать метод, унаследованный от Person, не взирая на конкретные типы имеющихся инстансов.
596 1884034
>>884030

>ткнули носом в обосранные штанишки


>У ТИБЯ БАМБИТ ТЫ ТРОЛЛИШЬ!!



Проиграл. Главное чтобы в следующий раз у тебя хватило сил признать свой обсер. Не делать этого на анонимной борде - хороший повод задуматься над своим психическим здоровьем.
597 1884039
>>884034
Да, я вижу как у тебя нибамбит, токсик из тебя так и льётся. Я написал чётко по делу, ты пишешь хуйню, надеясь, что оппонент в неё поверит. Это типичный Reductio Ad Ignorantum. Просвещайся, пока я здесь.
598 1884040
>>884039

>я написал



В этом твоя проблема. В твоей писанине не хватает ссылок на источники и литературу которыми ты руководствуешься. Да, сычуш, твоего "ятакскозал" не хватает, особенно на анонимной борде.
599 1884044
>>884033
Они и так вызовутся если ты передашь Emplyoee в метод принимающий Person.
И присваивать объект Emplyoee переменной Person ради того чтобы избежать проверки типов в такой ситуации тоже не имеет смысла, потому что при вызове виртуального метода происходит проверка типа объекта.
600 1884048
>>883988

>В продакшене производительность это десятое место


В больших конторах часто есть такое понятие как SLA, когда требуют чтобы при любой загрузке системы у пользователей не уходило больше 1-5 сек на операцию (полный рендеринг страницы например).

Для всяких сессий и токенов очень любят делать зашаренный объект, который по истечении срока жизни надо генерить заново. Тут два варианта - локать токен, обновлять в одном потоке, отпускать для использования остальными потоками. Когда загрузка серваков под 80%, такой лок может внезапно уехать под все 100% и серваки начнут кидать исключения или внезапно прыгать с 1 сек до 100 сек на отзыв. И тут можно словить увольнение и бан.

Для таких ситуаций можно позволить нескольким потокам переписать токен несколько раз и забыть про него на 30-60 минут.
601 1884340
>>870468 (OP)
Где взять сорец SQLite на C# и как сбилдить .dll-ки (какие?), на .NET Framework 4.0?
602 1884377
>>883842
Спасибо, выглядит очень удобно. У меня теперь другой вопрос - у меня есть классы прослойки для отображения данных в датагриде. Т.е. грузятся данные из бд в этот класс, а в нем расшифровка и небольшая логика для отображения (например если в таком то поле null значит записать в строку "не существует"). Можно ли как-то вообще избавиться от этих классов для отображения и вынести куда-то вот эту логику для просмотра?
>>884340
В nuget'e?
мимо такой же долбаеб
603 1884591
>>884377
Нугет притянет пакеты, которые создают дополнительные длл-ки, а я хочу всё вкомпилировать в один экзэшник.
image.png35 Кб, 1311x153
604 1884632
Как читается и что обозначают позиции в данном коде.
И что вообще там происходит ?
605 1884683
>>884632

Класс Testwith.....Browsers использует обобщенный тип данных TWebDriver, класс наследуется от TWebDriver, все остальное я хз сам еще не разобрался.
metanit.com/sharp/tutorial/3.12.php
Вот тут если шо читать.
606 1884711
>>884683
Благодарю.
16083837755650.png43 Кб, 1349x196
607 1884718
>>884683
Класс Test... не наследуется ниоткуда; обобщённый тип TWebDriver имеет следующие generic type constraints:
1. реализует интерфейс IWebDriver
2. имеет публичный беспараметрный конструктор new()
608 1884720
>>884718

>обобщённый тип TWebDriver


Вернее не обобщённый тип, а параметр типа. Обобщённый тип это TestWithMultipleBrowsers<TWebDriver>
609 1884849
Как можно получить путь к файлу через OpenFileDialog? Гуглил, советуют System.IO.Path.GetDirectoryName, но он работает не так как надо.
К примеру я открываю файл "word.docx", и свойство SafeFileName возвращает мне только название и расширение файла, но не путь
610 1884879
>>884849
Вопрос исчерпан
image.png26 Кб, 1431x194
611 1884967
А как проверить что в строку поиска введены символы нужные?
Это через локаторы как то можно дергнуть ? Или есть какой нибудь метод ?
612 1884969
>>884967
регулярным выражением
613 1885027
>>884632
Прикольно иногда заставить себя посмотреть на код глазами новичка. Когда только картинку твою открыл, вообще вопросов никаких не возникало. Всё на своих местах, всё просто, и даже не знаешь, тролят тебя или нет. А потом пытаешься представить что ты код в принципе в первый раз в жизни неделю назад увидел, и сразу появляется куча вопросов.

Зря ты с этого начал. Поучил бы основы с пол года сначала. Не важно даже на каком языке и фреймворке.

https://medium.com/javarevisited/9-free-c-c-sharp-courses-and-tutorials-for-beginners-and-intermediate-programmers-best-of-lot-dc8c793aab31

https://dusted.codes/dotnet-for-beginners
614 1885162
>>884591
Пытаюсь сконпелировать SQLite из сореца на шарпе, чтобы получить портабельную СУБД опенсорцую.

1. Здесь: https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
Нашёл (13 903 827 байт): https://system.data.sqlite.org/downloads/1.0.113.0/sqlite-netFx-full-source-1.0.113.0.zip
Пишут, что это сорец:

>This ZIP archive contains all current source code for System.Data.SQLite 1.0.113.0 (3.32.1)


>and the extra files needed to run the unit test suite, combined into a single archive file.


>(sha1: 57a4a873c839314d2adbf3e3c737fefa8fdff72e)



2. Хэш - совпадает (проверил MultiHasher 2.9 portable: 57A4A873C839314D2ADBF3E3C737FEFA8FDFF72E )

3. Unzip-нул архив WinRAR'ом. В распакованном виде, всё это добро - засрало мне вот столько байт (46 639 196 байт).

4. Что делать дальше и как получить DLL-ки, и какие - хуй знает. На Windows XP (x86), cтоит - Visual Studio 2010 Ultimate (.NET Framework 4.0).

5. Методом тыка, залез в папку sqlite-netFx-full-source-1.0.113.0\Setup, и вижу дохуя батников. Испугался и сразу закрыл нахуй.

6. Возвращаюсь назад, из папки Setup. Дабл клик по файлу SQLite.NET.2010.MSBuild.sln (потому что студия 2010)
Открывается студия, лезут ебучие варнинги.

7. Build -> Build Solution (656 Errors, 24 Warnings, блядь).
Все Errors при попытке кококонпеляции этой вот шляпы "System.Data.SQLite.EF6.2010", и вот этой залупы "testef6.2010".
Значит сорец не полный, блядь.
Вижу также, в папке sqlite-netFx-full-source-1.0.113.0\Externals какие-то пре-компиленные .dll-ки, значет сорец не опен, блядь.

8. Дальше, несмотря на варнинги и ерроры, кококонпеляция, вроде как прошла.
И теперь, где-то, здесь: \sqlite-netFx-full-source-1.0.113.0\obj\2010
я вижу кучу папок.
Среди них:
"\sqlite-netFx-full-source-1.0.113.0\obj\2010\Win32\DebugStatic\System.Data.SQLite.dll.intermediate.manifest"
"\sqlite-netFx-full-source-1.0.113.0\obj\2010\Win32\Debug\System.Data.SQLite.dll.intermediate.manifest"
"\sqlite-netFx-full-source-1.0.113.0\obj\2010\System.Data.SQLite.Linq.2010\Debug\System.Data.SQLite.Linq.dll"
"\sqlite-netFx-full-source-1.0.113.0\obj\2010\System.Data.SQLite.2010\Debug\System.Data.SQLite.dll"

9. Хуй знает достаточно ли этого, и будет ли оно работать, или придётся - опять переустанавливать шиндошс.

АААААААААА! Хочу сука СУБД заебатую, опенсорцную, чтобы из чистого сорца состояла, и чтобы была без троянов вшитых в говнокод.

Вот здесь, вроде, нашёл что-то попижже. https://github.com/moneymanagerex/System.Data.SQLite
там архив на целых 100 метрабайт, буду цацкаться с ним, кароче.
614 1885162
>>884591
Пытаюсь сконпелировать SQLite из сореца на шарпе, чтобы получить портабельную СУБД опенсорцую.

1. Здесь: https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
Нашёл (13 903 827 байт): https://system.data.sqlite.org/downloads/1.0.113.0/sqlite-netFx-full-source-1.0.113.0.zip
Пишут, что это сорец:

>This ZIP archive contains all current source code for System.Data.SQLite 1.0.113.0 (3.32.1)


>and the extra files needed to run the unit test suite, combined into a single archive file.


>(sha1: 57a4a873c839314d2adbf3e3c737fefa8fdff72e)



2. Хэш - совпадает (проверил MultiHasher 2.9 portable: 57A4A873C839314D2ADBF3E3C737FEFA8FDFF72E )

3. Unzip-нул архив WinRAR'ом. В распакованном виде, всё это добро - засрало мне вот столько байт (46 639 196 байт).

4. Что делать дальше и как получить DLL-ки, и какие - хуй знает. На Windows XP (x86), cтоит - Visual Studio 2010 Ultimate (.NET Framework 4.0).

5. Методом тыка, залез в папку sqlite-netFx-full-source-1.0.113.0\Setup, и вижу дохуя батников. Испугался и сразу закрыл нахуй.

6. Возвращаюсь назад, из папки Setup. Дабл клик по файлу SQLite.NET.2010.MSBuild.sln (потому что студия 2010)
Открывается студия, лезут ебучие варнинги.

7. Build -> Build Solution (656 Errors, 24 Warnings, блядь).
Все Errors при попытке кококонпеляции этой вот шляпы "System.Data.SQLite.EF6.2010", и вот этой залупы "testef6.2010".
Значит сорец не полный, блядь.
Вижу также, в папке sqlite-netFx-full-source-1.0.113.0\Externals какие-то пре-компиленные .dll-ки, значет сорец не опен, блядь.

8. Дальше, несмотря на варнинги и ерроры, кококонпеляция, вроде как прошла.
И теперь, где-то, здесь: \sqlite-netFx-full-source-1.0.113.0\obj\2010
я вижу кучу папок.
Среди них:
"\sqlite-netFx-full-source-1.0.113.0\obj\2010\Win32\DebugStatic\System.Data.SQLite.dll.intermediate.manifest"
"\sqlite-netFx-full-source-1.0.113.0\obj\2010\Win32\Debug\System.Data.SQLite.dll.intermediate.manifest"
"\sqlite-netFx-full-source-1.0.113.0\obj\2010\System.Data.SQLite.Linq.2010\Debug\System.Data.SQLite.Linq.dll"
"\sqlite-netFx-full-source-1.0.113.0\obj\2010\System.Data.SQLite.2010\Debug\System.Data.SQLite.dll"

9. Хуй знает достаточно ли этого, и будет ли оно работать, или придётся - опять переустанавливать шиндошс.

АААААААААА! Хочу сука СУБД заебатую, опенсорцную, чтобы из чистого сорца состояла, и чтобы была без троянов вшитых в говнокод.

Вот здесь, вроде, нашёл что-то попижже. https://github.com/moneymanagerex/System.Data.SQLite
там архив на целых 100 метрабайт, буду цацкаться с ним, кароче.
615 1885219
>>870468 (OP)
Анон, какие РАСШИРЕНИЯ, делают язык SQL - тьюринг-полным?
Кроме PL/SQL и PSM, разумеется: http://assets.en.oreilly.com/1/event/27/High Performance SQL with PostgreSQL Presentation.pdf
Вижу здесь - СTE:
https://coderoad.ru/900055/Является-ли-SQL-или-даже-TSQL-Тьюринг-полным#7580013

А какие ещё вы знаете?
616 1885239
>>885162
>>885219
О, ебать! Что ж вы мне не сказали, что тут есть тред про базы данных и СУБД, с матчастью в ОП-посте?!! https://2ch.hk/pr/res/1869616.html (М)
617 1885286
>>885239

¯\_(ツ)_/¯
618 1885338
>>885239
аноны из того треда не сделали же нам ничего плохого, чтобы их наказывать
куки-хуюки.png78 Кб, 1052x336
619 1885364
Выручайте котаны. Пишу Пытаюсь писать сайт на асп нет коре, решил запилить авторизацию (пока без идентити), добавил куки аутентификацию, добавил клаимпринципал через context.SignInAsync и... В фаерфоксе все норм, а хром шлет меня на хер (пикрилейтед). При этом в хроме в режиме инкогнито все работает. А атифоржери кука с такими же параметрами (вроде) ставится. Как быть?
620 1885374
>>885364
Почистил еще раз хранилище для сайта и все заработало, хз я и до этого куки удалял. Хуита какая-то.
621 1885402
>>885364
У кук есть аттрибут secure, если он равен true, значит эти куки могут изменяться только по протоколу https. На пике ты делал запрос через http и браузер сказал, что не будет перезаписывать куки с пометкой secure.
622 1885434
>>885402
>>885374
Я хуею с того что народ лезет в кодинг, не зная английского. Кодинг - не то место, где стоит показывать свой языковой патриотизм. Учи инглиш, сука!
623 1885712
Можно ли в терминале узнать версию Selenium и версию драйвера ?
Какую команду для этого можно использовать?
624 1885765
>>883927
CQRS ?
625 1885774
>>885765
Почитал.
Любопытная штука, но не то. CQRS разделяет команды и запросы, а я реквестировал несколько иное: шаблон или подход, при котором система имеет внутри себя (хохо, кажется я сейчас сам отвечу на свой вопрос), имеет внутри себя кластер из синхронизированных датасорсов, и в ответ на реквест данных извне, система возвращает актуальные данные из мутабельного домена в кластере, а при команде на модификацию данных, система создаёт или изменяет один из мутабельных доменов, имея в своём составе корневой иммутабельный домен.
Собственно, шаблон кластера моему реквесту и отвечает. Вопрос закрыт.
626 1885775
>>885774
Иммутабельный домен, если кто не догадался, это данные либо вшитые в исполняемый файл, либо находящиеся в системной области приложения и не доступные для изменения юзеру (требующие прав администратора, что небезопасно и не приветствуется). Мутабельные домены - это файлы, созданные приложением в процессе своей работы в пользовательской области приложения (в аппдате, если речь о винде).
627 1885833
>>883276
Кстати, можешь попробовать через modelBuilder попробовать свое шифрование напердолить, чтобы за тебя этим ef занимался. Через fluent api
628 1885857
>>885833
В чем смысл? Перенести код с одного места в другое?
629 1885859
1) Напомните пожалуйста название инструмента в котором в отладчике студии можно смотреть сколько памяти озу занимает тот или другой класс.
2) Какой либой лучше всего можно сжать байт массив?
630 1885950
Как работает сборка мусора gc.collect(), а точнее поколения? Если я укажу в параметрах 2 это означает что будут охвачены поколения 0,1,2 или просто 2?
631 1885956
>>885950

>будут охвачены поколения 0,1,2 или просто 2?



0, 1, 2
632 1885977
Полгода стажируюсь на c# за 25к, какой-никакой опыт приобрел, на нг стажировка кончается. Сейчас дочитываю Рихтера, потом на праздниках собираюсь прочитать GoF, а потом устроиться куда-нить джуном. Могу ли претендовать на зп 60к, при этом удаленно?
633 1886067
>>885977

>Могу ли претендовать на зп 60к, при этом удаленно?


Зависит от места работы и твоих знаний в итоге.
Но вот

>Полгода стажируюсь на c# за 25к


Это пиздец ставит крест на нормальной работе, тупо даже собес начать не получится.
Да и судя по всему знаний у тебя минималочка так что я бы особо на что-то не надеялся.
634 1886069
>>885977

>60к, при этом удаленно?



Если JS подучишь, то вполне возможно. Иначе вряд ли.
635 1886099
>>886067
>>886069
Спасибо, жаль :(
Придется приспустить свои ожидания
image.png108 Кб, 1021x831
636 1886100
Может кто сталкивался с похожими проблемами.
В Jenkins когда смотрю отчет о билде всюду кракозябры. Как можно исправить? Кодировки поменял.
Такая же херня в репозитории удаленном Git. Хотя в IDE в проекте все отображено корректно.
image.png22 Кб, 1479x182
637 1886101
638 1886279
>>885774
>>885775
Нихуя ты намудрил. Зачем тебе это?
Конфиги шатать, что ли?
639 1886328
>>886279
Ну да. Типа того.
640 1886339
Сап! Есть простая программка, которая считает хэши у содержимого каталога. #уменявсёработает, а у коллег с хз как настроенными антивирусами иногда виснет, причём виснет после того, как посчитает хэши и запишет результат в выходной файл.
Код примерно такой
Log.Write("Работа закончена. Выход.");//запись в файл через streamwriter, всегда печатается
Environment.Exit(0);//а этого уже не происходит

Если перед выходом вписать задержку Thread.Sleed(100500); то программа просто ждёт эти 100500мс и нормально завершается. Есть какой-то нормальный способ вставить ожидание запросов к программе уровня операционной системы вместо фиксированной задержки?
641 1886341
>>886339
Ну хуй знает, может быть что-то типа Application.Close(0); хотя нет, хуйня какаята.
642 1886343
>>886339

>Есть какой-то нормальный способ



Да, делать всё асинхронно используя Async методы и async await конструкции.

Чтобы более подробно ответить, нужно видеть код. Неизвестно как ты эти хэши считаешь и какими вызовами к внешнему коду (коду ОС) пользуешься, как создаешь потоки и т. д.
643 1886349
>>886343

> акими вызовами к внешнему коду (коду ОС) пользуешься


Хвалёный дотнет не может без внешних вызовов, чисто на внутреннем управляемом коде прочесть файлы и посчитать хэшсуммы? Понимаешь, что говоришь вообще?
644 1886358
>>886343
А не всё ли равно какой код, если всё работа завершена до печати "Работа закончена. Выход." и ситуация происходит не каждый раз?
645 1886373
>>886349
Вроде не веб-макака, а такую чушь пишешь. Работа с файлами это всегда обращение к внешнему коду, независимо от языка. File.Read это обертка над системным API по чтению файлов.
>>886358

>А не всё ли равно какой код, если всё работа завершена до печати "Работа закончена. Выход."



Судя по написанному "добавляю Thread.Sleep и всё работает как надо" она не завершена.

>и ситуация происходит не каждый раз?



Ну так это поведение очевидно, когда дело происходит независимо от твоего кода. Когда-то вся информация обрабатывается в нужный момент времени, когда-то она не успевает обработаться и спасает только Thread.Sleep.
646 1886393
>>886373

>Судя по написанному "добавляю Thread.Sleep и всё работает как надо" она не завершена.


>Ну так это поведение очевидно, когда дело происходит независимо от твоего кода.


Тебе не кажется, что здесь какое-то противоречие? МОЯ программа завершила работу, но ЧТО-ТО внешнее мешает ей.
647 1886404
>>886393
Твоя программа вызвала внешние ресурсы и теперь её работа связана с этими ресурсами, если ты их никак не контролируешь, то поведение и твоей программы, и внешних ресурсов, непредсказуемо и может приводить к подобным твоей ситуациям.
Если не можешь показать код, то тебе следует пройтись по нему самостоятельно, предварительно прочитав что-нибудь на тему работы с файлами и проштудировав документацию на MSDN. Учитывая, что ты вообще не представляешь как это всё происходит, тебе в любом случае стоит это сделать.
648 1886435
>>886393
Работа с I/O (input/output устройства), куда входят HDD, SSD, флешка, принтер, сеть и прочее - это внешние зависимости и операции над ними выполняются за пределами твоей программы. Не важно на каком языке ты программу написал.

По своей природе все эти операции аснихронные. Ты только можешь послать команду из своей программы, а потом надо сидеть и ждать, когда операция закончится.

Если работаешь с новым асинхронным АПИ, то надо правильно им пользоваться, иначе будут вот такие фокусы, которые ты описываешь.
image.png12 Кб, 326x266
649 1886498
Сука!!! Да что я делаю не так-то!? Почему у меня программа на строке 21 зависает в будто бесконечный цикл. А когда пишу ReadExisting, то ничего не выводит. Что делать нахуй!? Порт COM1 вроде
650 1886502
>>886498

>на строке 21


>на пике нет нумерации строк


>если посчитать все строки, то будет 17



Тут всё сложно. Проблема на генном уровне. Как говорится, нужно поменять прокладку между компьютером и сиденьем.
image.png17 Кб, 399x279
651 1886504
>>886502
Блять, не тот скрин, сначала правильный залил, потом удалил и залил кривой
652 1886507
>>886504

>на 21 строке


>21 строка пустая



Хуй знает, бротиш, попробуй переустановить шиндоус или перезапустить комп и сбросить настройки биоса.
653 1886872
Как правильно помешать Unity-модулю инициализироваться, если функций и переменных включить\выключить не видно?

Один вариант - вылетать с return из Awake из базового класса модуля. Второй вариант - в Awake делать this.gameObject.SetActive(false);. Третий вариант - звать Destroy. Что из этого не вызывает багов, я не знаю.
654 1887005
>>886872

> Unity-модулю


В юнити своя атмосфера. Шарп там юзается как скриптинг. Следовательно тебе следует предпочитать имеющиеся там методы работы с движком и не лезть общешарповыми средствами туда.

А имеющиеся методы работы тебе следует почерпнуть из официальной документации.
655 1887010
>>887005
Юнити вообще пиздец. Помню, когда только язык начинал изучать, решил попробовать свою игру написать. Ломал голову неделю, а в итоге хуета какая-то неструктурированная. Все эти методы внутридвижковые – они не интуитивно понятные, учишь как второй язык. Много воды с тех пор утекло, а юнити я до сих притрагиваться побаиваюсь
656 1887088
>>887010
Повторяюсь. Документацию читай. Как и к любому сложному программному продукту. Без документации ты гораздо сложнее вкатишься. У нас тут неделю или две назад был в треде такой один. Вкатывался в ДевЭкспресс без чтения доков, без изучения примеров. С него половина треда угорали, а вторая половина разводили руками, не зная, как ему помочь.
657 1887118
Анон, занимаюсь фронтом. Хочу перекатиться в бекенд.
Выбираю между шарпом и джавой для бекенда в Украине.
Цель не выявить лучший, а более перспективный по времязатраности/зп/месту
658 1887124
>>887118

>шарпотред


Выбирай шарп .
image.png133 Кб, 1450x1011
659 1887135
Подскажите в чем херня. Не могу запустить тесты проекта через nunit console runner.
Что выдает консоль на скрине. Подскажите что делать?
660 1887177
>>870468 (OP)
Как лучше сделать на шарпе - простую форму обратной связи?

Ну, чтобы был сервер, страничка с формой,
и чтобы можно было написать админу сервера,
и получить ответ от него?

Можно ли как-то обойтись без базы данных, регистрации и авторизации?

Самое простое, что приходит в голову - это сохранять сообщения (и аттачи) - в виде текстовых файлов,
но если регистрации-авторизации нет, то кто угодно может срать , а значит нужно что-то вроде валидации емейла,
и ещё и каптча.
Если емейл юзера будет валидироваться, то надо пердолится с автоматической отправкой емейлов с кодом подтверждения емейла юзера, а тогда палится емейл админа, что херово.

Что если в торе просто повесить форму с каптчёй и сохранять текстовые файлы, без палева?

И щё один аспект... Ответ от админа.
Это может быть емейл с фейкомыла,
а может быть ответ внутри (что-то вроде системы тикетов),
а тогда нужна база данных и регистрация, блядь, и пердолинг с таблицами и проектированием баз данных, и SQL, и прочей ебалой.

Короче, как проще сделать портабельную и легкоподнимаемую форму обратной связи, с чего начать проектировать это говно?
Снимок.PNG6 Кб, 872x394
661 1887178
Шарпач, помоги, пожалуйста!
Есть база данных. В ней три таблицы, вроде как связанные между собой (если это важно, я докину их список) Нужно, чтобы таблицы выводились по одной в зависимости от нажатой кнопки в datagridview, и при этом должны работать три операции: добавление, редактирование и удаление строк еще поиск по полям нужно, но это не так важно.
У меня есть сейчас все три функции, но они работают только на первую таблицу. А как сделать так, чтобы проходила проверка, какая таблица открыта сейчас, и после этого работать с ней, я не знаю
собственно, в этом и заключается трудность. Подскажите, как её сделать?
662 1887182
>>887177

>Можно ли как-то обойтись без базы данных, регистрации и авторизации?



Можно, но без БД будет сложно. Воспользуйся бесплатными MongoDB или Firebase

>а значит нужно что-то вроде валидации емейла,


и ещё и каптча.

Email не нужен. Какой от него толк если его заменить можно за пару минут?

Капча подключается за пару минут. Сохраняй в бд IP отправившего, сообщение и сделай лимит на количество сообщений с одного IP.
16085948630230.jpg125 Кб, 576x768
663 1887207
Есть одно решение в вижуал студии.
1) Можно как-то сделать чтобы при сборке одного проекта в решении собиралось автоматически другое (dll)?
2) Можно как-то сделать гит для всего решения, а не для отдельных проектов? А то я как лох открываю по отдельности проекты в решении чтобы закомитить.
664 1887226
>>887178
ничего не понял, покажи картинки
665 1887232
>>887182

>Можно, но без БД будет сложно.


Насколько я понимаю, можно вместо таблиц - сделать кучу папок, с названиям таблиц, а вместо данных в строках таблиц - писать JSON-файлы в эти папки. А уже в софтине прописать всю хуйню, чтобы работало как база данных. Но это не точно.

>Воспользуйся бесплатными MongoDB или Firebase


А они опенсорц или не?

>Email не нужен. Какой от него толк если его заменить можно за пару минут?


Ну, наверное - чтобы было куда ответить?

>Капча подключается за пару минут.


Есть где-то каптча на шарпе, или ты про гуглокаптчу?

>Сохраняй в бд IP отправившего,


>сообщение и сделай лимит на количество сообщений с одного IP.


А если форма в TOR'e, чтобы IP-сервера не палить, и юзеры ломятся через TOR, нахрена сохранять IP шлюзов TOR'a, если они - фейк?
Но ты прав, тут скорее надо не лимит на количество сообщений, а лимит на количество сообщений за определённый период, чтобы не срали вводя каптчу.
666 1887238
>>887232

> вместо таблиц - сделать кучу папок, с названиям таблиц, а вместо данных в строках таблиц - писать JSON-файлы в эти папки.


А ещё можно вместо автомобиля купить два велосипеда, сварить вместе и сверху лист кровельного железа приебнуть.
667 1887279
>>887232
Бля, нанобордо-шизик, может ты уже начнёшь подписывать каждый свой пост, чтобы нормальные люди на тебя времени не тратили?
668 1887331
>>887118
Я шарпист в Украине. Работа есть, перспективы есть.
669 1887418
>>887135
Паша, с такими вопросами надо в гугл. Там ещё и древний фреймворк 4, про который уже никто не помнит. Возможно какие-то библиотеки друг с другом конфликтуют, надо совместимые версии искать.
670 1887421
>>887207
Иди тьюториалы учи. То что тебе нужно работает из коробки по умолчанию. Причина, по которой оно работает как-то криво - ты сам.
1) Студия автоматом пересобирает изменившиеся проекты в открытом решении.
2) Весь код (решение и его проекты) должен храниться в одном репо (за исключением особых случаев).
671 1887434
>>886498
Ты пробовал поставить точку останова и пройтись по шагам? Так хотя бы будешь в отладке видеть где оно остановилось и какой у объектов стейт.
Ну и вообще, я вот загуглил пример с сайта MS т.к. не пользовался никогда COM-портами. Вот, посмотри как они читают https://docs.microsoft.com/ru-ru/dotnet/api/system.io.ports.serialport?view=dotnet-plat-ext-5.0
672 1887438
>>887118
Я бы тоже советовал шарп. Но скорее из-за того что у него не такой зоопарк как в джаве, где у тебя куча систем сборок, нужно знать разношерстные фреймворки и вообще какой-то писос. Тут все просто: Как майкрософт решил - так ближайшие пару лет и будет. Удобно.
673 1887459
>>887178
Ну смотри, у тебя как-то же можно переключаться между таблицами. Можно. Вот при переключении - смотри как там назначается значение текущей таблицы в DataGreedView и просто добавь поле для хранения этого значения, допустим _selectedTable. А дальше в своих методах - бери значение этого поля и используй.
674 1887513
>>887418
Да там проблема из-за за конфликтов. Запустить только через powerShell можно
675 1887652
>>887421

> Весь код (решение и его проекты) должен храниться в одном репо (за исключением особых случаев).


Охотно верю, на что нужно нажать в вижуал чтобы это сделать?

> Студия автоматом пересобирает изменившиеся проекты в открытом решении.


Я вкурсе, в том то и дело что мне и не нужен весь солюшн, а только конкретный проект. Я тыкаю обычно ф5 и собирается текущий проект.
676 1887707
>>875081
Я писал на нем небольшой проектик, но всё же это не так удобно как MVC. Пару страничек - да, если больше то упираешься в проблемы с путями и код быстро захламляется параметрами.
677 1887713
Хм.
Кто-то пользовался бесплатной Azure?
Допустим я хочу для "портфолио" замутить веб-приложение. А т.к. нищук - ищу бесплатные способы. Ну, собственно, я погуглил, фронт решил на гитхаб-пейджес закинуть. Теперь вот думаю о том чтобы АПИ намутить какой-нибудь. Загуглил. Вроде в азуре можно 10 веб-апишек и какую-то их NoSql бд использовать безлимитно. Конечно, там ограничения на число обращений в месяц и все такое. Но маленький CRUD, который только я буду использовать, я думаю должно хватить.
Вот и вопросы по поводу всего этого дела.
Есть ли какие-то подводные камни в такой вот связки, в контексте не реального проекта, а "портфолио"? Нужно ли какие-то дополнительные телодвижения будет совершать для того чтобы это вместе функционировало, кроме настройки веб-сервера на прием запросов с гитхаба?
Вообще, кто-нибудь такое делал?
Может там какие-то подводные камни есть?
image.png33 Кб, 740x232
678 1887765
Такие условия можно иначе делать? В C# вроде бы есть is in, но думается не такой он как в питоне. Да и просто is не срабатывает.
679 1887792
>>887232

> Насколько я понимаю, можно вместо таблиц - сделать кучу папок, с названиям таблиц, а вместо данных в строках таблиц - писать JSON-файлы в эти папки. А уже в софтине прописать всю хуйню, чтобы работало как база данных. Но это не точно.


Да, пропиши, блядь, constraint к папкам, еще индексы на них посчитать не забудь и расширение для ef к своей папочной дб не забудь написать для комфортной работы. Нахуй нам SQLite? У нас есть папки
680 1887806
>>887765
is в С# используется для проверки типа объекта.
Твою лапшу из || лучше заменить на switch в которых все сравнения будут case'ами ведущими к одному результату
20201223091515.jpg47 Кб, 748x453
681 1887828
Спасибо дядь Вов, посжимал byte array.
Алсо, кто-то мне укажет где я мог проебаться? .net 4.0 - compressionLevel'a у меня нету.
Или может есть какая-то платиновая либа для сжатия байт массивов?
682 1887855
А все, разобрался - у меня был шифрованный массив, поэтому он нихуя не сжимался.
У меня теперь другой вопрос - есть на nuget'e библиотека DotNetCompression. У них на офф сайте при загрузке - написано 30 days trial, и всякие тарифные планы.
Вопрос - что мне по идее может быть если я просто качаю либу с нугета? Мне в один день в апликухе вылетит эксепшн с в.в.пыней - плоти налог или как это работает?
1583060936903.jpg539 Кб, 2048x1942
683 1887927
Посоветуйте пожалуйста годных ресурсов для изучения ASP.NET Web Forms
684 1887937
>>887792
Что вообще надо для вката в SQLite на .NET Framework?
Я вот создал таблицу, забил значения в неё, прочитал, и даже вывели их вроде норм.
Дальше пытаюсь создать таблицу с блобами, записать туда байты и прочитать их из базы.
А оно мне вот такую хуйню выдаёт:

>Cannot set CommandText while a DataReader is active


типа предыдущая таблица ещё читается ридером, а ты пишешь новую? Хуй тебе, хуй тебе, ХУЙ ТЕБЕ. Бля. Не пашет ваша сиквелайт - хочется удалить всё нахуй и разломать комп.
685 1887945
>>887927
Метанит
686 1887978
>>887828
Наверно проебался в мутациях массива.
687 1888257
Сап, мужики. Это нормально, что я вот брожу по собесам (через зум, спасибо короне) и с меня всегда спрашивают как с фулстака? Минимум по жс гоняют, иногда реакт. Причем в вакансиях ничего такого в требованиях нет. Или по дефолту дотнетчик должен и фронт знать? я даже жс не знаю то особо
вкатун
688 1888274
Челики нужна базовая помощь.
Есть задание но не могу понять возможно ли его реализовать в c# или это для любителей Java ?

- привести разницу между методом isPresent(isExisted) и isDisplayed

- реализовать кастомное ожидание на метод isEnabled(это должен быть вызываемый метод)
- реализовать кастомное ожидание на метод isDisplayed(это должен быть вызываемый метод)
689 1888288
>>888257
Нормально. Даже если спрашивать не будут, по факту тебе придется и фронтенд делать. Так уж в .net'е повелось.
690 1888293
>>888288
Прям фронтенд вот верстать по макетам джуну тоже придется?
Эх, говорили одногруппы в питон с джангой идти.
691 1888297
>>888293
Бывает и исключительно бекенд, и чуть-чуть фронтенда, но фулстек - вполне себе норма.
692 1888298
>>888293
И да, на джуна фронт в первую очередь будут спихивать.
693 1888299
>>888293
Ну, лично по моему опыту - собирать прототипы на каком-нибудь SPA-фреймворке. Дальше обычно уже специально обученный фронтендер будет.
Да и не ссы, если ты дотнет освоил, то освоить JS не должно составить особых проблем.
image10 Кб, 1152x648
694 1888335
Помогите решить проблему, если её возможно решить, у меня уже крыша едет. У меня есть 3д-цилиндр, нарисованный через впф. Этот цилиндр у меня крутится, я движением мыши вверх и вниз могу его прокрутить и посмотреть на другую сторону. Вроде бы всё замечательно. На одной стороне прокрутка как и полагается происходит на меня, но при повороте на другую сторону она уже выглядит так, как-будто происходит ОТ меня. Происходит это оттого, что я как бы продолжаю смотреть на другую сторону и, соответственно, то же самое движение визуально прокручивает её на себя для другой стороны. Привязка для этого вращения у меня осуществляется через одно единственное поле. Значение для этого поля я передаю из эвентов, где я смотрю, сколько накрутили и в какой направление, чтобы понять, насколько крутить и в какую сторону. Направление определяется знаком + или -.
Как я это попытался решить. Я определяю, перешли мы на другую сторону или нет и если перешли, то значение поля я делаю отрицательным и, соответственно, цилиндр и на другой стороне начинает вращаться НА меня. Всё было бы хорошо, но, так как я это поле делаю отрицательным, то мне показывается не то что должно, а противоположная сторона. То есть, я накрутил на 90 градусов, повернул на другую сторону и мне показывает не -90(270) градусов, а 90 соответственно. То есть, если я делаю одно, то ломается другое. И как это сделать я не понимаю вообще. Надеюсь кто-нибудь поймёт, что я имею ввиду.
1582673361175.png566 Кб, 1280x1200
695 1888379
>>887945
нет там гайдов по web Forms
696 1888486
>>887652
Если ты работаешь с гитом через VS, то иди гуляй. С гитом надо работать через консоль. Или хотя бы понимать что твоя ГУИ тулзяка делает behind the scene.
697 1888489
>>887713
Я пару проектов выкатывал через Azure для тестовых заданий, чтобы нанимающая компания могла с моим приложением поиграть. Единственный косяк - через месяц они начинают требовать кредитную карточку, чтобы в случае если ты вышел за пределы бесплатных ресурсов с тебя начали снимать денюжку. А с пониманием что там платно, а что нет - очень сложно.
698 1888544
>>887937
Запили на гитхабе репу с твоим кодом. Посмотрю
Блобы, если они большие, в том числе изображение, можно хранить как раз таки в папке, а в базе – путь к ним

> для вката


Ты хотя бы sql до join изучил? Если используешь ef и подход code first, когда ты из кода бд генеришь, то можешь и не знать. Но в дальнейшем без sql будет плохо
699 1888551
>>887927

> WebForms


Зачем?
700 1888553
>>888274

> Кастомное ожидание


Можно подробнее, что ты хочешь?
701 1888583
>>888553
Как можно по другому реализовать эти свойства?
- реализовать кастомное ожидание на метод isEnabled(это должен быть вызываемый метод)
- реализовать кастомное ожидание на метод isDisplayed(это должен быть вызываемый метод)

Нужно создать как то по своему их реализацию. Вот задание такое скинули. Когда спросил что сделать сказали нужно как то по своему их реализовать. Может при помощи явного и неявного ожидания типа ?
702 1888587
>>888551
по работе нужно, я же не долбоеб, что бы по собственному желанию в говне мамонта копаться
703 1888610
>>888587
Ну ладно, я уж думал, ты чего напутал и решил свежачком обмазаться. По литературе не поскажу, разве что какие-нибудь старые книжки искать, как сейчас есть Pro Asp.net
>>888583

> Как можно по другому реализовать эти свойства?


> - реализовать кастомное ожидание на метод isEnabled(это должен быть вызываемый метод)


> - реализовать кастомное ожидание на метод isDisplayed(это должен быть вызываемый метод)


Так свойства или методы?
Кастомное ожидание – это какое? Какие параметры должны кастомизироваться?
Как ты представляешь сигнатуру какие параметры в него можно передать метода, если уж это метод?
Такое ощущение, что либо ты что-то не понял, либо задание составлял какой-то дебил
704 1888666
>>888610

>Такое ощущение, что либо ты что-то не понял, либо задание составлял какой-то дебил



Не исключаю два варианта ))

Но по факту, насколько я знаю в .net нету методов таких, но есть свойства Dispose и Enable. То есть исходя из задания, нужно создать какую то кастомную проверку, на какие то элементы страницы ориентируясь на эти свойства
705 1888702
>>888666
Ну ты разберись – свойства или методы тебе нужны. Набросай примерно, как это все должно фунциклировать, просто на словах, как это видишь. Пока сложно что-то сказать
706 1888713
>>888702
Методы я такие в C# не нашел такие в Java есть

Ну я вижу так создать метод в параметры ему передавать элемент страницы который нужно проверить на наличие. В методе реализовать explicit wait и если данный элемент отобразился возвращать true если нет false.
Примерно так думаю.
707 1888826
>>888713
Можно ссылку на методы из явы?
Explicit wait – это Thread.Sleep() или Task.Delay()?
708 1888828
>>870468 (OP)
Как сконвертировать portable.exe в ELF, чтобы на линуксе запускалась вся эта портабле-заебатость?
709 1888832
>>888828
dotnet hui.dll
Дллку в папке найдешь
710 1888850
>>888544

>Запили на гитхабе репу с твоим кодом. Посмотрю


А что туда впаять? Сорец SQLite залить, или просто код примера-теста?
Если второе, то: это был просто код отсюда: http://zetcode.com/csharp/sqlite/
из секции

>C# SQLite create table


затем она читалась вот так:

>System.Data.SQLite.SQLiteDataReader dr = read(cmd, "SELECT * FROM cars");


>while (dr.Read()){


> Console.WriteLine("ID: {0} , Car Pet Name: {1}, price: {2}",dr[0],dr[1],dr[2]);


>}


плюс ниже, ещё - код отсюда: https://stackoverflow.com/a/625485
Чтобы протестить блобы.

Но я уже разобрался. Пока reader занят, нельзя изменить cmd.CommandText,
поэтому надо было взять con и cmd в два using'а при записи-чтении таблицы,
и так же само - в два using'а, при записи-чтении байт-BLOB'а,
и внутри ещё - открыть соединение с базой, потому что после юзинков она закрывается.

У меня вчера так подгорало от всего этого, пиздец. Но по тихоньку разбираюсь.

Хотелось бы создать репо какое-то, чисто для гонева, чтобы срать там кодом,
и сделать короче примеры там, для всех кейсов, что-то вроде тестов,
ну, чтобы из их кода было очевидно как юзать эту либу.

>Блобы, если они большие, в том числе изображение, можно хранить как раз таки в папке, а в базе – путь к ним


Вообще, изначально, я хотел протестить, как работает запись и чтение блоба,
а в будущем, например, хранить зашифрованные пароли, байтами,
вместо того чтоб конвертить их в hex и хранить как TEXT...
Но, глядя на эти лимиты для текста и блоба, туда и картинки могут в base64, без проблем залезть: https://www.sqlite.org/limits.html
Но бейс это громоздко, поэтому blob.

Ты прав, и быть может, лучше файлы хранить как файлы, потому что база может задамажится,
но с другой стороны, в треде про СУБД, аноны говорят, что в БД главное НАДЁЖНОСТЬ ДАННЫХ, чтобы их не проебать.
К тому же, как я понял, база, может ещё и реплицироваться, и синхронится по сети,
а если файлами хранить, то для их раздачи придётся открывать общий доступ к папке, или шарить её,
и по одному давать возможность выкачивать.
Я думаю, лучше сделать таблицу хэш-блоб, и расшарить базу по сети, через TOR,
чтобы как в torrent'e, по magnet-ссылкам, можно было, подключившись к рандомной базе,
по хэшу файла, сразу найти его в базе и тут же - выкачать файл из децентрализованной сети.
С другой стороны, раздувать базу блобами - хуита, особенно если её начнут вайпать файлами.
Поэтому, лучше, наверное, там хранить просто хэш и относительный путь, а файл отдавать с расшаренной папки.
Но тогда, файл (в смысле контент) - он может быть тупо подменён, где-то, и отдасться говно, а не годнота,
а в базе данных такая хуйня исключена, там целостность данных - превыше всего.
Пиздец дилемма, короче. Бггг.

>Ты хотя бы sql до join изучил?


Нихуя я не изучил, я только вкатываюсь.
Но потихоньку разбираюсь уже, вроде как, после этой статьи: https://proglib.io/p/sql-for-20-minutes
А с чего начать грызть это дело, чтобы досконально знать? Слышал, что в даже тьюринг-полноту может сиквел, бггг.

>Если используешь ef и подход code first, когда ты из кода бд генеришь, то можешь и не знать.


>Но в дальнейшем без sql будет плохо


Не, "ef"(Entity Framework) и "подход code first" это всё, пока - вообще дремучий лес.
Тот код, вышеописанный, который от котрого вчера мне пердак припекло,
это был тупой тест методов System.Data.SQLite, списка методов которого я не вижу.
Как я понял, это провайдер ADO.NET, и там над SQL-запросы фомулировать, и пихать, прямым текстом, в команды.
Я даже, для этого, свои методы нагородил уже, блядь, чтобы просто SQL туда совать, и не дублировать нихуя после неё.
710 1888850
>>888544

>Запили на гитхабе репу с твоим кодом. Посмотрю


А что туда впаять? Сорец SQLite залить, или просто код примера-теста?
Если второе, то: это был просто код отсюда: http://zetcode.com/csharp/sqlite/
из секции

>C# SQLite create table


затем она читалась вот так:

>System.Data.SQLite.SQLiteDataReader dr = read(cmd, "SELECT * FROM cars");


>while (dr.Read()){


> Console.WriteLine("ID: {0} , Car Pet Name: {1}, price: {2}",dr[0],dr[1],dr[2]);


>}


плюс ниже, ещё - код отсюда: https://stackoverflow.com/a/625485
Чтобы протестить блобы.

Но я уже разобрался. Пока reader занят, нельзя изменить cmd.CommandText,
поэтому надо было взять con и cmd в два using'а при записи-чтении таблицы,
и так же само - в два using'а, при записи-чтении байт-BLOB'а,
и внутри ещё - открыть соединение с базой, потому что после юзинков она закрывается.

У меня вчера так подгорало от всего этого, пиздец. Но по тихоньку разбираюсь.

Хотелось бы создать репо какое-то, чисто для гонева, чтобы срать там кодом,
и сделать короче примеры там, для всех кейсов, что-то вроде тестов,
ну, чтобы из их кода было очевидно как юзать эту либу.

>Блобы, если они большие, в том числе изображение, можно хранить как раз таки в папке, а в базе – путь к ним


Вообще, изначально, я хотел протестить, как работает запись и чтение блоба,
а в будущем, например, хранить зашифрованные пароли, байтами,
вместо того чтоб конвертить их в hex и хранить как TEXT...
Но, глядя на эти лимиты для текста и блоба, туда и картинки могут в base64, без проблем залезть: https://www.sqlite.org/limits.html
Но бейс это громоздко, поэтому blob.

Ты прав, и быть может, лучше файлы хранить как файлы, потому что база может задамажится,
но с другой стороны, в треде про СУБД, аноны говорят, что в БД главное НАДЁЖНОСТЬ ДАННЫХ, чтобы их не проебать.
К тому же, как я понял, база, может ещё и реплицироваться, и синхронится по сети,
а если файлами хранить, то для их раздачи придётся открывать общий доступ к папке, или шарить её,
и по одному давать возможность выкачивать.
Я думаю, лучше сделать таблицу хэш-блоб, и расшарить базу по сети, через TOR,
чтобы как в torrent'e, по magnet-ссылкам, можно было, подключившись к рандомной базе,
по хэшу файла, сразу найти его в базе и тут же - выкачать файл из децентрализованной сети.
С другой стороны, раздувать базу блобами - хуита, особенно если её начнут вайпать файлами.
Поэтому, лучше, наверное, там хранить просто хэш и относительный путь, а файл отдавать с расшаренной папки.
Но тогда, файл (в смысле контент) - он может быть тупо подменён, где-то, и отдасться говно, а не годнота,
а в базе данных такая хуйня исключена, там целостность данных - превыше всего.
Пиздец дилемма, короче. Бггг.

>Ты хотя бы sql до join изучил?


Нихуя я не изучил, я только вкатываюсь.
Но потихоньку разбираюсь уже, вроде как, после этой статьи: https://proglib.io/p/sql-for-20-minutes
А с чего начать грызть это дело, чтобы досконально знать? Слышал, что в даже тьюринг-полноту может сиквел, бггг.

>Если используешь ef и подход code first, когда ты из кода бд генеришь, то можешь и не знать.


>Но в дальнейшем без sql будет плохо


Не, "ef"(Entity Framework) и "подход code first" это всё, пока - вообще дремучий лес.
Тот код, вышеописанный, который от котрого вчера мне пердак припекло,
это был тупой тест методов System.Data.SQLite, списка методов которого я не вижу.
Как я понял, это провайдер ADO.NET, и там над SQL-запросы фомулировать, и пихать, прямым текстом, в команды.
Я даже, для этого, свои методы нагородил уже, блядь, чтобы просто SQL туда совать, и не дублировать нихуя после неё.
711 1888853
>>888832
dll не exe, а надо exe, и ещё и portable, и чтобы elf был портабле, и вообще любой exe.
712 1888871
>>887459
Спасибо, анон!
image.png135 Кб, 1492x597
713 1888977
>>888826
Вот Java метод isDisplayed().

>Explicit wait – это Thread.Sleep() или Task.Delay()?


как я понимаю это Thread.Sleep()
714 1889012
>>888977
Да, пушо эта команда Thread.Sleep() тормозит всю программу.
В то время как в течении Task.Delay() программа может исполнятся, но подтормаживается запуск задания. То есть это неявное (implicit) ожидание,
а Thread.Sleep() явно (Explicit) торозит всё (wait), нахуй: https://stackoverflow.com/a/34052540
715 1889074
>>887978
В каких еще мутациях?

Как вообще работает сжатие байт массива? Заюзал компрешн дот нета - на 580мб может сжалось от силы мегабайтов 10. Что я делаю не так? В байт массиве jpg пикчи. Как их еще можно сжать (как файл, а не как шакалы)?
1474722679942.webm342 Кб, webm,
280x240, 0:04
716 1889089
>>870468 (OP)
Ёбаный рот вашего дотнета. Помогите понять логику индусов.
Вот есть Windows 10. Всё новое API WinRT прибито к UWP. Допустим мне нужно Windows.Graphics. Пока всё отлично с UWP.
Так же есть .NET Standard, специально сделан чтоб поддерживался всем чем можно. Я хочу использовать либу на нём, она естественно на самой свежей версии - 2.1.
И вот тут я не могу понять шутки. UWP не поддерживает .NET Standard 2.1! UWP не поддерживает .NET 5.0!
Так как мне использовать API дриснятки и их "универсальный" .NET Standard? Алло, индусы! Как, блять, либу из Nuget поставить?
Пока что вижу только вариант накостылить два отдельных процесса под UWP и всё остальное.
В доках к .NET Standard 2.1 уже полтора года написано что поддержка UWP "будет когда-нибудь в будущих релизах"...
В 20H2 так ничего и не завезли...
717 1889094
>>889074

>В каких еще мутациях?


У тебя ссылка на массив QuestionPicture передается в метод Compress и потом в метод Write, т. е. изменения этого массива в методе Write, если этот метод его изменяет, отразятся в любом другом месте приложения в которых ты массив QuestionPicture использовать будешь. Но причина не в этом, а в том что ты CopyTo используешь вместо Read при распаковке в методе Decompress.

> на 580мб может сжалось от силы мегабайтов 10.



Это от формата зависит, лучше всего сжимается текст, jpg сжимается плохо, в случае картинок лучше использовать конвертацию в другой формат, например в webp.
718 1889096
>>889074
И сжимать нужно не массив из картинок, а каждую картинку по отдельности.
719 1889140
Кто сталкивался с подобным.
В проекте коменты на русском языке отображаются нормально а когда заливаю их на гит то иероглифы ебаные.
Что делать как победить этот момент?
image.png21 Кб, 1255x196
720 1889141
Вот так в гите
721 1889152
>>889096
Я по отдельности и сжимаю.
>>889094
Я нигде его больше не использую, метод для теста.

> CopyTo используешь вместо Read


А какая разница в этом контексте?
Без названия.jpeg14 Кб, 212x238
722 1889154
723 1889175
>>870468 (OP)
Привет, аноны.
Есть у меня АСП НЕТ проект, у которого на дефолтной форме два хтмл-бокса для текста.
Как мне из одного текстового поля хендлить текст, передавать его в функцию, которая на него выдаст новый текст, подаваемый во второе поле?

Сори за тупой вопрос, не требую решать за меня, просто даже хз как гуглить, выдаёт вообще не то, что нужно.
724 1889178
>>888853

> dotnet publish -f=твой_фреймворк -r=целевой_рантайм -c=Release --self-contained

725 1889216
>>889175
асп нет это вообще бекенд, а формы у тебя на каком-нибудь блейзоре или разор пейджс
726 1889227
>>889216
То есть .aspx это не формы?
727 1889255
Можно как-то запустить на WPF'e DispatcherTimer асинхронно?
728 1889272
>>889089
Че тут непонятного-то? .net standard и .net5 для другого делались. Они нужны чтобы общий костяк фреймворка вынести на более-менее кросплтаформенные рельсы, чтобы можно было пилить .net хуйню и без лишних танцев с бубнами запускать на серверах с линуксами. И с этой задачей они справляются.
Вот серьезно, подумай, какой процент ПО сейчас пилится исключительно под десктоп, еще и привязанный только к винде? Да и кому нахуй нужно приложение, которое будет оффлайн работать? А так, ты запилил на .net приложение, захостил его, фронт на каком-нибудь электроне за 2 недели сделал, и все довольны.
729 1889281
>>889227
Просто скажи какой шаблон ты выбирал при создании проекта, тогда тебе смогут помочь.
730 1889288
>>889255
Что ты под "запустить асинхронно" подразумеваешь? Ну создай Task и запускай в нём DispatcherTimer, будет тебе асинхронно, асинхронного аналога метода Start() у DispatcherTimer нет. Но в этом смысла нет, потому что запуск не занимает много времени.
image18 Кб, 937x444
731 1889289
>>889281
ASP .NET Web Application
При создании содержал форму default.aspx и мастер-страницу Site.Master

Я уже почти сам разобрался

Нужен был серверный элемент asp:Button с атрибутом OnClick = %function%

Уже пишу функцию
732 1889290
>>889272

> There are various implementations of .NET. Each implementation allows .NET code to execute in different places—Linux, macOS, Windows, iOS, Android, and many more. .NET Standard is a formal specification of the APIs that are common across all these .NET implementations.


При этом на основной платформе индусов приходится сосать хуи. Это доходит до абсурда - есть либы строго под десятку на Standard, но к UWP не прикрутить просто потому что. А ведь по мнению самих индусов, UWP - это основной гуй десятки, на который всё переводят. Я просто не могу понять логики индусов, когда они пилят кроссплатформенность уровня джавы чтоб на любом чайнике запускать, но не могут осилить даже совместимость с Виндой.
Вот .NET 5 не для этого делали, но на него и похуй, я ссылался на него потому что он совместим с .NET Standard.
А знаешь что самое смешное? .NET Standard 2.1 работает с Xamarin!
image15 Кб, 756x401
733 1889291
>>889289
Вот как функция взаимодействует с аттрибутами хтмл-элементов, если кому вдруг нужно.
734 1889293
>>889289
Значит ты Razor используешь.
Вот этот туториал прочитай:
https://docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages/

И всё понятно будет.
735 1889294
>>889293
Понял, спасибо за ответ.
Не знал, что там по умолчанию какие-то разоры использовались.
736 1889296
>>889293

> Razor


А как там вообще это говно поживает? Всё ещё медленнее жс и тянет с собой 5 мб бинарников?
737 1889299
>>889291
Хуитищща. При клике на кнопку идёт медленный и тяжёлый поиск элементов. При каждом клике. Представляю, как будет всё тормозить с таким подходом.

Выноси поиск в геттеры, при первом вызове геттера, как все нормальные люди.
738 1889304
>>889296
Ты наверно с Blazor путаешь, Razor всё на стороне сервера делает, клиент получает готовый HTML, всё остальное по старинке на JS и CSS делает.
Про Blazor знаю только что его активной майки продвигают (даже стримы на Твиче делают на которых объясняю ньюфагам как с ним работать) и вроде говорят, что с каждым обновлением он всё быстрее и лучше.
image16 Кб, 866x720
739 1889312
>>889299
Вот так что ли? Не совсем понятно, как это использовать.
740 1889315
>>889089
Вот это справедливый доеб. Без бутылки не разберешься
По итогу просто не пользуешься UWP и прочей декстопной дребеденью. Мобилки? Ну там придется поебаться. Я бы предпочел флаттер.
На дотнете удобно пилить бекенд, удобно делать сайты на разоре, сейчас еще и блазор завезли.
741 1889333
>>889288
Дело в том что у меня при фризе формы фризиться сам таймер. У меня на форме загрузка с бд картинок и если быстро их переключать то будет как в том меме Unfortunately Time has stopped. А лейбл на форме я уже обновляю через invoke, правда толку в этом мало.
742 1889344
>>888850
Через еф будет удобнее и и ридеры не нужны. Ебался на одном проекте с ними. Ебучие экспешены валились хуй пойми откуда, там еще предыдущий программист учился, блядь, на продуктовом коде многопоточности и, как водится, обосрался, заложив пару мин в код. Заложил и уволился. Следом с этим кодом работал аналитик, который не учил шарп, просто накопипастил пару методов, подправив название и пару строчек кода, получил требуемый функционал, да только не учел, что состояние все на флагах и не потокобезопасное
Достался мне этот кусок дерьма с классами по две тысячи строк
Нахуй эти ридеры, решительно. Особенно при живом entity framework – где все просто и понятно, и можно даже sql не знать.

Сам можешь поиграться, только в прод не тащи эту парашу
743 1889345
>>889333
Ну так тебе нужно загрузку из бд делать асинхронной, чтобы она не занимала UI поток. Таймер здесь ничем не поможет.
744 1889346
>>889312
private string myProperty;
public string MyProperty
{
get
{
if (myProperty == "")
{
myProperty = form.FindControl("MyProperty1");
}
return myProperty;
}
}
745 1889350
>>889346
А, бля, понял. Я этот код вставляю в начало aspx.cs файла, и все нужные мне впоследствии атрибуты находятся и задаются при прогрузке страницы, а не когда я в них непосредственно начинаю нуждаться.

Хотя стоп, как мне это поможет с текстовым содержанием, которое пользователь потом вводит?
746 1889354
>>889345
Асинхронной или в другом потоке?
Означает ли асинхронность, что у нас есть евент луп, и мы в эту залупу вставляем задачи, кхмм. Эта лупа постоянно скачет во внутреннем цикле по задачам? То есть даже на одном потоке можно получить плавный интерфейс, пока что-то долго загружается?
747 1889370
>>889350
В сеттерах отправляешь на страницу. В геттерах получаешь со страницы. Но только если есть изменения. Таким образом, несколько геттеров подряд сработают быстро. А вот сеттеры нет. Тут надо сложнее делать. С кэшированием заморачиваться.

И вот сеньоры программисты ебались есбались с этим и изобрели MVVM! DataBinding и другие страшные слова.
748 1889409
>>889354

>Асинхронной или в другом потоке?


Асинхронность не подразумевает использование одного потока, выполнение до await и после await может происходить в рамках разных потоков, также как и запуск одной асинхронной фукнции несколько раз подряд без использования await.

>Означает ли асинхронность, что у нас есть евент луп, и мы в эту залупу вставляем задачи, кхмм. Эта лупа постоянно скачет во внутреннем цикле по задачам?



В случае асинхронности - нет. В случае WPF - да, так как всё связанное с интерфейсом происходит в рамках одного потока. Вот ты в рамках этого потока обращаешься к базе данных, поэтому тебе нужно либо делать подобные обращения асинхронными, чтобы поток UI освобождался и мог перерисовывать интерфейс и делать другие задачи, либо обращаться к бд в отдельном потоке и полученные данные передавать в поток UI при помощи Invoke диспетчера.

>То есть даже на одном потоке можно получить плавный интерфейс, пока что-то долго загружается?



Да, если загрузка идёт асинхронно. Либо если ты одну задачу разбиваешь на несколько и выполняешь эти задачи с определенной задержкой. По такому принципу в браузере всё работает.
749 1889416
>>889409
Спасибо. То есть await перед вызовом функции ставит задачу в другой поток, а текущий – освобождает?
750 1889426
>>889416
Он ставит задачу в очередь выполнения, а каким потоком выполнится задача зависит от контекста синхронизации и пула потоков.
751 1889657
>>870468 (OP)
Не нашел в шапке задам сюда, глупо но извините:

До шарпа изучал С/С++ достаточно долго. Играет ли это роль в освоении шарпа? Или у меня такой же уровень знаний как у человека, который вообще никаких языков не изучал?
752 1889705
>>889657
Зависит от того на каком уровне ты изучал. И что в процессе изучения делал.
Если что-то сложнее калькулятора сам писал на С++, еще и ООП использовал, то шарп для тебя будет выглядеть скрее как: А как эти штуки в шарпе делаются. А это намного выше чем: Вообще никаких языков не изучал.
Ну, т.е. тебе останется посмотреть стандартную библиотеку, чтобы велосипедов не горадить, некоторые особенности языка, такие как свойства, делегаты, события и т.д.ну и шарповский туллсет, понять как устроен nuget и csproj
753 1889711
>>889705
Понял, спасибо
754 1889746
>>889657
Играет. Вот я после JS шарп учить начал, так пришлось всё переосмысливать, потому что и не знал особо чем объект от массива отличается в плане хранения в памяти.
755 1889793
Как получить название директорий БЕЗ пути? Directory.EnumerateDirectotry и Directory.GetDirectories дают вместе с путем, а он мне не всрался
756 1889849
Если в конструкторе родительского метода делать проверку на является ли одним из дочерних методов - это будет работать?
757 1889854
>>889849
в смысле класса, не метода, тьфу
758 1889901
>>889705
Шарп после дельфи именно так у меня изучался, как ты описываешь. Ну и немудрено. Автор тот же самый же.
759 1889908
>>889178

>любой exe

760 1889930
>>889908
Нет, любой нельзя. Только твой. И только для целевой платформы. Будет нативный эльф в линуксе, внутри которого будет содержаться копия фреймворка вместе с твоим хеллоуворлдом. И для шындовса придётся сделать отдельный паблиш. И в нём будет нативный ПЕ в виндовсе, внутри которого будет содержаться копия фреймворка вместе с твоим хеллоуворлдом.
761 1889951
>>889849
Кто не является? Приведи в порядок мысли в своей голове, сформулируй какого результата ты хочешь добиться, опиши ситуацию максимально подробно.
762 1890143
>>889793
Path.GetFileName(path)
763 1890356
Как при переключении в tabControl на WPF элементы с других таб контролов не показывались?
764 1890378
Microsoft и Azul портируют OpenJDK на новый процессор Apple Silicon M1
А дотнет когда нативно портируют?
765 1890384
>>890378
дык его тоже портируют туда же.
766 1890479
В некоторых видосах видел как при написании например
public string Message сразу добавляется { get; set; }
Как сделать так же?
image9 Кб, 832x174
767 1890508
>>870468 (OP)

Анончики, втф. Почему он пишет, что я не могу обратиться к объекту. При этом я находил код 2011 года, в котором написано именно так, и видимо он был рабочий.
image14 Кб, 584x309
768 1890538
>>890508
>>870468 (OP)

Что за хуета? Боже...
769 1890661
>>890479
prop + tab
770 1890748
>>890661
Шта? ну делаю так а оно мне новую переменную сразу создает.
771 1890849
Парни нужна помощь. Когда то нагуглил а сейчас не могу найти синтаксис передачи параметров в тест через терминал.
Там примерно так выглядит dotnet test -s ```(name)```(value)```
что то такое. помогите прошу очень
image.png27 Кб, 586x459
772 1892253
Анонче, вот пример с метанита.
Метод Factorial принимает в качестве параметра int x, а где он это принимает? Чет не врубаюсь.
773 1892264
>>892253
У метанита все , туториалы имеют вид мема "учимся рисовать сову". Забей еа это дерьмо и читай троелсена или шилдта
774 1892349
>>892253

> а где он это принимает? Чет не врубаюсь.


Там же и принимает.
parallel.for(принимает_от, принимает_до, кто_принимает);
16090677723550.jpg1 Кб, 94x78
775 1892365
>>892253
Начни лучше с троелсена, потом рихтером шлифани. Метанит – как краткий конспект, когда забыл синтаксис, но подсказки иде недостаточно информативны, а мсдн слишком многословен
776 1892402
>>870468 (OP)
Анончики, а по каким материалам лучше начать изучать ASP.NET Core? Основы c# я уже понимаю, хочется пойти дальше, а не клепать консольные приложения. Хочется сразу изучать свежачок .NET 5
777 1892411
>>892402
Стандартные туториалы на мсдн хорошо сделаны.
image.png795 Кб, 1500x2688
778 1892461
Еще поясните вот за метанит.
Правильно ли я понимаю что
Angular и ASP.NET Core - фронт энд
Руководство по ASP.NET Core - бекенд
Руководство по Web API это шо?
Руководство по ASP.NET MVC 5 - в чем разница 5 и 4?
Онлайн-книга Изучаем ASP.NET MVC 4

На метаните я смотрю че да как также еще в паре книжек тоже смотрю. Но вот сейчас вроде изучил немного сам c# а что дальше то делать? по sql еще читаю.

Родмап говорит что далее надо учить Entity Framework
А что читать то?
Книги это конечно хорошо но мне как то лучше читать метанит а потом если совсем не понятно читать книгу.
Что на метаните то читать?
Руководство по Entity Framework Core 3
Руководство по Entity Framework
В чем разница? Только версиях как и в версиях языка?
779 1892558
>>892461

>Что на метаните то читать?



Ничего. Максимум что ты из этого получишь - знания которые нужно будет в будущем забывать и переосмысливать.
780 1892581
>>892461

>Руководство по ASP.NET Core - бекенд


>Руководство по Web API это шо?



ну так есть бэкенд MVC где всякие вьюхи там, хтмл рендеришь, то есть мудришь полноценный вебсайт
а есть Web API где всякие там хитрожопые авторизации и отдаются данные обычно в json, то есть мудришь api
781 1892582
>>892461

> Angular и ASP.NET Core - фронт энд


Angular – фреймворк для JavaScript. Ты можешь писать на ангуляре в специальных IDE, и так даже будет удобнее. Например, в WebStorm.
Просто есть шаблоны проектов, где сборка ангуляра встроена в проект на дотнете. Это франкенштейн из WebApi на бекенде и фрондендонвского фреймворка в данном случае ангуляр, но может быть реакт или vue. В итоге получается не очень удобно – сборка js-проектов обычно не быстрая. Обычно ее запускают один раз, а потом пользуются горячей перезагрузкой, так как js – интерпретируемый язык и перекомпилировать его не нужно. А вот шарп нужно. И ты будешь страдать, когда надо что-то поправить в коде на шарпе. Короче, говно. Лучше писать бек и фронт отдельно.

> Руководство по ASP.NET Core - бекенд


Я не ебу, что там на метаните подразумевается под этим. Это искусственное разделение. 99%, что это тот же самый WebApi

> Руководство по Web API это шо?


Это руководство по вебапи, еб твою мать. Делаешь запрос на него – получаешь ответ. Все. Никакого графического интерфейса, просто данные туда-сюда ходят. Сохраняются в базу, обрабатываются, сохраняются в базу данных. Ты пройди уроки на мсдн, проще станет, заодно поймешь разницу между webapi, mvc, razor pages, blazor. Все успеть за день можно

> Руководство по ASP.NET MVC 5 - в чем разница 5 и 4?


Это легаси, забей хуй. Оно почти ничем не отличается от Core, только пара моментов сделано неудобнее, сам поймешь, когда въедешь в тему

> Онлайн-книга Изучаем ASP.NET MVC 4


Опять же, легаси. Там вроде было про Core – его и читай

> На метаните я смотрю че да как также еще в паре книжек тоже смотрю. Но вот сейчас вроде изучил немного сам c# а что дальше то делать? по sql еще читаю.


Про sql ты хорошо придумал

> Родмап говорит что далее надо учить Entity Framework


Там учить особо и нехуй, фреймворк очень удачный получился, но надо понимать, что ты работаешь с sql, а не с хуй пойми какой абстракцией. Так что как sql подтянешь, все станет понятнее. На метаните неплохо все описано

> Книги это конечно хорошо но мне как то лучше читать метанит а потом если совсем не понятно читать книгу.


Хуевая логика, метанит тебе не даст понимания сути происходящего. Это конспект

> Что на метаните то читать?


> Руководство по Entity Framework Core 3


Пойдет

> Руководство по Entity Framework


Легаси

> В чем разница? Только версиях как и в версиях языка?


Core – новая ветка, работает везде. Без Core – только под винду и больше не развивается. Нахуй не нужен. Если на работе появится необходимость, потратишь пару часов и изучишь нюансы. Если знаешь sql, проблем не возникнет
781 1892582
>>892461

> Angular и ASP.NET Core - фронт энд


Angular – фреймворк для JavaScript. Ты можешь писать на ангуляре в специальных IDE, и так даже будет удобнее. Например, в WebStorm.
Просто есть шаблоны проектов, где сборка ангуляра встроена в проект на дотнете. Это франкенштейн из WebApi на бекенде и фрондендонвского фреймворка в данном случае ангуляр, но может быть реакт или vue. В итоге получается не очень удобно – сборка js-проектов обычно не быстрая. Обычно ее запускают один раз, а потом пользуются горячей перезагрузкой, так как js – интерпретируемый язык и перекомпилировать его не нужно. А вот шарп нужно. И ты будешь страдать, когда надо что-то поправить в коде на шарпе. Короче, говно. Лучше писать бек и фронт отдельно.

> Руководство по ASP.NET Core - бекенд


Я не ебу, что там на метаните подразумевается под этим. Это искусственное разделение. 99%, что это тот же самый WebApi

> Руководство по Web API это шо?


Это руководство по вебапи, еб твою мать. Делаешь запрос на него – получаешь ответ. Все. Никакого графического интерфейса, просто данные туда-сюда ходят. Сохраняются в базу, обрабатываются, сохраняются в базу данных. Ты пройди уроки на мсдн, проще станет, заодно поймешь разницу между webapi, mvc, razor pages, blazor. Все успеть за день можно

> Руководство по ASP.NET MVC 5 - в чем разница 5 и 4?


Это легаси, забей хуй. Оно почти ничем не отличается от Core, только пара моментов сделано неудобнее, сам поймешь, когда въедешь в тему

> Онлайн-книга Изучаем ASP.NET MVC 4


Опять же, легаси. Там вроде было про Core – его и читай

> На метаните я смотрю че да как также еще в паре книжек тоже смотрю. Но вот сейчас вроде изучил немного сам c# а что дальше то делать? по sql еще читаю.


Про sql ты хорошо придумал

> Родмап говорит что далее надо учить Entity Framework


Там учить особо и нехуй, фреймворк очень удачный получился, но надо понимать, что ты работаешь с sql, а не с хуй пойми какой абстракцией. Так что как sql подтянешь, все станет понятнее. На метаните неплохо все описано

> Книги это конечно хорошо но мне как то лучше читать метанит а потом если совсем не понятно читать книгу.


Хуевая логика, метанит тебе не даст понимания сути происходящего. Это конспект

> Что на метаните то читать?


> Руководство по Entity Framework Core 3


Пойдет

> Руководство по Entity Framework


Легаси

> В чем разница? Только версиях как и в версиях языка?


Core – новая ветка, работает везде. Без Core – только под винду и больше не развивается. Нахуй не нужен. Если на работе появится необходимость, потратишь пару часов и изучишь нюансы. Если знаешь sql, проблем не возникнет
782 1892641
Как начать учить фреймворки? Шарп вроде более-менее понимаю, но полгода сижу и хуи пинаю, потому что посмотришь в сторону ASP.NET или WPF какого-нибудь - и аж хуево становится от объема самых базовых знаний. С этого >>892461 пика вообще выпилиться хочется, это ж ебнуться каким сверхчеловеком надо быть, чтобы это все знать.
783 1892652
>>892641

>этого >>892461 пика вообще выпилиться хочется



Там всё в кучу намешано - никто не будет работать со всеми SQL/no-SQL базами данных, выберут 1 SQL для больших проектов и 1 no-SQL для небольших. Какие-то знания узнают за одну книгу, например паттерны.
784 1892675
>>892652
Это-то понятно. Просто паттерны изучить - это легко, понятно, за пару вечерков с консолькой делается. А дальше идет адский пиздец, потому что чтобы просто устроиться работать за еду - изволь знать SQL, JS, CSS, ASP.NET, еще какую-нибудь хуйню сверху, паттерны знай, алгоритмы блядь, из головы умей их сложность оценивать, да соси хуй лучше любой проститутки. А как в это вообще вкатиться - хуй знает.
785 1892683
>>892675

> алгоритмы блядь, из головы умей их сложность оценивать


Вот это воще пиздец, как люди умеют в такую магию? У меня голова пухнет при попытке подумать об этом.
786 1892773
>>870468 (OP)
Можно как-то сбилдить в dll-ку, вот эту NoSQL базу данных - MemCached, позволяющую кэшировать JSON в виде пар ключ-значение: https://github.com/benapetr/memcached
Чтобы не exe-шник, после билда получить, а .dll
изображение.png136 Кб, 486x290
787 1893279
Сап, шарпач.
Поясните нубу, почему нужно дважды кликать на кнопку в WPF проекте, чтобы метод начинал работать?
Гуглил солюшн, не помогло.
Алсо, ещё проблема.
Через DispatcherTimer запилил повторение каждый указанный промежуток времени.
Также повесил на кнопку включение и выключение таймера.
Так вот, всё включается и выключается, но когда я включаю второй раз, то Repeat_Task выполняется дважды.
В какую сторону курить?
788 1893284
>>893279

>почему нужно дважды кликать на кнопку в WPF проекте, чтобы метод начинал работать?



Не нужно.

>то Repeat_Task выполняется дважды.



Потому что ты добавляешь обработчик Repeat_Task каждый раз когда срабатывает условие if
789 1893287
>>893284

>Не нужно.


Скажи это моей приложухе, она не реагирует на первый клик по кнопке.

>Потому что ты добавляешь обработчик Repeat_Task каждый раз когда срабатывает условие if


Можно ли мне убрать обработчики в else?
Как это сделать?
изображение.png1 Кб, 309x36
790 1893290
>>893284
Сделал, братюнь, получилось.
Добра тебе и твоей маме.
791 1893313
Сап, стаковерфлоу. Каким инструментом в wpf'e можно показывать на image картинку (image.Source) на определенное время (на секунду)?
Я пока нагуглил только такое:
Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate
{
Thread.Sleep(1000)
}));

Но во первых thread.Sleep мне абсолютно не подходит - UIшка должна быть жива, во вторых работает оно всрато, т.е. пикча может нормально на секунду засветиться, а может залагать и засветиться на 0.1 сек, правда это наверное из-за DispatcherPriority.
792 1893315
>>893313
А чем тебе dispatchertimer не устраивает?
23.jpg17 Кб, 703x167
793 1893334
Что означает underscore "_" в switch-case?
794 1893337
>>893315
А я уже сам нагуглил, спасибо. Сейчас буду ковырять и держать вас вкурсе.
795 1893340
>>893334
Просто название временной переменной. Так ещё обозначают out переменные передаваемые в метод.
796 1893367
>>893340
что за ебланское название переменной. И этот чувак еще (который со скрина) туторы пишет на ютубе
797 1893375
>>893367
Не нравится качество материалов? - Требуй вернуть деньги, уплоченные за курс.

Намёк понял?
798 1893392
>>893375
какой еще курс? Я на ютубе тутор по features .NET 5.0 нашел, посмотреть, что за глину добавили и наткнулся на такое
799 1893393
>>893334
Это как default в обычном switch-case, на твоём пике проверяются типы переменных, а не их значения, если тип Teacher то возвращает true, есди Student то false, если ни то ни другое, то false. Но сам код дерьмо, так как такого же эффекта можно было достичь написав:
IsTeacher(Person person) => person is Teacher;
800 1893402
>>893393
я уже понял как это работает, меня "_" засмущало, что за говнище блять. Нужно было вижлу сразу открыть и проверить через intelisense
801 1893403
>>893402

>"_" засмущало, что за говнище блять



А как иначе ты укажешь default значение в switch expression?
image.png6 Кб, 425x160
802 1893409
Почему это не работает?
803 1893442
>>893403
с lowercase название типа, так хотя бы будет интуитивно понятно. Хотя я думаю если с такой конструкцией часто работать, то можно понять, что это просто название переменной. # не трогаю пол года, уже глаз отвык видимо
изображение.png245 Кб, 2518x1132
804 1893560
Посаны, как заставить в dispatchertimer ждать выполнения таска, если время до тика истекло?
805 1893582
>>893560
Если ты думаешь, что кто то не понял твою проблему, то да - все не поняли
806 1893588
>>893582
Пихуй, я сам додумал.
Смари, поясняю.
На пикриле1 у меня вызывается Repeat_Task и работает всё нормально, если большой промежуток времени между тиками.
Но, если маленький промежуток, то Repeat_Task постоянно вызывается, не заканчивая выполнения по тику.
Решение проблемы на пикрил2.
807 1893631
>>893588
можно также запустить цикл с await Task.Delay
808 1893636
>>893631
Может же зафризить, не?
809 1893729
>>893367
Это временная переменная, она больше не нигде не фигурирует, буквально на пару строк. Это не один такой чувак, это даже решарпер такие переменные вставляет по дефолту в такие контексты.
810 1893792
>>893636
ConfigureAwait(false) и нечему фризить
811 1893795
>>893367
это не временная переменная
это https://docs.microsoft.com/en-us/dotnet/csharp/discards
и на нее даже память не выделяется
812 1893805
>>870468 (OP)
Подскажите годный GUI для SQLite на CShasp.
813 1893822
>>893805
то есть? что это такое должно быть?
что такое гуи склайт на шарп?
программ админок Sqlite валом, но причем тут шарп
814 1893879
>>893822

> но причем тут шарп


Да вроде как и не причём, ведь ему нужно для некоего
>>893805

> CShasp

image.png272 Кб, 500x260
815 1894282
>>870468 (OP)
Есть вопрос по индексации JSON.
Предоложим, есть огромная хэш-таблица key->value,
где value - текст, или blob в base64,
а key - хэш из всего этого дерьма.
Пусть эта хэш-таблица будет огромной-огомной,
и пусть она лежит в виде нарезанного на части - JSON-файла, не помещающегося даже в этот (пикрил), автобус с жесткими дисками.

Задача элементарна. Проиндексировать всю эту хуйню как-то, чтобы быстро найти нужный жесткий диск, кластер на нём, сектор, ну и собственно считать данные.
Ну и собственно вопрос: Как правильно выстроить индекс JSON-файла?
816 1894290
>>893822
>>893879
Ну смари, в общем, побомжевал я немного в гугле,
и нарыл-откопал вооооот такую шнягу:
https://lrepacks.ru/repaki-raznyh-programm/410-sqlite-expert-professional-repack-amp-portable.html
Там, внутри, овердохуя всяких свистоперделок,
но оно всё какое-то неопенсорцное,
и там, короче - используется прекомпиленная либа sqlite3.dll
На чём она написана - не пойму, походу на LUA, потому что там рядом lua.dll лежит.

Здесь: https://github.com/haf/System.Data.SQLite я вижу уже сорец какой-то,
но это провайдер для ADO.NET, как я понял, а гуя нет.

А вот здесь, я вижу уже некий простенький гуй, который позволяет просмотреть базу. https://github.com/devpractice-repo/SQLiteAndCSharp

>то есть? что это такое должно быть?


>что такое гуи склайт на шарп?


>программ админок Sqlite валом, но причем тут шарп


Короче, надо что-то более годное, как вот то, повыше, чтобы дохуя свистоперделок было,
и главное, чтобы был полный опенсорец, на шарпе, и даже - портабле ексекутабле,
и чтобы не надо было с установкой конпеляторов всяких пердолится, а просто чтобы MSBuild или csc запустить и сбилдить,
а ещё, желательно, чтобы приинклюдить сорец в либу, чтобы отдельный екзешник гуя шел, вместе с dll-кой сиквелайта.

>Да вроде как и не причём, ведь ему нужно для некоего


> CShasp


Ну хуй знает, почему меня переклинило в четыре креста. А разве это не тред про шарпег?
image.png72 Кб, 496x824
817 1894334
Почему суммируя положительные значения типа deciaml я получаю вот полный бред в результате
818 1894378
Я опять выхожу на связь. Есть один image в wpf. Я накодил ему смену картинки в методе привязаном к dispatcherTimer. Диспетчер таймер имеет интервал 500ms, все работает. Вопрос - как можно/правильнее сделать еще один интервал для картинки. Мне нужно чтобы сначала был интервал (смена/показ картинки на заданный промежуток времени) в 500мс, потом в 2000мс, потом опять 500 и так циклично. Если я сделаю еще один метод и диспетчер я могу словить ексепшн - ваш поток не поток?
Или можно задавать интервал в самом методе привязаного на tick? Как лучше?
819 1894405
кто там ELMAH просил
https://habr.com/ru/post/535438/
820 1894406
>>894290

>чтобы был полный опенсорец, на шарпе, и даже - портабле ексекутабле


ну видимо никому оно нахер не нужно изобретать велосипед. и если найдешь то это будет продукт такого же как ты - искателя фатальных недостатков
821 1894457
>>894405
Прикольно, спасибо.
822 1894521
>>894405
Хохол, плиз.
823 1894533
>>894521
не. ELMAH
824 1894653
>>892641
Лучший способ - начать что-то делать. Срсли. Хотя бы простенький движок для форума запили, чтобы чел мог просто запустить и потом прикрутив фронт - иметь полноценный форум с темами, разделами, ролями, кармочкой, банами, таймаутами и прочим.
825 1894661
Вы мне лучше объясните, неужели без тяжеловесного asp нет работы в .net? Ну, банально же проще сделать простенький веб-сервер на HttpListener, допустим кому-то нужно просто зафигачить сервак для лендинга, например, ему бы действительно было нормально запилить сервер который из 100 строчек состоит, не тащить аппач, nginx или полный asp.net (core).
Ну, просто мне это кажется странным. Неужели мелкой работы для шарписта нет?
826 1894679
>>894653
Но оно все невъебенно сложно и непонятно. Хз как начать даже.
827 1894681
>>892641

> С этого >>892461 пика вообще выпилиться хочется, это ж ебнуться каким сверхчеловеком надо быть, чтобы это все знать.


В прошлом году начал учить шарп. Буквально вчера подобрался к второму блоку. EntityFramework. Туториалы смотрел для начала.
мимо

От пикчи не охуел. Схоронил на будущее.
828 1894685
>>894679

> как начать


Калькулятор напиши.
829 1894686
>>894685
Писал уже.
830 1894690
>>894679
Чего там непонятного? Фреймворк - это просто каркас, тебе не нужно его полностью изучать, как не нужно всю стандартную библиотеку в голове держать. Ты просто смотришь задачи: Ага, мне нужно тут JWT-токены захуярить, гуглишь как оно делается и делаешь у себя; ага, мне нужно кукисы - гуглишь - делаешь. Все, блядь. Это не высшая математика, это просто вопрос того, умеешь ли ты гуглить и читать код, пытаясь понять, а не тупо скопипастив.
831 1894708
>>894686
Пользуешься им вместо стандартного? Если нет - то считай не писал.
832 1894711
>>894690
Ну это упрощение у тебя, согласись, есть определённый известный набор знаний, без которого ты даже загуглить не сможешь то, что хочешь сделать.
833 1894719
>>893588
Я нуб но мне интересно, зачем ты, по сути, запускаешь каждую задачу по-очереди? Почему бы все разом, учитывая что они не зависят друг от друга?

Еще я вижу что ты там интерполяция строк пытаешься дату выводить, почему просто не использовать форматированный вывод для DateTime, и если у тебя нестандартный, этот формат вынести в константу и использовать? Что-то типа:
const string DateTimeFormat = "dd.MM.yy hh:mm:ss";
DateTime.Now.ToString(Consts.DateTimeFormat);

Да, еще, что будет если пользователь решит отменить эту задачу, а твой таймер еще внутри foreach? Просто я вот не вижу каких-то cancellationToken или чего-то подобного, чтобы прервать выполнение, т.е. получается, пользователь может остановить, затем клацнуть запустить и у тебя эта задача будет 2 раза выполняться? Или ты как-то в гуе делаешь кнопку неактивной, пока не завершится вся загрузка? Но это же странно, пользователь может захотеть прервать подзагрузку же, иногда это выглядит будто программа зависла и пользователь может ебнуть весь процесс, что тоже нехорошо.

Сорян за нубские вопросы, просто интересно же, почему так вот делаешь.
834 1894730
>>894711
Так нужно эти знания получить сначала, прежде чем в изучение фреймворка лезть.
Ну, просто вот ты не знаешь что такое куки и нахуя они нужны и используются. Ты "изучаешь фреймворк", доходишь до кук, не понимаешь что это и зачем нужно и что тут происходит? Ты поймешь это? Нет, такая информация не усвоится. Как пятиклашка не поймет интегралы, даже если будет сильно пытаться въехать.
835 1894732
>>894730
Всё верно. Но это обычно настолько сильно подразумевается всеми, что некоторые нубы вообще не знают об этом. Мало того, обижаются, когда им предлагаешь матчасть изучить. Типа

> хули ты мне втираешь, некогда мне учить информатику! бабло зарабатывать надо!


Объясняешь такому, что без базовых знаний, он фреймворк не поймёт. А он ссыт тебе в глаза. А буквально на следующий день приходит с вопросами типа

> как сложить 2+2 в этом фреймворке? Что за говно? Почему эту парашу все так хайпят???

836 1894745
>>894708
Я вообще не пользуюсь калькулятором.
837 1894752
>>894661

>неужели без тяжеловесного asp нет работы в .net?


ничего тяжеловесного в асп.нет
там просто много всего зареференсено как метапакет.
просто выше расход памяти из за 100500 разных кешей всего на свете чтобы поберечь GC
838 1894790
Сегодня впервые собеседовал чувака, на позицию джуна. Очень интересный опыт.
839 1894843
>>894378
Чел, почитай про MVVM и заюзай какой-нибудь калиберн или мввмлайт. Во вью модели запускаешь свой таймер и меняешь пропертю с картинкой, вьюха просто байндится на это проперти и никакой ебли с потоками. Ну и заодно не будешь логику основывать на том, какой текст написан на кнопке. Или ты не этот >>893588 ?
840 1894849
>>894790
Поделись!
вкатун 21 лвл без вышки
841 1894860
>>894849
Подготовил набор вопросов со скриншотами. Виды вопросов:
1. Тут я себе стреляю в ногу, видишь, где?
2. Тут не совсем тривиальный код/разметка/sql запрос, можешь понять, что происходит?
3. Если пользовался, можешь сказать пару слов про эту фичу языка/фреймворка?
4. Вот тебе юайный компонент, опиши словами, как такое можно сделать с таким стеком технологий?
Еще сотрудник немного по теории и основам языка погонял.

Естественно, сложность рассматриваемых кейсов была под уровень кандидата или немного ниже, с поправкой на минимум доступного времени. Сами кейсы, во многом, заимствовал с проекта, или делал похожие. Не знаю, насколько это репрезентативный собес был, но все довольны мной остались, обещают приглашать дальше.

>вкатун 21 лвл без вышки


Какой вывод из собеса сделал: портфолио - хорошо, но иметь теоретическую базу и некоторое понимание, как работают технологии - необходимо для прохождения технического собеседования. Смотреть только на гитхаб соискателя - нельзя ни в коем случае (на начальных позициях)!
842 1894867
>>894860
Нормально, а теория это по базе типа алгоритмы и линукс спросили?
843 1894872
>>894867
Какие колекции есть в шарпе, как пользоваться IDisposable, асинхронность через async await, ООП и СОЛИД.
844 1894882
>>893729
>>893795
понял, спасибо
845 1894905
>>894843
Это не я с репитами. Мне мввм ни нужон, я уже все сделал - просто присваиваю интервалы в методе tick. И потоки не нужны. И проперти там не нужно.
846 1894980
>>893409
Потому после того как ты написал:
@что--то
{

}
внутри скобок не нужны никакие собаки.
847 1895002
Анонче, такой вопрос.
Защищает ли закон структуру бд?
Есть у меня взломанный софт, в нем есть бд, вот я хочу запилить такойжеНу не прям тот в точ, а просто для того что бы что то в резюме вписать. Дак вот если я скопирую структуру бд это будет считаться как что то плохое? Там просто дохующа таблиц и мне как бы на первых парах не надо все. Но если я буду делать сам чета придумывать то получится хуета, софт то то знающие люди делали и структуру бд тоже делали с умом.
2b1274a6b4e6dca62c1b41c30a56af11.jpg23 Кб, 500x333
848 1895004
>>895002

>софт то то знающие люди делали и структуру бд тоже делали с умом

849 1895238
>>894980
Не правильно, эти собаки как раз нужны что бы выполнить js код извне с# области
850 1895356
>>895002
Некоторый софт целиком на бд крутится. На хабре была статья, как лингвалео или какая-то другая шняга для изучения языков перенесли всю бизнес-логику в бд и получили охуенную экономию ресурсов и кучу охуевших пользователей, у которых дропнули коллекции изученных слов. Естественно, структура бд – плод чьего-то труда. Учитывая, что для гитхаба могут сделать как для ютуба – поиск плагиата, то опубликованный чужой код может тебе аукнуться если не сегодня, то в будущем. А может и не аукнуться. А какого рода приложуха -то, что куча таблиц?
851 1895454
>>895356
Ну софт для арбитражников и маркитологов.
80 таблиц, хз на сколько это много.
Тут еще дело в том что овнер данного софта жалуется на своих конкурентов которые делают бесплатный аналог.
852 1895806
Здорова, уважаемые.
Такое дело, я сейчас студент (магистратура в дс), и мне тут начали преподавать C# на достаточно приличном уровне. Я раньше как-то с предубеждением относился к шарпу и жабе, и не смотрел в его сторону, а сейчас прямо влюбился. Но со вкатом не особо понятно... Смотрю на жабу постоянно в банках набирают, и платят дохуя, у меня куча знакомых ещё на 3 курсе устроились и сейчас по 200к зашибают. Просто думаю пока я студент, может стоит задрочить жабу и вкатиться куда-нибудь на стажировку, потому что на шарпе че-то смотрю один веб, который не то чтобы вызывает у меня восторг, а другие места хуй знает, есть вообще? Сначала подумал может стоит паралельно и жабу и шарп осваивать, но походу не осилю, да и вообще жаба как земля че-то, шарп намного больше доставляет.
image.png38 Кб, 687x442
853 1895952
1700 миллисекунд на выполнения этой ебалы.
Почему так много?
Entity Framework такой тормознутый чи шо?
854 1895965
>>895952
А наверное так и должно быть. Первое соеденение с бд идет долго а потом уже за 1 мс.
855 1896006
>>895952
ну так то райнтам генерация маппинга отнимает время.
856 1896016
>>895965
>>896006
У меня вопрос интимного характера. Каким кодом можно симитировать вот этот вот первый запрос и инит маппинга?
мимо
857 1896036
>>895806
Смотри что тебе больше интересно же.
Ну серьезно, может быть тебе нужно прямо сейчас зарабатывать, то да - бери джаву и ебаш. А может быть тебе хочется с .net'ом иметь дело больше, чем сразу начать много зарабатывать - то таки ищи на шарпе стажировки/вакансии начальных уровней.
В конечном итоге, через 5 лет опыта работы, разница между джавой и шарпом сглаживается, другое дело, что если тебе не будет хотеться развиваться в той области, с которой ты начнешь, то ты через 5 лет будешь на уровне мидла, а если интересно будет - будешь каким-нибудь крутым сеньером-помидором. Именно это и важно на начальных этапах: определить что тебе вкатывает в профессии и это изучать, блин. Я вот знаю челов, которые получают 8к зелени получают зная исключительно как с БД разными работать, но эти челы пиздец как ебанулись на нем, они о недокументированных фишках разных СУБД знают, они знают как не просто писать оптимальные запросы, но и как все это охуенно замутить распределенно пояснят, при этом о любой новой штуке что появляется - они сразу же узнают, сразу изучают, ты посмотришь их запросы и сначала ужаснешься, а потом взглянешь на карту запроса и охуеешь, потому что там блядь все так оптимально, что лучше уже и не сделать. Вот за эту хуйню они и получают деньги, а все потому что эти челы угорели по СУБД на начальных этапах, а сейчас сверху они и анализом занялись, поизучали питоны.
Я это к чему. В IT почти любой навык полезен, и уж тем более хорошо оплачивается, но только когда ты его действительно охуенно освоил. Даже, блядь, на дельфи ты найдешь работу, даже на ассемблере, даже на аде или F#, если ты будешь действительно в этом крут и будешь развивать свои скиллы дальше; а если ты просто изучил синтаксис, пару фреймворуков освоил, либы знаешь как накатывать и все что ты можешь - круды, то в определенный момент тебя просто заменят тем, кто делает все это же, но дешевле: студентом, потом ИИ.
858 1896141
>>896016

> вот этот вот первый запрос и инит маппинга


У нас в ГД это называется "пропук".
мимо из гд
image.png51 Кб, 869x343
859 1896555
Аноны, мне кажется это работает как-то не так... то есть что бы прочитать склРезультат я должен сначала преобразовать в стринг а потом в то что мне надо, как по мне это отличная среда для разных ошибок, про производительность я вообще молчу, как можно сделать это поумнее?
860 1896558
>>896555
Ну так читай документацию к девэкспресс, за тебя это делать никто не будет.
861 1896563
>>896558
Так тут не в девексе дело, будто я на ЕФ я делал бы то же самое, там тоже есть фича с исполнением непосредственной sql команды которая возвращает дата сет, собственно на скрине он, а девекс или не девекс тут не играет роли, меня интересует именно как эффективно парсить этот необработанный датасет, в интернете я ничего понятного не нашел
862 1896726
Кстати может кто знает и может объяснить, а какого хрена вариант что на пике тут >>896555 все равно оказывается практически на секунду быстрее чем обычный запрос через EF
863 1896947
>>896726

> обычный запрос через EF


А ты его с AsNoTracking() вызываешь?
864 1896955
>>896947
Речь идет только о получении данных, какая разница есть AsNoTracking() или нет ?
865 1896963
>>896955
Потому что по умолчанию EF все сущности трекает
https://docs.microsoft.com/en-us/ef/core/querying/tracking#no-tracking-queries
866 1896966
>>896963
И что? как это влияет на скорость выдачи?
867 1896970
>>896966
Ну я же тебе ссылку дал на конкретный абзац:

They're quicker to execute because there's no need to set up the change tracking information.
868 1897011
>>896966
Таким вот "И что?" надо просто не отвечать. Пусть лесом идут. Ему уже всё загуглили, а ему лень по ссылке перейти и прочитать.
Знания студента, зато замашки сеньора.
869 1897014
>>897011

> Таким вот "И что?" надо просто не отвечать.


Анон не может не кормить жирдяя. Особенно в новогоднюю ночь!
870 1897021
>>897011
Я зашел. почитал что это влияет на скорость записи в базу, и незначительно влияет на скорость чтение, собственно я написал и уточнил что я говорил только о чтении, на что анон мне ответил что мол "нед необходимости инфу для трекинга" тут я и понял что анон сам мало что понимает потому что-то что анон процитировал фактически не влияет на время ответа, поэтому я решил что и смысла отвечать ему нет
871 1897048
>>897021
Тебе официальная документация говорит, что так быстрее, а ты все равно уперся. Хочешь разобраться, почему, поковыряй исходники EF. А вообще вместо того чтобы тут спорить, уже бы давно добавил в своем запросе этот вызов и замерял бы.
872 1897052
>>897048
Сейчас не за пекой, уже позже замерю и напишу что и как
873 1897104
>>897052
Скорость надо замерять после пары прогонов для разогрева. Лучше использовать https://github.com/dotnet/BenchmarkDotNet

EF стартует чуть дольше, потому что надо много чего в память подгрузить и сконфигурить. Дальше он работает очень близко к чистому SqlConnection, а иногда и быстрее благодаря агрессивному кешированию.

У меня локально на гиговых БД чистый SqlConnection и EFCore выполняют Select/Insert за 1-10мс. Зависит тупо от того, на сколько быстро Sql Server обработает запрос.
874 1898443
>>897104
Тесты показали что с AsNoTracking() после нескольких прогонов скорость падает до уровня статистической погрешности
875 1898444
>>898443

То есть >>898443 задержка падает до уровня статистической погрешности
876 1898461
С новым годом бычары быковатого, шарпаны!
https://www.youtube.com/watch?v=dAiuiU6VWNc
877 1898616
Чтобы меня взяли на мою первую работу за еду, мне надо, наверное, на собеседовании показать какой-нибудь свой проект на гитхабе? А какой например? Что нравится эйчарам?
878 1898620
>>898616
Домашнюю бухгалтерию запили свою. Менеджер персонального бюджета. Такое всегда и всем заходит. Главное, как и в вопросе с калькулятором выше - сделай так, чтобы самом хотелось пользоваться (если бы ты не умел считать и тебе требовалась помощь для организации своих финансов).
879 1898766
>>870468 (OP)
Сап, нужна помощь. Возможно ли стандартными средствами . Net прочесть содержимое GZipStream и конвертировать в массив байтов? Через binaryreader не выходит, при попытке копировать в MemoryStream у последнего содержимое пустое. Что может сработать?

P.S SO мне в этом не помог
image.png3,3 Мб, 1280x1166
880 1899484
>>898616
Я купил бу сервер и запили собственный шифрованный файлообменник, и как и этот анон сказал >>898620 я сосредоточился на том что бы самому хотелось использовать, реализовал фишки которые отсутствуют в имеющихся файлообменниках, и подумал так, даже если для портфолио не покатит то зато хоть будет у меня бесплатное облако, то есть в любом случае время не зря потрачу, как некоторые аноны которые берут для портфолио проекты которые потом ни для чего не используются или просто выбрасывается, собственно на собеседовании всем понравился проект и на первом же собеседовании меня пригласили работа на них, а файлообменник попросили допилить и заюзать для их корпоративных нужд
881 1900170
>>870468 (OP)
Как сделать простую внутреннюю почту на шарпе?
Может уже есть такое, с открытым исходником?

Сервер.
Форма регистрации:
пользователь (проверка на уникальность),
пароль,
повтор пароля (проверка корректности введённого первого пароля).

Ну а дальше, пользователь, может другому пользователю - отправить сообщение.
882 1900371
>>898766

>при попытке копировать в MemoryStream у последнего содержимое пустое


Через GZipStream.CopyTo()? Значит стрим битый, откуда берешь его?
883 1900591
Сап шарп, студия ебанулась - сможешь ли ты совладать с ней?
Ловлю эксепшн - не удается найти ресурс "Image/Module 2/pic.jpg" при попытке считать пикчу с ресурсов приложения. Сам uri - "pack://application:,,,/Image/Module 2/pic.jpg".
Что самое интересное это то что у меня идентичный код нормально считывает пикчи с папки Module 1. Пикчи в Module 2 лежат, uri 100500 раз перепроверил. Свойства на картинках выставил (действие при сборке - resource, всегда копировать самую позднюю версию). Пробовал абсолютный/релятив ури. Пробовал очистить/собрать билд. Нихуя не помогло. В чем еще может быть проблема? Можно как-то явно посмотреть свойства билда?
884 1900594
*Ресурсы билда конечно же.
>>900591
885 1900622
А все отбой, он где-то толи кириллицу словил толи еще хуй пойми что.
886 1900728
Да
887 1901449
В треде есть те кто рисовали .png слой на картинки?
Есть один небольшой метод для рисования .пнг слоя на .jpg картинке который работает на bitmap/graphics https://pastebin.com/TrnGkpc9 .
С 30 картинок - стабильно 3 пички (одни и те же) куда-то съезжают нахуй - 1 сжимается в верхний левый угол более чем на половину, другая наоборот растягивается в правый нижний угол и выходит за пределы, третья просто сжимается в левую сторону.
Разрешение картинок я само собой проверил - что у слоя что у картинки - 1920х1200, никакого смещения не требуется. Все начальные картинки .jpg, слои - .png.
С чем это может быть связано? Или есть какой-то более нормальный способ для наложения слоев?
888 1901525
>>901449

> Или есть какой-то более нормальный способ для наложения слоев?


Бери Win2D и рисуй через CanvasComposition, на GPU с нормальным пайплайном.

> System.Drawing


Откуда ты откопал это говно мамонта времён первого дотнета и ХР?
889 1901663
>>901525

> Win2D


> Откуда ты откопал это говно мамонта времён первого дотнета и ХР?


Я 4.0 некромант.
890 1901675
В общем такая штука нужно написать программу и автотест к ней.
Программа должна логиниться в яндексе и возвращать имя пользователя. Автотест должен проверять совпадает ли то что вернулось с тем что должно быть. И вся соль в том что не получается залогинится. Исключение что элемент не найден. Не могу ввести логин по итогу. Пробовал разные локаторы. Явные ожидания и обычный Thread.Sleep нихера не помогает. Что может быть ? Куда смотреть.
891 1901685
>>901675
Во-первых, какой нахуй xpath, когда есть селекторы?
Во-вторых, сайты защищаются от автоматизированного доступа, особенно такие как Яндекс. Поэтому в 99% случаев нужно суметь обойти эту защиту.
По всей видимости у тебя не хватает навыков HTML и CSS для того чтобы проанализировать страницу и сайт с которым ты работаешь.
892 1901733
>>901685
Ну через CSS тоже пробовал та же херня.
Ну да да скорее всего навыков недостаточно.
893 1901736
>>901663
На 4.7 хотя бы катись. Ты под ХР что ли пишешь? На любом говне 4.7 работает.
894 1901741
>>901675
Чел, в Яндексе клики не работают как ты ожидаешь. И HTML рендерится через жопу жсом. Там такая пердольная срань, что ахуеешь. Пробуй их API или шли на хуй хуяндекс.
895 1901919
>>901736
Да, под xp. Спасибо что отвечаешь.
896 1901957
>>901741
Попробую через API нахуй к сожалению выслать не получится (
897 1902020
Как можно свою хуйню скомпилить в экзешник чтобы он работал на другом компьютере БЕЗ студии?
898 1902033
>>902020
С self contained флагом
899 1902181
Подскажите, пожалуйста
Вот допустим у менять есть

Нестатический класс в котором объявлен нестатический ивент
public event Action MyEvent;
Я подписал на этот ивент статический хендлер
static void MyAction() { }
вот так
this.MyEvent += StaticClass.MyAction;

Будет ли этот статический метод удерживать объект от сборки мусора?
900 1902236
>>902181

> удерживать объект


Мамку свою держи лучше. Как только экземпляр класса выйдет из области видимости - твой эвент перестанет работать. Вообще поебать статический или нет метод - его вызывает класс, который будет уничтожен. Алсо, статика в ООПе - костыль, который надо избегать.
901 1902255
>>902236

> Алсо, статика в ООПе - костыль, который надо избегать.


Двачую. Это когда сделали полностью ООП-язык, а потом оказалось, что нужны неООП-функции. Зачем вообще надо было делать полностью ООП-язык и хвастаться этим 20 лет, если в итоге оказалось, что статический функционал необходим для ряда задач, как например, точка входа в приложение и предыдущие языки прекрасно справлялись с ООП, будучи императивными ("статическими").
902 1902282
>>902255

>что нужны неООП-функции. Зачем вообще надо было делать полностью ООП-язык


то есть существование статических классов вам ни на что не намекает. )
image.png14 Кб, 387x357
903 1902547
двач, что такой синтаксис значит?
904 1902593
>>902547
Что класс ClassB наследует класс ClassA
905 1902607
>>902593
да все, я затупил, меня просто смутили фигурные скобки, я почему то подумал что они к classA относятся
image.png33 Кб, 760x445
906 1902619
алсо, почему предпоследняя строчка таблицы корректна?
я себе объяснил так: в пером случае переменная magicB никуда не ссылается, поэтому мы можем присвоить ее переменной c, произведя явный каст
я в чем то неправ?
907 1902664
Анонче че за прикол?
Изучаю пикрил. Все четко и ясно. Но вот я даунич не могу понять почему не отображает сраницу. Файл есть. Бля я название файла по буквам проверил. Вроде все сделал как сказано в книге.
Шо не так то?
908 1902668
>>902619
Потому что переменная типа C тоже может принимать значение null, если бы С был структурой, а не классом, то произошла бы ошибка компиляции.
909 1902669
>>902664
Пишет мол страница не найдена. Но она же бля есть.
910 1902696
>>902669

> Но она же бля есть.


Но её нет. Заходи в папку с собранным бинарником и убедись сам.
image.png10 Кб, 251x289
911 1902723
>>902696
Там вообще ни каких файлов нет.
дак ее не копирует чи шо? Ну вроде же все по книге делал.
912 1902845
>>902723
А проект можешь скинуть? Очевидно. ты где-то проебался и не признаешься.
913 1902889
>>902845
Ну конечно проебался, ноя пока хз где. Сейчас снова все заново сделаю.
Бля ну я же по букве перепечатываю все с книжки(
914 1902896
>>902889

> пока хз где


Чел...
Давай намекну. С чего они вообще должны там оказаться? Может надо сказать студии чтоб их туда скопировало?
915 1902906
>>902896
Да я переделал уже и все норм стало.
Хуевый варик в 3 ночи что то делать )

И в смысле скопировало?
Разве при компиляции все файлы не копирует?
916 1902910
>>902906

> Разве при компиляции все файлы не копирует?


Нет, конечно.
917 1902927
>>902910
Да я просто наверное где то ошибся.
Сейчас же все заработало.
Кстати почему bool не может быть 0 или 1?

пхп вроде может, и как по мне очень удобно.
918 1903027
Нахуя это(пик1) существует, если существует это(пик2)?
919 1903045
>>903027
Чел, это специально сделано чтоб стрелять себе в ноги не отходят от класса. Тут надо спрашивать зачем вообще это сделано. В нормальных ЯП это называют hidden control flow и там борются с таким, чтоб без твоего ведома при чтении переменной или сложении не начинал считаться факториал в кишках. Я бы на твоём месте не использовал это в принципе. Нормальные люди явно через методы класса setA/getA работают.
А то в чужой либе из-за сеттеров внезапно при дроче переменных может начать жрать память, а GC яростно тереть мусор. Просто потому что ты не знал что там внутри рандомного инта что-то происходит. А потом удивляются почему же шарп жрёт память чуть ли не больше жабы.
920 1903053
>>903045
Вопрос был в другом, нахуя делать пик1, если пик2 абсолютно то же самое и ничем не отличается
921 1903143
>>903053
Вот прям в таком виде - никакого смысла.
922 1903205
>>903143
А нахуя тогда оно надо эти ваши свойства? Ну да, могу я запихнуть какую-то анальную модерацию в set, ну и что с того? Ни разу не приходилось этого делать, кстати
923 1903214
>>903027
Пик2 является синтаксическим сахаром пика1. Ещё вопросы?
924 1903218
>>903205
Навскидку два примера:
1) используется внешний менеджер ресурсов, который юзает внутреннее АПИ для доступа к ресурсам. Ты хочешь назначить ресурсу внятное имя переменной. Поэтому в геттере у тебя идёт вызов GetExternalResource<Type> а в сеттере соответственно SetExternalResource<Type>
2) надо, чтобы несколько переменных были синхронизированы. Например, в текстовом ярлыке на форме выписывается число, в строковом представлении, а в коде у тебя int переменная, которая в своём сеттере делает Label1.Text = IntToString(myIntVar);
925 1903229
Сука, как из Task<string> получить ебаную строку а не непонятную залупу которую нельзя запихнуть в обычный string!?
926 1903255
>>903229
Вопрос исчерпан
927 1903266
>>903218

>синхронизированы



Свойство никакого отношения к синхронизации не имеют.
928 1903365
>>903266
Ну и как называется, то что я описал выше? При изменении свойства, меняются другие свойства.
929 1903445
>>903205
Многие фреймфорки работают только со свойствами
>>903365
реактивное программирование
930 1903577
>>903445

> реактивное программирование


Это типа,

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


Примерно как-то так я это вижу.
image.png793 Кб, 639x839
931 1903583
Изучаю пикрил.
Дошел до главы разор пейдж и вот что пишут на хабре

>Razor Pages — более вменяемое решение для веба чем MVC



Вот это как? MVC Это же патер а RP технология. Поясните пожалуйста.
932 1903725
>>903205
Ну например в случае WPF чтобы обновить байндинг INotifyPropertyChanged используют, там из сеттера ивент кидают.
933 1903880
Анончики кто сталкивался с Creatio (bpm online) - стоит ли связыватся с работой где предстоит разразабывать на этой платформе?
934 1903929
>>903725

> там из сеттера ивент кидают


Ух ты, а я и забыл, что так тоже можно было. Нежданно-негаданно годное решение мимопроблемы мимокрока. Спасиб!
935 1904047
>>903583
Это для любителей web forms
Те же, кто выбирал mvc и продолжит выбирать mvc
936 1905690
>>870468 (OP)
Привет всем. Как быть?
была задача на десериализацию ~3000 страниц.
Сразу сделал через parallel.foreach. Пошло не очень, без async не то, ушло 3:10 минут на все.
Переписал на многотопочность через разбиение n количества страниц на 1 поток и внутри ещё async. Намного лучше ушло 1.30-1.40 на все.
потом через дебри узнал про tpl dataflow. Объединяющий удобства параллелизма, многопоточности и еще ассинхронно. Ушло 1:10-1:1:15 на десериализацию.
пока искал решение ушло больше времени чем на написание, чувствую себя архиологом. Если способы быстрого поиска нужного и актуального инструмента? А то вся информация про tpl dataflow за 2012-2017 год.
и так с каждым инструментом решающий сложную задачу. Нахожу первый попавшийся инструмент, потом ещё больше поисков через дебри ещё лучше инструмент, но все инструкции по нему дремучие ужас. А потом сижу и думаю может есть что-то более современее и лучше?
937 1905752
Челики помогите!!!
Не знаю в чем херня. Из меню не могу выбрать элемент. Получаю исключение NoSuchElementException
Хотя по локатору элемент находится. Что делать что не так ?
938 1905765
>>905752

>ukrainLanguageButton


Поэтому и не работает.
939 1905787
>>905690

>А то вся информация про tpl dataflow за 2012-2017 год.


а что там может быть нового (ну кроме того что они пакет переиеновали). это просто pipeline парадигма и если тебе проще мыслить ей - тебе подойдет
закодить вручную всякие async+producer/consumer не сложнее (лично мне проще)
В общем у кого как мозг мыслит тот то и выбирает абстракции для выражения.
940 1906265
Ребят, привет, подскажите как можно в xaml перехватить клик по окошку и при клике поменять свойство у контрола?
941 1906323
>>905787
Спасибо.

>producer/consumer


А можно поподробнее?
942 1906362
>>906265
Xaml
<Window
Window.Clicked = методнейм />
Xaml.cs:
public void методнейм(object sender, EventArgs args)
{
Контролнейм.свойство = значение;
}
943 1906389
>>906323
ну ты можешь взять блоки от датафлоу, которые суть абстракции "элементы pipeline" и сформировать из них цепочку.

а можешь взять например System.Threading.Channels и просто сделать очереди, где результат текущей работы перекладывается в следующую очередь, из которой другой кусок кода выгребает (producer/consumer) по мере своей работы и кладет в следующую.

Dataflow - абстракция повыше где ты вот такие куски кода выделили в обобщенные элементы и потому описание получается более декларативным, нежели прямая реализация на основе очередей. Это те же яйца, просто в обертке.
944 1906406
>>906362
А без кодбехайнда?
945 1906416
>>906406
ну так код все равно нужно где то написать
если во вьюмодели, то InputBindings в помощь, а вьюмодель поменяет что-то у себя и контрол связанный с вьюмоделью отобразит это новое значение.

Если же этому коду нечего делать во вьюмодели, то кроме кодбехайнда нужно мудрить бехавиор (атачед пропертю), но если это одноразовое действие, то никакого профита по сравнению с кодебехайндом это не даст
946 1906579
>>906406
Триггер/аттачедпроперти/бехавиор
947 1906799
Анонче, вот что не так то?
Делаю все как в книге, и ошибка как будто нет папки Models но она же есть.
На всякий ссылка на проект
https://dropmefiles.com/FQf4k
Но там ничего нет по сути, просто папки.
ВТФ понимаю что от не внимательности что то пропустил, но я уже 3 раза создавал проект и делал все как в книге.
image.png36 Кб, 622x835
948 1906803
>>906799
Дополнено
949 1906805
>>906799

> как будто нет папки Models


А её и нет. Чел, у тебя фильтры, а не папки.
950 1906812
>>906805
Какие фильтры?
Я же делаю все по книге, ПКМ Добавить папку
951 1906825
>>906805
Хуй пойми.
У меня не компилируется с этой ошибкой.
А взял проект из книги, удалил все файлы и оставил только такие как у меня, ошибка есть но компилируется проект.
952 1906866
>>906803
Забей хуй. У тебя сейчас нет неймспейса SportsStore.Models. Добавишь что-то в папку - появится. А ты так или иначе в нее что-то добавишь.
изображение.png194 Кб, 988x570
953 1906881
Сап, аноны, ради всего святого, выручайте, завтра зачет по проге в моем гавновузе, осталась ласт лаба, помогите написать, умоляю, понимаю что тред мертвый, но сука как же нужна помощь(((, мог закинуть пару соток со своей дностепендии на карту тому кто сделает (нада через структуры и стримы захуярить)
954 1906947
>>906881
Делается за несколько минут, даже сложно представить что может вызвать затруднения. Походу ты проебывался всё время и даже базового синтаксиса не знаешь.
955 1906958
Супер тупой вопрос: стоит ли сначала запилить что-то на винформсах(чтобы и сейчас поучиться, и потом на собеседовании показать), или сразу ебашить на впф?
И небольшой контекст - программировать я уже умею, сейчас занимаюсь скорее перекатом на шарп, поэтому было бы здорово выбрать то, что юзает больше каких-нибудь интересных особенностей шарпа.
956 1906969
>>906958
Сразу
957 1907078
>>906881
Я бы тебе помог, но тебе хую нужно было написать хотя бы за пару дней, я уже молчу про то чтобы самому подумать.
958 1907481
>>906389
Спасибо больше. Даже смог нормально логирование подвязать. И материала больше про Channels. Прям 2 чаю тебе анон
959 1907796
Вот у меня есть метод, он пока что ничего не делает полезного, но в скором времени будет, если я правильно его написал.

Как понять, что мне вернет метод?
Можно как-то поставить точку остановки и чтоб студия сама запустила мне этот метод без дополнительных действий? А то сейчас мне приходится запускать весь проект, ебаться со всякими действиями, чтобы проверить работоспособность одного метода. Вот чтоб как проект запустился в студии, то сразу метод выполняется.
960 1907804
>>907796
Юнит-тесты используй. Это их задача - отдельные методы на работоспособность проверять.
961 1907807
>>907796
Для этих целей пишут Unit-тесты и применяют паттерны проектирования для того чтобы построить архитектуру, которая облегчит подобные действия. Есть даже такой подход как TDD при котором ты начинаешь писать тесты и только потом код который будет проходить эти тесты.

В общем, никакой магии для запуска единственного метода нет, можно конечно поебаться с рефлексией, но лучше всё таки делать при помощи тестов и архитектуры.
962 1908243
>>907796
Утилити методы выности as extension methods. И для них пиши юнит тесты.
изображение.png4 Кб, 504x132
963 1908298
Есть пикрил конструктор и я хочу сделать его так, чтобы он был пригоден для использования кем-то другим, соответственно чтобы шанс выстрелить в ногу был минимален, и тут есть две проблемы:
1. Я подразумеваю, что пользователь сам озаботится копированием массива, если ему надо.(в целях оптимизации, потому что скорее всего почти всегда переданный массив уже будет никому не нужен)
2. Все точки в _points должны быть отсортированы по первой координате, но я это опять же скидываю на пользователя.(и в целях оптимизации, и потому что если он передал неотсортированные точки - значит у него что-то не так и надо тогда уж исключение кидать)

Собственно как лучше всего это все допилить? Я вот думаю просто пройтись по точкам и кинуть исключение, если они не отсортированы, и комментарий написать, что массив присваивается по ссылке, а не копируется.
И если добавить бул переменную - копировать массив или присвоить ссылку - насколько от такого у вас бы глаза вытекли?
964 1908300
>>908298

> я это опять же скидываю на пользователя


> копировать массив


> присвоить ссылку


Бляяя, не пиши больше в тред. В шапке есть учебники, читай пока их.
965 1908310
>>908300
Пчел, вопрос не про язык. Я не спрашиваю как мне скопировать массив, я спрашиваю как пользователю этого класса сказать, что я его массив забираю по ссылке, чтобы он не отдал туда тот массив, который планирует потом ещё в каких-то своих целях использовать, а сам сделал копию.
966 1908314
>>908310

> как пользователю этого класса сказать


Отправить читать его основы языка?
Но мне кажется это ты не знаешь их, раз такой бред пишешь.
967 1908326
>>908314
Ну, пчел, ну. Вот я передаю в конструктор листа ссылку и лист его не утилизирует, потому что он ему нахуй не нужен.
А потом я его передаю в свой класс - и мне он там нужен.

Понимаешь о чем я? Как пользователь должен знать, буду ли я его данные менять или нет, когда это не очевидно из предназначения класса?
968 1908331
>>908326

> Как пользователь должен знать, буду ли я его данные менять или нет


Чел, про readonly слышал? Говорю же, ознакомься с учебником.
969 1908333
>>908331
Понял, вопросов больше не имею.
Какая же WPF охуенная тема блять. 970 1908334
1) Нужно отобразить гифку в WPF окошке. В тырнете сказали что WPF такое не умеет, но есть либа WpfAnimatedGif и мол она самая популярная. Загрузил, написал как сказано в документации (мне нужно из бэка) ImageBehavior.SetAnimatedSource(ImageControl, _gif1); где _gif1 это
_gif1 = new BitmapImage();
_gif1.BeginInit();
_gif1.UriSource = new Uri("pack://application:,,,/Images/1.gif");
_gif1.EndInit();

И угадайте что? Пизда - минус полгигабайта озу на отображение. Ебаный рот этого казино. Сразу объявлю параметры гифки постить не буду чтобы до меня не доебались: 1.47мб, 28 кадров, кадр меняется через 100 милисекунд сам скрафтил.
Я молчу про то что в самом впфе дефолтное окошко с изображением, бэкграундом, парой кнопок, и парой лейблов - +200мб, когда например в nvidia control panel с кучей "контролов" у меня отжирает около 10мб.

2) Нужно нарисовать поверх пикчи (джипега) пнг слой. Через канвас я изначально не хотел делать потому что мое поделие должно запускаться на полунекроте и рандомный засвет для меня критичен и абсолютно противопоказан. Я решил что нужно в клеить их в рантайме как одну пикчу. На писал вот это:

var finalImage = new Bitmap(baseImage.Width, baseImage.Height, PixelFormat.Format32bppArgb);
var graphics = Graphics.FromImage(finalImage);
graphics.CompositingMode = CompositingMode.SourceOver;
graphics.DrawImage(baseImage, 0, 0);
graphics.DrawImage(overlayImage, 0, 0);
return ImageToByte(finalImage);

29 пикч нормально наклеиваются/отображаются, 30 пикчу (начальный джипег) косоебит в левый верхний угол и по размерам он стает приблизительно на четверть, а пнг слой наслаивается как по размерам нормальной пикчи. Я первым делом же проверил разрешение пикчи/слоя - одинаковое. Затем я попробовал в finalImage синитить с размерами не изображения, а слоя (на всякий случай) - нихуя. Затем я попробовал конвертнуть в разные форматы (bmp/png) - похуй. Я подумал может быть там где-то есть прозрачность на джипеге и его из-за этого пидорасит, взял перекрасил магической палочкой белые края в серый - нихуя. Ему просто не нравится одна пикча и я не могу найти какого хуя.
Какая же WPF охуенная тема блять. 970 1908334
1) Нужно отобразить гифку в WPF окошке. В тырнете сказали что WPF такое не умеет, но есть либа WpfAnimatedGif и мол она самая популярная. Загрузил, написал как сказано в документации (мне нужно из бэка) ImageBehavior.SetAnimatedSource(ImageControl, _gif1); где _gif1 это
_gif1 = new BitmapImage();
_gif1.BeginInit();
_gif1.UriSource = new Uri("pack://application:,,,/Images/1.gif");
_gif1.EndInit();

И угадайте что? Пизда - минус полгигабайта озу на отображение. Ебаный рот этого казино. Сразу объявлю параметры гифки постить не буду чтобы до меня не доебались: 1.47мб, 28 кадров, кадр меняется через 100 милисекунд сам скрафтил.
Я молчу про то что в самом впфе дефолтное окошко с изображением, бэкграундом, парой кнопок, и парой лейблов - +200мб, когда например в nvidia control panel с кучей "контролов" у меня отжирает около 10мб.

2) Нужно нарисовать поверх пикчи (джипега) пнг слой. Через канвас я изначально не хотел делать потому что мое поделие должно запускаться на полунекроте и рандомный засвет для меня критичен и абсолютно противопоказан. Я решил что нужно в клеить их в рантайме как одну пикчу. На писал вот это:

var finalImage = new Bitmap(baseImage.Width, baseImage.Height, PixelFormat.Format32bppArgb);
var graphics = Graphics.FromImage(finalImage);
graphics.CompositingMode = CompositingMode.SourceOver;
graphics.DrawImage(baseImage, 0, 0);
graphics.DrawImage(overlayImage, 0, 0);
return ImageToByte(finalImage);

29 пикч нормально наклеиваются/отображаются, 30 пикчу (начальный джипег) косоебит в левый верхний угол и по размерам он стает приблизительно на четверть, а пнг слой наслаивается как по размерам нормальной пикчи. Я первым делом же проверил разрешение пикчи/слоя - одинаковое. Затем я попробовал в finalImage синитить с размерами не изображения, а слоя (на всякий случай) - нихуя. Затем я попробовал конвертнуть в разные форматы (bmp/png) - похуй. Я подумал может быть там где-то есть прозрачность на джипеге и его из-за этого пидорасит, взял перекрасил магической палочкой белые края в серый - нихуя. Ему просто не нравится одна пикча и я не могу найти какого хуя.
971 1908336
А извините, не 10мб (мне почему-то так запомнилось), а 75мб, не суть. Энивей добавлю - гифка еще и секунды 2 "грузится" для отображения.
1566905105984.png7 Кб, 1110x95
972 1908341
>>908334
Опять ты со своей ХР...
Используй уже Win2D. Гифку на кадры и выводи по таймаутам. Второе вообще в 3 строчки делается. А по производительности - пикрилейтед захват экрана и вывод 4К в 60 фпс через эту либу.
>>908336
Так что ты хотел от софтового рендеринга по технологиям из 2005.
973 1908366
>>908341
Бля, охуеть, но я не могу, серьезно.

>софтового рендеринга по технологиям из 2005


Хочешь сказать в 2005 по полгига уезжано только на гифку? Или что простое окошко занимало 200мб?
974 1908649
>>870604
Мужик, а можешь тему оформления подогнать?
975 1908774
>>906579
Так на клик можно только евенттриггер поставить, там же нельзя свойство контрала поменять
976 1908969
Тут сидят вкатывальщики, потому хочу дать совет как интервьюер: при собесе онлайн не гуглите ответы. Это не слишком эффективно и очень заметно. Мы над вами посмеемся и откажем с плохим отзывом.
977 1909073
>>908969
Ага, как скажешь. иди нахуй с такими советами
978 1909111
>>908969
Бля мужик ты бы лучше пак вопросов залил или хотя бы те на которых как правило сыпятся собеседуемые.
979 1909123
>>908969
Не мужик, надо в черный список заносить сразу нах))) Че щеглы малолетние себе позволяют, какой же ты программист, если при столкновении с задачей сразу гуглить лезешь...
980 1909196
>>894282
Нихуя не понял, чего ты хочешь добиться, чтобы ключи в JSON-файле быстро находить или как?
981 1909198
>>909196
Алсо зачем такое изъебство под названием JSON для хранения данных в этом случае?
982 1909317
>>909073

>Ага, как скажешь


Вот и славно сам нахуй иди, пёс
>>909111
Писал об этом тут >>894860
Сам пак давать не буду, ведь на собес ко мне можешь попасть ты! А сыпятся на чем угодно ровным слоем. От Linq и простых селектов на SQL, до особенностей работы дженериков, async await и GC.
>>909123
Тут проблема в том, что они гуглят вещи, которые знать нужно. Если не знаешь - напишешь криво, не оптимально или вообще поломанный вариант, и даже не подумаешь гуглить.
983 1909354
>>909317

>особенности работы GC


А нахуя это нужно ждуну-то знать? Пусть лучше уж код учится писать и гуглить ответы на свои вопросы, нет?
мимо вкатываюсь
984 1909393
>>909354
Джуну то придется работать с уже существующей сложной системой, и нужно ничего не ломать в процессе разработки - потому, видимо и спрашивают. Джун ведь не трейни.
985 1909450
>>909196

>Нихуя не понял, чего ты хочешь добиться, чтобы ключи в JSON-файле быстро находить или как?


Не ключи, а значения по ключам.
>>909198
Потому что там пиздатая таблица из базы данных датацентра пендосского суперкомпа.

Всё, я понел. Надо переписать файл так:
KEY1+DATA1,KEY2+DATA2,...
и заебенить индекс, отдельным файлом:
key1+startoffsetDATA1+DATA1Length,
key2+startoffsetDATA2+DATA2Length,
...

и уже этот индекс в память грузить, и шерстить ключи по нему.
>>894282-кун
986 1909466
Сколько вы дрочили ASP.NET, чтобы начать его понимать? Я просто вникаю, вникаю - и охуеваю. Черная магия на черной магии, не самый очевидный биндинг под капотом, там же находится автоматический DI, ну и как же без ебли с HttpContext-ом, EFCore-ом и прочими богомерзкими вещами. Пиздец же. Как скоро в это все реально въехать хотя бы на уровне "написать простенький вебсайт на коленке самостоятельно"?
987 1909529
>>909466
Въехал после прочтения одной книги (Valerio De Sanctis - ASP.NET Core 3 and Angular 9-Packt Publishing (2020)) и документации на MSDN. Ничего сложного нет, главное понимать основные концепты вида DI и IOC.
988 1910077
Хочу кодревью.
Сделайте кодревью! Позязя.
В примере - игра жизнь. Вот. Да. Ну, вы знаете, клеточный автомат.
https://github.com/BakaVaka/LifeGame/tree/master/LifeGame
989 1910084
>>910077
Мало того что сам код говно не разбитое хотя бы на методы, не говоря уже о классах, так еще и наименование существующих методов максимально ущербно - Update, Draw, LifeGameRulles (да-да, это тоже название метода), GetCell. Что обновляет, что рисует, какие нахуй руллес живая игра, зачем нам брать клетку, откуда её брать и т. д, о чём это должно говорить тому кто смотрит на код? Да ни о чём, просто садись и читай всю эту жижу которую ты высрал, строчку за строчкой, пока не воспроизведешь весь код. Но в данном случае легче конечно всё снести и написать адекватный код.
Задача популярная, поэтому пиздуй на гитхаб, гугли по решениям "GameOfLife" и смотри как делают более шарящие товарищи.
990 1910109
>>910084
Ну блин. Я загуглил, там разбитие на классы ради разбития на классы. Ну вот вынесу я "клетку" в отдельный класс, что это даст? Понятнее все равно не станет, будет: Что за клетка, какой еще грид и прочее, при этом код разростется, это повысит вероятность ошибки. Ко всему я не уверен что это не скажется на производительности. Тут и так довольно все плохо, всего при 640000 - уже видно что медленно. При миллионе клеток - 14фпс. А я хотел бы хотя-бы 30+ иметь стабильно. Вооооот.
991 1910120
>>910109
И зачем ты это высрал? Твой код так и остался говнокодом. Для достижения производительности не уменьшают количество классов, а делают вместо них структуры, либо достигают её улучшением алгоритмов. И у тебя проеб даже на уровне именования методов и разбития кода на логические блоки в рамках этих методов.
992 1910123
>>910120
Оки. Покажи как надо. Там всего 100 строк так-то, это 10 минут пишется.
993 1910131
>>910123
6 секунд на строку? Этим ты руководствовался кода своё код писал?
994 1910168
>>910131
Ну да. А как еще ты хотел код писать? По 1 строчке в день? Когда с таким подходом ты свой калькулятор, который может в порядок действий - сделаешь? Через 10 лет?
995 1910176
>>910168
Какой-то у тебя ограниченный выбор, наверно обусловлен ограниченностью твоего ума.
996 1910190
>>910176
Ну смотри, с момента как я предложил показать как надо - прошло уже 45 минут почти. Уж за это время-то, тот кто знает как надо - 100 строк написал бы.
Пока что я вижу что кроме как посты на борде писать - ты ничего больше не можешь. Потому твое ревью - не ревью. Жду более конструктивного анона.
997 1910192
>>910190
А ты моё время оплатил уже? Борда 18+, сычуш.
.jpg24 Кб, 960x486
998 1910197
>>910192
Ты очень токсичный, еще и тестовое задание брать не хочешь, зачем мне платить тебе? Хоть одну причину назови?
Давай начнем с простого, вот ручка, продай ее мне.
999 1910212
>>910077

>эти коммиты на русском языке


>эти XML-комментарии для каждой строки


Ладно, это я доебываюсь. А если серьезно: какой нахуй кодревью. Написал? Работает? Молодец, начинай писать что-то посложнее. Похуй, что оно лагает на миллионе клеток, похуй, что у тебя все "в мейне". Пиши программы или те же игры, только посложнее уже, и используй методы и классы по своему усмотрению. Наговнокодишь 10-20 программ, в которых разбираться, фиксить баги и расширять функционал невозможно - станешь лучше понимать, когда стоит ебашить классы, когда не стоит, а когда задача настолько проста, что делается в мейне. А пока что позаботься о более выразительном нейминге и не сри комментариями (тем более трехстрочными XML-ами) там, где суть ясна из названия или из кода. На комментарии ты только время проебешь, они тебе не нужны сейчас.
sage 1000 1910330
1001 1912094
Сап сишарпач, как сделать "оповещалку"? Вводится время в минутах, и через это количество минут выводится сообщение
1002 1917796
>>870604
Как вывести 500кк $ через битки в валюту в расии?
16177015130410.png10 Кб, 580x126
1003 1987740
Как в этом ебучем Visual Studio сделать так, чтобы неправильно введенная команда автоматически исправлялась? Эта функция раньше работала, но я что-то нажал и ВСЕ, редактор перестал автокорректировать неправильное написание.

Сижу гуглю уже ебаный час и НИХУЯ, как будто никто и не знает про эту функцию. Может тут кто-то знает?
Тред утонул или удален.
Это копия, сохраненная 29 апреля 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски