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

Ответить в тред Ответить в тред
Check this out!
C#/Сишарп/.NET Тред #23 /csharp/ Аноним 01/12/20 Втр 22:49:28 18704681
15992087369920.png 331Кб, 1044x1122
1044x1122
Прошлый тред >>1846539 (OP)

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

Для Докера
Dockerfile

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


Потом делаешь
docker build . -t my-app:latest
docker run -p 5000:5000 --name my-app my-app
Аноним 01/12/20 Втр 22:58:07 18704834
Аноним 01/12/20 Втр 23:03:32 18704925
test
Аноним 02/12/20 Срд 00:15:46 18705246
image.png 87Кб, 829x423
829x423
>>1870468 (OP)
Я таки тоже начал новую шапку пилить с новыми ссылками, но ОП оказался быстрее. Надо к лого добавить их новый маскот, а то у других языков в тредах есть, а у нас нет. И официальных ссылок накидать:
https://dotnet.microsoft.com/learn
https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/intro

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

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

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

Вот так решил проблему, есть ли более лаконичный вариант?
Аноним 02/12/20 Срд 06:18:30 18706199
Аноним 02/12/20 Срд 07:23:49 187063410
>>1870619
Прикольно. Только хз подходит ли оно мне.
Ну, просто, допустим вот такой вот сценарий. У меня есть апи-контроллер. На этапе разработки я хочу логгировать всякие обращения в этом контроллере, но после того как закончится разработка - это уже не надо будет, а нужно будет что-то другое, например, трафик по разным API чтобы знать где у нас больше всего обращений, чтобы как-то в будущем оптимизировать это все. Так вот, я не хочу передавать логгер напрямую в какой-то контроллер и штуку для подсчета трафика, я бы хотел просто их написать, и чтобы они своими делами сами занимались когда в контроллере происходит событие. В примере я не понимаю как это будет происходить, может быть я просто тупой. В моем решении - лично мне - все понятно, я сделал нужный мне INotifier, сделал слушателей, передаю в контроллер инстанс этого INotifier'а, он пингует, слушатели тоже получают инстанс и делают свои штуки когда получат уведомление.
Аноним 02/12/20 Срд 12:21:33 187075211
>>1870604
>что со всей этой DI дрисней довольно сложно использовать события обычные.
не совсем верно. Просто внедрив DI jни используются точно так же. Ведь в базисе IoC просто автофабрика
Либо обычные события, либо всякие *Listener/Subsciber/Receiver<T> и Subscribe(this)
Разница в том, что все, на что нужно подписаться, теперь должно быть по хорошему просунуто в конструктор, а не мы сами за ними ходим. Но и это не проблема, ведь IoC все это сам прокинет за нас.

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

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

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

Но это решит только момент "подписываемся в конструкторе и отписываемся в диспозере" (не вижу чтобы это решало "нужно подписаться отписаться много раз за время жизни компонента). К тому же раз мы не можем отписаться в диспозере, то тот, кто нас подписал, обязан знать наше время жизни чтобы отписать. А это не вкрутить, если не использовать концепцию lifetime (скоупы в IoC, либо явные lifetime)
Аноним 02/12/20 Срд 16:44:34 187094912
>>1870468 (OP)
Аноны, кому нехуй делать - въебеньте
RSABigInteger: https://github.com/username1565/BigInteger.js/commit/2b2057db04a32996247f2d1182511b6f2fe82395
куда-нить сюда:
https://github.com/bazzilic/BigInteger/blob/master/BigInteger/BigInteger.cs
А то RSACryptoServiceProvider не позволяет подписывать
данные произвольной длины, приватным ключём,
а здесь, двумя функциями, и подписывать и шифровать можно, байтовые массивы,
причём как приватными так и публичными ключами.
Ну и пофиксить бы, и оптимизировать весь этот код,
а то пиздец как распидарасило на кучу строку, что я аж сам хуею.
Аноним 02/12/20 Срд 19:03:26 187115213
image.png 8Кб, 407x197
407x197
Реквестирую строчную помощь!

Аноны, переговорил с босом на работе, и решил таки перекатываться на MVC (на мой страх и риск), И ТУТ я сразу же словил маслину в задницу, при попытке юзнать создание вида посредством автогенерации (addView) получаю пикрил, я вообще не понимаю чего оно хочет, проект абсолютно пустой и дефолтный за одним исключением, в работе мы используем devexpress, собственно есть подозрения на него, но я не знаю как это фиксить,
Аноним 02/12/20 Срд 19:04:10 187115414
>>1871152
А забыл сказать что речь идет о среде .net core 3.1
Аноним 02/12/20 Срд 19:18:58 187116915
Аноним 02/12/20 Срд 19:25:31 187117116
Screenshot1.png 60Кб, 875x565
875x565
>>1871169
В Visual Studio Installer "ASP.NET и разработка веб-приложений" добавлена?
Аноним 02/12/20 Срд 19:30:05 187117617
>>1871171
мне кажеться если бы у него не было этого элемента он бы тупо не мог создать проект мвс в котором у него вылезла эта ошибка, имхо
Аноним 02/12/20 Срд 19:31:35 187117818
>>1871152
> я вообще не понимаю чего оно хочет
> проект абсолютно пустой и дефолтный
Ну так по указанному пути точно файлов нет? А если проверю?
Аноним 02/12/20 Срд 19:35:52 187118119
image.png 13Кб, 240x346
240x346
>>1871178
есть собственно тот самый контроллер на который он ругается, вся соль в том что когда создаешь представление разве создается новый контролер с таким же названием? это же бред
Аноним 02/12/20 Срд 19:52:45 187120220
image.png 35Кб, 933x646
933x646
>>1871178
Есть еще одна странность, тот чувак писал что теперь работает обычное представление и представление с devExpress, у меня же есть только одно, с devExpress
Аноним 02/12/20 Срд 19:59:32 187120521
>>1870634
Во-первых, дотнет за тебя всю эту инфу собирает по дефолту. Ты можешь подключить какой-нибудь Serilog и отправлять и логи и производительность во всякие лого агрегаторы, типа Kibana, Grafana, Azure App Insights, New Relic, миллионы их. Там тебе будут твои логи красиво групповать, выдавать отчёт по производительности и ошибках.

Во-вторых, уж очень твой юзкейс подходит под эту тулзу: https://github.com/jbogard/MediatR/wiki
У него есть IRequest и INotification.
Никаких зависимостей, кроме самого медиатра (это вообще паттерн такой) в твоих контроллерах, а дальше твой DI решит в какой конкретно Handler твой запрос отправить. Тот Handler уже будет иметь логер, репо, сервисы и прочее.
Аноним 02/12/20 Срд 20:41:11 187122522
>>1871181
Бред или не бред, но я бы на твоём месте папочку-то подчистил.
Аноним 02/12/20 Срд 20:42:42 187122723
>>1871225
ты понимаешь что я вызываю генератор кода в самом контролере, без контролерра я не могу вызвать генератор кода для этого контроллера!
Аноним 02/12/20 Срд 21:12:08 187125424
>>1871227
Значит ты где-то неправильно настроил конфиг и он пихает выходные файлы под себя. Ищи конфиг. Насколько я помню девэкспресс, у них главная фишка - гибкая настройка в инспекторе без единой строчки кода.
Аноним 02/12/20 Срд 21:25:10 187126925
image.png 75Кб, 959x509
959x509
>>1871254
Если ты знаешь ведЕкспрес скажи тогда вот что, почему в демо проекте присутствуют ошибки но не смотря на это он запускается и работает? это что за магия?
Аноним 02/12/20 Срд 21:44:55 187128526
>>1871269
ребут студии с дропом .vs лечит даже геморрой
Аноним 02/12/20 Срд 21:49:31 187128627
image.png 636Кб, 735x759
735x759
>>1871285
Да сразу весь шиндовс, чет там уже, +- 30 гигов тогда уже разницы не сыграют, вот сидел себе на вебФормах и все работало.

А если серьезно тогда я боюсь как бы мне реально не пришлось после такого ребута всю систему сносить
Аноним 02/12/20 Срд 21:50:36 187128728
>>1871285
А ничего что у меня девЕкспрес установлен не на cистемный раздел?
Аноним 02/12/20 Срд 21:53:34 187128829
>>1871286
>>1871287
вы упоротые. это папка в папке солюшена.
Аноним 02/12/20 Срд 21:55:54 187128930
>>1871288
>вы упоротые. это папка в папке солюшена.
Ага,
А ничего что девЕкспрес установлен не на cистемный раздел? Это может быть вызвано таким расположением? девЕкспрес Зависим от локации?
Аноним 02/12/20 Срд 21:57:51 187129231
>>1871289
да плевать кто куда установлен. основные проблемы из за расинхрона кода и содержимого кешей и тому подобного.
Аноним 02/12/20 Срд 22:00:03 187129332
>>1871292
Ну потому что ребут с удалением временных файлов был сделан в первую очередь, я даже на всякий пеку перезагружал, мало ли
Аноним 02/12/20 Срд 22:02:09 187129533
>>1870468 (OP)
9 вакансий на ждуна, так еще и конкурировать с вышкоблядями за миску риса на легаси, ну пиздец. И это в дс. Пока два отказа, ожидаю что с остальными откликами...
мимо вкатун из техподдержки
Аноним 02/12/20 Срд 22:06:34 187129934
>>1871293
ну мне обычно хватает только удаления .vs
остальные кеши у меня на рамдиске и не переживают ребуты.
один раз пришлось переставить студию
2 раза решарпер

где именно стоит студия и другой софт - никогда значения не имело.
Аноним 02/12/20 Срд 22:16:05 187130935
Аноним 02/12/20 Срд 22:19:07 187131536
>>1871309
Я не знаю. Зачем платный девэкспресс, когда есть бесплатная Авалония! Авалония! Скачай Авалонию! Юзай MVVM!
Аноним 02/12/20 Срд 22:20:13 187131937
Аноним 02/12/20 Срд 22:25:31 187132338
>>1871315
у него ж въеб проект
Аноним 02/12/20 Срд 22:50:19 187135339
>>1871319
.net core же работает на Windows server правда? ну он ведь кроссплатформенный, было бы глупо если бы не работал... просто у меня даже их демо не работают, .net framework работает ок, а вот кор нет...
Аноним 02/12/20 Срд 22:52:09 187135740
>>1871353
Ну это уже слишком толсто.
Аноним 02/12/20 Срд 22:59:01 187137541
image.png 136Кб, 1594x824
1594x824
>>1871357
Я тоже думаю что меня затролили, такого ведь не бывает
Аноним 02/12/20 Срд 23:00:36 187137842
>>1871375
Небось и девексы ворованые, да?
Аноним 02/12/20 Срд 23:04:04 187138443
>>1871378
НЕТ, честно взят трайал с последующей покупкой в перспективе, взят отсюда

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

Когда мне дадут нормальный уже не будет времени разбираться поэтому пытаюсь сейчас в свободное время
Аноним 02/12/20 Срд 23:48:43 187141744
>>1871202
А как вы вообще дошли до смеси C# и S/4Hana?
Аноним 03/12/20 Чтв 00:23:39 187144545
>>1871417
А мы и не доходили, то что я смотрю это демо девекспреса, раньше я на вебформах сидел, мне на дваче объяснили что я не прав и я таки попросился в кор, мне сказали что знаний по кору у меня нихрена поэтому буду пока с вебекспресом работать, а он не работает нихрнеа, фремворк работает а кор нет
Аноним 03/12/20 Чтв 00:26:28 187144846
image.png 101Кб, 995x611
995x611
>>1871417
кстати не все демки кора не работают, некоторые работают, а тот который мне надо нет, собственно пикрил
Аноним 03/12/20 Чтв 06:54:21 187152047
За 2 года работы столкнулся с тем что из проекта в проект пишу маленькие методы расширения и уже не представляю как без них писать.
Ну, например, оч удобный метод расширения для хоста для "засеевания" базы и миграции, инизиализации всяких синглтонов, либо проверка строки на пустоту, ну и всякие Guard'ы, чтобы можно было валидацию удобно провести.
Ну, я из проекта в проект папочку ношу.
И тут я задумался. А вдруг я хуйню делаю? Ну, типа вот есть несколько проектов, в одном эта папочка, а перенес в другой проект, в этой папочке добавилось пару новых методов. Перенес в третий там тоже добавилось. Может быть стоило бы это все таки в библиотеку оформить? А то нужно будет вернуться в старый проект, я опять эту папочку потащу. С другой стороны это полностью утилитарная библиотека, там нет классов, нет ООП, все методы это либо расширения, либо статические. С третий, если оформлять как библиотеку, то тут уже нужно будет более ответственно подходить, не менять внутренности под конкретные нужды, чтобы не поломать то что использует библиотеку.
Аноним 03/12/20 Чтв 13:33:25 187168548
>>1871520
Как вариант: Оформи нугет-пакет, опубликуй и подтягивай в свои проекты. Когда добавляешь новую утилиту - обновляешь пакет на сервере.
Аноним 03/12/20 Чтв 15:46:07 187181549
>>1871520
локальные нюгет либы тоже никто не отменял
Аноним 03/12/20 Чтв 17:38:30 187192750
>>1871375
А при чем здесь неткор и ос? Или ты даже не в состоянии понять сообщения об ошибке и исправить причину?
Аноним 03/12/20 Чтв 19:36:10 187206351
>>1871927
Какая ошибка болезненный, это демо девекса, я пробовал на другой пеке все работает, собственно задал закономерный вопрос, может ли влиять ось
Аноним 03/12/20 Чтв 19:39:06 187206952
>>1872063
>какая ошибка
>Exception Exception

Ясно. Пиши в саппорт девекса. Самое смешное, что ошибка в SampleData, т. е. в данных которые там в качестве примера, но вместо того чтобы посмотреть в код, долбоеб бежит на двач со своими умозаключениями про ОС.
Аноним 03/12/20 Чтв 19:42:07 187207553
>>1872069
Чел, ты понимаешь что SampleData они тоже сами представляют, оно должно работать с коробки, оно везде работает кроме сервера, разве мой вопрос о совместимости оси не закономерный в таком случае? или ты на полном серьезе хочешь что бы я полез дебажить и править демо пример?
Аноним 03/12/20 Чтв 19:50:14 187209054
>>1872069
Ну и да, если ты читал предыдущие посты я писал что я этот же проект с ЭТИМИ ЖЕ ДАННИМИ запускал на фремворке, и там проблем не было, то есть проблема именно в кор версии проекта, что я и спросил, а ты рассказываешь мне что я там что-то дебажить в данных должен
Аноним 03/12/20 Чтв 21:20:22 187219755
>>1870468 (OP)
Нахуя нужен core? Есть одно несложное wpf приложение, нужно "портнуть" на asp.net сайт. Я думал что core нужен для кроссплатформености, а мне как раз нужно было бы захостить на линуксе asp.net сайт, но зашел только что и почитал что на апаче есть мод - mono по типу шиндосовского iis, который позволяет захостить проект.
Какие подводные и в чем лучше core?
Аноним 03/12/20 Чтв 21:34:36 187221656
>>1872197
>Нахуя нужен core?

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

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

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

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

Не знаю, но беглый взгляд по описанию этого mono нашел на это:
>Under high load, mono process consumes a lot of memory, website stops responding
>These symptoms have been reported, but their underlying causes are not known. Set the MonoAutoRestartMode, MonoAutoRestartRequests, MonoMaxActiveRequests, and MonoMaxWaitingRequests directives as described earlier to limit the lifetime of the mono process and to restrict the concurrency happening in the server.
Аноним 03/12/20 Чтв 21:36:31 187222357
>>1872197
К тому же стоит упомянуть что Core производительней.
Аноним 03/12/20 Чтв 21:44:42 187223958
>>1872197
кора больше нет, моно больше нет, теперь это всё под одной крышей под названием .NET 5.
IIS тоже больше не нужен, теперь всё по умолчанию хостится на Kestrel.

Смотри сюда чтобы узнать как создать проект и запустить его на любой ОС через Kestrel -> >>1870480
Аноним 03/12/20 Чтв 21:48:06 187224459
>>1872090
Со времён фреймворка куча системных АПИ поменялась. Один и тот же пример не сможет запустится и там и там без изменений. Если ты скачал пример конкретно под какую-то из версий кора, и пример у них под эту конкретную версию кора, и у тебя эта версия установлена, то у них в примере тогда ошибка и скорее всего во входных данных.
ОС и дотнет тут вообще не причём. Обращайся в девэкспресс или как их там вообще хз чё это такое
Аноним 03/12/20 Чтв 21:49:03 187224660
>>1872244
и данные у них под эту конкретную версию
быстрофикс
Аноним 03/12/20 Чтв 22:02:01 187226161
>>1872244
По поводу версии кора, у примера версия 2.1, у другого примера которій работает 2.1, на компе где примеры работают 2.1, и на сервере где нужный мне пример не работает тоже 2.1, почему я думаю что ось ТЕОРЕТИЧЕСКИ может быть причем потому что ошибка типизации, а значит например на оси может использовать другая культура даты, локализация, все это зависит от оси, я правда вот что скажу, один и тот же проект на разных машинах имеет разные хеши, я думаю это не должно так быть
Аноним 03/12/20 Чтв 23:14:40 187230362
>>1872261
Ну опять всё упирается в этот девэкспресс. У них там какой-то метод с датой, в котором они вполне могли не учесть всякие локализации с форматом даты/времени.
Аноним 03/12/20 Чтв 23:20:08 187230563
>>1872303
> девэкспресс
Что за пунктик на этом девэкспрессе? Насяльнике деньги некуда девать? Пусть он лучше тебе премией их выдаст, а ты сваргань приложуху на авалонии.
Аноним 03/12/20 Чтв 23:20:19 187230664
image.png 14Кб, 1116x154
1116x154
>>1872303
Ну так ясно что не в гугл, но вот чем именно вызвана ошибка я это пытался узнать, я тут все таки сравнил исходники и вот что получил, и я просто не понимаю почему данные отличаются в двух одинаковых демках, причем вписаны они нативно, тоесть не культура дат тут виновата, а то что нативно вписано не правильные даты, я просто без понятий
Аноним 03/12/20 Чтв 23:22:42 187230965
>>1872305
В том что можно нанимать программистов более дешевого класса и один раз заплатил за девексперсс ты экономишь на зарплате программистам, хотя кстати я говорил шефу что да хуй с ним с этим девекспресом я перекачусь на мвс без него, мне ответили что это уже вопрос поддержки ранее сделанных проектов
Аноним 03/12/20 Чтв 23:28:20 187231166
>>1872309
> можно нанимать программистов более дешевого класса
Маркетинговая лапша девекспресса. Поздравь своего насяльнику от меня - он на эту лапшу купился.
Аноним 03/12/20 Чтв 23:31:22 187231367
>>1872311
А что? ты думаешь нельзя? что бы юзать девекс даже программистом не надо быть, копипаст и презентуешь насальнику с важным видом, хочет девекс пускай будет девекс, я найду куда свободное время потратить
Аноним 04/12/20 Птн 06:29:11 187245868
image.png 16Кб, 955x91
955x91
Я спокоен.
Аноним 04/12/20 Птн 11:19:30 187253569
Подскажите позязя по бест практисам, так сказать.
Я создаю приложение, которое работает в фоне, выкидывает иконку в трей, из контекстного меню иконки можно показать форму настроек.
1) По инициализации приложения. Есть класс формы, есть класс трея. Сначала я создаю трей, потом создаю окно. Прописываю в событие завершения приложения анонимную функцию, которая прячет трей-иконку. Пробрасываю ссылку на форму в трей (для манипулирования ею из трея). Запускаю майнлуп методом Run приложения. Всё верно делаю?
2) По знаменитому функционалу "сворачивание в трей" возник головняк. Ссылка на форму пробрасывается в трей-объект как Form, то есть, нет никаких дополнительных свойств, которые я нахуевертил. А нахуевертил я свойства bool CanHideInTray, bool CanClose, первое говорит окну, может ли оно вместо минимизации просто исчезнуть, второе говорит ему же, может ли оно при нажатии на крестик минимизироваться, а не закрыться. В сочетании с первым второе работает на исчезновение вместо закрытия. Я бы мог пробросить сабкласс MyConfigForm в инстанс трея, но я планирую несколько формочек, которые будут динамически меняться по ходу развития ситуации, пробрасываться к трей-объекту и он уже действующей формочкой будет манипулировать. Поэтому я сделал интерфейс ITrayedForm, в котором описал все нужные мне флаги, которых я напихал в форму. Затем я прописал форме, что она реализует этот интерфейс. После чего, в трей-объекте я создал два ридонли свойства, первое типа Form, которое отдаёт прилинкованную форму, если есть, второе интерфейса ITrayedForm, которое проверяет, прилинкована ли форма вообще, затем смотрит, форма is TrayedForm и если да, возвращает имеющийся инстанс, скастованный на этот интерфейс. Так вот, потом в коде мне приходится работать с двумя переменными, в первой свойства формы, во второй свойства велосипедного интерфейса. Правильно ли я делаю? Нет ли способа проще?
Аноним 04/12/20 Птн 12:27:15 187258370
>>1872458
И что вам дал этот дутнет 5? Я хайпа вокруг него не заметил, чего ждали непонятно.
Аноним 04/12/20 Птн 12:34:35 187259771
>>1872583
Как что? Как это что?
Аноним 04/12/20 Птн 12:51:32 187261672
>>1872583
Мы любим всё новое. Обновления венды накатываем в день релиза. Вот у тебя какой апдейт десятки 20Н2 я надеюсь?
Аноним 04/12/20 Птн 13:01:22 187263373
>>1872616
>Мы любим всё новое.
Двачую. Новая циферка (на этот раз даже больше чем у .net framework), более лаконичное название (без кора) — уже классно.
Аноним 04/12/20 Птн 17:43:13 187292974
>>1872535
Ну, я хз за бест практис, но я бы делал так: 1 основное приложение - виндовый сервис. 2 ui - обычная форма, из нее при выходе шлёшь сервису сообщение, например, о выключении, ждёшь пока состояние сменится на stopped и закрываешь формочку. Ну и настройки всякие, перезапускаешь сервис и все такое.
Аноним 04/12/20 Птн 17:46:01 187293775
>>1872929
Подумаю над этим. Спасибо! А иконка в трее к кому должна относиться, сервису или приложению?
Аноним 04/12/20 Птн 18:57:23 187305976
Я вот ебанул такой вот велосипед:
У меня есть очередь, в которой лежат Func<CancellationToken, Task>. Есть семафорчик, есть работники, они когда в очереди что-то появляется - тащат оттудова. Такой велосипед я придумал чтобы ограничить число одновременных задач, чтобы сервер если куча запросов которые долго выполняются, был доступен для быстрых обращений. Так вот, я боюсь что в реальных условиях всплыват какие-то подводные камни. Потому предложите способ лучше.
Суть самого приложения - мониторинг состояния устройств, клиент может отослать запрос на чтение, устройство может ответить, а может и не ответить, потому там есть таймаут на отсет, который казывает клиент. Ну, чтобы в случае если куча клиентов разом читать ломанется, я это фигнию и придумал, потому что даже с стандартной асинхронностью, в случае если на пеке обычной запустить 10 клиентов и послать запрос на чтение всех параметров устройств(а их, в среднем, у устройств в районе 10к), все начинало тормозить, клиент не мог к апишке обратиться и вообще. Как нормальные люди это решают-то?
Аноним 04/12/20 Птн 19:12:19 187306777
>>1873059
А нет никакой разницы между вариантами
1 у тебя список фанков и ты следишь за тем, чтобы не больше лимита работнички брали
и
2 у тебя нет никаких фанков, но есть семафор и все делают все что им надо, но семафор залимитирует то, что нужно лимитировать - по факту та же очередь, только неявная + семафор
Аноним 04/12/20 Птн 19:17:52 187307078
Аноним 04/12/20 Птн 19:36:34 187308879
>>1873067
Ну, просто тут в чем проблема. Количество возможных одновременных работ остается либо за мной(я ебану константу), либо за тем кто настраивать сервер будет(я вынес настройку в конфигурацию, одмен может поменять число). Оба варианта мне кажутся говном в этом плане, типа блин, если клиентов не так много, то можно было бы и пожрать больше ресурсов, а если много - пусть задачи на чтение подождут, таки основная цель - смотреть что уже есть, а почитать большую часть параметров можно и в 2 часа ночи, когда нагрузка поменьше должна быть.
Вот и я думал, может быть есть какие-то более правильные способы это все делать. Конечно, я могу изъебнуться и свою хреновину для анализа запилить, которая будет в реальном времени ограничивать число работников, а когда ресурсы появляются - создавать новых, но это выйдет долго и сложно, да и не уверен что затраты по времени стоят того чтобы неделю-две ебаться с этим.
Аноним 04/12/20 Птн 19:44:09 187309280
Аноним 04/12/20 Птн 19:44:24 187309381
>>1873088
да какая разница сколько клиентов. Они упрутся в ограничения тред-пула (которые для I/O), что несомненно много или ты им дашь синхронизацию в которую они упрутся - TaskScheduler (на любителя) или семафор. Не хочешь делить семафор между всеми - пусть они не тащат из твоего "оттудова", а, наоборот, кладут туда свои фанки, чтобы они выполнялись лимитировано
и вот там можешь измерять фазы луны (ну а что еще) и на лету менять лимиты.
Аноним 04/12/20 Птн 20:09:18 187310282
>>1873070
а зачем ты вообще это делал. бигинтегеров разных что ли мало
Аноним 04/12/20 Птн 20:21:13 187311583
>>1873059
Зачем тебе семафорчик? Делай все задачи асинхронными, CLR сама распределит ресурсы по мере необходимости. Те которые будут выполнятся долго запускай с опцией TaskCreationOptions.LongRunning.
Аноним 04/12/20 Птн 21:44:54 187316884
>>1873092
Пасиб, оч приятно. :3 Рили, я долго с этим пердолился.
>>1873102
Изначально, у меня, стоял вопрос в том, как бы - зашифровать трафик в локальной сети,
при передаче JSON-постов наноборды, от сервера к клиенту, и на клиенте дешифровать его.
Потому что, даже в локальной сети, могут быть натыканы снифферы, жучки, и анальные зонды всякие,
а JSON, он же, открытым текстом - он прёт по HTTP.
Поэтому, я создал тред о полуанонимной аутентификации, здесь: https://arhivach.net/thread/628790/
и сам же, пришёл к вот такой вот схеме: https://arhivach.net/thread/628790/#1839162
Где юзается RSA.

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

А ещё, до этого, вот сюда подумывал всунуть это: https://github.com/username1565/rsaVault/issues/3
Потому что там тоже подпись не пашет нихуя, только шифрование публичным, и дешифрование приватным ключем. Это нихуя не рса.
Аноним 04/12/20 Птн 22:04:53 187318085
Аноним 04/12/20 Птн 22:36:54 187320186
>>1873168
>я не нашёл ни одного, который позволял бы шифровать данные
> приватным ключём, и дешифровать публичным,
Вот тут уже стоило задуматься.

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

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

Аноним 05/12/20 Суб 07:01:43 187331287
>>1873201
Тащемта, всё гораздо проще...
RSA-операция по подписи данных, приватным ключём, эквивалентна шифрованию данных приватным ключем, сообщения, внутрь подписи.
Проверка подписи, эквивалентна дешифрованию сообщения, но ключем публичным, извнутри подписи, с последующим сравнением сообщений.
Да, это туповатая операция, потому и не испльзуется, ведь байтовая длина подписи равна длине сообщения, поэтому используется хэш от сообщения - он короче. Однако хэш имеет коллизии, и ваша подпись не подпись. А тут таки-подпись.
Такие дела.
Аноним 05/12/20 Суб 07:24:54 187331488
>>1873180

Тем что CA сотрудничает с тащмайором.
Аноним 05/12/20 Суб 13:14:37 187341089
Чет мне кажется что Fluent - какая-то хуета. Как минимум из-за того что я должен полгаться на то что там никакой магии нехорошей не происходит. Ну, т.е. да, LINQ с ним довольно удобно и все такео, но это майкрософты делали, если они там что-то наворотят, это не моя проблема, я вполне могу использовать и остальные штуки языка. Но когда какой-то чел в своей библиотеке или вообще в проекте делает что-то с Fluent во мне параноик просыпается, вдруг там что-то нахуевертили, вдруг там пересоздание объектов, вдруг еще что-то, я начинаю все равно весь этот Fluent разбивать на отдельные вызовы методов, потому что хуй знает, а так хотя бы увижу строчку где конкретно хуйня начинает происходить. Опять же, некоторые долбоебы проектируя такой интерфейс леняться нормально декомпозировать всю хурму и ты должен вызывать методы в строгом порядке.
Короче, не знаю, что думаете обо всех этих Fluent Interface'ах?
Аноним 05/12/20 Суб 13:19:11 187341390
>>1873314
>сотрудничает с тащмайором
Словно что то плохое
Аноним 05/12/20 Суб 13:19:48 187341591
>>1873410
Думаю, что ты параноик, а LINQ - хуйня. Почему хуйня? Работает пиздец как медленно, аж в х10 раз, чем старым дедовским способом. Не защищает от долбоебов как ты, которые вместо передачи лямбды в FirstOrDefault, хуевертят Where, а потом пустой FirstOrDefault.
Аноним 05/12/20 Суб 14:52:04 187349192
>>1873312
>эквивалентна
Нет. Иначе бы результат операции для одинаковых входных данных всегда был бы одинаковым.
А подпись данных дает различный результат от раза к разу, хотя результат не уникальный, а закономерный, просто не единичный.
То есть 2 разных строки могут быть подписью одних и тех же данных.

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

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

Аноним 05/12/20 Суб 15:22:00 187351493
>>1873491
>>эквивалентна
>Нет. Иначе бы результат операции для одинаковых входных данных всегда был бы одинаковым.
Так он и есть одинаковый, этот результат (подпись),
если данные подписывать именно так, как описано здесь: https://ru.wikipedia.org/wiki/RSA#Цифровая_подпись
>s = m^d mod n; где m - подписываемое сообщение, d - секретная экспонента, n - модуль, s - подпись, (d, n) - приватный ключ.
Но битовая длина сообщения s получается, порядка битовой длины сообщения m, к тому же и m надо передать в паре (m, s),
а это уже - две битовых длины m. Поэтому, оно и непрактично, как-бы, и проще подписать hash(m), а не m.

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

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

>А шифрование публичным и дешифровка приватным не используется
Оно используется, и по дефолту, енкриптит - пабом, а декриптит - привом.
А вот наоборот - нельзя сделать, заенкриптить привом, и декриптнуть - пабом.
>А шифрование публичным и дешифровка приватным не используется
>по причине того что операция небезопасна, если ты кому-то дал приватный ключ
>то сообщение сможет расшифровать любой
Нахуя кому-то дать приватный ключ, если это - ПРИВАТНЫЙ, блять, ключ?
>хоть и не сразу, но это операция становится возможной.
Может ты имел в виду публичный ключ, а не приватный?
Ну да, декрипт возможен, в долгосрочной перспективе, если факторизовать n, на два простых,
что сводится к довольно сложной - задаче дискретного логарифмирования в кольце вычетов по простому модулю:
https://ru.wikipedia.org/wiki/Дискретное_логарифмирование#В_кольце_вычетов_по_простому_модулю

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

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

>и опять же смысла 0
>так как в конечном итоге
>все хранится на машине пользователя
>и в обоих случаях доступ к ключу есть только на машинах пользователей.
Тут не очень понятно, что ты хотел сказать.
Смотри, короче.
Есть сервер, он стоит на машине пользователя,
там хранится только приватник и данные, скажем - база постов наноборды.
Паб, этот сервер - он отдаёт в паблик, расшаривает, этот паб - прешаренный (pre-shared).
Рандомный клиент, желающий подключиться к серверу, анонимно,
зная pub-сервера, генерирует пару своих ключей,
затем - обмениваются по той схеме общим ключём симметричного шифрования, и гонят в обе стороны - шифр.
Снифферы - сосут, митмщики - сосут.
Аноним 05/12/20 Суб 15:59:34 187355294
.png 7Кб, 371x236
371x236
Вопрос на про шарп, а про студию.
Не смотрите на то что коде делает, это просто пример.
В общем, можно ли как-то в студии настроить так, чтобы студия автоматически как в варианте с 'a' форматировала?
Просто по дефолту она как b делает, а если я хочу как a - вторую строчку каждый раз вручную приходится пододвигать, дальше уже нормально.

Ну и еще вопрос, как блин сделать чтобы intellisense только если я какую-то клавишу жмакну работал, например tab. Очень странно просто эта фигня себя ведет в лямбдах, я пишу "(x" а он мне каждый раз какую-то хрень вставляет, каждый раз я вынужден это добро отменять. Не то чтобы прямо жить невозможно, но пиздец раздражает.
Аноним 05/12/20 Суб 16:21:29 187359195
Screenshot1.png 6Кб, 614x183
614x183
>>1873552
>Ну и еще вопрос, как блин сделать чтобы intellisense только если я какую-то клавишу жмакну работал, например tab.
Называется Toggle suggestion/completion mode, но включать её приходится каждый раз при запуcке Студии, по-другому вообще никак. Не знаю что это за ебанатство такое. Я им в поддержку уже не раз про это писал, игнорят.

Здесь кто-то предложил это исправить, и бот ответил что якобы исправлено, но это ложь
https://developercommunity.visualstudio.com/content/problem/712824/intellisense-toggle-completion-mode-should-persist.html
Аноним 05/12/20 Суб 20:39:30 187374796
>>1870468 (OP)
Можно ли кодить на связке js+css+html на фронте и c# на бекенде?
Аноним 05/12/20 Суб 20:49:37 187375497
>>1873747
Да, только не забудь побольше var в шарповом коде вписать.
Аноним 05/12/20 Суб 21:06:19 187376498
Не совсем вопрос по сишарпу но все же.
Пытаюсь сделать парсер постов с каналов.
И шота сразу затуп.
Куда слать то запросы в апи телеграм? Не в бот апи, а именно в атпи телеграм.
В бот апи это понятно сразу есть ссылка https://api.telegram.org/bot<token>/METHOD_NAME а в Telegram API в нет нихуя

Чи я просто тупой?
Вобщем анончике помогите, куда слать запросы то?
Аноним 05/12/20 Суб 21:12:27 187376999
Аноним 05/12/20 Суб 21:36:59 1873782100
image.png 97Кб, 620x332
620x332
image.png 29Кб, 499x251
499x251
image.png 50Кб, 512x193
512x193
image.png 31Кб, 550x340
550x340
>>1873180
>А HTTPS чем плох?
Так его же поднимать надо. Это во-первых.
К тому же, этот >>1873314 , может быть вполне себе прав,
и нет гарантии того, что CА не наёбут,
ведь удостоверяющий центр (Certification authority, CA),
может попросту подписать левый сертификат,
после чего, возможен будет MITM, с перехватом трафика.
Пикрил.

>>1873413
А что хорошего в зондах и дырах от "спецслужб", хрен знает из кого состоящих?
Аноним 05/12/20 Суб 21:37:32 1873784101
>>1873769
Шарп же, JS-подобный, не?
Аноним 05/12/20 Суб 21:39:43 1873785102
>>1873747
Разрешаю. в чём сомнения то, блять?
Аноним 05/12/20 Суб 21:54:42 1873790103
image.png 173Кб, 994x467
994x467
>>1873782
>А что хорошего в зондах и дырах от "спецслужб", хрен знает из кого состоящих?
Это мировая практика
Аноним 05/12/20 Суб 22:03:21 1873795104
>>1873790
Этот дегенератизм - результат капиталистической централизации, в процессе монополизации рынка.
А в децентрализованных сетях, без центров, такая хуйня не канает.
Аноним 05/12/20 Суб 22:38:27 1873820105
>>1873795
>А в децентрализованных сетях, без центров, такая хуйня не канает.
У них куча своих проблем
Аноним 05/12/20 Суб 23:09:46 1873846106
Аноним 06/12/20 Вск 00:32:56 1873879107
>>1873820
> У них куча своих проблем
В отличие от вышеописанных проблем, проблемы децентрализации вполне приемлемы.
Аноним 06/12/20 Вск 03:39:41 1873988108
>>1873168
>Изначально, у меня, стоял вопрос в том, как бы - зашифровать трафик в локальной сети,
>при передаче JSON-постов наноборды, от сервера к клиенту, и на клиенте дешифровать его.

Вот эту бы шнягу шифрануть асимметрией, по MITM-защищённой схеме (поверх HTTPS и TOR):
https://github.com/username1565/nanoboard/blob/8f0edd8d02b9f680f7ce1f70ddd29b8f7c367110/nanodb.exe-source/Server/DbApiHandler.cs#L40
а потом уже можно наделать кучу серверов в TOR'e и в локалках,
чтобы они ещё и синхронились между собой, беспалевно.
Тогда наноборда будет ваще неуязвимой, походу (потому что база децентрализирована, а центры - хуй знает где), и всегда онлайн.
Аноним 06/12/20 Вск 05:28:48 1873995109
>>1873782
>>1873314
Вы главное шапочку из фольги поправлять не забывайте.
Аноним 06/12/20 Вск 05:39:31 1873998110
>>1873415
https://www.youtube.com/watch?v=Dv_nsoEmC7s
Посмотри все серии. А ещё учти, что он кор в пример приводит. В NET 5 линк ещё больше подшаманили. Например Any() выполняется как надо, без енумераторов.

