Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии. Литература вторым постом 1. Ресурсы:- http://stackoverflow.com/questions/tagged/c%23- http://www.tutorialspoint.com/csharp/- http://professorweb.ru- https://metanit.com/- 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, делать намного сложнее. 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'а. Плюс няшные темы как в студииdotPeek - бесплатный декомпилятор от JetBrainsscriptcs - для запуска 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 Прошлый тред тонет здесь: https://2ch.hk/pr/res/1586030.html ( >>1586030 (OP) )Архивач: https://arhivach.ng/thread/530544/Архивач в TOR'e (доступен через TorBrowser): http://arhivachovtj2jrp.onion/thread/530544/
>>1618705 (OP)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) - разработка на шарпе под UnityIntroduction 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
>>1618945Ну и чё за хуйню оно возвращает, при (string)domain_name, (string)IP_PORT, (string)domain_port?Как же долго я ебался с гуглежом, чтобы найти вышеизложенное.
>>1618930А есть нечто подобное но для валидации file_path, в том числе и пути относительного, скажем "..\..\data\bigData.json",чтобы проверяло путь, и если туда можно сохранить файл - чтобы сохраняло его,и опционально - чтобы проверяло ещё наличие файла там, если он должен быть по указанному пути?
>>1618705 (OP)Аноны такой вопрос не знаю почему вулетает исключение при нажатии кнопки запуска, смотрел пошагово вроде всё правильно но класс Database наотрез не хочет создавать "score.json" может кто знает почему?класс Databasehttps://pastebin.com/zNtQq84nclass LevelMenu : Statehttps://pastebin.com/guaqHWMg
>>1619648Так он "fighters.json" не может найти, File.Exists() тупо возвращает false.Попробуй в настройках проекта в отладке поставить рабочую директорию туда, где лежат все эти json-ы.
>>1619698> Юзаешь относительные пути - страдай.Пфффф. Вот серьезно. Нашел к чему доебаться. Абсолютные пути это рак убивающий. Запомни это.
>>1619746Ебать ты додик. Ну тогда скрести пальцы и молись, чтоб программа работала в таком же окружении как и твоё. Или ты думаешь, что абсолютный путь это тот, который захардкожен строкой?
>>1619907>Стоит ли платить айтицыганам за информацию, которая лежит в интернете бесплатноПлати, раз ты настолько тупой что аж такой вопрос в голове возник
Шарпаны, есть один длинный сетевой метод, и я без задней мысли засовываю его в Task.Run(() => method). Все работает замечательно, но у меня одновременно только два таска могут работать. Как увеличить это число? Хочу, чтобы хотя бы 10 тасков одновременно запускалось. В спеках на проц написано, что у меня два потока на ядро.
>>1620073>одновременно только два таска могут работатьКак ты определял? Но одновременно физически может работать количество задач, равное количеству ядер, физику не наебешь. Да и то, если ОС решит, что нет занятий по важнее.>>1620073> сетевой методАсинхронный надеюсь?
>>1618705 (OP)Аноны хочу спросить не ради холивара, а ради интереса. От этого зависит дальнейший интерес.Зачем нужен c#?Утверждают что есть 2 ветки развития c# разработчика, а в скором и 3 будет blazorНачнем с простого desktop - да под Винду конечно круто, но кросс платформенность рулит. Есть java, js web приложения, c++ и тут видна четкая градация - старый код поддерживаем на Java. Что-то мощное и большое c++ . Быстро что-то накатить js. Какое место занимает с#? Wpf и winforms мертвы, uwp спохватился и пытается что-то отжать. Посмотрите на игры Единственный вариант это разработка игр, но это ебучий лес. Болото не проходимое, где придется порваться, что бы хоть чего-то добиться и называть себя разработчиком игрИдём дальше web. А именно backend. Тут все так же. Быстро что-то сделать js, python. Что-то сложное и крупное c++ и Java. И где-то в центре c# пытаясь сесть на 2 стула, жестокого Энтерпрайза и хипстерский новенький опенсорс язык. И не стоит забывать про ruby, тот же язык меж 2 огней, только более адекватный чем c#Как мне кажется новые языки по типу go, rust нет нет да спихивают c#, пока майки оправдываются и говорят что они тоже опенсорс и вот даже с пацанами из mono договорились. А разработку, развёртку и установку проекта так же сложно вести, да и ещё дорого. Не каждый готов купить готовую продукцию от майков, что бы было удобнее работать с back проектом c#Про blazor я молчу, проще js выучить, пока ты будешь думать. Как реализовать вызов окна для выбора файла. Сейчас лишь годится для получения данных и удобной работы с c# backend и все.Так как быть аноны? Может я не прав?
>>1620179Ответ стандартный: открывай вакансии в своем регионе и смотри, что нужно на рынке, а что нет.
>>1620179Я не знаю откуда вы берете такие стереотипы, которым лет 5 минимум. Наверное смотрите видосики всяких хауди хо и других клоунов ютуба.>Начнем с простого desktopC# кроссплатформен. Писать декстоп можно не только на винформах и впфе. Вот где-где, а на java точно не пишут декстоп. Причем рынок смещен в сторону мобилок и тут шарп снова позволяет писать кроссплатформенный код для Android и iOS, чего не позволяет java. Много таких проектов я даже оценивал в компании на 2к сотрудников.>c++ и тут виднаГде видна? Мне не видна. Много популярных программ вообще на делфях написаны. В геймдеве часть сишников перебежало на шарп, на юнити. Потому что несмотря на все прелести 17, писать на плюсах все равно сложно и блюпринты тут помогают от части. Другая часть, не только в геймдеве, хотят писать на расте. Существуют проекты с AR и VR на шарпе, но в вакансиях про это писать не будут.>старый код поддерживаем на JavaЭто применимо к любому языку и тому, что вокруг них обросло.>Быстро что-то сделать js, python.Быстро делать "хуяк, хуяк и в продакшен" можно на любом мейнстримном языке. Самый быстрый язык - php из-за обилия всяких магенто и вордпрессов.>Что-то сложное и крупное c++Нет, что-то сложное и крупное делать на плюсах очень дорого и долго, потому они придумали много всякого изврата по типу плюсы + что-то: луа, шарп...>Как мне кажется новые языки по типу goВ некоторых тестах реальных низкоуровневых приложениях C# обгоняет Go, но адепты Go тебе такое никогда не напишут в своих статьях. И про всирание на серверлессах не напишут. И про сборщик мусора тактически умолчат.>А разработку, развёртку и установку проекта так же сложно вести, да и ещё дорого.Это неправда. C# и Java так популярны, потому что разработка дешевая и быстрая, уже понаписано куча легаси-говна, которое надо кому-то саппортить.>Не каждый готов купить готовую продукцию от майковО какой продукции речь?>проще js выучитьНа серьезных проектах фронтендом занимается отдельная команда, а не человек-оркестр.Есть язык F#, который позволяет фронт и бек писать только на нем уже сейчас и писать в разы быстрее и безопаснее, чем на C#. Но с этим языком существует очень много проблем, одна из них - сранные вкатывальщики в айти, которым в универе преподают js и python и они пытаются больше нехуя не учить и гребсти бабки лопатой.
>>1620144> Асинхронный Нет, обычный void> Как ты определялВ таске добавил Console.WriteLine("task started")
>>1620325Ухх. Спасибо большое прям от души отлегло, как долго я ждала подобного ответа. Ибо мне c# очень нравится, а как на вакансии смотришь один гд и поддержка кода под winforms. Надеюсь то что говоришь правда. А что насчёт blazor? Какая у него судьба web assembler взлетит?>Готовая продукцияAzure, да и просто хост на Винде, не каждый готов предоставить за такую же цену хост на Винде.F# на фронте? Это как?
>>1618705 (OP)Странно, почему же тупая мочерация опять потёрла вот этот пост про наноборду? https://arhivach.ng/thread/538151/#1618710
>>1620587Там ещё один пост был, кстати: https://arhivach.ng/thread/538151/#1619575Хоть не оставляй ничего, пипец, мочан какой.
>>1620179если .net core взлетит, то кучу легаси говна придется на него переносить. вот тебе и работа.
>>1620632А если не взлетит. Постоянно одно но, а вдруг, может быть. .net core взлетит, ещё как, люди волком выли и mono помогали чтобы кроссплатформенно было, а майки на протяжении нескольких лет упирались, пока поняли что большая часть разработчиков не на Винде сидят. Так хоть какую-то но свою долю займет. Вот я начну переписывать все на .net core. Будем переписывать это все условно лет 6-8 . А дальше что? Там уже десктоп приложения не нужны будут. Ведь есть веб. Blazor? Он же предназначен лишь для получения данных. В Гите разрабы пишут что политика blazor не нацелена изменять само Dom дерево, а через бинд параметров. Так что js так и останется. Единственное спасение f#.Ибо постоянно про c# в масс медия ни слуху ни духу. Все модные на python, go rust typescript пишут. А как ткнуть их носом в c#, сразу говорят иначе и про остальные языки вспоминают. Сразу лелеют c#, красивый синтаксис и все дела. И потом убегаю опять писать на модном языке.Что блятт происходит не понятно
>>1620671А ты хочешь выучить одну технологию и до пенсии работать на ней? В программировании так не бывает.
>>1620687Нет. Я хочу стабильно работать на одном языке, попытаться попробовать его и в хвост и в гриву, сгореть с языка и перейди в совершенно другой язык с другой политикой
>>1620689>стабильно работать на одном языкекак сказал один умный человек: "программист должен уметь программировать на нескольких языках программирования". язык лишь инструмент для достижения поставленной задачи и переход на другой не должен доставить проблем. пока есть винда, будет и C#. Уже 8ая версия у языка. По вакансиям по Москве у С# где то 1500-1700, это конечно в 2 раза меньше чем у того же питона и JS, но если сравнивать с ruby, то у последнего совсем всё плачевно.
>>1619958он прав, кому нахуй этот ITVDN нужен? Ни одни курсы не сделают из тебя разработчика. У многих в голове абуз денег == успех, на самом деле это не так. В интернетах море инфы, главное - желание>>1620179>Идём дальше web. А именно backend. Тут все так же. Быстро что-то сделать js, python. Что-то сложное и крупное c++ и Javaземля тебе пухом, иди на ++ они круче да нет>>1620587наконец то моча начал работать>>1620719>как сказал один умный человек: "программист должен уметь программировать на нескольких языках программирования"долбоеб скорее сказал. Программист - это профессия без привязки языка от слова совсем.>>1618880 →я надеюсь, что весь этот пиздокульт по IT в СНГ помойке лопнет, как мыльный пузырь. И как можно скорее. И ебаный мелкософт с их решеточками, блейзора и корами вместе с ним. Да здрастует Rust
>>1619907Так они же и на youtube выкладывают. Посмотри и оцени их качество. >Мб у анона есть слитые курсы?При должном старании и сам найти сможешь. Моя позиция насчет курсов такая: "Лучше книгу почитаю".
У шарпа есть аналог Javadoc? Просто на сайте микрософт стрёмные конструкции с xml написанные в виде множества однострочных комментариевhttps://docs.microsoft.com/ru-ru/dotnet/csharp/codedocи это как-то крипово, по сравнению с/*/, которая ещё и все поля для заполнения в нормальных IDE сама генерирует. Может есть альтернативы?
>>1620995Не даром тут: https://2ch.hk/b/arch/2017-11-02/res/164121539.htmlписали следующее:>Мочан — площадка для насасывания модераторами друг другу в позе №69.Но оказывается не только они друг другу насасывают, есть и такие как ты.Как же заебал этот вечно тормозящий подтирач с анальной модерастией,неадекватной администрацией и запредельной концентрацией рака, вроде тебя.мимокрокодил
Пишу пет-проект (веб-приложение). Но жена начала изучать Zbrush, устроилась на курсы. Думаю, вернуться к Unity. Вопрос вот в чём: есть два стула. На одном веб-приложения и энтерпрайз точенный, на втором - геймдев дроченный. Стоит ли смотреть в сторону геймдева, чтобы работать с женой в одной отрасли? Геймдев в теории мне нравится, он мне близок (я например даже издававшийся писатель, хоть и нонфикшн), но энтерпрайз - это надёжное средство зарабатывания деняк. Что делать?
>>1621525Нужно всегда диверсифицировать риски, если с геймдевом что-то случится, то соснёшь как ты, так и твоя жена, а вот если вы будете в разных отраслях, то шанс соснуть резко уменьшается. Поэтому выбор очевиден. >Геймдев в теории мне нравитсяНравится он тогда, когда ты занимаешься проектами которые тебе по душе, но тебе выбора не дадут, будешь пилить херню которую скажет дядя пилить.
>>1621527Какая в таком случае лучшая стратегия? Геймдев оставить для своих петпроектов, а развиваться по линии энтерпрайза целиком?
>>1621328бамп. Ну, серьёзно, как тут у вас принято писать комментарии к коду, так чтоб потом одной кнопкой загенерить html?
>>1621411>>1621415я ссать хотел на вашу наноборду, ок? Хотите казино с блек джеком и шлюхами? Для этого не нужна борда, можно шифровать сообщения другим способом, но есть одно но - TCP/IP протокол, через который идут реквест-респонс любого интернет ресурса. И зная, что есть портал с illegal информацией, да еще и шифрованной, по которой хуй определишь Ip конкретного юзера как на мочане его просто сразу задушан на любом уровне, чтобы только к нему не было доступа. Вы будете перекидывать с хоста на хост, меняя IP, меняя домен и будете плавать в говне. Поэтому don't waste my and your time.
>>1621763Есть комментарии типа /// в Visual studio, которые потом можно автоматически в справку преобразовать. Попробуй, может то что ищешь.
Можно ли в Visual studio настроить, чтобы имена классов и имена структур подсвечивались разным цветом?
>>1622370Так он по дефолту ничего не генерирует в студии. Модуль какой есть?>>1621845Да! Как раз то, что нужно. А как преобразовывать..?
>>1622408>Да! Как раз то, что нужно. А как преобразовывать..?https://professorweb.ru/my/csharp/charp_theory/level3/3_3.php
>>1622781Если просто десктоп приложение:Открываешь на диске папку проекта, там ищешь папку bin, в ней папку debug. Оттуда копируешь экзешник и все дополнительные файлы и папки (данные там какие). Если применяешь всякие сторонние либы - то и их тоже. Всё это переносишь на другой комп и запускаешь экзешник. На втором компе должен нет.фреймворк стоять соответствующей версии, если под него делалось. Если под core, то хз как, не пробовал пока переносить. Кроме того учти, на твой код может антивирус ругаться, если нету подписей, а их нету.
Аноны как из строки превратить в объект? У меня есть json с настройками и в нем есть следующая строчка: "path": "AppDomain.CurrentDomain.BaseDirectory"Value я легко могу получить, но как мне теперь превратить строку в объект и чтобы он путь вернул?
>>1622910>а поподробнее? Открываешь документацию и смотришь поподробнее. Тебе только польза будет. >А по-другому никак?Никак.
>>1622918Ты с мобилы пишешь? Открываешь IDE, пробуешь. Можешь консольное приложение создать. Можешь LINQPad использовать, если лень заводить IDE.
Я конечно понимаю что на лет 10 опоздал с вопросомНо вот разбираюсь в привязках в винформахhttps://www.codeproject.com/Articles/24656/A-Detailed-Data-Binding-TutorialИ тут есть примерВ разделе Binding without a BindingSourcegrid.DataSource = a;grid.DataMember = "Passengers";grid.AutoGenerateColumns = true;txtModel.DataBindings.Add("Text", a, "Model");И потом при нажатии кнокпи идет добавление в коллекцию источника данныхи идет вызовgrid.ResetBindings();Чтобы преезачитать измения с источника данных в гридТак в чем загвоздка, этот метод не отрабатывает и данные в грид не перечитываютсяЕсли обернуть все это в BindingSource и вызвать bs.ResetBindings(false), то все окЕще такой интесрный момент, что метод ResetBindings у класса Control помечен как [EditorBrowsable(EditorBrowsableState.Never)] public void ResetBindings();То есть как будто его не следует уже вызывать.Это получается они просто прикрыли использования этого метода?
>>1622927Хорошо, последний вопрос. Как мне достать класс AppDomain.CurrentDomain.BaseDirectory, то есть класс AppDomain.CurrentDomain. Через операции строчек? или можно как-то по-другому?
>>1622931Этот хуевый json из appsettings.json. У меня задача, дать возможность задавать нормальный путь или через объект, по типу: AppDomain.CurrentDomain.BaseDirectory, Environment.SpecialFolder и т.п.
>>1622934Ок, а кто его пихает в appsetting? Я к тому, что если это под твоим контролем, то почему бы не считать все относительные пути относительня папки AppDomain.CurrentDomain.BaseDirectory, а спецпапки указывать как обычно %%ProgramFiles%, %SYSTEMROOT% и т.д.
>>1622939appsetting это статический файл у net core, у меня в asp net core Web Api. В который можно пихать различные настройки перед запуском проекта. Строка к бд, ключи, данные и т.п. Вот у меня и задача дать пользователь самому определять куда разворачиваются некоторые файлы>то почему бы не считать все относительные путине понял, еще раз
>>1622941Раз ты сам конфиг пишешь, то можно так:/foo/bar/tits.jpg - воспринимать как путь относительно исполняемого файла%ApplicationData%/boobs.mp4 - если начинается с %, значит использовать Environment.SpecialFolderD:/dildo.txt - полный путь, значит полный путь
>>1622942Хм, звучит хайповохорошо, а если я хочу не Environment.SpecialFolder, а AppDomain.CurrentDomain.BaseDirectory, как мне это указать?
>>1622941>>1622942И еще, тот же Path, может съесть много, может тебе его хватитьPath.GetFullPath("%ApplicationData%/pr")
>>1622944То есть, это может изменить любой пользователь, который пользуется апи. Он захочет не лазая в код и меня строку Environment.SpecialFolder, а просто чтобы указал относительно чего начинается путь: Environment.SpecialFolder, AppDomain.CurrentDomain.BaseDirectory
>>1622944Я ж тебе написал - первый пример. Если не указ диск/спецпапка считай относительно дирректории домена
>>1622948Бля, я совсем отупел. Я хочу сделать так:Тот кто пользуется моей апи, мог просто зайти в appsettings.json и указать либо нормальный путь или объект который хранит какой либо путь, то есть относительно чего начинать путь: BaseDirectory, CurrentDomain, SpecialFolder А не чтобы он лез в мой код ищя строчку Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "name")
>>1622952>пользуется моей апи> мог просто зайти в appsettings.jsonВ голосину нахуй. Ты чужим API не пользовался что-ли, поэтому такую хуету несёшь?
>>1622964Ладно, отброшу пока фантазии. Кто знает в .net core Environment.SpecialFolder распространяется только на винду или на другие операционки тоже?
>>1622972>значит использовать Environment.SpecialFolderЯ хотел так: >объект который хранит какой либо путь, то есть относительно чего начинать путь: BaseDirectory, CurrentDomain, SpecialFolder
Пацаны, сделал тудушку. В книге пошли какие-то делегаты, ивенты, для задротов короче. Можно ли уже открыть ВинФормс и делать мувисерчер?
>>1618705 (OP)Поясните про IEnumerator. Я правильно понимаю, что GetEnumenator() возвращает один из объектов массива? Какой именно, первый? Почему тогда возвращается интерфейс IEnumerable, а не сам тип элемента массива?В какой момент вообще вызывается GetEnumerator(), это как-то foreach неявно делает? Почему там не будут генерироваться исключения?
>>1623026>возвращает один из объектов массива?Нет, GetEnumerator возвращает, внезапно, IEnumerator.>первый?Класс, реализующий IEnumerble, умеет перебирать элементы множества.> возвращается интерфейс IEnumerableКем?>В какой момент вообще вызывается GetEnumerator()Странный вопрос, а когда вызывается Console.WriteLine? Когда надо, тогда и вызывают.>foreach неявно делаетСтрого говоря, для форыча сама реализация IEnumerable не нужна. Там юзается рефлексия и для его работы достаточно любого класса, с методом GetEnumerator, который вернет класс с методом MoveNext и свойством Current.> Почему там не будут генерироваться исключения?Какое исключение где должно сгенерироваться?
А вот скажите мне, в начале каждого приложения по дефолту пишется куча using с ссылками на различные сборки (это же называется сборки?). Вижуал студия мне активно намекает, что хоть я их упомянул, но я их не использую. Влияют ли как-то эти ссылки на само приложение, оставаясь неиспользованными? Увеличивают ли его размер, например.
>>1623166Не увеличивают. Даже используемые библиотеки обрезаются ровно до используемого минимума, но это не точно.
>>1623166> using с ссылками на различные сборки (это же называется сборки?)Нет, это пространства имен. Сборки перечислен в references.> Влияют ли как-то эти ссылки на само приложение, оставаясь неиспользованными?Нет, компилятор все вычистит. Точнее он заменит все классы их полными идентификаторами (System.IO.File вместо File). Ты можешь тоже без юзингов писать, используя полные имена. Чисто для удобства штука.
Возможно ли в C# пометить метод (функцию) как константный (по аналогии с C++), чтобы указать программисту и компилятору, что метод не меняет состояние объекта, её вызывающего?
>>1623318Только в структурах. Еще есть модификатор параметра in, он как ref но менять такой параметр нельзя.
>>1623349>Учишь очередной женерик мейнстрим говноязык пропихивуемый корпорацией, повевшись на наживочную "тырпрайз" приписку, не зная, что она применима только к западной системе>Удивляешься говновакансиям аутсорс галер, ничем не отличающихся от пхп-макакинга>пук-среньк
>>1623023>делегаты>ивенты>Можно ли уже открыть ВинФормстебе как раз таки в ВинФормс выше перечисленное пригодится
>>1622903Хз, правильно ли я понял твой трабл, но вот с помощью модели конфига и простейшей десереализации из строки.class MyJsonConfig { public string Path { get; set; } // другие поля конфига}..var configText = File.IO.ReadAllText(path_to_json);var config = JsonConvert.DeserealizeObject<MyJsonConfig>();var pathValue = config.Path;
>>1623727ой, проебал параметр функции десереализацииvar config = JsonConvert.DeserealizeObject<MyJsonConfig>(configText );
>>1623777Не понимаю, в чём сложность обучения работы с ивентами. Кликаешь (или производишь другое действие) на кнопку, она генерирует событие, т.е. ивент. К этому ивенту надо привязать метод, который будет как то реагировать на это событие. Всё. Ну а написание своих ивентов и делегатов - нахуй не нужно, в обычном программировании.
>>1623806>Ну а написание своих ивентов и делегатовЧего блять? Если делегаты еще можно использовать Func/Action, хотя это не айс, то как ты без ивентов живешь? Или всё остальное, кроме крудов и поко классов, это уже необычное программирование?
>>1623817Ну так разговор про винформс шёл, нахуя там свои ивенты писать? Юзаешь имеющиеся у контроллеров и всё, они там все действия покрывают. А для своих классов не люблю ивенты писать. Как по мне - это загромождает и усложняет код. Прям в методе и вызываю другие методы.
Привет, не понимаю как вытащить значение из текстбокса, что-бы дальше с ним работать. что я должен прописать?
>>1623823> нахуя там свои ивенты писатьНе отменяет написание модели. А так у тебя получается связанный спагетти код, раз все знают про друг друга. Из команды огонят ссаными тряпками за такое.
ебать вы тут дегроды еще в сторону вин формс и WPF смотрите, земля пухом. Надеюсь скоро и ASP.NET Core вскроется со своими кривым blazor, которые знают со всего комьюнити 0.5 Core deva. Не будет никогда у evilcorp ничего годного. Даже шиндовс говносрадальная ось, под которую пилят только потому, что она у каждого казуала стоит
Хайль, бандиты. Лабораторную делаю, клиент-серверный чатик. Вроде на WCF чёт сделал. Вроде работает. И тут я узнаю, что показывать со своей печки нельзя и надо реально подключаться к удалённому чему нибудь.Я бы дома оставил включённую пеку, но у меня айпишник не белый, не статический, хуёвый.Куда бы задеплоить серверную часть, желательно, бесплатно. Есть студенческая азура, но, если честно, я не совсем понял, можно ли там запустить такое, вендоспецифическое, или она больше для веба и кора. Чё делать, посаны?
>>1624587Подними самую уебищную виртуальную машина на азурных облаках. Там можно через рдп подключиться к ней и работать как с обычной виндой. А вообще, тебе стоит сперва забыть про вцф.
>>1624587На азуре можно. В принципе, когда я последний раз туда обращался, то там был варик с бесплатной на один месяц удалённой машиной.
Сап анон, решил вкатываться в бекэнд, есть базовые знания html, CSS, js давным давно писал на php, но это было баловство. Сейчас подошёл к процессу обучения более серьезно, мне нравится python, но эту я затею бросил поскольку в Мухосранске с ним джуновских вакансий мало нет, но дохера на php и C#. Начал потихоньку учить C# но как-то тяжело идёт, особенно не нравится что для некоторых простых вещей нужно писать в 2-3 раза больше кода, некоторое даже кажется искусственно усложненным по сравнению с теми же javascript, php и python. С другой стороны нравится что нужно думать о типах переменных, о видимости, о том что возвращают функции, то что везде нужно пилить в ООП, а не хуяк-хуяк и ТД и ТП, это дисциплинирует на некоторые вещи начинаешь смотреть по-другому. Но к сожалению плююсь чаще чем радуюсь. У вас также было поначалу или просто мне C# не зашёл? И насколько было правильным выбирать C# для старта?
>>1624870Лол. Как раз имею опыт в несколько лет всяких говноподелий на шарпе, пытаюсь выучить яву. Плююсь от его упрощений, так как в половине случаев нихуя непонятно какой результат будет. Думаю дело привычки.
>>1624870>У вас также было поначалупо сей день плююсь от этого индусовского говнаНасчет работы - это компании, которые случайно угодили на мелкософтовский софт, в будущем будут более внимательны и не станут становиться на те же грабли 2ой раз. Пайтон - идеальный язык по сравнению с говно-шарпиком, котороые к тому же сейчас дрочат в шарагах и вузах на первых курсах (см. посты выше). Я уже смотрю в сторону Rust и Kotlin, поэтому имо завязывай с этой йухней и выбирай нормальный язык
>>1624592ну, на WCF оказалось понятнее всего. Я так и не осилил нормально сокеты и прочее. Судя по всему за счёт бессистемности получаемых о них знаний. А времени на книжки уже нет>>1624825Про азуру спасиб
>>1624893>>1624924Спасибо аноны, походу мне не зашло и я больше привык к питону и джс и надо прокачивать их, я собственно к этому и склонялся, если уже через несколько лет плюетесь, то походу затея не очень удачная была. Но плюсы от обучения извлёк, лучше стал ООП понимать.
Надо сделать enum, соответствующий различным единицам измерения физических величин.Например Па*сек можно назвать как Pa_x_sec. Конечно, было бы лучше Pa×sec, но × использовать нельзя, поэтому и так сойдёт.Но вот например кг/м³ как нормально назвать в C#, чтобы сохранить эстетику кода? kg_div_m3 или того хуже kg_divided_by_m3 - хуйня какая-то уродливая, от которой даже веб-макаку стошнит.Пытался найти в таблицах символов Unicode символ в каком-либо языке, который похож на / и который можно было бы использовать в именах переменных, но сходу не нашел. Хотя греческие буквы типа μ или ρ VS нормально хавает. Даже некоторые верхние индексы типа ᵗ проходят.Может есть надстройка для VS, которая некоторое сочетание символов отображает на экране специальным образом, по аналогии с редакторами формул? Или как-то ещё можно решить эту проблему?
Короче, студентота загорелся охуенной идеей: сделать свой набор контроллов для консоли. И тут меня ждал сильный обосрамс. В общем, вброшу примерhttps://ideone.com/yB6hJbВ чем собственно проблема. Когда рисуешь в консоли контрол, если делать это асинхронно, может быть хуйня, что другой пидорас передвинул курсор и рисуешь ты его не там где надо. С одним классом это решается просто, я просто делаю статичный объект локер и вроде как все работает. Но если у меня там будут прогрессбары, таблички разные и прочее. Не получится же сделать так же, если не наследоваться от какого-то совсем базового класса, типа Controll, в котором лежит локер к которому все тянутся. А если делать так, то если в консольке будет куча контроллов будет очень много времени тратится на то чтобы все отрисовать. В общем, я наверное чего-то не понимаю. Раньше же делали консольный приложухи, где все двигалось одновременно и ничего друг на друге не рисовалось же.Я пока думал над этим, единственный выход придумал, это какой-то абстрактный экран, к которому в очередь выстраиваются контроллы, они говорят: Хочу здесь себя нарисовать, потом, когда все сказали где и как хотят нарисовать, этот экран всех в той очереди и рисует. Но блин, мне кажется, что это какая-то хуйня же.
>>1625473Создаешь бесконечный цикл, пока работает приложение, где по очереди вызываешь две функции:Update - всякая хуйня на подсчитать, обработать кнопки клавиатуры и т.п.Draw - отрисовка разницы между предыдущем кадром и следующим, в этот момент блокируется ввод пользователяИз другого потока влиять на Update нельзя.
Бля, можете перечислить все темы, или кинуть ссылку где они перечислены, которые нужны для того чтобы иметь джунские знания чисто по ASP.NET Core Web Api? Хоть курс какой нибудь, чтобы чисто заголовки прочитать
>>1625616> Бля, можете перечислить все темыАлгоритмы, структуры данных - чтобы ты понимал что ты пишешь и не писал говноПаттерны, как базовые, так и проектирования - чтобы ты знал как решаются классические задачиЗнание работы сетей - ты ж, блядь, для веба пишешь, сука, как ты будешь это делать, если ты не банально стек TCP/IP не знаешь и не понимаешь что там происходитПроектирование высоконагруженных приложений - чтобы твой бекенд от 100 клиентов не ложился, плюс никто сейчас не пишетЗнание микросервисной архитектуры, понимание того как работает событийная модель и т.д.HTML+CSS - это стандарт, раз ты именно в веб метишьЖаваскрипт и знание пары фреймворков и популярных библиотек - клиентскую часть сейчас почти никто не пишет на .net, а если ты будешь по 3 дня кнопку которая запрос к API делает, то нахуй ты такой нужен.SQL и умение писать на нем запросы(если в модный-молодежный стартап вкатываешься, то еще потребуется NoSQL освоить) - банально чтобы даже с каким-нибудь EF ты понимал что своими Linq ты хуйню сделал и либо Linq составлял нормальные либо умел на нативных решениях переписать нормальноЗнание, собственно, фреймворка(.net, .net core, asp.net, asp.net core) - чтобы ты не тратил кучу времени на свои велосипеды, которые уже есть во фреймворкеЗнание того как работает CLR - чтобы ты хотя бы понимал что под капотом происходит и в будущем знал как оптимизировать это говноУмение читать IL-код - аналогично пункту вышеУмение работать с докером - сейчас все еще стандарт для развертывания твоих апликацийУмение работать с гитом - стандарт, без гита никудаЗнание линукса и умение его администрировать - твое говно в 95% случаев будет на линуксовом сервере крутиться и ты должен понимать что там происходит.Знание ангилйского - гуглить тебе все равно придется и на русском ты хуй что нагуглишь, а через полгода-год придется самому вести переписки.Рост 180см+ возраст 20-25 - чтобы хрюша не послала нахуй.Член 20см+ - чтобы тимлид не послал нахуй.Общительность - чтобы команда не послала нахуйИсполнительность - чтобы менеджер не послал нахуйУхоженность - каким бы охуенным спецом ты не был, если от тебя воняет или ты выглядишь как чухан, никто тебя долго в офисе терпеть не будет
Сап, анонЕсть ли годный roadmap для fullstack desktop developer’a?Если нет, то есть ли хорошие ресурсы для создания роадмапов?
>>1625677Если это не паста то зря ты это писал, меня этой хуйней не напугаешь, я и так вротендер уже вкатившийся и знаю большую часть релейтеда. Меня вот именно что какие то темы по аспу интересуют, что нужно знать чтобы вебапи писать, всякие mvc параши не нужны. и вот это очень интересует> банально чтобы даже с каким-нибудь EF ты понимал что своими Linq ты хуйню сделал и либо Linq составлял нормальные либо умел на нативных решениях переписать нормально
>>1618705 (OP)Джава была топ платформой для разработки приложений, но с топорным синтаксисом. После того как накатили котлин, есть ли смысл вообще вкатывается в шарп? Достаточно ли под net core библиотек вообще?
Смотрите, встала необходимость как-то админам отображать статистику. Что есть из готовых решений для рисования графиков, диаграмм и прочего?
>>1626162Еще эти шикарные отступы с неймспейсом и постоянное ощущение за спиной, что МС выкинет очередную палку тебе в колеса
>>1626164Забавно, я до этого топил за шарфик (как минимум защищал за потуги net core). А потом понял что он все равно морально устарел.
Аноны как быть? Есть подписка на загрузку файла локально, то есть мы подписались на обновления файла, при записи каждого блока по 1024 получаем сообщение о том что такая часть файла загружена.Каждый раз это записывается в json, возникла проблема что при больших файлах выскакивает следующее: System.IO.IOException: The process cannot access the file '.txt' because it is being used by another processКод записи объекта следующий : var json = JsonConvert.SerializeObject(item, Formatting.Indented); using (var writer = File.CreateText(path)) { await writer.WriteAsync(json); writer.Close(); }Как быть?
>>1626457Бля братан, спасибо за помощь, если бы не ты всю голову бы сломал. От души пряма если серьезно че делать? Как из разных потоков записывать в файл инфо
>>1626460Копай в сторону стримридеров и стримрайтеров, а также более низкоуровнейвой работы с файлами.
Как бороться с тем что строки иммутабельны? Скажем, вот строка var str = "asd"; я хочу просто добавить к ней "dsa", просто решаю сделать так: str += "dsa", но, как я понимаю, в этот момент создается копия строки, а строка "asd" все еще где-то в памяти валяется. И меня это очень сильно волнует. Вот и что делать чтобы такого не было?
Приветствую рабочий класс. Есть два стула - .NET-тчик Junior 25k и JS trainee - 18k. На какой сесть, на какой HH посадить? Перспективы у .NET:1. Переплыть на full stack и начать зарабатывать деньги, а не собирать крошки с пола;2. Относительно не плохой стэк на проекте - WebApi .NET Core 2.2Опастности:1. Улететь на легаси и тонуть в решеточном говне до скончания веков;2. Т.к. галера свежая (судя по .NET core, а не легаси говне), то могут кинуть на Blazor, как full stack, что есть говно, калл и моча.Насчет +- JS-сника и так все понятно, иденственный минус - это лычка trainee и меньше ЗП, но в моем городе кол-во вакансий JS vs #, как 20к1.Дискас
>>1627401Еще один даун, который думает, что язык и стэк выбирается один раз и на всю жизнь? Иди туда, что больше нравится, если похуй выкатывайтя туда, где больше платят.
>>1627631>что язык и стэк выбирается один раз и на всю жизнь20 летний сеньер, который меняет стек каждые два года, ты?>>1627401>Улететь на легаси и тонуть в решеточном говне до скончания вековНа JS тоже есть шанс улететь на легаси говно типо ember / knockout / etc>>1627401>то могут кинуть на BlazorОтказывайся, если галера достаточно адекватная, никаких проблем не будетДотнет, имхо, в твоем случае лучше, перекатиться в JS с дотнета будет проще, наоборот - нет
>>1627631ноулаферы на месте. Как бы охото после РАБоты дрочить новый фреймворк>>1627711>Дотнет, имхоя на мидла # выйду быстрее, чем на мидла JS. Просто решетки - это яма, уже в галерах ряды .NET макак редеют и адекватные люди переходят на Node или Python. Я не хочу мало того, что в легаси утонуть, так еще и уплыть на умирающих решетках в помойку. Если бы # реально были перспективные, я бы даже не думая выбрал их...
Аноны выручайте. Как в asp net web api передать стрим? Есть клиент:await client.PostAsync("Files/upload/byStream", new StreamContent(file.Data));Есть сервер:public async Task<IActionResult> UploadFileByStream(){}Request.Body всегда пустой как быть?
>>1627727>Просто решетки - это яма, уже в галерах ряды .NET макак редеют>>1627727>Я не хочу мало того, что в легаси утонуть, так еще и уплыть на умирающих решетках в помойку>>1627727>адекватные люди переходят на Node или PythonСпорные утверждения, но раз ты так считаешь, то тебе действительно будет лучше брать JS, твои маняфантазии что на условном пайтон лучше никуда не уйдут.Открываю секрет: на пайтоне тоже есть говно на старом торнадо, говно, которое в сотни раз (субъективно) хуже легаси, например написание условных парсеров.Может быть тебе повезло бы влететь на нормальный проект на пайтоне, где будут современные плюшки типо AWS, но не факт.
>>1627742>Спорные утверждениядавай будем смотреть правде в глаза, что open source - это последний вздох мелкософт. Я люблю #, но не хочу с senior/middle опять падать до джуна в python/Go/другом языке. И кстати да - меня берут на позицию, где выгоняют фул бэкера и берут #+JS (уже сказали на собесе, что фул бэкеров осталось единицы) и я даже не знаю, в каком соотношении я буду писать бэк, а в каком фронт. Во вторник буду опять мозги ебать насчет проекта и перспектив, на JS всегда заберут, как трейни - у них только штат растет, а вот .NET-тчиков, как бы не пели за свои Core и Blazor - гонят в шею
>>1627748>open source - это последний вздох мелкософт>>1627748> хочу с senior/middle опять падать до джуна в python/Go/другом языке>>1627748>где выгоняют фул бэкера>>1627748>гонят в шею>>1627748>что фул бэкеров осталось единицыПо этим утверждениям, становится понятно что ты даже близко не понимаешь о том, что происходитВ нормальных галерах, при должном желании, перейти на Go, с дотнета, вполне себе можно, даже без потери зарплаты.Вопрос только нахуя, учитывая какое ГО говно.Не знаю кого там выгоняют, пиздишь либо ты, либо галера>>1627748>Blazor Это говно никто кроме шизиков серьезно не воспринимаетБери JS, твои маняфантазии не уйдут
>>1627770Я другой анон. Хотел бы спросить, а как у тебя дела с работой? Ты фулл бэк c#? На чем пишете и что используете, если есть возможность опиши свою галеру
>>1627785>Ты фулл бэк c#?>>1627785>На чем пишете и что используетеЗависит от размера проекта, сейчас полностью на бэке..net core, ef, nancy, polly, rabbit, xunit, postgresql, mongo, на фронте часть на реакте, часть на angular2+, но ангулял планируют выпиливатьВ целом проекты разные, есть и легаси на MVC5 + angular2, там как правило работают фуллстеки, хотя я бы это особо и легаси не назвал
>>1627770>близко не понимаешь о том, что происходиту меня 3 из 4 знакомых уже с веслом в руках, только раскидана от пыхаря до dev-ops (все на той же галере). Поэтому я прекрастно осведомлен, что сейчас шепчет рыночек.>ГО говноЭто я так, сам не писал на нем. Насчет перепрыгнуть с одного стэка на другой - будет полюбому рейз вниз (уже узнал)>Бери JSСпасибо за совет, наверное так и поступлю
>>1627808>легаси говоришь?>>1627803>хотя я бы это особо и легаси не назвалДля детей, как правило, всё что не Core это легаси>>1627808>Что насчет .NET 3.0 скажешь.NET 3.0 не так уж и плох, а вот Web forms ужасны
>>1627803Спасибо. Довольно стандартный набор, только докера не хватает. И этот набор полностью покрывает потребности? То есть на сколько будет живуч данный набор?
>>1627817>Довольно стандартный набор, только докера не хватаетОн есть, я просто забыл упомянуть, на .net core, кажется, это уже что-то стандартное>>1627817>И этот набор полностью покрывает потребности?Вполне, но это понятное дело далеко не полный список того что естьEf core проблемный, но в 3.0 вроде уже исправили много чего.>>1627817>То есть на сколько будет живуч данный наборСложно сказать, если не будет технического долга, то вполне себе, если я правильно понял вопрос
>>1627822>А почему ef а не дапер?Я не помню конкретно почему, но были какие-то причины от него отказаться>>1627832>А и ещё есть хоть какая-нибудь надежда на blazor? Там через 3-4 годаВряд ли, да и мне лично не сильно и хотелось бы, typescript и angular приятнее
В ноябре решится судьба шарпа. Либо он обрастет опенсорс коммьюнити и wpf через vulkan api c visual studio портируют на линукс, либо отправится на свалку истории!
>>1627885будет 1, но успеха это ему не придаст, т.к. мелкософт как обычно держали тузы в рукаве, вот только опаздали их показать. Теперь на этих тузах будут сидеть
>>1627885А чьё место должен занять шапр в случае успеха? Джавы? Так она и так труп. С/С++? Ну в геймдеве юнити уже топ-1, а в остальном мёртв сам С++.
>>1627876У тебя целый список sql запросов.? Короче заворачивай их в структуру json : ["","",]И потом через system.text.json парсь как list<string> и все
Аноны как в asp net core mvc читать MultipartFormDataContent?На клиенте есть примерно var content = new MultipartFormDataContent();var imageContent = new StreamContent(file.Data);content.Add(imageContent, "file", file.Name);var response = await client.PostAsync("upload", content);Как теперь это читать?
>>1628221Ну у меня порядка 15 файлов с разными SQL-задачами. Их довольно легко в этих самых файлах редактировать в Notepad++. Но я не хочу класть эти файлы рядом с exe-шником, хочу просто на этапе компиляции вшить это в соответствующие string.А твоё решение как я понимаю тоже требует на этапе выполнения считать это всё из файла с json?
>>1628287а ты работаешь с asp net core web api? Если запросы статичны, то есть вообще не меняются можешь добавить в appsettings.json или свой settings.json добавить и в Startup парсить через Configuration.GetValue<string>
>>1628287>Требует на этапе выполнения считать это всё из файла с json?Это самый оптимальный вариант, через Configuration.GetValue<string>, нужен тебе какой-то запрос, вызываешь Configuration и все, просто и удобно
>>1628287Так же в Configuration ты можешь вызывать секции, то есть запросы можно будет каталогизировать:То есть у тебя json следующего вида:{ "Get files by somthing":{"ByIndex":"Твой запрос","ByName":"Твой запрос"}И ты вызываешь Configuration.GetSection("Get files by somthing").GetValue<string>("ByIndex") и получаешь свой запрос. Очень удобно}
знающие люди, скажите пожалуйста с точки зрения кода что будет лёгче для компаесть лист с датам, нам нужно проверить больше ли самая большая дата указаннойчто будет быстрее пройтись фором и сравнить каждые даты с указанной, или отсортировать лист по увеличению даты и сравнить указанную дату с последней?
>>1628332Конечно пройтись и сравнить с каждой. Сортировка подразумевает под собой гораздо больше сравнений.
>>1628391хорошо, спасибо анон! а тот в интернете мне какие-то люди говорили что сортировка и занимает 1 строчку а фор 10, и что лучше сортировку ведь меньше строчек кода...
>>1618705 (OP)Как сделать нечто подобное http://ecomputernotes.com/csharp/cs/multiple-main-functionsно с помощью MSBuild?Чтобы можно было указать какой /main юзать в качестве майна, а какие - нет.
>>1628289>>1628291>>1628294У меня десктопное приложение, которое пишет результаты расчётов в SQLite и читает их оттуда для сравнения и визуализации.Ранее с json не работал, поковыряю его, посмотрю что как.В идеале хочу иметь один файл exe, который можно передать коллегам, и он у них не сломается. Если где-то рядом должны лежать внешние файлы, вероятность, что они потеряются и всё поломается становится очень высокой.
>>16284791. Google2. MSBuild parameters3. MSBuild properties4. https://docs.microsoft.com/en-us/visualstudio/msbuild/common-msbuild-project-properties?view=vs-20195. StartupObjectЮзать как то так:>< StartupObject >foo.Program2< / StartupObject >или так:>MSBuild foo.csproj /p:StartupObject=foo.Program1>MSBuild foo.csproj /property:StartupObject=foo.Program2Где foo.Program1, foo.Program2 - классы Program1 и Program2 в namespece foo, внутри которых эти ваши - майны.
>>1628519Какой сложности и объема проект? Если мелкий - ебаш на Node JS или пыхе, если крупный интерпрайз проект - можно смотреть в сторону Java или .NET
>>1628537так вопрос в проекте. У тебя логика сломанна. Это тоже самое, что спрашивать - какую машину купить - Трак или Таврию? Тебе для чего? Если с петом мелкософта поиграть - .NET core, если какой то комерческий проект - то нужно смотреть требования заказчика. Ты же блять не будешь покупать MsSql за 12к для свистелки-перделки?
СапРаботаю около полугода в конторке в своем мухосранске 300кПлатят не плохо 900не деревеянных, но есть желание перекатиться и подпрокачать себя И ввиду того что я сейчас юзаю довольно банальный стек sql,git,чутка ООП,WinForms, созрел вопрос:Какой примерный стек нужен от джуна чтоб вкатиться куда нибудь в МСК?
>>1628717Спасибо. Лол когда под тестовый язык f# больше возможностей и способностей чем под c#, я хуею. И при чем функциональная парадигма больше подходит под большой интерпрайз. А f# опен сорс или как всегда у Майков?
>>1625473Посмотри, как было сделано Turbo Vision (или его Free аналог). Наверное есть и более современные версии, но я давно не интересовался.
>>1628332Или можешь посмотреть в сторону сортированого контейнера. Вообще, изучи сложности операций в разных контейнерах
>>1628551SQL, Entity Framework, ООП на отличном уровне, async/await (полное понимание работы), паттерны (SOLID, Репозиторий и всё в этом духе), GIT (десктопная поебень не интересует, на собесе могут спросить про конкретные команды и будут правы, а через что на проде коммитить - сам решишь), тестовый фреймворк (XUnit, NUnit, MSTest - разницы особой нет, дальше уровня ассертов обычно не спрашивают), ну и дальнейшее направление (ASP.NET MVC, Blazor, WPF, UWP, Unity, etc). Ко всему этому лучше почитай литературу: сможешь поговорить с тимлидом на умные темы.Если выберешь веб - должен уметь в html/css/js/bootstrap. Глубокие знания обычно не нужны, если только не впишешься в говноконтору джуном-фуллстэком.Выберешь десктоп - там XAML-разметка. Опять же, основы лучше изучи, чтобы смог что-то сверстать на коленке.Выберешь геймдев - готовь жёппу и шарь работодателю свои познания в математических дисциплинах. Что бы ты ни выбрал по направлению - перед попыткой схватить удачу за хуй хвост лучше обзаведись портфолио: одного-двух хорошо смазанных и вылизанных проекта в опенсорсе на гитхабе вполне достаточно, чтобы заинтересовать няшу с отдела hr. Если постараешься и вылижешь каждую строку, да ещё и по паттернам, со здравой расширяемой архитектурой и с мануалом в readme по запуску твоего творения - можешь собирать чемоданы. Но это маловероятно.Вообще странно, что работающий анон спрашивает про стек джуна, но я в чужие дела не лезу. Спрашиваешь - значит есть зачем.
>>1629144Антон как думаешь такого портфолио хватит?Есть на uwp работающий клиент ftp, документацию ещё пишу и пару классов надо подправить. Делал все через mvvm, через командыЕсть на ангуляре 8 свой бложик, с wyswyg и бэк в виде шарпа с даппером.Есть проект освещения на ардине под десктоп на winform, это самый доделанный проект, но и самый первый, там надо переделывать всёЕсть так пару проектов на blazor с js, по типу тудушек.По патернам есть всякие фабрики, компоновщики, стратегии. Фасады и т.п.Более менее соблюдаю solid. Документация есть в половине проектов.
>>1629144Ебать спасибо тебе, человеческое Да я работаю на галерах макакой, это слабо связанно с нормальным программированием
анон, почему визуал не видит класс елемента? у меня в контролли есть "FilteredGridView" но в одном проекте визуал его видит пикрил1 а во втором пикрил2 нет... я не могу понят почему, все названия пространства имен я вроде поменял на нужный
Зачем нужны nullable reference types в C# 8.0? Ссылочные типы ведь и так могут быть null. Что изменится, если объявить его nullable?
>>1629365Введено вместе с Non-nullable reference types, чтобы ты мог показать компилятору, что эта переменная может иметь значение null и её нужно проверять на равенство null перед доступом к значению, если её объявить как non-nullable то ты не сможешь присвоить этой переменной значение null и тебе не нужно будет делать проверки на null при доступе к значению этой переменной.
>>1629386>если её объявить как non-nullable то ты не сможешь присвоить этой переменной значение null и тебе не нужно будет делать проверки на null при доступе к значению этой переменной. Но компилятор на это не ругается, только предупреждение даёт. И присваивать null позволяет, и сравнивать.
>>1629194Да, звучит неплохо. Если это не копипасты с метанитов или чужих гитов и сможешь пояснить за свой код - можешь шарить в попенсорсе и кидать ссылки в своём резюме. Но документацию лучше допиши: сам не забудешь и тимлиду понравится такой подход.
О боги программирования! Нужно помощь по оптимизации.Есть данные в виде List<List<string>> (по сути таблица), которые нужно преобразовать в текст с нужными разделителями. Можно это как-то сделать быстрее и оптимальнее, чем на пике? А то оно ОЧЕНЬ долго(много часов) добавляет разделители при огромном количестве столбцов и строк.
>>1630244Начнем с того, что цикл foreach в 4-5 раз медленнее, чем обычный for. Закончим тем, что ты идиот, не понимающий базовых вещей, если для аппендинга используешь иммутабельные стринги, которые создают новый string при любой операции, их меняющей.
>>1630256Да я даже не джун, ну чего ты.>Начнем с того, что цикл foreach в 4-5 раз медленнее, чем обычный for.Ок, переделаем под for.>если для аппендинга используешь иммутабельные стринги, которые создают новый string при любой операции, их меняющей.Что и как можно использовать вместо них?
>>1630244>>1630263Для работы со строками используй StringBuilder. А говнокод твой непонятен. К чему у тебя обертка в виде списка вообще, если в твоём примере заменить List<List<string>> на List<string>, то всё что изменится это станет на 1 цикл меньше? И почему разделители нельзя добавить сразу при создании изначального списка, добавив сразу всё в результат?
>>1630271>Для работы со строками используй StringBuilder. Спасибо!>И почему разделители нельзя добавить сразу при создании изначального списка, добавив сразу всё в результат? Да, ты прав, переделаю, чтобы 2 раза не обходить.>К чему у тебя обертка в виде списка вообще, если в твоём примере заменить List<List<string>> на List<string>, то всё что изменится это станет на 1 цикл меньше?Так это таблица: один список строк - одна строка обработанных данных. Хм, хотя наверное да, можно сразу все в один StringBuilder c \r\n делать, тоже переделаю.
>>1630320Суть в том, что в примере у тебя все строки получат один разделитель, единственное отличие в том, что ты добавляешь \r\n после конца каждого массива строк. Можно заменить на \r\n после каждых n строк,если для тебя просто важно чтобы результат выводился столбиком. Т. е. получится что-то вроде var sb = new StringBuilder();for (int i = 0; i < data.Count; i ++) {sb.Append(data + separator);if (i % 10 == 0) sb.Append("\r\n");}
>>1630153Спасибо. Нет, не копипасты, брал от туда только части и под себя делал. Надо будет еще нормальное резюме составить и алгоритмы всякие подтянуть
>>1630330Да нахуй ты этому идиоту со шлюхами помагаешь? Написал, что у него не так - дальше пускай сам разбирается, в гугле его не забанили. А так ему очевидно будет похуй почему for быстрее foreach и что такое мутабельность; через полгода будет плодить очередные высеры о том, что иммутабельность - зло и вообще ненужно.P.S.: У тебя в коде всё равно происходит конкатенация в выражении "data[і] + separator".
>>1630359>конкатенация в выражении "data[і] + separator".Без этого никак. Ради сложения двух строк создавать sb - ненужный оверхед.
>>1630362Издеваешься? Ещё один аппенд дописать и готово. Или хочешь сказать, что одна лишняя строчка убьет читабельность?
>>1630330Длина строк всегда разная, тк не все колонки задействованы, но все равно спасибо: я так же буду на моменте обработки данных добавлять \r\n и сразу собирать итоговый StringBuilder.
>>1619648Почему у тебя код уровня студента ПТУ?Где лежит твой json файл?Ты уверен что точно знаешь, как работает Data.ReadObject()?
>>1619762А что по твоему происходит с относительной строкой? Она точно также превращается в абсолютную, зависит от настроек и магии твоего фреймворка или приложения.
>>1620179О-о-о, моя любимая тема!Tl;DR в самом конце.DisclaimerРаботаю с C# с версии 1.0 (год 2003 на дворе). Начинал со всяких пхп, вб, делфи. Делал проекты на C++ и Джаве в универе, в аспирантуре, на работе. Встречался со Страуструпом, который заявил что если кто-то найдёт мастера с++, то он очень хочет с ним познакомиться, потому что по его мнению плюсы невозможно знать хорошо, их можно просто знать (отсюда и большая нужда в Rust, на котором уже начали делать добавления к Линуксу, писать дрова и вообще целые ОС - https://www.redox-os.org/, новые игровые движки и конечно WebAssembly).Работал как в энтерйпрайзах типа Amazon, GM, Siemens, так и стартапах от 2 до 10 человек.Преподавал Ruby, JS/TS и Python в универе по вечерам в свободное от работы время.C# - наше всёПомню как Java и Ruby начали вируситься из всех щелей. Коллеги и товарищи постоянно пытались перетянуть в один из этих языков. Стабильно раз в год я брался за большие проекты с одним из них. Потом еще добавился Питон, NodeJS. Потом всякие React'ы и Angular'ы.Мне нравилась моя среда разработки, но постоянно гложило то, что я завязан на разработку под Винду и одну единственную IDE. А также зависть того, какие крутые штуки может вытворять JVM (по сравнению с CLR). Поэтому поиск куда бы перескочить продолжался.Но каждый раз как я пересаживался на Java, я не мог перестать плеваться. Пусть Spring (благодаря JVM продвинутости) и имела крутые фичи в своём арсенале, но постоянно было ощущение что работаешь с костылями и бета продуктами. Постоянно надо было дружить сотни разных библиотек от разных создателей друг с другом. Бесконечное курение мануалов, которые надо было искать по всем закоулкам интернета.Про Руби с его рельсами вообще молчу. Он появился как замена ПХП. Позволял быстренько клепать POC, Demo и небольшие сайты под копирку. Отсутствие производительности решалось закупкой железа и большими счетами за хостинг.Питон по производительности тоже где-то там рядом с Руби, кстати. Не один раз приходилось переписывать API с Питона на C#. Работая с теми же самыми ресурсами (DB, Queues, distributed cache, external APIs, etc.) - Python выдавал 5-10 сек- C# - 50-500 мс.Конечно, код на Питоне иногда был писан индусами или студентами. Но чаще всего всякими сеньорами, бившими себя пяткой в грудь, доказывая что Питон круче всех.TL;DRС выходом dotnet core все сомнения отпали:- довели до ума то, чего нам не хватало из Spring- open source и cross-platform!- производительность больше не проблема- писать и запускать код можно в VS, VS Code, <вставь что нравится>, Notepad++, терминале (lol)- писать можно под мобилки, веб, облака, игры, любой десктоп и нынче даже скрипты для автоматизации- Azure любит C# и dotnet по умолчанию (остальные облачные платформы тоже с радостью с ними работают)- F# никуда не уходил и только стал лучше- WebAssembly c Blazor в самом разгаре и будут становится более популярными с адоптацией HTTP 2 (а скоро и HTTP 3), который уже поддерживается всеми облаками- Powershell теперь может работать на Core, используя все его плюшкиhttps://visualstudiomagazine.com/articles/2020/03/06/de-icaza-webassembly.aspx
>>1630690перед тем как спросить у тебя куча вопросов и поблагодарить множество раз, если у тебя хоть какие-нибудь пруфы, подтверждающие твои слова о опыте.
>>1630692Это же деанон, ну ты че.Обычно опыт подтверждают собеседованиями. В данном случае наверное просто техническими запросами о помощи.
>>1630696хм. хорошо я уважаю твой выбор. тогда посыплю вопросиками.Сразу в омут, blazor. Blazor должен вот-вот выйти, но очень сырой. Нет route catch all, нет нормального получения информации перед загрузкой Dom дерева, нормальные модельные окна не создать без костылей, localstorage не работает даже в тестовой репе у майков, не работает простые взаимодействия с системой - выбор файлов. и это только с тем что я столкнулся, а сколько еще. То есть без js blazor полуживой.Насчёт .net core, инфы очень мало. вот недавний случай, ножно было через multiple part отправлять с клиента стрим с именем файла в net core api. Ели как нашел документацию от майков в репозитоии примеров, в котором говорится что этот пример может отправлять большие файлы ~2MB но это же смешно. А самое веселое это то что стрим на сервере превращается в тыкву, в memory stream без буфера. Я это понял когда захотел отправить около 500мб. И это только один случай такой ебли с бубном. Хотя кричат опенсорс, комьюнити, а по итогу на гите проблема с оптравлением большого файла открыта. А на стаке все поголовно отвечают что нужно через memory stream.И таких проблем много, тот же cors политика отправки.Я это к чему, все кричат о c# круто, быстро, опенсорс, а после своих выкрикиваний показывают как массив сортировать и все. а о том как работать с файлами, бэком брокерами и и.п. ни слуха ни духа, только копипастят друг друга что в голову придет и все. А потом приходится через тонны документации Майков искать крупицы.грустно это все
>>1630703а вот ещё вспомнил весёлый случай. игрался с апи, у которое есть долгое время ожидания. пошел гуглить как подписываться на ожидание и какие есть альтернативные пути. на стаке говорят, делай через async/await и пингуй раз в 1000ms, лол. облазил все. кто-то говорит про thread, кто-то предлагает с нуля реализовывать систему менеджера, который будет выдавать нужные результаты, приводя при этом пример пару строчек. Благо тут анон хороший нашелся и почти готовую систему скинул. А потом мне вечером в рекомендациях появляется видео в рекомендованных про митап .net и вступление чувака про rxjs, боже благослови его золотые руки. И это только из недавнего и что смог вспомнить
>>1630690>довели до ума то, что 20 лет нагло крадут из проперженной жавы и всё никак не осилят>open source и cross-platform (на самом деле всё давно в пизде и остается лишь перепаковывать бинарники)>производительность больше не проблема, если сравнивать с питухонами и рубями>код можно писать>писать можно под мобилки, веб, облака, игры, любой десктоп и нынче даже скрипты для автоматизации, правда в лучшем случае получишь 100мб блоб грузящийся 10 секунд, может даже запуститься>MS пропихивает свою говно на своей платформе>F# всё еще самый невнятный высер ФП мира в истории, саймон пейтон ситуацию не спас>Полноценные WebAssembly фрейворки, написанные комьюнити даже на TS и Rust'e, идут в продакшены>Мегакорпорация наконец справилась с плагином для шела, ебать
>>1630706и это только с web API. мне страшно представить что будет если я захочу пол мобилки начать писать и в мою голову опять какое-нибудь дерьмо придет и буду опять мучиться как с wpf. Однажды я решил добавить контекстное меню в wpf приложении через command и mvvm. оо сколько простыней инфы я получил о костыле proxy, биндинге и о том что виртуальное Dom дерево нет в wpf. а вот о том как нормально связать команды vm и vm меню ничего, только пласты инфы о паттерне proxy
>>1630707Люди берут нормальный инструмент и делают продукты, которые нормально работают годами да, большинство кода на любой платформе и языке пишется макаками, которые влезли в область ради денег, не надо сравнивать с ними.Всегда найдутся те, у кого рот полон говна и им не терпится им поделиться с окружающими.Гугли нормальные бенчмарки и пиши нормальный код, и будет у тебя загрузка по сети чего угодно что на плюсах, что на шарпах работать практически одинаково.https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=plaintexthttps://stackoverflow.com/questions/43920942/unexpected-outcome-of-node-js-vs-asp-net-core-performance-testhttps://raygun.com/blog/dotnet-vs-nodejs/ - этот пост как только уже не сношали.
>>1630703У всех конечно своя специфика работы и свои проблемы, поэтому со всех их множеством ни один эксперт никогда не столкнётся. Я помню до 2012 года инфу реально было сложно гуглить (особенно на русском). Основным источником знаний были коллеги и документация внутри компании. Потом как-то проще стало до выхода первой версии Core. Но оно было ожидаемо. Любой свежак еще несколько лет обкатывать надо (ждём .NET 5 в этом году, который должен стать первым стабильным продуктом после появления Core). Тот же Blazor еще до нормального прода надо пару лет дорабатывать. Любой продукт эти стадии проходит.Сейчас с поиском инфы проблем вообще не возникает. И обратная связь появилась и работает хорошо:https://docs.microsoft.com - тут можно прям в статьях вопросы задавать (снизу на странице) и отвечают быстро.https://github.com/dotnet/core/issuesС приведёнными тобой проблемами в принципе сталкиваться не приходилось. Хотя тоже работаем с большими файлами, БД, кучей запросов, долгими (иногда несколько дней долгими) асинхронными бэкграундными процессами.Я стал придерживаться идеи что люди любят в принципе усложнять себе жизнь. Из-за этого мы видим не тривиальные вопросы и костыли. Много такого кода было вычищено из наших репо.А еще люди уже который год не могу срастить разницу между параллельной и асинхронной обработкой:https://dev.to/scotthannen/concurrency-vs-parallel-vs-async-in-net-3812Научившись правильно работать с async/await много проблем быстро отпадёт.На счёт твоей multipart проблемы - вот это еще не читал?https://docs.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads?view=aspnetcore-3.1
>>1630708WPF меня каким-то образом обошёл стороной. Мы сразу с винформс в веб перескочили и там сначала был ад asp.net web forms, а потом достаточно быстро в asp.net mvc, RESTful и на клиенте сначала всякие knockout'ы, а потом Vue, React, Angular.Делали проекты на Xamarin для андроида и ios (там тоже XAML используется). Бэкенд на Core с API, и разные морды под веб и под мобилки. Большую часть времени мы ломали головы над бизнес задачами, а не техническими проблемами. Так что не боись.
>>1630707Один и тот же код деплоим хоть так, хоть в докер конейнере в винду и в убунту. Работает из коробки без напильников.
>>1630721>усложнять жизньТак я поэтому-то и ищу решения от Майков а их нет. Идёшь на стак а там пишу вот так упрощённо записывая все в memory stream. Вот и приходится не найдя готового инструмента и простого и лаконичного решения делать костыли.>На счёт твоей multipart проблемы - вот это еще не читал?Это и читал, особенно главу : Upload large files with streamingЕсли зайти в репу примера загрузки и посмотреть под капот можно увидеть сюрприз:https://github.com/dotnet/AspNetCore.Docs/blob/master/aspnetcore/mvc/models/file-uploads/samples/3.x/SampleApp/Utilities/FileHelpers.cs>return memoryStream.ToArray(); ой-ой вот тебе и загрузка больших файлов, а в доках к репе написано ~2mb вот это мощь. А почему нельзя читать стрим? А потому что seek у него отключен, он сразу в конечном положении и получается только через массив байтов.А так спасибо за помощь. А вы ждёте файлы несколькл дней через async? если да, то это как? Просто я для себя открыл iobservable и rxjs и теперь асинхронные ожидания не проблема.
>>1630723Спасибо. а как вы на xaml делали контекстное меню и прочие штуки, которые требуют виртуального дом дерева? хотя бы кратко и как это все связывали через mvvm
>>1630721между async и параллельностью это пончьоо6, спасибо лысому из itdvn. если кратко, то async позволяет отложить задачу до тех пор пока не выполнится, отдавая обещание в виде таска, там ещё Стейт машина переводит контекст выполнения программы дальше и много ещё умных слов. параллельность на то она так и звучит. говоришь машине хочу выполнять несколько задач одновременно, и машина с помощью внутреннего механизма это делает. Все очень просто, если вот так на пальцах
>>1630732это как раньше я не видел разницу между интерфейсом и базовым классом, а потом ранними утром и пару видео itdvn сразу осенило что к чему. Сейчас даже не думая получается создать когда нужно интерфейс или базовый класс
>>1630690>какие крутые штуки может вытворять JVM (по сравнению с CLR)давай, расскажи мне за эти "штучки". Я уже расстегнул молнию на брюках и выпил литр воды. Готов тебя слушать
Посоветуйте, пожалуйста, книгу на русском языке с примерами кода полезных приложух, вроде Automate the boring stuff на Питоне.
>>1630728Эмм, там хоть и XAML, но если ты Web controls не используешь, то никакого DOM нет. Все UI элементы доступны из кода.Не смог найти доков, по которым мы MVVM делали, все ссылки на xamarin.com теперь ведут на майкрософт докс.Мы выгребали данные из всяких DataSources (DB, API) и отправляли объект для рендеринга во ViewModel.abstract class ViewModelBase : ExtendedBindableObject, INavigationAware, IDestructibleclass ScheduleManagementPageViewModel : ViewModelBasepartial class ScheduleManagementPage : ContentPageScheduleManagementPage.xamlScheduleManagementPage.xaml.csScheduleManagementPageViewModel.cs
>>1630690>Работая с теми же самыми ресурсами (DB, Queues, distributed cache, external APIs, etc.) >- Python выдавал 5-10 сек>- C# - 50-500 мс.Какие-то охуительные истории. При работе с базой, сторонними сервисами и тому подобным 95% времени тратится на сетевое IO, и ожидание ответа, та хуйня что ты там мог выиграть за счёт скорости выполнения кода это капля в море.
>>1631194спасибо большое. да ошибка вышла, спутал с дом деревом. статья было что в wpf нет виртуального визуального дерева и все надо через код делать, а потом уже биндить экземпляр меню.
>>1630726А тебе файл сразу из браузера надо стримить в реляционную БД что ли? Примеры они на то и примеры, чтобы показать имеющиеся классы и методы. Код в примерах ни разу не для прода. Никогда его не копипасть.Ссылка у тебя на пример приложения (sample). А то щас люди подумают что это часть фреймворка.Стрим надо в файл уложить, там нормальный пример с async/await для этого есть, а дальше можно и в какой-нибудь BLOB storage (осторожно с using'ами, тот код для прода тоже надо переписывать).Файлы мы по несколько дней не ждём, они быстро записываются на какой-нибудь диск. Обычно такие операции (для отправки) через fire-and-forget делаются. Для приёма косяк может быть только если соединение плохое.По 10+ часов можно ждать внутренних процессов, типа анализа миллиарда записей в БД (и вообще анализ данных, неважно из каких источников они приходят), создание ресурсов в каком-нибудь cloud сервисе, копирование данных с одного сервера на другой.Такие долгие операции асинхронно и через всякие очереди делаются (RabbitMQ, NServiceBus. etc.). Иногда сервис периодически опрашивает процесс, иногда процесс может отправить сигнал на сервис о success/failure.Hangfire - прикольная штука. Много где вижу.
>>1631255Нет.Продукт был выпущен для медицинского использования и публичный доступ был запрещен. Госпитали в разных странах готовят телефон специально под пациента со всеми настройками и он обязан им пользоваться на время исследований.Если очень хочется что-то пощупать, то вот публично доступный сайт: https://www.shopcarsnow.com там процентов 20 моей работы на фронте и 80 на бэке
>>1630735Интерфейсы были введены для обеспечения Trait design-pattern, потому что у МС не было времени думать как правильно заимплементить множественное наследование и они просто скопипиздили дизайн из Джавы.Но с C# 8 появились нормальные Traits. Это те же интерфейсы, но они теперь позволяют добавлять имплементацию методам. Абстрактные классы (на собеседованиях о них только старички вспоминают, в проде я их уже лет 5 не видел) больше не нужны.А вообще на интервью на вопрос "what's an interface?" в 99% случаев ожидают услышать "interface is a contract". Потом начинают копать в сторону DI, IoC и SOLID principles.
>>1631356>Но с C# 8 появились нормальные Traits.Может сперва почитаешь, что такое трейты, прежде чем высирать свое важное мнение?
>>1631356>Но с C# 8 появились нормальные Traits. Это те же интерфейсы, но они теперь позволяют добавлять имплементацию методам. Угадай откуда это скопипиздили.
>>1631420Что тут гадать, там же уже написано - Джава. А потом их в Скале так и обозвали вместо интерфейсов.
>>1631376Приятно подискутировать с экспертом в своей области, который умеет четко и доступно донести свои мысли и предоставить аргументы с проверяемыми фактами.Я всегда допускаю что не знаю/плохо понимаю какую-то тему и готов узнать что-то новое.Вам про - traits in Java, Scala, Python, Rust, C#, <вставь пропущенное>- traits как design-pattern- трейты у пацанов на районе?надеюсь обойдёмся без мамок, ёбли и говна
>>1631447Не, там написано про обычные интерфейсы, которые из-за нехватки времени взяли. А в C# 8 шарп уже стоял на ногах и было время подумать над "новым".
>>1631460Как бы сам паттерн уже давным давно существует и с разной степенью корявости существует практически во всех мэйнстримовых языках. Разные языки с разной скоростью адаптируют/заимствуют новые и старые идеи. Никто этого не скрывает и никакие срывания покровов не нужны. В чём смысл твоего тыкания пальцем?
Когда в компиляторы C# завезут автоматическое использование AVX в циклах и остальные оптимизации с AVX инструкциями? в C++ это реализовано уже давно.
>>1631470Мне в том посте показалось некое противопоставление старых интерфейсов и трейтов. Якобы вон новые красивые фичи vs старье из джавы. Но возможно только я подумал в таком ключе.
>>1631481Спасибо за адекватный ответ. Было бы здорово, если бы люди чаще признавались в том, что они пытаются спорить и агриться на то, что сами выдумали, а не на то, что происходит на самом деле.мне тут запятых подвезли, не знал куда деватьВерсия покороче: сам выдумал, сам разозлился/обиделся
Используете ли вы в своих проектах документрующие комментарии по типу <summary></summary> ? Если да, то подскажите лучшую практику их использования.
>>1631471https://devblogs.microsoft.com/dotnet/using-net-hardware-intrinsics-api-to-accelerate-machine-learning-scenarios/
>>1631264Стрим нужно из браузера на сервер, а там разбить по блокам и записать на диск. Идеально было бы если файл на клиенте разбивать на архивы и их на сервер отправлять, но это пока мечты
>>1631356>Traitsтак они же были псевдо типажами и делались костыльно через расширение. Или что-то поменялось?
>>1631566https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/xmldoc/recommended-tags-for-documentation-commentsДокументировать всё подряд - бред.Обычно доку добавляют для публичных классов/методов: - АПИ методы у контроллеров, которые потом автоматом в OpenAPI (Swagger) доку превращаются;- АПИ у либы, которую ты пишешь для других.Там дофига тегов, которые позволяют добавить сильную типизацию в твои комменты, избежать магических строк и уменьшить кол-во печатаемого текста.
Есть способ не создавать новый Reader каждый раз, когда меняется CommandText в объекте SqlCommand? А то получается какой-то одноразовый объект, после того как открыл, прочитал выборку, и закрыл.
>>1632490Не я выбираю, увы, библиотеки, которые мы изучаем и должны использовать в лабораторных работах.
>>1632531Никто нынче голый коннект к БД не делает, только извращенцы и у кого много свободного времени.EF Core вам в руки.По существу вопроса. Reader предназначен читать данные один раз и в одном направлении. Соединение с БД - оно должно переиспользоваться. Reader - дёшево. Connection - дорого.Не хочешь читать данные кучу раз - схорони в объект/кэш.
>>1632545>EF Core Не знаю про Core, то тот EF что я видел 6 лет назад был таким тормозным, что писать на нём могли только сайты для школьников и студенческие лабы.
>>1633030Ты или программист-любитель или в айти по какой-то другой специальности. В программировании мир каждые пол года сильно изменяется. 6 лет - это вообще эра динозавров.
>>1633075> В программировании мир каждые пол года сильно изменяется. В программировании ничего не меняется уже лет 20. Клепание говнофреймворков различными дебилами десятками в год, которые живут по полгода пока ими увлекаются другие дебилы и не понимают что это то же говно в новой обертке, это не изменения.Алсо, у меня нет никаких сомнений что EF Core такое же тормозное говно как сам EF.
>>1633109lolТы не путай хипстеро программистов, которые клепают свои ноды и реакты, и нормальный прогресс.А то так можно сказать что нихуя не менялось со времен Чарлза Бэббиджа и булевой алегбры - математика та же, принципы тоже.>различными дебилами | у меня нет никаких сомненийУ "дебилов" сомнениям браться неоткуда.
Новичок - не стукайте.Уже неделю пытаюсь найти способ получать данные из графического планшета. Нашёл какой-то WintabDN api, но сколько не копался в примере, так и не понял как выводить значение pressure. Может кто добрый посмотрит и мне-дураку подскажет: https://github.com/vvvv/WintabDN
>>1633124>Ты не путай хипстеро программистов, которые клепают свои ноды и реакты, и нормальный прогресс.Где ты видишь нормальный прогресс, расскажи мне?
>>1633124Бля реакту уже лет 5 или больше и что-то он до сих пор в топе. Этими рассказами про миллион жс-фреймворков в год программистов пугают как бабайкой.
>>1632545>Никто нынче голый коннект к БД не делает, только извращенцы и у кого много свободного времени.Делают в высоконагруженных местах. ORM тормознее нативных запросов.
>>1633178Тащемта EF позволяет и простой sql код исполнить. А ещё есть даппер.Вручную контролировать конекшн на низком уровне это я хуй знает зачем может понадобиться.
>>1633178>>1633192И простой sql и sprocs и функции можно через EF запускать. И уже как 2-3 года можно LINQ to SQL компилировать. И работает оно в высоконагруженных системах без проблем.Писать код гораздо быстрее, скорость исполнения практически та же, что и стандартные SqlCommand и SqlReader, а иногда и быстрее из-за встроенных кешей и пре-компиляции. Главное при работе с инструментами - знать как они работают. А то можно и Hello World написать, что он 200 лет обрабатываться будет.
>>1631471В плюсах если ты хочешь, чтобы AVX инструкции нормально сработали нельзя надеяться на компилятор. Тебе придется использовать интринсики ну и там впринципе много подводных камней с AVX.
>>1633202>Подключился и плюйсяАга, и ты будешь на каждый запрос открывать соединение?Или ты на одном конекшне все свои 100к рпс обрабатывать будешь?Или напишешь свой пул соединений?Ор
Аноы, что-то туплю, в чем прикол? Есть следующий метод разбиения стрима на n кол-во байт и запись в memoryStream:int numBytesToRead = 10485760var countIterations = file.Data.Length / numBytesToReadint numBytesRead = 0;byte[] bytes = new byte[file.Data.Length];Все норм работает, но как только я хочу каждый раз в массив новую порцию считанныйх байтов записать и получается следующее:....int numBytesRead = 0;byte[] bytes = new byte[numBytesToRead ];Выдает ошибку что массив слишком длинный, хотя file.Data.Length еще больше чем numBytesToRead, но ошибку не выдает. В чем прикол?
>>1633567>Ага, и ты будешь на каждый запрос открывать соединение?>>1633567>Или напишешь свой пул соединений?>ОрНе в защиту >>1633202Но ты обосрался, там соединение уже из пула
>>1633649Спасибо, уже разобрался. Я думал что надо самому сдвигать в Stream.Read, вот и получался гиганский массив.
>>1633656Так теперь новая проблема, как правильно разбивать большой файл? Возьмем 55МБ, как его правильно разбить по 10МБ?По началу нормально, но под конец, где 5МБ остается, я же не могу отправить 10. Как быть?*
>>1633659Есть вот такая хрень:Но ведь она будет считать по 10МБ, не учитывая остаток, как ее правильно переписать? int numBytesToRead = 10485760; byte[] result; MemoryStream ms; long numBytesRead = file.Data.Length; int n = 0; while (numBytesRead > 0) { var content = new MultipartFormDataContent(); result = new byte[numBytesToRead]; n = await file.Data.ReadAsync(result, 0, numBytesToRead); numBytesRead -= n; await Task.Delay(200); }
>>1633662Так ты уже ведь считаешь остаток в numBytesRead.Поэтому вместо numBytesToRead напиши Math.Min(numBytesToRead, numBytesRead)
>>1633666Бля, точно, а то я уже 3 день сижу этого говно пишу, мозги совсем поплыли. Спасибо еще раз большое
>>1618705 (OP)Чуваки, помогите. Как запустить скомпиленный с помощью .Net Core 3 экзешник в Linux? Я в курсе, что можно юзать dotnet CLI, создавать проект, потом его публиковать, и т.п. Но мне это неудобно каждый раз делать. Я просто тренирую синтаксис. Создаю файлик, пишу что-то, компилирую, и дальше запускаю, правда с помощью Mono. Но мне хочется запускать с помощью .Net Core. Вот только не знаю как это сделать, а нагуглить неполучается. Если запускать как линуксовый бинарник, то пишет, что отказано в доступе.
>>1634033Должен же быть интерфейс командной строки для виртуальной машины. Компилятор же есть, это csc. В доке почему то про это ничего не сказано.
Вечер в хату.Такое дело есть контроша по шарпам, но ловлю какой то дикий затуп по ней. Может кому совсем нехуй делать и он сможет подсказать какие классы сделать и что в них должно быть реализацию запилю сам.
Добрый день, аноны. На /pr/ первый раз. Сейчас прохожу курс C# от метанита, какие ещё вещи надо пройти, прям мастхев?Алгоритмы и структуры данных, паттерны, sql? И где их лучше изучать, курсов много разных ведь. Степик, курсур или что-то ещё?Какой вообще базовый стак требуемых технологий на стажировку по С#?
>>1634224Ну там есть непонятки. Но я как человек (не тот) уже имеющий опыт работы на шарпе - по метаниту разобрал asp.net core, http/css/js и jquery. (всё это мне для своего веб приложения понадобилось, ранее с этим практически не общался)
Вопрос по ASP.NET Core + React - я вижу в туторах частично дефолтный синтаксис React страницы - начиная с №1 Import React from 'react'; etc...А вижу и такой синтаксис:№ 2 class App extends React.Component {Чем они отличаются? Проблема у меня состоит в следующем: Проект на ASp.NET Core 3.0, на версии 2.2 я использовал webpackmiddleware, но судя по MSDN - его выпилили из ASp.NET Core. Теперь идет подключение jsEngineSwitcher - V8+ChakraCore, где используется не привычный и не удобный синтаксис 2. Как его измнить на 1?
Как мне создать параллельный Task который бы работал до определенной внутренней точки, потом останавливался и ждал консольной команды от пользователя чтобы продолжить работу? Thread.Sleep ведь нельзя использовать в таких целях?
>>1634218>Книги читай, курсовод.Те, что в шапке, пойдут?И что плохого в курсах? Там хотя бы есть задачи, которые надо решать, а в книгах скорей всего такого не будет. А самому себе придумать что-то такое, что требовало бы подумать без опыта работы почти невозможно.>>1634224>Сочувствую потраченному зря времени.А что не так с метанитом? Там вроде основные моменты все изложены, разве нет?
>>1634367Фундаментально не верный подход. Бэк должен быть своим собственным проектом. Фронт с Реактом/Ангуларом/жквери лол - в другом проекте и билдиться/запускаться через всякие npm'ы/yarn'ы.Тогда и дурацких вопросов о том как сделать франкенштейна и почему он внезнапно не работает - не возникнет.
>>1634557возможно ты прав, а возможно ты идешь нахуй. Еще не решил. Но мне Женька Впопопов (всеми любимый мутанит) сказал добавлять библиотечку в проект, вместо этих важих ярнов и NPM. Правда дышать как то хуево с этими Class extends, дефолтный синтаксис react js получше будет. Короче спасибо
>>1634557я пока ходил писять подумал над такой штукой - ведь когда запускается Core проект - то вместе с ним и IIS, и если идет компиляция всех этих свестелок-перелок React-a, то по сути и Node не нужен. А если Front будет отдельно - то это будет запущено 2 сервера - IIS и Node.js. А нужно ли это?
>>1634570Для компиляции всего этот реактовского барахла нод по прежнему нужен, твои плагины в VS делают всю эту магию подальше от твоих глаз. Проблемы начинаются, когда эта магия делает что-то не понятное и тогда тебе пизда и никакой нормальной доки по этому делу нет и вообще в этих плагинах гора багов и несовместимости с очередной версией реактов.В проде никаких двух серверов нет. React - статичный сайт (просто горстка файлов), которые могут отдаваться по любому http запросу. В зависимости от твоего хостинга надо будет по разному отдачу этих файлов конфигурить.
>>1634585нихуя не понял, но очень интересно. У меня ASP.NET Core 3.0 application - он запускается на IIS или Kestrel (если Linux). По сути он как приемник REST Api. В случае, если Front - это обособленная часть, ничего не имеющая с asp.net core апликухой - она должна в чем то собираться и на чем то хоститься. Вот и дальше пошли вопросы - что тогда будет деплоиться, если react - это обособленный проект, который собирается webpack-ом на Node.JS? Блять сложно это все
>>1634643Видимо долог еще твой путь.Естесственно твой бэкенд на dotnet core представляет из себя кучу REST эндпоинтов. Принял HTTP request, обработал, отправил HTTP response. Ему вообще по барабану кто там эти запросы составляет и кто и как его ответы читать будет.React app - это набор статичных файлов и хостить их можно как static website (помнишь в 90е и начале 00х такие были?). JS делает ajax request over HTTP и потом читает HTTP response. Ему также плевать кто там и как принимает его запрос и выдаёт назад ответ. Оба приложения живут в 100% изолированных друг от друга мирах.Ты начинаешь добавлять всякий синтаксический сахар, плагины/библиотеки для того чтобы эти две технологии выглядели, как будто они живут в одной коробке (а оно нифига не так). Ты и так до конца не понял как эта вся хрень работает, а тут тебя еще больше запутали.Вообще не важно webpack, хуяк, любой другой сборщик. В итоге у тебя будет index.html, в котором будет root div и подключение нужных js и css. Всё, нифига там больше нет. Ты эти файлы вообще можешь через один из своих REST endpoints клиенту отдать, можешь уложить в папку и дать своему веб серверу (пососать Kestrel там или IIS (который нынче для кора тоже может и даже должен Kestrel вызывать) или твой самодельный http listener) read-only доступ к папке с published www files и он их отдаст клиенту по http(s)://my_awesome_websites.hui/index.htmlВсякие gRPC, хуярписи, вэб сокеты и прочие плюшки, которые грозятся стать реальностью с разработкой HTTP 3 (еще 2 не допилили, а уже 3 грозят, лол) тоже живут и функционируют по подобной схеме. Два приложения, каждый в своём мире и между ними - бездна сеть.
>>1634127По умолчанию csc в линуксе компилирует в exe. При вызове dotnet file.exe говоритA fatal error was encountered. The library 'libhostpolicy.so' required to execute the application was not found in '/home/user/src/csharp/snippets/'.Failed to run as a self-contained app. If this should be a framework-dependent app, add the /home/user/src/csharp/snippets/Program.runtimeconfig.json file specifying the appropriate framework.В винде конечно экзешник можно запустить даже без sotnet, но линуксе пока не получается.
>>1634127При компиляции в линуксе в dll и попытке запуска, выдает ту же ошибку. Но это компиляция в таргет лайбрари. Возможно если скомпилить в отладочную dll, то заработает. Сейчас попробую.
>>1618705 (OP)анонсы что не так? есть 2 POCO объекта родитель и наследник.наследник наследует от родителя 4 параметра. Когда я кастую наследника к родителю все норм, но когда я делаю вылетает ошибка. Почему так?
>>1634518Запустить в нём таймер? Что б он периодически проверял некую переменную. Как только её значение изменится (введутся данные из консоли) - то продолжит работу.
>>1634703я другой анон, появился вопросик, правильно ли я делаю что мой rest API почти всегда отвечает булами с ok в котором true - 200 кодом, 500 при ошибке сервера , в котором false и 404 так же с false. Это про get, put и post у меня в основном с нормальным телом запрашиваемого объекта.И ещё как быть в таком случае. Мне надо в апи отправить путь до файла, и в апи я его применяю с post и телом, в котором стринг пути. И последний. Мне нужно изменить состояние бэка, к примеру поменять текущую директорию на дочернюю папку, я беру и принимаю в апи get у которого в заголовке имя папки. Типа такого: "Folders/{name}/change". Так нормально делать? ведь это get и он меняет состояние бэка.Заранее спасибо.
>>1634703да я это все и так знаю, я просто думал, что можно обойтись одним IIS. Нахуя тогда все эти либы V8, ChakraCore и т.д. в ASP.NET Core? Если и так все раздельно работает
>>1634703да и еще, ряд вопросов, которые не оставляют меня в покое. На какой части проходят такие процессы (имею ввиду бэк или фронт):1. Аутентификация;2. Логирование (имо бэк, но все же);3. КукисыСпасибо за ответы
>>1634738Я погуглил-погуглил о остановился на том что тут нужны не таски, а полноценные треды, в случае тредов общаться между собой намного проще
>>1634942>ChakraCoreМой ответ - ради изврата. Ну прикольно же - сделали целый js движок, который можно из кучи языков вызывать.Why use ChakraCore?ChakraCore allows you to use the React Native framework on Universal Windows Platform. This is incredibly useful for web developers that want to develop Universal Windows Platform apps.Вы, как я понял, пилите стандартный Реакт апп для обычных браузеров?
>>1634944Аутентификация и авторизация работают точно также, как если бы ты всё компилировал и хостил все файлы в одном проекте. ЖС запускает запрос к серваку с данными о пользователе, тот проверяет данные и возвращает 200 вместе со всякими токенами/401/403. Всё, дальше сам выдумывай как эти токены хранить и приклеивать к твоим запросам.Для логирования есть вагон и маленькая тележка всяких сервисов, которые умеют принимать запросы хоть из консоли. Можешь и свой эндпоинт запилить чтобы логи в файл/бд складывать.Куки - это часть HTTP request (точнее его headers). Ты запрос можешь хоть в консоли составить и сохранять/считывать данные в какой-нить файлик, обозвать его "кукис", сохранять в него токены, user data, и добавлять эти параметры в свои headers при запросе.
>>1620179Вообще чет смотрю мало тредов было по этому языку. По тому же JS уже 150 и по пайтону больше 80, да и на с++ около сотки. Такое чувство, что с# только для игр на юнити используют, лол
>>1635469Серьезно? Слава Богу, что я этого не застал, иначе бы моя жопа сгорела. Пиздец ненавижу слет нумерации треда. УУУУУХ
>>1634715По умолчанию он компилирует в платформонезависимый бинарник, а то что ты делаешь - это publish, который собирает под конкретную платформу. О чём тебе и пишут, что ты собрал под не ту платформу.
Есть годный способ определить в впф, если поверх основного окна открытые диалоговые окна? Пока сделал через получение фокуса, но как-то костыльно и неуверсальноif(wnd.Focus()) //если удалось получить фокус, значит модалок нетВообще это для драгэнддропа файлов в окно, может есть идеи как игнорировать дроп, если есть модальные окна?
как вернуть значение из фора например фор ( если итератор цикла > количество елементов в списке ){ если ( итератор цикла == индекс елемента в списке ) return итератор цикла; в противном случае продолжить цикл}
>>1635997да так должно быть, проблема в том что так сделать не дает потому что мне пишет что ретурн должен быть во всех ветках кода, а мне нужно только в одной! так как на примере, а если елс тогда пусть идет дальше, а он мне говорит что в елсе тоже дожен быть ретурн, а не это не подходит
А кто-нибудь может подсказать где изучить контекст существования сишарпа? В плане, что такое .NET Core и почему он должен догонять NET Framework, какие NET службы за что отвечают и где используются, какова цель создания Blazor, куда вообще движется язык? А то я тут изучаю понемногу основы, но всё равно нихуя не понимаю в беседах
>>1636054Я как пользователь твоего чудо кода пишу:int myVar = YourMethod();А тут бац! Отрабатывает ветка без рутурна, и что должно быть у меня в переменной?бросай исключение
>>1636136суть в том что внутри фор и он ищет из списка елемент с этим интом такого варианта что елемента нет, нет! он есть его нужно только по фору найти а для этого нужно что бы в случае если не нашло фор продолжил выполнятся а этого сейчас не происходит
>>1636111.NET Framework - всё..NET Core - настоящее..NET 5 - будет в конце года.Вся инфа тут - https://docs.microsoft.com/en-us/dotnet/core/Задолбаешься читать, но там есть все объяснения и ссылки на нужные ресурсы.Для более лёгкого чтива - https://visualstudiomagazine.com
>>1635252конечно, мне тупо пихуй на эти ваши UWP. Тупо поебать.>>1635265короче ответ на все мои вопросы - на бэке. Спасибо
>>1636211Чьи ваши? Чёт ты агрессивный какой-то.Я тебе о том что ChakraCore для UWP (вы его зачем-то для браузера используете, где уже свой JS движок есть). А ты мне что тебе на него поебать.
>>1636230я кажется писал выше, что это Евгешка Мутанитович Попов посоветовал такую глину месить. Мне даже лучше сборщиком за пределами сборки .NET-а это компилить
>>1636111>>1636193А если я ньюфаг и большинство книг использует Framework, то можно пока не париться по этому поводу и всё делать во фреймворке??
>>1636278Будешь тогда работу по переписыванию и говно поддержке legacy искать. MS прекратили поддержку, всякие сервисы и облака больше не будут с ним работать, всякие гейм фреймворки будут тебе не доступны, документашку будет искать всё сложнее, нужно будет танцевать с бубном в новых версиях ОС, IDE (VS, VS Code, Rider), не будет доступна работа из под всяких линухов и аймаков.В плане использования core и framework СИЛЬНО отличаются, надо будет переучиваться потом.
>>1636148Какой язык для тебя родной? По-русски у тебя не получается излагать.>варианта что елемента нет, нет!>если не нашлоТы уж определись как нибудь.
>>1636298>В плане использования core и framework СИЛЬНО отличаются, надо будет переучиваться потом.А чем отличаются в основном?
>>1636311если не нашло в конкретной этой итерации, пошло дальше к следующей, и так пока не найдет, а родной для меня Литовский, но причем тут это?
>>1636336>причем тут это?Сложно понять, что тебе нужно. Дай лучше код на шарпе и пример данных и ожидаемый результат.
>>1636334ахуеть вопрос, там тыщи страниц исписали в доках и во всяких новых книгах, а тебе тут в два предложения объясни.https://github.com/dotnet/core - сиди сравнивай старое АПИ с новым.
>>1636336P.S. Я тебе уже писал, бросай исключение после цикла. Это ты думаешь, что элемент обязательно будет, а кто-то может передать коллекцию без элемента.
>>1636193>.NET Framework - всё.Нихуя не всё. Остальную парашу копирастическую - просто портируем, делов-то.
>>1636359>>1636347а так я уже сделать через list.Contains https://www.dotnetperls.com/list-containsпросто не понимаю почему меня троллить начали, вроде нормально же спросил, и даже псевдокод написал, злые вы...
>>1636359>>1636347а так я уже сделать через list.Contains и break https://www.dotnetperls.com/list-containsпросто не понимаю почему меня троллить начали, вроде нормально же спросил, и даже псевдокод написал, злые вы...
>>1635850>>1635850>for(int i = 0; i<element.Count; i++){> if(i == needed_element_iterator){return i;}>}//.................Блядь, блядь, ну вот нахуй тебе возвращать итератор цикла, если тебе заведомо известен индекс элемента в списке, и тот факт, что он должен быть равен итератору цикла? Верни его, рофл сукаблядь...
>>1636378но мне итератор не известен заведомо, в списке элементы расположены в случайном порядке, и мне нужен индекс того элемента у которого айди равно итератору адйи елемента не равно индекс елемента
>>1636383тоесть должно быть так for (iterator < lements.count){if(iterator == elements.id){return elements index ( в нашем случае итератор}else{ все хуйня давай сначало но с следуйщим итератором}}
Аноны, а ассемблерные вставки можно как-нибудь пердолить? Надо байтоёбский изврат запилить. Или только через кресты?
>>1636383Блядь, напиши свой код в https://rextester.comи пока его пишешь, прежде чем отправлять его на борду,хотя-бы посмотри его внимательно. Может быть сам додуплишь.елсе айди - пиздец как нечитабельно, ты бы ещё про инкапсуляцию интерфейсов асинхронных тут позаливал, на русском, и без кода.У тебя return блочит дальнейший код в цикле.Чтобы этого не было, сделай:>for(бла-бла)//твой маня-ёба-цикл> if(бла-бла){return что_надо;}> else{continue;}//блядь>}//конец твоего мозго-ебучьего цикла
>>1636392Ещё один сверхразумПри чем тут континью лолПиздец уровень шарпотреда 2020, вы же все троллите тут так, да?
>>1636392Лучше метки юзать.>hui:>for(бла-бла)//твой маня-ёба-цикл> if(бла-бла){return что_надо;}> else{continue hui;}//блядь>}//конец твоего мозго-ебучьего цикла
>>1636427ну да похожим образом решил, через лист контейн >>1636370и я об этом и спрашивал, а меня начали все обижать..
>>1636405>>1636410Что за пиздец я вижу? Мало того, что нихуя не пашет,так ещё и куда ты собрался возвращать int из Main, с типом void?
>>1636427и проблема у меня была именно там где ты показал, типа если так то возвращай а если нет, вот и компилятор ругается, он не дает сделать что-то типа если нет продожить фор, он хочит что бы и там и там был какой-то ретурн
>>1636429Сорян, провтыкал всё что выше было, а именно - вот это: >>1636369 >>1636370Съеби что-ли букварик почитай.
>>1636433Компилятор хочет ретурн int,просто потому что метод с типом int должен возвращать int,и без return -1, он не возвращает ничего, в некоторых ветвях,в частности, в случае выхода из цикла, по его завершению,и/или не наличия ни одного элемента из условия for.Поэтому, компилятор и ругается.Индекса -1 не существует у массива, значит можно использовать его как крайний вариант.И многие функции возвращают -1, например:string.IndexOf(char) == -1//если char не найден.stream.Peek() == -1 // если данные в потоке нельзя уже прочесть, и так далее.
>>1636438Да я так и понял, что его доебало писать. Хохол, походу, ещё и с Харькова. Я был в Харькове - весь Харьков обхаркал.
>>1636442Анон, Я прозрел! он не просил второй ритурн в елсе, он просил второй ретурн где угодно, в том силе вне фора! да это именно то что мне надо было! СПАСИБО АНОН!
>>1636447https://rextester.com/edit/OWJ57140да, метод либо не возвращает ничего, либо обязан вернуть значения из всех возможных путей исполнения метода.по ссылке рабочий код, но я так и не понял кому такая херня может понадобиться.
>>1636447Сьььь-ссьььь-сёрб. Шустренько выпил энергетик Monster...Хрысь! Разорвал банку.Бам-ба-бабабам-м-м. Выкинул её...Немного подумал... И запилил из неё - усилитель wi-fi, лол. Пикрил.
>>1636514Сука, как же у меня от вас бомбит! Кто вас блядь на работу принимает! Откуда у вас такая страсть к индусскому коду? Что за ёбтвоюмать у пидоров, пишущих и проверяющих такой код! Или это перекатившиеся пхпэшники, у которых норма обмазываться дерьмом и радоваться этому?
>>1636527да что не так то, если что я работаю на себя, пилю себе свою игру, а если есть предложения как улучшить код так я буду рад услишать адекватный совет, ты только это... не бомби, вот выпей пива лучше (безалкогольного)
>>1636532сделай сортировку просто https://stackoverflow.com/questions/289/how-do-you-sort-a-dictionary-by-value и возьми самый первый
>>1636531Взял пива (алкогольного). Я испугался, что это код компании. Хотя чего там, в компаниях всё еще хуже потому что чуваки такие - ДЕАДЛААААЙН БЛЯАААДЬ и начинают пилить говно. Сохраняют себе n времени сейчас и увеличивают время разработки на n*n в ближайшем будущем.Для себя можно как угодно пилить.
>>1636540но ты это, если все таки есть действительно совет какой-то то я правда рад услишать, я ньюфег в программировании, вот учусь понемногу, любой совет мне в помощь будет
>>1636543Ясен красен глубоко копать ни времени ни формата двача не хватит. На тебе несколько общих советов.0. Теория разбитых окон. Не оставляй после себя мусора, увидел - убрал. https://ru.wikipedia.org/wiki/Теория_разбитых_окон 1. SOLID - код должен следовать этим принципам. Особенно никаких new SomeExternalTool() посреди класса не должно быть (Dependency Injection). Нужные инструменты должны передаваться в конструктор и конфигуриться во время стартапа. https://en.wikipedia.org/wiki/SOLID2. Никаких дубликатов кода (кроме особых случаев)3. Метод не должен отнимать у тебя более 5 сек чтобы понять что он делает. Именуй всё граммотно, выдерживай общий стиль кода (добавь уже линтеров, в дотнете они называются Analyzers). Выгребай логически завершённые куски кода в свои классы/методы. Класс не должен отнимать у тебя более минуты чтобы понять нафига он нужен и что он делает. Проект не должен отнимать у тебя более 5 минут чтобы понять как он устроен, что он делает и как он это делает.4. Если ты изменил код в одном классе и это повлекло за собой изменения в куче других классов - ты настряпал какой-то херни. Если ты изменил код в одном слое и это повлекло за собой изменение всех других слоёв - выбрасывай этот проект в мусорку и начинай сначала.5. Избегай повторных итераций, выгребай все нужные данные во время первого прогона, используй кэш, посмотри какие из существующих базовых дата структур могли бы облегчить твою задачу (решай задачки на сайтах типа leetcode.com). Для частого быстрого доступа используются HashSet и HashTable/HashMap (это базовые общие структуры, доступные в любом языке под своими именами).
>>1636514Ты знаешь что такое итератор?Прекрати называть функции, методы, Аллаха не по конвенту, если несколько слов то каждоеСледующееСБольшойБуквы, а_не_ебучими_нижними_подчеркиваниями. Методы и свойства классов начинаются с большой буквы, локальные переменные с маленькой, единственное место где приветствуются нижние подчеркивания это в начале имени приватных полей классов, типо как private int _foo.Что за "contex"? Презики что-ли? Ты имел ввиду "context"?сорри, немного сгорел от увиденного, добра тебе. На работе за такое будут пиздить ссаными тряпками, так что не обижайся.
>>1636685Я ананас, который выше про SOLID и сломанные стёкла написал. Хоть я пивом и откачивался, но в защиту новиса скажу, что конвент каждая компания/команда для себя сама выбирает. Некоторые любят camelCase, некоторые PascalCase, некоторые snake_case и всякие гибриды, которые настраиваются через линтеры и больше о них голова не болит.Мы для методов/публичных свойств используем PascalCase. Для приватных переменных _camelCase. Тесты я своих заставляю через snake_case обзывать потому что они имена должны отражать суть того, что тесты делают, из-за чего они становятся длинными и через подчёрк читать удобнее: Given_request_with_expired_token_controller_should_return_401
>>1636591>Dependency Injectionа если у меня есть какая-нибудь фабрика, я же могу ее статической сделать? что мне мешает?
>>1636591>повлекло за собой измененияхорошо. из недавнего случая, был у меня json store, который записывал по ключам данные в json. Ключи у меня enum везде используются, если я захочу рефакторить и поменять имя ключа, это сломает всю систему. Как быть?
>>1636741Можешь, если весь код, где ты эту фабрику вызываешь, у тебя получится покрыть юнит и интеграционными тестами. Для это всякие статические Properties навешивают lazy loading/Func/Action https://docs.microsoft.com/en-us/dotnet/api/system.lazy-1?view=netcore-3.1.Надо еще помнить, что статические фиговины должны быть thread-safe на случай, если у тебя есть вероятность вызова куска статик кода 2+ потоками одновременно. Чтение - безопасно (большую часть времени). Изменение - опасно.
>>1636748Спасибо. а то у меня blazor приложение уже все в DI, штук 10 точноИ если можно ещё вопросик. В чем разница между IoC и DI. DI это же частный случай IoC, не?
>>163675410 классов засетаплено в DI? У нас сотни.Так и быть, погуглю за тебя: https://stackoverflow.com/questions/6550700/inversion-of-control-vs-dependency-injectionНо с тебя пиво.
>>1636742Придумал enum -> начал везде использовать -> выдуманные названия не подходят -> пришлось названия менять. Хреново в начале над названиями думал (одна из самых сложных задач в программировании - придумать хорошее имя), теперь расплачивайся. Но вообще имя переменной через Refactor в любой IDE запросто меняется по всему проекту и к изначальному совету плохо относится. Под изменением имелась ввиду логика приложения.В остальном - надо знать конкретные условия и бизнес задачи, чтобы понять как сделать так, чтобы при изменении имени переменной не рушился весь карточный домик. Нафигачил в Persistence layer непонятных имён и теперь пришло озарение? Расплачивайся и пиши кучу скриптов, чтобы править данные.
>>1636759рефактор не всегда хорошо работает, даже resharper. Так я обосрался сделав ключи через enum? Так как придумывать хорошие и меня для методов и т.п.? Соглашение о наименовании я уже наизусть знаю и этого вообще не достаточно, где взять инфу как правило давать имена?
>>1636532Нахуя у тебя итератор если у тебя он никак в цикле не используется? Выполнить N раз код? Но он же ничего не меняет, просто проверка.Нахуя return arr[-1], любишь аут оф бондс эксепшны ловить?Пиздец, я уже не говорю про остальной код, до меня обоссалиТы хоть немного блядь почитай что ты делаешь, а не хуярь не глядя.
>>1636535Вместо простого прохода по масииву за O(n) делать сортировку в лучшем случае за O(nLogn). Лови класс.
>>1636707Но если нет особых указаний, то лучше придерживаться общепринятого стандарта. Особенно, если показываешь людям и очешь помощи.мимокрокодил
>>1636766>>1636685он до ретурна с -1 никогда не должен дойти, а если дойдет то должен быть ексепшен который я ловлю потому что здесь явно тогда что-то не так, насчет итератора не понимаю почему народ привязался к нему, итератор от слова итерация, а итератор управляет итерацией, является его переменной, новый цыкл фора это новая итерация, потому итератор, потом обычно пишут обычную маленькую i но это просто сокращения от итератора, а то что насчет конвенций меня обоссали так это вообще очень странно, у всех свои конвенции откуда я должен знать как именно в комнпании у анона заведено, я знаю только одну действительно важную конвенцию, это называть переменные с маленькой буквы потому что можно попасть в лажу иначе и я попадал, а от того что подчёркивания или нет как можно попасть в лужу?
>>1636514епт, а это разбить ни как? у тебя же четко виднеются 3 не связанных блока, просто перенеси их по разным методам и все
>>1636514убери get_random_stage. Ты откуда выполз? Просто переименуй RandomStageBy. и так понятно что метод что-то возвращается, параметры так же переименуй в userId. Может ещё что найду
>>1636819Нет, если кидаешь эксепшен, то ловить его должен код уровнем выше (или не ловить, если нормальная работа дальше невозможна). Какой смысл бросать и сразу ловить? Проще тогда уж логику из кэтч вставить вместо бросания.>насчет итератораПод итератором в шарпе обычно имеется ввиду IEnumerator>насчет конвенций меня обоссалиДа, потому что читая код на каком-то языке люди привыкают к его общепринятому оформлению. И читать код на шарпе, написааный буд-то это жс или вобще солянка, неприятно и трудно.> откуда я должен знатьпользуйся общепринятойhttps://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions
>>1636514используй var, при инициализации листов и так понятно что это лист, так что смелой меняй на var
>>1636514random можно сделать как параметр класса и просто использовать его в классе не создавать каждый раз новый рандом
Аноны у меня есть средний проект на гите, куда можно выложить ссылку на репу, чтобы сказали что не так?
>>1636867связаны тем что берут друг у друга какие либо параметры, объекты? Так в чем сложность перенести здоровый кусок кода в отдельный метод и возвращать нужный объект?
>>1636917ну вообще да ты прав можно по разным методам разнести, но я не люблю когда многа методов, потом долго искать нужный тебе метод в списке, да и разве имеет это какое либо значение кроме читабельности?
>>1636920тестирование. да и скорее всего эти методы в одном классе будут, а что бы не искать нажимай shift click на имя метода и vs перейдет к реализации метода.Читабельность тебе будет нужна самому, через n время, когда твоя программа начнет расти
>>1636920а вообще листай гит, смотри как реализованы те или иные библиотеки. Сравнивай разные реализации, читай msdn. Самый главный ресурс, если чего-то нет а интернете, есть на msdn. И никогда не копируй код, переписывай в ручную обдумывая каждую строчку, почему зачем и как это работает по началу ничего не будет понятно, особенно десятки дочерних классов и т.п. Но тебе важнее набить базу, а как назвать метод, а как лучше написать.Программирование это очень творческий процесс и если у тебя нет чувство прекрасного и внутреннего перфекциониста, то через анальную боль придётся этот навык развивать. И как сейчас через ссаные тряпки слушать недовольствия и плевки в сторону твоего кода.
>>1636917Ты когда книгу читаешь, тоже любишь, если абзацы по разным страницам разбросаны, и надо туда-сюда листать постоянно?
>>1636763>рефактор не всегда хорошо работаетЕсли ты используешь инструмент (не важно какой), ты обязан знать как этот инструмент работает и ты должен проверять его работу, а не слепо доверять ему. Тот же Re# выдаёт диалог со списком изменений, который он сейчас применит.>Так я обосрался?Не знаю, я о твоём проекте только из 2х приложений с двача слышал.>как правильно давать имена? никто этого не знает, куча проб и ошибок и со временем начинаешь свой стиль именования вырабатывать, который просто работает и команда к нему привыкает. Можно дать имена и небольшие методы сторонним людям почитать и спросить, как они их понимают за первые 10-20 секунд.
>>1636765Ты же не сказал что у тебя там за хранилище данных, json store ничего не говорит, может там документо-ориентированная ДБ, может ты json в sql хранишь.
>>1637072А код не книга, но в тех.справочниках часто приходится прыгать со страницы на страницу. Если методы названы нормально, то тебе не надо в него лезть, чтобы понять для чего он нужен. Ты когда в коде видешь File.WriteLine(), ты же не лезешь на referencesource смотреть что там и как по цепочке вызовов.
>>1636856Не бойся, тут могут понапечатать всякой грязи, тебе от неё ни холодно, ни жарко. Зато кто-нибудь полезные комменты выдаст.
>>1637125да писали уже ,только я не пойму почему так строго к этому относятся, ну есть кресочка, и что? это ни на что не влияет в данном конкретном случае
>>1637140Так себе вариант. В большенстве случаев это просто заложить мину, на которой потом стелс-пихотинец подорвется кто-нибудь словит NRE. В новом шарпе даже костыль в виде нотналаблреференстайп завезли.
>>1636819Меня больше всего ConecxtDB зацепил. Инструменты для работы с внешними (не подконтрольными тебе) ресурсами должны передаваться в класс уже готовыми к использованию - DI.
>>1637128>строго к этому относятсяВот если так писать "для себя", то так и привыкнешь писать. И уже тебя будет воротить от имен в проекте. А поверь, зайди на гит, все проекты на шарпе написаны Camel/Pascal case. И ты просто не сможешь воспринимать наименования
>>1637151Все лучше чем себе в ногу стрелять с гарантированным аутофрейнджем лолВключаешь nullable reference types и возвращаешь Result? вместо Result.
>>1637107Одно дело документированный File.WriteLine(), который светлейшие архитекторы придумывали на века, из расчета, что его будут видеть сотни тысяч людей, а другое — какое-то название на отъебись, придуманное за 10 секунд, которое через полгода обросло портянкой аргументов из флажков и уже перестало отражать изначальный смысл.
>>1637172Целые книги и конференции посвящены этой теме. В мелком проекте с одним девом, который не будет использоваться 1000+ пользователей может и никакой.Проблемы начинаются, когда кодобаза разрастается, когда для производительности приходится выбирать новые БД, когда твоя БД схема меняется и внезапно придётся вместо одного persistent слоя переписывать всё подряд. Для производительности и разруливания concurrent requests можно один dbContext несколько раз переиспользовать. Плюс new DbContext хреново покрывается тестами.
>>1637202ты понимаешь что там должен быть гарантированный аутофрендж, если скрипт доходит до того ретурна он должен вывалить ексепишн такая была идея
>>1637195ну тут ты прав. но разве это достаточная причина что бы взять и обоссать? я думаю это немного не адекватно...
Аноны прошу вашей помощи.Есть данный проект: https://github.com/TwoChisel/TeleCloudМожете сказать что и где не так с проектом? Пилю уже несколько месяцев. Глаз весь глаз замылился, уже просто не вижу проблем.Если будут какие-либо серьезные предложения, ошибки, прошу кидайте их в issues.Чтобы запустить сие чудо, клонируете, запускаете сервер, а потом клиент.Если кратко о приложении. Оно каталогизирует файлы в личных сообщениях в телеге. Там папки, переименовывание файлов и т.п.Документации нет, но вы держитесь. Пока в процессе, надо еще дописать документацию для свагераЗаранее спасибо.
Есть ли способ указать какие поля у функции будут, если внутри результат - анонимный тип? Просто в моем случае нельзя пользоваться кортежами, а object - ничего не говорит пользователю моего кода, пока он не посмотрит на то что там функция возвращает.
>>1637278> какие поля у функции будут, если внутри результат - анонимный типКакие поля будут у возвращаемого функцией значения, если внутри результат - анонимный типнемного ясности вношу
>>1637202Не не надо пытаться скрыть проблему. Если айтема нет а он точно должен быть, надо сказать, что данные хуйня и сделать харакири.
>>1637343Но это ж будет тупо. Класс чисто используемый в одном месте и нужный просто чтобы поместить данные из полей другого класса в себя. Неужели нельзя как-то так написать:IEnumerable<{int: ID, string : username...}>? Ну, т.е. я знаю что нельзя конкретно так, но может быть есть аналог? Просто блин, в JS, который пришлось освоить, такую фигню делать можно и это оооооочень удобно, а тут вроде как есть кортежи, но asp.net core не умеет их нормально из коробки собрать в json чтобы ответ отослать, а тащить что-то откуда-то не хочется, на и пилить свой серелизатор кортежей в json - тоже. Ну да ладно, просто оставлю object'ами, работает же, ну и хуй с ним.
>>1637351Есть способ, но я тебе его не скажу, потому что он не для этого dynamic>Но это ж будет тупоНет, шарп объектно ориентированный, так что делай очередной объект и не ной.> тащить что-то откуда-то не хочетсяС возрастом пройдет. Наверно еще и приложения в один файл собираешь?>пилить свой серелизатор кортежей в json - тожеОбычно два пути: или тащить готовое или пилить свое, привыкай.>просто оставлю objectПотом рефлексией данные вытягиваешь?
>>1637399Ньюфагу вообще хорошо бы с сишечки начинать, чтобы понять на кой хуй нужны другие языки. Но если совсем ньюфаг, то лучший путь - блокнот с подсветкой синтаксиса и сборка ручками. Так ты будешь понимать, что ты вообще делаешь. Мне вот было неприятно, когда я осознал, что не знаю как подключить свою же библиотеку без удобных инструментов из-за этого ускоренно на пару месяцев перескочил на описанный выше метод.Ну и даю у VS Code никаких фреймворков из коробки нет. Изначально просто удобный редактор. То что ты его в IDE можешь превратить - другой вопрос. Фреймворки и прочее в студии. Вот.
>>1637351Посмотри на DTO pattern. Он нужен для пересылки всяких request/response объектов. Поскольку всё строго типизированно, то кучу ошибок можно отловить во время билда и можно запилить нормальную валидацию принимаемого объекта.Ты json наверное через контроллер отправляешь? Если будет нормальный тип данных, то всякие Swagger'ы (OpenAPI) смогут разместить документацию о возвращаемых объектах, что облегчает задачу по поглощению твоего АПИ.
>>1637400>Ньюфагу вообще хорошо бы с сишечки начинатьРазве шарп не сам по себе легкий язык, как говорят многие?
>>1637408Он кажется легким. На деле там куча подводных камней. И вот сишечка, которая вроде как простая, но имеет миллион и один способ выстрелить в ногу на ровном месте, позволяет потом легко эти камни находить. Ну и опять же, многие вещи что ньюфагу кажутся сложными в шарпе, после сишечки будут казаться вполне тем чего не хватало, если не забъешь после нее на все это дело.
>>1637421Та можно и без нах. Просто не попробовав хотя бы hex-редактор на сях сделать, решения более высокоуровневых языков будут с большим скрипом доходить. Ну, или я и все мои знакомые шарписты такие тупые, но нам в ВУЗе шарп начали на первом курсе давать и все это казалось жутко непонятным, а на втором как раз си дали и будто озарение почти у всех случилось, после того как понимаешь, на кой вообще все это надо, попробовав сделать рендер и компилятор на чистых сях.
>>1637421Во всех языках будут переменные, функции, работа с CPU и RAM. Во всех языках будут одни и те же базовые типы данных и дата структуры. Во всех языках будут работать одни и те же алгоритмы. Из всех языков есть доступ к стандартым АПИ (системные, сервисы, библиотеки).Главное смысл понять, дальше особо не важно какой язык.
>>1637437Ну, это да. Но когда от тебя куча вещей что под капотом происходит неявно, ты просто не понимаешь как оно все работает. У шарпа, в этом как раз проблема. Ты можешь делать сразу какою-нибудь фигню на формах и даже не понимать, почему оно не работает или работает не так как ты думаешь, а таки сделав что-то не понимать что оно на самом деле делает и, соотетственно, в случае какой-то хуйни не сможешь пофиксить быстро. В этом плане как раз пописать на сях сильно помогает, хотя бы чисто для того чтобы в общем понимать как компьютер работает что что на самом деле делает программист. Опять же, стандартные проблемы больших проектов(ну или хотя бы средних) встретить и понять, на кой вообще это ООП сдалось и почему его сейчас, при всех минусах, остается стандартом для индустрии и т.д.
>>1637642Всё-же лучше так:int lower_index = (list.Any() ? list.IndexOf(list.Min()) : -1);Вернёт значение даже если список - пустой.И никаких циклов и методов не надо.
>>1637642>>1637643Вот пидорги жсные. Посчитайте space и time complexity ваших вариантов и сравните с обычным циклом for.
>>1637646По крайней мере, это лучше чем вызов Contains на каждой итерации.Представь, что элементов в списке - миллиард, и наименьшее значение 999,999,995, остальные - повторяются находясь в диапазоне от 999,999,996 до миллиарда. Наименьший элемент со значением 999,999,995 - находится в индексе 999,999,999.И вот тут-то - твой for с Contains интенсивно отсасывает.
>>1637641Так даже жс-еры не делают. Зачем кому-то там писать пробелы или точки, еслиЕстьОбщепринятыйКэмелКейс. Все таки когда уже прочитал тонну кода, такие инородные для язвыка вещи вызываю дискомфорт и отвлекают на себя внимание.>>1636383Это какой-то треш завязываться на положение элемета в коллекции. Нужен доступ к элементу по айди, делай словарь у него поиск по ключу O(1).>>1637644Так там по "итератору" и в Ани и в ИндексОф и Мин. Ты можешь свой поиск вынести в метод и сделать все за один проход.
>>1637699Contains, Any, Min и indexOf для массивов и списков выполняются за O(n), потому что начинается линейные просмотр всего списка с начала. Отсасывают все методы одинаково.List и прочие IEnumerable не гарантируют последовательности, в которой сохраняются элементы, поэтому нужный элемент может находиться где угодно.HashMap/HashSet (в C# есть Dictionary) выполняет Contains за O(1), т.е. сразу, без перебора. Эти структуры данных нужны когда чтение данных происходит намного чаще, чем запись.
>>1638099>List и прочие IEnumerable не гарантируют последовательности, в которой сохраняются элементы, поэтому нужный элемент может находиться где угодно.Лист гарантирует, иначе нет смысла в методах Sort, Insert etc. А вот словари, хэш-таблицы по понятным причинам нет.
>>1638122Ты прав.>>1637699Если порядок элементов гарантирован, то для этого существует бинарный поиск, который позволяет избежать создания хэшей и линейного поиска по всей коллекции.Binary search - O(log n)
>>1637685Я всегда советую придумать проект и его реализовывать. В процессе сам все поймешь без всяких книг. А книги забываются быстро. Но вообще, бери любую, где есть упражнения и вопросы для самопроверки, это лучший способ что-то учить так чтобы оно не выветрелось через 10 минут после прочитанного.
>>1638198>Если порядок элементов гарантирован, то для этого существует бинарный поискБинарный поиск работает только для отсортированных коллекций.
Аноны, где можно базу поднять? А решил прогером стать, открыл документацию по ASP.NET Core MVC, и там началось: Entity Framework Core, менеджеры пакетов NuGet, Контексты базы данных, Свойства наборов сущностей, шаблоны контроллеров с представлением, миграция БД. Хули так сложна? Что это вообще такое? Где про это можно почитать с объяснениями в одном месте и в разрезе одного кейса?
>>1618705 (OP)Мне надо сниффить из нетворка скидку на товар и купить его, если скидка больше 32%, чем можно это сделать?
>>1638475Просто принимай все это как данность, а не думай. Решай этими инструментами свои задачи и все само понятно станет. Срсли.
>>1638505Да как мне в принципе кодом зайти в нетворк и найти там чё-то, я просто вообще ламер в проге
>>1638591Ну, если ты про шарп. То тут вариантов куча. Самый простой для нюфага - https://docs.microsoft.com/ru-ru/aspnet/core/fundamentals/http-requests?view=aspnetcore-3.1. Для парсинга html есть куча готовых решений. Регулярки - рофл. Но, при желании можно и ими.
>>1638716Так интересно иногда подобные вопросы слушать. На работе обсуждаешь, и думаешь "какой хуйнёй я занимаюсь, вот есть же у людей нормальные сложные интересные профессии, а мы тут в бирюльки играем". Для нас это всё как 2+2 давно и никаких сложностей нет, коллеги тебя с полуслова понимают, начнёшь объяснять концепцию - посмотрят как на дурака, потому что это давным давно всем известно.Но потом попадаются люди, которые только начинают влезать в профессию или еще начинающие (1-3 года) и ты с ними пытаешься так же как и с коллегами, а на тебя моргающими глазками смотрят. Думаешь, ну ладно, щас на уровень ниже спущусь, объясню концепт, на котором должен наш разговор строиться, и мы продолжим. А оказывается, что чтобы понять концепт уровнем ниже, надо еще несколько концептов объяснить, на которых строится тот, который уровнем ниже. А потом еще и еще. И можно так целую неделю разговаривать и так до дна и не дойти. И приходится отправлять чувака изучать азы и просить вернуться к разговору эдак через годик.И ты такой думаёшь: ёба, или люди отупели, или ты реально ко всей этой сложноте за годы так привык, что оно тебе как детский сад кажется.
>>1618705 (OP)Сап, шарписты. Задали тут домашку на карантин, не получается доделать.Суть проги проста: с помощью виндовс формочки сделать программу, которая по нажатию кнопки отрисовывает нечто, некоторый элимент, в специально отведенной для этого области.Дальше прога будет усложняться.У меня есть кнопка баттон, есть выделенная область, выделил с помощью контейнера panel. В самой панели, при ее инициализации, у меня получилось создать объект и отрисовать его. Но как это сделать не в самой панели при запуске программы, а по щелчку на баттон - вообще не понимаю.С меня как всегда.
>>1639183Вот код Формы: https://pastebin.com/jt0mDTqMВот код класса Star, чей экземпляр создается: https://pastebin.com/jRF9PgMeПик - так выглядит формочка.Проблема: Нужно, что бы звезда отрисовывалась по клику на кнопочку "Create sun".Не знаю, как это сделать.В конечном виде, программка должна принимать от пользователя характеристики звезды и планет, отрисовывать их макеты в заданном поле и давать возможность посчитать какие-нибудь штуки, например, расстояние от конкретной планеты до солнца, силу притяжения, которая действует на то или иное небесное тело и т.п.
>>1639233Как-то так: https://pastebin.com/LrH62ggA (из panel1_Paint код надо убрать, разумеется).Вот только чем тебе это поможет? Судя по твоему коду, ты даже азов не знаешь.
>>1638475>>1638510>>1638567Ладно, решил забить на детали, подключил базу по статье в документации, все работает. Где теперь дешево впс арендавать, чтобы в более реальных условиях все затестить? Предложений то куча, и я хз, что мне выбрать, чтобы потом, при возникновении косяков, я знал, что это мои косяки, а не они там за условные 250 рублей мне говно вместо услуг оказывают.
>>1639477Azure на год хостинг бесплатно даёт. Там инструментов, которые в бесплатный пакет входят, более чем достаточно для твоего проекта.App Service, DB (Sql Server, Postgres, можно вообще In-Memory для тестов), аналитика с логами.
>>1639651>в более реальных условиях все затестить?>Год то закончится рано или поздно.Чё у тебя там за многолетние тесты?
>>1639675Тесты, разумеется, не многолетние я надеюсь, просто смысл мне все тестировать в облаках, если потом я все равно ими пользоваться не буду (ибо дорого)?
>>1639679Код и конфигурацию то будешь одну и ту же закидывать. Оттестишь, узнаешь что твой код норм работает, потом точно сможешь хостинг обвинять, когда в дешёвый впс переедешь.
>>1639685Так там же (на серверах) закидывать тоже нужно уметь, администрировать все это дело штоб работало. Как я смогу хостинг обвинять, если я, может быть, буду неправильно настраивать сервер?
Анон, собираюсь на курсач писать спамер ботами в майнкрафте. Кто то может пояснить каким образом там происходит подключение? Хотя бы примерно, а то я раньше дальше http запросов и не ходил.
Кто деплоил ASP.NET Core Web API и хостил на локальную тачку на домен? Скиньте ссыль, а то MSDN не торт
>>1639751>>1639742>>1639705Это не вопросы. Это ёбаный в рот какой-то.Причём тут asp.net и домен и локальный хостинг? Как эти 3 вещи вообще зависят друг от друга? Хуёмаё, иди читай как DNS работает! Потом как работает web server. Asp.net тут вообще не причём.Razor vs API - ты реши чё тебе надо. То ли тебе REST API, то ли тебе UI, то ли тебе и то и то. Причём тут MVC вообще? MVC - это про стукрутур проекта. Может тебе вообще MVC не надо. Я понимаю, что в названии фреймворка эту аббреиватуру используют, но тебе надо от неё абстрагироваться.Про майнкрафт - выпились плиз.
>>1639770Этот дебил из Майнкрафта не только этот тред засрал кстатиВкатывальщики совсем ебанулись. Чем дальше к сингулярности тем охуевшей вкатчики.
>>1639796Зависит от того, что за программа, разумеется. Одно дело переписать формошлёпский клиент для работы с данными из БД, и совсем другое, например, какой-нибудь рендерер сложной хуйни с дикими матмоделями.
>>1639770>Причём тут asp.net и домен и локальный хостинг? Как эти 3 вещи вообще зависят друг от друга?- Проект на чем? На ASP.NET Core- Где хостим? На локальной тачкеЧто тебе блять не понятно? DNS я знаю как работает, как и web server>Asp.net тут вообще не причём.понятно, у тебя проекты .NET-та на апаче или на nginx крутяться? Выебщик хуев, тутор лучше скинь какой ни будь, а не выебывайся
>>1640721я думаю стоит. мне в целом нравится этот язык. и это главное. думаю если погонишься за большими деньгами на нелюбимый язык, то тебя остаебёт и ты быстро выгоришь.
>>1640742если просто нравится кодить - конечно стоит, если хочешь еще копеечку заработать - думаю стоит задуматься
>>1640809Так а разве на си шарпе нельзя копеечку заработать? Я глянул вакансии, джунов ищут - норм. и притом не как на Java в 99.9% в требованиях знания сахарка из спринга с аннотациями, а вполне так в разные области можно попробовать. даже где-то видел, что формочки шлепать можно.
>>1641022я бы копеечку на другом зарабатывал, но раз ты видел вакансии, да еще и джунов - то вперед и с песней. Потом поплачешь расскажешь, как все прошло
Почему тред затух в последнее время? Вы же раньше вон какими активными были, после 500 перекатывали, по всей доске был слышен шарп, а сейчас...
>>1641157TS оказался нужнее шарпа. А что, удобно, на реакте с нодой сайтик набросал и готово тестовое. А это учить 2 языка, еще и там фреймворк, и там асп нет.
Анон, подскажи, почему у меня при выполнении данной программы (вычисление суммы депозита) с заведомо известным результатом (100 12 1) выдает не 101, а 101,0045960887181. Все уже перепроверил, формула правильная.https://pastebin.com/HXJUXF0QМожет, с типами данных что-то не так? Вроде в комментариях на сайте все через double делали.https://ulearn.me/course/basicprogramming/Praktika_Protsenty__6cc09002-9973-4328-a31b-c7343f8c6b5d
>>1641261Это не от конвеншена зависит, а от твоих целей. Если нужно использовать новое значение, то ++x, если старое, то x++
>>1641264>Если нужно использовать новое значение, то ++x, если старое, то x++У тебя признаки рака мозга, обратись к врачу.
Вопрос по могильным приложениям.Имел малый опыт по разработке Java приложений под ведроид, ну если это делать на C# по ощущениям будет тоже самое?Вот допустим приложение под 4 ведроид может работать на 7, есть какая-то совместимость у версий ведроида???
>>1641162>А что, удобно, на реакте с нодой сайтик набросал и готово тестовое.И миллион школьников, размышляя так же, набрасывают сайтик на реакте с нодой и идут конкурировать за зарплату в 20к. А вот в ASP школьники не могут, поэтому мы по 80к на первых работах получаем.
>>1641641>double: хранит число с плавающей точкой от ±5.010-324 до ±1.710308 и занимает 8 байта. Хз, конечно, но вряд ли это может дать погрешность до 3 знака после запятой...
Sup Aноны, пытаюсь делать лабы по виндоус формам на С#, но что-то я явно не понимаю в математике этого языка. Есть код: https://pastebin.com/6rta9mzTЕсть интерфейсс, пик2. И есть задача с контрольными значениями, пик1. И вот результат "Результат U = -40,6306940893479". Подскажите, что я делаю не так? Где я проебался?
>>1641274Если просто использовать, значит у тебя говнокод. >>1641278>этот подрыв вкатывальщика, который не знает разницу между x++ и ++x
>>1641667Окей похоже мне не хватает знаний маразматики, я не уверен. Я думал да. Но как это должно выглядеть в коде, если это не так ?
>>1641682Всё я понял, написалdouble b = (Math.Asin(z)* Math.Asin(z) - Math.Abs(x - y));но до сих пор не понимаю в чём разница, с double b = (Math.Pow(Math.Asin(z), 2.0) - Math.Abs(x - y));
>>1641752Мань, почему еще здесь а не в гугле с запросом отличия префиксного инкремента и постфиксного?
>>1641655И до первой может. Они в памяти так представлены, тут не в количестве цифр после запятой дело.
>>1641767Это же ты уже которой пост горишь от незнания этого, ты не спрашивай, ты сразу учи и в следующий раз не обосрешься.
>>1641772Приятель, у тебя провалы в памяти? Мы вроде с тобой уже установили, что возвращаемое значение мною не используется, соответственно преинкремент и постинкремент функциональной разницы не имеют. На что ты заявил, что использовать инкремент и не считывать возвращаемое значение — признак говнокода. Я такому заявлению несказанно удивился, ведь я могу накидать тебе подобных примеров использования инкремента хоть из кода самого дотнета.И тут у тебя случился откат и ты снова взялся повторять про эту разницу, и что никто здесь кроме тебя якобы этого не знает. Так вот, что с тобой не так, в чём твоя проблема? Зачем ты продолжаешь как одержимый повторять одно и то же, что никто здесь даже не обсуждает?
>>1641785>ведь я могу накидать тебе подобных примеров использования инкремента хоть из кода самого дотнета.Сычуш, когда-нибудь ты вырастешь, возможно поумнеешь, и поймёшь, что идеального кода не бывает, потому что не бывает идеальных компиляторов, идеальных IDE и идеальных языков программирования. Да-да, сычуш, постарайся не сильно травмироваться с осознанием этого, а то я смотрю у тебя там манямирок полностью реальность затмил.
>>1641765Твой пример это не подтверждает, там разница в миллиардных долях, а то и меньше.В python такая же чепуха с float, дает допустимую точность все равно.
>>1641788Где я называл код дотнета идеальным?Я утверждал, что там используется инкремент без считывания возвращаемого значения.Ты утверждал, что это признак говнокода.Я правильно понимаю, что код .NET Core — это говнокод, а твой код — это не говнокод? И на чём именно основано такое убеждение, можно поинтересоваться?
>>1641806Ты всё сам поймёшь, ровно после того, как перестанешь додумывать чушь вида "а твой код — это не говнокод"на основе утверждений о каком-либо коде. Если человек что-то называет черным, это не значит, что у него всё белое. Понимаешь, сычуш?
>>1641837Тогда в чём был смысл утверждения>Если просто использовать, значит у тебя говнокод. если оно не несёт никакой информации? Или всё же в простом инкременте есть какая-то своя особая говнистость, отличающая такой код от всех прочих говнокодов? В чём же она заключается?
>>1641846Смысл в том, что нужно всегда понимать что ты делаешь и предназначение инструментов, которыми ты пользуешься. По твоему самому первому вопросу, можно понять, что ты этого не понимаешь.
>>1641853С чего же ты взял, что я не понимаю, что делаю и чем пользуюсь? Разработчики .NET тоже не понимают, что делают и чем пользуются? Они ведь точно так же используют инкремент. Не хотел, но боюсь, что стоит повторить, а то вдруг у тебя опять случится провал в памяти и ты начнёшь задвигать про разницу пре- и постинкрементов: ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ НЕ СЧИТЫВАЕТСЯ. ВСЯ ИНСТРУКЦИЯ ПРЕДСТАВЛЯЕТ СОБОЙ ЛИШЬ ИНКРЕМЕНТ ПЕРЕМЕННОЙ. ОТ ПЛЮСОВ СПЕРЕДИ ИЛИ СЗАДИ ЛОГИКА ПРОГРАММЫ НЕ ИЗМЕНЯЕТСЯ.
>>1641867И что там? Ты не понимаешь, что разницы в логике программы междуvar++;и++var;нет никакой совершенно? Или ты считаешь, что она есть? Какая же?
>>1641881Так стоит задача на сайте, я так понимаю, что если требуют результат вывести в double, то и расчеты стоит вести в нем, с decimal уже нужно использовать всякие хитровыебанные методы для возведения в степень, деления и т.д.Ну и мне простительно, я машиностроитель по образованию.
>>1637400Уже вижу челика который солюшен на core с 20+ проектами в сублайме редачит, агаИли это такой троллинг, а я не выкупил
>>1641673Ты еблан какой-то, в почти любом цикле есть инкремент, который просто вызывается в конце итерации и его значение никуда не присваивается. И там абсолютно до пизды i++ или ++i кроме конвенции.мимо
>>1642064В голос, блять, еще один дегенерат. Какой нахуй конвенции, тупоголовая скотина? Вот написано у тебя в конвенции ++x и ты хуячишь ++x там где нужно x++? Так ты себе это представляешь, хуесосина?
>>1642145>Вот написано у тебя в конвенции ++x и ты хуячишь ++x там где нужно x++?Вкатывальщик порвался, несите нового. >Вот написано у тебя в конвенции ++xНе написано. ВСЕГДА используется x++;>ты хуячишь ++x там где нужно x++?Тебе руки нахуй оторвут, если ты будешь в коде использовать возвращаемое значение инкремента.
>>1642145>Вот написано у тебя в конвенции ++x и ты хуячишь ++x там где нужно x++?И ты хуячишь ++x там, где не имеет значения, ++x или x++. Почему ты настолько тугой?
>>1642145>в почти любом цикле есть инкремент, который просто вызывается в конце итерации и его значение никуда не присваивается. И там абсолютно до пизды i++ или ++i кроме конвенции.>Вот написано у тебя в конвенции ++x и ты хуячишь ++x там где нужно x++?Тебе родителей не жалко? Им же приходится до сих пор тебе жопу вытирать.
>>1642145типичный # вкатывальщик. Вам не зашквартно с такими в одном комьюнити сидеть? Даже JS макаки такой хуйни не пишут
Блядь, вот какого хуя, несколько Fixed столько весит? Это ж пиздец какой-то. Каждые пару недель выкачивает под гигабайт, сука. Похуй, трафик безлимитный на 4г, но время-то дохрена уходит, ладно хоть ноут не старый, а на старой железке без SSD можно пол рабочих дня на такое говно потерять.
Кто может подкинуть инфу по проекту на asp.net core web api + клиенская часть (react/angular/vue)? Я знаю, как задеплоить на хост приложение MVC, но блять ума не приложу, как работает это с разделенным backend и front. Пробовал тупо кидать в wwwroot сборку webpack, но хуй. Заранее спасибо
>>1618705 (OP)Сап, шарпач.КАК ЖЕ ЗАЕБАЛ ЭТО ЕБАНЫЙ ДЕБИЛЬНЫЙ МУДАЦКИЙ АБОРТИРОВАННЫЙ НИГИЛЛИСТИЧЕСКИЙ ПИДОРАСТИЧЕСКИЙ ВЫПЕРДЫШ ТУПОГОЛОВЫХ НИЗКОЦЕФАЛЬНЫХ ПРОФНЕПРИГОДНЫХ УБЛЮДОЧНЫХ ОБСОСНЫХ СРАНЫХ ДЕВЕЛОПЕРОВ - ТУПОЕ ГОВНО ТУПОГО ГОВНА, NuGetКак ебаный прокси с доменным юзером на нугу накинуть? Я уже три часа пытаюсь скачать ссаный индекс. Пробовал и в урл прописываться, и через CLI - все хуйня, 407.
Всем привет. Может подскажете в чем соль.Нужно создать зубчатый массив и запилить в него всякие свойства и методы. Застрял на моменте ввода значений в массив с клавиатуры подскажите в чем соль может быть где проебался вот скрины кода.
>>1643029>зубчатый массив>запилить в него всякие свойства и методы>Застрял на моменте ввода значений в массив с клавиатурыУ тебя все ок? Не болен?>может быть где проебалсяза тебя IDE все делает - читай exception
>>1643029Все хуйня, давай по-новой.Во-первых, нэйминг. m, n - ни о чем не говорит, doubleArray - запутывает, SteppedArray - это называется Jagged/Ragged array, GetArrayToConsole - абракадабра и т.д.Во-вторых, подсчет элементов неверный, это для матрицы так можно, а ступенчатый массив может быть такимa, b, cde,f,g,h,i,j,k,lПо поводу исключения, смотри что вводишь в консоль, на вход ожидается целое число
>>16430291) Ты проебался с изучением предметной области. Читай про IEnumerable<>. 2) Ты читаешь всю строку с консоли. Если я напишу дичь а-ля0.293,211 14188ПИЗДЕЦ^w, то стандартный метод спарсит тебе Exception, который ты не ловишь. Поэтому, как минимум TryParse(), а лучше регексы+валидатор. Есть еще вариант с try..catch, но это полная хуйня.3) Если лезть совсем в залупу, то ты проебался с тестированием. Вместо автоматизированного теста у тебя долбежка в консоль. Но ты совсем зеленый, забей на тесты до первого проекта с хотя бы 10-ю классами.
А вообще, я хуею с этих вузовских методичек по программированию: УРОК 1@ПЕРЕМЕННЫЕ, ТИПЫ, УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ@УРОК 2@ФУНКЦИИ, МАССИВЫ, СТРУКТУРЫ@УРОК 3@КЛАССЫ@УРОК 4. ПРАКТИЧЕСКОЕ ЗАНЯТИЕ@РЕАЛИЗОВАТЬ С НУЛЯ ПОТОКОБЕЗОПАСНУЮ OBSERVABLE BTREE COLLECTION С ПАРАЛЛЕЛИЗМОМ
>>1643202>урок 4 практическое занятие>считать данные из консоли и добавить в многоуровневый массив>пук среньк маам скажи им пачиму так сложно ряяя двааач памахай!!
>>1618705 (OP)Существует ли способопределить кодировку bytearray,прежде чем сделать convert bytearray -> to string?Существует ли универсальная кодировка, которая могла бы представлять байты в виде читабельного текста?Я знаю, что можно в base64 закодировать,но это не совсем уж читабельный текст,русских букв там нет, и его надо раскодировать.Для английских букв подойдёт и ascii,кириллица же, есть в utf8,но почему-то при попытке кодирования произвольного байтового массива в utf8,назад из строки, этот bytearray уже не раскодировать...В общем-то, задача в следующем. "data" (text or binary) -> text1 -> bytearray -> text2; (text1 === text2)
>>1643272Тут не про сложность и не про отсутствие практических занятий. С самого начала втирают императивку, которой можно выделить 2 часа, а потом удивляются почему в профессии кругом сплошные быдлокодеры, не пригодные даже в экселе таблички сводить. НЕТ, ПОЛГОДА ЗАДАНИЙ НА ДРОЧКУ БАЙТОВ ИЗ МАССИВА В МАССИВ - ЭТО ЗАЕБИСЬ, ТРУЪ НА ЭТОМ ВЫРАБОТАЕТ НУЖНОЕ МЫШЛЕНИЕ ПИЗДИТЬ КОД НА STACKOVERFLOW, А НЕ-ТРУЪ РАЗОЧАРУЕТСЯ И СТАНЕТ ПОВАРОМ.
>>1643307Человеку, который пишет int arrayElements и при этом не смущается тому, что у него массив назван doubleArray, который не смог вбить в гугл-переводчик "зазубренный массив", который не может понять смысла предложения исключения выданого IDE, такому человеку никакая программа не поможет и всё ему будет плохо и не так.
>>1643317Ага, или другая крайность:> Я тут сижу и вместо дельных советов кукарекаю про названия переменных, хотя по всем признакам человек только начинает осваивать программирование.
>>1643285>определить кодировку bytearrayНадежного способа нет. StreamReader попытается определить, или в ручную через анализ BOMa.>универсальная кодировка, которая могла бы представлять байты в виде читабельного текстаЧего, блять?>произвольного байтового массива в utf8А utf8 это не произвольный набор байт. Прочитай хотяб на вики как оно кодируется.text1 -> bytearray -> text2; (text1 === text2) var bytes = Encoding.UTF8.GetBytes(text1); var text2 = Encoding.UTF8.GetString(bytes);.
>>1643285Этот вопрос закрыт, решение найдено - это SBCS.Она кодирует все 256 байт одним символом,и есть ещё DBCS - она по два байта кодирует, в символе, то есть все 65536 байт.Разумеется - реверсивно, и текст читабелен, вроде, если байты англ букв.>>1643507Я уже пробовал, но UTF8 - не реверсивен. Пруф: https://rextester.com/IOUGY24132
>>1643551Я, правда, так и не понял, как его вызывать, кроме как используя System.Text.Encoding.Default>System.Text.Encoding.SBCSCodePageEncodingне работает>System.Text.SBCSCodePageEncoding.GetString()тожеИ если это Character Set, наверняка можно произвольные символы ему задать, в этот set, чтобы там кириллица была?Или есть что-нибудь с кириллицей уже? BlockCopy методы, хоть и реверсивны, но выдают китайские кракозяблики в строке.То есть, если в байтовом массиве байты текста "page/?строка1=one&строка2=two"- будет хуй пойми чего, по китайски, а не текст.
>>1643551Если тебе достаточно одного байта, для кодирования символа,то гугли 8-ми битные кириллические кодировки.Их там несколько: Windows-1251, CP866, KOI8-R и ISO 8859-5Они - как расширение 7-ми битного ASCII идут и кодируют оставшиеся символы вплоть до байта со значением 255.Но, что если кириллический символ будет закодирован двумя байтами?Например, буква "Б" в Unicode: https://unicode-table.com/ru/0411/"Unicode, говоришь не реверсивен, хуй знает тогда, как. Может аноны подскажут?
>>1643551>Пруф: https://rextester.com/IOUGY24132Пруф того, что ты так и не прочитал пару статей на вики? Ну продолжай кодить наугад, как обезьяны, пишущие Гамлета.https://rextester.com/IHJMZ44209
>>1643593>Encoding.GetEncoding(437);>cp437Там же нет кириллицы.Нашёл кучу кодов, вот здесь: https://docs.microsoft.com/en-us/dotnet/api/system.text.encodinginfo.getencoding?view=netframework-4.8Заменил "437" на:"1251" (windows-1251) - GOOD."866" (cp866) - GOOD.utf-8, по коду 65001 - ВAD.В общем, вот: https://rextester.com/MCE69037Половина из них реверсивны, половина - нет, блядь.И да, что это за кодировка такая? SBCSCodePageEncoding??Даже кодовой таблицы в гугле нет. Как её включить, чтобы юзать принудительно, а не по default'у? Вдруг Default будет UTF8 или ещё чё, и надо будет SBCS.GetBytes() и SBCSCodePageEncoding.GetString() вызывать?
>>1643613>Там же нет кириллицы.А она нужна? KOI-8r глянь, может подойдет, может нет.>SBCSCodePageEncodingGoogle, motherfucker, can you use it? Single Byte Character Set, т.е. это не какая-то конкретная кодировка. И по сути оно будет хранится в таком же byte[] как и до конвертации в строку. Ты же понимаешь, что строка это такой же набор битов, а кодировка это способ их интерпретации. И если пользоваться SBCS, то массив {10,20,30} будет тем же массивом {10,20,30} и только при выводе на экран в зависимости от кодировки это будет "хуй" или "huy".Ты лучше скажи, что ты делаешь, тогда есть шанс, что тебе подскажут адекватное решение, а не гонять байты в строки и обратно.
>>1643622>>Там же нет кириллицы.>А она нужна?Очень желательно, но не обязательно.>KOI-8r глянь, может подойдет, может нет.Он для .NET Framework только, поэтому, наверное, лучше>"iso-8859-1", с кодом 28591 (Western European (ISO))как правильно подметил этот >>1643603 анон, она заведётся и на .NET Core.>Google, motherfucker, can you use it? Single Byte Character SetЯ уже столько вкладок с английскими буквами про эту хуйню, позакрывал нафиг...Там же ни кода, ни кодовой таблицы - нифига, сухое бла-бла, так и непонятно как его вызывать, без Default.Тем не менее, с System.Text.Encoding.Default.GetString() и System.Text.Encoding.Default.GetBytes() работают с ним.>И по сути оно будет хранится в таком же byte[] как и до конвертации в строку.>Ты же понимаешь, что строка это такой же набор битов,>а кодировка это способ их интерпретации.>И если пользоваться SBCS, то массив {10,20,30} будет тем же массивом {10,20,30}>и только при выводе на экран в зависимости от кодировки это будет "хуй" или "huy".Ну так, на выходе же строка. А можно как-то символы эти задать, и сделать из него, тот же windows-1251??>Ты лучше скажи, что ты делаешь,>тогда есть шанс, что тебе подскажут адекватное решение,>а не гонять байты в строки и обратно.Ладно... Начну свою кулстори...Есть значит, некий HTTP-сервер, в onion...Он принимает очевиднейший HyperTEXT,который поступает на методы в виде>stringно внезапно, юзер заливает PNG-картинку с фракталом,а она с JavaScript'a грузится, отправляется POST-заросом как blob или ArrayBuffer,и ещё и шифруется, при помощи HSalsa20, ассиметричной криптографией x25519-xsalsa20-poly1305,при помощи библиотеки TweetNaCl.js v1.0.3,и этот шифр гонится на сервак в виде raw-data,которая в string хуёво конвертится, из-за этих кодировок ебучьих, что и нахуй не нужно.Ну да ладно...Есть отдельный метод, принимающий request в виде byte[] в качестве параметра,там он дешифрует, и обрабатывает пикчу, кароче, ну или JSON дешифрованный.Туда, на этот метод, инфа может и должна заливаться,только если она рили бинари, а не текст,потому что в тексте могут быть get-запросы,вида "page/?строка1=one&строка2=two" или даже: "?oh_shi={JSON_с_кириллицей, ебать}"Весь прикол в том, что и текст, этот, ебучий, может слаться в бинарном виде,например POST-запросом, в виде ArrayBuffer'a.Собственно, стоит задача - попытаться декодировать байтовый массив в текст,извлечь оттуда не только латинницу, но и кириллицу - в string,и отправить результат - на метод, принимающий string,там эту string проверить, и если это не текст, читабельный,а говно какое-то неведомое - значит это криптошифр,его надо декриптовать, но не в виде текста, а в виде байт.Поэтому строку, эту, ебучую, фейлово сконверченную, надо реверсивно, сконвертить в байты,а байты уже присунуть методу, принимающему bytes[], для декрипта этих байт,и выдачи строки декриптнутой - опять на метод.Ещё один прикол, в том, что кириллица в декриптнутой строке, может содержать четырехбайтный Unicode,в то время как сами байты криптошифра может быть представлен однобайтными символами.То есть, вопрос ещё и состоит в том, какая же кодировка у всей этой хуйни...
>>1643640Забыл добавить один немаловажный аспект, для наглядности того, что асимметричное шифрование,которое на стороне клиента, реализовано вот таким вот образом:https://github.com/username1565/nanoboard-javascript-captcha/blob/44f7fed434de3941d4c83fad7f9501a464ac0452/index.html#L276Дешифруется на стороне сервера, вот так:https://github.com/username1565/Chaos.NaCl_in_one_CS/blob/633405df3709b33190d5557f52aaf6958c2f30ff/Chaos.NaCl.cs#L788Разумеется, после вычисления общего ключа симметричного шифрования, на эллиптической кривой Монтгомери:https://github.com/username1565/Chaos.NaCl_in_one_CS/blob/633405df3709b33190d5557f52aaf6958c2f30ff/Chaos.NaCl.cs#L476Дальше, производится симметричный энкрипт-декрипт данных в обе стороны - абсолютно-криптостойкимшифром Вернама, на базе XOR-шифрования.Очевидно, что оба метода - принимают на вход byte[], а не string,поэтому HTTP-request должен содержать content в виде binary-data.Впрочем я ранее и представить себе не мог, как можно было бы, в виде текста, отправить сырые данные.Однако можно! И реверсивные кодировки тому подтверждение.Но всё-же, зашифрованные данные приёмопередаются в бинарном виде,а частности, JSON, с данными, в размере около 30 гигабайт,при загрузке с клиента на сервер, должен бы быть зашифрован и передан в бинарном виде.Расшифровка же, на стороне клиента, автоматизирована, при помощи асинхронных функций,с использованием promise и таймаутов.Всё это - вместе слаженная криптосистема, которая может работать децентрализированно,как онлайн, так и оффлайн, поскольку изначально, наличие серверов у неё - не планировалось.
Начинаю разбирать MVVM паттерн для WPF, нужна хелпа с литературой/источниками инфы. Курсы,книги,статьи - все что поможет на ваш взгляд. Metanit плохо объясняет или я тупой. Пока только первый день ебусь с этим, но прогресс есть. Всем ответившим заранее спасибо
>>1643660Но если ты с мутанита начал знакомство с шарпом, то тебе придётся читать её полностью, а не только часть c MVVM
Помогите пожалуйста. Нужна программа которая подсчитает число повторяющихся символов в строке.Как сделать чтобы он не выводил уже выведенные символы и игнорировал пробелы?listBox1.Items.Clear(); string text = textBox1.Text; foreach (char ch in text) { int i=0; for (int l = 0; l < text.Length; l++) { if (ch == text[l]) i++; } listBox1.Items.Add(ch + " - " + i.ToString() + " раз "); }
>>1645716Одной строкой.> listBox1.Items.Clear();> string text = textBox1.Text;text.Where(c => char.IsLetter(c)).Distinct().Select(c => $"{c} - {text.Count(cc => cc == c)} раз").ToList().ForEach(c => listBox1.Items.Add(c));> Нужна программа которая подсчитает число повторяющихся символов в строкеКакой вопрос, такой и ответ.
>>1645769Понимаешь, анон, это решение, оно вряд ли тебе подойдёт. Ты ведь наверняка делаешь эту херню для учёбы, лаба какая-нибудь, или ещё что. 95% вероятности, что от тебя хотят, чтоб ты сам верно составил алгоритм, а не вызвал по цепочке несколько функций языка, которые за тебя всё сделают сами.Поэтому пиши алгоритм. Ты начал верно, там должен быть цикл. Но хватит и одного цикла, второй не нужен. Тебе нужно где-то вне цикла сохранять уже найденные символы и их количество, чтоб когда один и тот же символ встретится второй (и т.д.) раз, ты мог бы просто прибавить единицу к счётчику.Думай, там всё просто на самом деле.И да, в классе char ты сможешь найти некоторые методы, которые тебе помогут определить, чем является символ - буквой, цифрой, знаком и т.д.
>>1645769>но оно работаетКак надо? А то ты считаешь все символы, включая пробел, а тот анон только буквы.Можно еще listBox1.Items.Clear();listBox1.Items.AddRange(textBox1.Text.GroupBy(c => c).Select(g => $"{g.Key} - {g.Count()}").ToArray());
Я конечно дико извиняюсь, но тут есть те, кто уже вкатился? Судя по вопросам из ленты - на борде сидят только студенты и вкатывальщики.
>>1645716listBox1.Items.Clear();string text = textBox1.Text;Dictionary<char, int> chars = new Dictionary<char, int>();foreach (var ch in text){ if (Char.IsLetterOrDigit(ch)) chars[ch] = chars.ContainsKey(ch) ? chars[ch] + 1 : 1;}foreach (var item in chars){ listBox1.Items.Add($"{item.Key} - {item.Value} раз(а)");}
>>1645867проскролил ленту, ни одного вопроса, которые могут касаться реальных проектов. Какие то блять формочки, алгоритмические задачи. Пиздец, товарисчи. Я попутно в JS треде сижу, там хоть что то годное можно найти. Тут же - болото блять
>>1645826Привет. Полтора года в c# комерческом ентерпайзе. Полет - номра, благо софт пишу в нише которая всегда в топе.А как у вас на галерах? Урезают зп?
>>1646082>комерческом ентерпайзеинтерпрайз бывает не комерческий? Насчет галеры - часть проектов закрылась и сидят на бенче гребцы, все ремоут. Насчет урезки - есть галеры, где 50/75% от ЗП платят, у нас такого благо нет
>>1646037Тот кто вкатился, тот должен был научится гуглить. На 99% вопросов ответы уже есть, а чтобы спросить оставшиеся есть места поинтереснее борды со школьниками.
>>1646132я если спрашиваю, то вопросы типо "best practice" или архитектурные заморочки. Но тут же блять, просто зашквар. То строчки подвинь, то алгоритм забей в метод. Пиздец короче. Вчера поскролил этот тред, не успел до половины дойти, как понял, что все безнадежно
>>1646216Так что-то сложнее хеллоуворлда в треде все равно не помогут. Да и ответа ждать пару дней, лучше уж на стаковерфлоу англоязычном спросить или нагуглить готовое решение.
>>1618705 (OP)Анон, нормально ли будет начать изучать с Шилтда полному новичку? Или он сильно устарел?
Вопрос не по шарпу, но раз пишу на нем спрошу у вас. Можно и в ксс сделать базовый стиль, а потом наследоваться от него (как в впф basedOn). Например.card {margin = 5px;}.fruit_card { //как унаследовать маржин от card?background: red;}.berry_card {background: blue;}
>>1646230у меня были проблемы на проекте с миграцией с 2.2, где ебучий движок начал отваливаться при работе с Rest Api, т.к. Middleware выпилили из ASP.NET Core. В итоге сам нагуглил и прикрутили на обычный SPA, ответа так борде так и дождался :) Не знаю, какой идиот ввел программу # в образовательную систему, чем им пайтон, ++ и Java не угодили...
>>1646284На самом деле инфа по твоему вопросу в треде есть, просто ты из-за не знания предметной области не понимаешь как эти вещи связаны. Вообще твой вопрос возник из-за того что ты в принципе не понимаешь клиент-серверную архитектуру, REST API и где проходит грань между бэкендом и фронтендом.
>>1646498чувак, у меня завуалированные пук-сер ответы на двоче в эстимейт не учтены. Уже давно все нагуглил и запилил, см. >>1646284Просто когда задавал этот вопрос не проскролил и не посмотрел уровень других вопросов.
анон в /b/ недавно скидывал что-то типо онлайн уроков по с# в виде заданий, а я винду переустановил и проебал вкладку. если кто знает годные - скиньте.
>>1646652Я прохожу на ulearn.me, в принципе норм, но упор на разработку алгоритмов сложноват для новичка. Зато много заданий с написанным тест-софтом внутри, что облегчает дебаггинг.
Что нормальные программисты используют для логгирования? Просто я столкнулся с проблемой в виде того что Serilog, которым я пользовался, не совсем подходит, стандартный asp.net логгер совсем не очень, NLog как и Serilog.
У кого-то был опыт перекатывания на сишарп после 1С? Я вот думаю вкатиться, выбрал шарп потому что имхо это будет мне ближе после 1С, энтерпрайз типа, все дела. Но пугает несколько объем всех этих новых штук, как другая планета совсем.
>>1647230Я не спорю, просто интересно, есть ли тут у кого-то похожий опыт.>>1647239Ну не стукай, по крайней мере формально 1с тоже энтерпрайз.
>>1647250гараж деда Макара по производству болванок тоже можно назвать интерпрайзом. На .NET проект посмотришь, сознание потеряешь после своего говна 1С с рузкоязычным синтаксисом и 90% написанным шаблоном базовой сборки
>>1647259>На .NET проект посмотришь, сознание потеряешь после своего говна 1С с рузкоязычным синтаксисом и 90% написанным шаблоном базовой сборкиНу вот такого я и боюсь больше всего. Но в любом же случае, джуна сходу не будут макать так жестко, п-правильно?
>>1646998log4net. Я хз чем они отличаются, просто популярный логгер, который на слуху.>>1647269Наверно зависит от компании. В Кого-то будут вводить плавно, а вдругой компании возьмут пачку трейни бросят в чан с говно и каждый за себя, кто выплывит молодец, кто нет - на свалку.
>>1646998Я не понимаю как Serilog может не подходить. Он же может в любой стрим записывать.Вообще вот всё что нужно для начала знать: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1В Azure используется AppInsights telemetry.Elmah часто вне облак используют - https://elmah.github.ioХорошая статья со сравнением разных библиотек - https://michaelscodingspot.com/logging-in-dotnet/
>>1647362> Я не понимаю как Serilog может не подходитьНу, просто в целях совместимости с софтом, который пилился в начале нулевых и у которого программисты придумали что общепринятых уровней - мало, надо сделать 15 своих(при этом по факту большая часть этих дополнительных уровней никогда не используется), мне нужны кастомные уровни логгирования, а в серилоге уровни намертво прописаны и чтобы обеспечить такую вот совместимость придется костылить, а я хочу избежать этого, по возможности. Вот и подумал просто, что может быть есть какое-то популярное решение, в котором можно все настроить под себя и просто пользоваться.
>>1647446Чувак, не бойся тратить время на уборку мусора (tech debt elimination). Начинай выпиливать говно мамонта потихоньку. Переписывай старую нужную логику в отдельные АПИ: библиотеки, REST, что угодно из доступного.Постепенно нужда в старом отпадёт.
Покой и процветание вашему дому, шарпанты. Подскажите монументальный труд по ASP.NET Core (типо троелсена) в оригинале. Курю метанит, но все равно кажется, что ем говно.
>>1647645На их docs сайте и есть монументальный труд и как раз в оригинале (ру-ру убери). Там куча вводных статей и потом погружение в дебри с кучей деталей, примеров и даже Try It прямо в браузере + ссылки на гитхаб с примерами и кодом.Какие книги по программированию в 2020? Ваще ебанулись?
>>1647761Открой уже для себя HashMap (Dictionary - стандартная реализация этой структуры данных в дотнете) и не еби людям голову по группировке данных. И вообще выучи основные алгоритмы в работе с ним. Одна из самых используемых структур и на собеседованиях часто всплывает.При подсчёте символов можешь добавить обычный if(ch == ' ') continue;Для лабы прокатит.Передай своему преподу что он пидор (ну или просто бедный чувак, работающий за 10к в вашей шаражке) и что он застрял в начале нулевых.
>>1620325>Это применимо к любому языку и тому, что вокруг них обросло.Охуеть, хочешь сказать, что в делфе не было этого пиздеца со строками?
Мне надо сделать в разор пагесах такое:значениеИзмодели1...значеиеИзМодели2если я пишу так @[email protected], то разумеется он матерится на точки если добавлю пробелы @model.a ... @model.b, то пробелы будут и в хтмл, а мне они ненужны. Пока писал понял, что можно использовать стринг.формат. Это нормальное решение или есть еще что?
Понимаю, что вроде как для F# есть отдельный тред. Но все равно спрошу тут.В общем, я хочу попробовать использовать этот самый F# в реальном проекте для API. Но не уверен надо ли и вообще, получу ли я от этого какой-то профит. Потому, если кому не лень, может быть поделитесь опытом использования F#: В каких задачах он полезен, какие лучше на обычном шарпе решать и вообще, здравая ли это идея выносить API на F#, когда все остальное на обычном C# написано и нормально работает?
>>1647761Это че, код который считает сколько раз каждая буква встречается в строке?Это ж на linq можно в одну строчку написать.
>>1648088Не важно на какую тему и как ты поставишь вопрос всегда выползут вот эти вот. У чувака же явно лаба, ему самому надо алгоритм составить. Эту фигню можно за O(n) легко решить. Я более чем уверен что твоё решение на LINQ будет как минимум n log n. На линке можно тоже за О(n) решить, но не с твоими знаниями.
>>1648117За сколько это выполняется? Просто я вот бака-прикладник, нас вот учили именно инструментами пользоваться, а какое там время выполнение и прочее - не важно, говорили что важно решать прикладную задачу в срок. Вот.мимо
>>1648150Я такого ответа и ждал. Странно только почему все удивляются что вокруг вечно всё лагает и падает. Да потому что большая часть представителей нашей профессии решает задачи здесь и сейчас со взором, устремленным в одну точку, и не желанием охватывать всю картину целиком.Код можно писать красиво и достаточно оптимально (для большинства случаев подойдут стандартные дата структуры и алгиритмы) за такое же время, что и говнокод, который наша индустрия лепит как сумасшедшая. А со временем нормальный код поддерживать становится даже проще и быстрее, потому что всё по полочкам и странные баги не начинают атаковать тебя из всех щелей.В твоём (спасибо хоть оформлен красиво) примере произойдёт следующее:- Where создаст новый объект с коллекцией равной в худшем случае O(n) space complexity и выполнит операцию за один проход O(n) time complexity;- GroupBy создаст еще одну коллекцию и пройдётся по массиву еще раз + вызовет операцию по созданию hash на каждый символ + операцию сравнения хэша + выполнит операцию ToLower n раз;- Select пройдётся по конечной коллекции (которая на самом деле HashMap с самими значениями + хэш этих значений) и создаст еще одну её копию;- Count пройдётся один раз по каждой категории в HashMap что в сумме даст еще один полный прогон.Это грубая оценка, там еще зависит от того, какой компилятор и какие параметры для оптимизации используются. Но в любом случае твой пример насоздаёт кучу новых объектов и сделает дохрена доп операций, которых можно избежать, написав такой же по компактности код и потратив ничуть не больше времени на это. Если входной текст будет 1мб, то твоя программа займёт как минимум 3мб памяти. В случае с приложениями, которые грузят очень много ресурсов (например игры) или high load, где вызов этого метода будет происходит 1к+ раз в минуту, то ты засрёшь память и cpu очень быстро.Твой ответ прокатит как разминочный раунд на интервью, но потом начнутся углубления и просьбы об оптимизации.Нужно конечно осознавать природу своего приложения и среды, в которой оно будет крутится. Где-то и такой код можно в прод выкатывать, а где-то тебя уволят за это нахрен.
>>1648173>Where создаст новый объект с коллекцией равной в худшем случае O(n) space complexity...Нет, линк, не создает каждый раз коллекции физически, только при использовании результата. Память только на итератор выделяется, т.е. O(1).
Так, где мелкомягкие запрятали документацию нормальную? Где можно посмотреть тупо списки классов, интерфейсов, их методов, без всяких гайдов?
>>1648173Сноб мамкин байтоеб понавысрал стену текста с обсиранием всех вокруг и обосрался сам. Впрочем ничего нового.
>>1648173>Код можно писать красиво и достаточно оптимально (для большинства случаев подойдут стандартные дата структуры и алгиритмы) за такое же время, что и говнокод, который наша индустрия лепит как сумасшедшая. Ну-ка напиши в 4-5 строк свою реализацию CountCharsInStr возвращающую словарь вхождений, чтобы 1000 запусков на строках по 10к символов выполнялось значительно быстрее чем на скрине. Кидай сюда, прогоню твоё решени.https://pastebin.com/eQ9ifLLc
>>1648298PS пикрил конечно выполняется где-то на 20% быстрее, но читается хуже, занимает больше пространства и пишется раза в 1.5-2 дольше. Так что под твои фантазии не подходит.
>>1648300>>1648298Ах да, ToLower() забыл во втором случае.С ним внезапно выполняется столько же. А если наоборот, в первом решении с LINQ убрать ToLower, то выполняется за столько же, за сколько второй случай через for-ы.
>>1648298>>1648302Ты наверное в дебаге тест прогоняешь. В релизе разница заметнее.Увеличил до 10к для того чтобы заметнее было.1 - LINQ2 - manualА еще глянь в профайлере какая разница в потреблении памяти.
>>1648298>>1648300https://pastebin.com/br2Hu060Вот будет работать раз в 20 быстрее.Но можно написать чуть лучше используя stackalloc и константы, меньше выделения памяти будет.
В общем, ньюфажеский вопрос.Смотрите, я писал приложение. Оно нормально работало, но получилось очень громоздким. Я решил его разбить на несколько приложений поменьше, которые бы могли работать независимо. Большую часть таки разбил - все ок. Но вот беда, есть места, где нужно было бы получить информацию которая теперь лежит отдельно в отдельном приложении. Как это лучше всего реализовать? Чтобы было понятно: В общем приложение задумано как сервис(не тот что микросервис, а тот что виндовый сервис, ака демон), этот сервис делает запросы к хедхантеру и смотрит новые места стажировки в моем регионе, сохраняет их в файлик, чтобы я потом посмотрел, так же, раньше, я прикрутил веб-интерфейс, чтобы удобно это смотреть в браузере. Теперь эти штуки разделены на несколько сущностей. Сервис который смотрит инфу хедхантера работает нормально и все так же сохраняет в файлик, но раньше я имел возможность из контроллера просто обратиться к запущенному синглтону этого сервиса и просто получить нужные данные, а теперь - не могу(думаю понятно почему). Конечно, можно захардкодить и просто читать из файла, но это не так интересно, я думал как-то передавать сообщения от сервиса в веб-приложение, но ума не приложу как это сделать.
>>1648561>передавать сообщения от сервисаMessage Queue (RabbitMQ например).Твой сервис сохраняет инфу в файл и отправляет сообщение через сервис сообщений всем подписчикам. В принимателе ты подписываешься на очередь и сидишь ждёшь когда тебе придёт сообщение. На их сайте куча удобоувариваемых примеров.
>>1648772нет, .net лучше, по многим параметрам, я думаю он медленно но упорно будет подтеснять джвку, синтаксис в .net просто сказка, рай для первекциониста
>>1648915Ты пишешь игру? UnityТы пишешь фото/видео редактор? нахрена??Ты пишешь редактор музыки? прекращай фигачить велосипеды!Кому сдался десктоп в 2020?
>>1648917>Зачем тебе десктопШоб крошплатформенно, все дела. Как Qt, только шарпец.>>1648940Ничего из этого не пишу. Просто вывод какой-то информации удобней писать через встроенные средства, а не через костыли.
>>1648940> Кому сдался десктоп в 2020?Любому, кто пишет нормальное приложение, а не тормозное дерьмо, работающее внутри отдельного экземпляра хромиума, потому что бородатый смузихлёб не учил другого языка, кроме парашного жаваскрипта.
>>1649576Причём тут хипстеры? Мы в дотнет треде. Тут всякие повыраставшие из плюсов и жавы отписываются.Твои десктопные приложения нафиг не сдались, кроме тех, что на полную катушку с GPU работают. И даже там уже появляются решения для удалённого запуска игр и другого тяжёлого софта.Еще не забывай что WebAssembly начнёт себя с каждым годом всё больше проявлять. Это считай как Докер контейнер, который может запускать что угодно на твоей машине. Можешь хоть тонкий, хоть толстый клиент делать. И писать ты под этот контейнер на любом языке можешь.
Вкатываюсь в дотнет вебапи с фронта, такие вопросы1. Делаю пет для обучения, сталкиваюсь с тем что естественно нужно придумывать БД. MySQL запросы я поглядел, что-то запомнил, хотя хз нахуя если у меня smss, но кажется я делаю не очень хорошую БД. По каким ключевым словам гуглить чисто поверхностные знания по проектированию БД, вот чисто чтобы петы делать хотя бы несложные и видящим пет не было кринжово? 2. Как понять что мой запрос к БД в сервисе с LINQ говно медленное (entity фреймворк)? Какие нибудь хорошие ресурсы по тому как стоит и не стоит делать есть?
>>1649661Например вот у меня есть таблица тредов и таблица постов. И чтобы мне получить посты этого треда у меня LINQ получается проходит по всей таблице постов и ищет посты с тредом соответствующим. Это же хуйня какая-то медленная, вот о чем я. Где почитать как стоит это дело делать по нормальному?
>>1649661Почитай про нормализацию БД - https://en.wikipedia.org/wiki/Third_normal_form (тут сложно, но можно нагуглить что-то попроще).1. Смысл в том что у тебя в БД- не должно быть дупликатов инфы. Для этого разбивают инфу, с которой надо будет в приложении работать, на логически завершённые объекты (User, Order, Request, Response, и т.д.). Между ними создают отношения (relationship - у нас же relational DB). Дальше соединяют обекты через ключи (Id).Student -> Student.SchoolId -> School- запросы делать только по индексированным полям и желательно никогда по строчным (string) значениям.- отношения между таблицами должны быть только через Id.- по возможности не должно быть сложно составных ключей.- если нет репликации, то желательно Id держать в int, а то и чём-нибудь поменьше, если знаешь сколько у тебя максимально возможное кол-во записей в таблице будет.2. Вот хороший ресурс -https://www.entityframeworktutorial.net/efcore/one-to-many-conventions-entity-framework-core.aspxEF Core (забудь про EF).Вообще при использовании ef ты должен использовать миграции - https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cliТебе нужно создать свои классы в C# и он сам за тебя создаст БД и может даже туда начальные данные запихать (Seed via HasData()).Ручного обновления БД вообще не должно быть.Используй DbContext через DI и желательно Scoped lifetime. Можно Transient. Но никогда как Singleton.Таблицы, которые будут редко меняться, можно закэшировать (можешь кучу примеров найти через repository pattern).Неплохое видео на тему репозиториев - https://www.youtube.com/watch?v=rtXpYpZdOzM&t=1163s
>>1649662У нас EF core таблички с миллиардом записей довольно шустро каждый день перебирает. Не инструмент плохой, а метод, которым его используют.
Сап шарпач, есть одна проблема.https://dotnetfiddle.net/0mbCK5 тут накидал примерную упрощенную структуру одного из модулей моей программы.Вопрос: как можно избавиться от TStruct в GenericBase?
>>1649801https://stackoverflow.com/questions/41618143/object-browser-for-net-core-development-on-mac-os-x
Я в Шарпе совсем не разбираюсь, за спиной только голая Сишка. Перекатываюсь, так как легко рисовать формочки. Вопрос - что почитать и какие стандартные средства Шарпа можно использовать, чтобы распарсить и распихать данные из подобного файла?
>>1649950Не встречал такого формата (но я в гейдеве не разбираюсь, может у них известный какой). Какое разрешение у файла? Если это какой-то кастомный формат, то писать свой парсер.
>>1649975Обычный txt. Меня интересует, есть ли готовые элементы в стандартной библиотеке, которые позволят это распарсить проще и распихать по структурам данных. Подозреваю, что напрямую переносить код с обычной Сишки (включая свою пародию на map) - не лучшая идея.
>>1649993Ну в стандартных либах такого нет, но если узнать что за формат, то наверняка кто-то уже написал либу для него.
>>1649993Есть же вроде генераторы парсеров. Например, https://kaitai.io для бинарных данных очень хорош, должно быть и что-то такое для текстовых.
>>1618705 (OP)Дайте кто-нить короткий RegExp, чтобы определить является ли string iso-8859-1 encoded либо же utf8-encoded?Ну, или методы...
>>1650441>Console.WriteLine("str: \""+str+"\", Is ISO-8859-1? "+( System.Text.Encoding.UTF8.GetByteCount(str) == str.Length ) ); //is Latin-1? true/falsehttps://rextester.com/DRX53947
>>1650531Тогда - так:>Console.WriteLine("str: \""+str+"\", Is ISO-8859-1? "+(System.Text.Encoding.GetEncoding("iso-8859-1").GetString(System.Text.Encoding.GetEncoding("iso-8859-1").GetBytes(str))==str));//is iso? true/falsehttps://rextester.com/WCEBB12585
>>1650541Заебись, теперь бинарные данные на HTTP-сервер можно отправлять на сервер,и работать с ними как с iso-8859-1 encoded строкой,и различать бинарный контент тела запроса от текстовых параметров в GET-запросе,которые могут содержать не только ASCII-символы, но и кириллический текст.
>>1650602Падажи, у того анона проводится сравнение с оригиналом после цикла вбайты/избайтов. Если у тебя на сервере есть с чем сравнивать, т.е. исхдные данные, то зачем тебе что-то вобще передавать?
>>1650613Дело в том, что на сервер может прийти от клиента как текст, так и бинарные данные. И сервер их - не знает.Поэтому, надо бы их отличить от текста, и вовсе не по заголову "Content-Type", который может быть и не указан.Поясню: в изначальном исходнике наноборды: https://github.com/nanoboard/nanoboard/releasesв коде школьника, примерно вот в этом месте:https://github.com/username1565/nanoboard/blob/8f0edd8d02b9f680f7ce1f70ddd29b8f7c367110/nanodb.exe-source/Server/TcpServer.cs#L511данные поблочно декодируются в UTF8 строку,затем передаются как string на различные Handlers из HttpServerBuilder.cs:https://github.com/username1565/nanoboard/blob/master/nanodb.exe-source/Server/HttpServerBuilder.csВ частности на /api/ которое расписано в DbApiHandler.cs:https://github.com/username1565/nanoboard/blob/master/nanodb.exe-source/Server/DbApiHandler.csИз кода этого файла, очевидно, что методы, возвращающие HttpResponse, принимают на вход две СТРОКИ,одна из которых - данные.Поскольку данные, в TcpServer.cs, из NetworkStream декодируются как UTF8-текст,они обязаны быть байтами utf-8, и если отправить туда бинарные данные - получается хуйня.Всё потому, что кодировка UTF-8 не является реверсивной: >>1643613А вот iso-8859-1 - является.Ею можно закодировать все 256 значений всевозможных значений байт, в виде строки, и декодировать их назад.Значит, можно отправить байты, декодировать их не как utf-8, а как iso-8859-1,и подать эту строчку - на вход методов из DbApiHandler.cs,при необходимости, получив из этих строк данные.Но что делать, если строка utf-8 encoded? Обрабатывать Latin-1 кракозябры? Нет!Ведь это может быть не только параметр GET-запроса, но и utf-8 encoded текст, переданный как второй параметр.И надо было чем-то отличить utf-8 текст от iso-8859-1.Следовательно, появился сей вот - вышеуказанный вопрос.И решение найдено, оно работает.Теперь, можно слать на сервер - какой-нибудь шифр x25519-xsalsa20-poly1305или вообще абсолютно-криптостойкий шифр Вернама,слать в виде бинарных данных, асинхронным XHR-запросом,криптуя - всё это дело client-side, и дешифровать на сервере, при помощи библиотеки Chaos.NaCl,а потом и принимать байты от сервера с другим шифром, как responseType = 'arrayBuffer',с последующим дешифрованием на стороне клиента, при помощи JavaScript,используя функции портативной библиотеки TweetNaCl.js v1.0.3. Хы-хы!
Вкатывальщик в треде. Чёт нихуя не понимаю, почему мне не дают создать число 0.1 с типом float?Разве оно не входит в диапазон float?
>>1650700Да я ещё не понимаю, что за суффиксы, я только начал книгу читать. Я уже понял, что флоат надо описывать как целое число с F в конце, просто хуита какая-то, в книге было написано пикрил, я попробовал, и не прокнуло. Вот тут вопрос - книга от 19 года по сишарп 17.1 вроде. Это раньше так можно было, а сейчас нельзя? Или в книге изначально неправильно написано?
>>1650705Что за книга? В доках у майкрософта написано с суффиксом сразу.https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types>float f = 3_000.5F;>f = 5.4f;
>>1649950Похоже на обычное ast tree, парсеров которых на гитхабе хоть жопой жуй.>>1650705В книгах могут быть ошибки, опечатки, а так же совсем вранье если автор дурак.Так насколько я помню было всегда, так как потеря точности во многих алгоритмах может сыграть злую шутку которую затем хуй отдебажишь так как разница будет в 20+ знаке и ты тупо ее не заметишь на глаз.
>>1650705>сишарп 17.1Недавно с#8 релизнулся, завязывай с путешествиями во времени.>раньше так можно было, а сейчас нельзяникогда нельзя было>изначально неправильно написаноЧто за книга? Может автор проебался, но скорее всего обосрались переводчики.
>>1650881>Недавно с#8 релизнулся, завязывай с путешествиями во времени.Дальше что? Книги по C#8 сами по себе материализуются вот так сразу, вместе с переводом?>>1650881>Что за книга? Может автор проебался, но скорее всего обосрались переводчики.>>1650815>Что за книга?Да самая простейшая, C# для чайников. Мне надо быстро понять что из себя C# представляет, с середины апреля на курсы поступаю, чтоб там не тупить.
>>1650909>Дальше что? Книги по C#8 сами по себе материализуются вот так сразу, вместе с переводом?Чего? Я тебе говорю, что последняя версия шарпа на данный момент 8, до 17 еще далеко.>самая простейшаяНаписанная неизвестным автором?
>>1650975>Чего? Я тебе говорю, что последняя версия шарпа на данный момент 8, до 17 еще далеко.А, ну речь о 7.1 очевидно же. >Написанная неизвестным автором?Джон Пол Мюллер - C# для чайников
>>1651061Ну, самое простое что я нашёл по сишарпу. Мне по-сути на курсах всё будут объяснять, мне сейчас просто ознакомиться - думаю данная книженция пойдет... Ладно, всем спасибо.
>>1650998Книги по программированию читать можно только как развлекалово/художественную литературу если тебе такое в кайф конечно.Учиться прграммировать надо по официальным докам (выше выложили основной сайт >>1650815) и по исходникам, которые нынче на гитхабе лежат вместе с кучей примеров и обратной связью от самих разработчиков.Причина, по которой нынче с числами так сложно работать, скорее всего в том, что в прошлом была куча ошибок со всякими подсчётами (финансовые, научные, инженерные). И теперь поставили кучу защит от выстрела себе в ногу. Если хочешь использовать именно этот тип - укажи что нужен именно этот тип, иначе делай явный каст из одного типа в другой. И если ты натупил с выбором типов - то это будет явная ошибка программиста, а не языка и среды в которой твоё приложение крутится.
>>1651081>Книги по программированию читать можно только как развлекалово/художественную литературу если тебе такое в кайф конечно.>Учиться прграммировать надо по официальным докам (выше выложили основной сайт >>1650815) и по исходникам, которые нынче на гитхабе лежат вместе с кучей примеров и обратной связью от самих разработчиков.Анон, я с тобой несогласен. До этого я учил пайтон по той же схеме - сначала прочитал крайне простую книженцию, укус питона по-моему, понял примерно что это за язык. Потом перешел к более серьёзной книге по пайтон, разбору примеров, написанию собственных софтин, в результате, как я считаю, имею достаточно неплохие знания. По пайтон тоже документация кайфовая - но это всё на инглише. Я конечно могу читать по английски - но для меня на именно на чтение иностранной литературы тратится слишком много ресурсов, а у меня цель стоит освоить в кратчайшие сроки. Чтобы сейчас свободно читать на инглише - надо было заниматься этим перед тем как начинать учить язык. Это раз. Два - книга предосавляет тебе программу, порядок - это банально удобно
>>1651098Я понимаю твои аргументы о структурированной инфе и тоже пытался вкатываться по книгам. Перечитал много глав из многих книг (в начале 00х еще). Нифига не понимал, пока работать не начал. И потом как понял!Книги может отчасти и помогли, но основные знания приходили с опытом написания говнокода, наступанием на кучу граблей и курением доков и со временем стэковерфлоу и гитхаб.Сейчас вся инфа up to date имеется на оф сайтах и в публичных репо. Она очень часто хорошо упорядочена и с работающими примерами и докой о том, как эти примеры запускать. Плюс есть много всяких платных и бесплатных сайтов с базами для вката (типа этого https://www.learncs.org) и с углублённым изучением. Я против книг и тогда был, когда в них больше инфы, чем в нете было. А сейчас и подавно.
>>1651107>Я понимаю твои аргументы о структурированной инфе и тоже пытался вкатываться по книгам. Перечитал много глав из многих книг (в начале 00х еще). Нифига не понимал, пока работать не начал. И потом как понял!Ну, у меня пока положительный опыт только...>Плюс есть много всяких платных и бесплатных сайтов с базами для вкатаМне вот книги нравятся ещё в том плане, что у меня неплохо развито ссылочное мышление. Если надо что-то срочно вспомнить, допустим видел какой-то конкретный пример в книге - то я обычно знаю где его искать.Кстати, прошу прощения, в доках по ссылке выше всё на русском.
>>1651111>Кстати, прошу прощения, в доках по ссылке выше всё на русском. Вот тут? https://docs.microsoft.com/ru-ru/dotnet/csharpПросто убираешь руру и будет нэйтив - https://docs.microsoft.com/dotnet/csharpКстати, по этим ссылкам куча ввходных статей с примерами и всё структурировано и со ссылками, которые можно запоминать :)Кстати2, классное видео по продвинутым техникам и знаниям что там под капотом в Питоне (сорян, перевода на русский не видел) - https://www.youtube.com/watch?v=7lmCu8wz8ro
В шараге задали написать проект на шарпе, какую библиотеку посоветуете? По заданию предпочтительнее WinForms или WPF, сам я больше хочу на Xamarin кроссплатформенность, ух бля. Что лучше выбрать с точки зрения сложности/затрат времени на изучение и пользы в дальнейшем?
>>1651371ASP.NET Core MVC - https://docs.microsoft.com/en-us/aspnet/core/mvc/overview?view=aspnetcore-3.1Ты ж не сказал ограничили вам вывод инфы формочками или консолью или нет. Если нет, то бери веб не думая и учи RazorPages - https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-3.1.Там можно всё на русский переключить.
>>1651379ВинФормс - c зомби технологией ты точно профита в будущем не поимеешь. Тогда UWP/WPF c Xamarin.Ты на Xamarin создаёшь solution. Распихиваешь всю логику по всяким Domain, Persistence (DB, File, хз что еще), Application. Выделяешь отдельный проект под UWP/WPF, в котором будет твой Presentation layer.С таким подходом можно будет разные Presentation проекты под Андроид, iOS, PWA, винду добавлять.Будет у тебя и нужный для рынка опыт, и задачу выполнишь.https://docs.microsoft.com/en-us/windows/apps/desktop/choose-your-platform
Анон, вкатываюсь в аспдотнет вебапи, хочу сделать вот такой бест практис ерор хендлинг https://www.exceptionnotfound.net/the-asp-net-web-api-exception-handling-pipeline-a-guided-tour/Но не суть, в общем то проблема сводится к тому что когда я бросаю throw new HttpResponseException(resp); где в resp что-то мне нужное с моим кодом сообщением итд в постман приходит не этот ответ, а System.Web.Http.HttpResponseException: Processing of the HTTP request resulted in an exception. Please see the HTTP response returned by the 'Response' property of this exception for details.В гугле какое-то говно. Помоги, анон, с меня тысяча нефти.
>>1651463Твоя статья уже слишком древняя.Начни отсюда https://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handling?view=aspnetcore-3.1Мы через Middleware хватаем любое исключение в одном месте. Там даётся Invoke метод, в который передаётся ссылка на функцию твоего метода в контроллере. Оборачиваешь вызов этого метода в try/catch и ни одно исключение, которое произошло из-за вызова твоих endpoints (controller/action) не пройдёт. Там же можно задать нужные статус коды и объекты, которые назад вернёшь.
>>1651463Сорян, не совсем туда ссылку дал.Вот https://docs.microsoft.com/en-us/aspnet/core/web-api/handle-errors?view=aspnetcore-3.1
Работаю джавистом, делаю пет проект на java, немного поднадоело, хочу попробовать C#, какие подводные?
>>1651587Ну подумай. Сейчас ты ездишь на жигулях, хочешь попробовать сесть на ауди последней модели. Если думаешь, что после ауди сможешь возиться с жигулями, то дерзай.
>>1651587Сахарок самый сладкий из всех мейнстрим строго типизированных языков, слезть тяжело будет, как выше отмеченоС другой стороны нормальной работы нет, .НЕТер это почти всегда фуллстек программист. Так что если это важный для тебя момент, то страдать будешь вдвойне.
>>1651587Может лучше попробовать Котлин? Насколько я знаю он довольно сильно шарп напоминает и явно для тебя полезней будет.
>>1651646двачую за котлин. .NET уже делает предсмертный выдох с open-source, вкатышам интепрайза я бы советовал делал ставку на kotlin - свежую Java
>>1651669в том то и дело, что Java уже настолько переполнена сахаром, что читать код невозможно. А котлин - это как релоад уже старой, доброй и главное - рабочей Java, которой рынок доверяет, а не присматривается к мелкософту, где он еще может руку в карман просунуть.
Помогите пожалуйста написать код правильно или пофиксить готовый. Спасибо.Задание:написать программу, которая считывает английский текст из файла и выводит его на экран, заменив прописной каждую первую букву слов, начинающихся с гласной буквы.using System;using System.IO;class Program{static void Main(){string path = @"D:\text.txt";try{using (StreamReader sr = new StreamReader(path)){string str = sr.ReadToEnd();string alf = "aeiou";string[] split = str.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);for (int i = 0; i < split.Length; i++)for (int j = 0; j < alf.Length; j++)if (split.StartsWith(alf[j].ToString(), StringComparison.InvariantCultureIgnoreCase)){Console.WriteLine(split);break;}}}catch (Exception e){Console.WriteLine("The file could not be read:");Console.WriteLine(e.Message);Console.ReadKey();}Console.ReadKey();}}
Почему пикрелейтед код работает так медленно? Аналог на Си отрабатывает ну прям намного быстрее. Как ускорить?
>>1651718>Почему пикрелейтед код работает так медленно?Тому чо ты его в дебаге запускаешь, тестируй в релизе. И что делать будешь если попка тебе инвалидоператионэксепшен выкатит при пустом стэке?
>>1651752Запустил в релизе, разница максимум в пару секунд. Все равно секунды три-четыре обрабатывает. Вот Сишный аналог (я переписываю свою прогу на шарп, так как на нем проще окошки рисовать), консольное окно появляется уже с текстом об окончании работы, лол. И это всего-лишь 25 килобайт.>И что делать будешь если попка тебе инвалидоператионэксепшен выкатит при пустом стэке?Ну, воткнуть проверку на количество перед pop, делов-то.
>>1651856так пиздуй на своих C писать, тут CLR, тут другие ребята. Тут тебе не шутки блять. Пока ты свои байты дрочишь, тут говно жрут деньгу зарабатывают. Съебал короче
>>1651876Да я уже разобрался, лол. Надо было использовать не .Count(), а .Length. Вызов функции тормозит, конечно, знатно. Знвю, тупой.
>>1651752Ты работу с консолью то вынеси в другой метод. Этот метод должен только всё разобрать, а вывод на экран должен происходить в другом месте.
>>1651718>>1651880Ты работу с консолью то вынеси в другой метод. Этот метод должен только всё разобрать, а вывод на экран должен происходить в другом месте.Console.Write и его аналоги очень тормозные. У сишки доступ к терминалу намного шустрее.
>>1651886Ну тогда не удивляйся, че так тормозит.Стандартные алгоритмы могут за 1мс отрабатывать, но как только добавляешь вывод в консоль, могут пройти секунды, пока ты ответ увидишь.
>>1651893Хм, ну ладно. Это все равно на пока переношу и проверяю алгоритм. Как вынести-то в отдельный метод? Не очень представляю, мне видимо придется сохранять, где скобки не совпадают, сбалансированы ли они, и под конец выполнения функции дергать другую, куда это и передавать?
>>1651897Ууу, чувак, тебе походу алгоритмы еще доучивать надо.В нормальном приложении логика и вывод информации должны быть не то что в разных методах, а вообще в разных классах. А еще желательно в разных проектах/библиотеках.
>>1651901Ладно, спасибо, пойду тогда книги из шапки читать. Все равно проект для души, торопиться некуда. Да и душонка байтоебская
>>1651880> Вызов функции тормозитПросто компилятор не могкт оптимизировать случай с Каунт, и на каждой итерации будет происодить чек на оутофбаунд и прочее непотребство. Сам метод Каунт по-возможноти вызовет свойство Каунт от ICollection (для массивов и, наверное, строк Каунт вернет Ленгтх), и не будет перебирать коллекцию. Даже если компилятор не заинайнит это, там оферхэд несколько нс.И кстати, прочитай про PInvoke, может тебе и не надо переписыать сишную либу, а будешь тягать ее методы из шарпа.
Существует ли что-то типа filewatcher'а только для устройств? Нужно получить список подключенных к пекарне устройств и получать новые устройства по мере подключения. Подскажите для этого либу или это можно получать через консоль?
>>1652012По дате у статьи (там она прописана).По версии фреймворка (часто её вписывают)Не читать какие-то левые статьи на базовые темы, а идти сразу на оф сайт.
>>1651714 string str = "english, mothetrfucker! do you speak it? govno ebanoe ya tvoi rot ebal."; char[] vowels = { 'a', 'e', 'i', 'o', 'u' }; bool nextUppercase = true; StringBuilder builder = new StringBuilder(); foreach (var ch in str) { builder.Append((nextUppercase && vowels.Contains(ch)) ? char.ToUpper(ch) : ch); nextUppercase = ch == ' '; } Console.WriteLine(builder);
Вечер в хату.есть лабаСоздать абстрактный класс Prog с методами, позволяющими вывести на экран информацию о программном обеспечении, а также определить соответствие возможности использования(на момент текущей даты).2.Создать производные классы: Свободное(название, производитель), Условно - бесплатное(название,производитель, дата установки, срок бесплатного использования), Коммерческое(название, производитель, цена, дата установки, срок использования) со своими методами вывода информации на экран, и определения возможности использования на текущую дату.3.Создать базу(массив) из n видов программного обеспечения, вывести полную информацию из базы на экран, а также организовать поиск программного обеспечения, которое допустимо использовать на текущую дату. Вопрос в следующем когда унаследовал класс Free от Progи начал переопределять метод вывода инфы на консоль чет как то нихера не выходит в чем соль может подскажете?И вопрос еще в процессе возник что бы результат работы одного метода передать в другой это надо создавать отдельную переменную и присваивать ей метод результат работы которого нужен ? Или есть варианты 7
>>1652239Не Free а Shareware, не Prog, а Software. Не перезаписывает потому что в абстрактном классе у тебя метод не принимает параметров, а в потомке ты два параметра вхуячил, которые в самом объекте есть. В общем, читать теорию надо было, а не хуи пинать. Где вас только рожают таких? Потом еще ноете, что работу найти не можете, потому что государство хуевое, а вы хорошие.
>>1618705 (OP)Я получаю responsebody как строку, мне надо от туда вытащить дискаунт как-то 30% и выше, как это можно сделать? Программа должна будет покупать вещи со скидкой 30+ %.
>>1652264Да я вообще не ною)) мне до поиска работы еще ой как долго.Но за помощь в любом случае балгодарю
>>1652280Очень плохой вопрос.Ответ от АПИ приходит в каком-то формате. Ты не поделился этими данными.Скорее всего у тебя вызов к REST API и значит ответ в JSON формате. Надо подключать JSON библиотеку и десериализировать строку в какой-то объект на твоей стороне.Если ты не понял, что я щас тут написал и это по работе - я в шоке, кто за таких спецов деньги платит.Если по учёбе - иди читай про сериализацию в целом и про JSON в частности.Публичные АПИ обычно имеют документацию по формату и типу объектов, которые они принимают и возвращают.
>>1652303>Если ты не понял, что я щас тут написал и это по работеНе волнуйся, я пока новичок, с апи второй день разбираюсь.Спасибо за ответ
>>1652303Смотри, на бирже нет документации к апи можно ли в данном случае сказать что у бирже вообще апи нет? , значит мне надо как-то самому найти нужный http запрос, чтобы мне вышел json где только нужная информация. Как это можно сделать? Всё, это последний глупый вопрос >_<
>>1652324Берёшь Postman, открываешь сайт, откуда ты инфу собрался тянуть, и начинаешь пробовать разные endpoints (urls). Смотри какую инфу они возвращают. Там же будет указан тип и формат ответа.Еще не факт, что они json возвращают.Обычно если нет документации, то они не хотят чтобы кто-то левый их АПИ использовал и скорее всего они защищены аутентификацией.Вот пример норм документации: https://docs.microsoft.com/ru-ru/rest/api/resources/subscriptions/list
>>1652333Всем ещё раз привет, теперь возник вопрос, нормально ли создать Thread.Sleep(1000) и ещё раз вызывать этот форич для показа актуальной информации? Просто мне кажется это очень на костылях будет выглядеть. Постоянный while true хуёво будет из-за нагрузки постоянной ( я так себе представляю) .
>>1652734foreach будет всегда одно и то же показывать, тебе надо заново запрос делать.Иди на hangfire.io, оформляй свой функционал в функцию и добавляй её в scheduler с помощью Hangifre. Он тебе будет вытягивать инфу с каким-то интервалом.Для консольной приложухи, писаной на коленке и крутящейся на твоей машине, while(true) { Task.Delay(Time.OneSecond); } более чем достаточно. Можешь еще CancellationToken прикрутить и добавить логику по выходу из этого цикла, если кто-то послал команду на завешрение операции.
>>1652748>foreach будет всегда одно и то же показывать, тебе надо заново запрос делатьДа, я это понял как только отправил.Хорошо, спасибо
>>1652752Как же всё-таки приятно сделать было бота, только сейчас опять на полгода заброшу всё, потому что кодить нечего.
Поясните, что я делаю не так?Добавил нугет для SQLite.Создал модельку.Создал контекст в котором просто указал использовать SQLite.Сгенерировал миграциюАпдейтнул ее.Пытаюсь потестить и ошибка: Нет такой таблицы.
Сорян, я >>1653411 тупой. Не знал что надо добавить вручную переопределения Up, Down и там прописать таблицы. Думал, что при генерации миграции само все сгенерируется.Но вот другой вопрос. Я установил что ID - автогенерируемый, но почему-то при сохранении ошибка, дескать нужно установить первичный ключ, если вбить его ручками и он уникальный, то все нормально работает.
>>1653488Злой ты. Я разве виноват, что информация из книг не усваивается у меня в голове и я могу учиться только диалогом?
>>1653490Ты виноват только в том, что пытаешься скрыть свою лень, выдумывая себе несуществующие недуги.
>>1653492Ну, допустим, лень. Что в этом плохого-то? Вот ты поленился и вместо того чтобы пойти на гитхаб и прочесть исходники .net core, ef core и других популярных хреновин, открыл книгу, где посвященный дядька тебе на блюдечки все принес. Я вот поленился открыть книгу и решил спросить у тех, кто ее открывал. Разница довольно незначительна. Потому не будь таким токсичным.
>>1653502Плохо то, что ты срёшь в тред. И для того чтобы "спросить у тех кто читал", нужно сформулировать вопрос, но ты ведь этого сделать не в состоянии, потому что тебе лень учиться. Ты сюда пришел поманяфантазировать и утешить себя, вроде как не чмо, а что-то пытаешься, но на деле ты чмо, которое еще и другим мешает.
>>1653505Ну ты и токс. Вот серьезно. Откуда в тебе столько желчи-то? Я бы еще понял, если бы ты ответ на вопрос дал, так ведь нет, ты просто пришел и начал плеваться кислотой. Фу таким быть. Такие как ты портят комьюнити и мешают начинающим развиваться.
>>1653428Migrations создают все таблички за тебя и перевичные данные (Seed и только если ты засетапил HasData). Если этого не случилось, то ты неправильно создал DbContext и Entities, которыми он оперирует. Тут в треде дофига ссылок на все базы и примеры по этому делу.Автогенерируемый айди обычно значит что у тебя поле Identity. Если этот constraint (они так называются) не присвоился твоему ID, то он и не будет само устанавливаться. Это в случае, если у тебя поле int. Для GUID надо из кода в своей модели самому new Guid() делать.
САП СиШарпачКак убрать автонабор в Visual Studio? Постоянно мешает мне. Например, хочу написать "i", ставлю пробел, а программа сама ставит "if"
>>1653563> Например, хочу написать "i", ставлю пробел, а программа сама ставит "if"Интеллисенс в студии умный, он не предложит тебе написать "if" там, где этого нельзя сделать, или если в зоне видимости уже есть переменная с более подходящим именем ("i"). Так что либо это ты сам что-то не так делаешь, либо студия у тебя поломалась.
Подскажите как можно достать сабмассив с 2д массива?Например есть массив 9х9, как из него получить массив от x,y до x,y?
>>1653604> как из него получить массив от x,y до x,y?Пройтись двойным циклом и выбрать то, что тебе нужно?
>>1653611Мне нужно было что-то такое:Enumerable.Range(0, 9).SelectMany(i => CellsInRow(board, (box - box % 3) + i / 3).Skip(3 * (box % 3)).Take(3));
Полез в нугет стянуть провайдер sqlite под Ef Core, а там Microsoft.EntityFrameworkCore.Sqlite и Microsoft.EntityFrameworkCore.Sqlite.Core. В чем разница?
А у меня вопрос возник из-за >>1653604 вопроса.Чому в последних шарпах можно так: var arr = new int[] {1,2,3,4,5};var x = arr[1..3];Опять же, можно сделать как-то так:var arr = new int[][]{...};var x = arr[..][1..2];Но нельзя так же с n-мерными массивами? В чем принципиальная сложность добавить возможность чтобы сделать как-то так:var x = arr[1..2,3..4,5..6]?Ну, я конечно понимаю что на практику оно особо и не надо, но все равно факт того что тут можно, а там - нельзя, выглядит как-то непродуманно.
>>1653711https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-8.0/ranges
>>1653712Разве ты только что не писал что:> Но нельзя так же с n-мерными массивами? В чем принципиальная сложность добавить возможность чтобы сделать как-то так:> var x = arr[1..2,3..4,5..6]?
>>1653716> "Тут" это там где можно использовать Range> Приведи примеры "тут"> https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-8.0/ranges> Ну так ведь нельзя.Что, простите?
>>1653731Бля, иди тролль кого-то другого, или мозги включай и следи за последовательностью того что пишешь.
>>1653740Я вообще не понимаю о чем ты. Вот тут https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/ranges-indexes написано, что многомерные массивы не поддерживают такой синтаксис. Только непонятно почему нельзя в принципе было сделать их поддержку. Из-за этого в голове путаница.И ничего я не троллю. Просто хочу разобраться с новой штукой языка, потому что сама по себе она выглядит удобно.
>>1653771>что многомерные массивы не поддерживают такой синтаксис.У тебя же студия запущена, ты сначала проверь в ней, поддерживают ли одномерные массивы такой синтаксис.
>>1653771Это же просто сахар, который компилятор разворачивает в метод GetSubArray(Range). Ты можешь сам написать такие методы для нужных тебе размерностей, только так как компилятор под твои методы не натренерован, то тебе придется их вызывать не как индексатор, а как метод расширения.
>>1654099В языках программирования любой синтаксис это сахар. Не сахар это определенная последовательность нулей и единиц.
Я линуксоид. Говорят, что на этой ОС либо невозможно кодить на C#, либо же можно, но работать всё будет хреново.Обязательно ли нужна лицензионная винда? И какой версии?
Подскажите знатоки(WinForm)есть labelхочу обращаться к большому количеству label'ов по их номеру (label1, label2, ....)можно как то коротко реализовать нечто вроде - label + number.Text = ""; ?обращатся по label1.Text к каждому из элементов в моем случае будет слишком громоздко (элементов свыше 40 шт)
>>1654160> Говорят, что на этой ОС либо невозможно кодить на C#, Консольную фигню и веб(95% шарпоработы), можно без особых проблем и на линуксе кодить.> Обязательно ли нужна лицензионная винда? И какой версии?Не обязательно.
>>1654099Я знаю, что это сахар, я знаю что могу сам написать для скольки угодно размерностей. Другое дело вот я наделаю своих методов, потом кто-то посмотрит на мой код и ему нужно будет время, чтобы понять что это за ебаная хуйня там и что она делает. Это, на мой взгляд, не есть хорошо, и нужно стараться избегать такого.А синтаксис, который закреплен в стандарте, вроде как, подразумевает, что любой шарпан должен знать, следовательно если его введет в ступор arr[1..], то это не я мудак, который усложняет код, а он, потому что не следит за новыми штуками, которые в языке появляются. Ну, по крайней мере я так считаю.
>>1654205Манюнь, проснись. Твой 4.8 фреймворк со всеми новинками никому нахуй не уперся, кроме вкатывальщиков-долбоебов, которые учат САМАЕНОВАЕ САМАЕКРУТОЕ. Всё потому, что 99% работы это старые фреймворки, если ты нашёл программу работающую на 4.5 версии, то считай, что тебе повезло.
Сап, собираюсь заняться программированием по-серьёзнее, чем простой быдлокод. Пока не имею особо знаний даже о базовом программировании, например что такое компилятор максимум делал простенькие программы на Пайтоне, также не знаю специального матана. Что мне нужно знать и откуда я могу накопать всей этой инфы перед тем, как лезть в изучение программирования на C#?
>>1654207Ничего не нужно. Читай книги по шарпу, начни с Троелсена. Остальное само приложиться по мере изучения языка и необходимости.
>>1654206Ну не знаю. Я вот пишу сейчас на core 3.1. Старшие коллеги сказали, что с выходом .Net 5 будем переносить все что можно переносить на него. Как-то так.
>>1654210>все что можно переносить Ну вот. Теперь посмотри на тех, кто поддерживает непереписываемый код и узнай, что их гораздо больше чем таких счастливчиков как ты. Новинки языка это прерогатива смузи-стартапов.
>>1654213Любой код переписываемый. Зависит от твоей квалификации. Судя по всему у тебя она не очень и ты очередной 9-5 рак. Поувольняли вас не мало таких. Мы перетаскали кучу продуктов 10-15 летней давности на новые платформы и при этом эффективность компании не то что не проседает, а наоборот. На поддержку старого кода уходит времени в N раз больше, чем нового. И с каждым годом этот N увеличивается. На переписывание уходит от 1 недели до нескольких месяцев, но в итоге ты сохраняешь себе годы работы. Бизнес с тобой быстро соглашается, как только ты ему объяснишь бенефиты в удобоувариваемом для него виде. Особенно если приведёшь пример Васяна, который только что потратил 2 месяца на новую фичу, и покажешь что ты то же самое за два часа сделал, применяя голову. Васяна на свалку, код мигрирует на новую платформу.Не будь Васяном.
>>1654246Мань, перестань фантазировать и открой рынок труда, а потом покажи мне вакансии в которых требуется что-то более чем 4.5 фреймворк.
>>1654250Чувак, зачем мне фантазировать, если я с этим уже много лет работаю в компаниях с 1к+ работников?Ты свой мухосранск на весь мир то не натягивай.
>>1654256Конечно, яндекс и гугл своё дерьмо не переписывают десятилетиями, а у долбоеба прям каждая вторая крупная компания этим занимается. Ты сам то хоть в это веришь?
>>1652239У тебя нет сокрытия имен, ундерскор демонстрирует, что это член класса, зачем ты this пишешь? Вам за такое (и за цену в double) баллы не снижают?
>>1654271Я понимаю, что ты за годы сросся с этой мыслью, поэтому любой, кто будет пытаться её опровергнуть, сразу станет долбоёбом в твоих глазах. Это нормально. Отрыв от своих убеждений - очень медленный процесс. Пройдёт какое-то время и долбоёбы перерастут в идиотов, а там глядишь и до нормальных обращений доберёмся.К слову у каждой из FAANG компаний сотни подразделений и каждое из них существует как своя обособленная компания со своими директорами, менеджментом и бюджетом. Я в них работал. В индусо подразделении действительно десятилетями стряпают (скорее стряпали, поуволняли старых говнокодеров и взрастили новых, с мозгами) костыли. И есть куча проектов, которые на радар не особо попадают или до них еще не добрались (как со Скайпом для бизнеса и Линком, которые 20ти летний груз костылей тащили, и большую часть из них наконец-то разрулили имеется ввиду внутренняя тяжеловесная каша, а не сам клиент).
>>1654311Но вот только у меня не мысли, а аргументированное мнение, которое подтверждено вакансиями на hh.ruОт тебя только и слышен пустой пиздежь, который противоречит реальности.
Объясните нубику для чего используется матан и в каких областях он необходим в вебе как я понял можно и без него обойтись, но он меня не интересует
>>1654206Рэнжи это фишка компилятора, а не фреймворка. >>1654205>чтобы понять что это за ебанаяДавай нормальные имена и пиши комментарии, и тогда всем будет насрать как оно внутри, если работает>>1654205>синтаксис, который закреплен в стандартетебе доступен. Если твой метод принимает ренж, компилятор сам сконвертит запись 2...^3 в класс.Ну ок, написали бы в майкросовте еще метод для двумерного массива, а какому-то анону понадобится для 3-х, 4-х мерного. Где остановиться? Так, что сделали для самого распространенного юзеркейса и правильно.
>>1654315Ну я также могу заявить что моё мнение подтверждено вакансиями на linkedin и indeed: https://www.linkedin.com/jobs/search/?keywords=c%23Мне первая же вакансия от Теслы выпала, в которой написано: Experience in .NET Framework and .NET CoreТолько прикол в том, что в неизвестные конторы вакансии пишут кто под руку попался (HR всякие), которые лепят ключевые слова, найденные в интернете. И скорее всего в вакансиях на дотнет программиста просто C# написано будет без привязки к фреймворку.Реальность твоя реальна только для тебя. Я с .Net Framework в последний раз в 2016 работал. Остальное время проекты на нём приходилось открывать только для того чтобы какой-то функционал в dotnet core или jvm на какой-нибудь скале перетащить.
>>1654326>Мне первая же вакансия от Теслы выпала, в которой написано: Experience in .NET Framework and .NET CoreОхуеть, ну всё теперь, 100% у них там всё на коре, который вышел в 2019, написано, да? Я где-то писал, что новые технологии нигде не используются? Нет, я писал, что найти работу легче зная старый фреймворк, чем новый, потому что новые используют в очень малом количестве. Ты конечно дальше можешь якать и приводить в пример свой личный опыт, вот только на реальность это никак не повлияет. Даже сложно представить насколько нужно быть умственно отсталым, чтобы говорить о том, что на технологии 2019 года пишут больше, чем на технологиях 2002 - 2014
>>1654353Коре вышел в 2016. В 2017 выкатили коре 2, который уже был допилен до приличного состояния, и тогда было ясно, что за ним будущее а фв - ебаное легаси. В общем после выхода второго кора новые проекты на фв начинали толко слоукпоки. Из 5 собесов, что были в этом году, нужен был кор.
>>1654353Ты из тех, которые хватаются за первое попавшееся непонравившееся слово и на него отвечают, не читая дальше.Первая стабильная версия кора в 2016 была зарелизена. Компании, перекатывающие свои продукты с личных дата центров в облака (ибо дешевле, чем содержать свою ферму серверов), отдают предпочтение кору, потому что у Майкрософта на него поддержка на облачной платформе лучше.Рекрутёры кидают по несколько писем в день и спрашивают об опыте работы с кором, потому что их клиент об этом просит, и в вакансии об этом не всегда указано. Даже 2 письма в день (на самом деле больше) - это 44 письма за месяц (без учёта выходных, хотя и на выходных прилетает). Сколько в месяц открывается новых дотнет вакансий в отдельно взятом городе? Не думаю, что на много больше чем 40.Каджый раз как созваниваешься с рекрутёром, они в первую очередь спрашивают, сколько лет опыта с шарпом и потом - сколько с дотнет кором. Новым клиентам интересен твой опыт конвертирования старого фреймворка в новый. Многие, как ты и заявил, еще используют легаси, но перекатиться уже хочется.
>>1654319Если не брать всякий машин лернинг и датасайнс - то математика программисту не нужна, школьного курса будет достаточно. Нужна лишь способность эту математику осваивать.
>>1618705 (OP)Задача такова. Чел ходит по этажам и выключает свет в кабинетах, у него есть две лестницы - правая и левая.Нужно посчитать минимальное количество времени затраченное на проход всехэтажейвходные данные2 200100100выходные данные5входные данные3 4001000000010000010выходные данные12входные данные4 301110011100111001110выходные данные18https://pastebin.com/R6BDg9sc - код моей программы не идеален и выводит ошибку на 9 тесте5 930000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000Вывод участника240Ответ жюри265Вопрос: Где я допустил ошибку, и какие алгоритмы необходимо использовать для эффетивного решения данной задачи
>>1654319Нужно понимать как работают функцииf(x) = x + 1У функции есть сигнатура f(x)Функция может принимать параметры f(x,y) = x + yФункция может принимать функцию как параметр f(g(x)) = g(x) + 1Функция может возвращать значение f(x) -> yНужно хорошо понимать Булеву алгебру.Также нужно уметь въезжать в разные формулы и матрицы при работе со всякими массивами, будь то игры (даже шахматы), карты и маршруты, picture/video/audio processing. При работе с бухгалтерией и финансами тоже много счетоводства и формул. Многие компании строют всякие внутренние инструменты с графиками и отчётами.Но это не мешает программистам забивать куй на математику полностью и писать индусский код, когда 2+2 записывается в тыщу строк и исполняется это творчество по несколько секунд вместе нескольких наносекунд и отжирает по 500 мб, которые еще и не всегда выгружаются, потому что индусский код любит всякие статики и глобальные объекты.
>>1654473Можно изучать матан параллельно с языком или лучше стоит его выучить перед изучением программирования?
>>1654467Скорее всего задача коммивояжера. Из того что ты написал ничего не понятно, давай всё условие.
>>1654577Почему ты такой тупой? Ну вот как можно дать ответ на твой вопрос "Стоит ли вкатываться в геймдев?", если никто не способен прочитать твои мысли и понять, что для тебя важно. Может зарплата, может стабильность, может перспективы карьерного роста, может развитие как программиста и т. д.
>>1654467Некоторые люди не выключают свет, когда уходят из помещения, что ведет к бесполезной растрате энергии. Будучи охранником в университете, Сахир ждет, пока все студенты и профессора покинут здание, а затем идет и выключает везде свет.В здании n этажей и две лестницы слева и справа. На каждом этаже есть m комнат вдоль коридора, который соединяет левую и правую лестницы. Другими словами, здание можно представить как прямоугольник из n строк и m + 2 столбцов, где первый и последний столбец — лестницы, а m столбцов посередине — комнаты.Сахир сейчас стоит на первом этаже на левой лестнице. Он хочет выключить везде свет, при этом, он не хочет подниматься на этаж выше до того, как выключит весь свет на текущем этаже. Конечно, Сахир должен побывать в комнате, чтобы выключить в ней свет. Сахир тратит одну минуту на то, чтобы подняться по лестнице на один этаж или перейти в соседнюю команату/на лестницу из соседней комнаты или с лестницы на том же этаже. Выключение света в комнате, в которой Сахир находится, не отнимает у него времени. Помогите Сахиру найти минимальное время для выключения всего света в здании.Заметьте, что Сахир не должен возвращаться на исходную позицию, а также то, что он не обязан посещать комнаты, в которых свет и так выключен.Входные данныеПервая строка содержит два целых числа n и m (1 ≤ n ≤ 15, 1 ≤ m ≤ 100) — количество этажей и количество комнат на каждом этаже, соответственно.Следующие n строк содержат описание здания. Каждая строка содержит строку из нулей и единиц длины m + 2, описывающую один этаж (левую лестницу, затем m комнат, затем правую лестницу), где 0 означает, что свет выключен, а 1 означает, что свет включен. Этажи даны в порядке сверху вниз, в частности, последняя строка описывает первый этаж.Первые и последние символы каждой строки описывают лестницы, поэтому они всегда равны 0.Выходные данныеВыведите одно число — минимально возможное время, необходимое для того, чтобы выключить весь свет.Примерывходные данные2 200100100выходные данные5входные данные3 4001000000010000010выходные данные12входные данные4 301110011100111001110выходные данные18ПримечаниеВ первом примере Сахир сначала пойдет в комнату 1 на первом этаже, а затем — в комнату 2 на втором этаже, используя любую лестницу.Во втором примере он пойдет сначала в четвертую комнату на первом этаже, поднимется на один этаж по правой лестнице, зайдет в четвертую комнату на втором этаже, опять поднимется по правой лестнице, пойдет во вторую комнату на последнем этаже.В третьем примере он будет проходить по всему коридору на каждом этаже, чередуя лестницыДа, задача правда похожа на коммивояжера, но только частного случая, где не надо возвращаться в исходное положение и у каждого города только 2 пути в другой
>>1654533Очень даже можно. В программирование можно с нуля вкатываться и по ходу дела осваивать что нужно. Булеву алгебру надо будет быстрее остальных освоить, а то пишут потомif(isDone == true){}else if (isDone == false) {}else {}
>>1654921Был тут один такой лет 5 назад. Был послан далеко на йух. Такие вопросы задают джуны, которые в принципе не понимают, что спрашивают. Освой для начала хотя бы один язык до хорошего уровня, напили несколько проектов. Выучи как работает CPU, GPU, and memory. Почитай про дизассемблирование. Глядишь дойдёт, что ты подходишь к решению задачи с абсолютно неверной стороны.
>>1654921Начинать в таком случае нужно с ассемблера. А чем ты память будешь считывать и изменять, вообще не важно, но для этого C++ больше шарпа подходит, хотя и шарп тоже справится.
>>1650909>Да самая простейшая, C# для чайников.Блять, ну и хуйня. Сижу и ахуеваю. Сначала какое-то говно 100 страниц рассказывали, вроде как переменные объявлять, про типы, а потом сразу "А давайте нахуй создадим свой ИТЕРАТОР, вот тут нахуй наследование вот тут какие-то классы тут ещё что-то". Пиздец. Ни ООП, ни пространства имён, ничего автор не рассмотрел - давайте нахуй итератор запилим. Сижу нихуя не понимаю что происходит
>>1655737Если захочешь сделать свои массивы с блекджеком и шлюхами и обращаться через [index] к значениям
>>1655737Сахарок для более простого восприятия кода, который компилятором разворачивается в пару методов.var a = foo[index] вместо var a = foo.GetValue(index)foo[index] = a вместо foo.SetValue(index, a)
>>1655759>>1655783Да блин, я горю с ублюдского стиля написания книги, и с того что я в это говно уже начал. Автор нихуя не объясняет зачем могут пригодится эти индексаторы, конкретных примеров не даёт. Пиздос. Автор вабще имеет привычку сначало выложить код тела программы, описать его, и только лишь потом вкидывать код пользовательских методов, которые там присутствуют. Вот сижу, перепечатываю код program main, и ахуеваю с того что просто не могу его понять, потому что этот ублюдок не дал кода его злоебучих самописных методов заранее. Какое-же говно
>>1655796Ну вот, он дал код программы, пикрил, и потом уже начинает вкидывать пользовательские методы. Нахуй ты этот обоссаный код дал, если без знания того, чем занимается метод, этот код бесполезен. Ну и классическое "ПОКА ЧТО ВАМ ПРОСТО ДОСТАТОЧНО ЗНАТЬ. А ВОТ В СЛЕЕЕЕЕЕДУЮЩИХ ГЛАВАХ МЫ ВСЁ РАССМОТРИМ" ДА ПОШЁЛ ТЫ НАХУЙ ПИДРИЛА
>>1655796>>1655798И да, извините аноны, я просто внезапно сгорел. Главное до того как перешли к обоссаным интераторам более-менее нормально материал подавался, хотя такое говно уже встречалось. А тут просто пиздец, сижу и ахуеваю с того что мне дают код какими-то непонятными кусками которые я не могу проанализировать, постоянно всплывают темы которые вабще никак не рассматривались. Перегрузку методов этот пидор как то так рассмотрел сразу после строковых методов - ни наследование, ничего ещё не рассматривалось, вот вам тут способы работать со строками - а потом сразу перегрузочку посмотрим. Кайф. И так же код кусками вкидывал.
>>1655809Двачую мудреца, если сразу всю инфу вываливать то так можно один пример полкниги разбиратьДать что-то потыкать самому а уже потом объяснять как это работает это нормальный и распространенный подход
>>1655977>>1655800Тебе еще повезло, самая жопа это когда вот так пишут:>While I only cover the Display data annotation, there are many additional annotations that can be usedin the same manner. Please consult the .NET Framework documentation to learn more.
>>1655980>>While I only cover the Display data annotation, there are many additional annotations that can be used>in the same manner. Please consult the .NET Framework documentation to learn more.В этой книженции этого тоже хватает. Просто я с этого так горю.на самом деле по пайтон больше френдли-литературы для новичков, учить было проще. Да и сам язык там проще и приятнее, возможно, поэтому.
>>1656013Зачем? Тебе дали концепцию и показали пример, дали где смотреть остальные. Сам со временем встретишься с другими или почитаешь ссылки. А учебники для того и нужны чтобы базовое представление о технологии составить.Боюсь представить как такие вкатыши бы читали книги чуть серьезней, ХОТЯ БЫ уровня пикрила, они целиком из такого и это норма, там вообще после каждой главы страницы перечислений ссылок на подробности.
>>1656018Дурачок, но ведь в серьезных книгах это приемлемо, потому что они пишутся для опытных людей, которым действительно нужно больше ссылок на подробности, чем затрагивание самого популярного и используемого, потому что они и так много знают. А вот если тебя тычат каждый раз в слова "обратитесь к документации" в книге для новичка, то это хуево.
>>1656035Так все правильно, книга для новичка, новичку рассказывают про базовые понятия языка и синтаксис.Рассказали про атрибуты, зачем они, как применяются. Дали пример. Что ещё надо?Это же учебник по языку а не по атрибутам и не по конкретным библиотекам. Перейдет новичок с изучения языка на изучение фреймворка - там и познакомится с используемыми в нем атрибутами
>>1656042Так там выше есть список часто используемых методов какого-либо класса и краткое описание. Что мешало с атрибутами сделать также? Хотя бы просто написал, блять, чтобы я по названию примерно понял что к чему и посмотрел в документации те, которые меня интересуют. А так смысла вообще нет в этой поверхностной информации, я бы лучше время это потратил на книгу по этому фреймворку, а не вот этот огрызок.Какой вообще смысл в этом огрызке? Я сразу побегу своё делать? Нет, потому что у меня нет достаточных знаний. Может быть этой информации нет в книге по этому фреймворку? Нет, она там есть. Т. е. получается избыточное дублирование.
>>1654577>Какая работа обычно бывает у шарп программистов помимо веба?Виндовс форм>Стоит ли вкатываться в геймдев?Просто загугли количество геймдев вакансий. Нет никакого геймдева в этой нашей России.
>>1621525> энтерпрайз точенныйthisигрульки - путь в никуда (токсичное комьюнити, токсичные коллеги, 0 рост из-за простоты разработки, однотипная работа, никаких архитектурных и сложных задач).
>>1625470Можешь сделать что-то на подобии этого https://dotnetfiddle.net/e4FwRCДобавить оверрайды для ValueContainer`а, добавить метод для сокращения одинаковых физ. величин и т.д.
>>1625677> банально чтобы даже с каким-нибудь EF ты понимал что своими Linq ты хуйню сделал и либо Linq составлял нормальные либо умел на нативных решениях переписать нормальноЭто не джунские знания. Джун должен уметь скомпилить проект и поправить пару багов.
>>1626424Самое простое это обернуть твоё говно в while и внутри хуярить trycatch, если прошло - выходить из вайла, если в кетч ушло - хуярить таймаут. Самое быстрое и даунское решение, если лень делать - ебашь так.
>>1656196Потом долбоеб столкнется с пикрилом и насрёт себе в штаны от удивления. Я понимаю там количество пробелов в табе определять, но если дело касается разных возвращаемых значений, значит код зависит от ситуации, а не конвеншена.
>>1656202Что ж ты такой тупой. Вопрос не про различия в пре/постинкременте. Иногда надо просто увеличить переменную, как например в цикле фор, там это не на что не влияет. В шарпах обычно пишут постинкремент. Хотя некоторые пишут преинкремент, так как они слышали от кулхацкеров, что в сях он может быть быстрее постинкремента.
>>1656293Долбоеб, речь шла про КОНВЕНШИН, КАК НАДА? КАК ВЫ ДЕЛАИТИ? т. е. то про то, что на код никак не влияет и везде должно быть одинаковым. Можно отказаться от использования инкремента вообще, это будет конвеншином, но если ты сказал, что у тебя постфиксный инкремент это конвеншин, а потом в коде пишешь ++x потому что иначе он будет работать неправильно, то ты долбоеб. Потому что конвеншены на "вот в этой ситуации так пишем, а вот в этой так" никто не создает, это противоречит их предназначению, а именно упрощению работы и предотвращению путаницы. Поэтому перестань срать себе в штаны, в них и без того полно дерьма.
>>1656301Сочувствую, но я такого не встречал, что б конвеншинами запрещали пользоваться языковыми конструкциями. Конвеншены именоо про стиль и >>1656301>про то, что на код никак не влияет и везде должно быть одинаковым. Т.е. инкремент в циклах и прочее. А если нужен прединкремент, а конвеншн его запрещает, то ковеншн и контора, которая его придумала говно.Хотя сейчас вспомнил один случай мне рассказывали, в некой конторе ругались за использование фишек C# 8, хоть иписале на коре 3, а все из за того, что большинство в конторе не осилили чейнджлог. Хотя это еще можно оправдать, но то что ты пишешь это верх маразма.Не злись, здесь на тебя всем похуй, побереги нервы.
>>1656313>Т.е. инкремент в циклах и прочее.>Т.е. инкремент в циклахПросто нахуй иди. Такое быдло как ты понимает только когда его либо плетью бьют, либо зарплату забирают.
>>1656319>не отличает инкремента переменной, от присваивания инкрементированного значения другой переменной.
>>1656202>Инкрементить возвращаемую переменную, которая сразу после возврата пропадет из области видимостиПиздец просто х2Уйди из треда не позорься
>>1618705 (OP)Сап прогромач. Вопрос по WPF. Есть TreeView, к его TreeViewItem'ам надо привязать экземпляры разных классов (по одному на айтем) и получать их по клику мышки. Как сделать эту привязку при учете того что классов будет штук 30(все наследованы от одного родителя),а айтемов - штук 150?
>>1656699Чё-то я подозреваю что все пары по ООП ты прогулял. при том что ты самоучкаСерьёзно, WPF тут не причём. Это базовая работа с объектами и одинакова она будет и для консоли и для веба и для твоего впф.
>>1656346>>1641261>>1656301Читал вашу баталию, читал, но так и не понял аргументов. Я даже запутался, кто из вас за какую сторону уже болеет (там походу 3+ анона уже отвечают).Когда значение инкремента нужно, то во всяких учебниках и статьях пишут i++ (постинкремент). Как тут >>1656339 уже показали, внутри цикла значение для ++i и i++ будет одинаковым. Обычно инкремент жить вне цикла не должен, хотя бывают алгоритмы, когда один инкремент продолжают гнать через несколько циклов и/или методов. В этом случае уже будет не до стандартов, а надо будет конкретное решение выбирать.Если значение инкремента не используется, то надо использовать или foreach, или бесконечный цикл с условием для выхода while(read)/for(;;)
Как в C# принято реализовывать копирование объекта? Наследовать класс от ICloneable и переопределять метод Clone? Или написать конструктор, который принимает параметром объект того же класса? Или как-то по-другому? В C++ есть дефолтный copy constructor, который можно переопределить, но здесь такого нет.
>>1655804Выглядит так, что ты открыл книгу для тех кто уже знает какой-то ЯП. Таких много. Ищи "переменная это коробочка со значением"-книги. Не насилуй моск себе.
>>1655804Или же если тебе что-то не понятно ищи по этой же теме другие материалы, а книгу используй как роадмап по темам.
>>1656909IClonable для этого и сделан, но, Пестька, есьт нюанс. Он не генерик, что с одной стороны понятно, а с другой приводит к упаковке у структур и можно словить нежданчик (см. пикрил). Решается объявлением Клоне() виртуальным и надеждой, на то, что его переопределят в наследнике. Как по мне лучше бы сделали генерик (хотя никто не мешает завести свой интерфейс).Конструктор сделать можно, но как-то я не встречал такого (хотя я вобще почти не встречал клонирования). Но и тут есть нюанс (пикрил 2). Надо, что бы вся цепочка наследования имела конструктор копирования.Есть способ надежный, блять, как швейцарские часы и элегантный как трактор - через бинарную сериализацию в мемористрим и обратно. Единственный недостаток класс должен быть помечен как [Serializable] и иметь конструктор без параметров (но это не точно).Ну и наконец, есть старая добрая рефликсия, всегда придет на помощь. Вот вариант упонянутый на СО:https://github.com/Burtsev-Alexey/net-object-deep-copy/blob/master/ObjectExtensions.cs>>1656918Вроде чувак питон учил до этого, а глохнет на ровном месте.>>1656919Двачую. Нет и не будет такой книги (если только интернет распечатать), в которой разжевано все. Но к счастью у шарпистов есть MSDN - лучший ресурс по языку и прилегающем технологиям.
>>1618705 (OP)Делал игры на яваскрипте под мобилки, захотел пересеть на унити, там С шарп.Пытаюсь решать базовые задачи, голова начинает болеть.1)Где гребанный список всех базовых директив и методов, необдходимых для простейших программных манипуляций? В доках смотрел, в референсах, везде какая-то дичь. Я просто хочу из коробки использовать базовые математические операции, операции матрицами, числами и тп. Почему недостаточно просто иногда написать using System? Чтобы выполнить простейшие операции с генериками и прочими листами приходится копаться в каких-нибудь Enumerable<T> и гуглить каждый метод через стаковерфлоу где на такой простой вопрос люди такие простыни катают еще и спорят друг с другом. 2)Перейти от сишарпа с С проще чем от яваскрипта к сишарпу?3) Почему нет нормального типа строки? Почему один элемент это обязательно char, а не строка? Это же ппц как неудобно, дианмическая типитизация удобнее же в разы.4)Почему во многих языках какой-то пердолинг с матрицами? Я создаю Очередь, чтобы накидать элементов в ОПРЕДЕЛЕННОМ(??) порядке, и только потом делаю ToArray. Зачем такие сложности/5)Суммирая выше сказанное, насколько эффективно писать на сишарпе? Насколько быстро? Я так понимаю быстро, кратко и эффективно жонглировать махинациями как в яваскрипте не получится. На питоне в 3-5 раз быстрее пишется код, чем не яве. Какое же место у сишарпа в таком сравнении?
>>16570481)Чет слишком абстрактный вопрос. По шарпам справка на мсдн, по юнити, очевидно, на сайте юните.2)Не думаю.3)А? Строка может быть из одного символа. Но строка и символ это разные сущности, выбирай что тебе надо. И при чем тут динамическая типизация?4)Хз зачем ты так сложно делаешь. Массив и так сохранят порядок, если нужен "резиновый" массив, то это List<T>.5)Эффективно. Быстро. Как в жаваскрипте не получится, это не жава скрипт. Но зато можно как в шарпе. Шарп и жс разные языки во многом, и чем раньше ты пеерстанешь пытаться писать на шарпе, как будто-то ты пишешь на жс, тем проще и быстрее будет освоение шарпов.
>>1657072Что?>>1657084>справка мдснВот это?https://docs.microsoft.com/en-us/dotnet/api/system?view=netframework-4.8Я во всем этом шарить должен?, int32-64 T_T>выбирай что надоЯ задачки на сайте просто перерешиваю. То что решалось за 2 секунды на яваскрипте вызывает у меня боль в голове на сишарпе.Дан аргумент char, его надо использовать в манипуляциях, добавляю строку к чар-ошибка, нет автоматической конвертации, то бишь динамической типитизации. >хз зачемArray в сишарпе создается как есть и его изменять нельзя. Нету Push метода элементарного, так? Мне же нужно прогонять-cоздавать сборку элементов, менять их, манипулировать ими. Но вернуть функция должна именно Array, а не List или Queue.>быстроДа. я понимаю, я пытался что-то там писать на крестах сколько-то лет назад, когда не было возможности на жс, директивы, поинтеры какие-то, ооп. книжки вумные читал. 'Полноценные' языки, с интерфейсами, абстракцией, доступом к функциями и так далее. Надо осваивать.Спасибо за ответ.
>>1657150Слышал о реактнайтиве, но не трогал. пытался изучать реакт, госпади такая пердольная бессмысленная скотина, и вечные срачи вокруг этих фрейморков нифига не мотивируют их как-то изучать.Компиляторы, бандлы всякие. Ты можешь писать на одном языке, а потом конвертировать на платформу другого. Например у андроида есть ndk bundle с помощью которого можно конвертировать написанный c++ код на понятный яве машине.Учитывая популярность жс, на нем скоро, если не уже, будет писаться все.Я занимался cocos2d, он раньше был только на крестах и луа, сейчас жс добавили.
>>1657145>вызывает у меня боль в голове на сишарпе.Ну так возьми учебник по шарпу. Да, тут будет не так как в жс, хз что тебя удивляет.>автоматической конвертации, то бишь динамической типитизации. Хм.. ты писал на жс, но так и не понял, что такое динамическая типизация... подозрительно.>изменять нельзяможно>Нету Push метода элементарногоЕще возьми книжку по компутер саенс и структурам данных, у массива и не должно быть пуша.>Мне же нужно Бери необходимую структуру данных, благо в стандартной реализации все основные есть.>вернуть функция должна именно ArrayК счастью разработчики фреймворка запилили ToArray, и любой IEnumerable можно перегнать в массив одной командой.
>>1657145>решалось за 2 секунды на яваскрипте вызывает у меня боль в голове на сишарпе.Не парень, учить тебе азы еще и учить. Базовые типы во всех языках одни (в твоём жсе они тоже есть, но спрятаны, и если ты не понимаешь что ты делаешь, то можешь огрести). Алгоритмы работы с ними одинаковые. Основы работы с памятью и ЦПУ везде одинаковые. Как только ты это для себя откроешь, то у тебя таких вопросов больше возникать не будет. Ты сможешь решить те задачи хоть на шарпе, хоть на руби, хоть на питоне, хоть на кложе, хоть на <дофига языков> с примерно одинаковой эффективностью без всякой боли.В шарпе тоже можно сделать Queue и потом ToArray().Библиотеки для работы с математикой есть везде и легко гуглятся.Матрицы - это массивы. В некоторых языках есть доп сахар для работы с ними (Питон). В шарпе можно добавить сахар самому или подключить готовую библиотеку.
>>1657145>Нету Push метода элементарногоПотому что в жс массивы на самом деле не совсем массивы. Они выполнены в виде стэке, поэтому у тебя появляются пуш и поп.В памяти же массив - это жёстко выделенный участок. Твой жс просто всё это от тебя прячет за слоем динамической магии. И ты можешь огрести по самые помидоры, не зная как работают внутреннсти твоей виртуальной машины.Шарп предотвращает множественные выстрелы себе в ногу (жс позволяет выстрелит себе в пах и в голову одновременно). Поэтому если тебе нужна какая-то хитровыебанная структура, то пили её сам и не вини потом язык/фреймворк/аллаха в твоих проблемах.
>>1657249>не понялИ что же это?>не должно быть пушав жс есть...но в жс вещи не вещи, да-да>к счастьюЕще бы они не запилили ><>>1657251>спрятаныТак про это я и говорю. ЖС проще тк это более абстрактный язык, чем с-семейство и прочие явы. Надеюсь после изучения шарпа будет со всем проще как ты сказал.>в шарпе такжеЯ про него и говорил.>>1657253Спасибо ребята.
>>1654577Вот я говно на винформах делаю.В геймдеве платить будут меньше, делать и знать придется больше.
ребятки как думаете, что будет c .net/с# в будущем? обьективно .net сейчас покруче жавки но сможет ли он потеснить жавку? грубо говоря в топ 3 влезть?
>>1657342За время своего существования шарп медленно, но верно сокращает разрыв в популярности с джавой. Если 15 лет назад Джава была в 6+ раз популярнее шарпа, то сейчас всего в 2 раза. Думаю лет за 3-5 обгоним окончательно.
>>1657514Одно и то же. Они же не равномерно теряют в популярности, джава скоро так дотеряется что шарп станет популярнее.
Сап шарпаны, есть проект на .net core 3.1. По дефолту при билде все зависимости проекта с нугета и зависимости этих зависимостей кладутся в ту же директорию что и dll/exe самого проекта. Есть ли возможность как-то указать чтобы все зависимости клались в субдиректорию "Dependencies" например и папка с билдом выглядела примерно как Build|---Dependencies| || ---тут все дллки зависимостей||---тут дллка самого проектаСборка в один исполняемый файл не подходит.Я вроде бы гуглил, но толком ничего не нашел. Буду благодарен за объяснение или тычок где об этом у майков можно почитать.
>>1657651На нем даже конченные имбецилы типа меня могут клепать программки, эффективность в разы больше.
>>1657703Я не уверен что есть конкретно такая опция при билде: https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet#dotnet-commands--output - сюда будет укладываться всё.Но для таких кастомных решений есть post-script в самой вижуал студии. Если используется CI/CD, то там еще проще скрипт запихать, который разложит файлы куда надо.Естественно придётся ссылки на зависимости в твоём основном проекте с точкой входа править.
>>1657864> Естественно придётся ссылки на зависимости в твоём основном проекте с точкой входа править.А как это можно сделать, не подскажешь?
>>1657922Строки кода в проекте считают по всем файлам, а не по одному. Ни в одном проекте не должно быть вручную набитых файлов с 1к+ строк кода.
Сап к скиловым анонам. Как запускать asp.net core вместе с node.js в релизе? В дебаге все изи выкатывается, начинаю депрой делать и в релизе запускать - хуй.Еще вопрос - как запускать именно билд сборки в wwwroot? В чем загон - пишу фронт на React, запуск в дебаге - npm start. Когда делаю билд с помощью serve, то запуск билда происходит только с serve -s build. Но блять в asp.net core только npmScript.Помогай анон, заебался уже тыкаться. И главное туториалов - нет. Даже ебучий MSDN не может расписать, как с WebApi работать.
>>1658094Ну, во-первых, тебе к жс чуханам в тред надо. У тебя 2, на 100% отличающиеся и живущие друг от друга в полной изоляции, приложения. Дотнет запускается как делать нефиг. Теперь тебе надо понять как отдавать кучу статик файлов (js, css, media) через хттп запрос клиенту.Во-вторых, Не пользуйтесь блять костылями, которые делают вид, что весь твой код живёт в одной коробке и даёт некую абстракцию, через которую можно очень лимитированно настраивать твоё клиентское (Реакт) приложение.>asp.net core только npmScriptнет ни в дотнете ни в коре никаких нпм, нод и прочей клиентской чухни! Это просто доп абстракция через плагины, которая сегодня работает, а завтра нет.
>>1658087Сам не работал, но если допилят (хотя уже и сейчас есть проекты на нем), будет как минимум интересно. Жс точчно не убьет.
>>1658118>тебе к жс чуханам в тред надоя через Debug запускаю Node.js, мне нужна релизная версия. Чем мне JS-сники помогут, если у меня запуск приложения должен тригерить запуск Node.js сервера? У меня они должны подниматься и ложиться синхронно.>Не пользуйтесь блять костылямикакими именно? Все, что я написал - это практика web api>нет ни в дотнете ни в коре никаких нпм, нод и прочей клиентской чухни! Это просто доп абстракция через плагины, которая сегодня работает, а завтра нет.Как нет, если есть. У них же все равно связь должна быть. Как минимум билд реакта должен лежать в wwwroot в виде staticfiles. Разве нет?Кто работал с WebApi - дайте совет
>>1657037Так кто так клонирует как на первом пике? Если сделать так:Type x = this.GetType();Assembly y = Assembly.GetAssembly(x);return y.CreateInstance(x.ToString());То всё нормально работать будет.
>>16570481) На msdn, просто так сходу не получится, для этого нужно хотя бы один нормальный язык знать, а не динамикопарашу, которая создана для того чтобы плодить говнокод о работе которого ты ни малейшего представления не имеешь.2) Конечно, потому что C низкоуровневый язык и входит в одно семейство языков с Шарпом, а жопаскрипт это динамика, которая создавалась как дополнение к языку разметки, а не полноценный язык. 3) Во-первых, он есть и это тип String, во-вторых, любая строка это массив символов. Даже "a" это массив из одного элемента char 'a', об этом помнить нужно.>дианмическая типитизация удобнее же в разы.Она делает много той работы, которую ты мог бы сделать и определить на момент написания кода. Это пустая трата ресурсов и времени. 4) Потому что так работает строгая типизация. Программа должна четко знать что и откуда должно вернуться. Это удобно, потому что в случае ошибки компилятор тебе даже запустить такую программу не даст. В твоём JS ты можешь нахуячить 1к строк кода, а потом проебаться несколько часов, пытаясь понять что же с ним не так, а всё потому что JS'у похуй на то что принимать и возвращать.5) Шарп создан для того чтобы писать качественный, легко поддерживаемый и переиспользуемый код в больших количествах. Он быстрее и ресурсоемок в сравнении с Жабой, у него больший ООП функционал в сравнении с Жабой. С динамикопарашей можно не сравнивать, потому что у неё другие предназначения (быстрее нахуячить код и запустить его, либо нахуячить костыль). Как только ты дойдешь до создания крупных проектов, начнёшь изучать паттерны проектирования, так сразу поймёшь все плюсы ООП языков.
>>1658094>>1658216https://www.amazon.com/Building-Applications-NET-Core-JavaScript/dp/1484253515Вот эту книгу тебе прочитать надо. На торрентах должна быть, если не хочешь отдавать 35 долларов. Всего 615 страниц.
>>1658336спасибо за сорс. Очень странно, что никто не знаком с этим, ведь это обыденная практика для разработки проектов. Правду писали, что тут одни вкатыши сидят
>>1658345По этому отдельные книги создают, а ты хочешь чтобы тебе всё в одном посте описали и при этом относительно твоего поделия, которое никто даже не видел. Как ты себе это представляешь? Совсем тупенький?
>>1658356>в одном постеты хотя бы другие мои посты почитал, о чем я писал, прежде чем царапать свою хуйню
>>1658323>Если сделать такТо ты создашь новый экземпляр со значениями полей по-умолчанию. К копированию это отношения не имеет.>>1658400>другие мои посты почиталНа анонимной борде.
Я новичок, посему вопрос гипер тупой. Почему у вас так много вариантов явного преобразования/приведения типов? Скобочки, Сonvert,.Parse/TryParse. Нахуя их больше одного?
>>1658428>Я>тупойhttps://pediaa.com/what-is-the-difference-between-int-parse-and-convert-toint32-in-c/
>>1658438Видно, что ты умный, но я не спрашивал, в чём разница, а почему способов сделать одно и то же действие больше одного(а как минимум 3).
>>1658426Ну вот ты и обосрался, несмотря на переходы. Мои посты в этом треде только про клонирование. Тебе я ответил первый раз.>>1658428Это разные вещи. Скобочки это каст между типами, парсе/трайпарсе - для (внезапно) паринга из строки. Конверт - преобразование между типами.
>>1658440разные задачи, не? Хочешь 0 - ToInt, хочешь Exception - Parse. Или ты думал просто так будут методы оставлять?
>>1658447Почему всё это в разных местах находится? Будто разобрали лего-конструктор и его части распихали по разным наборам.
>>1658443тупое ты уебище, я про свои посты говорю. Смотри, что я в предыдущих постах пишу про React+Core
>>1658428Скобочки нужны для приведения типов, ты не сможешь привести тип string к типу int, поэтому компилятор будет ругаться если ты напишешь (int) "23423">СonvertУ него большое количество перегрузок для всех методов, т. е. его можно использовать там где у тебя может быть не только строка, как у Parse и TryParse, но и другое число, символ, объект и т. д.>ParseИспользуется там где ты точно знаешь, что операция не вызовет эксепшена. Или там где для тебя важна производительность, потому что TryParse медленнее.>TryParseУдобно использовать в условиях и там где ты не уверен, что тебе точно придёт строка, которая парсится в число.
>>1658216Мы несколько проектов в прод запустили, часть на старом knockout, остальные на Angular и React.>Разве нет?Нет, это всё "официальные" костыли, плагины, которые за тебя триггерят npm команды и скрывают настоящую конфигурацию ноды и реакта.WebApi крутится сам по себе на бэкенде не зная ничего о природе клиента. Билдиться вся эта клиентская муть должна отдельно. Хостить в проде надо через реальный сервер, а не дев сервак от ноды, который только для разработки можно использовать. Ты можешь свои статик файлы через тот же Kestrel или IIS отдавать, настроив его отдельным приложением или сделать еще один endpoint в твоём WebApi для возврата Реакт файлов.Ты можешь свои скрипты навесить на билд процесс либо в самой студии и потом dotnet build/publish будет их подцеплять, либо делать отдельный билд скрипт и хранить его вместе с репо.Бойся Strong Coupling как огня https://en.wikipedia.org/wiki/Coupling_(computer_programming). С твоим подходом ты tight coupling в самые корни запускаешь. И судя по твоим постам ваши абстракции всё мясо напрочь скрыли, потому что ты не понимаешь как твоё собственное творение внутри работает.
>>1658449Потому что делать швейцарский нож в программировании не есть хорошо. Оно станет тормозным, будет тяжело поддерживать и оно начнём вести себя магическим образом в особых ситуациях.Вшитый способ - через скобочки. Но он не всегда будет давать нужный результат. Например string to enum, у которого есть какой-нибудь Display аттрибут. Откуда рантайм должен знать, надо тебе по аттрибуту или по имени enum конвертацию делать? Case in/sensitive?А еще есть всякие дженерики и их in и out типы: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/in-generic-modifierИ еще мильён нюансов.
Что есть в ASP.NET Core Web api чтобы раз в какое-то время делать какой-то большой запрос в БД, сохранять результат и использовать его? Типа как знаете пересчитывать рейтинги у фильмов. Или сортировать треды по времени последних постов. Приходит в голову сделать синглтон и там через интервал делать это действие, писать результат и использовать как сервис везде где нужно, но вдруг есть уже какой-то реализованный механизм в фреймворке на такой случай, подскажите плз. Я ньюфаг
>>1658661Любой в котором требуется выполнения долго выполняющихся задач. Как пример - парсер новостных сайтов, который в несколько потоков собирает нужную информацию из списка сайтов и сразу соединяет всё в единый массив.
Господа шарписты, поясните, есть ли у вас какой-нибудь говносайт как у жиэсмакак learn.javascript, чтоб по каждой теме были упражнения, задачки вот это все?Поглядел пару книг, там тупо справка, на метаните полтора упражнения, большинство это вопросы на самопроверку. Не хотелось бы оказаться в ситуации, когда вроде все понимаешь, а написать ничего не можешь.
>>1658744https://www.learncs.orgЯ бы начал с примеров на гитхабе от самого дотнета https://github.com/dotnet/samplesЗаодно с git'ом подружишься.
>>1658552спасибо, я тоже задумался над тем, что это полностью сепарированные сервера должны быть и вообще не имеют никакого отношения друг к другу. Мануалов просто не нашел, не знаю где покопаться, сейчас буду книжки рыть, где можно найти такое. У меня на самом деле еще много вопросов:1. services AddSpaStaticFiles и весь остальной треш нужно пихать?2. Компоузы только для облачных серверов идут? Нужен ли он вообще?3. Как установить связь между реакт проектом и core приложением? Ловить/отправлять реквесты между портами?
почему не рекомендуют Шилда для изучения шарпа?А то хочу книгу, но про Шилда встречаю негатив.Ранее мне советовали Троесена - мне совсем не понравилась, автор тупо навалил все в кашу - почему до классов, и ооп еще не дошло, а у него уже в первых главах про наследование от object и методы?Еще проблема что он выливает тонну материала без практики, я на второй день забыл больше половины прочитанного. Короче, тяжело читатьЧто еще можно? нужна толстая книга, но с более продуманной структурой
>>1659015>Троесена - мне совсем не понравилась, автор тупо навалил все в кашу - почему до классов, и ооп еще не дошлоВот выдержка из третьей главы:C# demands that all program logic be contained within a type definition (recall from Chapter 1 that type isa general term referring to a member of the set {class, interface, structure, enumeration, delegate}).>recall from Chapter 1Т. е. о классах и типах тебе в первых главах рассказали то, что должно интересовать новичка. Более подробно ты будешь со всем этим знакомиться в следующих главах. >он выливает тонну материала без практикиЧто ты под практикой подразумеваешь? Если тебе задачи нужны, то для этого есть leetcode и другие codewars, либо идеи для пет-проектов. При этом всё это не нужно, так как у него весь материал сопровождается примерами, смотри на них и понимай. И если для тебя Троелсен это тонна, то попробуй открыть Альбахари и его C# in a nutshell и посмотри сколько материала у него. Там один класс String и его методы это несколько глав. >почему не рекомендуют Шилда для изучения шарпа?Знаю только, что Шилда в ВУЗах рекомендую и что у него по плюсам и джаве еще книги есть. Открой и почитай, но если тебе Троелсен не зашел, то вряд ли проблема в авторе.
>>1659250>Т. е. о классах и типах тебе в первых главах рассказали то, что должно интересовать новичкавот эта первая глава в итоге - одна сплошная каша.да и ничего он там не рассказал>>1659250>Что ты под практикой подразумеваешьматериал надо как-то закреплять, дело не в задачах, надо начинать с малого и возвращаться к этому когда читатель набьет руку. Опять же - нахрена в первых главах выливать поток методов Object/Array? Я еще даже самими классами не пользовался, а уже должен запомнить все их методы. С# не первый мой язык. Я изучал С++ - там в книгах хорошо все структурировано. И с PHP тоже пришлось познакомится - там тоже в книгах все нормально упорядочено.Короче, тут проблема именно в самом авторе - он пишет какую-то кашу, не понимаю почему его советуют первой книгой. это я уже знаю что такое классы, наследование, интерфейсы, передача по ссылке/значению - новички этого вообще не знают. (ну а конкретно моя проблема, что я не хочу изучить поверхностно (иначе бы просто посмотрел лекции в ютубе, да и так уже сам пишу код), я хочу сразу детально изучить этот ЯП - но из-за такого авторского стиля, оно просто из головы вылаливается, да и тяжело читать тягучую теорию
У меня в проге используется массив, но его надо автоматически сгенерировать от 1 до n, как это можно сделать? Понятно что с циклом, но у меня методы не будут видеть, если я это буду в нём писать
>>1659783> используется массив, но его надо автоматически сгенерировать от 1 до n, как это можно сделать? var mas = System.Linq.Enumerable.Range(1, 5);
Анон, мне нужны знания древних! А именно тех, кто юзал Visual Studio 2010. Расскажите как там создать нормальный инсталлер для своего добра. Вот создал я проект установщика. Мне в нём нужны свои формы. Жмякаю на нём ПКМ -> Вид -> пользовательский интерфейс -> добавить диалоговое окно. На выбор только окна с радио баттонами, чек боксами и текстовыми полями. Причём в ограниченном количестве, не больше четырёх. Так, а если мне, га пример, нужна форма с пятью радиоБаттонами, как мне быть?
Анон, подскажи, плез.Даны 5 целых чисел. Вывести сумму положительных.Начальные данные: 5 целых чисел на одной строке через пробел.Есть ли способ распарсить стринг и сразу заполнить массив интов, например? Как-то утомляет каждый раз сплитовать на массив строк и парсить каждую руками, а циклы условия задачи не разрешают
Начал учить C#. Коммерческий целей не преследую(хотя в глубине души надеюсь), так как я слишком тупой. Какие подводные камни? Может лучше дыже не пытаться, а пиздовать к питонщикам? Там и гуи есть через куте, и серверная разработка и асинк вроде даже есть какой-то.
>>1660066выглядит изи, но мои познания знания в сисярпе ещё не позволяют такого вытворять.я тут про Array.ConvertAll только узнал, а у тебя лямбды и прочее страшное. нихуя не понятно, но очень интересно. спасибо, Анон
>>1660073В смысле не позволяют. Вот тебе показали что-то новое. Сиди дрочи мануалы, документацию, лабы, пока не поймёшь. И вот, ты уже знаешь это и применишь где-то дальше. Или по крайней мере у тебя в голове будет закладка, что что-то такое возможно и при надобности ты легко нагуглишь/вспомнишь через подсказки в редакторе.мимо-другой-анон
>>16600730. Берем строку.1. Split разбивает строку на массив, используя пробел ' ' как разделитель элементов.2. Select как бы говорит: для каждого элемента x примени int.Parse(x, NumberStyles.Any), то есть распарсь число с любым форматированием.3. Where — это фильтр: возьми только те числа, которые строго больше 0.4. Ну и наконец Sum — это просуммируй все числа, что дошли до этой точки.>>1660066-кун
>>1660077>ещё не позволяютэто я и имел ввиду. смотрится весьма охуенно, но я даже не знал что так можно>>1660084спасибо огромное, за объяснения особенно
суп шарпач, есть такая задача:консольное приложение на net core 3.1, запущено под win64надо вызывать функции из рандомной PE дллкито есть в рантайме задается файл библиотеки, имя функции, количество тип порядок аргументов, тип возвращаемого значения и соглашение о вызовебиблиотека может быть написана на любом языке, но собрана под виндув какую сторону копать? если сигнатура известна на время компиляции, то тут всё просто, extern и так далее
Вы ебанулись? Что вы делаете на дне /pr?Вопрос по WPF. Стоит задача иметь только одно окно, и менять его содержимое по приказу view model'ей. Вот этот https://stackoverflow.com/a/25399943/7162511 гражданин советует объявить пары viewmodel-user control через data template'ы в App.xaml, а дальше просто биндить контент в <ContentControl>'е в MainWindow.xaml. Всё бы ничего, но у меня все viewmodelы от базового класса принимают в конструктор объект, конструктор которого в свою очередь тоже имеет параметры. Вроде как как то можно было создавать xaml'е объекты с параметрами и я даже почти не против, но я хз как там же в App.xaml в дата темплейты передавать объекты как аргументы конструктора viewmodelов. Или в таком случае только в MainWindow.xaml.cs самому создавать переменные вью моделей, передавать им свой объект? Как в таком случае биндить юзер контролы к дата контексту окна? Мне пока в голову приходило только сделать какой нибудь костыль на событиях, на которые бы подписывался main window.cs и менять юзер контрол контента в обработчиках события
>>1660222А зачем тебе передавать параметры в App.Xaml и вообще создавать вьюмодели напрямую в xaml? Почитай про ViewModelLocator и DI.
Есть двухмерный массив интов размером n,2 (перечисление двух чисел). Как можно (вероятно)через linq без циклов и рекурсий достать сумму чисел выбранной колонки?
>>1660267Потому-что это код из разряда "смотри как умею" который не очевиден для понимания и противоречит философии linq, мутировать внешнюю переменную в linq запросе это трешак. Код должен быть максимально простым и очевидным. Гораздо лучше написать какой нибудь GetColumnSum extension метод в котором в цикле for пройтись и получить сумму чем городить вот эти хаки с кастом и т.д.
>>1660271Я не спорю что колоть жопой орехи - нехорошо, просто стоит условие >Overlapping intervals should only be counted once
>>1660289Overlapping intervals это строки в массиве? И как тебе тут linq поможет вместо простого for?
>>1660309Да я жопочтец ебанутого тз. Вот фулл:>Write a function called sumIntervals/sum_intervals() that accepts an array of intervals, and returns the sum of all the interval lengths. Overlapping intervals should only be counted once.>Intervals>Intervals are represented by a pair of integers in the form of an array. The first value of the interval will always be less than the second value. Interval example: [1, 5] is an interval from 1 to 5. >The length of this interval is 4.>Overlapping Intervals>List containing overlapping intervals:>[>[1,4],>[7, 10],>[3, 5]>]>The sum of the lengths of these intervals is 7. Since [1, 4] and [3, 5] overlap, we can treat the interval as [1, 5], which has a length of 4.До меня только что дошло что я должен что-то сделать с i[0] и i[2].
Призываю в тред опытных п/инвокеров. Мне нужно получить список процессов, которые лезут в интернеты (PID+ локальный адрес/ремоут адрес/порт/состояние). Нарыл оч пожилые статьи, где используются AllocateAndGetTcpExTableFromStack и AllocateAndGetUdpExTableFromStack из iphlpapi. Доки говорят что с виндуз висты эти функции не работают. Так вот, как мне ещё можно получить эти данные? стянуть с нетстата не предлагать. И да, я новичок, поэтому желательно на пальцах, заранее спасибо.
Вопрос по WPF. Есть несколько классов, у которых определенно свойство возвращающее StackPanel. Можно ли создать привязку в ListBox чтобы в ListBoxItem вставлялась StackPanel из свойства экземпляра?
>>1660168>>1660457бери с помощью static extern из kernel32 loadlibrary и getprocaddress. ими можешь из любой библиотеки взять адрес экспортируемой функции. всё остальное у тебя вроде как есть. без loadlibrary и getprocaddr такое нереально сделать за исключением лютого шаманства вуду с какой нибудь эзотерической ручной загрузкой .dll в рантайме
>>1660469хотя напиздел. тебе ещё надо понять, как вызывать функцию пинвоуком без сигнатуры в C# коде. этого я не знаю
Есть вообще смысл вкатываться в UWP?Сейчас по РАБоте плотно сижу на net.core, но до этого около полугода писал пет-проджекты на UWP. С тех пор оно так и не взлетелоОсобенно реквестируются аноны из ДС и Германии/Австрии
>>1618705 (OP)Можно ли сделать так чтобы разные объекты слушали один и тот же event? Или это только Main может делать?
>>1657663>джава скоро так дотеряется что шарп станет популярнееты идиот, ок? У каждого продукта есть цикл существования. У этого цикла есть пиковая точка в период наибольшей популярности. У Java этот период уже прошел и идет период рецесии. У .net, судя по твоему графику - период пиковой популярности уже прошел, но уровень стагнации не такой резкий, как у Java. Какой можно сделать вывод: .NET-у не доверяли раньше, не доверяют сейчас, рынок - это скорее всего те, кто уже написал свой интерпрайз на C# и пока бизнес не закрылся - они его сапортят. Это так же означает, что если падает Java, то по логике должен подниматься .NET, раз рынок имеет свою емкость. Но т.к. .NET не растет, это означает, что используют другие технологии, которые кажутся им более перспективные.Итог: .NET как был говном, так и остался. На смену Java прийдет Kotlin или вообще Node.js (who knows), но точно не .NET.Занавес.
>>1660820Идиот тут только ты, который забыл, что кроме существующих языков постоянно появляются новыеЧтобы стоять на месте в относительных цифрах надо расти в абсолютных, что шарп и делает успешно. А жава нет.
Это анон из жса. С# неплохая вещь на самом деле, ха-ха. Основные директивы я уже запомнил и так, они так логично и лаконично устроены, что на жс приходилось писать колесами на много функций, а потом сохранять их до следующего раза в гитхабе, тут просто уже все встроено, столько уже готовых методов из коробки, кайф. И сам код выглядит красивоно это было ожидаемо от си семейства для меня всегда.Я просто был очень занят и уставший, мне нужно было просто отдохнуть и потратить пару дней на листание основ.
>>1660787На событие может подписаться любое количество обработчиков, и даже один обработчик можно подписать на событие несколько раз. И при чем тут Мэйн? Поясни, желательно с кодом.
Вечер в прихожую, молодые люди. Нужны аноны, которые ковырялись в IdentityServer 4. Ситуация следующая: в apiresources я добавил сам сервер, чтобы получать доступ к его контроллерам через сторонний клиент. Клиента создал, granttype.ClientCredentials. Запускаю сервер, запускаю клиента, получаю бибу, так как клиенту приходит старница авторизации. Вопрос: существует ли способ сделать из identityserver апиресурс, к которому можно подключиться о clientcredentials?
>>1660994Что написано в Startup сервера: services.AddAuthentication("Bearer") .AddJwtBearer("Bearer", options => { options.Authority = "http://localhost:5001"; options.RequireHttpsMetadata = false; options.Audience = "identityserver1"; });Конфиг для клиента: ClientId = "console", ClientSecrets = { new Secret("secret".Sha256()) }, AllowedGrantTypes = GrantTypes.ClientCredentials, AllowedScopes = new List<string> { "identityserver1" }Что написано в клиенте:var tokenResponse = await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest { Address = disco.TokenEndpoint, ClientId = "console", ClientSecret = "secret", Scope = "identityserver1" });
>>1660852>Я дебил, который не умеет читатьмой пост>Но т.к. .NET не растет, это означает, что используют другие технологии, которые кажутся им более перспективные.хотя что с тебя взять, с вкатыша...>>1660885C# сам по себе хороший язык (пока что), хотя уже начинают пичкать сахара, как в Java. Насчет JS - мелкософты продвигают свой калл в виде Razor pages или Blazor, поэтому и нужны костыли с интеграцией>>1660972давай поспорим, что когда ты окончишь свою шарагу, то ты будешь учить уже другой стэк?>>1660997>options.Audience = "identityserver1";вот твой косяк. По JWT токену есть дока для мелкософтов
>>1660237>достать сумму чисел выбранной колонки?>>1660324>returns the sum of all the interval lengthsЗачем тебе сумма чисел в столбце? Это какой-то особенный способ вычисления длин интервалов или их пересечений?
>>1618705 (OP)Шарпач, помогай. Есть какие-нибудь варианты как хранить данные по типу List<>, только с возможностью добавлять элементы в конкретные индексы, а пустые места сжимать? Что-то вроде варианта с Dictionary<>, чтоб был ключ-индекс и значение. Dictionary<> не устраивает тем что жрет оперативку. Если складывать в него int, а индекс брать как byte, то он сжирает какие-то дикие значения при большом количестве небольших Dictionary<>, что-то в районе 3 раз больше, чем даже массивы интов с пустой памятью между элементами. Что напердолить, только писать свой велосипед?
>>1661040>ты будешь учить уже другой стэкМожет и буду, только какое отношение это имеет к теме C# vs Java? А ты от спора слился.
>>1661040>вот твой косяк. По JWT токену есть дока для мелкософтовСпасибо за ответ, можешь уточнить в чем проблема? Если определять ApiResource любую другою апиху (не сам IdentityServer), то все работает прекрасно, почему в случае с IdentityServer это косяк? Заранее спасибо за ответ.
>>1661087> по типу List<>, только с возможностью добавлять элементы в конкретные индексы, а пустые места сжимать?В лист можно вставлять в конкретное место и можно вызвать TrimExcess(). Чем не подходит?>Что-то вроде варианта с Dictionary<>,Так по типу List или ключ-значение?
>>1661099> можно вставлять в конкретное местоТы про Insert? Он же кидает исключение если за пределами диапазона.> TrimExcess()Это же просто очищает лишнюю память в конце, Capacity уменьшает до количества элементов.> Так по типу List или ключ-значение?Чтоб я мог по индексам писать/читать, но без пустой памяти между значениями.
>>1661107А я понял. Ну тогда словарь. Там конечно будет оверхэд на хранение значений + ему надо хранить еще ключи. Но в три раза при использовании <byte, int> - это ты что-то не так делаешь.
>>1661114> ты что-то не так делаешьДа я знаю что не так делаю. У меня в них мало элементов, а сами словари в дереве и их много, из-за этого они сжирают память как не в себя. Придётся самому облегченный велосипед делать, мне производительность не критична, а вот памяти мало.
>>16610403 года продакшна на шарпе, из них последние полгода на коре втором - это вкатыш? Нихуя ты хуесосина охуел, ну когда нечего пиздануть назови собеседника вкатышем.Имбецил блядь.
П-п-прастите, п-пожалуйста. А в ч-чём разница между написанием с большой буквы и с маленькой, но с this?
>>1661705И всё? Т.е. если я пишу с большой буквы, то могу не писать this, но если с маленькой, то обязан, потому что иначе он будет думать, что это передаваемый параметр? Это единственное отличие? А как вообще это называется, чтобы я мог гайдлайн почитать, в каких случаях как принято именовать.
>>1661705Бля, как всегда, только спросил, сразу нашёл ответ.>Fields are normal variable members of a class. Generally, you should declare your fields as private, then use Properties to get and set their values.
>>1661267А расскажите ньюфагу, как посмотреть как внутри устроен класс / метод?Я нашёл вот это, а в самой Студии никак?https://referencesource.microsoft.com/
>>1661707>>1661709Чел, у тебя там разные переменные, Num1 и num2. This необязательно писать, оно само подразумевается. Даже Visual Studio тебе его затемняет и предлагает убрать.
>>1661910Забей, я там вообще всё перепутал.Но вообще я спрашивал про способ. Ведь можно написать num1, а можно Num1. И потом в теле конструктора можно написать num1=n1, а можно this.num1=n1. И я вот не понял, в каких случаях писать this, а в каких не писать.
>>1660524System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer(IntPtr, Delegate)Delegate.DynamicInvoke(object[])и в нет коре 3 не нужно дергать кернел32, там есть System.Runtime.InteropServices.NativeLibrary. грят, можно сошки линуксовые также вызывать
>>1662054num1 != Num1, имена переменных case sensitiveесли у тебя в скопе есть локальная переменная num1, то надо писать this для обращения к члену класса, а не к ней
tldr: где найти секретный ключ для авторизации на сайте через куки? Есть сайт без документации апи, надо чтобы мой бот зашёл на этот сайт авторизованный. Начал гуглить про куки, и кажется понял, что для того чтобы авторизоваться, надо правильно отправить post запрос по правилам, которые есть на сервере. Вот на пикче и видосе показано о чём идёт речь, в первом параметре у класса, надо знать правило, по-которому войти можно на сайт, второй параметр - ключ. Где это можно найти? Полазил в настройках хрома, 22 кукиса, не понятно что конкретно брать. Хотя на 2 пикче кукис отличается, но мне не нравится, что там написано не доступно для скрипта, что это вообще значит?https://youtu.be/hlixpNm8RBg?t=295
>>1662861Это пиздец, а не вопрос. Ты для начала смешал аутентификацию вместе с авторизацией. И то и другое может миллионом разных путей делаться через миллион разных источников данных. Тебе нужно знать как конкретно там аутентификация настроена. Если они всё настроили через какой-нибудь AD и/или лимитируют аутентификацию для внутренней сети only и у тебя ни туда ни туда доступа нет, то у тебя никаких шансов в принципе нет.
Стоит вкатываться в решетку ин 2020? Есть опыт питона, но это хуйня никому не нужна, кроме датасаентистов и математиков.Если что не так, извините.
Шарпаны, как сделать по-человечески? А то жопа чует, что while(true) ебанина. Гугл говорит, что решение opinion-based, но мне не очень нравится такой подход.
Подскажите хорошую программу для рефакторинга. Есть старая версия проги без обсфукации и более новая деобсфуцированная, привожу исходники первой ко второй. Сейчас через SharpDelevop, и он дико тормозит, сжирая процессор напрочь, переименовывая какой-нибудь элемент классс. И помещение проекта на рамдиск не помогло.
>>1663284Ну или IDE, плагин для нее, етц. А то заебывает ждать по несколько секунд на каждую сраную переменную.
>>1663300Потому что майкрасофты впервые за десятки лет начали идти в правильном направлении, а именно - кроссплатформенности и опенсорса. .NET Core уже божествененн, даже страшно представить что нас ждёт с выходом .NET 5
>>1663270Изучи уже Roslyn analyzers - https://docs.microsoft.com/en-us/visualstudio/code-quality/roslyn-analyzers-overview?view=vs-2019Можешь подключить что-нибудь из этого и больше голова о кодостилях болеть не будет:http://pihrt.net/Roslynator/Analyzershttps://rules.sonarsource.com/csharpУ этого добра есть версии, которые поддерживают старый .Net Framework.
>>1663317Это не то, что нужно. Поясняю:Есть декомпилированные исходники программы, они собираются.Более новая версия защищена обсфукацией. Ее снял, программу декомпилировал. Теперь надо на основе исходников первой воссоздать исходник второй.SharpDevelop прекрасно справляется с переименованием всяких gClass_88.decimal_1 в myClass.data, но больно медленно работает.
Господа, не срабатывает брейкпоинт внутри Action или Func, что я делаю не так? Если принудительно остановить с помощью Debugger.Break(), то всё нормально, но вписывать это каждый раз не хочется.
>>1661046ASP.NET dev, C#>к теме C# vs Java?Я пишу, что # не в тренде, я вообще хз нахуя вы джаву приплетаете. Уже писал выше, что джава идет на спад, но в свое время она была на пике. Сравнили хуй с пальцем.>>1661097я увидел, что у тебя identityserver1 тянется из конфига, попробуй явно инициализировать. По сабжу - я дрочил когда то через этот Client creditals по тутору - пролетел и не заметил. Там сложного ничего нет.>>1661227ты аутист, судя по постам. 3 года у тебя могут быть только шараги, а не в продакшине.
Empty character literal. //ERRORЧто за х? Я не могу пустую строку-букву сделать? Что за бред. объясните.
>>1663794Символ не может быть пустым. А строка может, т.к. это массив символов, который может иметь нулевой размер. Всё полностью логично. Хз, что тебе не нравится.
>>1663780Ну клиент креды это реально легко, я тоже за пару минут сделал, тут сложность с authorization code была. Я уже решил траблу, если кому интересно, то нужно настроить localapi в identity server и все будет огонь.
>>1663870Я этот ответ уже читал на стаоверлфлоу. ты-вы издеваетесь?Как я должен алгоритмы писать легко и лаконично если само устройство языка загоняет меня в рамки определенного дизайна и пердолинга. Нету даже Empty метода, ничего нету.>>1663871Спасибо, но нет, я уже понял что скобочки разные для разных целей.а для чего собака @ нужна перед Regex? флажок проверок по всей строки или что?
>>1664179В штатах (можешь глянуть по LinkedIn и Indeed) по шарпу вакансий завались в каждом большом городе. В Канаде тоже хватает. За остальную европу не скажу. Хотя у нас во всяких Ирландиях и Британиях дофига офисов.
>>1664211>а для чего собака @ нужна перед Regex? флажок проверок по всей строки или что?1) Собака ставится перед строкой, чтобы не приходилось пердолиться с дублированием обратных слешей если у тебя их много в строках. Но в таких строках не поддерживаются управляющие последовательности.2) Собака ставиться перед зарезервированными словами, если по какой-то ебанутой причине ты хочешь их использовать в качестве идентификатора.Напримерint class = 5; выдаст ошибку,а int @class = 5; сработает, и даст тебе переменную с именем class (символ собаки в этом случае в имя не попадает)
>>1664211> Как я должен алгоритмы писать легко и лаконичноПоясни, как наличие пустого символа может тебе помочь писать "легко и лаконично"? Вообще я себе не могу представить ситуации, в которой потребуется пустой символ.Символ ведь это просто число, оно не может быть пустым. Тебя же не удивляет, что ты не можешь написать int a; и потом попытаться взять какое-то значение из этой переменной, не задав его заранее.
>>1664211Ну ты можешь воспользоваться наллаблом и словить NRE где нибудьchar? ch = null; //нeт символаили исолзовать налл символ и обрабытывать его по-особомуch = '\0';
Сап сишарперы. Накидайте пожалуйста на клык ньюфагу-вкатывальщику где можно попрактиковаться сишарпу, где задания для новичка поискать. Сам пока просто читаю Троэлсена, но чувствую что без практики нихуя не усваивается, хотя читается все интересно
>>1664352У него там примеры практические есть, ты их не копируй, а пытайся воссоздать по прочитанному. Вот он говорит "создадим класс такой то с такими то свойствами", вот ты и создавай, а потом смотри правильно ты это сделал или нет.
>>1664219Мерси боку>>1664225>меня не удивляетя просто не пробовал)) я думал будет null или undefinedНу есть слово, я должен проверить начало и конец, и отдельно модифицировать серединку, а затем вернуть новый результат по кусочкам.В жске я бы просто сделал a = "", b = "" и соответственно в овсновной функции a + str + b и все было бы чики-пуки без всяких ошибок. Тут же я прямо приуныл, такая элементарщина, а я не могу ее сделать за пару секунд как обычно делал.>>1664317>нет символаЯ писал, мне он что-то ошибку выдавал.>\0А это откуда пошло, я уже видел такой ответ. Так и проверять ch == \0 ?
>>1664218>по шарпу вакансий завались в каждом большом городе. В Канаде тоже хватаетТолько кое-что забыл:- легаси, кора почти нет- низкие зарплаты, в сравнении с каким-нибудь другим стеком
>>1664641>каким-нибудь другимЭто каким? Если жаба падает.Тут выше всякие новые языки расписывали, статей в интернете много про великое будущее Rust, Kotlin, Go и прочих Dart-ов, я для интереса забежал в тредик Rust-a и что я вижу: никого нет, ничего нет, сплошное сектанство, сам создатель уже дропнул свой язык, лол.
>>1664641Я с кором последние 3 года работаю, легаси видел в 2017 году, так что не надо мне тут.Что есть низкая зп, интересно? Вкатывай цифры кодомакак, я поржу.
>>1664654>Я с кором последние 3 года работаю, легаси видел в 2017 году, так что не надо мне тут.Я крайне сомневаюсь, что ты работаешь в штатах, на коре, учитывая тонные легаси.Здесь нужно сделать ремарочку: не ваша галера, что-то делает на коре для заказчика, или ты там себе удаленку нашел. >>1664654>Что есть низкая зп, интересноДо 150к, если у тебя опыта > 3 лет
>>1664684>В СФ у сеньора total comp будет 400+.>В Сиэтле 200-300.>В алабамах 80 уже дофига.Допустим. Но там не 20 летние сеньеры, почти везде 6+ лет опыта нужно.>>1664684>В СФ у сеньора Нужны ли в СФ дотнетчики? Вряд ли, хотя я в этом вопросе не сильно подкован, но вряд ли за пару лет что-то изменилось
>>1664690В СФ нанимают language agnostic. Во всяких НЙ, Остинах, Сиэтлах и прочих айти хабах та же фигня. А там внутри всяких фэйсбуков они чего только не используют. У того же Амазона есть сервисы, которые на коре крутятся. Мне тоже и на жабе и на жс и на тс и на питоне приходилось проекты пилить или с них на кор перетаскивать.На счёт легаси - да, его много, потому что старый фреймворк с начала нулевых вкатился, а кор стабильный только в 2017 появился. Но все компании, в которых работал, либо начинали новые проекты сразу на коре, либо задача была перетащить 10-15 летний продукт на кор.
>>1664708>В СФ нанимают language agnostic. Во всяких НЙ, Остинах, Сиэтлах и прочих айти хабах та же фигня. А там внутри всяких фэйсбуков они чего только не используют. У того же Амазона есть сервисы, которые на коре крутятся. Мне тоже и на жабе и на жс и на тс и на питоне приходилось проекты пилить или с них на кор перетаскивать.Ну, я в целом это больше к тому, что в случае переката, наверное лучше брать что-то более распространенное, аля жса, чтобы можно было найти работу не в таких крупных компаниях, ибо туда еще попасть всё-таки нужно. Хотя, конечно же, наверное можно и на шарпе, даже на коре найти что-то, из мордора такие вещи обсуждать особого смысла нет
Анчоусы, кто-нибудь разобрался, как в .NET Core 3 заставить работать SPA-шный фронт?Перевожу свой пет-прожект с ASP.NET MVC 4 и у меня не работает фронт с вебпаком.Если я стартую фронт через>npm start webpack -d --config webpack/webpack.dev.babel.js --color --progress --watch, то я иду нахуй и получаю пикрелейтед.Если же через npm start react-scripts startто всё работает как часы.ЧЯДНТ?
>>1664592>В жске я бы просто сделал a = "", b = "" и соответственно в овсновной функции a + str + b А в шарпе что тебе мешает? Также в шарпе можно складывать строки с символами>Я писал, мне он что-то ошибку выдавал.Ну тут да, шарп говно. Ошибки выдает сука>А это откуда пошлоЕще с мезозояhttps://ru.wikipedia.org/wiki/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E%D1%89%D0%B8%D0%B5_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D1%8B> Так и проверятьДа хуй знает, ты так и объяснил что тебе надо.
>>1664861>что мешаетМне пишет постоянно в разных махинациях Can't implicitly convert char to string - или наоборот. Что я только не делал, и при декларации сувал, и так и сяк соединял. can't convert can't convert can't convert.
>>1664887>>1664889Сука, как вас таких на работу то нанимают? Вы в эту профессию только ради бабла лезите?Даже жс макака должна знать системные типы. Твой жс присыпал всё сахаром, а ты и рад жрать. Но сахар - это не отмазка, чтобы основ не знать. Это значит что ты пользуешься готовым, даже не пытаясь понять, как твои инструменты работают. Ты типичный юзер (может даже пауэр юзер), но нифига не программист.
>>1664889var это не тип. Это ключевое слово, которое любезно просит компилятор вывести тип за тебя.>и так и сяк соединялВозьми уже книгу и прочитай хотя бы несколько первых глав, чтоб понимать что ты пишешь а пробовать и так и сяк.
>>1664904Какую книгу? Мне книги плохо даются, я сразу задачки решаю. >>1664903Что ты психуешь? Я что тебе байтер-микроконтрольщик какой-нибудь? Ты придумываешь дизайн, концепт, алгоритмы взаимодействий, а потом уже думаешь как это все соединить со своими типами, оптимизацией и костылями которые тебе предлагает твой инструмент. В какую эту профессию, о чем ты вообще?>должна знатьстринги, аррей, лет, нумбер-интегер, нулл, андефайнед, мап и сет с недавних пор- вот и весь мой набор!твои чары и инты32 в жисти не видел и уж тем более не юзалвидел в вузике но не суть>как твои инструменты работаютОни очень и очень сложно работают, нужно быть дураком чтобы считать что ты знаешь свой инструмент идеально. >юзерЯ всегда считал себя и всех программистов юезрами. Все языки и движки, и как это прогрессирует в будущем-становятся все более и более абстрактными. Слой на слое, и никто не знает что под капотом.Тебе нужно делать деньги и вести бизнесс, а не копаться в деталях от которых тебе ни горячо ни холодно. Конечно, как профессионал с годамии, если ты развиваешься, ты рано или поздно начнешь расширять свой кругозор, это через сколько десятков лет произойдет. а, милый мой? Если ты программист в смысле настоящий программист, рад за тебя, что ты к макакам-то пристал, а? Хочешь чтобы было меньше макак-делай что-нибудь, а не психуй.
>>1664927let у него тип, заебись.нумбер блеать, в системе куча разных числовых типов, жс тоже типы между друг другом приводит, и если программер, который пилит какую-нибудь финансовую систему, не понимает как оно работает, то у него всё развалится к чертям.hasmap, hastable, hashset, stack, queue - эти вещи надо знать с самого начала, а не >с недавних порТы вот вкурсе что твой мэп и сет - основа работы с индексами в БД?В твоём любимом жс char тоже имеется и у каждого символа может быть своя кодировка и прочая муть, также как и в любом другом языке, потому что это системные вещи. JS прячет от тебя большую часть из этого за слоем сахара. Но если ты нарвёшься на проблему, то не сможешь её разрулить, потому что не понимаешь, как оно в принципе работает.>нужно делать деньгиЭтот лол от всех уволенных слышу. Нагородят костылей, из-за которых 2+2 по пол минуты откликается, и рады. И потом каждые 2 года кто-то из этих начинает выкрикивать - эта система говно, надо всё заново начинать. В итоге бизнес вместо продолжения разработки и добавления новых фич на радость юзерам должен тратить 50+% времени на обслуживание говно решений и получать тонну негативного фидбека от их клиентов.
>>1664927>Мне книги плохо даютсяПревозмогай, щито поделать. Учение - боль. >не копаться в деталях от которых тебе ни горячо ни холодно.Оно и видно. Простейшие вещи тебя ставят в тупик на несколько дней из-за отсутствия базы. И как с тобой бизнес вести?
>>1664817Надо прекращать предлагать всем подряд JS, иначе он так никуда и не уйдёт. Бизнес ищет программистов -> легче и дешевле всего найти тех, кого большинство на рынке (JS) -> нанимают и делают приложения на нём -> народ видит что бизнес нанимает JS девелоперов и вкатывается -> повторить.Нам надо разорвать этот порочный круг.В видео ниже представлена попытка объяснить, почему у нас преобладает ООП, а не функциональщина. И surprise surprise javascript один из главных виновников.Для тех кто не может в англ или лень смотреть, вот основная мысль:Популярна платформа (браузер, айфон, и т.д.) - популярен язык (js, objC, swift, и т.д.).https://www.youtube.com/watch?v=QyJZzq0v7Z4
>>1664943>эти вещи надо знатьЯ что виноват что их не осуществляли с самого начала? >жс прячетЛол, ты мне повторяешь про сахарок уже десятый раз, ты серьезно думаешь жс юзеры не понимают разницу между жс и нормальным языком? Все все знают, книжки даже пишутся ака 'Вы ничего не знаете о жс'. >отпимизацияНу, хочешь более точный резльутат-делай более точно. Учи крестики и или шарп.
>>1665102Базовые алгоритмы и структуры работают и доступны из любого ЯП. И знать их обязан каждый программист.Мап - это новая обёртка, структура данных имелась в жс из покон веков.Типичный жс обыватель напишет рендеринг страницы используя чё под руку попадётся: indexOf? - зашибисьforEach? - погналикакой-то map/reduce? - а чё бы нет?Накидывает это всё в большую кучу (и побольше, побольше!), тратит на это несколько дней, в итоге страница вроде рендерится (за 5-10 сек) и даже отображает то, что бизнес просил. Демо показывается и всё это выкатывает в прод, где оно начинает то тут то там падать и на клиентских девайсах всё жутко тормозит. Бизнесу говорят что это типичный рабочий процесс, заводят баг репорты, делают новые таски чтобы немного улучшить производительность, дабы у юзеров жопы сильно не подгорали и продолжают поддерживать костыли вместо того чтобы продолжать развивать продукт.------------------------В то время как нормальный программист выполнит ту же задачу за пол дня с рендерингом в пол секунды и без единого бага. И добавлять новые фичи в такой проект намного проще, чем в типичный макакинг выше.И нет, про "без единого бага" не маня фантазии. Люди выкатывают фичи в прод каждую неделю и никаких багов может не появляться по пол года. А если они и появляются, то обычно из-за необычно жёсткого дедлайна или не типичных edge cases.Эта ваша отмазка про байтоёбство уже давно устарела. Если уж влез в профессию, то будь добр выучи азы нормально и знай как их применять.
>>1665128Ну ты прямо расписал жоско: тут жс макаки, а тут супермены xD На правах поста: вот нужно мне разделить строку на матрицу буковок. Я жмякаю по привычке .Split(''). - empy буквока. Я иду, гуглю, для этой штуки придумали аж свой метод ToCharArray(). Вот зочем.
>>1665131Не супермены, а обычные программисты. На самом деле у нас так в любой профессии. Казалось бы, если влез в профессию, то азы то знать и особенно применять их уметь то должен? Ан нет, большая часть "профессионалов" только и умеет что копипастой заниматься. Благо если хоть поверхносто понимает, что делает. Даже врачи. Даже электрики.Супермены подписывают контракты за много $$$ или выпускают крутые продукты в одно лицо.ToCharArray vs Split - и в документации и в самой сигнатуре методов всё обозначено. Один производит массив (твоя матрица) символов (буковки, лол, символов огромное множество, включая невидимые), а другой - массив строк. Строка - это обёртка (для удобства) над массивом символов. По сути это и есть иммутабельный массив символов с доп фишками. Базовый элемент, к которому применяется кодировка, язык и прочие ништяки - это символ (char).
>>1664927>стринги, аррей, лет, нумбер-интегер, нулл, андефайнед, мап и сетБля, проиграл с этого хаотичного набора.
>>1665034>почему у нас преобладает ООП, а не функциональщина. И surprise surprise javascript один из главных виновников.Это где у нас? Большая часть SPA на реакте, а там чистая функциональщина
>>1664943>>1665128Абстрактное нытье какое-то любителей структур данных. Ты приведи конкретно пример в жсе когда нужно знать эти твои азы. Я не могу представить такой ситуации чтобы в жс что-то хуево работало и чтобы решить это нужно было знать какие там чары внутри. Это другой уровень абстракции и он не должен ебать жс макаку. мимо крок
>>1618705 (OP)Почему Питон открывает на чтение любой файл, а Шарп плюется "Процесс не может получить доступ к файлу, так как этот файл используется другим процессом"?Я уже заебался, никакие решения не помогают.
>>1665263Петухон открывает только те файлы, которые не заняты другим процессом, так как это происходит не на уровне языка, а на уровне системы, которая нахуй тебя пошлет если доступ к операциям с файлом занят другим процессом. Ты скорее всего в своём говнокоде на шарпе сначала занимаешь файл, а потом пытаешься его прочитать/изменить.
>>1665271>Петухон открывает только те файлы, которые не заняты другим процессомНе пизди. Один и тот же вечно занятый процессом файл.Твой презираемый петушон открывает его на чтение простешим:with open(log, 'r', encoding = 'utf-8') as file:Решеточка обсирается даже с костылями:using (Stream stream = new FileStream(log, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { using (StreamReader file = new StreamReader(stream, Encoding.UTF8)) {
>>1665470>using (Stream stream = new FileStream(log, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))Долбоеб, показывай что ты выше по коду делаешь.
ПЕРЕКАТ:https://2ch.hk/pr/res/1665540.htmlhttps://2ch.hk/pr/res/1665540.htmlhttps://2ch.hk/pr/res/1665540.htmlhttps://2ch.hk/pr/res/1665540.htmlhttps://2ch.hk/pr/res/1618705.htmlhttps://2ch.hk/pr/res/1665540.htmlhttps://2ch.hk/pr/res/1665540.htmlhttps://2ch.hk/pr/res/1618705.htmlhttps://2ch.hk/pr/res/1665540.htmlhttps://2ch.hk/pr/res/1665540.htmlПЕРЕКАТ:https://2ch.hk/pr/res/1665540.html
Анончики, чому у меня "боди" подчеркивается, если выше указан тип переменной?Так со всеми переменными, скрипт работал у других
Анончик, привет. У меня тупой нубский вопрос.К примеру у меня есть некий enum, где все элементы имеют значения от 0 и далее по порядку. Есть ли возможность сделать неявное преобразование перечисления в тип int? Например если я хочу использовать этот enum в качестве индексов для массива и чтобы не писать каждый раз перед ним (int).
>>1675183ну вопрос на самом деле тупой, нет пиши так, можно допустим рефлексией без приведения но это ещё хуже в твоем случаи, в самой энамке не обязательно кстати индексы ставить значениям, да блять и вообще смотря где ты их используешь, иногда компилятор сам всё приводит