Короче Linq на производительности особо не отражается. Старый дедовский метод (а скорее всего вообще всякий разный страшный хакинг) надо будет только для хайлоада для узких мест применять.
Аноним 06/12/20 Вск 05:54:40 1874001111
>>1873552
Я такой опции не нашёл. Даже решарпер не может. Но после того, как ты задашь отступ первой строчке, остальные строчки студия должна сама подстроить.
Надо чтобы кто-то такой code style fix запилил.
Аноним 06/12/20 Вск 05:55:59 1874002112
>>1873747
любому бэкэнду пофигу, чё там у тебя на фронтенде.
Аноним 06/12/20 Вск 07:35:07 1874018113
>>1873998
Когда там TakeLast переделают так чтобы он не проходил по всему массиву и брал только последние значения, а начинал с конца?
Аноним 06/12/20 Вск 09:51:22 1874054114
Хм, а как настроить так чтобы Vue'вский фронтенд отдавался из приложения которое я начал как WebApi.
Просто сначала делал их обособленно, и на время доработки Api для фронтенда использовал ноду, в коде запросов просто прописал адрес куда слать. Теперь вот хочу чтобы просто запустил екзешник и, например, сервер на 80 порте висит, я делаю запрос на этот 80 порт, и мне отдавалось то что там на Vue написано, а в коде для фронтенда я бы не полный адрес писал, а типа: 'api/v1/Что-то что мне нужно'. Ангуляровский проект же как-то так делает, но я не сильно разбираюсь и не знаю как сделать так же для vue. Ну, т.е. концептуально я понимаю, я должен как-то прописать чтобы при сборке запускалась и сборка фронтенда, потом я копировал бы то что собралось в папочку, допустим www, и при запросах к сайту я бы отдавал index.html, но вот как это делается ручками я чет не совсем понимаю.
Аноним 06/12/20 Вск 11:44:33 1874091115
>>1873998
Слабоватенько и я это видео видел. Вот чуть лучше https://youtu.be/W64C3FsxjXE

Старый дедовский способ - обычный фор.
Аноним 06/12/20 Вск 11:50:35 1874099116
>>1874054
Безобразие. Мне, как серпом по яйцам, когда я вижу, когда приложения с интерфейсом работают как веб-сервис с локальным веб-сервером. Как побороть этот импринтинг, подскажите зумераны?
мимо дед-дельфист, формошлёп
Аноним 06/12/20 Вск 13:48:19 1874193117
Писать или не писать I у интерфейсов? С одной стороны - все пишут. С другой - хуй знает зачем. ИДЕ подсветит, называть интефейс и имплементацию одинаково - дурной тон, и вообще сейчас модно интерфейсы вообще в отдельный неймспейс отправить.
Вот и не знаю я. Лично я бы не писал, но все пишут, и я пишу.
Аноним 06/12/20 Вск 14:08:26 1874206118
>>1874193
Хочешь как в плюсах? 100500 либ с 100500 стилей, круто ведь, когда в проекте 100500 разных стилей из-за либ. И гитхаб не подсвечивает, а код ревьювить надо.
Аноним 06/12/20 Вск 14:11:31 1874207119
1607253086982.png 400Кб, 720x400
720x400
>>1874206
>>1874193
А раньше ещё и у классов Т писали вначале. Потому что тип. Т в дженериках оттуда потянулось. Но сейчас не пишут. Так что, глядишь ещё два-три поколения и I в интерфейсах перестанут писать.
Аноним 06/12/20 Вск 14:30:57 1874217120
>>1874207
Блин, так ведь правильно же. Почему-то вот сейчас венгерская нотация не считается чем-то хорошим, писать прификсы-суффиксы тоже не поощряется, а вот у интерфейсов осталось.
Аноним 06/12/20 Вск 14:34:37 1874218121
>>1874217
Это вопрос соглашений, как верно заметил анон выше. Следуешь принятым соглашениям - испытываешь удобство при коллаборации. Вот и вся суть.
Аноним 06/12/20 Вск 20:16:54 1874556122
Аноним 07/12/20 Пнд 01:21:43 1874718123
Есть тут C#/OCaml шизоиды? Начал писать тесты на xUnit/F#, вставляет очень хорошо, чувствую себя как на спидах.
Аноним 07/12/20 Пнд 02:25:04 1874740124
>>1874718
Тесты для сишарпо кода на фшарпе? И чем оно лучше за тесты на сишарпе? но звучит интересно. Давно хотел попробовать фшарп, так как немного хаскель знаю.
Аноним 07/12/20 Пнд 15:00:12 1874939125
Аноны, говорил только что с клиентов, тот посмотрев мой код сказал что ему не нравиться концепция работы с базой данных через entity framework core, так вот... а что есть другие способы работать с базой в .net core?
Аноним 07/12/20 Пнд 15:19:07 1874948126
>>1874939
Дедовский метод ещё есть.
Аноним 07/12/20 Пнд 15:19:39 1874949127
>>1874939
Напрямую через SQL запросы. Есть еще не реляционные бд, с ними можно без sql работать.
Аноним 07/12/20 Пнд 15:19:47 1874950128
Посаны, посоветуйте стейтмашину. Кто какими ассетами пользуется?
Аноним 07/12/20 Пнд 15:34:28 1874955129
>>1874949
Это как "напрямую"? я если честно слабо себе представляю как это должно работать.
Аноним 07/12/20 Пнд 15:37:02 1874957130
>>1873070
Чё-то EncryptFile как-то хуёво тупо срабатывает. Надо фиксить.
Аноним 07/12/20 Пнд 15:38:12 1874959131
>>1874955
Ну так изучи матчасть по реляционным СУБД, чо ты? Некогда?
Аноним 07/12/20 Пнд 15:39:39 1874961132
>>1874959
Ну я понимаю как писать запросы в самом "ссмс" но я не понимаю как писать такие же запросы из под дотнета
Аноним 07/12/20 Пнд 16:16:28 1874989133
>>1874961
Я может сейчас напишу неправильно, ибо знания у меня устаревшие. Пусть более знающие поправят.
В целом, классический подход, это использование из комплекта поставки БД-тулкита специального объекта, который олицетворяет запрос в БД. Этому объекту скармливаешь строку вида "SELECT * FROM db_table WHERE foo=bar" после чего объект возвращает датасет. Который мы уже либо скармливаем табличному виджету, либо ещё как с ним работаем.
Аноним 07/12/20 Пнд 16:48:35 1875012134
Аноним 07/12/20 Пнд 16:50:09 1875013135
Аноним 07/12/20 Пнд 16:52:49 1875019136
>>1875013
Господи как сложно... и чем єто лучше EntityFramework?

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

>>1874989
Я не особо что понял...
Аноним 07/12/20 Пнд 17:26:56 1875035137
Сап, анон! Нужна твоя помощь.

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

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

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

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

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

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

В чём тут может быть проблема? кроме выбора работы, днк и прочих, связанных со мной неприятностей Как искать её решение?
Аноним 07/12/20 Пнд 18:02:32 1875055138
>>1875035
> старинный нешарповый проект, который может быть только 32-разрядным, и он периодически дёргает вызовы из dll, написанной на c++, которая, в свою очередь, обращается к с#-dll
Лол блять. Походу, кто-то у нас здесь работает со взломанным нелицензионным программным комплексом. Без палева так.
Аноним 07/12/20 Пнд 18:06:46 1875061139
>>1875055
Лолблядь, ты ошибся. И с чего ты вообще взял, что тут чего-то взломано? В цепочке, начиная с Мамонта, и заканчивая хост-процессом, всё написано в рамках одной организации, остальная часть (.Net-обёртка для вызовов конечной dll) в рамках другой.
Аноним 07/12/20 Пнд 18:18:28 1875069140
>>1874091
>Старый дедовский способ - обычный фор.
Очень полезная расшифровка, без неё точно бы никто не догадался. Я имел ввиду, что когда приходится воевать с производительностью и код писали не любители индусских фильмов, то и старый дедовский не поможет. Там будет куча хаков и хреново читаемый код.
Аноним 07/12/20 Пнд 18:22:12 1875070141
>>1874718
OCaml не пользовал, но F# люблю. Пытаюсь АПИ проекты на нём писать, а остальная логика на шарпе. Тесты на F# - это интересная мысль.
Аноним 07/12/20 Пнд 18:41:17 1875079142
image.png 90Кб, 928x541
928x541
image.png 36Кб, 915x618
915x618
Аноны, почему в mvc core нет ADO.NET Entity Data Model? и там и там есть EntityFramework
Аноним 07/12/20 Пнд 18:47:35 1875081143
Блин, так давно не видел разорпейджи, и тут нужно было накидать за пару часов фронтенд. Господи, какой же это кайф, просто в HTML ебанул что надо, сверху кинул стилей, пару скриптов и все, охуенно, красиво, быстро. ХЗ почему эта штука не взлетела особо. Каждый раз как приходится каким-нибудь ангуларом, или вью пользоваться, это же пиздец, ты просто чтобы отрисовать простенькую сьраничку хреначишь будто это реальное приложение, хотя по факту - просто шлем запросик - биндим это к элементам, ничего сложного, но нет, JS-еры хотят чувствовать себя настоящими программистами, потому давайте-ка как в нормальных языках заебеним.
Короче, хочу чтобы разор ожил, чтобы на нем были нормальные проекты, а не только когда нужно за час-два накидать что-то чтобы показать.
Аноним 07/12/20 Пнд 19:03:22 1875086144
Аноним 07/12/20 Пнд 19:03:47 1875087145
Аноним 07/12/20 Пнд 19:41:50 1875114146
>>1875019
>Господи как сложно... и чем єто лучше EntityFramework?

Почему ты здесь спрашиваешь, скотина тупорылая? Спрашивай у своего заказчика. Может ему EF не нравится потому что в нём некоторые запросы не оптимизированы, тогда можно всё равно использовать EF но писать все запросы в виде чистых SQL, у EF есть такая функция.
Аноним 07/12/20 Пнд 19:46:21 1875116147
>>1875114
Тут такое дело. Тут кэп стучит в окно и орет что как бэ если использовать все запросы как чистые SQL, то НАХЕРА ТОГДА EF, если даже тот же linq2db удобнее будет. Чё кэпу передать?
Аноним 07/12/20 Пнд 19:50:11 1875119148
image.png 61Кб, 561x331
561x331
Что значит эта ошибка?

System.InvalidOperationException: 'No suitable constructor was found for entity type 'ART_Artykuly'. The following constructors had parameters that could not be bound to properties of the entity type: cannot bind 'session' in 'ART_Artykuly(Session session)'.'
Аноним 07/12/20 Пнд 19:57:37 1875129149
>>1875116
Человек уже написал на EF, но заказчику это не понравилось, вместо того чтобы всё переделывать под что-то другое, нужно сначала узнать причину по которой не устраивает EF, если это "хотим чтобы все SQL запросы составлялись без посредников", то переписывать на другой фреймворк смысла, можно просто использовать чистые SQL запросы используя EF для миграций и создания моделей.
Аноним 07/12/20 Пнд 19:58:55 1875132150
>>1875119
Ему не нравится название ART_Artykuly
Аноним 07/12/20 Пнд 19:59:56 1875133151
>>1875132
ARTArtykuly а так будет норм?
Аноним 07/12/20 Пнд 20:01:41 1875138152
>>1875129
Если писать запросы так как предложил этот >>1874989
уважаемый анон, обработка запросов будет занимать меньше времени??
Аноним 07/12/20 Пнд 20:05:28 1875142153
>>1875133
Нет, Articles подойдет. ART можешь заменить на что-то более понятное.
Аноним 07/12/20 Пнд 20:08:46 1875144154
>>1875138
Зависит от уровня твоего мастерства. Если хорошо знаешь SQL, то очевидно ты напишешь лучше, чем транспиляция от EF или другого фреймворка. В других случаях эффект может быть отрицательным.
Аноним 07/12/20 Пнд 20:11:21 1875146155
image.png 132Кб, 1151x487
1151x487
>>1875142
изменение имя не дало результатов... та же ошибка ,я дума проблема в девексе
Аноним 07/12/20 Пнд 20:16:33 1875150156
>>1875119
Блядь, если в английский не можешь - выдели ошибку и в гуглтранслейте посмотри. Нет конструктора который бы принимал параметр который ты(фреймворк/либа) забиндить пытаешься.
Аноним 07/12/20 Пнд 20:17:09 1875151157
>>1875146
Нихуя гуднайсовый код
Аноним 07/12/20 Пнд 20:18:31 1875153158
>>1875150
что значит "забиндить"?
Аноним 07/12/20 Пнд 20:19:02 1875154159
>>1875019
Stackoverflow Dapper использует. Они его и разработали.
Аноним 07/12/20 Пнд 20:21:31 1875158160
>>1875013
Двачую. Как можно работать с БД за деньги и не понимать, как это всё работает? Используешь EF - обязан понимать что твой EF делает, иначе у твоих клиентов начнут возникать магические ситуации и тормоза.
Аноним 07/12/20 Пнд 20:27:23 1875165161
>>1874939
Тебе уже сказали, что твой вопрос в принципе твою недоквалификацию показывает. Но клиент - еблан.
Он видимо боится того EF, который был костыльным году в 2012. Сейчас он производителен и почти также немногословен, как и Dapper, а где-то даже выигрывает, потому что запросы руками или кодогенераторы писать не надо.
EF, кстати, может все исполняемые sql запросы показать, если очень надо. Он также может голый sql запускать и результат маппить к твоим классам/рекордам.
Основная его фишка - это не маппинг результата в объекты. Это может любой Даппер. Основная фишка - это миграции, когда ты руками БД вообще не трогаешь, а отдаёшь эту привилегию приложению. Забываешь про многие головняки с работой в БД быстро.
Аноним 07/12/20 Пнд 20:29:29 1875167162
exp.png 65Кб, 728x454
728x454
Поясните за экспрешны. Вот написал я поиск гипотенузы по теореме Пифагора, а нахуя непонятно. Где они используются ИРЛ? Вам они пригождались в вашей практике?
Аноним 07/12/20 Пнд 20:32:03 1875170163
Аноним 07/12/20 Пнд 20:34:08 1875172164
image.png 12Кб, 504x82
504x82
image.png 9Кб, 437x78
437x78
image.png 12Кб, 458x120
458x120
>>1875170

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

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

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

ошибка у меня здесь на третем пике
Аноним 07/12/20 Пнд 20:34:46 1875175165
>>1875167
кодогенерация же. собственно ты ее и сделал
Аноним 07/12/20 Пнд 20:38:13 1875178166
>>1875167
На них весь LINQ построен. У тебя есть дерево вызовов, которые надо как-то менеджить и испольнять в какой-то последовательности. Дальше ограничен только фантазией.
Можешь кучу примеров на гитхабе найти. В обычных приложениях врят ли понадобится, а вот во всяких утилитах вполне.
Аноним 07/12/20 Пнд 20:39:28 1875181167
>>1875146
Попробуй добавить конструктор без параметров.
Аноним 07/12/20 Пнд 20:42:09 1875185168
image.png 9Кб, 457x77
457x77
>>1875181
Ты имеешь ввиду убрать параметры здесь?
Аноним 07/12/20 Пнд 20:46:10 1875189169
>>1875185
Почитай какую-нибудь книжку по шарпу, нахуй ты пытаешься что-то делать не зная основ?
Аноним 07/12/20 Пнд 20:49:58 1875194170
>>1875170
Вот ты тока щас охуел, а я ещё два дня назад, как только он заикнулся о девексах, сразу понел, с каким уровнем придётся столкнуться.

Намекал >>1872311>>1872305
Аноним 07/12/20 Пнд 20:50:53 1875196171
>>1875189
Но это и есть основы... и я сейчас эти основы изучаю, иногда я могу где-то завтыкнуть, поэтому я буду очень благодарен если мне укажут на мой завтык или ошибку
Аноним 07/12/20 Пнд 20:53:38 1875200172
image.png 636Кб, 735x759
735x759
>>1875194
Я не виноват, раньше я был на нетФремворке, там был орм от еф, и там все работало с коробки... а тут какие-то пляски с бубном, сессии-хуессии
Аноним 07/12/20 Пнд 20:58:50 1875207173
>>1875200
Core намного проще в обращении, чем старый фреймворк.
Сложно сказать, чего тебе там надо сделать, потому как у тебя там десятки, а то и сотни, всяких зависимостей и всё что мы тут пытаемся сделать - это ткнуть палочкой в одну и надеяться что оно заведётся.
1-2 недели потыкай, почитай статьи хорошо, а потом нормальных вопросов принеси (если останутся). Ещё у тебя есть поддержка от девэкспресса, их форум с вопросами/ответами и стэковерфлоу.
Аноним 07/12/20 Пнд 21:00:26 1875209174
>>1875172
>>1875185
Няша, по твоей же ссылке в примере модель наследуется от XPObject, ты делаешь пустой конструктор:
public ModelObject(Session session) : base(session) {}
Попробуй, я думаю в этом проблема вся.
Аноним 07/12/20 Пнд 21:21:06 1875233175
>>1875207
> Core намного проще в обращении, чем старый фреймворк
А вот не сказал бы.
Лично мне разобраться было легко, но я-то разбирался уже подрочив паттерны, солиды и покодив в реальных проектах и на джаве и на старом фреймворке. А вот вспоминая себя на первом курсе, я бы увидел эти дженерик хосты, подумал бы что это магия какая-то. А уж про лнику, так вообще говорить не приходится, я когда их увидел - просто повторял как в туториалах, ну и вообще. Короче, чем меньше всего есть из коробки - тем лучше новичку к.м.к. потому я бы наоборот советовал тем кто только разбирается взять какой-нибудь 3.5, а в идеале еще старше, там все как раз просто, и магию ты сам постепенно учишься делать.
Аноним 07/12/20 Пнд 21:24:37 1875240176
>>1875209
По поводу ModelObject(Session session) : base(session) {} тот файл создан автогенерацией и мне кажется его трогать нельзя
Аноним 07/12/20 Пнд 21:26:16 1875245177
>>1875240
Ты просто добавь наследование от XPObject и проверь.
Если боишься - сделай локальный коммит перед тем как что-то трогать, если что-то сломается - откати.
Аноним 07/12/20 Пнд 21:31:06 1875254178
image.png 22Кб, 692x210
692x210
>>1875245
К сожалению получилось вот это вот...
Аноним 07/12/20 Пнд 21:33:53 1875256179
image.png 150Кб, 785x523
785x523
Аноним 07/12/20 Пнд 21:35:12 1875258180
>>1875254
Ну блин. Тяжело советовать нормально.
Копипастни этот текест:
public class ART_Artykuly: XPObject {
public ART_Artyculy(Session session) : base(session)
}
Аноним 07/12/20 Пнд 21:36:10 1875260181
>>1875258
Блядь. Как же тяжело пытаться соответствовать твоему стилю нейминга
public class ART_Artykuly: XPObject {
public ART_Artykuly(Session session) : base(session)
}
Аноним 07/12/20 Пнд 21:38:02 1875264182
image.png 14Кб, 786x130
786x130
Аноним 07/12/20 Пнд 21:41:34 1875270183
image.png 27Кб, 543x298
543x298
вот структура XPObject
Аноним 07/12/20 Пнд 21:43:32 1875275184
>>1875264
У тебя где-то в проекте есть другая часть этого класса.
Добавть перед class - partial
Аноним 07/12/20 Пнд 21:47:24 1875281185
image.png 25Кб, 338x507
338x507
>>1875275
подозреваю что другая часть это ART_Artykuly.Designer и там уже есть partial
Аноним 07/12/20 Пнд 21:47:43 1875282186
image.png 25Кб, 338x507
338x507
image.png 96Кб, 1077x676
1077x676
>>1875275
подозреваю что другая часть это ART_Artykuly.Designer и там уже есть partial
Аноним 07/12/20 Пнд 21:49:05 1875284187
image.png 85Кб, 518x701
518x701
Аноним 07/12/20 Пнд 21:55:00 1875291188
>>1875281
>fART
>ART
>fART
Фарту ворам, сквирту мусорам...
Аноним 07/12/20 Пнд 21:56:53 1875292189
>>1875291
Это автогенерация, а "ТАГ_Нейм" это конвенция заказчика, я ее изменить не могу
Аноним 07/12/20 Пнд 22:01:38 1875293190
>>1875292
Не нейм, а НАЗВА. пшпшпш...
Аноним 07/12/20 Пнд 22:09:31 1875303191
Аноны, а можно ли зашифровать файл с строкой подключения к бд с последующей расшифровкой содержания при инициализации?
Аноним 07/12/20 Пнд 22:20:21 1875318192
Аноним 07/12/20 Пнд 22:22:36 1875324193
>>1875303
Ммм, я тоже не возражаю. Но используй шифрование по ГОСТ-2012, а не то накажу.
Аноним 07/12/20 Пнд 22:24:49 1875327194
Аноним 07/12/20 Пнд 23:25:22 1875365195
image.png 55Кб, 1066x276
1066x276
>>1875303
Файл с connString. Новенький что ли?

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

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

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

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

У майков есть своя реализация для коннекта к их Azure Vault. Но смысл один в один такой же.
Аноним 07/12/20 Пнд 23:25:44 1875366196
кто нибудь использует Polly?
Аноним 08/12/20 Втр 00:15:20 1875390197
image.png 46Кб, 999x291
999x291
>>1875366
Уже нет. Иногда имеет смысл для ручного throttling или когда работаешь с ресурсами, к которым мало доверия и приходится по несколько раз запрос повторять, пока правды не добъёшься. Но это какие-то особые ситуации.
Проще и производительнее просто взять HttpClient, добавить DelegatingHandler для обработки Auth фигни, настроить сервис и вперёд.

DelegatingHandler может за тебя нужные хэдеры и токены обновить и подставить вместо того, чтобы как по старинке делать запрос и получать 400/401/403, править и потом опять дёргаться. Никаких lock, никаких Retry() и прочей хуйни, которую так любят люди за 40. Этим надо или на пенсию или садиться и учить целый пласт тенхологий, которые развивались за последние 10 лет.
Аноним 08/12/20 Втр 01:07:23 1875419198
>>1875061
>>1875035
С# дергается через COM? Что за ошибка хотя бы. Или типичное C++ - разбирайся сам.
Аноним 08/12/20 Втр 01:11:34 1875421199
>>1875055
Кекус, в энтерпрайзе и не такие франкенштейны бывают. Там может быть C - C++ - C# - Python в рамках одного рантайм-квазимоды. Ещё видел тысячи строк кода в базе данных через кастомные интерпретаторы - это вообще пушка.
Аноним 08/12/20 Втр 06:10:48 1875512200
Объявление переменных не явных способом var считается плохим тоном или все норм?
Аноним 08/12/20 Втр 09:17:52 1875555201
>>1875512
Не считается. Олды бухтят только. Ты всё равно var можешь юзать только как локальные переменные, члены класса изволь объявлять явно. Так что бухтение олдов мимо кассы. Если им нравится, пусть сами вручную дважды пишут что нибудь типа IEnumerable<KeyValuePair<int,KeyValuePair<string, Rect<int, int, long, long>>>>

А теперь мой вопрос.
Когда я пишу event += ... не вводит ли меня в заблуждение этот оператор? Хандлеры ивента стакаются же? Стакаются? Прямо в стек? Я могу передавать результат работы хэндлера в следующий?

Аноним 08/12/20 Втр 09:31:18 1875559202
>>1875512
Явно объявлять нужно только в тех местах в которых нельзя точно определить какой тип возвращает выражение присваивания, т. е. результат правой части.
Аноним 08/12/20 Втр 09:33:09 1875561203
>>1875555
Каждый обработчик получает одинаковый объект-событие, результат обработки никак не передается от обработчикак к обработчику.
Аноним 08/12/20 Втр 09:46:03 1875569204
>>1875561
Спасибо! Я так и подумал. И уже понял, что делал неправильно и отказался от стаканья обработчиков, оказалось был путь проще.

Теперь ещё один вопрос, наверное совсем нубский:
Есть солюшен. В нём есть несколько проектов типа exe. Как я могу запускать на исполнение второй экшешник из первого? Наверняка же в дотнете реализовано внутреннее "управляемое" решение. Ну не запускать же мне по старинке через шелл?
И вдогонку, я хочу внутри солюшена отдельную dll с общими ресурсами для всех exe. Как к ней обращаться за ресурсами? Вчера налепил навскидку и чот нихуя не заработало, каждый exe ищет ресурсы только у себя.
Аноним 08/12/20 Втр 10:46:45 1875590205
>>1875569
>Как я могу запускать на исполнение второй экшешник из первого?

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

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

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

Нужно регестрировать эту длл в global assembly cache, тогда все программы использующие эту dll будут брать её оттуда.
Аноним 08/12/20 Втр 10:51:50 1875592206
>>1875390
чет ты странного наговорил. Проблемы сети или временную недоступность компонента никто не отменял - и тут нужен повтор.
Аноним 08/12/20 Втр 11:11:34 1875606207
>>1875590
> process.start
Это и есть "по старинке", ИМХО. Я надеялся, что есть способ прямо изнутри вызывать события запуска тех или иных проектов решения. Ну, например, главное приложение и конфигуратор, при запуске главного приложения, если конфиг отсутствует, вызывается конфигуратор. Ну всё равно спасибо. Думаю, ничто не помешает мне сделать из главного ссылку на конфигуратор и просто вызывать публичную форму конфигуратора из приложухи, не запуская процесс вообще.
> регестрировать эту длл
Эммм, сложно, тупо, неудобно. Буду искать другие решения.
Аноним 08/12/20 Втр 12:14:49 1875636208
Аноним 08/12/20 Втр 15:29:18 1875793209
image.png 19Кб, 637x394
637x394
image.png 22Кб, 663x237
663x237
image.png 20Кб, 597x225
597x225
Аноним 08/12/20 Втр 15:37:56 1875804210
Аноним 08/12/20 Втр 15:54:05 1875821211
>>1875804
У меня такого нет, как получить?
Аноним 08/12/20 Втр 17:48:46 1875959212
Screenshot2.png 22Кб, 589x363
589x363
>>1875821
Это для старого ASP.NET (который на .NET Framework), а не ASP.NET Core. У тебя по всей видимости проект на ASP.NET Core, так немного по другому с сессией работают, гугли. Либо если тебе нужен именно ASP.NET MVC 5, то создай правильный проект.
Аноним 08/12/20 Втр 17:49:26 1875961213
Аноним 08/12/20 Втр 17:50:46 1875963214
>>1875959
Ясно, мне нужен именно нет кор
Аноним 08/12/20 Втр 17:52:14 1875966215
>>1875959
Кстати если есть может репозиторий какой с примером работы с сессиями в коре я бы с радостью почитал
Аноним 08/12/20 Втр 19:10:48 1876047216
>>1875592
Отдал клиенту нужный код и заставил его повторить запрос. Нефиг выдумывать какой-то херни без надобности.
Аноним 08/12/20 Втр 19:28:39 1876058217
>>1875559
Ещё один. Оно тебе надо знать какой там из тысяч доступных типов сейчас вернулось? Ты их все в голове держишь что ли? Я перепрыгнул на var как только он появился и ни разу не испытывал потребности знать, что там конкретно вернулось из какой-то функции.

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

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

псевдо код выдуманный на лету
Аноним 08/12/20 Втр 19:39:20 1876062218
Аноним 08/12/20 Втр 19:49:31 1876070219
>>1875561
Хм. Хм.
Они получают один и тот же объект? Ну, дорустим я в EventArgs передаю ссылку на кусок памяти, вот обычный такой ref Memory<byte>. Вот я такой умный, я знаю для чего оно мне нужно. Вот кто-то через год взял мой код и не знает, для чего это нужно было и подписался в своем хендлере раньше, он берет и этот кусок памяти делает Slice и с полученным куском нехорошие штуки проделывает. Пойдет ли в моем коде все по пизде из-за этого?
Аноним 08/12/20 Втр 20:02:04 1876077220
Аноним 08/12/20 Втр 20:19:42 1876085221
>>1876047
ну так и говори - "у меня веб бэкенд CRUD подобный"
и не нужно свой частный случай на все ситуации проецировать.
Аноним 08/12/20 Втр 20:20:51 1876087222
>>1876070
пойдет конечно. и правильно будет. раскладываешь мины - не удивляйся, что рвануло
Аноним 08/12/20 Втр 20:26:09 1876089223
>>1876087
Ну блин. А ведь так удобно все казалось.
Придется переделывать(((
Аноним 08/12/20 Втр 21:04:34 1876115224
image.png 21Кб, 537x272
537x272
image.png 13Кб, 508x265
508x265
Сап сишарпач, наклепал простенькую приложуху которая чекает все доступные tcp и udp порты, так вот, как можно заблокировать нужный мне tcp/udp порт? Чтобы он перестал принимать пакеты и всю хуйню. Просто отключить его. Юзать cmd нельзя
Аноним 08/12/20 Втр 21:07:45 1876116225
>>1876115
Убей процесс что открыл его.
Аноним 08/12/20 Втр 21:10:06 1876118226
>>1876116
Че-то жиденько, мб есть другие способы? Но ладно, как тогда вычислить процесс открывший порт?
Аноним 08/12/20 Втр 21:22:33 1876130227
>>1876118
Юзаешь винапи, смотришь, кто там открыл эти порты, получаешь PID - убиваешь процесс.
Аноним 08/12/20 Втр 21:32:01 1876135228
>>1876130
После этого твою приложуху совершенно справедливо прибивает антивирус. На большинстве пользовательских компов, у тебя-то ясно антивирусозонда нетути.
Аноним 08/12/20 Втр 21:43:59 1876147229
Вечер в хату.
Может кто работает в автоматизации на C#
подскажите пошагово как запустить через Jenkins выполнение Nunit тестов? Где вообще про это адекватно почитать. А то тесты написал на гит закинул и на этом как то все.
Аноним 08/12/20 Втр 21:52:55 1876154230
Возможно как-то сказать фабрике, какой объект какого типа мне нужен, не передавая в неё объект этого типа?
Аноним 08/12/20 Втр 21:55:27 1876156231
>>1876154
> Возможно как-то сказать фабрике, какой объект какого типа мне нужен, не передавая в неё объект этого типа?
Аноним 08/12/20 Втр 22:04:35 1876170232
Аноним 08/12/20 Втр 22:25:38 1876187233
А вообще, такой вопрос.
Вот как я понимаю - фабрика это именно та штука, в которой мы примерно следущее делаем: factory.AddZalupa().UsePizda(x=>x.AddHair()).Build();
А я вот в своих залупах обычно делаю класс, который возвращает интерфейс, типа клиент этого класса не знает что и как там билдится, он просто получает интерфейс и пользуется им, вся ответственность за создание - на таком классе. Вот и как правильно такую сущность обзывать? Я, сначала добавлял суффикс Factory, но из-за того что часто под фабриками то что я выше описал подразумевают - начал называть Provider, но блядь, меня смущает этот суффикс, потому что что он там провайдит-то? Просто видел как в некоторых других проектах подобное так называли, вот и стал повторять, но сейчас думаю и кажется что нужно как-то иначе обзывать. Builder? Ну, может быть, но тоже как-то не нравится.
Короче, как бы вы назвали класс, который, допустим дает клиенту какой-то класс для шифрования, либо класс который дает репозиторий, например во время разработки - там обычный лист, а в реальном проекте - уже обертка над каким-то провайдером БД.
Аноним 08/12/20 Втр 22:37:46 1876191234
>>1876187
builder.AddZalupa().UsePizda(x=>x.AddHair()).Build(); — Это билдер, а не фабрика. Фабрика это factory.CreateZalupa()
Аноним 08/12/20 Втр 23:35:46 1876223235
>>1870604
если тебе нужно выполнять повторяющуюся логику не связанную с бизнес логикой, то посмотри в сторону мидлвейров/атрибутов фильтрации
Аноним 09/12/20 Срд 00:30:43 1876240236
>>1876062
Спасибо, почитал, попробовал, у меня получилось сделать, особенно после прочтения этой статьи, https://metanit.com/sharp/aspnet5/16.12.php

Единственное там используется какая-то локальная автосгенерированая база, как подставить свою я не понял... в дальнейших статьях я так понял они работают с ней, но мне это не подходит...
Аноним 09/12/20 Срд 01:50:43 1876269237
>>1876147
Твои скрипты, которые ты будешь запускать в дженкинсе, должны примерно также работать локально. Ты вообще их писать и тестить локально должен, а не тыкаться в слепую через CICD (хоть дженкинс, хоть хуенкинс, тысячи их).

Дотнет тесты умеет запускать через dotnet test. У этой команды есть куча параметров. Для генерации и сбора отчётов могу использоваться дополнительные тулзяки. Но для обычного прогона и креша Jenkins job пойдёт простой dotnet test.
Аноним 09/12/20 Срд 02:55:29 1876291238
Очередной нубовопрос - как не писать два раза листтип
static List<Street> Streets = new List<Street>();

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

Пишет что низя?
Аноним 09/12/20 Срд 03:03:30 1876292239
>>1876291
static List<Street> Streets = new();
Аноним 09/12/20 Срд 03:17:04 1876294240
image.png 16Кб, 1196x90
1196x90
>>1876292
Низя в моем шарпе.. Хм.
Аноним 09/12/20 Срд 03:23:54 1876295241
>>1876294
в файле проекта .csproj либо смени целевую платформу на .NET 5:
<TargetFramework>net5.0</TargetFramework>

либо добавь:
<LangVersion>9.0</LangVersion>
Аноним 09/12/20 Срд 03:37:33 1876299242
>>1876295
>.NET 5
У меня просто софтина пишется под семерку, на .net core 3.1. А поддерживается ли .net 5 на семерке?
Аноним 09/12/20 Срд 03:43:18 1876300243
Аноним 09/12/20 Срд 04:42:34 1876305244
image.png 42Кб, 928x650
928x650
Анон, такой вопрос. Есть код -тут короче, открывается база Access, в ней запускается VBA модуль.. Тут все норм. При этом база должны быть открыта всю работу приложения (глобальные переменные)

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

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

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

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

Есть какой--нибудь 100% способ вызвать метод при всех вариантах закрытия проги? Вот в С++ такой способ есть
Аноним 09/12/20 Срд 12:15:23 1876426245
1) Почему в wpf release отжирает автоматом на +100мб больше озу, хотя по логике он ведь должен жрать меньше ресурсов?
2) Можно как-то урезать размер готового .exe?
Аноним 09/12/20 Срд 13:37:55 1876511246
>>1876305
> останавливаю работу приложения и смотрю
Я могу только один вариант в таком случае придумать. Сделать батник, кинуть ярлык на него во внешние инструменты студии / на десктоп / на пинбар. В батнике вызовами taskkill -im "Access.exe" прибивать все экземпляры акцесса.

Но вообще, акцесс дерьмо, я бы перешёл на нормальные СУБД здорового человека при первой возможности
Аноним 09/12/20 Срд 13:55:30 1876535247
>>1870468 (OP)
Как запустить net core проект для windows в линукс? Мне не нужна компиляция или развертывание под линукс, мне нужно чтобы проект разработанный на windows запускался у меня в линуксе.
Аноним 09/12/20 Срд 13:59:47 1876540248
>>1876269
Так когда через консольку пишу запуск автотестов то все в порядке.
А когда через jenkins то гавно какое то. Только изменения кода в гит показывает и все. Может быть из за того что все делаю локально? хотя по идее должно быть всё равно.
Аноним 09/12/20 Срд 14:01:51 1876544249
Аноны, кто нибудь работал с azure, есть веб-аппликация которая хостится на азуре, и использует базу данных которая тоже размещена на азуре, локально проект работает, соединяется с целевой базой на азуре и работает как предполагается, но при паблише аппликации на азур сайт выдает ошибку An error occurred using the connection to database 'Analizy' on server 'tcp:analizy.database.windows.net,1433'.

В чем может быть причина?
Аноним 09/12/20 Срд 14:49:51 1876590250
image.png 6Кб, 659x103
659x103
>>1876544
проблема решена, удивительно но азур по умолчанию добавляет себя в фаервол... фейсплам, ну или может если есть анон который знает зачем это сделано объяснит
Аноним 09/12/20 Срд 15:03:05 1876600251
Подскажите каким инструментом можно нарисовать png фон на jpg картинке и получить на выходе новую картинку?
Желательно чтобы был на выходе bitmap.
Аноним 09/12/20 Срд 16:39:56 1876693252
Анон. Я только начинаю изучать C#, начал с книги Библия С#, и в упор не получается разобраться в теме привязки данных, а именно с x:Bind. Есть xaml код следующего содержания:

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


Компилятор меня убеждает в том, что Bind не существует в пространстве имен и т.д. https://pix.my/TCAeOD
Сколько не гуглил - подобное решается объявлением типа xmlns:x=.... но оно сделано. Ссылки вроде бы нужные тоже есть, кажется. В общем, то ли лыжи не едут, то ли я идиот.
Аноним 09/12/20 Срд 17:31:06 1876757253
>>1876693
Насколько я знаю, x:Bind это для UWP, а в WPF используется Binding.
Аноним 09/12/20 Срд 17:34:39 1876759254
>>1876693
Так ты сначала C# изучи, а потом уже к фреймворкам переходи. Ты сразу пытаешься и шарп учить и wpf осваивать.
Аноним 09/12/20 Срд 18:14:37 1876781255
>>1876540
>я делаю какую-то фигню, а получается какая-то хуйня
damn son, как тебе помочь то, когда ты двух слов связать не можешь? Где хоть что-то, за что можно ухватиться и начать помогать?

Я с дженкинсом знаком с 2014, ставили его локально, на виртуальные машины, в местный дата центр, в AWS. Там же блять всё просто как "раз два три".
Правда когда есть возможность альтернативы - перепрыгиваем на неё. Типа Azure DevOps. Дженкинс немного устарел.
Аноним 09/12/20 Срд 18:17:42 1876783256
Аноним 09/12/20 Срд 18:24:07 1876784257
>>1876590
Это только для публично доступного сервера. Т.е. его можно пингануть через интернет. Я бы на вашем случае добавил виртуальную сеть (Virtual network) с подсетью (subnet) и настроил фаервол чтобы БД сервер был доступен только из этой подсети и добавил ваш App Service в ту же самую подсеть.
Нефиг БД наружу выставлять.
Аноним 09/12/20 Срд 18:25:25 1876785258
Аноним 09/12/20 Срд 18:28:30 1876786259
>>1876759
А на чём его тогда изучать? Но WPF для новичка сложно конечно. Лучше консольные приложения пару месяцев пописать.

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

Там намного больше примеров есть, в том числе и работа с БД.
Аноним 09/12/20 Срд 18:31:43 1876788260
>>1876784
Понятно, ты прав, попробуй так сделать
Аноним 09/12/20 Срд 19:12:12 1876827261
>>1876788
щас я за вас еще работу выполнять буду))
Аноним 09/12/20 Срд 19:24:54 1876839262
>>1876535
Бамп вопросу. Тут что никто в net core не может? Или в линукс? Пиздец, одна школота.
Аноним 09/12/20 Срд 19:29:50 1876842263
>>1876827
Ахаха, извини, опечатался, лол, по фрейду наверное...
Аноним 09/12/20 Срд 19:34:40 1876847264
Аноним 09/12/20 Срд 20:12:17 1876883265
Аноним 09/12/20 Срд 20:33:12 1876898266
Аноним 09/12/20 Срд 20:35:51 1876900267
image.png 67Кб, 171x127
171x127
Аноним 09/12/20 Срд 20:36:32 1876901268
>>1876847
Вообще-то Ажьур c мягкой ж и А, которая звучит как среднее между А и Э.
Аноним 09/12/20 Срд 20:39:31 1876903269
>>1876535
>>1876839
Сразу под ОПом пример висит, как чего запускать. Если тебе этой инфы не достаточно, то тебе сначала надо закончить школу.
Аноним 09/12/20 Срд 20:51:03 1876907270
>>1876839
То есть ты сам школьник, раз не знаешь ответа на свой вопрос? Тогда покинь сайт, борда 18+.
Аноним 09/12/20 Срд 21:25:21 1876923271
>>1876535
Это просто - берешь приложение разработанное под вин, берешь линукс и запускаешь.
Аноним 09/12/20 Срд 21:27:07 1876924272
>>1876923
А разве там не нужен докер?
Аноним 09/12/20 Срд 21:29:42 1876926273
>>1876924
ты размер образа докера винды видел?
Аноним 09/12/20 Срд 21:36:26 1876931274
>>1876926
> размер образа докера винды
Размер-размером, а там же ещё и лицензия нужна, никто не отменял.
мимо
Аноним 09/12/20 Срд 21:41:51 1876937275
>>1876931
лицензия малая проблема. ведь поди еще попробуй запусти докер вин образ под линуксом
Аноним 09/12/20 Срд 21:49:26 1876942276
>>1876937
Думал об этом, но трафика жалко.
Аноним 09/12/20 Срд 21:53:33 1876943277
>>1876781
А все разобрался.
Спасибо что пытался помочь. А я паниковал и херню писал.
Все запустилось и заработало когда в Jenkins написал команды консольные на запуск автотестов и все норма начало работать.
Аноним 09/12/20 Срд 21:53:47 1876944278
>>1876924
>>1876926
>>1876931
>>1876937
Это или один троль сам с собой разговаривает или несколько тролей или один трольнул, а другим захотелось подбросить саркастических искромётных комментов.
Аноним 09/12/20 Срд 21:58:05 1876949279
Аноним 09/12/20 Срд 22:00:30 1876950280
>>1876944
Спросил я, и я не знаю, нужно не нужно, я в облаке работаю, просто слышал что-то такое
Аноним 09/12/20 Срд 22:22:49 1876968281
>>1876535
Берешь рантайм, запускаешь собранную неткором dll
Аноним 09/12/20 Срд 22:23:59 1876970282
>>1876968
>Берешь рантайм, запускаешь собранную неткором dll
Нахуя мне это? Мне не готовое приложение нужно, а сам проект.
Аноним 09/12/20 Срд 22:49:23 1876983283
>>1876950
В облаке у тебя точно также крутится какая-то машина с какой-то ОС. Если заведёшь своё произведение локально, то и в облаке также запустится. Хочешь в докере, хочешь в кубернетес, хочешь прям на хосте.

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

Естественно, если ты в коде решил дёрнуть АПИ какой-то ОС на прямую или подключиться к чисто виндовому сервису (AD, Cert Store, Event Storage, etc.), то на Убунте оно рухнет, потому что там таких сервисов нет. Но рухнет тупо на этапе подключению к виндовому сервису.
Аноним 09/12/20 Срд 23:38:39 1877013284
>>1876757
с Binding не работает, хоть и не выдает ошибку, но это уже другой момент. В книжке черным по белому пишут, мол биндинг прошлый век, щас надо юзать бинд.
>>1876759
Учу по книге, но похоже буду искать другой материал. Изначально понравилась подача, а вот то что в примерах не разобраться ибо не работает - косяк.
>>1876786
тТут такое дело, что не зная основ оф документация - это как изучать иностранный язык не зная алфавита.
Аноним 09/12/20 Срд 23:49:47 1877021285
>>1877013
> не зная основ оф документация - это как изучать иностранный язык не зная алфавита
Глупости.
оф.документация - это как словарик в дополнение к учебнику при изучении языка.
Аноним 10/12/20 Чтв 10:35:00 1877169286
Сап шарпач, есть одно приложение на винформах, датагридом, sqlite'ом, энтитями и картинками в них. Админы говорят что оно начинает лагать после добавления около 100 записей. Я вангую что это из-за энтити контекста.
Мне нужно как-то чистить контекст? И реализовать пэйджинг в датагриде? Есть какие-то опенсорс примеры?
Аноним 10/12/20 Чтв 10:53:12 1877177287
Можно ли в енум как-то одному элементу присвоить несколько значений? Я гуглил и нихуя не понял, вроде можно что-то с флагами делать, но получается какая-то дичь. Нужно что-то типа такого
enum MyEnum {
Element1 = 1,
Element2 = 3,
Element2 = 10, 11
}
Аноним 10/12/20 Чтв 11:57:33 1877206288
Аноним 10/12/20 Чтв 12:33:02 1877220289
20190929095249.jpg 94Кб, 1307x531
1307x531
Аноним 10/12/20 Чтв 12:46:34 1877223290
>>1877220
Подожди, а если вот так (ElemntType)2 сделать, то я получу Element2 типа ElementType? Потому что он мне для этого и нужен.
Аноним 10/12/20 Чтв 13:38:30 1877240291
20190929095249.jpg 94Кб, 1080x799
1080x799
Аноним 10/12/20 Чтв 19:16:30 1877529292
image.png 120Кб, 226x289
226x289
Анон шарящий в скл, можешь написать скрипт для создания следуйщего тригерра

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

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


END
Аноним 10/12/20 Чтв 19:49:37 1877544293
image.png 293Кб, 592x512
592x512
>>1877529
Изивините, я запаниковал, оказалось это не так сложно...
Аноним 10/12/20 Чтв 19:50:49 1877547294
>>1877529
>>1877544
Ты в следующий раз как запаникуешь - выкладывай ссылку на пастебин. Будь человеком.
Аноним 10/12/20 Чтв 19:57:17 1877554295
tenor.gif 41Кб, 220x292
220x292
>>1877547
Ладно, боже как стыдно
Аноним 10/12/20 Чтв 21:12:07 1877619296
image.png 11Кб, 342x254
342x254
image.png 43Кб, 1228x621
1228x621
Аноны, а где мне можно посмотреть код этой странице, по адресу прописки ее нет...
Аноним 10/12/20 Чтв 21:14:45 1877621297
Что посоветуете почитать про фрэймворки.
Что сформировать базовое понятие о них и как их писать.
Аноним 10/12/20 Чтв 21:20:35 1877625298
>>1877169
Там миллион возможных причин. Криворукостью можно столько всего наделать. Без нормального анализа кода помогать тебе как в воздух пальцем тыкать. Авось да поможет.
DbContext надо по новой на каждый запрос (клик по кнопке) создавать. Или уметь его в ручную менеджить и писать дополнительные сотни строк кода.
Аноним 10/12/20 Чтв 23:07:02 1877722299
image.png 3Кб, 650x32
650x32
image.png 3Кб, 816x34
816x34
Аноним 10/12/20 Чтв 23:09:42 1877724300
>>1877625
> DbContext надо по новой на каждый запрос (клик по кнопке) создавать.
Нахуя? Я думал там ленивые загрузки, оптимизация изподкоробки все дела и создаю в скопуе окна/класса. Алсо, это же будет означать что к базе идет новый запрос, а это же нихуя не оптимизация. У меня в sqlite простой vacuum 10 секунд на околонекроте работает. Разве не лучше наоборот выгрузить данные в контекст?
> Там миллион возможных причин.
Причина в том что когда я делаю изменения в бд я обновляю датагрид и делаю это простым присвоением сурса = контекст.таблицанейм и он походу пытается загрузить всю таблицу.
Аноним 11/12/20 Птн 01:04:33 1877767301
image.png 32Кб, 960x190
960x190
мне стыдно спрашивать но как такое фиксить?
Аноним 11/12/20 Птн 03:54:29 1877812302
Может кто сталкивался -
WinForm, есть DataGridView
в ячейках есть выпадающее меню с списком(коллекция)
Проблема в том что при кликах на выпадающее меню оно вызывается минимум с второго раза (первый клик видимо берет ячейку в фокус, а второй уже отрабатывает как и положено) или с третьего если кликать на ячейку а не на саму галочку выпадающего списка
Как фиксить? хочу делать одиночный клик
Аноним 11/12/20 Птн 04:06:57 1877814303
>>1877812
Нашел, EditMode, не идеальный результат но сойдет
Аноним 11/12/20 Птн 05:14:58 1877823304
>>1877619
Хоть бы сказал, Razor pages или MVC или чего там?
Если не Razor Pages, то надо всегда смотреть контроллеры, а там уже увидишь, куда ссылки ведут.

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

Если всё это добавлялось не в ручную, а через scaffold, то он тебе сам надобавлял всяких View.
Аноним 11/12/20 Птн 05:16:26 1877824305
>>1877724
блиаааа.....я даже не знаю откуда тут заходить, чтобы хоть как-то помочь начинать. Чувак, кури мануалы.
Аноним 11/12/20 Птн 05:17:58 1877825306
>>1877722
Потому что надо смотреть все твои конфиги, и выяснять, чего ты там нагородил.
Аноним 11/12/20 Птн 05:18:38 1877826307
>>1877767
А там что-то сломано?
Аноним 11/12/20 Птн 05:43:51 1877828308
>>1877826
Ну когда создаешь новый объект все параметры можно добавить одним обращением по типу :

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

а тут :

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

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

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

>>1877823
MVC CORE 3.1
Верно это Identity route, но как мне туда зайти и там что-то поменять, мне нужно сделать авто переадресацию с этой страницы
Аноним 11/12/20 Птн 08:15:40 1877866309
>>1877828
>Верно это Identity route

Значит гугли как сделать кастомные страницы регистрации и всё что связанно с аккаунтами.
Аноним 11/12/20 Птн 09:50:38 1877883310
Можно ли в double засунуть нечто такое, что при ToString() превращалось бы в пустую строку?
Аноним 11/12/20 Птн 11:28:08 1877915311
>>1877883
Нельзя, это тебе не ЖС
Аноним 11/12/20 Птн 13:41:54 1878023312
>>1877767
Инициализатор же, анон, ну ты чего, совсем штоле нуб?
MyUser user = new MyUser
{
USR_Foo = Bar,
USR_Baz = Hurr,
USR_Durr = Derp,
USR_Date = DateTime.Now
}
Аноним 11/12/20 Птн 13:47:05 1878029313
>>1878023
Так в том то и дело что там идет обновление, а не инициализация
Аноним 11/12/20 Птн 14:02:58 1878049314
>>1878029
В си и его потомках нет и не будет никогда конструкций, наподобие "with" (фууу, мерзость какая, паскалебляцкая).
Это принципиально и любой сишник тебе скажет, что твой код на скрине правилен.
Аноним 11/12/20 Птн 14:07:48 1878054315
>>1878049
А какие + такого подхода, я виду только минус, множество обращений к обьекту
Аноним 11/12/20 Птн 14:22:15 1878070316
Screenshot2020-[...].png 28Кб, 932x386
932x386
Аноним 11/12/20 Птн 14:24:10 1878073317
>>1878070
Лол, они таки прогнулись. Ну сорян, не уследил за событиями. Игнорируйте пост >>1878049
Аноним 11/12/20 Птн 14:28:25 1878076318
>>1878073
А что собсна плохого в этом?
Аноним 11/12/20 Птн 14:30:19 1878077319
>>1878076
Ну когда я в последний раз интересовался, сишники аргументировали, что этот кейворд якобы запутывает кодера относительно того в каком неймспейсе он сейчас находится. Если я правильно понял и/или запомнил.
Аноним 11/12/20 Птн 14:37:00 1878086320
>>1878077
... но когда я был молод и кодил в дельфи, этот кейворд был идеальным решением для написания паттерна "адаптер", при условии, что адаптируемые классы имеют разные методы. Но если методы совпадают, просто прописываешь явно класс, напишу пример псевдокодом, чтобы не мучить вас бегин эндами:

ForeignClass obj1;
InternalClass obj2;

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

Вот так быстро и красиво происходит адаптация. Происходила.
Аноним 11/12/20 Птн 14:55:36 1878096321
Аноним 11/12/20 Птн 16:50:19 1878181322
А вы заметили что комментов 10 пропало? Тут один всех матами крыл, а его отправляли лечиться. Ну и попутно технологии обсуждали.
У нас тут модератор есть?
Аноним 11/12/20 Птн 16:54:01 1878188323
>>1877828
>Да ничего я не городил, проект почти пустой, и рутингы я не трогал
Все мы так когда-то отмазывались. Магии не существует. Где-то лежат заветные строчки кода. И лежат они на самом видном месте. Только у тебя знаний нет их прочитать правильно.

На вот почитай. И ещё несколько сопутствующих статей.
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity
Аноним 11/12/20 Птн 17:13:31 1878210324
>>1878181
Не 10, а 25.
Обсуждали там что-то тупое насчет запуска нет кора на линуксе
Аноним 11/12/20 Птн 17:22:49 1878214325
>>1878210
Откуда такая точная цифра? Модератор, ты?
Аноним 11/12/20 Птн 17:25:34 1878218326
Screenshot20201[...].jpg 228Кб, 720x1520
720x1520
>>1878214
Просто с телефона капчую
Аноним 11/12/20 Птн 17:38:39 1878225327
>>1878188
Я уже все папки переклацал, нигде нет...
Аноним 11/12/20 Птн 18:23:57 1878242328
>>1878218
О! Он показал файл проекта? А то я реквестировал и ушёл. На коре проект-файлы несколько иначе организованы. Нужно по новому таргет прописывать, чтобы заработало.
Аноним 11/12/20 Птн 18:32:53 1878247329
>>1878242
Вот репост специально для тебя:
>>1876966
> Вот пример проекта https://github.com/dotnet-architecture/eShopOnWeb
> Он у меня ни в докере не запустился, ни локально на линуксе. Там бардак полный, образ контейнера вроде линуксовый используется, но в csproj захардкожены виндовые пути со слэшами и много еще windows-специфичных штук. Это может пример не очень подходящий, сложноватый, но и другие проекты от microsoft запустить часть не получается, потому что почти все написаны под виндой в visual studio.
Аноним 11/12/20 Птн 18:37:40 1878251330
>>1878225
Не слушай дурачка. Всё что есть из коробки в айдентити - вшито в программный код, никак это изменить нельзя, только писать своё и говорить айдентити чтобы он использовал его, а не вшитое по стандарту.
Аноним 11/12/20 Птн 18:40:57 1878257331
Аноним 11/12/20 Птн 18:53:53 1878275332
>>1878251
Он же не сказал, как он это айдентити добавлял. Командой, гуи, с какими опциями, или может в ручную код копипастил из разных статей? Он этот айдентити раут и сам мог прописать где-то, но не понял, что он это сделал.
Аноним 11/12/20 Птн 18:57:29 1878280333
>>1878257
Сам то по ссылке статью читал?
>To maintain full control of the Identity UI, run the Identity scaffolder and select Override all files.

И далее идёт пример в котором убирается вызов services.AddDefaultIdentity<IdentityUser>() и указываются пути по которым будет браться написанный тобой UI. Т. е. то что я написал:
>только писать своё и говорить айдентити чтобы он использовал его, а не вшитое по стандарту.
>>1878275
Он сказал, что ничего не трогал, на что в ответ получил какой-то бред про отмазывания.
Аноним 11/12/20 Птн 19:12:18 1878297334
>>1878280
>Он сказал, что ничего не трогал
Программист, который не смог разобраться с раутами в маленьком проекте, сказал что ничего не трогал. Сам то в это веришь? Миллион раз на таких джунов нарывался в разных городах и странах. Всегда круглые глаза, всегда "это не я, оно само!!!", и никогда нормально проблему объяснить не может.
Аноним 11/12/20 Птн 19:14:01 1878299335
>>1878280
Я-то читал и делал, а вот ты видимо нет.
>To maintain full control of the Identity UI, run the Identity scaffolder and select Override all files.
Это чтобы всё полностью переписать. Но это делать необязательно, можно изменить только пару нужных тебе файлов.
Аноним 11/12/20 Птн 19:20:28 1878305336
>>1878280
Если ты это всё так хорошо знаешь, чего парню не поможешь?
Аноним 11/12/20 Птн 19:29:59 1878311337
>>1878299
Но каких именно ты конечно не скажешь, хотя это как раз то о чём тебя спрашивают. Не перестаю проигрывать с дебила
>>1878305
Чем это не помощь? Уже даже дураку понятно что нужно сделать для того чтобы изменить UI identity
Аноним 11/12/20 Птн 19:49:13 1878328338
Screenshot2.png 67Кб, 1718x817
1718x817
Screenshot3.png 66Кб, 1843x899
1843x899
>>1878311
Всё ведь в статье, читайте внимательнее.
Right click on project -> Add -> New Scaffolded Item -> Identity -> выбираешь нужные страницы
Аноним 12/12/20 Суб 13:50:29 1878703339
>>1878328
>>1878257
>>1878299
Ага, теперь понял, надо чекнуть галочку напротив "comfimdEmail' после этого появиться представление и его можно будет изменять, спасибо!
Аноним 12/12/20 Суб 14:53:56 1878716340
>>1870468 (OP)
Ребят, можно ли скомплить с помощью vs 2019 проект сделанный на vs 2015, там есть совместимость? Язык иттшный
Аноним 12/12/20 Суб 15:27:01 1878725341
Аноним 12/12/20 Суб 16:29:54 1878751342
>>1878716
Я встречал пару раз проблемы при подобном переходе. Один раз они были связаны с Windows Workflow Foundation, а другой - с неправильными nuget пакетами подключенными. Шансы встретить неполадки - минимальны.
Аноним 12/12/20 Суб 20:35:01 1878898343
На каком уровне нужно знать сисярп, чтобы клепать прилы в юнете?
Аноним 12/12/20 Суб 20:37:05 1878900344
.jpg 178Кб, 922x1300
922x1300
>>1870468 (OP)
Довольно тупой вопрос, но все равно поясните.
Вот допустим, я хочу такую возможность дать пользователю: Он загружает шаблон устройства в определенном индустриальном формате, формат, естественно, не божественный JSON, а какой-нибудь MIB или что-то в этом духе; может быть кто не знает, но эти MIB бывают по 90к и больше строк, соответственно нужно будет ждать пока оно загрузится, потом нужно это распарсить, а потом я бы хотел вернуть клиенту уже JSONчик с тем что я там прочитал, распарсил, чтобы он то что ему нужно отметил, может быть как-то по своему назвал(думаю тупо выглядеть просто будет если пользователь все это MIB - дерево будет видеть, возможно человек хочет имена в нормальном человеческом виде смотреть).
Ну так вот, как оно должно выглядеть
1. Со стороны взаисодействия клиент-сервер? Ну, в смысле должен ли я сразу пытаться парсить как только получил первые байтики или сначала мне бы полностью загрузить файл, потом уже парсить, а затем удалить его?
2. Как вот такая двухуровневая фигня должна работать? Ну, т.е. я правильно понимаю, что я просто на сервере делаю 2 эндпоинта, один для файлов, другой уже для конечного json'чика, который и буду сохранять в базу? Или как-то иначе делать нужно?
3. Самое наверное сложное. Я правильно понимаю, что будет говнокодом если я все это просто в api-контроллере делать буду? Ну, просто как я понимаю - правильно было бы это все разбить по сервисам, но ведь эти сервисы никогда и нигде переиспользоваться не будут, я вобще, по сути это для себя делаю, чтобы вручную не забивать базу принтеров, а можно было вот так вот кинуть на форму этот MIB-файл, он бы там распарсился, я отметил что мне нужно только объект который за уровень чернил в базе иметь, и сохранил такой вот шаблончик устройства, а потом мог бы создавать новые принтеры, смотря сколько в них чернил осталось. Не будет ли оверхедом выносить парсинг mib'а и создание dto для него в отдельный сервис?

все тот же сисадмин, который таки сделал возможность читать состояние чернил в принтере но в процессе заебался ручками вбивать описание какой объект нужно читать у принтера
Аноним 12/12/20 Суб 20:48:09 1878907345
>>1878900
> должен ли я сразу пытаться парсить как только получил первые байтики или сначала мне бы полностью загрузить файл
В зависимости от того, как этот файл читается. Если читается построчно/побайтово, то зачем тебе ждать весь? Читаешь синхронно.
> Как вот такая двухуровневая фигня должна работать?
Паттерны-паттернушки 2020, ёпт. Я с дивана вижу помимо клиент-сервера паттерн адаптер.
> я вобще, по сути это для себя делаю
С этого надо было начинать. Ебашь с подливой любой говнокод за который не стыдно перед самим собой. Лишь бы работало.
Аноним 12/12/20 Суб 20:53:33 1878908346
>>1878900
>должен ли я сразу пытаться парсить как только получил первые байтики

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

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

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

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

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

По каким сервисам? Один сервис MibToJsonConverterService в котором будет логика конвертации, далее добавляешь его в виде синглотона и внедряешь в контроллер, который будет его использовать.
Аноним 12/12/20 Суб 21:06:21 1878915347
.jpg 334Кб, 910x1100
910x1100
>>1878907
>>1878908
Спасибо, няшки. Держите сисястое аниме.
Аноним 12/12/20 Суб 21:55:49 1878952348
В чем лучше писать код-то?
Типа студия почему-то уже на проекте с 10к строк и 2 проектами в одном солюшне начинает через 2-3 часа лагать жутко. Это на пеке с i7 9700k, 32 гигами оперативки, ссд который по PCI Express подключается. Это пиздец как раздражает.
С другой стороны - райдер. Пиздец какое-то кривое поделие, еще и за меня хочет форматировать. И эти уебищные подсказки насчет типов и имен, блядь, пол экрана отнимают. Вообще какая-то всратая параша на мой взгляд. Но она хотя бы не тормозит.
С третьей - вс код. Тоже не тормозит, но пиздец, постоянно этот ебучий Omnisharp - отваливается, постоянно ломается подсветка, не так удобно многие штуки делать как в студии.
С четвертой - нахуй это все, буду кодить в Notepad++, вот серьезно, я в нем отрыл проект на 500к строк, он открыл его нормально, по нему оч шустро бегать можно, было бы нормальное автодополнение, нормальные инструменты которые позволяли бы чуть больше в ИДЕ чем редактор превратить - было бы заебись. Пока что приходится писать в нем, переключаясь на студию для отладки.

Как вы кодите в проектах больше 50к строк? Неужали терпите по 2 минуты на создание нового файла каждый раз? Или есть какие-то способы заставить студию быть чуть шустрее? Просто у меня в студии из плагинов только который гайдлайн рисует чтобы не забывался и держался в 120 символов на строку, в остальном - голая.
Аноним 13/12/20 Вск 00:21:38 1879037349
>>1878952
>2 проектами в одном солюшне начинает через 2-3 часа лагать жутко
Не знаю, со студией проблем уже лет 6 не было. Проект с 2кк строк и 30ю проектами + пару других солюшенов держатся открытыми днями без перезагрузок. Полёт нормальный.
Аноним 13/12/20 Вск 00:27:05 1879040350
image.png 49Кб, 680x735
680x735
>>1879037
Забыл добавить, что у меня ещё и решарпер стоит. А без него ставил стоял Productivity Power Tools. На скрине то что сейчас установлено.
Аноним 13/12/20 Вск 00:42:16 1879051351
>>1878952
Вообще в этом году с резким подъёмом Cloud Native Development появилась куча тулзяк, с которыми можно и без студии большую часть времени кодить. VS Code отличная штука. Иногда файлы в Notepad++ правлю.

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

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

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

VS 2019 всё-таки самая удобная для разработки.
Аноним 13/12/20 Вск 05:28:12 1879132352
>>1872583
Мелкие выпустили опенсурс, а потом поглотили его (классика же). Теперь будут выходит несовместимые с линуксом интересные либы, которые мотивируют переходить на швиндовс
https://ru.wikipedia.org/wiki/Embrace,_Extend,_and_Extinguish
Аноним 13/12/20 Вск 06:06:10 1879137353
Аноним 13/12/20 Вск 06:24:50 1879139354
>>1879137
Некоторые языки пиарятся что победили косяк "==" с человеческим фактором. А язык, который позиционирует безопасность, привносит сразу два а может и больше аналогичных костыля.

Очередная недальновидная хипстота а сейчас уже модное СЖВ гробит неплохой проект. Ведь тусовка важнее идеи.

Аноним 13/12/20 Вск 06:29:30 1879141355
>>1879137
Как видишь подход из 90х работает до сих пор.
Аноним 13/12/20 Вск 06:30:24 1879143356
>>1879139
Это было в раст тред.
Аноним 13/12/20 Вск 10:05:37 1879179357
Аноним 13/12/20 Вск 12:13:58 1879213358
>>1879179
Земля тебе пухом, братишка, раз так.
Аноним 13/12/20 Вск 14:30:03 1879282359
>>1879132
>несовместимые с линуксом интересные либы
это как?
Аноним 13/12/20 Вск 17:35:32 1879387360
>>1879282
Как WPF.
Запусти мне готовое большое и сложное легаси-приложение на WPF не устраивая адских кранчей по переписыванию всех форм на всякие там авалонии, эты и прочие вэиквиджетсы.
Аноним 13/12/20 Вск 17:36:42 1879388361
>>1879387
> Запусти в линуксе
Разумеется.
Фикс.
Аноним 13/12/20 Вск 17:50:25 1879397362
>>1879387
Проиграл с дауна. Это не либа, а фреймворк. Не работает он на линуксе не потому что злые майки так захотели, а потому что на момент создания wpf не было возможности сделать его кроссплатформенным. Сейчас майки делают отдельный фреймворк для этих целей, под названием MAUI.
Аноним 13/12/20 Вск 17:51:49 1879399363
>>1879397
> эта либа не либа
> выписалась из неймспейсов ещё вчера
Не виляй жопой, маугли, блять.
Аноним 13/12/20 Вск 18:01:28 1879408364
>>1879399
Ты главное таблетки не забывай пить.
Аноним 13/12/20 Вск 18:06:15 1879413365
>>1879397
>Проиграл с дауна.
Зачем грубить?
Аноним 13/12/20 Вск 18:14:12 1879423366
>>1879413
Чтобы в следующий раз человек думал перед тем как что-то высрать.
Аноним 13/12/20 Вск 18:20:01 1879433367
Сап анончики, у меня есть порт COM3. На него я подключил Arduino с RFID-RC522. Как с ардуинки записать что-то в мою прогу на C#? Получить просто так доступ к COM3 я не смогу т.к он занят ардуино. Че делать? Ебусь уже хуй знает сколько времени.
Аноним 13/12/20 Вск 18:21:35 1879436368
image.png 11Кб, 382x245
382x245
>>1879433
Собсна сам код которым я пытаюсь что-то сделать. Было много разных версий, но сейчас когда я пытаюсь считать с порта то программа будто попадает в беск. цикл и не может найти выход
Аноним 13/12/20 Вск 18:22:37 1879440369
>>1879423
Из-за того что ты назвал его дауном? Кого это вообще останавливает на дваче?
Аноним 13/12/20 Вск 20:01:09 1879510370
>>1879397
>Сейчас майки делают отдельный фреймворк для этих целей, под названием MAUI.
в котором поддержка не винды будет силами комьюнити
ну и мауи так себе замена
Аноним 13/12/20 Вск 20:10:08 1879522371
>>1879510
>в котором поддержка не винды будет силами комьюнити
Только Линукса; Мак, iOS и андроид будут из коробки
Аноним 13/12/20 Вск 21:27:59 1879589372
image.png 40Кб, 1283x653
1283x653
Как программно отключить запоминание\автозаполнение форм?
Аноним 13/12/20 Вск 21:41:46 1879599373
>>1879589
<form autocomplete="on | off">...</form>
Аноним 13/12/20 Вск 21:43:15 1879602374
>>1879599
Если бы все было так просто, не работает это.
Аноним 13/12/20 Вск 22:02:51 1879621375
>>1879602
Должно работать. Может ты говоришь про placeholder'ы у инпутов?
Аноним 13/12/20 Вск 22:11:42 1879630376
image.png 38Кб, 1359x594
1359x594
>>1879621
Нет, я захожу на новую страницу а полях уже введенные данные поверх плайсхолдеров, а еще когда ввожу выпадает подсказки, и они не отключаются блин...
Аноним 13/12/20 Вск 22:17:24 1879639377
>>1879213
То другой анон был, но я тоже не вижу. Вообще зачем на эту тему уже есть миллионы комментов на англоязычных ресурсах с аргументами один в один как здесь. Сидит группа обиженных Майкрософтом в 90х-начале 00х и продолжает ныть про Embrace, Extend, and Extinguish. В то время как остальной мир уже давно moved on.
Аноним 13/12/20 Вск 22:20:48 1879644378
Нахрена нужен сингоетон, и как его реализовывать, я сделать обычную реализицаию по типу

string dataString = init();

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

а еще я не понимаю как вернуть собственно сам стринг
Аноним 13/12/20 Вск 22:22:28 1879647379
вот как мне отсюда вернуть стринг?

class Singleton{
private static Singleton instance;
private Singleton()
{}
public static Singleton getInstance()
{
if (instance == null)
instance = new Singleton();
return instance;
}
}
Аноним 13/12/20 Вск 22:23:40 1879650380
Аноним 13/12/20 Вск 22:25:20 1879654381
>>1879650
Клиент говорит что у него на других сайтах все работает нормально... без этих всяких авто-заполнений
Аноним 13/12/20 Вск 22:25:56 1879655382
>>1879522
Ну собственное EEE и работает. Линукс уже бортанули с кривой поддержкой, а мак и прочее заманят несовместимыми решениями онли винда.
Аноним 13/12/20 Вск 22:29:45 1879657383
>>1878898
Если с околонуля до пару часов. Основные конструкции языка + Основы ОПП и уже можно пилить игори. Дальше только курить документацию юнити. Код был конечно с точки зрения С# дно, но зато легко переносимый на любые движки.
Аноним 13/12/20 Вск 22:30:37 1879658384
Аноним 13/12/20 Вск 22:35:33 1879663385
>>1879644
Нифига из твоего описание не понятно, что конкретно тебе нужно сделать.
Синглтон прост как два пальца: что-то, что возвращает один и тот же объект на любой вызов. Нынче делается через всякие IoC/DI. Когда пишешь свой код как обычно, без всяких статиков, но для производительности создаёшь только один экземпляр своего класса и переиспользуешь его везде. Например HttpClient, MongoClient, Configuration. Иногда проще статик класс запилить.

Вообще последние лет 5 вижу ручные синглтоны только в индусских проектах. Эти же индуссы любят про них во время собеседований спрашивать, типа выдай все 50 возможных вариантов написания синглтона для всех возможных и невозможных ситуаций: запретить наследование, выдать/запретить конструктор, изменяемый синглтон (для всяких токенов, например), и ещё миллион ситуаций, которые за тебя уже решили во всякий DI тулзах.
Аноним 13/12/20 Вск 22:37:16 1879667386
>>1879654
Ты чё как офисный планктон? На каком устройстве, в каком браузере клиент проверяет? В самом браузере это можно отключить. Всякими плагинами это можно отключить. Не все браузеры это делают. Чё за детский сад?
Аноним 13/12/20 Вск 22:39:41 1879673387
>>1879658
> этот дело говорит?
Не смотрел, но осуждаю. Синглтон много где применим и слепо его избегать глупо. Тебе нужно, скажем, держать в памяти часто используемые данные, это быстро и удобно. Но ты не используешь их, ПОТОМУ ЧТО ПРЕПОД НА КАФЕДРЕ СКАЗАЛ, ЧТО СИНГЛТОН ПЛОХА-ПЛОХА!Поэтому ты каждый раз грузишь одни и те же данные, чтобы один раз к ним обратиться, а потом ГЦ их высвобождает, забирая ресурсы компа. А через пару секунд ты снова грузишь те хе самые данные в новый инстанс. Чтобы снова один раз прочитать. И снова ГЦ. Потомушта синглтон плоха, тупа, ламерски!
Аноним 13/12/20 Вск 22:45:33 1879681388
>>1879663
Да я разобрался, и сделал, этот >>1879673 анон уже ответил, только не понял что он там за кеш расписывал, разве глобальные переменные не кешируются?

Аноним 13/12/20 Вск 22:45:51 1879682389
Аноним 13/12/20 Вск 22:56:06 1879694390
>>1879681
Давай тогда определения кеша и глобальных переменных, что ли. У меня есть подозрение, что ты мягкое с тёплым сравниваешь.
А ещё, судя по твоему коду выше, то что ты там разобрал будет периодически ломаться в рантайме.
if (instance == null) - эта проверка is not thread safe.
Аноним 13/12/20 Вск 22:56:14 1879695391
Оцените мой синглтон, аноны. Всё правильно сделал?
https://ideone.com/FT2oYq
Из другого модуля тоже единичку вернёт?
Аноним 13/12/20 Вск 23:03:48 1879704392
Аноним 13/12/20 Вск 23:16:44 1879718393
>>1879704
И тебе спасибо за ссылку. Изучил lock.
>>1879695-кун
Аноним 13/12/20 Вск 23:27:16 1879736394
>>1879704
https://help.semmle.com/wiki/display/CSHARP/Double-checked+lock+is+not+thread-safe

В том примере тоже не правильно. Double check с локом - это древний подход и его желательно избегать. Лучше всего в шарпе Lazy подходит. Код компактнее и никаких локов.
Новичок, бойся локов как огня. Там бездна инфы для изучения, и даже после изучения не факт, что у тебя что-то да не отвалится.
Аноним 13/12/20 Вск 23:40:58 1879752395
>>1879736
Простая обёртка.
> В том примере тоже не правильно.
Там весь класс объявлен волатильным.
Аноним 14/12/20 Пнд 05:44:47 1879983396
>>1879752
а, сорян, не заметил, тогда норм
Аноним 14/12/20 Пнд 05:48:46 1879985397
Почему считается что сложно переписывать wpf и winforms приложения на кроссплатформу? Ну типа сделали бы какой-нибудь класс прослойку для графического интерфейса, а оттуда бы всю логику вызывали. Или там все сложнее с подводными камнями?
Аноним 14/12/20 Пнд 06:13:17 1879987398
>>1879985
Вот пытаются MAUI сделать. Написать движок для отрисовки под конкретную платформу не хухры мухры. Не всякие электроны, которые в инстансе браузера хтмл рисуют, а когда настоящий АПИ у хостящей ОС тягать надо, чтобы нативно выглядело. WPF и WinForms приварено к АПИ винды. Проще новый фреймворк запилить.
Аноним 14/12/20 Пнд 07:30:14 1880000399
>>1879704
Пример хуевый, никакие volatile и локи не нужны, эффективнее использовать конструкцию
if (SingletonValue != null) return SingletonValue;

var singletonValue = new SingletonValue();
return Interlocked.CompareExchange(ref SingletonValue, singletonValue, null) ?? singletonValue;
Аноним 14/12/20 Пнд 07:33:13 1880001400
>>1879658
> зачем он нужен то по факту
Если без всяких контейнеров и прочего, то зачастую тебе бывает удобно иметь некую сущность которая бы была неким узлом приложения, и тебе не всегда хочется перегружать конструктор других классов отдавая туда этот узел, чтобы иметь такой вот узел.
Допустим, вот ты пилишь абстрактноте приложение. У тебя есть свой планировщик задач, есть своя ОРМка, есть свое логгирование, ты хочешь из любого класса получить возможность пользоваться всем эти. Довольно удобно в данном случае сделать этот класс синглтоном, Да, тут получается проблема с тем, что классы начинают быть завязаны на синглтон, да, получается, непереносимый код, только вот зачастую это не так и страшно, как многие малюют. Ну и да, то что синглтону трудно наследование реализовать - тоже не так страшно, зачастую сущности что должна быть синглтоном это и не нужно.
Другое дело что ньюфаг узнав про него нечинает пихать куда надо и куда не надо, у него в проекте этих синглтонов становится куча, в рандомных местах дергаются инстансы и просто чтобы вникнуть в логику работы приходится разбираться во всей этой "архитектуре".
Блядь, как вспомню свой первый год, дали мне проект, пилил его какой-то хитровыебанный мастер архитектуры: синглтон для создания событий, синглтон для логгирования, синглтон для того чтобы поверх старого синглтона логгирования можно было логгировать новым методом, синглтон для глобальной обработки ошибок(ведь мы такие вот хитренькие, падать из-за говнокода не хотим), синглтон, блядь, для моделей, нахуй, синглтон для подключения к БД, при этом без какого-то нормального пула соединений, не, нахуй, пусть у нас все пытаются получить соединение, а база просто в определенный момент начинает охуевать. Как же охуенно было это разгребать, просто не представляете.
Аноним 14/12/20 Пнд 10:53:34 1880079401
image.png 25Кб, 860x305
860x305
Пытаюсь обработать исключение можно ли как то писать без второго return ? Или в типе возвращаемых данных метода лучше поставить Void ? Или нормально метод написан ?
Аноним 14/12/20 Пнд 11:40:18 1880103402
>>1880000
и получить параллельное создание new SingletonValue();
ну-ну
Аноним 14/12/20 Пнд 12:26:56 1880127403
>>1879657
Ну а вообще в среде юнитистов принято нормально писать? Обычно всё что я видел было либо как ты описал, либо ооочень сильно оверинженирено.
Аноним 14/12/20 Пнд 12:29:28 1880130404
Поясните ньюфагу.
Допустим есть класс C с методом M { int r = 2+2; return r;}
Далее в Main присваивается int a = С.М();
Вопрос. Каждый раз, когда мы используем переменную a у нас производится вызов С.M? Или результат для а хранится в памяти?
Хранится ли в памяти r? Или он сразу убирается сборщиком после присваивания а?
Аноним 14/12/20 Пнд 12:33:43 1880136405
code.png 17Кб, 251x221
251x221
Аноним 14/12/20 Пнд 12:34:11 1880137406
>>1880130
конечно не производится

производится он только для свойств вида
public int a => С.М();
Аноним 14/12/20 Пнд 12:39:33 1880143407
>>1880130
>Хранится ли в памяти r? Или он сразу убирается сборщиком после присваивания а?
это значимые типы. они вообще на стеке лежат и GC про них не знает.
Аноним 14/12/20 Пнд 12:46:30 1880147408
1879139
А можно подробнее, чего там именно гробит хипстота?
Аноним 14/12/20 Пнд 12:47:27 1880150409
>>1879139
А можно подробнее, чего там именно гробит хипстота?
Сорян, запорол разметку в первый раз
Аноним 14/12/20 Пнд 14:10:27 1880206410
>>1880136Ну да так получше выглядит. Благодарю.
Аноним 14/12/20 Пнд 17:24:13 1880356411
Аноним 14/12/20 Пнд 19:07:45 1880455412
>>1880356
> return y == 0 ? math.MaxInt : x / y;
Мы вам перезвоним (нет).
Аноним 14/12/20 Пнд 19:38:54 1880488413
.png 3Кб, 388x110
388x110
>>1880079
Тебе не придется ловить исключение, если ты кидаешь его первым!
Аноним 14/12/20 Пнд 21:11:59 1880586414
>>1880488
>>1880455
>>1880356
вы все упороты. какой нафиг дивайдзероэксепшен
нужно кидать ArgumentException и тому подобное
Аноним 14/12/20 Пнд 21:24:00 1880594415
>>1870468 (OP)
Аноны, зачем нужна база данных и СУБД? Можо ли как-то, на c#, на серверной стороне, реализовать базу данных на файлах,
чтобы хранить там логины-хэши паролей, и данные юзера, его активность - в файлах, а не в базах данных?
Аноним 14/12/20 Пнд 21:28:10 1880599416
>>1880594
Можно. Получится менее удобно в пользовании, сложнее будет управлять доступом, работать будет медленнее. Дерзай.
Аноним 14/12/20 Пнд 21:40:06 1880607417
>>1880594
> зачем нужна база данных и СУБД
Затем что она просто хранит твои данные, удобно и предоставляет быстрый доступ. СУБД же не дураки пишут, там всякие хитрые алгоритмы применяются для сжатия данных, для индексирования, всякие статистические методы, чтобы обеспечить тебе более быстрый доступ, например - "горячие-холодные данные", когда то что чаще нужно - лежит в начале очереди и таким образом поиск часто запрашиваемых данных происходит быстрее. Ну и вообще, там много хитростей, обеспечивающи тебе наиболее быстрый и комфортный доступ к данным.
> Можо ли как-то, на c#, на серверной стороне, реализовать базу данных на файлах,
Можно. Другое дело что если ты будешь постоянно держать в памяти какой-то здоровый кусок данных, допустим базу данных пользователей - твое приложение будет жрать кучу ресурсов, а если не будешь, у тебя будут постоянные обращения к диску, что медленно. Опять же, придется заморачиваться с доступом к этим файлам, допустим, вот тебе из 10 потоков нужно почитать и 2 потока хотят писать, это довольно заебисто на самом деле, особенно на больших файлах.
Опять же, почти все СУБД сейчас позволяют вынести себя на отдельный сервер, что позволяет строить более гибкие системы, т.к. можно замутить кластер серверов для данных, кластер серверов для твоего приложения, в случае если что-то из этого упадет, клиент и не заметит, в случае же с обычным файлом ты заебешься все это как-то синхронизировать, а если таки начнешь пытаться, то так или иначе придешь к концепции СУБД, независимо от того будет ли это реляционная, документоориентированная или какая-то еще.
Аноним 14/12/20 Пнд 21:47:13 1880616418
>>1880594
конечно можно. только вот потом понадобится поиск в этих файлах, транзакционное обновление, частичное обновление чтобы не перезаписывать весь файл, разделение на файлы и управление ими, файлы индексы
и ты напишешь кучу кода которое будет это делать -и тем самым ты создашь примитивный движок субд
а потом плюнешь и заменишь на готовый
Аноним 14/12/20 Пнд 22:48:33 1880679419
>>1880599>>1880607>>1880616

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

Самое простое, что приходит в голову, это сделать файл:
>admin;hash(adminPassword);
>user1; (hash(user1Password) XOR hash(adminPassword)); (hash(controlQuestionUser1) XOR hash(adminPassword))
>user2; (hash(user2Password) XOR hash(adminPassword)); (hash(controlQuestionUser2) XOR hash(adminPassword))
>user3; (hash(user3Password) XOR hash(adminPassword)); (hash(controlQuestionUser3) XOR hash(adminPassword))
>...
где user1 - логин юзера,
user1Password - пароль юзера (передающийся по открытому каналу, кстати, отчего его могут стырить),
hash(user1Password) - хэш пароля для хранения, чтобы его не стырили из базы если чо,
(hash(user1Password) XOR hash(adminPassword)) - поскоренные хешы, чтобы не подобрали пароль брут-форсом, или радужными таблицами,
(hash(controlQuestionUser1) XOR hash(adminPassword)) - то же самое, но только с контрольным вопросом, позволяющим восстановить пароль.

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

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

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

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

Ну... Или... Подскажите что-ли, норм СУБД, для .NET Core 2.0, чтобы open-source она была.
Аноним 14/12/20 Пнд 23:01:48 1880696420
>>1880679
Не еби себе мозги и посвяти пару вечеров изучению СУБД.
Аноним 14/12/20 Пнд 23:03:59 1880700421
>>1880696
>При числе юзеров в 1000000, файл будет достаточно велик, и грузится сразу.
держать все в памяти? зачем?

А вообще очевидно что нужно будет делать выборку по пользователю и если не держать все в памяти, то мудрить индекс по файлу
проще уж sqlite взять в котором тот же файл с готовым этим
Аноним 14/12/20 Пнд 23:06:29 1880704422
Кстати, какие СУБД нынче наиболее удобно интегрированы в дотнет?
Аноним 14/12/20 Пнд 23:09:33 1880708423
>>1880679
ПостгреСКЛ бесплатная, МССКЛ урезанная бесплатная. Можно использовать не реляционную базу данных типа МонгоДБ или Файрбейз у которых есть бесплатные версии с ограниченным объемом хранимых данных.
Аноним 14/12/20 Пнд 23:27:07 1880723424
>>1880696
А каким именно? Литературу подвезёшь?
Я же сам писать собрался функционал СУБД, разве это не очевидно?

>>1880700
>держать все в памяти? зачем?
Потому что - один файл: https://github.com/username1565/nanoboard/blob/8f0edd8d02b9f680f7ce1f70ddd29b8f7c367110/nanodb.exe-source/Database/PostDb.cs#L36

>А вообще очевидно что нужно будет делать выборку по пользователю и если не держать все в памяти, то мудрить индекс по файлу
Впрочем, индекс уже есть:
https://github.com/username1565/nanoboard/blob/8f0edd8d02b9f680f7ce1f70ddd29b8f7c367110/nanodb.exe-source/Database/PostDb.cs#L28

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

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

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

То что я описал выше, с таблицами для юзеров - это я хочу сделать faucet,
для раздачи крипты за решения каптчи.
А то сидят куча людей, без работы, скучают, делать нехуй, последний хуй без соли доедают,
а так хоть можно будет - каптчу повводить, и крипту получить.
Ещё, хотелось бы заебенить сервис для продажи пасскодов, как на двоще,
и юзать решённые каптчи наборды там.
Конечно я вижу это как два РАЗНЫХ сайта, или даже, быть может - один, но там, очевидно,
нужна регистрация и авторизация, и эти вот таблицы ебучие, и база данных, и СУБД,
и хуй знает как это всё впилить - пиздец просто. Сплошной пердолинг какой-то, ебать.
Аноним 14/12/20 Пнд 23:31:07 1880726425
>>1880704
нет такого понятия
ряд реляционных бд представлен через унифицированный подход ADO.NET
если хочется ORM, то тут уже выбор поменьше и зависит от ORM
Ну а если NOSQL то там каждый предоставляет свой подход и понятия "наиболее интегрирован" просто нет

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

ну а если тебе хочется написать свое (ну может спортивный интерес) то это другое дело
Ну не верю я что нельзя понять как использовать бд, но при этом умудриться написать свою.
Аноним 15/12/20 Втр 00:10:04 1880765426
>>1880726
> ряд реляционных бд представлен через унифицированный подход ADO.NET
Спасиб.
Я не наношизик >>1880723 если чё. Я мимопроходил.
Аноним 15/12/20 Втр 00:32:14 1880777427
>>1880726
>потому что один файл что?
Я же ссылку на код вбросил, там и посмотри как он пишется этот файл. Там тупо данные в файле, и отдельно - файл со смещениями, где эти данные лежат.
Смещеня - целиком, грузится в память, при загрузке nanodb.exe.

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

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

>ну а если тебе хочется написать свое (ну может спортивный интерес) то это другое дело
Именно. Изначальный вопрос, был о том, как с нуля реализовать минимальную СУБД, и БД, желательно - в виде файлов. Именно с нуля.
Короче, реквестировалась годная инфа, чтобы вкатиться в сами "Основы СУБД".
>Ну не верю я что нельзя понять как использовать бд, но при этом умудриться написать свою.
Да мне не особо нужен весь функционал СУБД, и БД, как таковая.
Просто, блядь, таблички эти ебучие, надо же как-то грамотно схоронять и ориентироваться по ним. Вот и всё. Если это можно сделать в пару строк кода, нахуй тогда инклюдить СУБД с этими ихними нечитабельными файлами баз данных, которые ещё и задамажится могут от одного лишь бед-сектора, и которые имеют проприетарный копирастический говнокод, коммерческий, и наверняка, обфусцированный вместе с дырами (бекдорами), вирями и троянами. А одни только SQL-инекции чего стоят. И всё это говно - пхнуть заместь такой опенсорцной няшки, как 0.db3, которая на нанобородчке? Ну нахуй. Понял, да?
Аноним 15/12/20 Втр 00:58:32 1880793428
Как я могу я получить модель из базы в _layout.cshtml? мне нужно настроить кастомизацию навбара
Аноним 15/12/20 Втр 01:10:56 1880803429
>>1880777
>и опять же, целиком -грузить смещения для записей в основном файле.
Ну для тех кто хранит индекс в виде плоского списка - для них да.

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

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

>пхнуть заместь такой опенсорцной няшки, как 0.db3, которая на нанобородчке? Ну нахуй. Понял, да?
а вот это непробиваемый аргумент. Нечего возразить.
но я лучше sqlite возьму при таких требованиях, ну или LiteDB
Аноним 15/12/20 Втр 01:13:11 1880805430
>>1880793
эээх не доходят руки переделать MVC асп.нета в MVP. Спасибо что напомнил
Аноним 15/12/20 Втр 01:27:16 1880813431
>>1880803
>но я лучше sqlite возьму при таких требованиях, ну или LiteDB
А они пойдут на .NET Framework 3.5 или на .NET Core 2.0, или не, и придётся таки свою "базу" пилить?
Аноним 15/12/20 Втр 02:36:27 1880841432
>>1880127
Если планируешь работать в нормальных конторах конечно там требования повыше, а так каждый дрочет как он хочет.
Аноним 15/12/20 Втр 02:51:24 1880847433
Аноним 15/12/20 Втр 03:05:54 1880853434
image.png 8Кб, 666x71
666x71
Как позволить специальные символы в форме?
Аноним 15/12/20 Втр 03:10:48 1880857435
>>1880803
>писать свой код для чтения данных чужой базы данных напрямую вместо чтения средствами самой бд (который суть тот же функционал и оптимизирован по самое) - это как бэ ну эта....

Я так и не понял, вообще, чисто в теории, можно полностью заменить весь этот ебический функционал СУБД,
каким-то универсальным набором чисто файловых операций, и вместо базы,
и таблиц в ней, и записей в этих таблицах - попросту хранить ебическую кучу файлов, и папок,
где каждый файл - запись из какой-либо таблицы?
Насколько я понимаю, файловая система - это же и есть БД, не?
Только как оно всё работает, на принципах "концепции СУБД" - я не ебу,
просто потому, что я в душЕ не деру, что такое ваще эти грёбанные СУБД.
Аноним 15/12/20 Втр 04:26:43 1880888436
>>1880857
Я правда надеюсь что ты просто троль. Читая тебя начинаешь думать что в дурдом завезли интернет...
Аноним 15/12/20 Втр 06:35:39 1880909437
>>1880888
Это не ответ. Если SQLite тоже не станет на .NET Framework 4.0, то придётся пилить свой велосипед.
Аноним 15/12/20 Втр 12:04:54 1880988438
Господа, как понять, что можно претендовать на позицию миддл девелопера? 1.10 опыта, работал в основном с WCF, WebAPI, хранимками в MSSQL, плагинами под Azure DevOps, ну и немного с ангуляром. ЗП 115к на руки, ДС.
Аноним 15/12/20 Втр 12:15:28 1880993439
1
Аноним 15/12/20 Втр 14:32:45 1881080440
>>1880805
Так как такое реализовать?
Аноним 15/12/20 Втр 14:35:33 1881084441
Тут у меня один знакомый интересуется. Можно ли совместить в одном проекте дотнет и моно? Он жалуется, что у него какие-то пакеты отказываются работать. А проект изначально на моно. Подробностей доставить не могу, этот хуй мне не друг.
Аноним 15/12/20 Втр 16:38:08 1881165442
Парни есть вопрос походу он супер тупой но все же.
Написал пачку Unit Tests они каждый раз все бегают.
А можно как то часть из них отключить? Ну что бы выполнялись только первые 2 а остальные не прогонялись. Использую VS 2019.
Аноним 15/12/20 Втр 17:34:47 1881234443
Котятки, помогите с частью одной лабы пожалуйста. У меня есть родительский и дочерний класс. В родительском есть приватное поле, и виртуальное свойство для доступа к этому полю. В аксессоре set этого свойства я просто всегда присваиваю этому полю значение 5. В дочернем классе нужно переопределить это свойство, чтобы сеттер уже нормально работал. Это вообще реально? Выглядит как абсурд какой-то. https://ideone.com/rHJQtr
Аноним 15/12/20 Втр 17:41:09 1881243444
Как впихнуть в интерфейс статичный метод? Этот метод должен быть независим от стейта инстанса, в котором его вызывают. Конечно, я могу в доках прописать чтобы в нем не юзали this, но хотелось бы это на уровне кода сделать.
Аноним 15/12/20 Втр 18:49:46 1881292445
Аноним 15/12/20 Втр 18:51:36 1881298446
>>1881084
Моно теперь часть .NET 5, пусть на него переходит.

А так то можно любые библиотеки друг с другом дружить. Тут у людей есть C# -> Java -> C++ -> C# -> C++ цепочки. Зависит от креативности.
Аноним 15/12/20 Втр 18:52:46 1881300447
>>1881165
Можно, разрешаю.
Для юнит тестов есть куча разных библиотек, читай доку как это делать конкретно в твоей библиотеке. А так они все это поддерживают.
Аноним 15/12/20 Втр 18:53:27 1881304448
>>1881243
Через extension methods же.
Аноним 15/12/20 Втр 18:59:49 1881315449
>>1881080
А зачем. Это ж фломастеры.
В MVC у нас контроллер, который принимает запрос, достает что нужно из базы и передает виду "вот тебе параметры - рендери". И вид на их основе рендерит. Ну еще и на основе того, что может сам достать - текущий запрос, сервисы...
В MVP у нас презентер, задача которого сформировать данные для рендера и вид рендерит используя презентер. То есть вид ЗНАЕТ про презентер и использует для рендера.

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

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

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

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

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

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

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

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

Это просто мне приятнее работать с компонентами, которыми я оперирую в презентере в виде нормальных вызовов методов и построения урла с учетом всех этих особенностей. Но мир привык к MVC
Аноним 15/12/20 Втр 18:59:59 1881317450
image.png 18Кб, 476x172
476x172
Аноним 15/12/20 Втр 19:03:23 1881324451
20190929095249.jpg 34Кб, 433x389
433x389
Аноним 15/12/20 Втр 19:11:01 1881333452
>>1881317
>Тебя в гугле забанили?
это же очевидно. иначе бы он давно разобрался в субд
Аноним 15/12/20 Втр 21:09:04 1881415453
>>1881300
О ништяк ) Буду искать а то что то даже не знал где искать
Аноним 15/12/20 Втр 22:00:06 1881445454
image.png 44Кб, 970x337
970x337
В винформах после апликейшн ран код ниже что ли не работает?
Продебажил, на этом остановился, функции не выполняет, это в классе Form1 дальнейший код писать или всё же как-то заставить его можно дальше работать?
Аноним 15/12/20 Втр 22:02:14 1881447455
>>1881445
Код выполнится после того как закончится работа метода Application.Run
Аноним 15/12/20 Втр 22:03:01 1881451456
>>1881447
а блин, логично, эпликейшн же запущен...
Аноним 15/12/20 Втр 22:05:30 1881456457
>>1881451
Код синхронно выполняется. Вызываешь один метод и всё что ниже отработает только когда этот метод вернёт управление вызвавшему его коду. Эпликейшн, не эпликшн, разницы нет.
Аноним 15/12/20 Втр 22:32:08 1881487458
image.png 52Кб, 860x507
860x507
>>1881456
Какое-то мучение, и где код писать, основную логику? У меня логика была в статическом классе, форму делать статической это ещё куча проблем с наследованием и прочим. Хочу лейбл изменить, во время увеличения таймера, но постоянно какая-то с этим беда, сначала думал экземпляр формы создавать, но тогда в бесконечный цикл уходил, делал публичным, статическим и т.д... вообще жуть какая-то.
Извините за столь очевидные вопросы, просто сгорел уже.
Аноним 15/12/20 Втр 22:32:36 1881489459
Я доделаю эту лабу и выкачусь из айти :(
Аноним 15/12/20 Втр 22:35:20 1881492460
image.png 63Кб, 856x362
856x362
да и че-то сомневаюсь что вручную кто-то меняет модификаторы из программистов, значит в этом же классе пишут...
Аноним 15/12/20 Втр 23:04:33 1881516461
>>1881487
Используй паттерн MVC.
Аноним 15/12/20 Втр 23:06:29 1881519462
>>1881516
В формсах используют MVP
Аноним 15/12/20 Втр 23:09:14 1881527463
>>1881519
И больше нигде, а MVC пригодится если для веба будешь писать, поэтому не вижу смысла учить то, что нигде кроме винформс не пригодится.
Аноним 15/12/20 Втр 23:28:15 1881548464
>>1881527
Было бы что учить
Аж полчаса почесывая яйца из которых 10 минут гуглить
Аноним 15/12/20 Втр 23:30:11 1881552465
>>1881519
Двачую
>>1881527
>И больше нигде,
Ага, ну раз ты сказал что больше нигде. Он сплош и рядом в мобайле используется, только все равно, использование хуй пойми где это не аргумент за выбор чего-либо
>>1881527
>пригодится если для веба будешь писать, поэтому не вижу смысла учить то,
Мои соболезования если тебе их приходится учить
Аноним 15/12/20 Втр 23:56:07 1881575466
>>1881527
Да это другой анон ответил, но всё равно спасибо
>>1881519
Хорошо, посмотрю что за мвп.
Аноним 16/12/20 Срд 13:51:43 1881852467
Спиздил проект для курсача, переделал под себя. В С# я нуб.
Спрашивают про стек использованных технологий, а я не понимаю какие там технологии использовались. Asp net ли там, entity framework ли, sql или mysql. Как это определить?
Аноним 16/12/20 Срд 15:48:42 1881952468
>>1881852
Посмотри все csproj файлы, там описаны все установленые зависимости для проекта.
Аноним 16/12/20 Срд 16:05:48 1881969469
ppp.PNG 14Кб, 390x227
390x227
Аноним 16/12/20 Срд 17:34:38 1882024470
>>1881969
У тебя на диске файл есть с расширением .csproj. В него глянь, можно сюда скрин кинуть.
Аноним 16/12/20 Срд 17:39:41 1882025471
scr.png 80Кб, 1246x874
1246x874
>>1882024
Вот что мне открылось.
Аноним 16/12/20 Срд 17:41:33 1882027472
>>1882025
справа ты загородил всё классами.. ну вижу что у тебя MVC aspnetcore, субд попробую в конфиге посмотреть
Аноним 16/12/20 Срд 17:43:16 1882028473
scr.png 15Кб, 360x425
360x425
Аноним 16/12/20 Срд 17:47:38 1882030474
image.png 25Кб, 425x604
425x604
>>1882028
Я просто сам в шарпе нубас, раз никто не отвечает пытаюсь помочь.
Короче, вот статья как подключается, в нугет пакетах надо посмотреть установлен энтити фреймворк, ну и вообще чекни что в статье написано.
https://metanit.com/sharp/entityframeworkcore/1.3.php
Аноним 16/12/20 Срд 18:09:40 1882045475
>>1882025
Ебические силы. Ты не в шарпе нубас, ты в принципе с компом на Вы. Я тебя попросил файл открыть. Файл блядь. В текстовом редакторе. Просто открой контент файла. Делается в 1 секунду на любом компе.
Аноним 16/12/20 Срд 18:20:00 1882053476
>>1882045
О, я все понял)))
Лихо ты меня приложил, плюсую.
Аноним 16/12/20 Срд 21:05:28 1882144477
Стикер 255Кб, 512x512
512x512
>>1870468 (OP)
Читаю я тут статью в стиле "Геттеры/сеттеры - зло" и немножко переосмысляю свое существование.
Однако один вопрос все еще стоит ребром.

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

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

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

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


Или есть иной способ?
Аноним 16/12/20 Срд 21:10:35 1882148478
>>1882144
Ну т. е. у тебя знаний на уровне "1 час изучаю язык", а ты уже какой-то бред в стиле "Геттеры/сеттеры - зло" читаешь? В очередной раз убеждаюсь, что маняме в посте это маркер умственно отсталого.

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

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

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

Не становится, она так и будет хранить в себе значение 10, если ты не перезапишешь значение этой переменной.
Аноним 16/12/20 Срд 21:31:33 1882158479
>>1882148
Да, ты прав, оказывается.
А почему в питоне не так?
Аноним 16/12/20 Срд 21:41:42 1882165480
Аноним 16/12/20 Срд 21:46:55 1882169481
Аноним 16/12/20 Срд 21:53:05 1882176482
videoplayback.mp4 1790Кб, 1280x720, 00:00:12
1280x720
Аноним 16/12/20 Срд 22:09:52 1882194483
>>1882176
Ну что? У меня не получается повторить, но я абсолютно точно уверен, что видел такую хуйню. Переменная менялась сама, когда менялись данные класса, на которые она ссылалась.
Аноним 16/12/20 Срд 22:22:45 1882206484
>>1882144
Самое главное, при чем тут нахуй геттер? Я вообще не понял какое он имеет отношение к
> То есть предыдущее состояние не запомнилось. А мне в будущем нужно работать с историей веса собакена. Как быть
Тут хоть с геттером, хоть без - предыдущее состояние не запомнится само по себе
Но я сегодня добрый, потому вот тебе сразу вариант без геттера

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

А вообще, ты какую-то хуйню прочитал.
Аноним 16/12/20 Срд 22:34:53 1882215485
В общем ребятки, смотрите, я хочу через сигналр оповещать клиента о том что что-то обновилось. Воооооот.
Что я сделал. Я сделал синглтончик который некая уродливая помесь медиатора и обсервера. Я в своем репозитории передаю этого монстра, в нем есть метод Notify, когда мой ЮнитОфВорк коммитит успешно изменения, в хабе я подписался на событие этого монстра и рассылаю клиентам уведомление.
Суть, мне кажется что это какая-то залупа, не нравится, короче мне как оно выглядит, особенно мне не нравится то что из-за того что хабы - короткоживущие - мне приходится вручную отписываться в методе Dispose от этого нотифаера, чтобы не было ObjectDisposedException. Есть ли более элегантый способ в реальном времени актуальную инофрмацию из базы клиенту предоставлять? Или все так делают и в этом ничего такого нет?
Аноним 16/12/20 Срд 22:42:33 1882222486
>>1882194
Переменная никогда сама не меняется, таблетки уже выпей, манямедитё.
Аноним 16/12/20 Срд 22:43:48 1882224487
>>1882144
неосилятор в треде))))
какого осознавать что на завод пойдёшь?
Аноним 16/12/20 Срд 22:44:05 1882225488
>>1882194
Ну так ты бы хоть проверил для начала, происходит то о чём ты спрашиваешь или нет.
В шарпе есть типы-ссылки (reference types) и типы-значения (value types). Все примитивные типы (int, double, char, bool, и т.д.) являются типами-значениями, т.е. они хранят в себе само значение, а не ссылку на объект.
По-моему вообще не существует ни одного языка, где int не был бы простым значением.
Аноним 16/12/20 Срд 22:49:00 1882230489
>>1882225
В петухоне все значения ссылочные, просто какие-то из них иммутабельны, а какие-то нет. Иммутабельны те которые в других языках являются значимыми типами.
Аноним 16/12/20 Срд 22:52:22 1882233490
>>1882230
Ну ок, но с точки зрения новичка разницы в поведении не будет.
Аноним 16/12/20 Срд 22:56:25 1882237491
>>1882233
Суть в том, что в данном случае тип данных не имеет значения. Переменная всегда будет иметь то значение, которое ей присвоили, независимо от типа этого значения. Если это ссылка на объекта, то она этой ссылкой на объект и останется, независимо от того что ты с этим объектом делать будешь.
Аноним 17/12/20 Чтв 00:14:19 1882275492
Чот на тред набег какой-то. Или я параною?
Аноним 17/12/20 Чтв 01:04:13 1882317493
Аноны, Как указать в нет кор, по какому адресу попадает пользователь если он не залогинен я использовал автогенерацию Идентити, но хочу изменить
Аноним 17/12/20 Чтв 01:08:31 1882322494
>>1882215
Да, залупа. Надо учить паттерны проектирования. Без них тут только готовое решение поможет. На пальцах будет несколько месяцев объяснять.
Аноним 17/12/20 Чтв 01:09:56 1882323495
>>1882275
В плане тупых вопросов? Видимо сессия, сдавать надо срочно.
Аноним 17/12/20 Чтв 01:17:41 1882325496
>>1882317
Один миллион и один способ. Это вопрос вида: как увидеть дерево? Просто ответ - возьми да увидь. Но потом добавляется, что чувак находится в пустыне, в катакомбах под песком, и вообще у него нет глаз. А через время выясняется что вместо глаз у него электронные визоры, в которые по идее можно было бы загрузить изображение дерева и наебнуть систему.

Чё я хочу сказать - если хочешь помощи, то оформляй вопрос правильно, с деталями, скриншотами, что пробовал, какие результаты получил. или иди нахуй
Аноним 17/12/20 Чтв 01:20:36 1882328497
>>1882325
ЛОЛ, чет проорал, но я понял о чем ты, вопрос снимается
Аноним 17/12/20 Чтв 04:59:31 1882391498
>>1881317
Интересно, откуда эта картинка?
Если она опен-сорц, то можно ли как-то из сорца её сбилдить на .NET 4.0?
>>1881333
Так а что искать-то, говорил же, 80 вкладок открыл, многабукаф английских про непонятное увидел, и закрыл их нафиг.
Аноним 17/12/20 Чтв 05:11:14 1882394499
>>1882391
Всё, нашёл: https://devpractice.ru/sqlite-c/
Там исходник, ссылки на пре-компиленные dll-ки, и вся хуйня.
Ебать меня разворотило, здесь, от этих неведомых СУБД.
Аноним 17/12/20 Чтв 05:26:13 1882395500
>>1882394
sqlite - не субд, а просто бд. Это файлик в особом формате. И к нему на разных языках поставляется провайдер, который знает как этот файлик читать.
Аноним 17/12/20 Чтв 08:36:39 1882431501
>>1882394
Бля, там прекомпиленная либа на гитхабе, а сорца нет чтобы её собрать. Хз как её сбилдить, и где этот долбанный сорц.

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

Чтобы не инклюдить неведомое, в опенсорцный проект, можно ли без баз данных этих и СУБД, вообще обойтись,
и просто хранить таблицы - хуй знает как, в JSON'е-файлах, штоле, отдельных, с каким-то ёба-уровнем организации,
так, чтобы не грузить весь JSON-файл, в память, а только то, что нужно?
Первое что приходит в голову - это куча папок, где каждая - имя таблицы,
и внутри них - тупо JSON-файлы, со значениями строчек таблиц, этих ебучих.
А уже через логику софтины, читающей и записывающей, всю эту залупу,
всю эту хуйню взаимосвязывать, и извлекать и писать что надо, и искать, и делать выборки.
Тупо минимальный функционал.
Нахуй мне вся СУБД от хуй знает какой корпорации, которая корпоративные хуйни корпоративизирует,
и где какой-нибудь файл setup.exe весит 500 мегабайт, и содержит хуеву кучу проприетарного обфусцированного говнокода, с троянами?
Аноним 17/12/20 Чтв 08:45:54 1882433502
>>1882431
О, ебать. Я только что открыл для себя - файловую базу данных: https://habr.com/ru/post/16123/
Надо поколупать в этом направлении, бгггг
Аноним 17/12/20 Чтв 09:18:48 1882443503
>>1882433
Если глянуть глубже, то согласно принципу однородности памяти, из принципов архитектуры Фон-Неймана в двоичном коде любой программы - команды и данные хранятся в одной памяти. Данные, можно рассматривать как базу данных, а команды - как СУБД, то есть логику работы с этой базой данных.
Аноним 17/12/20 Чтв 10:37:50 1882468504
image.png 34Кб, 1392x229
1392x229
image.png 10Кб, 936x119
936x119
Парни нужна небольшая помощь или подсказка.
Установил Selenium и Nunit пакеты в VS.
Надо проинициализировать браузер зайти на сайт проверить статус поле поиска(isDisplayed, isEnabled) - получить значение методов.
Подскажите в каком nameSpace эти методы не могу их отобразить.
И еще когда пиши локатор не могу подтянуть класс BY и его методы для определения в чем соль?
Аноним 17/12/20 Чтв 11:25:54 1882510505
>>1882468
А уже все нашел. СПС
Аноним 17/12/20 Чтв 11:27:09 1882513506
Как кто делает ожидание страницы ?
Ну когда нужно подождать загрузки и т.д. метод Thread.Sleep() сказали использовать только в крайнем случае. Подскажите вариантов или примеров если можно.
Аноним 17/12/20 Чтв 11:31:42 1882517507
>>1882513
Многопоточность? асинхронное вычисление? не?
Аноним 17/12/20 Чтв 11:56:10 1882537508
>>1882513
>метод Thread.Sleep() сказали использовать только в крайнем случае
Долбоебы сказали.
Ты делаешь кастомный метод WaitPage(int timeout=10), в котором пишешь цикл, ждущий конкретного результата. Если не находит, спит секунду и повторяет поиск. Находит — break и возвращает, что надо.
Аноним 17/12/20 Чтв 12:41:46 1882571509
>>1882323
Когда я учился, сессия в январе была. Что же с нами стало.
Аноним 17/12/20 Чтв 12:53:03 1882580510
>>1882513
await Task.Delay(TimeSpan.FromSeconds(secondsToWait));
Аноним 17/12/20 Чтв 12:54:45 1882582511
>>1882571
У нас сессия в январе, но сдачи у нас еще в ноябре начались
Аноним 17/12/20 Чтв 13:05:19 1882595512
Как считаете, требования в США к программистам выше, чем в России? К тем же .NET разрабам.
Может прогер, считающимся Джуном в России, найти там работу?
Аноним 17/12/20 Чтв 13:10:52 1882601513
>>1882595
В европе требование ниже, меня взяли в тим на фронтенд на первом курсе просто потому что я умел работать с пиратским фотошопом и верстать на хтмлке, в дотнет я уже попал на взрослую должность с опытом програмирования, но вообще без опыта в .net, в сша из того что я знаю требования еще ниже, что тут говорить когда там даже индусы пользуются спросом...
Аноним 17/12/20 Чтв 13:13:15 1882604514
Аноним 17/12/20 Чтв 13:14:27 1882607515
Аноним 17/12/20 Чтв 13:24:12 1882618516
Inception.jpg 107Кб, 1029x346
1029x346
Можно ли в этой лямбде в конструкторе избавиться от ссылки на конкретный экземпляр листа, и использовать поле из экземпляра, в конструктор которого она передаётся?
this возвращает экземпляр AbilityWalk, а не AbilityInput
Аноним 17/12/20 Чтв 13:51:14 1882657517
Аноним 17/12/20 Чтв 14:36:50 1882715518
>>1882657
Ладно, тогда буду переопределять инпут для каждого конкретного случая. Дальше так всё равно будет удобнее, хоть и кода больше.
Аноним 17/12/20 Чтв 16:48:35 1882812519
>>1882604
Значит требования как минимум не ниже?
Аноним 17/12/20 Чтв 16:48:57 1882815520
image.png 62Кб, 1277x549
1277x549
Сижу кароче над одним кейсом.
Можете посмотреть, и сориентировать насколько верно реализовал, и где херня если неверно.
Аноним 17/12/20 Чтв 16:55:25 1882819521
Посоны, что за # Eval? В гугле и документации ничего не нашёл.

namespace SomeNamespace {
public class SomeClass : global::SomeOtherClass {
protected void Some_Page_Load(object sender, EventArgs e) {
# Eval("onlineId")
# Eval("GUID")
# Eval("onlineAccess")
}
}
}
Аноним 17/12/20 Чтв 17:35:36 1882857522
image.png 49Кб, 1200x500
1200x500
Или вот это будет посинглтонистее?
Ну или херня как и прошлый пример.
Аноним 17/12/20 Чтв 17:44:01 1882868523
>>1882513
Ожидание загрузки страницы делается на фронте, не? Зачем ты бэкенд спать отправляешь?
Аноним 17/12/20 Чтв 17:47:04 1882872524
>>1882595
От конторы зависит. Были как лёгкие так и жёсткие собеседования и там и там.
Аноним 17/12/20 Чтв 17:49:55 1882879525
>>1882857
Для тестов пойдёт. Вообще можно сделать сам класс статичным и добавить приватный статичный конструктор, в котором будет инициализация.
Аноним 17/12/20 Чтв 17:56:31 1882890526
>>1882879
И в кострукторе можно через Null объединение ебануть проверку и если что инициализацию?
Аноним 17/12/20 Чтв 17:57:28 1882892527
>>1882868
Ну мне нужно для написания тестов UI что бы страница загрузилась и можно было дойти до всех элементов.
Аноним 17/12/20 Чтв 19:03:54 1882957528
>>1882892
Ты в курсе, что Селениум по умолчанию ждет, пока страница не загрузится? Отследить это можно по спиннеру, который крутится на месте фавиконки сайта. Пока он крутится - Селениум ничего не предпринимает. Докрутился - начинает искать элементы.
Аноним 17/12/20 Чтв 20:35:30 1883016529
Аноним 17/12/20 Чтв 21:15:57 1883038530
>>1874740
Ну у меня не просто тесты. У меня ещё на F# пишется генератор рандомных данных для проекта + много математики.
Аноним 17/12/20 Чтв 21:45:44 1883056531
>>1882819
Бамп вопросу. Это что-то из C#, или какая-то левая хуйня?
Аноним 17/12/20 Чтв 23:14:33 1883116532
>>1883056
Левая хуйня. Вызывает функцию жабоскрипта браузера.
Аноним 18/12/20 Птн 01:04:17 1883192533
Аноним 18/12/20 Птн 07:50:31 1883276534
1608267023452.jpeg 9Кб, 323x190
323x190
Извините за вероятно ньюфажный вопрос - можно ли использовать энтити фреймворк просто в качестве sql запросов, без явной загрузки данных в контекст?
Я писал простой примитивный код для работы с бд, на уровне dbContext.SaveChange()/tableName.ToList() , но при полугиговой бдшке, простая форма для админки с энтитей сожрала у меня 3-4гб озу и это не смешно =[ . Раз в пару минут приезжает GC и просто уполовинивает занимаемую память, но это все равно пиздец. На форме конечно datagridview для просмотра, за него я знаю, к нему нужно прикрутить воннаби paging, с ним я разберусь.
А еще, дело в том что я работаю с шифрованием и потому на каждую таблицу делаю дополнительный класс-прослойку для корректного отображения в датагриде. Там расшифровка данных + небольшая логика преобразований данных из базы для нормального отображения. +Изменение данных происходит не при помощи датагрида, а посему мне бы вообще данные в контексте не хранить если так можно.
Аноним 18/12/20 Птн 11:47:29 1883328535
>>1883276
Можно.
contex.Set<T>().FromSqlRaw("Select zalupa from Pizda")
Но вообще, раз уж тебе не нужен EF - выпили его нахуй, возьми, например, даппер. Если писал все по-уму, тебе просто нужно будет заменить провайдера и чутка попроваить репозитории. Привет всем кто кричал что не нужно делать репозитории и юнит оф ворк, когда EF юзаешь.
Аноним 18/12/20 Птн 11:49:01 1883330536
Посоны, впервые понадобилась ваша помощь! Нужна фигня вроде ELMAH, чтоб ловила исключения веб-апликации, и давала в веб интерфейсе их посмотреть со всяческим контекстом. В идеале, еще и с дашбордами. Но чтоб живая была, и бесплатная.
Аноним 18/12/20 Птн 12:29:20 1883367537
Аноним 18/12/20 Птн 15:18:34 1883507538
Аноним 18/12/20 Птн 15:53:17 1883600539
image.png 73Кб, 1326x545
1326x545
Есть вопрос.
Есть определенный Test-case.
Его нужно прогнать для Chrome и FireFox.
Возможно ли как то сделать так что бы не писать два теста под каждый браузер. Или нужно реализовывать тест для каждого браузера?
Аноним 18/12/20 Птн 15:58:52 1883609540
>>1882815
Что будет если два потока одновременно войдут в GetChromeObject когда _crome - еще null?
Короче, классическая проблема для синглтона.
Ну и да, нахуя тебе Get в свойстве? Убери.
Аноним 18/12/20 Птн 16:01:54 1883613541
>>1883600
Если ты именно тестер и ты просто с "драйверами" работаешь, которые никаких общех интерфейсов не имеют - два тестовых. Если есть интерфейсы - используй их. Если ты разработчик - добавь интерфейсы и потом при тестировании используй их.
Аноним 18/12/20 Птн 16:40:00 1883673542
image.png 46Кб, 1129x493
1129x493
Я в общем вообще вот так сделал. Не знаю насколько херово это выглядит но ментор сказал нормас.

Аноним 18/12/20 Птн 16:53:05 1883693543
А как через консоль запустить конкретный тест а не сразу все ?
Аноним 18/12/20 Птн 17:10:05 1883711544
>>1883673
Твой ментор - долбоеб. Требуй деньги взад.
Еще раз: Что блядь будет, если из двух потоков обратятся к твоему классу, до того как инициализирован? Либо делай синглтон на основе Lazy либо - после проверки на null - ебани lock там делай еще одну проверку на null и уже там создавай создавай экземпляр.
И переименуй GetChrome. Get подразумевает что это метод. А у тебя свойство. Это вводит в заблуждение. Раз у тебя синглтон, то называй это Instance, оно понятно и все кто знают что такое синглтон - поймут что вернет это свойство.
Аноним 18/12/20 Птн 17:42:06 1883742545
>>1883693
Тест на беременность? Зависит от того чем ты пользовался когда эти тесты писал.
Аноним 18/12/20 Птн 18:08:25 1883783546
>>1883276
Или переходи на Dapper, или выключай EntityTracking при запросах и он не будет ничего кешить. Гугли, на stackoverflow всё есть.

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

>>1883673
Приватный статичный конструктор сделает инициализацию при старте приложения. Не надо будет никаких проверок на нулл и всякие антоны перестанут бояться, что страшные потоки будут иметь твои переменные одновременно.
мимо
Аноним 18/12/20 Птн 18:18:18 1883790548
Анонче, зачем нужны virtual методы и override?
Ну типо метод который хотим переопределить помечаем виртуальным а переопределяймый метод пишем оверайд. Но нахуя? Я попробовал и без этих слов все работает. Просто что бы знать что мол этот метод мы переопределили или есть какой сакральный смысл?
Аноним 18/12/20 Птн 18:28:43 1883799549
>>1883783
> выключай EntityTracking
Спасибо, я уже выключил. Теперь хотя бы память не течет.
> Но даже Sqlite умеет целиком БД файл шифровать.
А вот с этого момента поподробнее? Как мне в шарп коде тогда с ней взаимодействовать?
Аноним 18/12/20 Птн 18:54:27 1883842550
Аноним 18/12/20 Птн 18:56:19 1883846551
.png 50Кб, 1080x785
1080x785
.png 35Кб, 1063x790
1063x790
>>1883790
Ты ни черта не переопределил. То что ты видишь - сокрытие, причем неявное.
Аноним 18/12/20 Птн 18:58:13 1883850552
>>1883846
Ну и что?
Все работает же у меня.
Вопрос нахуй оно тогда надо если и без него работает?
Аноним 18/12/20 Птн 19:09:37 1883853553
>>1883850
нахуй ты вообще нужен, если и без тебя всё работает?
Аноним 18/12/20 Птн 19:15:32 1883857554
.png 53Кб, 1034x723
1034x723
>>1883850
Оно не работает ни у тебя ни у кого другого.
Я повторяю - ты просто сделал сокрытие. Это значит что при вызове из базового класса - будет вызван не метод этого класса, а тот что определен в базовом классе. Переопределение - это когда при вызове через базовый класс будет вызван переопределенный метод, если такой имеется.
Аноним 18/12/20 Птн 19:26:15 1883876555
>>1883850
Блядь, чтобы тебе понятно был. Смотри, допустим тебе нужно отрисовать контролл какой-то. Ты, блядь, не знаешь какой контролл будешь рисовать, и ты не хочешь думать о том что тебе придет: кнопка, лейбл, текст или вообще TreeView, ты просто знаешь что у всех контроллов есть виртуальный метод Draw, твой класс, допустим, занимается тем что выставляет все контроллы по сетке, ты хочешь просто расставить их по этой сетке, а думать о том как они рисоваться будут - должен тот кто эти контроллы писал. Так вот, если он такой же еблан как и ты и не сделал базовый метод виртуальным, а методы не переопределил - после того как ты вызовешь controll.Draw() у тебя получится ебанина, прийдет ПМ, ебнет тебя по голове палкой, и выгонит на мороз, когда ты будешь кричать что свою работу ты сделал - он пойдет к программисту что делал контроллы, а он как и ты будет пиздеть что у него-то все работает, в итоге вы оба на мороз отправились и сдохли; если он был не мудаком и все нормально переопределил - ты получишь нормально отрисованные контроллы, вы оба получили квартальные премии и ебете на корпаративе студенток-практиканток, которые решили вкатиться в ОйТи.
Аноним 18/12/20 Птн 19:31:56 1883885556
>>1883876
>>1883857
Все равно нихуя не понятно.
Ну да ладно.
Аноним 18/12/20 Птн 19:32:39 1883888557
>>1883857
И на будущие, шизойд, пользуйся пастебином или тут так поведено код скриншотами кидать?
Аноним 18/12/20 Птн 19:37:10 1883890558
>>1883888
шизоид - это ты, в пэйстбин кидают, чтобы можно было с кодом поиграть, тут же надо быстро продемонстрировать результат небольшого куска кода, скрин быстрее всего. Ты сука вообще ни одного примера не привёл, как оно там у тебя работает, а хочешь чтобы люди тебе ещё дополнительные телодвижения делали.
Аноним 18/12/20 Птн 19:39:27 1883895559
>>1883876
Я не этот шизик, у которого "все работает же", но из твоей стены текста действительно нифига не понятно, кроме части про студенток.
Аноним 18/12/20 Птн 20:01:46 1883923560
image.png 75Кб, 888x831
888x831
>>1883890
Не ну вот щас понятно по скрину зачем это надо. Но возникает вопрос зачем создавать объект одного типа и передать его в переменную другого типа? Какие профиты?
Аноним 18/12/20 Птн 20:02:51 1883926561
.png 62Кб, 1085x938
1085x938
Аноним 18/12/20 Птн 20:03:37 1883927562
Шарпаны, подскажите, как называется паттерн проектирования, когда есть несколько источников данных, один источник оригинальный, иммутабельный, остальные инкрементны основному, ну и мутабельны. Паттерн получая данные, ищет их во всех зарегистрированных инкрементах, начиная с самого лёгкого (у источников-инкрементов есть веса), как только паттерн находит данные, он их отдаёт. Если не найдено ни в одном из инкрементов, отдаёт из оригинала. Если запрашиваемых данных нет в оригинале, отдаёт поданное на вход дефолтное значение.

Вроде погуглил, не нашёл подходящих.
Аноним 18/12/20 Птн 20:06:21 1883932563
>>1883926
Сложна и нихуя не понятно.
Аноним 18/12/20 Птн 20:08:19 1883938564
20190929095249.jpg 94Кб, 755x805
755x805
>>1883885
Что ты не понял, дурик? Есть у тебя BaseClass, есть DerivedClass который унаследован от BaseClass, есть у тебя метод который принимает BaseClass, на пикриле различия в поведении. При этом метод без override может иметь любую сигнатуру.
Аноним 18/12/20 Птн 20:09:50 1883940565
>>1883927
> остальные инкрементны основному

И какой смысл ты вкладываешь в "инкрементны"?
Аноним 18/12/20 Птн 20:11:03 1883943566
>>1883932
Конечно, легче вскукарекнуть что ООП нинужна и есть ничто иное как лишняя писанина, как это делает большинство неосиляторов.
Аноним 18/12/20 Птн 20:17:00 1883946567
>>1883932
Чего там непонятного? Ты можешь таким образом не думать о конкретном классе который тебе пришел.
Вот пример, метод SendMessage - он не знает как будет отправлено сообщение, его цель - создать сообщение и отослать, а как оно будет отослано - было определено сверху тем кто метод вызвал и передал туда отправителя. Есть два класса, которые переопределили метод SendMessage - таким образом, если в метод SendMessage прийдет класс, который переопределил метод - будет вызван именно переопределенный метод, вместо базового. Если бы не было переопределения, а использовалось сокрытие, чтобы вызвать отправку по СМС или по электронной почте, ты должен был бы проверить какой конкретно объект к тебе пришел и привести к нему, либо ебашить 2 метода, один для SMS другой для emal'ов.
Аноним 18/12/20 Птн 20:20:27 1883950568
>>1883940
Как инкрементные архивы, только датасорцы. Содержат добавочные данные, в том числе замену оригинальных данных, поскольку оригинальный датасет иммутабелен.
Аноним 18/12/20 Птн 20:23:41 1883954569
>>1883943
Я же не говорю что не нужно.
Вот к примеру разделение программы на объекты и работа с ними мне нравится. Типо Каждый класс отвечает за свои данные и ничего лишнего, каждый метод выполняет только 1 действие и все. Это ведь ООП?

Просто пару раз начинал писать мелкие программки и когда код переваливал за 200 строк и я хотел внести какие либо изменения то приходилось все писать заново. Но некоторые вещи мне все еще не понятны.
Например
Person tom = new Employee("Tom", "Microsoft");// Зачем мне это делать???
Вот где может понадобится на простом примере создавать объект и присваивать его переменной длругова класса?
Аноним 18/12/20 Птн 20:27:22 1883957570
>>1883946
>Чего там непонятного
Сложный код, перечисления лямбда выражения, я путаюсь. И еще пиздец как не привычно имя переменных когда начинается с _ я как вижу сразу пугаюсь и думаю шо это такое то метод или шо.
Аноним 18/12/20 Птн 20:31:38 1883959571
>>1883954
Тебе надо почитать классику.
ООП взят из природы, из наблюдения человека за природой. И именно на природе можно найти примеры ООП от самого Боженьки, кек.
Например.
Есть абстрактный класс "млекопитающие". Почему он абстрактен? Потому что все млекопитающие реализуются в реальности через дочерние классы, например, собака реализует класс "псовые", который унаследован от млекопитающих и обладают генерацией молока. Дельфины от класса "дельфиньи", так же наследемого от млекопитающих. Человеки - от "приматов", ну ты понел.

Для чего передавать собаку класса "псовые" в массив типа "млекопитающие"? Другого типа массив же, епт! Ну, догадался? Нет? Потому что у нас теперь есть возможность положить в один массив всех млекопитающих! Несмотря на то, что это собаки, люди, белки, обезьяны, медведи, дельфины! Они все могут быть помещены в обдин массив и специальный робот доильщик пройдёт по массиву и подоит всех! И собак, и кошек и людей.
Аноним 18/12/20 Птн 20:47:05 1883983572
>>1883954
>Типо Каждый класс отвечает за свои данные и ничего лишнего, каждый метод выполняет только 1 действие и все

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

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

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

Так никто и не делает, частый случай это передача производного типа методу который принимает базовый тип, т. е. Person у тебя будет в сигнатуре метода, а инициализировать ты будешь Employee и использовать его в методе принимающем как Person, так и Employee.
Аноним 18/12/20 Птн 20:51:36 1883986573
>>1883983
Моё объяснение круче, ящитаю.
Аноним 18/12/20 Птн 20:51:50 1883987574
>>1883957
Ну, сорян, я просто хотел чтобы на один экран уместилось.
Ладно, вот тебе пример на пастебине.
https://pastebin.com/dc3K0XtV
Аноним 18/12/20 Птн 20:52:39 1883988575
>>1883673
>ментор
Судя по тому что тебе сказали что это норм, то ты с курсов, при том люто говняных курсов, так как тема синглтона изи на того чтобы завалить человека на собесе.
А ты с таким кодом не то что провалил его, повезет если тебя в черный список не внесут.
Эта настолько старая и избитая тема что не знать ее признак абсолютного отсутствия опыта.
Тебе уже написали как делать и в интернете сотни статей почему именно так, а не как иначе.

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

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

Аноним 18/12/20 Птн 20:53:37 1883992576
>>1883986
Твоё это бред про природу? Ты либо троллишь, либо сам от того кому объяснить пытаешься недалеко ушел. В хороших книгах про ООП первым делом предостерегают от того чтобы пытаться проецировать жизнь на код и искать что-то схожее.
Аноним 18/12/20 Птн 20:54:56 1883994577
>>1883992
Не, щас ты троллишь. Слишком толсто.
Аноним 18/12/20 Птн 20:55:51 1883995578
image.png 51Кб, 648x819
648x819
>>1883959
Ну вот животные все в одном массиве и те которые cat a1 = new cat и те которые Animal a2 = new cat
И в чем разница то?
Аноним 18/12/20 Птн 20:56:24 1883997579
>>1883994
Так попробуй про ООП не из статей в интернете читать, а из полноценных книг. Начать можешь с Agile Principles, Patterns, and Practices in C# By Martin C. Robert, Martin Micah

Тогда перестанешь в этом видеть троллинг.
Аноним 18/12/20 Птн 21:01:00 1884000580
>>1883995
В данном случае нет разницы.
Но вот добавь классу Aminal метод MakeNoise() и сделай для cat - Console.WriteLine("mew"); для dog - Console.WriteLine("Woof"); и базовому классу Console.WriteLine("Animal noise"), а затем вызови это в своем foreach. Ты увидишь что без virtual-override - будешь видеть методы базового класса, вместо мяуканья и гавканья.
Аноним 18/12/20 Птн 21:01:59 1884002581
>>1883983
>Employee и использовать его в методе принимающем как Person, так и Employee.
Ну тогда зачем это надо если метод принимающий родительский класс может принимать и производные?
Я не понимаю профит этой конструкции.
Аноним 18/12/20 Птн 21:07:35 1884004582
15855935722820.png 26Кб, 743x536
743x536
>>1883673
Если инициализация синглтона не требует больших затрат, т. е. нет какого-то дорогого запроса к БД или чтение из файла и загрузка в память нескольких сотен мегабайт, то используй конструкцию вида Singleton, иначе Singleton1

Аноним 18/12/20 Птн 21:08:04 1884005583
>>1884002
>зачем это
Что "это"?
Аноним 18/12/20 Птн 21:09:29 1884007584
>>1884005
Person tom = new Employee("Tom", "Microsoft");

Профиты этой ебаты с типами.
Аноним 18/12/20 Птн 21:10:22 1884008585
>>1884000
Четко спасибо, более менее разобрался.
Аноним 18/12/20 Птн 21:13:05 1884009586
>>1883997
Вот теперь точно толстота. Жирнющий демагогический приём - отсылать в гугл за некими "настоящими шотландцами книгами".
Аноним 18/12/20 Птн 21:18:38 1884011587
>>1883983
Ну, ты описал кстати утопию. В реальности тебе дают неделю - ты должен сделать, иначе пизда, трындец, ПМ плачет, умоляет, а потом грозит уволить, а потому ты таки будешь вынужден ебануть изначально говнокод, который решит задачу здесь и сейчас, а все ООП начнется уже через 100 итераций этой хуйни, когда разгребать говно и костыли с велосипедами прийдут уже другие люди.
Аноним 18/12/20 Птн 21:21:14 1884012588
>>1884007
>Person tom = new Employee("Tom", "Microsoft");

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

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

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

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

Но, как я уже сказал, так мало кто делает в реальности, это просто неудачный пример от анона с двача.
Аноним 18/12/20 Птн 21:23:27 1884013589
>>1884009
Да не, в изначальном посте все верно написано. Примеры с природой это хуета для гуманитариев и школьников.
Аноним 18/12/20 Птн 21:24:39 1884016590
>>1883988
Не я не с курсов, сам учился всему этому поэтому так херово и выходит )
Аноним 18/12/20 Птн 21:25:02 1884017591
>>1884012
Всмысле проверка типа?
Я должегн сделать проверку? или компилятор будет ее делать и время тратить?
Аноним 18/12/20 Птн 21:33:37 1884026592
15855935722820.png 17Кб, 706x71
706x71
20190929095249.jpg 81Кб, 814x348
814x348
>>1884009
В чём демагогия, дурачок? В том что тебя отослали к источникам, которые разбираются в теме уж явно лучше тебя, долбоеба с двача, который высрал хуйню про природу?

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

Аноним 18/12/20 Птн 21:37:03 1884029593
>>1884017
Да, JIT компилятор будет проверять является ли объект tom наследником класса Person, если ты присвоил его переменной типа Employee, если он у тебя изначально присвоен переменной Person, то никаких проверок происходить не будет.
Просто в этом мало логики, потому что если ты собираешься передать этот объект, который ты присвоил переменной типа Person, в метод принимающий объект типа Employee, то тебе придётся явно приводить эту переменную к типу Employee. Если ты не собираешься этого делать, то зачем тогда вообще присваивать объект Employee типу Person?
Аноним 18/12/20 Птн 21:37:54 1884030594
>>1884013
>>1884026
>дурачок
>долбоёб
Не бомби, в следующий раз получится затроллить.
Аноним 18/12/20 Птн 21:39:32 1884033595
>>1884029
> зачем тогда вообще присваивать объект Employee типу Person?
Чтобы в цикле обойти инстансы и вызвать метод, унаследованный от Person, не взирая на конкретные типы имеющихся инстансов.
Аноним 18/12/20 Птн 21:39:44 1884034596
>>1884030
>ткнули носом в обосранные штанишки
>У ТИБЯ БАМБИТ ТЫ ТРОЛЛИШЬ!!

Проиграл. Главное чтобы в следующий раз у тебя хватило сил признать свой обсер. Не делать этого на анонимной борде - хороший повод задуматься над своим психическим здоровьем.
Аноним 18/12/20 Птн 21:41:47 1884039597
>>1884034
Да, я вижу как у тебя нибамбит, токсик из тебя так и льётся. Я написал чётко по делу, ты пишешь хуйню, надеясь, что оппонент в неё поверит. Это типичный Reductio Ad Ignorantum. Просвещайся, пока я здесь.
Аноним 18/12/20 Птн 21:44:21 1884040598
>>1884039
>я написал

В этом твоя проблема. В твоей писанине не хватает ссылок на источники и литературу которыми ты руководствуешься. Да, сычуш, твоего "ятакскозал" не хватает, особенно на анонимной борде.
Аноним 18/12/20 Птн 21:47:40 1884044599
>>1884033
Они и так вызовутся если ты передашь Emplyoee в метод принимающий Person.
И присваивать объект Emplyoee переменной Person ради того чтобы избежать проверки типов в такой ситуации тоже не имеет смысла, потому что при вызове виртуального метода происходит проверка типа объекта.
Аноним 18/12/20 Птн 21:50:14 1884048600
>>1883988
>В продакшене производительность это десятое место
В больших конторах часто есть такое понятие как SLA, когда требуют чтобы при любой загрузке системы у пользователей не уходило больше 1-5 сек на операцию (полный рендеринг страницы например).

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

Для таких ситуаций можно позволить нескольким потокам переписать токен несколько раз и забыть про него на 30-60 минут.
Аноним 19/12/20 Суб 06:17:30 1884340601
>>1870468 (OP)
Где взять сорец SQLite на C# и как сбилдить .dll-ки (какие?), на .NET Framework 4.0?
Аноним 19/12/20 Суб 10:04:45 1884377602
>>1883842
Спасибо, выглядит очень удобно. У меня теперь другой вопрос - у меня есть классы прослойки для отображения данных в датагриде. Т.е. грузятся данные из бд в этот класс, а в нем расшифровка и небольшая логика для отображения (например если в таком то поле null значит записать в строку "не существует"). Можно ли как-то вообще избавиться от этих классов для отображения и вынести куда-то вот эту логику для просмотра?
>>1884340
В nuget'e?
мимо такой же долбаеб
Аноним 19/12/20 Суб 15:17:40 1884591603
>>1884377
Нугет притянет пакеты, которые создают дополнительные длл-ки, а я хочу всё вкомпилировать в один экзэшник.
Аноним 19/12/20 Суб 16:16:14 1884632604
image.png 35Кб, 1311x153
1311x153
Как читается и что обозначают позиции в данном коде.
И что вообще там происходит ?

Аноним 19/12/20 Суб 17:12:04 1884683605
>>1884632

Класс Testwith.....Browsers использует обобщенный тип данных TWebDriver, класс наследуется от TWebDriver, все остальное я хз сам еще не разобрался.
metanit.com/sharp/tutorial/3.12.php
Вот тут если шо читать.
Аноним 19/12/20 Суб 17:30:45 1884711606
Аноним 19/12/20 Суб 17:36:44 1884718607
16083837755650.png 43Кб, 1349x196
1349x196
>>1884683
Класс Test... не наследуется ниоткуда; обобщённый тип TWebDriver имеет следующие generic type constraints:
1. реализует интерфейс IWebDriver
2. имеет публичный беспараметрный конструктор new()
Аноним 19/12/20 Суб 17:38:03 1884720608
>>1884718
>обобщённый тип TWebDriver
Вернее не обобщённый тип, а параметр типа. Обобщённый тип это TestWithMultipleBrowsers<TWebDriver>
Аноним 19/12/20 Суб 20:11:43 1884849609
Как можно получить путь к файлу через OpenFileDialog? Гуглил, советуют System.IO.Path.GetDirectoryName, но он работает не так как надо.
К примеру я открываю файл "word.docx", и свойство SafeFileName возвращает мне только название и расширение файла, но не путь
Аноним 19/12/20 Суб 20:38:03 1884879610
Аноним 19/12/20 Суб 22:47:04 1884967611
image.png 26Кб, 1431x194
1431x194
А как проверить что в строку поиска введены символы нужные?
Это через локаторы как то можно дергнуть ? Или есть какой нибудь метод ?
Аноним 19/12/20 Суб 22:48:19 1884969612
>>1884967
регулярным выражением
Аноним 20/12/20 Вск 00:00:43 1885027613
>>1884632
Прикольно иногда заставить себя посмотреть на код глазами новичка. Когда только картинку твою открыл, вообще вопросов никаких не возникало. Всё на своих местах, всё просто, и даже не знаешь, тролят тебя или нет. А потом пытаешься представить что ты код в принципе в первый раз в жизни неделю назад увидел, и сразу появляется куча вопросов.

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

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

https://dusted.codes/dotnet-for-beginners
Аноним 20/12/20 Вск 04:53:59 1885162614
>>1884591
Пытаюсь сконпелировать SQLite из сореца на шарпе, чтобы получить портабельную СУБД опенсорцую.

1. Здесь: https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
Нашёл (13 903 827 байт): https://system.data.sqlite.org/downloads/1.0.113.0/sqlite-netFx-full-source-1.0.113.0.zip
Пишут, что это сорец:
>This ZIP archive contains all current source code for System.Data.SQLite 1.0.113.0 (3.32.1)
>and the extra files needed to run the unit test suite, combined into a single archive file.
>(sha1: 57a4a873c839314d2adbf3e3c737fefa8fdff72e)

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

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

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

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

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

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

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

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

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

Вот здесь, вроде, нашёл что-то попижже. https://github.com/moneymanagerex/System.Data.SQLite
там архив на целых 100 метрабайт, буду цацкаться с ним, кароче.
Аноним 20/12/20 Вск 09:45:25 1885219615
Аноним 20/12/20 Вск 10:16:56 1885239616
Аноним 20/12/20 Вск 11:04:44 1885286617
Аноним 20/12/20 Вск 12:28:59 1885338618
>>1885239
аноны из того треда не сделали же нам ничего плохого, чтобы их наказывать
Аноним 20/12/20 Вск 13:28:06 1885364619
куки-хуюки.png 78Кб, 1052x336
1052x336
Выручайте котаны. Пишу Пытаюсь писать сайт на асп нет коре, решил запилить авторизацию (пока без идентити), добавил куки аутентификацию, добавил клаимпринципал через context.SignInAsync и... В фаерфоксе все норм, а хром шлет меня на хер (пикрилейтед). При этом в хроме в режиме инкогнито все работает. А атифоржери кука с такими же параметрами (вроде) ставится. Как быть?
Аноним 20/12/20 Вск 13:40:46 1885374620
>>1885364
Почистил еще раз хранилище для сайта и все заработало, хз я и до этого куки удалял. Хуита какая-то.
Аноним 20/12/20 Вск 14:16:32 1885402621
>>1885364
У кук есть аттрибут secure, если он равен true, значит эти куки могут изменяться только по протоколу https. На пике ты делал запрос через http и браузер сказал, что не будет перезаписывать куки с пометкой secure.
Аноним 20/12/20 Вск 15:02:39 1885434622
>>1885402
>>1885374
Я хуею с того что народ лезет в кодинг, не зная английского. Кодинг - не то место, где стоит показывать свой языковой патриотизм. Учи инглиш, сука!
Аноним 20/12/20 Вск 21:42:48 1885712623
Можно ли в терминале узнать версию Selenium и версию драйвера ?
Какую команду для этого можно использовать?
Аноним 20/12/20 Вск 23:19:39 1885765624
Аноним 20/12/20 Вск 23:45:11 1885774625
>>1885765
Почитал.
Любопытная штука, но не то. CQRS разделяет команды и запросы, а я реквестировал несколько иное: шаблон или подход, при котором система имеет внутри себя (хохо, кажется я сейчас сам отвечу на свой вопрос), имеет внутри себя кластер из синхронизированных датасорсов, и в ответ на реквест данных извне, система возвращает актуальные данные из мутабельного домена в кластере, а при команде на модификацию данных, система создаёт или изменяет один из мутабельных доменов, имея в своём составе корневой иммутабельный домен.
Собственно, шаблон кластера моему реквесту и отвечает. Вопрос закрыт.
Аноним 20/12/20 Вск 23:48:27 1885775626
>>1885774
Иммутабельный домен, если кто не догадался, это данные либо вшитые в исполняемый файл, либо находящиеся в системной области приложения и не доступные для изменения юзеру (требующие прав администратора, что небезопасно и не приветствуется). Мутабельные домены - это файлы, созданные приложением в процессе своей работы в пользовательской области приложения (в аппдате, если речь о винде).
Аноним 21/12/20 Пнд 04:39:45 1885833627
>>1883276
Кстати, можешь попробовать через modelBuilder попробовать свое шифрование напердолить, чтобы за тебя этим ef занимался. Через fluent api
Аноним 21/12/20 Пнд 07:04:17 1885857628
>>1885833
В чем смысл? Перенести код с одного места в другое?
Аноним 21/12/20 Пнд 07:06:49 1885859629
1) Напомните пожалуйста название инструмента в котором в отладчике студии можно смотреть сколько памяти озу занимает тот или другой класс.
2) Какой либой лучше всего можно сжать байт массив?
Аноним 21/12/20 Пнд 09:44:13 1885950630
Как работает сборка мусора gc.collect(), а точнее поколения? Если я укажу в параметрах 2 это означает что будут охвачены поколения 0,1,2 или просто 2?
Аноним 21/12/20 Пнд 09:58:11 1885956631
>>1885950
>будут охвачены поколения 0,1,2 или просто 2?

0, 1, 2
Аноним 21/12/20 Пнд 10:21:51 1885977632
Полгода стажируюсь на c# за 25к, какой-никакой опыт приобрел, на нг стажировка кончается. Сейчас дочитываю Рихтера, потом на праздниках собираюсь прочитать GoF, а потом устроиться куда-нить джуном. Могу ли претендовать на зп 60к, при этом удаленно?
Аноним 21/12/20 Пнд 12:40:36 1886067633
>>1885977
>Могу ли претендовать на зп 60к, при этом удаленно?
Зависит от места работы и твоих знаний в итоге.
Но вот
>Полгода стажируюсь на c# за 25к
Это пиздец ставит крест на нормальной работе, тупо даже собес начать не получится.
Да и судя по всему знаний у тебя минималочка так что я бы особо на что-то не надеялся.
Аноним 21/12/20 Пнд 12:42:09 1886069634
>>1885977
>60к, при этом удаленно?

Если JS подучишь, то вполне возможно. Иначе вряд ли.
Аноним 21/12/20 Пнд 13:29:29 1886099635
>>1886067
>>1886069
Спасибо, жаль :(
Придется приспустить свои ожидания
Аноним 21/12/20 Пнд 13:35:58 1886100636
image.png 108Кб, 1021x831
1021x831
Может кто сталкивался с похожими проблемами.
В Jenkins когда смотрю отчет о билде всюду кракозябры. Как можно исправить? Кодировки поменял.
Такая же херня в репозитории удаленном Git. Хотя в IDE в проекте все отображено корректно.
Аноним 21/12/20 Пнд 13:36:16 1886101637
image.png 22Кб, 1479x182
1479x182
Аноним 21/12/20 Пнд 16:49:20 1886279638
>>1885774
>>1885775
Нихуя ты намудрил. Зачем тебе это?
Конфиги шатать, что ли?
Аноним 21/12/20 Пнд 17:48:29 1886328639
Аноним 21/12/20 Пнд 17:55:16 1886339640
Сап! Есть простая программка, которая считает хэши у содержимого каталога. #уменявсёработает, а у коллег с хз как настроенными антивирусами иногда виснет, причём виснет после того, как посчитает хэши и запишет результат в выходной файл.
Код примерно такой
Log.Write("Работа закончена. Выход.");//запись в файл через streamwriter, всегда печатается
Environment.Exit(0);//а этого уже не происходит

Если перед выходом вписать задержку Thread.Sleed(100500); то программа просто ждёт эти 100500мс и нормально завершается. Есть какой-то нормальный способ вставить ожидание запросов к программе уровня операционной системы вместо фиксированной задержки?
Аноним 21/12/20 Пнд 18:01:03 1886341641
>>1886339
Ну хуй знает, может быть что-то типа Application.Close(0); хотя нет, хуйня какаята.
Аноним 21/12/20 Пнд 18:02:18 1886343642
>>1886339
>Есть какой-то нормальный способ

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

Чтобы более подробно ответить, нужно видеть код. Неизвестно как ты эти хэши считаешь и какими вызовами к внешнему коду (коду ОС) пользуешься, как создаешь потоки и т. д.
Аноним 21/12/20 Пнд 18:07:11 1886349643
>>1886343
> акими вызовами к внешнему коду (коду ОС) пользуешься
Хвалёный дотнет не может без внешних вызовов, чисто на внутреннем управляемом коде прочесть файлы и посчитать хэшсуммы? Понимаешь, что говоришь вообще?
Аноним 21/12/20 Пнд 18:25:17 1886358644
>>1886343
А не всё ли равно какой код, если всё работа завершена до печати "Работа закончена. Выход." и ситуация происходит не каждый раз?
Аноним 21/12/20 Пнд 18:43:44 1886373645
>>1886349
Вроде не веб-макака, а такую чушь пишешь. Работа с файлами это всегда обращение к внешнему коду, независимо от языка. File.Read это обертка над системным API по чтению файлов.
>>1886358
>А не всё ли равно какой код, если всё работа завершена до печати "Работа закончена. Выход."

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

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

Ну так это поведение очевидно, когда дело происходит независимо от твоего кода. Когда-то вся информация обрабатывается в нужный момент времени, когда-то она не успевает обработаться и спасает только Thread.Sleep.
Аноним 21/12/20 Пнд 19:00:55 1886393646
>>1886373
>Судя по написанному "добавляю Thread.Sleep и всё работает как надо" она не завершена.
>Ну так это поведение очевидно, когда дело происходит независимо от твоего кода.
Тебе не кажется, что здесь какое-то противоречие? МОЯ программа завершила работу, но ЧТО-ТО внешнее мешает ей.
Аноним 21/12/20 Пнд 19:08:42 1886404647
>>1886393
Твоя программа вызвала внешние ресурсы и теперь её работа связана с этими ресурсами, если ты их никак не контролируешь, то поведение и твоей программы, и внешних ресурсов, непредсказуемо и может приводить к подобным твоей ситуациям.
Если не можешь показать код, то тебе следует пройтись по нему самостоятельно, предварительно прочитав что-нибудь на тему работы с файлами и проштудировав документацию на MSDN. Учитывая, что ты вообще не представляешь как это всё происходит, тебе в любом случае стоит это сделать.
Аноним 21/12/20 Пнд 19:26:47 1886435648
>>1886393
Работа с I/O (input/output устройства), куда входят HDD, SSD, флешка, принтер, сеть и прочее - это внешние зависимости и операции над ними выполняются за пределами твоей программы. Не важно на каком языке ты программу написал.

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

Если работаешь с новым асинхронным АПИ, то надо правильно им пользоваться, иначе будут вот такие фокусы, которые ты описываешь.
Аноним 21/12/20 Пнд 20:44:55 1886498649
image.png 12Кб, 326x266
326x266
Сука!!! Да что я делаю не так-то!? Почему у меня программа на строке 21 зависает в будто бесконечный цикл. А когда пишу ReadExisting, то ничего не выводит. Что делать нахуй!? Порт COM1 вроде
Аноним 21/12/20 Пнд 20:48:12 1886502650
>>1886498
>на строке 21
>на пике нет нумерации строк
>если посчитать все строки, то будет 17

Тут всё сложно. Проблема на генном уровне. Как говорится, нужно поменять прокладку между компьютером и сиденьем.
Аноним 21/12/20 Пнд 20:49:13 1886504651
image.png 17Кб, 399x279
399x279
>>1886502
Блять, не тот скрин, сначала правильный залил, потом удалил и залил кривой
Аноним 21/12/20 Пнд 20:51:19 1886507652
>>1886504
>на 21 строке
>21 строка пустая

Хуй знает, бротиш, попробуй переустановить шиндоус или перезапустить комп и сбросить настройки биоса.
Аноним 22/12/20 Втр 11:20:25 1886872653
Как правильно помешать Unity-модулю инициализироваться, если функций и переменных включить\выключить не видно?

Один вариант - вылетать с return из Awake из базового класса модуля. Второй вариант - в Awake делать this.gameObject.SetActive(false);. Третий вариант - звать Destroy. Что из этого не вызывает багов, я не знаю.
Аноним 22/12/20 Втр 13:10:19 1887005654
>>1886872
> Unity-модулю
В юнити своя атмосфера. Шарп там юзается как скриптинг. Следовательно тебе следует предпочитать имеющиеся там методы работы с движком и не лезть общешарповыми средствами туда.

А имеющиеся методы работы тебе следует почерпнуть из официальной документации.
Аноним 22/12/20 Втр 13:16:18 1887010655
>>1887005
Юнити вообще пиздец. Помню, когда только язык начинал изучать, решил попробовать свою игру написать. Ломал голову неделю, а в итоге хуета какая-то неструктурированная. Все эти методы внутридвижковые – они не интуитивно понятные, учишь как второй язык. Много воды с тех пор утекло, а юнити я до сих притрагиваться побаиваюсь
Аноним 22/12/20 Втр 14:18:27 1887088656
>>1887010
Повторяюсь. Документацию читай. Как и к любому сложному программному продукту. Без документации ты гораздо сложнее вкатишься. У нас тут неделю или две назад был в треде такой один. Вкатывался в ДевЭкспресс без чтения доков, без изучения примеров. С него половина треда угорали, а вторая половина разводили руками, не зная, как ему помочь.
Аноним 22/12/20 Втр 14:39:31 1887118657
Анон, занимаюсь фронтом. Хочу перекатиться в бекенд.
Выбираю между шарпом и джавой для бекенда в Украине.
Цель не выявить лучший, а более перспективный по времязатраности/зп/месту
Аноним 22/12/20 Втр 14:47:49 1887124658
>>1887118
>шарпотред
Выбирай шарп .
Аноним 22/12/20 Втр 15:01:38 1887135659
image.png 133Кб, 1450x1011
1450x1011
Подскажите в чем херня. Не могу запустить тесты проекта через nunit console runner.
Что выдает консоль на скрине. Подскажите что делать?
Аноним 22/12/20 Втр 16:01:46 1887177660
>>1870468 (OP)
Как лучше сделать на шарпе - простую форму обратной связи?

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

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

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

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

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

Короче, как проще сделать портабельную и легкоподнимаемую форму обратной связи, с чего начать проектировать это говно?
Аноним 22/12/20 Втр 16:05:35 1887178661
Снимок.PNG 6Кб, 872x394
872x394
Шарпач, помоги, пожалуйста!
Есть база данных. В ней три таблицы, вроде как связанные между собой (если это важно, я докину их список) Нужно, чтобы таблицы выводились по одной в зависимости от нажатой кнопки в datagridview, и при этом должны работать три операции: добавление, редактирование и удаление строк еще поиск по полям нужно, но это не так важно.
У меня есть сейчас все три функции, но они работают только на первую таблицу. А как сделать так, чтобы проходила проверка, какая таблица открыта сейчас, и после этого работать с ней, я не знаю
собственно, в этом и заключается трудность. Подскажите, как её сделать?
Аноним 22/12/20 Втр 16:10:12 1887182662
>>1887177
>Можно ли как-то обойтись без базы данных, регистрации и авторизации?

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

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

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

Капча подключается за пару минут. Сохраняй в бд IP отправившего, сообщение и сделай лимит на количество сообщений с одного IP.
Аноним 22/12/20 Втр 16:36:54 1887207663
16085948630230.jpg 125Кб, 576x768
576x768
Есть одно решение в вижуал студии.
1) Можно как-то сделать чтобы при сборке одного проекта в решении собиралось автоматически другое (dll)?
2) Можно как-то сделать гит для всего решения, а не для отдельных проектов? А то я как лох открываю по отдельности проекты в решении чтобы закомитить.
Аноним 22/12/20 Втр 16:48:40 1887226664
>>1887178
ничего не понял, покажи картинки
Аноним 22/12/20 Втр 16:51:33 1887232665
>>1887182
>Можно, но без БД будет сложно.
Насколько я понимаю, можно вместо таблиц - сделать кучу папок, с названиям таблиц, а вместо данных в строках таблиц - писать JSON-файлы в эти папки. А уже в софтине прописать всю хуйню, чтобы работало как база данных. Но это не точно.

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

>Email не нужен. Какой от него толк если его заменить можно за пару минут?
Ну, наверное - чтобы было куда ответить?

>Капча подключается за пару минут.
Есть где-то каптча на шарпе, или ты про гуглокаптчу?

>Сохраняй в бд IP отправившего,
>сообщение и сделай лимит на количество сообщений с одного IP.
А если форма в TOR'e, чтобы IP-сервера не палить, и юзеры ломятся через TOR, нахрена сохранять IP шлюзов TOR'a, если они - фейк?
Но ты прав, тут скорее надо не лимит на количество сообщений, а лимит на количество сообщений за определённый период, чтобы не срали вводя каптчу.
Аноним 22/12/20 Втр 16:57:28 1887238666
>>1887232
> вместо таблиц - сделать кучу папок, с названиям таблиц, а вместо данных в строках таблиц - писать JSON-файлы в эти папки.
А ещё можно вместо автомобиля купить два велосипеда, сварить вместе и сверху лист кровельного железа приебнуть.
Аноним 22/12/20 Втр 17:22:59 1887279667
>>1887232
Бля, нанобордо-шизик, может ты уже начнёшь подписывать каждый свой пост, чтобы нормальные люди на тебя времени не тратили?
Аноним 22/12/20 Втр 18:07:08 1887331668
>>1887118
Я шарпист в Украине. Работа есть, перспективы есть.
Аноним 22/12/20 Втр 19:22:17 1887418669
>>1887135
Паша, с такими вопросами надо в гугл. Там ещё и древний фреймворк 4, про который уже никто не помнит. Возможно какие-то библиотеки друг с другом конфликтуют, надо совместимые версии искать.
Аноним 22/12/20 Втр 19:26:29 1887421670
>>1887207
Иди тьюториалы учи. То что тебе нужно работает из коробки по умолчанию. Причина, по которой оно работает как-то криво - ты сам.
1) Студия автоматом пересобирает изменившиеся проекты в открытом решении.
2) Весь код (решение и его проекты) должен храниться в одном репо (за исключением особых случаев).
Аноним 22/12/20 Втр 19:36:04 1887434671
>>1886498
Ты пробовал поставить точку останова и пройтись по шагам? Так хотя бы будешь в отладке видеть где оно остановилось и какой у объектов стейт.
Ну и вообще, я вот загуглил пример с сайта MS т.к. не пользовался никогда COM-портами. Вот, посмотри как они читают https://docs.microsoft.com/ru-ru/dotnet/api/system.io.ports.serialport?view=dotnet-plat-ext-5.0
Аноним 22/12/20 Втр 19:38:36 1887438672
>>1887118
Я бы тоже советовал шарп. Но скорее из-за того что у него не такой зоопарк как в джаве, где у тебя куча систем сборок, нужно знать разношерстные фреймворки и вообще какой-то писос. Тут все просто: Как майкрософт решил - так ближайшие пару лет и будет. Удобно.
Аноним 22/12/20 Втр 20:11:33 1887459673
>>1887178
Ну смотри, у тебя как-то же можно переключаться между таблицами. Можно. Вот при переключении - смотри как там назначается значение текущей таблицы в DataGreedView и просто добавь поле для хранения этого значения, допустим _selectedTable. А дальше в своих методах - бери значение этого поля и используй.
Аноним 22/12/20 Втр 21:28:41 1887513674
>>1887418
Да там проблема из-за за конфликтов. Запустить только через powerShell можно
Аноним 23/12/20 Срд 01:20:38 1887652675
>>1887421
> Весь код (решение и его проекты) должен храниться в одном репо (за исключением особых случаев).
Охотно верю, на что нужно нажать в вижуал чтобы это сделать?
> Студия автоматом пересобирает изменившиеся проекты в открытом решении.
Я вкурсе, в том то и дело что мне и не нужен весь солюшн, а только конкретный проект. Я тыкаю обычно ф5 и собирается текущий проект.
Аноним 23/12/20 Срд 02:44:54 1887707676
>>1875081
Я писал на нем небольшой проектик, но всё же это не так удобно как MVC. Пару страничек - да, если больше то упираешься в проблемы с путями и код быстро захламляется параметрами.
Аноним 23/12/20 Срд 03:35:30 1887713677
Хм.
Кто-то пользовался бесплатной Azure?
Допустим я хочу для "портфолио" замутить веб-приложение. А т.к. нищук - ищу бесплатные способы. Ну, собственно, я погуглил, фронт решил на гитхаб-пейджес закинуть. Теперь вот думаю о том чтобы АПИ намутить какой-нибудь. Загуглил. Вроде в азуре можно 10 веб-апишек и какую-то их NoSql бд использовать безлимитно. Конечно, там ограничения на число обращений в месяц и все такое. Но маленький CRUD, который только я буду использовать, я думаю должно хватить.
Вот и вопросы по поводу всего этого дела.
Есть ли какие-то подводные камни в такой вот связки, в контексте не реального проекта, а "портфолио"? Нужно ли какие-то дополнительные телодвижения будет совершать для того чтобы это вместе функционировало, кроме настройки веб-сервера на прием запросов с гитхаба?
Вообще, кто-нибудь такое делал?
Может там какие-то подводные камни есть?
Аноним 23/12/20 Срд 07:14:40 1887765678
image.png 33Кб, 740x232
740x232
Такие условия можно иначе делать? В C# вроде бы есть is in, но думается не такой он как в питоне. Да и просто is не срабатывает.
Аноним 23/12/20 Срд 08:42:17 1887792679
>>1887232
> Насколько я понимаю, можно вместо таблиц - сделать кучу папок, с названиям таблиц, а вместо данных в строках таблиц - писать JSON-файлы в эти папки. А уже в софтине прописать всю хуйню, чтобы работало как база данных. Но это не точно.
Да, пропиши, блядь, constraint к папкам, еще индексы на них посчитать не забудь и расширение для ef к своей папочной дб не забудь написать для комфортной работы. Нахуй нам SQLite? У нас есть папки
Аноним 23/12/20 Срд 09:28:19 1887806680
>>1887765
is в С# используется для проверки типа объекта.
Твою лапшу из || лучше заменить на switch в которых все сравнения будут case'ами ведущими к одному результату
Аноним 23/12/20 Срд 10:18:42 1887828681
20201223091515.jpg 47Кб, 748x453
748x453
Спасибо дядь Вов, посжимал byte array.
Алсо, кто-то мне укажет где я мог проебаться? .net 4.0 - compressionLevel'a у меня нету.
Или может есть какая-то платиновая либа для сжатия байт массивов?
Аноним 23/12/20 Срд 11:19:10 1887855682
А все, разобрался - у меня был шифрованный массив, поэтому он нихуя не сжимался.
У меня теперь другой вопрос - есть на nuget'e библиотека DotNetCompression. У них на офф сайте при загрузке - написано 30 days trial, и всякие тарифные планы.
Вопрос - что мне по идее может быть если я просто качаю либу с нугета? Мне в один день в апликухе вылетит эксепшн с в.в.пыней - плоти налог или как это работает?
Аноним 23/12/20 Срд 12:09:55 1887927683
1583060936903.jpg 539Кб, 2048x1942
2048x1942
Посоветуйте пожалуйста годных ресурсов для изучения ASP.NET Web Forms
Аноним 23/12/20 Срд 12:20:19 1887937684
>>1887792
Что вообще надо для вката в SQLite на .NET Framework?
Я вот создал таблицу, забил значения в неё, прочитал, и даже вывели их вроде норм.
Дальше пытаюсь создать таблицу с блобами, записать туда байты и прочитать их из базы.
А оно мне вот такую хуйню выдаёт:
>Cannot set CommandText while a DataReader is active
типа предыдущая таблица ещё читается ридером, а ты пишешь новую? Хуй тебе, хуй тебе, ХУЙ ТЕБЕ. Бля. Не пашет ваша сиквелайт - хочется удалить всё нахуй и разломать комп.
Аноним 23/12/20 Срд 12:24:38 1887945685
Аноним 23/12/20 Срд 12:45:23 1887978686
>>1887828
Наверно проебался в мутациях массива.
Аноним 23/12/20 Срд 15:59:18 1888257687
Сап, мужики. Это нормально, что я вот брожу по собесам (через зум, спасибо короне) и с меня всегда спрашивают как с фулстака? Минимум по жс гоняют, иногда реакт. Причем в вакансиях ничего такого в требованиях нет. Или по дефолту дотнетчик должен и фронт знать? я даже жс не знаю то особо
вкатун
Аноним 23/12/20 Срд 16:26:38 1888274688
Челики нужна базовая помощь.
Есть задание но не могу понять возможно ли его реализовать в c# или это для любителей Java ?

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

- реализовать кастомное ожидание на метод isEnabled(это должен быть вызываемый метод)
- реализовать кастомное ожидание на метод isDisplayed(это должен быть вызываемый метод)
Аноним 23/12/20 Срд 16:44:48 1888288689
>>1888257
Нормально. Даже если спрашивать не будут, по факту тебе придется и фронтенд делать. Так уж в .net'е повелось.
Аноним 23/12/20 Срд 16:49:59 1888293690
>>1888288
Прям фронтенд вот верстать по макетам джуну тоже придется?
Эх, говорили одногруппы в питон с джангой идти.
Аноним 23/12/20 Срд 16:55:21 1888297691
>>1888293
Бывает и исключительно бекенд, и чуть-чуть фронтенда, но фулстек - вполне себе норма.
Аноним 23/12/20 Срд 16:56:04 1888298692
>>1888293
И да, на джуна фронт в первую очередь будут спихивать.
Аноним 23/12/20 Срд 16:56:53 1888299693
>>1888293
Ну, лично по моему опыту - собирать прототипы на каком-нибудь SPA-фреймворке. Дальше обычно уже специально обученный фронтендер будет.
Да и не ссы, если ты дотнет освоил, то освоить JS не должно составить особых проблем.
Аноним 23/12/20 Срд 17:30:06 1888335694
image 10Кб, 1152x648
1152x648
Помогите решить проблему, если её возможно решить, у меня уже крыша едет. У меня есть 3д-цилиндр, нарисованный через впф. Этот цилиндр у меня крутится, я движением мыши вверх и вниз могу его прокрутить и посмотреть на другую сторону. Вроде бы всё замечательно. На одной стороне прокрутка как и полагается происходит на меня, но при повороте на другую сторону она уже выглядит так, как-будто происходит ОТ меня. Происходит это оттого, что я как бы продолжаю смотреть на другую сторону и, соответственно, то же самое движение визуально прокручивает её на себя для другой стороны. Привязка для этого вращения у меня осуществляется через одно единственное поле. Значение для этого поля я передаю из эвентов, где я смотрю, сколько накрутили и в какой направление, чтобы понять, насколько крутить и в какую сторону. Направление определяется знаком + или -.
Как я это попытался решить. Я определяю, перешли мы на другую сторону или нет и если перешли, то значение поля я делаю отрицательным и, соответственно, цилиндр и на другой стороне начинает вращаться НА меня. Всё было бы хорошо, но, так как я это поле делаю отрицательным, то мне показывается не то что должно, а противоположная сторона. То есть, я накрутил на 90 градусов, повернул на другую сторону и мне показывает не -90(270) градусов, а 90 соответственно. То есть, если я делаю одно, то ломается другое. И как это сделать я не понимаю вообще. Надеюсь кто-нибудь поймёт, что я имею ввиду.
Аноним 23/12/20 Срд 17:51:42 1888379695
1582673361175.png 566Кб, 1280x1200
1280x1200
>>1887945
нет там гайдов по web Forms
Аноним 23/12/20 Срд 19:27:08 1888486696
>>1887652
Если ты работаешь с гитом через VS, то иди гуляй. С гитом надо работать через консоль. Или хотя бы понимать что твоя ГУИ тулзяка делает behind the scene.
Аноним 23/12/20 Срд 19:30:37 1888489697
>>1887713
Я пару проектов выкатывал через Azure для тестовых заданий, чтобы нанимающая компания могла с моим приложением поиграть. Единственный косяк - через месяц они начинают требовать кредитную карточку, чтобы в случае если ты вышел за пределы бесплатных ресурсов с тебя начали снимать денюжку. А с пониманием что там платно, а что нет - очень сложно.
Аноним 23/12/20 Срд 20:11:24 1888544698
>>1887937
Запили на гитхабе репу с твоим кодом. Посмотрю
Блобы, если они большие, в том числе изображение, можно хранить как раз таки в папке, а в базе – путь к ним
> для вката
Ты хотя бы sql до join изучил? Если используешь ef и подход code first, когда ты из кода бд генеришь, то можешь и не знать. Но в дальнейшем без sql будет плохо
Аноним 23/12/20 Срд 20:13:47 1888551699
Аноним 23/12/20 Срд 20:15:08 1888553700
>>1888274
> Кастомное ожидание
Можно подробнее, что ты хочешь?
Аноним 23/12/20 Срд 20:38:43 1888583701
>>1888553
Как можно по другому реализовать эти свойства?
- реализовать кастомное ожидание на метод isEnabled(это должен быть вызываемый метод)
- реализовать кастомное ожидание на метод isDisplayed(это должен быть вызываемый метод)

Нужно создать как то по своему их реализацию. Вот задание такое скинули. Когда спросил что сделать сказали нужно как то по своему их реализовать. Может при помощи явного и неявного ожидания типа ?
Аноним 23/12/20 Срд 20:40:34 1888587702
>>1888551
по работе нужно, я же не долбоеб, что бы по собственному желанию в говне мамонта копаться
Аноним 23/12/20 Срд 20:50:04 1888610703
>>1888587
Ну ладно, я уж думал, ты чего напутал и решил свежачком обмазаться. По литературе не поскажу, разве что какие-нибудь старые книжки искать, как сейчас есть Pro Asp.net
>>1888583
> Как можно по другому реализовать эти свойства?
> - реализовать кастомное ожидание на метод isEnabled(это должен быть вызываемый метод)
> - реализовать кастомное ожидание на метод isDisplayed(это должен быть вызываемый метод)
Так свойства или методы?
Кастомное ожидание – это какое? Какие параметры должны кастомизироваться?
Как ты представляешь сигнатуру какие параметры в него можно передать метода, если уж это метод?
Такое ощущение, что либо ты что-то не понял, либо задание составлял какой-то дебил
Аноним 23/12/20 Срд 21:27:07 1888666704
>>1888610
>Такое ощущение, что либо ты что-то не понял, либо задание составлял какой-то дебил

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

Но по факту, насколько я знаю в .net нету методов таких, но есть свойства Dispose и Enable. То есть исходя из задания, нужно создать какую то кастомную проверку, на какие то элементы страницы ориентируясь на эти свойства
Аноним 23/12/20 Срд 21:41:43 1888702705
>>1888666
Ну ты разберись – свойства или методы тебе нужны. Набросай примерно, как это все должно фунциклировать, просто на словах, как это видишь. Пока сложно что-то сказать
Аноним 23/12/20 Срд 21:48:58 1888713706
>>1888702
Методы я такие в C# не нашел такие в Java есть

Ну я вижу так создать метод в параметры ему передавать элемент страницы который нужно проверить на наличие. В методе реализовать explicit wait и если данный элемент отобразился возвращать true если нет false.
Примерно так думаю.
Аноним 23/12/20 Срд 23:42:44 1888826707
>>1888713
Можно ссылку на методы из явы?
Explicit wait – это Thread.Sleep() или Task.Delay()?
Аноним 23/12/20 Срд 23:45:50 1888828708
>>1870468 (OP)
Как сконвертировать portable.exe в ELF, чтобы на линуксе запускалась вся эта портабле-заебатость?
Аноним 23/12/20 Срд 23:55:11 1888832709
>>1888828
dotnet hui.dll
Дллку в папке найдешь
Аноним 24/12/20 Чтв 00:38:10 1888850710
>>1888544
>Запили на гитхабе репу с твоим кодом. Посмотрю
А что туда впаять? Сорец SQLite залить, или просто код примера-теста?
Если второе, то: это был просто код отсюда: http://zetcode.com/csharp/sqlite/
из секции
>C# SQLite create table
затем она читалась вот так:
>System.Data.SQLite.SQLiteDataReader dr = read(cmd, "SELECT * FROM cars");
>while (dr.Read()){
>    Console.WriteLine("ID: {0} , Car Pet Name: {1}, price: {2}",dr[0],dr[1],dr[2]);
>}
плюс ниже, ещё - код отсюда: https://stackoverflow.com/a/625485
Чтобы протестить блобы.

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

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

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

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

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

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

>Если используешь ef и подход code first, когда ты из кода бд генеришь, то можешь и не знать.
>Но в дальнейшем без sql будет плохо
Не, "ef"(Entity Framework) и "подход code first" это всё, пока - вообще дремучий лес.
Тот код, вышеописанный, который от котрого вчера мне пердак припекло,
это был тупой тест методов System.Data.SQLite, списка методов которого я не вижу.
Как я понял, это провайдер ADO.NET, и там над SQL-запросы фомулировать, и пихать, прямым текстом, в команды.
Я даже, для этого, свои методы нагородил уже, блядь, чтобы просто SQL туда совать, и не дублировать нихуя после неё.
Аноним 24/12/20 Чтв 00:40:16 1888853711
>>1888832
dll не exe, а надо exe, и ещё и portable, и чтобы elf был портабле, и вообще любой exe.
Аноним 24/12/20 Чтв 01:39:02 1888871712
Аноним 24/12/20 Чтв 09:01:56 1888977713
image.png 135Кб, 1492x597
1492x597
>>1888826
Вот Java метод isDisplayed().

>Explicit wait – это Thread.Sleep() или Task.Delay()?
как я понимаю это Thread.Sleep()
Аноним 24/12/20 Чтв 10:15:16 1889012714
>>1888977
Да, пушо эта команда Thread.Sleep() тормозит всю программу.
В то время как в течении Task.Delay() программа может исполнятся, но подтормаживается запуск задания. То есть это неявное (implicit) ожидание,
а Thread.Sleep() явно (Explicit) торозит всё (wait), нахуй: https://stackoverflow.com/a/34052540
Аноним 24/12/20 Чтв 12:15:54 1889074715
>>1887978
В каких еще мутациях?

Как вообще работает сжатие байт массива? Заюзал компрешн дот нета - на 580мб может сжалось от силы мегабайтов 10. Что я делаю не так? В байт массиве jpg пикчи. Как их еще можно сжать (как файл, а не как шакалы)?
Аноним 24/12/20 Чтв 12:29:19 1889089716
1474722679942.webm 342Кб, 280x240, 00:00:04
280x240
>>1870468 (OP)
Ёбаный рот вашего дотнета. Помогите понять логику индусов.
Вот есть Windows 10. Всё новое API WinRT прибито к UWP. Допустим мне нужно Windows.Graphics. Пока всё отлично с UWP.
Так же есть .NET Standard, специально сделан чтоб поддерживался всем чем можно. Я хочу использовать либу на нём, она естественно на самой свежей версии - 2.1.
И вот тут я не могу понять шутки. UWP не поддерживает .NET Standard 2.1! UWP не поддерживает .NET 5.0!
Так как мне использовать API дриснятки и их "универсальный" .NET Standard? Алло, индусы! Как, блять, либу из Nuget поставить?
Пока что вижу только вариант накостылить два отдельных процесса под UWP и всё остальное.
В доках к .NET Standard 2.1 уже полтора года написано что поддержка UWP "будет когда-нибудь в будущих релизах"...
В 20H2 так ничего и не завезли...
Аноним 24/12/20 Чтв 12:33:11 1889094717
>>1889074
>В каких еще мутациях?
У тебя ссылка на массив QuestionPicture передается в метод Compress и потом в метод Write, т. е. изменения этого массива в методе Write, если этот метод его изменяет, отразятся в любом другом месте приложения в которых ты массив QuestionPicture использовать будешь. Но причина не в этом, а в том что ты CopyTo используешь вместо Read при распаковке в методе Decompress.

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

Это от формата зависит, лучше всего сжимается текст, jpg сжимается плохо, в случае картинок лучше использовать конвертацию в другой формат, например в webp.
Аноним 24/12/20 Чтв 12:33:44 1889096718
>>1889074
И сжимать нужно не массив из картинок, а каждую картинку по отдельности.
Аноним 24/12/20 Чтв 13:17:39 1889140719
Кто сталкивался с подобным.
В проекте коменты на русском языке отображаются нормально а когда заливаю их на гит то иероглифы ебаные.
Что делать как победить этот момент?
Аноним 24/12/20 Чтв 13:17:59 1889141720
image.png 21Кб, 1255x196
1255x196
Вот так в гите
Аноним 24/12/20 Чтв 13:30:42 1889152721
>>1889096
Я по отдельности и сжимаю.
>>1889094
Я нигде его больше не использую, метод для теста.
> CopyTo используешь вместо Read
А какая разница в этом контексте?
Аноним 24/12/20 Чтв 13:31:09 1889154722
Без названия.jpeg 14Кб, 212x238
212x238
Аноним 24/12/20 Чтв 13:45:47 1889175723
>>1870468 (OP)
Привет, аноны.
Есть у меня АСП НЕТ проект, у которого на дефолтной форме два хтмл-бокса для текста.
Как мне из одного текстового поля хендлить текст, передавать его в функцию, которая на него выдаст новый текст, подаваемый во второе поле?

Сори за тупой вопрос, не требую решать за меня, просто даже хз как гуглить, выдаёт вообще не то, что нужно.
Аноним 24/12/20 Чтв 13:47:36 1889178724
>>1888853
> dotnet publish -f=твой_фреймворк -r=целевой_рантайм -c=Release --self-contained
Аноним 24/12/20 Чтв 14:18:17 1889216725
>>1889175
асп нет это вообще бекенд, а формы у тебя на каком-нибудь блейзоре или разор пейджс
Аноним 24/12/20 Чтв 14:22:36 1889227726
>>1889216
То есть .aspx это не формы?
Аноним 24/12/20 Чтв 14:40:03 1889255727
Можно как-то запустить на WPF'e DispatcherTimer асинхронно?
Аноним 24/12/20 Чтв 14:56:38 1889272728
>>1889089
Че тут непонятного-то? .net standard и .net5 для другого делались. Они нужны чтобы общий костяк фреймворка вынести на более-менее кросплтаформенные рельсы, чтобы можно было пилить .net хуйню и без лишних танцев с бубнами запускать на серверах с линуксами. И с этой задачей они справляются.
Вот серьезно, подумай, какой процент ПО сейчас пилится исключительно под десктоп, еще и привязанный только к винде? Да и кому нахуй нужно приложение, которое будет оффлайн работать? А так, ты запилил на .net приложение, захостил его, фронт на каком-нибудь электроне за 2 недели сделал, и все довольны.
Аноним 24/12/20 Чтв 15:04:47 1889281729
>>1889227
Просто скажи какой шаблон ты выбирал при создании проекта, тогда тебе смогут помочь.
Аноним 24/12/20 Чтв 15:10:04 1889288730
>>1889255
Что ты под "запустить асинхронно" подразумеваешь? Ну создай Task и запускай в нём DispatcherTimer, будет тебе асинхронно, асинхронного аналога метода Start() у DispatcherTimer нет. Но в этом смысла нет, потому что запуск не занимает много времени.
Аноним 24/12/20 Чтв 15:10:26 1889289731
image 18Кб, 937x444
937x444
>>1889281
ASP .NET Web Application
При создании содержал форму default.aspx и мастер-страницу Site.Master

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

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

Уже пишу функцию
Аноним 24/12/20 Чтв 15:12:52 1889290732
>>1889272
> There are various implementations of .NET. Each implementation allows .NET code to execute in different places—Linux, macOS, Windows, iOS, Android, and many more. .NET Standard is a formal specification of the APIs that are common across all these .NET implementations.
При этом на основной платформе индусов приходится сосать хуи. Это доходит до абсурда - есть либы строго под десятку на Standard, но к UWP не прикрутить просто потому что. А ведь по мнению самих индусов, UWP - это основной гуй десятки, на который всё переводят. Я просто не могу понять логики индусов, когда они пилят кроссплатформенность уровня джавы чтоб на любом чайнике запускать, но не могут осилить даже совместимость с Виндой.
Вот .NET 5 не для этого делали, но на него и похуй, я ссылался на него потому что он совместим с .NET Standard.
А знаешь что самое смешное? .NET Standard 2.1 работает с Xamarin!
Аноним 24/12/20 Чтв 15:14:44 1889291733
image 15Кб, 756x401
756x401
>>1889289
Вот как функция взаимодействует с аттрибутами хтмл-элементов, если кому вдруг нужно.
Аноним 24/12/20 Чтв 15:15:03 1889293734
Аноним 24/12/20 Чтв 15:15:52 1889294735
>>1889293
Понял, спасибо за ответ.
Не знал, что там по умолчанию какие-то разоры использовались.
Аноним 24/12/20 Чтв 15:16:53 1889296736
>>1889293
> Razor
А как там вообще это говно поживает? Всё ещё медленнее жс и тянет с собой 5 мб бинарников?
Аноним 24/12/20 Чтв 15:20:17 1889299737
>>1889291
Хуитищща. При клике на кнопку идёт медленный и тяжёлый поиск элементов. При каждом клике. Представляю, как будет всё тормозить с таким подходом.

Выноси поиск в геттеры, при первом вызове геттера, как все нормальные люди.
Аноним 24/12/20 Чтв 15:22:56 1889304738
>>1889296
Ты наверно с Blazor путаешь, Razor всё на стороне сервера делает, клиент получает готовый HTML, всё остальное по старинке на JS и CSS делает.
Про Blazor знаю только что его активной майки продвигают (даже стримы на Твиче делают на которых объясняю ньюфагам как с ним работать) и вроде говорят, что с каждым обновлением он всё быстрее и лучше.
Аноним 24/12/20 Чтв 15:26:54 1889312739
image 16Кб, 866x720
866x720
>>1889299
Вот так что ли? Не совсем понятно, как это использовать.
Аноним 24/12/20 Чтв 15:29:14 1889315740
>>1889089
Вот это справедливый доеб. Без бутылки не разберешься
По итогу просто не пользуешься UWP и прочей декстопной дребеденью. Мобилки? Ну там придется поебаться. Я бы предпочел флаттер.
На дотнете удобно пилить бекенд, удобно делать сайты на разоре, сейчас еще и блазор завезли.
Аноним 24/12/20 Чтв 15:42:02 1889333741
>>1889288
Дело в том что у меня при фризе формы фризиться сам таймер. У меня на форме загрузка с бд картинок и если быстро их переключать то будет как в том меме Unfortunately Time has stopped. А лейбл на форме я уже обновляю через invoke, правда толку в этом мало.
Аноним 24/12/20 Чтв 15:45:48 1889344742
>>1888850
Через еф будет удобнее и и ридеры не нужны. Ебался на одном проекте с ними. Ебучие экспешены валились хуй пойми откуда, там еще предыдущий программист учился, блядь, на продуктовом коде многопоточности и, как водится, обосрался, заложив пару мин в код. Заложил и уволился. Следом с этим кодом работал аналитик, который не учил шарп, просто накопипастил пару методов, подправив название и пару строчек кода, получил требуемый функционал, да только не учел, что состояние все на флагах и не потокобезопасное
Достался мне этот кусок дерьма с классами по две тысячи строк
Нахуй эти ридеры, решительно. Особенно при живом entity framework – где все просто и понятно, и можно даже sql не знать.

Сам можешь поиграться, только в прод не тащи эту парашу
Аноним 24/12/20 Чтв 15:46:20 1889345743
>>1889333
Ну так тебе нужно загрузку из бд делать асинхронной, чтобы она не занимала UI поток. Таймер здесь ничем не поможет.
Аноним 24/12/20 Чтв 15:46:28 1889346744
>>1889312
private string myProperty;
public string MyProperty
{
get
{
if (myProperty == "")
{
myProperty = form.FindControl("MyProperty1");
}
return myProperty;
}
}
Аноним 24/12/20 Чтв 15:49:03 1889350745
>>1889346
А, бля, понял. Я этот код вставляю в начало aspx.cs файла, и все нужные мне впоследствии атрибуты находятся и задаются при прогрузке страницы, а не когда я в них непосредственно начинаю нуждаться.

Хотя стоп, как мне это поможет с текстовым содержанием, которое пользователь потом вводит?
Аноним 24/12/20 Чтв 15:50:08 1889354746
>>1889345
Асинхронной или в другом потоке?
Означает ли асинхронность, что у нас есть евент луп, и мы в эту залупу вставляем задачи, кхмм. Эта лупа постоянно скачет во внутреннем цикле по задачам? То есть даже на одном потоке можно получить плавный интерфейс, пока что-то долго загружается?
Аноним 24/12/20 Чтв 16:03:21 1889370747
>>1889350
В сеттерах отправляешь на страницу. В геттерах получаешь со страницы. Но только если есть изменения. Таким образом, несколько геттеров подряд сработают быстро. А вот сеттеры нет. Тут надо сложнее делать. С кэшированием заморачиваться.

И вот сеньоры программисты ебались есбались с этим и изобрели MVVM! DataBinding и другие страшные слова.
Аноним 24/12/20 Чтв 16:30:56 1889409748
>>1889354
>Асинхронной или в другом потоке?
Асинхронность не подразумевает использование одного потока, выполнение до await и после await может происходить в рамках разных потоков, также как и запуск одной асинхронной фукнции несколько раз подряд без использования await.

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

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

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

Да, если загрузка идёт асинхронно. Либо если ты одну задачу разбиваешь на несколько и выполняешь эти задачи с определенной задержкой. По такому принципу в браузере всё работает.
Аноним 24/12/20 Чтв 16:36:55 1889416749
>>1889409
Спасибо. То есть await перед вызовом функции ставит задачу в другой поток, а текущий – освобождает?
Аноним 24/12/20 Чтв 16:44:42 1889426750
>>1889416
Он ставит задачу в очередь выполнения, а каким потоком выполнится задача зависит от контекста синхронизации и пула потоков.
Аноним 24/12/20 Чтв 19:29:24 1889657751
>>1870468 (OP)
Не нашел в шапке задам сюда, глупо но извините:

До шарпа изучал С/С++ достаточно долго. Играет ли это роль в освоении шарпа? Или у меня такой же уровень знаний как у человека, который вообще никаких языков не изучал?
Аноним 24/12/20 Чтв 20:17:15 1889705752
>>1889657
Зависит от того на каком уровне ты изучал. И что в процессе изучения делал.
Если что-то сложнее калькулятора сам писал на С++, еще и ООП использовал, то шарп для тебя будет выглядеть скрее как: А как эти штуки в шарпе делаются. А это намного выше чем: Вообще никаких языков не изучал.
Ну, т.е. тебе останется посмотреть стандартную библиотеку, чтобы велосипедов не горадить, некоторые особенности языка, такие как свойства, делегаты, события и т.д.ну и шарповский туллсет, понять как устроен nuget и csproj
Аноним 24/12/20 Чтв 20:20:44 1889711753
Аноним 24/12/20 Чтв 20:42:41 1889746754
>>1889657
Играет. Вот я после JS шарп учить начал, так пришлось всё переосмысливать, потому что и не знал особо чем объект от массива отличается в плане хранения в памяти.
Аноним 24/12/20 Чтв 21:36:43 1889793755
Как получить название директорий БЕЗ пути? Directory.EnumerateDirectotry и Directory.GetDirectories дают вместе с путем, а он мне не всрался
Аноним 24/12/20 Чтв 22:01:29 1889849756
Если в конструкторе родительского метода делать проверку на является ли одним из дочерних методов - это будет работать?
Аноним 24/12/20 Чтв 22:04:14 1889854757
>>1889849
в смысле класса, не метода, тьфу
Аноним 24/12/20 Чтв 22:37:02 1889901758
>>1889705
Шарп после дельфи именно так у меня изучался, как ты описываешь. Ну и немудрено. Автор тот же самый же.
Аноним 24/12/20 Чтв 22:41:32 1889908759
Аноним 24/12/20 Чтв 23:18:58 1889930760
>>1889908
Нет, любой нельзя. Только твой. И только для целевой платформы. Будет нативный эльф в линуксе, внутри которого будет содержаться копия фреймворка вместе с твоим хеллоуворлдом. И для шындовса придётся сделать отдельный паблиш. И в нём будет нативный ПЕ в виндовсе, внутри которого будет содержаться копия фреймворка вместе с твоим хеллоуворлдом.
Аноним 24/12/20 Чтв 23:35:23 1889951761
>>1889849
Кто не является? Приведи в порядок мысли в своей голове, сформулируй какого результата ты хочешь добиться, опиши ситуацию максимально подробно.
Аноним 25/12/20 Птн 05:12:01 1890143762
Аноним 25/12/20 Птн 10:51:30 1890356763
Как при переключении в tabControl на WPF элементы с других таб контролов не показывались?
Аноним 25/12/20 Птн 11:51:24 1890378764
Microsoft и Azul портируют OpenJDK на новый процессор Apple Silicon M1
А дотнет когда нативно портируют?
Аноним 25/12/20 Птн 12:09:22 1890384765
>>1890378
дык его тоже портируют туда же.
Аноним 25/12/20 Птн 13:26:55 1890479766
В некоторых видосах видел как при написании например
public string Message сразу добавляется { get; set; }
Как сделать так же?
Аноним 25/12/20 Птн 13:39:49 1890508767
image 9Кб, 832x174
832x174
>>1870468 (OP)

Анончики, втф. Почему он пишет, что я не могу обратиться к объекту. При этом я находил код 2011 года, в котором написано именно так, и видимо он был рабочий.
Аноним 25/12/20 Птн 13:52:27 1890538768
image 14Кб, 584x309
584x309
Аноним 25/12/20 Птн 15:57:16 1890661769
Аноним 25/12/20 Птн 17:37:18 1890748770
>>1890661
Шта? ну делаю так а оно мне новую переменную сразу создает.
Аноним 25/12/20 Птн 18:58:19 1890849771
Парни нужна помощь. Когда то нагуглил а сейчас не могу найти синтаксис передачи параметров в тест через терминал.
Там примерно так выглядит dotnet test -s ```(name)```(value)```
что то такое. помогите прошу очень
Аноним 27/12/20 Вск 14:16:11 1892253772
image.png 27Кб, 586x459
586x459
Анонче, вот пример с метанита.
Метод Factorial принимает в качестве параметра int x, а где он это принимает? Чет не врубаюсь.
Аноним 27/12/20 Вск 14:40:11 1892264773
>>1892253
У метанита все , туториалы имеют вид мема "учимся рисовать сову". Забей еа это дерьмо и читай троелсена или шилдта
Аноним 27/12/20 Вск 16:20:15 1892349774
>>1892253
> а где он это принимает? Чет не врубаюсь.
Там же и принимает.
parallel.for(принимает_от, принимает_до, кто_принимает);
Аноним 27/12/20 Вск 16:46:12 1892365775
16090677723550.jpg 1Кб, 94x78
94x78
>>1892253
Начни лучше с троелсена, потом рихтером шлифани. Метанит – как краткий конспект, когда забыл синтаксис, но подсказки иде недостаточно информативны, а мсдн слишком многословен
Аноним 27/12/20 Вск 17:09:07 1892402776
>>1870468 (OP)
Анончики, а по каким материалам лучше начать изучать ASP.NET Core? Основы c# я уже понимаю, хочется пойти дальше, а не клепать консольные приложения. Хочется сразу изучать свежачок .NET 5
Аноним 27/12/20 Вск 17:16:45 1892411777
>>1892402
Стандартные туториалы на мсдн хорошо сделаны.
Аноним 27/12/20 Вск 17:37:53 1892461778
image.png 795Кб, 1500x2688
1500x2688
Еще поясните вот за метанит.
Правильно ли я понимаю что
Angular и ASP.NET Core - фронт энд
Руководство по ASP.NET Core - бекенд
Руководство по Web API это шо?
Руководство по ASP.NET MVC 5 - в чем разница 5 и 4?
Онлайн-книга Изучаем ASP.NET MVC 4

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

Родмап говорит что далее надо учить Entity Framework
А что читать то?
Книги это конечно хорошо но мне как то лучше читать метанит а потом если совсем не понятно читать книгу.
Что на метаните то читать?
Руководство по Entity Framework Core 3
Руководство по Entity Framework
В чем разница? Только версиях как и в версиях языка?
Аноним 27/12/20 Вск 18:35:38 1892558779
>>1892461
>Что на метаните то читать?

Ничего. Максимум что ты из этого получишь - знания которые нужно будет в будущем забывать и переосмысливать.
Аноним 27/12/20 Вск 18:44:38 1892581780
>>1892461
>Руководство по ASP.NET Core - бекенд
>Руководство по Web API это шо?

ну так есть бэкенд MVC где всякие вьюхи там, хтмл рендеришь, то есть мудришь полноценный вебсайт
а есть Web API где всякие там хитрожопые авторизации и отдаются данные обычно в json, то есть мудришь api
Аноним 27/12/20 Вск 18:45:12 1892582781
>>1892461
> Angular и ASP.NET Core - фронт энд
Angular – фреймворк для JavaScript. Ты можешь писать на ангуляре в специальных IDE, и так даже будет удобнее. Например, в WebStorm.
Просто есть шаблоны проектов, где сборка ангуляра встроена в проект на дотнете. Это франкенштейн из WebApi на бекенде и фрондендонвского фреймворка в данном случае ангуляр, но может быть реакт или vue. В итоге получается не очень удобно – сборка js-проектов обычно не быстрая. Обычно ее запускают один раз, а потом пользуются горячей перезагрузкой, так как js – интерпретируемый язык и перекомпилировать его не нужно. А вот шарп нужно. И ты будешь страдать, когда надо что-то поправить в коде на шарпе. Короче, говно. Лучше писать бек и фронт отдельно.
> Руководство по ASP.NET Core - бекенд
Я не ебу, что там на метаните подразумевается под этим. Это искусственное разделение. 99%, что это тот же самый WebApi
> Руководство по Web API это шо?
Это руководство по вебапи, еб твою мать. Делаешь запрос на него – получаешь ответ. Все. Никакого графического интерфейса, просто данные туда-сюда ходят. Сохраняются в базу, обрабатываются, сохраняются в базу данных. Ты пройди уроки на мсдн, проще станет, заодно поймешь разницу между webapi, mvc, razor pages, blazor. Все успеть за день можно
> Руководство по ASP.NET MVC 5 - в чем разница 5 и 4?
Это легаси, забей хуй. Оно почти ничем не отличается от Core, только пара моментов сделано неудобнее, сам поймешь, когда въедешь в тему
> Онлайн-книга Изучаем ASP.NET MVC 4
Опять же, легаси. Там вроде было про Core – его и читай
> На метаните я смотрю че да как также еще в паре книжек тоже смотрю. Но вот сейчас вроде изучил немного сам c# а что дальше то делать? по sql еще читаю.
Про sql ты хорошо придумал
> Родмап говорит что далее надо учить Entity Framework
Там учить особо и нехуй, фреймворк очень удачный получился, но надо понимать, что ты работаешь с sql, а не с хуй пойми какой абстракцией. Так что как sql подтянешь, все станет понятнее. На метаните неплохо все описано
> Книги это конечно хорошо но мне как то лучше читать метанит а потом если совсем не понятно читать книгу.
Хуевая логика, метанит тебе не даст понимания сути происходящего. Это конспект
> Что на метаните то читать?
> Руководство по Entity Framework Core 3
Пойдет
> Руководство по Entity Framework
Легаси
> В чем разница? Только версиях как и в версиях языка?
Core – новая ветка, работает везде. Без Core – только под винду и больше не развивается. Нахуй не нужен. Если на работе появится необходимость, потратишь пару часов и изучишь нюансы. Если знаешь sql, проблем не возникнет
Аноним 27/12/20 Вск 19:31:01 1892641782
Как начать учить фреймворки? Шарп вроде более-менее понимаю, но полгода сижу и хуи пинаю, потому что посмотришь в сторону ASP.NET или WPF какого-нибудь - и аж хуево становится от объема самых базовых знаний. С этого >>1892461 пика вообще выпилиться хочется, это ж ебнуться каким сверхчеловеком надо быть, чтобы это все знать.
Аноним 27/12/20 Вск 19:39:45 1892652783
>>1892641
>этого >>1892461 пика вообще выпилиться хочется

Там всё в кучу намешано - никто не будет работать со всеми SQL/no-SQL базами данных, выберут 1 SQL для больших проектов и 1 no-SQL для небольших. Какие-то знания узнают за одну книгу, например паттерны.
Аноним 27/12/20 Вск 19:59:18 1892675784
>>1892652
Это-то понятно. Просто паттерны изучить - это легко, понятно, за пару вечерков с консолькой делается. А дальше идет адский пиздец, потому что чтобы просто устроиться работать за еду - изволь знать SQL, JS, CSS, ASP.NET, еще какую-нибудь хуйню сверху, паттерны знай, алгоритмы блядь, из головы умей их сложность оценивать, да соси хуй лучше любой проститутки. А как в это вообще вкатиться - хуй знает.
Аноним 27/12/20 Вск 20:07:44 1892683785
>>1892675
> алгоритмы блядь, из головы умей их сложность оценивать
Вот это воще пиздец, как люди умеют в такую магию? У меня голова пухнет при попытке подумать об этом.
Аноним 27/12/20 Вск 21:21:22 1892773786
>>1870468 (OP)
Можно как-то сбилдить в dll-ку, вот эту NoSQL базу данных - MemCached, позволяющую кэшировать JSON в виде пар ключ-значение: https://github.com/benapetr/memcached
Чтобы не exe-шник, после билда получить, а .dll
Аноним 28/12/20 Пнд 10:37:10 1893279787
изображение.png 136Кб, 486x290
486x290
Сап, шарпач.
Поясните нубу, почему нужно дважды кликать на кнопку в WPF проекте, чтобы метод начинал работать?
Гуглил солюшн, не помогло.
Алсо, ещё проблема.
Через DispatcherTimer запилил повторение каждый указанный промежуток времени.
Также повесил на кнопку включение и выключение таймера.
Так вот, всё включается и выключается, но когда я включаю второй раз, то Repeat_Task выполняется дважды.
В какую сторону курить?
Аноним 28/12/20 Пнд 10:55:03 1893284788
>>1893279
>почему нужно дважды кликать на кнопку в WPF проекте, чтобы метод начинал работать?

Не нужно.

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

Потому что ты добавляешь обработчик Repeat_Task каждый раз когда срабатывает условие if
Аноним 28/12/20 Пнд 10:56:38 1893287789
>>1893284
>Не нужно.
Скажи это моей приложухе, она не реагирует на первый клик по кнопке.
>Потому что ты добавляешь обработчик Repeat_Task каждый раз когда срабатывает условие if
Можно ли мне убрать обработчики в else?
Как это сделать?
Аноним 28/12/20 Пнд 11:01:09 1893290790
изображение.png 1Кб, 309x36
309x36
>>1893284
Сделал, братюнь, получилось.
Добра тебе и твоей маме.
Аноним 28/12/20 Пнд 11:43:19 1893313791
Сап, стаковерфлоу. Каким инструментом в wpf'e можно показывать на image картинку (image.Source) на определенное время (на секунду)?
Я пока нагуглил только такое:
Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate
{
Thread.Sleep(1000)
}));

Но во первых thread.Sleep мне абсолютно не подходит - UIшка должна быть жива, во вторых работает оно всрато, т.е. пикча может нормально на секунду засветиться, а может залагать и засветиться на 0.1 сек, правда это наверное из-за DispatcherPriority.
Аноним 28/12/20 Пнд 11:45:08 1893315792
>>1893313
А чем тебе dispatchertimer не устраивает?
Аноним 28/12/20 Пнд 12:30:56 1893334793
23.jpg 17Кб, 703x167
703x167
Что означает underscore "_" в switch-case?
Аноним 28/12/20 Пнд 12:32:01 1893337794
>>1893315
А я уже сам нагуглил, спасибо. Сейчас буду ковырять и держать вас вкурсе.
Аноним 28/12/20 Пнд 12:33:53 1893340795
>>1893334
Просто название временной переменной. Так ещё обозначают out переменные передаваемые в метод.
Аноним 28/12/20 Пнд 13:03:42 1893367796
>>1893340
что за ебланское название переменной. И этот чувак еще (который со скрина) туторы пишет на ютубе
Аноним 28/12/20 Пнд 13:11:29 1893375797
>>1893367
Не нравится качество материалов? - Требуй вернуть деньги, уплоченные за курс.

Намёк понял?
Аноним 28/12/20 Пнд 13:23:01 1893392798
>>1893375
какой еще курс? Я на ютубе тутор по features .NET 5.0 нашел, посмотреть, что за глину добавили и наткнулся на такое
Аноним 28/12/20 Пнд 13:26:08 1893393799
>>1893334
Это как default в обычном switch-case, на твоём пике проверяются типы переменных, а не их значения, если тип Teacher то возвращает true, есди Student то false, если ни то ни другое, то false. Но сам код дерьмо, так как такого же эффекта можно было достичь написав:
IsTeacher(Person person) => person is Teacher;
Аноним 28/12/20 Пнд 13:33:30 1893402800
>>1893393
я уже понял как это работает, меня "_" засмущало, что за говнище блять. Нужно было вижлу сразу открыть и проверить через intelisense
Аноним 28/12/20 Пнд 13:34:29 1893403801
>>1893402
>"_" засмущало, что за говнище блять

А как иначе ты укажешь default значение в switch expression?
Аноним 28/12/20 Пнд 13:40:36 1893409802
image.png 6Кб, 425x160
425x160
Почему это не работает?
Аноним 28/12/20 Пнд 13:58:37 1893442803
>>1893403
с lowercase название типа, так хотя бы будет интуитивно понятно. Хотя я думаю если с такой конструкцией часто работать, то можно понять, что это просто название переменной. # не трогаю пол года, уже глаз отвык видимо
Аноним 28/12/20 Пнд 15:41:50 1893560804
изображение.png 245Кб, 2518x1132
2518x1132
Посаны, как заставить в dispatchertimer ждать выполнения таска, если время до тика истекло?
Аноним 28/12/20 Пнд 16:03:58 1893582805
>>1893560
Если ты думаешь, что кто то не понял твою проблему, то да - все не поняли
Аноним 28/12/20 Пнд 16:18:16 1893588806
изображение.png 16Кб, 476x310
476x310
изображение.png 18Кб, 686x301
686x301
>>1893582
Пихуй, я сам додумал.
Смари, поясняю.
На пикриле1 у меня вызывается Repeat_Task и работает всё нормально, если большой промежуток времени между тиками.
Но, если маленький промежуток, то Repeat_Task постоянно вызывается, не заканчивая выполнения по тику.
Решение проблемы на пикрил2.
Аноним 28/12/20 Пнд 17:00:19 1893631807
>>1893588
можно также запустить цикл с await Task.Delay
Аноним 28/12/20 Пнд 17:02:57 1893636808
>>1893631
Может же зафризить, не?
Аноним 28/12/20 Пнд 17:59:22 1893729809
>>1893367
Это временная переменная, она больше не нигде не фигурирует, буквально на пару строк. Это не один такой чувак, это даже решарпер такие переменные вставляет по дефолту в такие контексты.
Аноним 28/12/20 Пнд 19:13:59 1893792810
>>1893636
ConfigureAwait(false) и нечему фризить
Аноним 28/12/20 Пнд 19:15:49 1893795811
Аноним 28/12/20 Пнд 19:30:24 1893805812
>>1870468 (OP)
Подскажите годный GUI для SQLite на CShasp.
Аноним 28/12/20 Пнд 19:45:36 1893822813
>>1893805
то есть? что это такое должно быть?
что такое гуи склайт на шарп?
программ админок Sqlite валом, но причем тут шарп
Аноним 28/12/20 Пнд 20:23:36 1893879814
>>1893822
> но причем тут шарп
Да вроде как и не причём, ведь ему нужно для некоего
>>1893805
> CShasp
Аноним 29/12/20 Втр 05:32:01 1894282815
image.png 272Кб, 500x260
500x260
>>1870468 (OP)
Есть вопрос по индексации JSON.
Предоложим, есть огромная хэш-таблица key->value,
где value - текст, или blob в base64,
а key - хэш из всего этого дерьма.
Пусть эта хэш-таблица будет огромной-огомной,
и пусть она лежит в виде нарезанного на части - JSON-файла, не помещающегося даже в этот (пикрил), автобус с жесткими дисками.

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

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

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

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

>Да вроде как и не причём, ведь ему нужно для некоего
> CShasp
Ну хуй знает, почему меня переклинило в четыре креста. А разве это не тред про шарпег?
Аноним 29/12/20 Втр 07:18:02 1894334817
image.png 72Кб, 496x824
496x824
Почему суммируя положительные значения типа deciaml я получаю вот полный бред в результате
Аноним 29/12/20 Втр 09:53:09 1894378818
Я опять выхожу на связь. Есть один image в wpf. Я накодил ему смену картинки в методе привязаном к dispatcherTimer. Диспетчер таймер имеет интервал 500ms, все работает. Вопрос - как можно/правильнее сделать еще один интервал для картинки. Мне нужно чтобы сначала был интервал (смена/показ картинки на заданный промежуток времени) в 500мс, потом в 2000мс, потом опять 500 и так циклично. Если я сделаю еще один метод и диспетчер я могу словить ексепшн - ваш поток не поток?
Или можно задавать интервал в самом методе привязаного на tick? Как лучше?
Аноним 29/12/20 Втр 11:18:33 1894405819
Аноним 29/12/20 Втр 11:19:45 1894406820
>>1894290
>чтобы был полный опенсорец, на шарпе, и даже - портабле ексекутабле
ну видимо никому оно нахер не нужно изобретать велосипед. и если найдешь то это будет продукт такого же как ты - искателя фатальных недостатков
Аноним 29/12/20 Втр 13:08:53 1894457821
>>1894405
Прикольно, спасибо.
Аноним 29/12/20 Втр 14:34:00 1894521822
Аноним 29/12/20 Втр 15:07:20 1894533823
Аноним 29/12/20 Втр 17:16:48 1894653824
>>1892641
Лучший способ - начать что-то делать. Срсли. Хотя бы простенький движок для форума запили, чтобы чел мог просто запустить и потом прикрутив фронт - иметь полноценный форум с темами, разделами, ролями, кармочкой, банами, таймаутами и прочим.
Аноним 29/12/20 Втр 17:23:02 1894661825
Вы мне лучше объясните, неужели без тяжеловесного asp нет работы в .net? Ну, банально же проще сделать простенький веб-сервер на HttpListener, допустим кому-то нужно просто зафигачить сервак для лендинга, например, ему бы действительно было нормально запилить сервер который из 100 строчек состоит, не тащить аппач, nginx или полный asp.net (core).
Ну, просто мне это кажется странным. Неужели мелкой работы для шарписта нет?
Аноним 29/12/20 Втр 17:32:47 1894679826
>>1894653
Но оно все невъебенно сложно и непонятно. Хз как начать даже.
Аноним 29/12/20 Втр 17:33:09 1894681827
>>1892641
> С этого >>1892461 пика вообще выпилиться хочется, это ж ебнуться каким сверхчеловеком надо быть, чтобы это все знать.
В прошлом году начал учить шарп. Буквально вчера подобрался к второму блоку. EntityFramework. Туториалы смотрел для начала.
мимо

От пикчи не охуел. Схоронил на будущее.
Аноним 29/12/20 Втр 17:36:44 1894685828
>>1894679
> как начать
Калькулятор напиши.
Аноним 29/12/20 Втр 17:40:19 1894686829
Аноним 29/12/20 Втр 17:42:17 1894690830
>>1894679
Чего там непонятного? Фреймворк - это просто каркас, тебе не нужно его полностью изучать, как не нужно всю стандартную библиотеку в голове держать. Ты просто смотришь задачи: Ага, мне нужно тут JWT-токены захуярить, гуглишь как оно делается и делаешь у себя; ага, мне нужно кукисы - гуглишь - делаешь. Все, блядь. Это не высшая математика, это просто вопрос того, умеешь ли ты гуглить и читать код, пытаясь понять, а не тупо скопипастив.
Аноним 29/12/20 Втр 17:56:31 1894708831
>>1894686
Пользуешься им вместо стандартного? Если нет - то считай не писал.
Аноним 29/12/20 Втр 17:58:06 1894711832
>>1894690
Ну это упрощение у тебя, согласись, есть определённый известный набор знаний, без которого ты даже загуглить не сможешь то, что хочешь сделать.
Аноним 29/12/20 Втр 18:10:25 1894719833
>>1893588
Я нуб но мне интересно, зачем ты, по сути, запускаешь каждую задачу по-очереди? Почему бы все разом, учитывая что они не зависят друг от друга?

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

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

Сорян за нубские вопросы, просто интересно же, почему так вот делаешь.
Аноним 29/12/20 Втр 18:20:08 1894730834
>>1894711
Так нужно эти знания получить сначала, прежде чем в изучение фреймворка лезть.
Ну, просто вот ты не знаешь что такое куки и нахуя они нужны и используются. Ты "изучаешь фреймворк", доходишь до кук, не понимаешь что это и зачем нужно и что тут происходит? Ты поймешь это? Нет, такая информация не усвоится. Как пятиклашка не поймет интегралы, даже если будет сильно пытаться въехать.
Аноним 29/12/20 Втр 18:26:02 1894732835
>>1894730
Всё верно. Но это обычно настолько сильно подразумевается всеми, что некоторые нубы вообще не знают об этом. Мало того, обижаются, когда им предлагаешь матчасть изучить. Типа
> хули ты мне втираешь, некогда мне учить информатику! бабло зарабатывать надо!
Объясняешь такому, что без базовых знаний, он фреймворк не поймёт. А он ссыт тебе в глаза. А буквально на следующий день приходит с вопросами типа
> как сложить 2+2 в этом фреймворке? Что за говно? Почему эту парашу все так хайпят???
Аноним 29/12/20 Втр 18:36:22 1894745836
>>1894708
Я вообще не пользуюсь калькулятором.
Аноним 29/12/20 Втр 18:51:57 1894752837
>>1894661
>неужели без тяжеловесного asp нет работы в .net?
ничего тяжеловесного в асп.нет
там просто много всего зареференсено как метапакет.
просто выше расход памяти из за 100500 разных кешей всего на свете чтобы поберечь GC
Аноним 29/12/20 Втр 19:46:37 1894790838
Сегодня впервые собеседовал чувака, на позицию джуна. Очень интересный опыт.
Аноним 29/12/20 Втр 20:58:21 1894843839
>>1894378
Чел, почитай про MVVM и заюзай какой-нибудь калиберн или мввмлайт. Во вью модели запускаешь свой таймер и меняешь пропертю с картинкой, вьюха просто байндится на это проперти и никакой ебли с потоками. Ну и заодно не будешь логику основывать на том, какой текст написан на кнопке. Или ты не этот >>1893588 ?
Аноним 29/12/20 Втр 21:13:13 1894849840
>>1894790
Поделись!
вкатун 21 лвл без вышки
Аноним 29/12/20 Втр 21:33:56 1894860841
>>1894849
Подготовил набор вопросов со скриншотами. Виды вопросов:
1. Тут я себе стреляю в ногу, видишь, где?
2. Тут не совсем тривиальный код/разметка/sql запрос, можешь понять, что происходит?
3. Если пользовался, можешь сказать пару слов про эту фичу языка/фреймворка?
4. Вот тебе юайный компонент, опиши словами, как такое можно сделать с таким стеком технологий?
Еще сотрудник немного по теории и основам языка погонял.

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

>вкатун 21 лвл без вышки
Какой вывод из собеса сделал: портфолио - хорошо, но иметь теоретическую базу и некоторое понимание, как работают технологии - необходимо для прохождения технического собеседования. Смотреть только на гитхаб соискателя - нельзя ни в коем случае (на начальных позициях)!
Аноним 29/12/20 Втр 21:42:25 1894867842
>>1894860
Нормально, а теория это по базе типа алгоритмы и линукс спросили?
Аноним 29/12/20 Втр 21:44:34 1894872843
>>1894867
Какие колекции есть в шарпе, как пользоваться IDisposable, асинхронность через async await, ООП и СОЛИД.
Аноним 29/12/20 Втр 21:51:23 1894882844
Аноним 29/12/20 Втр 22:13:52 1894905845
>>1894843
Это не я с репитами. Мне мввм ни нужон, я уже все сделал - просто присваиваю интервалы в методе tick. И потоки не нужны. И проперти там не нужно.
Аноним 29/12/20 Втр 23:20:42 1894980846
>>1893409
Потому после того как ты написал:
@что--то
{

}
внутри скобок не нужны никакие собаки.
Аноним 30/12/20 Срд 00:06:43 1895002847
Анонче, такой вопрос.
Защищает ли закон структуру бд?
Есть у меня взломанный софт, в нем есть бд, вот я хочу запилить такойжеНу не прям тот в точ, а просто для того что бы что то в резюме вписать. Дак вот если я скопирую структуру бд это будет считаться как что то плохое? Там просто дохующа таблиц и мне как бы на первых парах не надо все. Но если я буду делать сам чета придумывать то получится хуета, софт то то знающие люди делали и структуру бд тоже делали с умом.
Аноним 30/12/20 Срд 00:10:12 1895004848
2b1274a6b4e6dca[...].jpg 23Кб, 500x333
500x333
>>1895002
>софт то то знающие люди делали и структуру бд тоже делали с умом
Аноним 30/12/20 Срд 07:15:47 1895238849
>>1894980
Не правильно, эти собаки как раз нужны что бы выполнить js код извне с# области
Аноним 30/12/20 Срд 09:06:35 1895356850
>>1895002
Некоторый софт целиком на бд крутится. На хабре была статья, как лингвалео или какая-то другая шняга для изучения языков перенесли всю бизнес-логику в бд и получили охуенную экономию ресурсов и кучу охуевших пользователей, у которых дропнули коллекции изученных слов. Естественно, структура бд – плод чьего-то труда. Учитывая, что для гитхаба могут сделать как для ютуба – поиск плагиата, то опубликованный чужой код может тебе аукнуться если не сегодня, то в будущем. А может и не аукнуться. А какого рода приложуха -то, что куча таблиц?
Аноним 30/12/20 Срд 10:25:26 1895454851
>>1895356
Ну софт для арбитражников и маркитологов.
80 таблиц, хз на сколько это много.
Тут еще дело в том что овнер данного софта жалуется на своих конкурентов которые делают бесплатный аналог.
Аноним 30/12/20 Срд 16:45:17 1895806852
Здорова, уважаемые.
Такое дело, я сейчас студент (магистратура в дс), и мне тут начали преподавать C# на достаточно приличном уровне. Я раньше как-то с предубеждением относился к шарпу и жабе, и не смотрел в его сторону, а сейчас прямо влюбился. Но со вкатом не особо понятно... Смотрю на жабу постоянно в банках набирают, и платят дохуя, у меня куча знакомых ещё на 3 курсе устроились и сейчас по 200к зашибают. Просто думаю пока я студент, может стоит задрочить жабу и вкатиться куда-нибудь на стажировку, потому что на шарпе че-то смотрю один веб, который не то чтобы вызывает у меня восторг, а другие места хуй знает, есть вообще? Сначала подумал может стоит паралельно и жабу и шарп осваивать, но походу не осилю, да и вообще жаба как земля че-то, шарп намного больше доставляет.
Аноним 30/12/20 Срд 19:15:05 1895952853
image.png 38Кб, 687x442
687x442
1700 миллисекунд на выполнения этой ебалы.
Почему так много?
Entity Framework такой тормознутый чи шо?
Аноним 30/12/20 Срд 19:22:51 1895965854
>>1895952
А наверное так и должно быть. Первое соеденение с бд идет долго а потом уже за 1 мс.
Аноним 30/12/20 Срд 19:43:19 1896006855
>>1895952
ну так то райнтам генерация маппинга отнимает время.
Аноним 30/12/20 Срд 19:51:10 1896016856
>>1895965
>>1896006
У меня вопрос интимного характера. Каким кодом можно симитировать вот этот вот первый запрос и инит маппинга?
мимо
Аноним 30/12/20 Срд 20:09:38 1896036857
>>1895806
Смотри что тебе больше интересно же.
Ну серьезно, может быть тебе нужно прямо сейчас зарабатывать, то да - бери джаву и ебаш. А может быть тебе хочется с .net'ом иметь дело больше, чем сразу начать много зарабатывать - то таки ищи на шарпе стажировки/вакансии начальных уровней.
В конечном итоге, через 5 лет опыта работы, разница между джавой и шарпом сглаживается, другое дело, что если тебе не будет хотеться развиваться в той области, с которой ты начнешь, то ты через 5 лет будешь на уровне мидла, а если интересно будет - будешь каким-нибудь крутым сеньером-помидором. Именно это и важно на начальных этапах: определить что тебе вкатывает в профессии и это изучать, блин. Я вот знаю челов, которые получают 8к зелени получают зная исключительно как с БД разными работать, но эти челы пиздец как ебанулись на нем, они о недокументированных фишках разных СУБД знают, они знают как не просто писать оптимальные запросы, но и как все это охуенно замутить распределенно пояснят, при этом о любой новой штуке что появляется - они сразу же узнают, сразу изучают, ты посмотришь их запросы и сначала ужаснешься, а потом взглянешь на карту запроса и охуеешь, потому что там блядь все так оптимально, что лучше уже и не сделать. Вот за эту хуйню они и получают деньги, а все потому что эти челы угорели по СУБД на начальных этапах, а сейчас сверху они и анализом занялись, поизучали питоны.
Я это к чему. В IT почти любой навык полезен, и уж тем более хорошо оплачивается, но только когда ты его действительно охуенно освоил. Даже, блядь, на дельфи ты найдешь работу, даже на ассемблере, даже на аде или F#, если ты будешь действительно в этом крут и будешь развивать свои скиллы дальше; а если ты просто изучил синтаксис, пару фреймворуков освоил, либы знаешь как накатывать и все что ты можешь - круды, то в определенный момент тебя просто заменят тем, кто делает все это же, но дешевле: студентом, потом ИИ.
Аноним 30/12/20 Срд 21:36:42 1896141858
>>1896016
> вот этот вот первый запрос и инит маппинга
У нас в ГД это называется "пропук".
мимо из гд
Аноним 31/12/20 Чтв 08:19:02 1896555859
image.png 51Кб, 869x343
869x343
Аноны, мне кажется это работает как-то не так... то есть что бы прочитать склРезультат я должен сначала преобразовать в стринг а потом в то что мне надо, как по мне это отличная среда для разных ошибок, про производительность я вообще молчу, как можно сделать это поумнее?
Аноним 31/12/20 Чтв 08:27:47 1896558860
>>1896555
Ну так читай документацию к девэкспресс, за тебя это делать никто не будет.
Аноним 31/12/20 Чтв 08:32:35 1896563861
>>1896558
Так тут не в девексе дело, будто я на ЕФ я делал бы то же самое, там тоже есть фича с исполнением непосредственной sql команды которая возвращает дата сет, собственно на скрине он, а девекс или не девекс тут не играет роли, меня интересует именно как эффективно парсить этот необработанный датасет, в интернете я ничего понятного не нашел
Аноним 31/12/20 Чтв 13:27:06 1896726862
Кстати может кто знает и может объяснить, а какого хрена вариант что на пике тут >>1896555 все равно оказывается практически на секунду быстрее чем обычный запрос через EF
Аноним 31/12/20 Чтв 17:17:28 1896947863
>>1896726
> обычный запрос через EF
А ты его с AsNoTracking() вызываешь?
Аноним 31/12/20 Чтв 17:21:36 1896955864
>>1896947
Речь идет только о получении данных, какая разница есть AsNoTracking() или нет ?
Аноним 31/12/20 Чтв 17:27:14 1896963865
Аноним 31/12/20 Чтв 17:28:48 1896966866
>>1896963
И что? как это влияет на скорость выдачи?
Аноним 31/12/20 Чтв 17:32:48 1896970867
>>1896966
Ну я же тебе ссылку дал на конкретный абзац:

They're quicker to execute because there's no need to set up the change tracking information.
Аноним 31/12/20 Чтв 18:36:02 1897011868
>>1896966
Таким вот "И что?" надо просто не отвечать. Пусть лесом идут. Ему уже всё загуглили, а ему лень по ссылке перейти и прочитать.
Знания студента, зато замашки сеньора.
Аноним 31/12/20 Чтв 18:39:41 1897014869
>>1897011
> Таким вот "И что?" надо просто не отвечать.
Анон не может не кормить жирдяя. Особенно в новогоднюю ночь!
Аноним 31/12/20 Чтв 18:54:24 1897021870
>>1897011
Я зашел. почитал что это влияет на скорость записи в базу, и незначительно влияет на скорость чтение, собственно я написал и уточнил что я говорил только о чтении, на что анон мне ответил что мол "нед необходимости инфу для трекинга" тут я и понял что анон сам мало что понимает потому что-то что анон процитировал фактически не влияет на время ответа, поэтому я решил что и смысла отвечать ему нет
Аноним 31/12/20 Чтв 19:14:48 1897048871
>>1897021
Тебе официальная документация говорит, что так быстрее, а ты все равно уперся. Хочешь разобраться, почему, поковыряй исходники EF. А вообще вместо того чтобы тут спорить, уже бы давно добавил в своем запросе этот вызов и замерял бы.
Аноним 31/12/20 Чтв 19:16:58 1897052872
>>1897048
Сейчас не за пекой, уже позже замерю и напишу что и как
Аноним 31/12/20 Чтв 19:41:44 1897104873
>>1897052
Скорость надо замерять после пары прогонов для разогрева. Лучше использовать https://github.com/dotnet/BenchmarkDotNet

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

У меня локально на гиговых БД чистый SqlConnection и EFCore выполняют Select/Insert за 1-10мс. Зависит тупо от того, на сколько быстро Sql Server обработает запрос.
Аноним 02/01/21 Суб 11:18:06 1898443874
>>1897104
Тесты показали что с AsNoTracking() после нескольких прогонов скорость падает до уровня статистической погрешности
Аноним 02/01/21 Суб 11:18:52 1898444875
>>1898443

То есть >>1898443 задержка падает до уровня статистической погрешности
Аноним 02/01/21 Суб 11:37:57 1898461876
Аноним 02/01/21 Суб 14:38:54 1898616877
Чтобы меня взяли на мою первую работу за еду, мне надо, наверное, на собеседовании показать какой-нибудь свой проект на гитхабе? А какой например? Что нравится эйчарам?
Аноним 02/01/21 Суб 14:45:38 1898620878
>>1898616
Домашнюю бухгалтерию запили свою. Менеджер персонального бюджета. Такое всегда и всем заходит. Главное, как и в вопросе с калькулятором выше - сделай так, чтобы самом хотелось пользоваться (если бы ты не умел считать и тебе требовалась помощь для организации своих финансов).
Аноним 02/01/21 Суб 17:51:27 1898766879
>>1870468 (OP)
Сап, нужна помощь. Возможно ли стандартными средствами . Net прочесть содержимое GZipStream и конвертировать в массив байтов? Через binaryreader не выходит, при попытке копировать в MemoryStream у последнего содержимое пустое. Что может сработать?

P.S SO мне в этом не помог
Аноним 03/01/21 Вск 14:22:46 1899484880
image.png 3358Кб, 1280x1166
1280x1166
>>1898616
Я купил бу сервер и запили собственный шифрованный файлообменник, и как и этот анон сказал >>1898620 я сосредоточился на том что бы самому хотелось использовать, реализовал фишки которые отсутствуют в имеющихся файлообменниках, и подумал так, даже если для портфолио не покатит то зато хоть будет у меня бесплатное облако, то есть в любом случае время не зря потрачу, как некоторые аноны которые берут для портфолио проекты которые потом ни для чего не используются или просто выбрасывается, собственно на собеседовании всем понравился проект и на первом же собеседовании меня пригласили работа на них, а файлообменник попросили допилить и заюзать для их корпоративных нужд
Аноним 04/01/21 Пнд 07:18:11 1900170881
>>1870468 (OP)
Как сделать простую внутреннюю почту на шарпе?
Может уже есть такое, с открытым исходником?

Сервер.
Форма регистрации:
пользователь (проверка на уникальность),
пароль,
повтор пароля (проверка корректности введённого первого пароля).

Ну а дальше, пользователь, может другому пользователю - отправить сообщение.
Аноним 04/01/21 Пнд 12:43:34 1900371882
>>1898766
>при попытке копировать в MemoryStream у последнего содержимое пустое
Через GZipStream.CopyTo()? Значит стрим битый, откуда берешь его?
Аноним 04/01/21 Пнд 15:45:26 1900591883
Сап шарп, студия ебанулась - сможешь ли ты совладать с ней?
Ловлю эксепшн - не удается найти ресурс "Image/Module 2/pic.jpg" при попытке считать пикчу с ресурсов приложения. Сам uri - "pack://application:,,,/Image/Module 2/pic.jpg".
Что самое интересное это то что у меня идентичный код нормально считывает пикчи с папки Module 1. Пикчи в Module 2 лежат, uri 100500 раз перепроверил. Свойства на картинках выставил (действие при сборке - resource, всегда копировать самую позднюю версию). Пробовал абсолютный/релятив ури. Пробовал очистить/собрать билд. Нихуя не помогло. В чем еще может быть проблема? Можно как-то явно посмотреть свойства билда?
Аноним 04/01/21 Пнд 15:46:44 1900594884
*Ресурсы билда конечно же.
>>1900591
Аноним 04/01/21 Пнд 15:58:33 1900622885
А все отбой, он где-то толи кириллицу словил толи еще хуй пойми что.
Аноним 04/01/21 Пнд 17:23:37 1900728886
Да
Аноним 05/01/21 Втр 14:02:36 1901449887
В треде есть те кто рисовали .png слой на картинки?
Есть один небольшой метод для рисования .пнг слоя на .jpg картинке который работает на bitmap/graphics https://pastebin.com/TrnGkpc9 .
С 30 картинок - стабильно 3 пички (одни и те же) куда-то съезжают нахуй - 1 сжимается в верхний левый угол более чем на половину, другая наоборот растягивается в правый нижний угол и выходит за пределы, третья просто сжимается в левую сторону.
Разрешение картинок я само собой проверил - что у слоя что у картинки - 1920х1200, никакого смещения не требуется. Все начальные картинки .jpg, слои - .png.
С чем это может быть связано? Или есть какой-то более нормальный способ для наложения слоев?
Аноним 05/01/21 Втр 15:25:27 1901525888
>>1901449
> Или есть какой-то более нормальный способ для наложения слоев?
Бери Win2D и рисуй через CanvasComposition, на GPU с нормальным пайплайном.
> System.Drawing
Откуда ты откопал это говно мамонта времён первого дотнета и ХР?
Аноним 05/01/21 Втр 17:18:19 1901663889
>>1901525
> Win2D
> Откуда ты откопал это говно мамонта времён первого дотнета и ХР?
Я 4.0 некромант.
Аноним 05/01/21 Втр 17:24:41 1901675890
image.png 99Кб, 1705x417
1705x417
image.png 31Кб, 1291x225
1291x225
В общем такая штука нужно написать программу и автотест к ней.
Программа должна логиниться в яндексе и возвращать имя пользователя. Автотест должен проверять совпадает ли то что вернулось с тем что должно быть. И вся соль в том что не получается залогинится. Исключение что элемент не найден. Не могу ввести логин по итогу. Пробовал разные локаторы. Явные ожидания и обычный Thread.Sleep нихера не помогает. Что может быть ? Куда смотреть.
Аноним 05/01/21 Втр 17:28:30 1901685891
>>1901675
Во-первых, какой нахуй xpath, когда есть селекторы?
Во-вторых, сайты защищаются от автоматизированного доступа, особенно такие как Яндекс. Поэтому в 99% случаев нужно суметь обойти эту защиту.
По всей видимости у тебя не хватает навыков HTML и CSS для того чтобы проанализировать страницу и сайт с которым ты работаешь.
Аноним 05/01/21 Втр 18:05:12 1901733892
>>1901685
Ну через CSS тоже пробовал та же херня.
Ну да да скорее всего навыков недостаточно.
Аноним 05/01/21 Втр 18:05:56 1901736893
>>1901663
На 4.7 хотя бы катись. Ты под ХР что ли пишешь? На любом говне 4.7 работает.
Аноним 05/01/21 Втр 18:10:26 1901741894
>>1901675
Чел, в Яндексе клики не работают как ты ожидаешь. И HTML рендерится через жопу жсом. Там такая пердольная срань, что ахуеешь. Пробуй их API или шли на хуй хуяндекс.
Аноним 05/01/21 Втр 21:27:41 1901919895
>>1901736
Да, под xp. Спасибо что отвечаешь.
Аноним 05/01/21 Втр 22:08:28 1901957896
>>1901741
Попробую через API нахуй к сожалению выслать не получится (
Аноним 05/01/21 Втр 23:19:17 1902020897
Как можно свою хуйню скомпилить в экзешник чтобы он работал на другом компьютере БЕЗ студии?
Аноним 05/01/21 Втр 23:30:01 1902033898
Аноним 06/01/21 Срд 02:38:22 1902181899
Подскажите, пожалуйста
Вот допустим у менять есть

Нестатический класс в котором объявлен нестатический ивент
public event Action MyEvent;
Я подписал на этот ивент статический хендлер
static void MyAction() { }
вот так
this.MyEvent += StaticClass.MyAction;

Будет ли этот статический метод удерживать объект от сборки мусора?
Аноним 06/01/21 Срд 08:00:03 1902236900
>>1902181
> удерживать объект
Мамку свою держи лучше. Как только экземпляр класса выйдет из области видимости - твой эвент перестанет работать. Вообще поебать статический или нет метод - его вызывает класс, который будет уничтожен. Алсо, статика в ООПе - костыль, который надо избегать.
Аноним 06/01/21 Срд 09:24:27 1902255901
>>1902236
> Алсо, статика в ООПе - костыль, который надо избегать.
Двачую. Это когда сделали полностью ООП-язык, а потом оказалось, что нужны неООП-функции. Зачем вообще надо было делать полностью ООП-язык и хвастаться этим 20 лет, если в итоге оказалось, что статический функционал необходим для ряда задач, как например, точка входа в приложение и предыдущие языки прекрасно справлялись с ООП, будучи императивными ("статическими").
Аноним 06/01/21 Срд 10:48:40 1902282902
>>1902255
>что нужны неООП-функции. Зачем вообще надо было делать полностью ООП-язык
то есть существование статических классов вам ни на что не намекает. )
Аноним 06/01/21 Срд 15:48:45 1902547903
image.png 14Кб, 387x357
387x357
двач, что такой синтаксис значит?
Аноним 06/01/21 Срд 16:03:39 1902593904
>>1902547
Что класс ClassB наследует класс ClassA
Аноним 06/01/21 Срд 16:07:59 1902607905
>>1902593
да все, я затупил, меня просто смутили фигурные скобки, я почему то подумал что они к classA относятся
Аноним 06/01/21 Срд 16:12:58 1902619906
image.png 33Кб, 760x445
760x445
алсо, почему предпоследняя строчка таблицы корректна?
я себе объяснил так: в пером случае переменная magicB никуда не ссылается, поэтому мы можем присвоить ее переменной c, произведя явный каст
я в чем то неправ?
Аноним 06/01/21 Срд 16:30:43 1902664907
image.png 792Кб, 619x839
619x839
image.png 40Кб, 865x510
865x510
image.png 28Кб, 736x385
736x385
image.png 18Кб, 285x447
285x447
Анонче че за прикол?
Изучаю пикрил. Все четко и ясно. Но вот я даунич не могу понять почему не отображает сраницу. Файл есть. Бля я название файла по буквам проверил. Вроде все сделал как сказано в книге.
Шо не так то?

Аноним 06/01/21 Срд 16:31:28 1902668908
>>1902619
Потому что переменная типа C тоже может принимать значение null, если бы С был структурой, а не классом, то произошла бы ошибка компиляции.
Аноним 06/01/21 Срд 16:31:46 1902669909
image.png 8Кб, 380x225
380x225
image.png 139Кб, 1589x711
1589x711
>>1902664
Пишет мол страница не найдена. Но она же бля есть.
Аноним 06/01/21 Срд 16:41:28 1902696910
>>1902669
> Но она же бля есть.
Но её нет. Заходи в папку с собранным бинарником и убедись сам.
Аноним 06/01/21 Срд 16:51:57 1902723911
image.png 10Кб, 251x289
251x289
>>1902696
Там вообще ни каких файлов нет.
дак ее не копирует чи шо? Ну вроде же все по книге делал.
Аноним 06/01/21 Срд 17:59:25 1902845912
>>1902723
А проект можешь скинуть? Очевидно. ты где-то проебался и не признаешься.
Аноним 06/01/21 Срд 18:27:09 1902889913
>>1902845
Ну конечно проебался, ноя пока хз где. Сейчас снова все заново сделаю.
Бля ну я же по букве перепечатываю все с книжки(
Аноним 06/01/21 Срд 18:31:06 1902896914
>>1902889
> пока хз где
Чел...
Давай намекну. С чего они вообще должны там оказаться? Может надо сказать студии чтоб их туда скопировало?
Аноним 06/01/21 Срд 18:40:30 1902906915
>>1902896
Да я переделал уже и все норм стало.
Хуевый варик в 3 ночи что то делать )

И в смысле скопировало?
Разве при компиляции все файлы не копирует?
Аноним 06/01/21 Срд 18:44:21 1902910916
>>1902906
> Разве при компиляции все файлы не копирует?
Нет, конечно.
Аноним 06/01/21 Срд 18:51:07 1902927917
>>1902910
Да я просто наверное где то ошибся.
Сейчас же все заработало.
Кстати почему bool не может быть 0 или 1?

пхп вроде может, и как по мне очень удобно.
Аноним 06/01/21 Срд 21:03:51 1903027918
image.png 3Кб, 342x61
342x61
image.png 1Кб, 235x57
235x57
Нахуя это(пик1) существует, если существует это(пик2)?
Аноним 06/01/21 Срд 21:27:19 1903045919
>>1903027
Чел, это специально сделано чтоб стрелять себе в ноги не отходят от класса. Тут надо спрашивать зачем вообще это сделано. В нормальных ЯП это называют hidden control flow и там борются с таким, чтоб без твоего ведома при чтении переменной или сложении не начинал считаться факториал в кишках. Я бы на твоём месте не использовал это в принципе. Нормальные люди явно через методы класса setA/getA работают.
А то в чужой либе из-за сеттеров внезапно при дроче переменных может начать жрать память, а GC яростно тереть мусор. Просто потому что ты не знал что там внутри рандомного инта что-то происходит. А потом удивляются почему же шарп жрёт память чуть ли не больше жабы.
Аноним 06/01/21 Срд 21:38:39 1903053920
>>1903045
Вопрос был в другом, нахуя делать пик1, если пик2 абсолютно то же самое и ничем не отличается
Аноним 06/01/21 Срд 22:47:46 1903143921
>>1903053
Вот прям в таком виде - никакого смысла.
Аноним 06/01/21 Срд 23:36:52 1903205922
>>1903143
А нахуя тогда оно надо эти ваши свойства? Ну да, могу я запихнуть какую-то анальную модерацию в set, ну и что с того? Ни разу не приходилось этого делать, кстати
Аноним 06/01/21 Срд 23:44:04 1903214923
>>1903027
Пик2 является синтаксическим сахаром пика1. Ещё вопросы?
Аноним 06/01/21 Срд 23:49:15 1903218924
>>1903205
Навскидку два примера:
1) используется внешний менеджер ресурсов, который юзает внутреннее АПИ для доступа к ресурсам. Ты хочешь назначить ресурсу внятное имя переменной. Поэтому в геттере у тебя идёт вызов GetExternalResource<Type> а в сеттере соответственно SetExternalResource<Type>
2) надо, чтобы несколько переменных были синхронизированы. Например, в текстовом ярлыке на форме выписывается число, в строковом представлении, а в коде у тебя int переменная, которая в своём сеттере делает Label1.Text = IntToString(myIntVar);
Аноним 07/01/21 Чтв 00:03:22 1903229925
Сука, как из Task<string> получить ебаную строку а не непонятную залупу которую нельзя запихнуть в обычный string!?
Аноним 07/01/21 Чтв 00:57:21 1903255926
Аноним 07/01/21 Чтв 01:34:58 1903266927
>>1903218
>синхронизированы

Свойство никакого отношения к синхронизации не имеют.
Аноним 07/01/21 Чтв 09:11:45 1903365928
>>1903266
Ну и как называется, то что я описал выше? При изменении свойства, меняются другие свойства.
Аноним 07/01/21 Чтв 12:24:16 1903445929
>>1903205
Многие фреймфорки работают только со свойствами
>>1903365
реактивное программирование
Аноним 07/01/21 Чтв 14:38:37 1903577930
>>1903445
> реактивное программирование
Это типа,
> если я назову шлюху деловой женщиной, которая грамотно воспользовалась ресурсами, то смогу на ней жениться и не буду считать себя куколдом.
Примерно как-то так я это вижу.
Аноним 07/01/21 Чтв 14:42:29 1903583931
image.png 793Кб, 639x839
639x839
Изучаю пикрил.
Дошел до главы разор пейдж и вот что пишут на хабре
>Razor Pages — более вменяемое решение для веба чем MVC

Вот это как? MVC Это же патер а RP технология. Поясните пожалуйста.
Аноним 07/01/21 Чтв 17:01:31 1903725932
>>1903205
Ну например в случае WPF чтобы обновить байндинг INotifyPropertyChanged используют, там из сеттера ивент кидают.
Аноним 07/01/21 Чтв 20:06:31 1903880933
Анончики кто сталкивался с Creatio (bpm online) - стоит ли связыватся с работой где предстоит разразабывать на этой платформе?
Аноним 07/01/21 Чтв 20:20:18 1903929934
>>1903725
> там из сеттера ивент кидают
Ух ты, а я и забыл, что так тоже можно было. Нежданно-негаданно годное решение мимопроблемы мимокрока. Спасиб!
Аноним 07/01/21 Чтв 22:06:10 1904047935
>>1903583
Это для любителей web forms
Те же, кто выбирал mvc и продолжит выбирать mvc
Аноним 09/01/21 Суб 18:05:21 1905690936
>>1870468 (OP)
Привет всем. Как быть?
была задача на десериализацию ~3000 страниц.
Сразу сделал через parallel.foreach. Пошло не очень, без async не то, ушло 3:10 минут на все.
Переписал на многотопочность через разбиение n количества страниц на 1 поток и внутри ещё async. Намного лучше ушло 1.30-1.40 на все.
потом через дебри узнал про tpl dataflow. Объединяющий удобства параллелизма, многопоточности и еще ассинхронно. Ушло 1:10-1:1:15 на десериализацию.
пока искал решение ушло больше времени чем на написание, чувствую себя архиологом. Если способы быстрого поиска нужного и актуального инструмента? А то вся информация про tpl dataflow за 2012-2017 год.
и так с каждым инструментом решающий сложную задачу. Нахожу первый попавшийся инструмент, потом ещё больше поисков через дебри ещё лучше инструмент, но все инструкции по нему дремучие ужас. А потом сижу и думаю может есть что-то более современее и лучше?
Аноним 09/01/21 Суб 19:23:44 1905752937
image.png 273Кб, 1397x903
1397x903
image.png 28Кб, 1483x168
1483x168
Челики помогите!!!
Не знаю в чем херня. Из меню не могу выбрать элемент. Получаю исключение NoSuchElementException
Хотя по локатору элемент находится. Что делать что не так ?

Аноним 09/01/21 Суб 19:34:12 1905765938
>>1905752
>ukrainLanguageButton
Поэтому и не работает.
Аноним 09/01/21 Суб 19:47:41 1905787939
>>1905690
>А то вся информация про tpl dataflow за 2012-2017 год.
а что там может быть нового (ну кроме того что они пакет переиеновали). это просто pipeline парадигма и если тебе проще мыслить ей - тебе подойдет
закодить вручную всякие async+producer/consumer не сложнее (лично мне проще)
В общем у кого как мозг мыслит тот то и выбирает абстракции для выражения.
Аноним 10/01/21 Вск 01:35:05 1906265940
Ребят, привет, подскажите как можно в xaml перехватить клик по окошку и при клике поменять свойство у контрола?
Аноним 10/01/21 Вск 06:11:49 1906323941
>>1905787
Спасибо.
>producer/consumer
А можно поподробнее?
Аноним 10/01/21 Вск 10:29:40 1906362942
>>1906265
Xaml
<Window
Window.Clicked = методнейм />
Xaml.cs:
public void методнейм(object sender, EventArgs args)
{
Контролнейм.свойство = значение;
}
Аноним 10/01/21 Вск 13:16:22 1906389943
>>1906323
ну ты можешь взять блоки от датафлоу, которые суть абстракции "элементы pipeline" и сформировать из них цепочку.

а можешь взять например System.Threading.Channels и просто сделать очереди, где результат текущей работы перекладывается в следующую очередь, из которой другой кусок кода выгребает (producer/consumer) по мере своей работы и кладет в следующую.

Dataflow - абстракция повыше где ты вот такие куски кода выделили в обобщенные элементы и потому описание получается более декларативным, нежели прямая реализация на основе очередей. Это те же яйца, просто в обертке.
Аноним 10/01/21 Вск 13:35:02 1906406944
Аноним 10/01/21 Вск 13:59:17 1906416945
>>1906406
ну так код все равно нужно где то написать
если во вьюмодели, то InputBindings в помощь, а вьюмодель поменяет что-то у себя и контрол связанный с вьюмоделью отобразит это новое значение.

Если же этому коду нечего делать во вьюмодели, то кроме кодбехайнда нужно мудрить бехавиор (атачед пропертю), но если это одноразовое действие, то никакого профита по сравнению с кодебехайндом это не даст
Аноним 10/01/21 Вск 17:03:19 1906579946
>>1906406
Триггер/аттачедпроперти/бехавиор
Аноним 10/01/21 Вск 20:06:41 1906799947
image.png 12Кб, 258x324
258x324
image.png 38Кб, 540x528
540x528
image.png 15Кб, 259x412
259x412
image.png 120Кб, 846x427
846x427
Анонче, вот что не так то?
Делаю все как в книге, и ошибка как будто нет папки Models но она же есть.
На всякий ссылка на проект
https://dropmefiles.com/FQf4k
Но там ничего нет по сути, просто папки.
ВТФ понимаю что от не внимательности что то пропустил, но я уже 3 раза создавал проект и делал все как в книге.
Аноним 10/01/21 Вск 20:07:37 1906803948
image.png 36Кб, 622x835
622x835
Аноним 10/01/21 Вск 20:10:56 1906805949
>>1906799
> как будто нет папки Models
А её и нет. Чел, у тебя фильтры, а не папки.
Аноним 10/01/21 Вск 20:19:04 1906812950
>>1906805
Какие фильтры?
Я же делаю все по книге, ПКМ Добавить папку
Аноним 10/01/21 Вск 20:25:18 1906825951
>>1906805
Хуй пойми.
У меня не компилируется с этой ошибкой.
А взял проект из книги, удалил все файлы и оставил только такие как у меня, ошибка есть но компилируется проект.
Аноним 10/01/21 Вск 21:34:50 1906866952
>>1906803
Забей хуй. У тебя сейчас нет неймспейса SportsStore.Models. Добавишь что-то в папку - появится. А ты так или иначе в нее что-то добавишь.
Аноним 10/01/21 Вск 21:54:45 1906881953
изображение.png 194Кб, 988x570
988x570
Сап, аноны, ради всего святого, выручайте, завтра зачет по проге в моем гавновузе, осталась ласт лаба, помогите написать, умоляю, понимаю что тред мертвый, но сука как же нужна помощь(((, мог закинуть пару соток со своей дностепендии на карту тому кто сделает (нада через структуры и стримы захуярить)
Аноним 10/01/21 Вск 23:56:33 1906947954
>>1906881
Делается за несколько минут, даже сложно представить что может вызвать затруднения. Походу ты проебывался всё время и даже базового синтаксиса не знаешь.
Аноним 11/01/21 Пнд 00:14:43 1906958955
Супер тупой вопрос: стоит ли сначала запилить что-то на винформсах(чтобы и сейчас поучиться, и потом на собеседовании показать), или сразу ебашить на впф?
И небольшой контекст - программировать я уже умею, сейчас занимаюсь скорее перекатом на шарп, поэтому было бы здорово выбрать то, что юзает больше каких-нибудь интересных особенностей шарпа.
Аноним 11/01/21 Пнд 00:30:32 1906969956
Аноним 11/01/21 Пнд 10:40:28 1907078957
>>1906881
Я бы тебе помог, но тебе хую нужно было написать хотя бы за пару дней, я уже молчу про то чтобы самому подумать.
Аноним 11/01/21 Пнд 16:11:47 1907481958
>>1906389
Спасибо больше. Даже смог нормально логирование подвязать. И материала больше про Channels. Прям 2 чаю тебе анон
Аноним 11/01/21 Пнд 20:52:38 1907796959
Вот у меня есть метод, он пока что ничего не делает полезного, но в скором времени будет, если я правильно его написал.

Как понять, что мне вернет метод?
Можно как-то поставить точку остановки и чтоб студия сама запустила мне этот метод без дополнительных действий? А то сейчас мне приходится запускать весь проект, ебаться со всякими действиями, чтобы проверить работоспособность одного метода. Вот чтоб как проект запустился в студии, то сразу метод выполняется.
Аноним 11/01/21 Пнд 20:59:48 1907804960
>>1907796
Юнит-тесты используй. Это их задача - отдельные методы на работоспособность проверять.
Аноним 11/01/21 Пнд 21:00:09 1907807961
>>1907796
Для этих целей пишут Unit-тесты и применяют паттерны проектирования для того чтобы построить архитектуру, которая облегчит подобные действия. Есть даже такой подход как TDD при котором ты начинаешь писать тесты и только потом код который будет проходить эти тесты.

В общем, никакой магии для запуска единственного метода нет, можно конечно поебаться с рефлексией, но лучше всё таки делать при помощи тестов и архитектуры.
Аноним 12/01/21 Втр 14:23:13 1908243962
>>1907796
Утилити методы выности as extension methods. И для них пиши юнит тесты.
Аноним 12/01/21 Втр 15:42:47 1908298963
изображение.png 4Кб, 504x132
504x132
Есть пикрил конструктор и я хочу сделать его так, чтобы он был пригоден для использования кем-то другим, соответственно чтобы шанс выстрелить в ногу был минимален, и тут есть две проблемы:
1. Я подразумеваю, что пользователь сам озаботится копированием массива, если ему надо.(в целях оптимизации, потому что скорее всего почти всегда переданный массив уже будет никому не нужен)
2. Все точки в _points должны быть отсортированы по первой координате, но я это опять же скидываю на пользователя.(и в целях оптимизации, и потому что если он передал неотсортированные точки - значит у него что-то не так и надо тогда уж исключение кидать)

Собственно как лучше всего это все допилить? Я вот думаю просто пройтись по точкам и кинуть исключение, если они не отсортированы, и комментарий написать, что массив присваивается по ссылке, а не копируется.
И если добавить бул переменную - копировать массив или присвоить ссылку - насколько от такого у вас бы глаза вытекли?
Аноним 12/01/21 Втр 15:50:48 1908300964
>>1908298
> я это опять же скидываю на пользователя
> копировать массив
> присвоить ссылку
Бляяя, не пиши больше в тред. В шапке есть учебники, читай пока их.
Аноним 12/01/21 Втр 16:21:51 1908310965
>>1908300
Пчел, вопрос не про язык. Я не спрашиваю как мне скопировать массив, я спрашиваю как пользователю этого класса сказать, что я его массив забираю по ссылке, чтобы он не отдал туда тот массив, который планирует потом ещё в каких-то своих целях использовать, а сам сделал копию.
Аноним 12/01/21 Втр 16:27:03 1908314966
>>1908310
> как пользователю этого класса сказать
Отправить читать его основы языка?
Но мне кажется это ты не знаешь их, раз такой бред пишешь.
Аноним 12/01/21 Втр 16:56:33 1908326967
изображение.png 16Кб, 670x699
670x699
изображение.png 27Кб, 720x871
720x871
>>1908314
Ну, пчел, ну. Вот я передаю в конструктор листа ссылку и лист его не утилизирует, потому что он ему нахуй не нужен.
А потом я его передаю в свой класс - и мне он там нужен.

Понимаешь о чем я? Как пользователь должен знать, буду ли я его данные менять или нет, когда это не очевидно из предназначения класса?
Аноним 12/01/21 Втр 17:06:22 1908331968
>>1908326
> Как пользователь должен знать, буду ли я его данные менять или нет
Чел, про readonly слышал? Говорю же, ознакомься с учебником.
Аноним 12/01/21 Втр 17:07:50 1908333969
>>1908331
Понял, вопросов больше не имею.
Какая же WPF охуенная тема блять. Аноним 12/01/21 Втр 17:16:57 1908334970
изображение.png 289Кб, 637x358
637x358
изображение.png 217Кб, 300x247
300x247
изображение.png 394Кб, 600x255
600x255
1) Нужно отобразить гифку в WPF окошке. В тырнете сказали что WPF такое не умеет, но есть либа WpfAnimatedGif и мол она самая популярная. Загрузил, написал как сказано в документации (мне нужно из бэка) ImageBehavior.SetAnimatedSource(ImageControl, _gif1); где _gif1 это
_gif1 = new BitmapImage();
_gif1.BeginInit();
_gif1.UriSource = new Uri("pack://application:,,,/Images/1.gif");
_gif1.EndInit();

И угадайте что? Пизда - минус полгигабайта озу на отображение. Ебаный рот этого казино. Сразу объявлю параметры гифки постить не буду чтобы до меня не доебались: 1.47мб, 28 кадров, кадр меняется через 100 милисекунд сам скрафтил.
Я молчу про то что в самом впфе дефолтное окошко с изображением, бэкграундом, парой кнопок, и парой лейблов - +200мб, когда например в nvidia control panel с кучей "контролов" у меня отжирает около 10мб.

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

var finalImage = new Bitmap(baseImage.Width, baseImage.Height, PixelFormat.Format32bppArgb);
var graphics = Graphics.FromImage(finalImage);
graphics.CompositingMode = CompositingMode.SourceOver;
graphics.DrawImage(baseImage, 0, 0);
graphics.DrawImage(overlayImage, 0, 0);
return ImageToByte(finalImage);

29 пикч нормально наклеиваются/отображаются, 30 пикчу (начальный джипег) косоебит в левый верхний угол и по размерам он стает приблизительно на четверть, а пнг слой наслаивается как по размерам нормальной пикчи. Я первым делом же проверил разрешение пикчи/слоя - одинаковое. Затем я попробовал в finalImage синитить с размерами не изображения, а слоя (на всякий случай) - нихуя. Затем я попробовал конвертнуть в разные форматы (bmp/png) - похуй. Я подумал может быть там где-то есть прозрачность на джипеге и его из-за этого пидорасит, взял перекрасил магической палочкой белые края в серый - нихуя. Ему просто не нравится одна пикча и я не могу найти какого хуя.
Аноним 12/01/21 Втр 17:23:12 1908336971
А извините, не 10мб (мне почему-то так запомнилось), а 75мб, не суть. Энивей добавлю - гифка еще и секунды 2 "грузится" для отображения.
Аноним 12/01/21 Втр 17:29:50 1908341972
1566905105984.png 7Кб, 1110x95
1110x95
>>1908334
Опять ты со своей ХР...
Используй уже Win2D. Гифку на кадры и выводи по таймаутам. Второе вообще в 3 строчки делается. А по производительности - пикрилейтед захват экрана и вывод 4К в 60 фпс через эту либу.
>>1908336
Так что ты хотел от софтового рендеринга по технологиям из 2005.
Аноним 12/01/21 Втр 17:59:57 1908366973
>>1908341
Бля, охуеть, но я не могу, серьезно.
>софтового рендеринга по технологиям из 2005
Хочешь сказать в 2005 по полгига уезжано только на гифку? Или что простое окошко занимало 200мб?
Аноним 12/01/21 Втр 22:02:06 1908649974
>>1870604
Мужик, а можешь тему оформления подогнать?
Аноним 13/01/21 Срд 00:45:52 1908774975
>>1906579
Так на клик можно только евенттриггер поставить, там же нельзя свойство контрала поменять
Аноним 13/01/21 Срд 13:42:16 1908969976
Тут сидят вкатывальщики, потому хочу дать совет как интервьюер: при собесе онлайн не гуглите ответы. Это не слишком эффективно и очень заметно. Мы над вами посмеемся и откажем с плохим отзывом.
Аноним 13/01/21 Срд 16:07:02 1909073977
>>1908969
Ага, как скажешь. иди нахуй с такими советами
Аноним 13/01/21 Срд 16:54:42 1909111978
>>1908969
Бля мужик ты бы лучше пак вопросов залил или хотя бы те на которых как правило сыпятся собеседуемые.
Аноним 13/01/21 Срд 17:12:51 1909123979
>>1908969
Не мужик, надо в черный список заносить сразу нах))) Че щеглы малолетние себе позволяют, какой же ты программист, если при столкновении с задачей сразу гуглить лезешь...
Аноним 13/01/21 Срд 18:32:13 1909196980
>>1894282
Нихуя не понял, чего ты хочешь добиться, чтобы ключи в JSON-файле быстро находить или как?
Аноним 13/01/21 Срд 18:33:24 1909198981
>>1909196
Алсо зачем такое изъебство под названием JSON для хранения данных в этом случае?
Аноним 13/01/21 Срд 20:58:41 1909317982
>>1909073
>Ага, как скажешь
Вот и славно сам нахуй иди, пёс
>>1909111
Писал об этом тут >>1894860
Сам пак давать не буду, ведь на собес ко мне можешь попасть ты! А сыпятся на чем угодно ровным слоем. От Linq и простых селектов на SQL, до особенностей работы дженериков, async await и GC.
>>1909123
Тут проблема в том, что они гуглят вещи, которые знать нужно. Если не знаешь - напишешь криво, не оптимально или вообще поломанный вариант, и даже не подумаешь гуглить.
Аноним 13/01/21 Срд 21:29:25 1909354983
>>1909317
>особенности работы GC
А нахуя это нужно ждуну-то знать? Пусть лучше уж код учится писать и гуглить ответы на свои вопросы, нет?
мимо вкатываюсь
Аноним 13/01/21 Срд 21:56:29 1909393984
>>1909354
Джуну то придется работать с уже существующей сложной системой, и нужно ничего не ломать в процессе разработки - потому, видимо и спрашивают. Джун ведь не трейни.
Аноним 13/01/21 Срд 23:15:00 1909450985
>>1909196
>Нихуя не понял, чего ты хочешь добиться, чтобы ключи в JSON-файле быстро находить или как?
Не ключи, а значения по ключам.
>>1909198
Потому что там пиздатая таблица из базы данных датацентра пендосского суперкомпа.

Всё, я понел. Надо переписать файл так:
KEY1+DATA1,KEY2+DATA2,...
и заебенить индекс, отдельным файлом:
key1+startoffsetDATA1+DATA1Length,
key2+startoffsetDATA2+DATA2Length,
...

и уже этот индекс в память грузить, и шерстить ключи по нему.
>>1894282-кун
Аноним 13/01/21 Срд 23:43:57 1909466986
Сколько вы дрочили ASP.NET, чтобы начать его понимать? Я просто вникаю, вникаю - и охуеваю. Черная магия на черной магии, не самый очевидный биндинг под капотом, там же находится автоматический DI, ну и как же без ебли с HttpContext-ом, EFCore-ом и прочими богомерзкими вещами. Пиздец же. Как скоро в это все реально въехать хотя бы на уровне "написать простенький вебсайт на коленке самостоятельно"?
Аноним 14/01/21 Чтв 00:36:47 1909529987
>>1909466
Въехал после прочтения одной книги (Valerio De Sanctis - ASP.NET Core 3 and Angular 9-Packt Publishing (2020)) и документации на MSDN. Ничего сложного нет, главное понимать основные концепты вида DI и IOC.
Аноним 14/01/21 Чтв 19:42:45 1910077988
Аноним 14/01/21 Чтв 19:49:10 1910084989
>>1910077
Мало того что сам код говно не разбитое хотя бы на методы, не говоря уже о классах, так еще и наименование существующих методов максимально ущербно - Update, Draw, LifeGameRulles (да-да, это тоже название метода), GetCell. Что обновляет, что рисует, какие нахуй руллес живая игра, зачем нам брать клетку, откуда её брать и т. д, о чём это должно говорить тому кто смотрит на код? Да ни о чём, просто садись и читай всю эту жижу которую ты высрал, строчку за строчкой, пока не воспроизведешь весь код. Но в данном случае легче конечно всё снести и написать адекватный код.
Задача популярная, поэтому пиздуй на гитхаб, гугли по решениям "GameOfLife" и смотри как делают более шарящие товарищи.
Аноним 14/01/21 Чтв 20:26:08 1910109990
>>1910084
Ну блин. Я загуглил, там разбитие на классы ради разбития на классы. Ну вот вынесу я "клетку" в отдельный класс, что это даст? Понятнее все равно не станет, будет: Что за клетка, какой еще грид и прочее, при этом код разростется, это повысит вероятность ошибки. Ко всему я не уверен что это не скажется на производительности. Тут и так довольно все плохо, всего при 640000 - уже видно что медленно. При миллионе клеток - 14фпс. А я хотел бы хотя-бы 30+ иметь стабильно. Вооооот.
Аноним 14/01/21 Чтв 20:46:13 1910120991
>>1910109
И зачем ты это высрал? Твой код так и остался говнокодом. Для достижения производительности не уменьшают количество классов, а делают вместо них структуры, либо достигают её улучшением алгоритмов. И у тебя проеб даже на уровне именования методов и разбития кода на логические блоки в рамках этих методов.
Аноним 14/01/21 Чтв 20:50:25 1910123992
>>1910120
Оки. Покажи как надо. Там всего 100 строк так-то, это 10 минут пишется.
Аноним 14/01/21 Чтв 21:03:21 1910131993
>>1910123
6 секунд на строку? Этим ты руководствовался кода своё код писал?
Аноним 14/01/21 Чтв 21:24:43 1910168994
>>1910131
Ну да. А как еще ты хотел код писать? По 1 строчке в день? Когда с таким подходом ты свой калькулятор, который может в порядок действий - сделаешь? Через 10 лет?
Аноним 14/01/21 Чтв 21:32:22 1910176995
>>1910168
Какой-то у тебя ограниченный выбор, наверно обусловлен ограниченностью твоего ума.
Аноним 14/01/21 Чтв 21:42:49 1910190996
>>1910176
Ну смотри, с момента как я предложил показать как надо - прошло уже 45 минут почти. Уж за это время-то, тот кто знает как надо - 100 строк написал бы.
Пока что я вижу что кроме как посты на борде писать - ты ничего больше не можешь. Потому твое ревью - не ревью. Жду более конструктивного анона.
Аноним 14/01/21 Чтв 21:44:00 1910192997
>>1910190
А ты моё время оплатил уже? Борда 18+, сычуш.
Аноним 14/01/21 Чтв 21:48:08 1910197998
.jpg 24Кб, 960x486
960x486
>>1910192
Ты очень токсичный, еще и тестовое задание брать не хочешь, зачем мне платить тебе? Хоть одну причину назови?
Давай начнем с простого, вот ручка, продай ее мне.
Аноним 14/01/21 Чтв 22:08:42 1910212999
>>1910077
>эти коммиты на русском языке
>эти XML-комментарии для каждой строки
Ладно, это я доебываюсь. А если серьезно: какой нахуй кодревью. Написал? Работает? Молодец, начинай писать что-то посложнее. Похуй, что оно лагает на миллионе клеток, похуй, что у тебя все "в мейне". Пиши программы или те же игры, только посложнее уже, и используй методы и классы по своему усмотрению. Наговнокодишь 10-20 программ, в которых разбираться, фиксить баги и расширять функционал невозможно - станешь лучше понимать, когда стоит ебашить классы, когда не стоит, а когда задача настолько проста, что делается в мейне. А пока что позаботься о более выразительном нейминге и не сри комментариями (тем более трехстрочными XML-ами) там, где суть ясна из названия или из кода. На комментарии ты только время проебешь, они тебе не нужны сейчас.
15/01/21 Птн 00:22:11 19103301000
Аноним 16/01/21 Суб 19:44:00 19120941001
Сап сишарпач, как сделать "оповещалку"? Вводится время в минутах, и через это количество минут выводится сообщение
Аноним 22/01/21 Птн 06:40:45 19177961002
>>1870604
Как вывести 500кк $ через битки в валюту в расии?
Аноним 06/04/21 Втр 12:34:54 19877401003
16177015130410.png 10Кб, 580x126
580x126
Как в этом ебучем Visual Studio сделать так, чтобы неправильно введенная команда автоматически исправлялась? Эта функция раньше работала, но я что-то нажал и ВСЕ, редактор перестал автокорректировать неправильное написание.

Сижу гуглю уже ебаный час и НИХУЯ, как будто никто и не знает про эту функцию. Может тут кто-то знает?
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов