Сохранен 515
https://2ch.hk/pr/res/2165540.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

C#/Сишарп/.NET Тред #30 /csharp/

 Аноним 24/09/21 Птн 10:30:14 #1 №2165540 
image
Прошлый тред: >>2134580 (OP)

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

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

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-версии более, чем достаточно для большинства задач. Также есть версия для macOS.
Кроссплатформенный полуредактор/полуIDE VS Code ( https://code.visualstudio.com/ ).
Кроссплатформенный IDE Rider ( https://www.jetbrains.com/rider/ ).
Также существуют C#-плагины для Atom и Sublime Text, но функциональность там достаточно сильно урезана.

6. С# для мобильной разработки
https://dotnet.microsoft.com/apps/xamarin

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

Текст шапки: https://pastebin.com/pbK8CGqw
Аноним 24/09/21 Птн 10:31:22 #2 №2165541 
7. Что почитать?
The C# Player's Guide, третье издание (RB Whitaker) — отличная книга для ньюфагов, всё расписывается довольно подробно, очень много примеров кода.
C# 9 and .NET 5 – Modern Cross-Platform Development (Mark Price) — подойдёт для ознакомления с платформой. Затрагивает все технологии, имеющиеся в .NET (веб, мобильная разработка, машинное обучение), ни во что не углубляясь.
C# 8.0 in a Nutshell (Joseph Albahari и Eric Johannsen) — огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином.
C# 8.0 Pocket Reference (Joseph Albahari и Ben Albahari) — просто выжимка из книги сверху, можно всегда держать рукой.
Pro C# 8 with .NET Core 3 (Andrew Troelsen) — 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.

8. Более хардкорный материал
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 структура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче всё, что нужно, чтобы вам перезвонили.

9. Литература по WPF
— Pro WPF 4.5 in C# (Matthew MacDonald)
— Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)

10. Литература по ASP.NET
— Pro ASP.NET Core 3 (Adam Freeman)
— Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)

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

12. Литература по мобильной разработке
— Creating Mobile Apps with Xamarin.Forms (Charles Petzold)
— Xamarin.Forms Projects (Johan Karlsson, Daniel Hindrikes)
— Mastering Xamarin.Forms (Ed Snider)

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

14. Разработка игр
Unity-тред в /gd/

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

16. Что еще нужно знать, чтобы взяли работать за еду?
— Базы данных — подойдет любая книга по MSSQL/MySQL/PostgreSQL. DDL, DML. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper.
— Системы контроля версий — обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote, diff, разрешение конфликтов.
— GitHub — issues, пулл-реквесты, теги, релизы, Actions.
— Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках.
— Структуры данных — связанные списки, деревья (бинарные, красно-чёрные, b-деревья), хеш-таблицы, графы.
— Если идти в веб — HTML, CSS, JavaScript, веб-сокеты, REST, JS-фреймворки (Angular, React, Vue).
— Паттерны проектирования, стиль кода, архитектура приложения, внедрение зависимостей, MVVM (если хочется в WPF), SOLID.

17. Я не умею читать, что посмотреть?
— C# Fundamentals: Development for Absolute Beginners — https://goo.gl/meyyxO
— Набор курсов по C# от O'Reilly Media (28 часов, на английском) — http://rutracker.org/forum/viewtopic.php?t=5082978
— Канал по C# IAmTimCorey (на английском) — https://www.youtube.com/user/IAmTimCorey
Аноним 24/09/21 Птн 10:32:28 #3 №2165542 
Спиженные книги на русеке: https://mega.nz/folder/zdoCBLqY#Q6eS_76VECpQZmPmw9vLew

Шапка протухнет к следующему перекату.
Аноним 25/09/21 Суб 13:37:51 #4 №2166739 
https://route256.ozon.ru/c-sharp?utm_source=tg&utm_medium=csharpproglib&utm_campaign=csharp&utm_content=post2109
Что думаете? Конечно, очередные инфоцигане, НО
>халява
>есть порог входа
Аноним 25/09/21 Суб 14:13:00 #5 №2166769 
>>2166739
Я думаю, у твоей ссылки много рекламы прилипло, что по ней стремно переходить.
Аноним 25/09/21 Суб 14:16:34 #6 №2166772 
>>2166769
>рекламы
Де?
Аноним 25/09/21 Суб 14:17:18 #7 №2166773 
>>2166772
Все, что начинается на utm.
Аноним 25/09/21 Суб 19:37:21 #8 №2167035 
image.png
>>2166739
Вах курс хяроший. Всей семьей три сезона проходим уже...
Аноним 25/09/21 Суб 19:38:15 #9 №2167036 
>>2165540 (OP)
еее аниме!!11
Ну старую кортинку тоже надо было оставить, дабы глаз цеплялся.
Аноним 25/09/21 Суб 23:23:31 #10 №2167148 
Почему в ЕФе мерж не реализовали?
Аноним 25/09/21 Суб 23:36:23 #11 №2167161 
>>2167148
Зачем тебе вообще понадобился мерж?
Аноним 25/09/21 Суб 23:46:19 #12 №2167167 
>>2167161
Скопом данные засинкать, очевидно же.
Миграции не подходят.
Аноним 26/09/21 Вск 00:51:19 #13 №2167204 
>>2167148
Зачем тебе вообще понадобился EF, когда есть ADO.NET, Dapper и linq2db? EF - это было в 2к10 прикольно, модно и молодёжно, сегодня - это убогая ПАРАША.
Аноним 26/09/21 Вск 02:12:01 #14 №2167223 
>>2167204
>ADO.NET
Ты сам параша.
>Dapper
Ну хуй знает, ЕФ на минималках. Кококо перфоманс сравним с качественно приготовленным ЕФ.
>linq2db
И в чем профит? хотя кокрастоке мерж там есть

Сейчас модно гнать на ЕФ, но обычно это делают дурачки, которые обосрались с ним по неопытности, так же само обосрались бы и с другим.
Аноним 26/09/21 Вск 09:05:02 #15 №2167284 
>>2167167
Хранимку написать?
Аноним 26/09/21 Вск 19:14:47 #16 №2167772 
Есть тут кто, кто пилит свое опенсурс поделие на гитхаюе/лабе? Что бы можно было пулреквестики поотсылать fix typo, а то к серьезным ребятам подходить страшно, а вот какой нибудь телеграм-бот погоды или двач-ридер в самый раз.
Аноним 26/09/21 Вск 19:54:46 #17 №2167801 
Так уж случилось, что и я вступил и измазался в EF. И у меня от этого встал... вопрос. Если я делаю так:
using var trans = context.Database.BeginTransaction();
//что-то, что вызовет SaveChanges
// еще что-то, что вызовет SaveChanges
try{
...trans.Commit()
}
catch(FooException ex) {}
catch(BarException ex) {}
catch(FooBarException ex) {}

мне что, в каждом кетче писать trans.Rollback?
Аноним 26/09/21 Вск 20:47:00 #18 №2167855 
>>2165540 (OP)
Ребят ,я студент ,закончил внешние курсы в епаме на внутренних курсах послали нахуй абсолютно всех студентов , не проводя собеседования. Хочу вкатиться джуном за еду,но везде требуют "Знание основ ASP.CORE" . Сама кора достаточная обширная, часто слышал ,что новичку будет трудно с ней разобраться . Какие области коры чаще всего запрашивают работодатели с джуна ? Всем спасибо
Аноним 26/09/21 Вск 21:13:34 #19 №2167873 
>>2167801
Да.
Аноним 26/09/21 Вск 21:15:35 #20 №2167875 
>>2167855
>Сама кора достаточная обширная
Никто не спрашивает какую-то конкретную хрень из кора. Максимум поебут мозги вопросом IEnumerable vs IQueryable.

>что новичку будет трудно с ней разобраться
Нет.

>Знание основ ASP.CORE
Core и ASP.NET Core - разные вещи.
Аноним 26/09/21 Вск 21:46:35 #21 №2167900 
>>2167875
Открыл рандом резюме ,пишут примерно так ".NET Framework/Сore" . Ну спасибо за ответ ,пойду тренироваться
Аноним 27/09/21 Пнд 05:53:21 #22 №2168140 
>>2165540 (OP)
Шарписты, помогите эту хуйню
https://github.com/username1565/System.Data.SQLite
куда-то сюда впаять:
https://github.com/username1565/nanoboard/blob/dev/nanodb.exe-source/Database/PostDb.cs
чтобы было опциональным.

Кококонпелятор какую-то хуйню пишет, заебал уже.

Структура базы на пикрил, здесь: https://2ch.hk/crypt/res/45030.html#47339

Алсо, как сбилдить этот сиквелайт на linux, с помощью mono, блядь? Там тоже какая-то хуйня.
Может чё-то добавить надо, или да?
Аноним 27/09/21 Пнд 06:32:26 #23 №2168150 
Хочу вкатиться в с#, есть какой то подробный roadmap?(желательно на русском)
Аноним 27/09/21 Пнд 07:45:39 #24 №2168166 
image
>>2168150
По первой же ссылке роадмап по асп. С этими навыками в 2к21 на помидора могут взять.
Аноним 27/09/21 Пнд 08:11:09 #25 №2168171 
>>2168140
Опять ты выходишь на связь? Заведи ишью, чел который занимается сейчас нанобордой лучше тебе поянит, почему ты дурачок
Аноним 27/09/21 Пнд 13:20:07 #26 №2168327 
Я правильно понимаю, что BCL от нет кора под MIT и я могу брать оттуда куски кода в свой проект через ctrl+c ctrl+v?
Аноним 27/09/21 Пнд 14:11:56 #27 №2168363 
>>2168327
Да.
Аноним 27/09/21 Пнд 15:48:34 #28 №2168411 
>>2168166
Это сколько жизней надо, чтобы все выучить?
Аноним 27/09/21 Пнд 15:57:23 #29 №2168415 
>>2168411
Хз, пару лет. Мне кажется, достаточно запилить пет проект за пару месяцев, где используется вся та фигня, чтобы иметь хотя б общее представление.
Аноним 27/09/21 Пнд 16:05:34 #30 №2168421 
>>2168327
А зачем? Добавь нюгет пакет ебана
Аноним 27/09/21 Пнд 16:15:26 #31 №2168423 
>>2167801
>что и я вступил и измазался в EF
Ну не вступай, не обмазывайся, умник.
Делай все тоже самое с дапером/адо или ебись в жопу с хранимками, где ты вообще к ошибкам С# кода доступа не имеешь.

Вообще, если ты хочешь только ДБ ексепшены обрабатывать - выноси свое говно в юнит оф ворк и там это обрабатывай. Если ошибки бизнесслогики - ну тогда уже ебись по месту.
Аноним 27/09/21 Пнд 16:19:37 #32 №2168426 
>>2168140
Что такое эта наноборда? Типа аппа, которая в кортинки на других бордах свою инфу добаляет и потом считывает и строит вам свою юорду? Это вообще работает? Как она определяет с каких постов данные брать?
Аноним 27/09/21 Пнд 16:22:30 #33 №2168429 
Хочу перекаться из PHP в C#.
Подводные?
Аноним 27/09/21 Пнд 16:26:07 #34 №2168433 
>>2168429
Код на C# будет выглядеть как код на PHP или того хуже, C# не умеет возвращать длину числа пи.
Аноним 27/09/21 Пнд 16:32:50 #35 №2168435 
>>2168429
Подводные: ты ленивая РНР блядь.
>>2168433
>C# не умеет возвращать длину числа пи
А кто умеет?
Аноним 27/09/21 Пнд 16:33:40 #36 №2168436 
>>2168435
PHP умеет, вопрос только нахуя.
Аноним 27/09/21 Пнд 16:34:58 #37 №2168437 
>>2168435
>ты ленивая РНР блядь.
Цыганка в треде!
Все по коням!
Аноним 27/09/21 Пнд 16:35:05 #38 №2168438 
>>2168436
Он что ебанутый? И что он возвращает? Инфнити?
Аноним 27/09/21 Пнд 16:35:48 #39 №2168439 
>>2168437
Пососешь, ок?
Я тебе домашку в МВП треде кидал.
Аноним 27/09/21 Пнд 16:36:25 #40 №2168440 
>>2168438
15.
Аноним 27/09/21 Пнд 16:39:58 #41 №2168443 
>>2168439
Ты сам-то домашку на завтра сделал?
Аноним 27/09/21 Пнд 16:46:37 #42 №2168448 
>>2168443
РНР-блядь, учись мягким скилам. Понятно, что ты на РНР себе только хомпйджи делал и то криво в одно рыло, но шарфикогоспода работают в команде и обоссут тебя.
Начальный пись ты уже получил.
Так что тебе надо еще-то?
Аноним 27/09/21 Пнд 18:43:12 #43 №2168544 
>>2168448
Хорош косплеить цыганку. Ты вообще пальцем в небо. Не знаешь ровным счетом ничего про мой бэкграунд, а уже с напыщенным видом с ЧСВ до небес кудахчешь: ТЫ НИ МОЖЕШЬ ТО, ТЫ НИМОЖИШЬ СЁ.
Ты какой-то ебанутый. Либо озлобленный вкатыш, либо анальник, сидящий на зарплате среднего класса в 17к, потому что другого объяснения я не вижу. Все мои успешные коллеги себя так не ведут, наоборот все довольно доброжелательны и пояснят что угодно из мира кодинга просто и понятно, без выебонов.
Аноним 27/09/21 Пнд 20:01:30 #44 №2168590 
>>2168544
Использованияе токсичных напыщенных словечек "средний класс", "вкатывальщик" как будто что-то плохое.
Галюцинации и слова в голове, которых никто не говорил: "ни можишь" и т.д..
Стресс тест завален.
Вам перзвонят с психушки
Второй пись на прощание- вам.
Аноним 27/09/21 Пнд 20:55:59 #45 №2168625 
>>2167855
Меня по asp.net спрашивали про dependency injection. Правда конкретно к asp.net это отношение не очень имеет и я собеседовался на мидла, но тем не менее
Аноним 27/09/21 Пнд 21:02:49 #46 №2168630 
Бля посоны дапамажите.
Чета туплю пздц.
Вот у меня есть List классов в котором есть List классов в котором есть поля.
Вот мне надо взять List второго уровня.
Вот первый главный класс

public class Root
{
public List<Line> lines { get; set; }


}
Вот второй

public class Line
{

//
//
public string name { get; set; }
//
//

}

Все все это дело лежит в List<Root> AllItems = new List<Root>();

Как мне взять Line по имени фирсОфДефаульт? Это LINQ но я чета туплю
Помогите плэззз.
Аноним 27/09/21 Пнд 21:13:06 #47 №2168634 
>>2167855
Новичку нужно просто знать что был фреймворк и сейчас он как-бы для легаси, а все новые проекты - на коре. Этого достаточно.
Лично я бы джуна погонял по докеру и линуксам, по архитектуре(ну, банально: спроектируй фейсбук или промышленную систему отслеживания аварий на производстве в близком к реальному времени), по алгоритмам, ну, это естественно если он нормально на базовые вещи ответил бы про ООП, солид, DI, многопоточку, асинхронщину, SQL, n+1; очереди, планировщики; да, про фронтенд еще неплохо бы спросить, ну, хотя бы что-то из большой тройки плюс ванила(на уровне понимает ли джун что там фреймворк за него делает или считает это магией), умение пользоваться вебпаком, препроцессоры, да, еще про тестирование: как, чем, зачем, TDD, ну и естественно системы контроля версий, как будет с конфилктами бороться, умеет ли ветки сливать нормально и т.д. Но это все если у тебя рост меньше 190см и тело не подкачанное, в этом случае - просто спросил бы: нравится офис?
Аноним 27/09/21 Пнд 21:23:25 #48 №2168642 
1.png
>>2168630
Аноним 27/09/21 Пнд 21:31:42 #49 №2168649 
>>2168642
А можно методом расширения плиз, я смутно понимаю че там как ты сделал)
Аноним 27/09/21 Пнд 21:42:36 #50 №2168653 
1.png
>>2168630
Можно
Аноним 27/09/21 Пнд 21:43:34 #51 №2168654 
>>2168634
А что за базовые вещи по ООП?
Аноним 27/09/21 Пнд 21:46:10 #52 №2168655 
>>2168654
Наследование, полиморфизм, инкапсуляция. Паттерны. Почему аггрегация вместо наследования.
Аноним 27/09/21 Пнд 21:49:35 #53 №2168657 
>>2168653
Спасибо братишка.
Очень помог.
С 5 утра сижу делаю бота для пое.
Бошка не варит, так бы еще сидел до 3 ночи думал как эту хуйню сделать.
Аноним 27/09/21 Пнд 21:57:31 #54 №2168667 
>>2168655
Спасибо.
Аноним 27/09/21 Пнд 21:57:35 #55 №2168668 
image.png
>>2168590
>косплеит ретарда
>ИТА БЫЛ СТРЕСС ТЕСТ, ЯТИБЯ ЗАТРАЛЕЛ)))
Аноним 27/09/21 Пнд 22:20:19 #56 №2168688 
>>2168657
ЧТо за бот? Судя по всему - торговый.
Я раньше тоже хотел, но полноценного, ане торгового, но как прикинул обьем работы...
Аноним 27/09/21 Пнд 22:23:56 #57 №2168693 
Мне надо использовать кое-какие классы в другой класс лайбрари. Добавлять как референс не могу.
Это нормально будет кк-то скопипастить их через Include или типа того?
Допустим, я более-менее уверен, что эти классы не получат внешних зависимостей и в месте копипаста не отвалятся.
Аноним 27/09/21 Пнд 22:27:40 #58 №2168699 
>>2168625
По АСП еще спрашиват пайплайны, екшнфилтры, отличие и т.д. "Пользователь нажал ссылку в броузере, што праизойдет?".
Могут еще моделбайндеры спросить.
"Как оптимизировать сайт )))"
РЕСТ, опенАпи (свагеры), вебсокеты.

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

А вас шо спрашивают еще?
Аноним 27/09/21 Пнд 22:31:10 #59 №2168702 
>>2168634
Кор уже тоже почти легаси лол ебать время летит, помню как мы ждали релиз кандидата кора шобы заюзать

>докеру и линуксам
>.нет
Ты ебанутый?

>архитектуре
>жуна
Ты ебанутый (2)?

>остальной поток сознания
Ты ебанутый (3)?
Это вопросы и набор синиора+ уже. Или ты тралишь?
Аноним 27/09/21 Пнд 22:47:55 #60 №2168713 
>>2168702
>Или ты тралишь
Долго доходит...
Аноним 27/09/21 Пнд 22:50:03 #61 №2168716 
>>2168713
Что доходит?
В реальности и твой траленг бывает.
Жунов ебут сильнее сениоров - это гарантия.
Аноним 27/09/21 Пнд 23:55:03 #62 №2168759 
>>2168702
Да не троллю я.
> архитектура
Таки вопросы просто показывают насколько человеку это ваше программирование интересно само по себе.
Отвечать на них как на экзамене - нет необходимости. Просто показать как бы ты решал задачу, показать способность анализировать, предлагать решения и УТОЧНЯТЬ ВХОДНЫЕ ДАННЫЕ, а не сесть как аутист и сидеть пытаться что-то высрать из пустой башки.

> докер и линукс не для дотнета
Алло, блядь, деда. Ауууу. В чем ты-то собрался запускать? В азуре? Ну охуеть, может еще интерпрайз MS SQL - использовать предложишь?
Аноним 27/09/21 Пнд 23:59:10 #63 №2168760 
>>2168688
Ну не с людьми торговать.
А в лиге новой покупать у мудака предметы, валюта карты, осколки.
Там выхи и зеркало может прокнуть.
А торговый бот это ну в пизду, это в память игры нужно лезть за сообщениями а я хуй знает ваще как это сделать.
Аноним 27/09/21 Пнд 23:59:35 #64 №2168761 
>>2168759
>В азуре? Ну охуеть, может еще интерпрайз MS SQL - использовать предложишь?
Да. В чем проблема-то?
Аноним 28/09/21 Втр 00:01:09 #65 №2168762 
>>2168760
А как ты без "залазинья в память игры" будешь покупать свою фигню?
Что за новая лига-то?
Аноним 28/09/21 Втр 00:07:12 #66 №2168767 
Безымянный.png
>>2168761
> Да. В чем проблема-то?
Даже не знаю. Может быть в том что любой бизнес тебя с такими ценами на новом, еще не приносящем прибыль проекте, пошлет нахуй?
Аноним 28/09/21 Втр 00:10:37 #67 №2168768 
1.png
2.png
3.png
4.png
>>2168762
Ну она не новая) Просто я только сейчас соизволил его сделать. экспедиция же.
Ну эмуляция нажатия кнопок, контрл+ц считываю что продает, чекаю выгодная ли цена, потом вбиваю цену, пытаюсь купить, смотрю по цвету пикселя купил или нет, если не купил то прибавляю больше. Также по цвету пикселя определяю за какую валюту я покупаю.
Аноним 28/09/21 Втр 00:15:17 #68 №2168773 
>>2168767
А на каком уровне нужно знать докер?
Аноним 28/09/21 Втр 00:52:18 #69 №2168799 
image.png
>>2168767
"Новому" бизнесу подойдет азур сиквел.
Для тырпрайза цены на твоем скрине - ничто.
Аноним 28/09/21 Втр 05:25:53 #70 №2168838 
Анончик,

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

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

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


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


Так вот - есть что нагуглить по такой теме? наверняка же есть какие-то готовые решения. Просто такое велосипедить я не осилю.
А работаю я один (у меня задача - старое ныне не работающее легаси переписать с нуля)
Аноним 28/09/21 Втр 05:41:18 #71 №2168841 
>>2168838
Да банально берешь какой-то sha1 от файла и используешь в качестве имени, поверху хуяришь какой-то AES.
В плане контейнера - ну зип без компрессии.
Аноним 28/09/21 Втр 08:59:09 #72 №2168874 
>>2168421
Функционал который мне нужен помечен как private, а наружу торчит апи, который мне не подходит.
Аноним 28/09/21 Втр 10:03:56 #73 №2168889 
Киньте в меня чем-нибудь в нагрузку к метаниту (на работе советуют Рихтера или он пойдет?)
Аноним 28/09/21 Втр 12:57:47 #74 №2168982 
Памагити.
Нужно написать функцию, которая из строки вытаскивает числа, регулярки при этом использовать нельзя.
Сам пока додумался только до вот этого https://pastebin.com/Yf0cr22z
Аноним 28/09/21 Втр 13:01:11 #75 №2168986 
>>2168982
Гуглится же на изи
string a = "aaa123bbb";
int value;
int.TryParse(string.Join("", a.Where(c => char.IsDigit(c))), out value);
Аноним 28/09/21 Втр 13:14:19 #76 №2169000 
>>2168986
Ты нагуглил какую-то дичь
aaa123bb4b -> 1234
В моем понимание должно быть
aaa123bb4b -> [123, 4]
Ну и если ему регулярки запрещено использовать, то и линк не положен.
Аноним 28/09/21 Втр 13:15:46 #77 №2169005 
>>2168986
А еще твой код не работает для отрицательных чисел.
Аноним 28/09/21 Втр 14:52:52 #78 №2169083 
>>2169000
>Ты нагуглил какую-то дичь
Нагугли лучше, ебана.

>>2169005
Твой тоже.
И ты про вские Е и т.д. забыл.
Если похую на перфоманс и нужен 100% результат со всякими изьебствами - бегай по строке и IsNumeric /Double.TryParse ебай

Но твой пердун преподаватель просто ожидает от тебя решение как ты и написал, только нахуя ты там какие-то старт-енд юзаешь, сабстринги? ПРОСТО, если чар подходит к условию - ложи его в массив и потом парсь. Можешь IsNumeric/TryParse вместо своего ренжа еще юзать
Аноним 28/09/21 Втр 15:13:03 #79 №2169110 
>>2169083
Нахрена гуглить, если написать быстрее.
>Твой тоже.
Моего кода тут нет.
>пук
А хер знает что ты там сказать пытаешься. Но твой код говно даже не делает что должен.
Аноним 28/09/21 Втр 15:18:17 #80 №2169124 
>>2168982
Тема про конечные автоматы. Регулярки - это тоже конечный автомат. Вещественные числа, баги и так далее сам.
https://dotnetfiddle.net/yUNX4p
Аноним 28/09/21 Втр 15:48:27 #81 №2169171 
Ребяты как узнать содержит ли массив строк часть строки?

Пример:
жопа хуй пизджа
абу не ебу
алилуя алаху хабар

Ищем "жопа хуй" и получаем тру
Аноним 28/09/21 Втр 16:30:59 #82 №2169205 
>>2168702
Шутки шутками ,но спустя огромного количества идиотских собесов ,я большую часть этой ебалы освоил ,лол Хз на каком уровне правда ,но все же
Аноним 28/09/21 Втр 16:48:55 #83 №2169228 
>>2169171
.Any(str => str.Contains(searchString))

>>2169205
>Хз на каком уровне
Хуевом, очевидно же. Но хотя бы кругозор получил. Этим собесы и хороши.
Аноним 28/09/21 Втр 18:38:54 #84 №2169316 
Безымянный.png
>>2168982
Аноним 28/09/21 Втр 19:03:13 #85 №2169360 
Безымянный.png
>>2168982
С отрицательными
Аноним 28/09/21 Втр 19:36:22 #86 №2169423 
Как по красоте свой ексепшн кастомный создать? Ну там я хочу енумку какую-то юзать шоб был понятен поддтип.
Аноним 28/09/21 Втр 21:24:42 #87 №2169492 
Вопрос.
Смотрите. Допустим я делаю видеоплеер. Допустим я такой умный и решил выделить ЯДРО, ядро инициализирует основные финкции приложения, такие как гуй, обработка нажатий, имеет ряд событий и т.д. Так вот, все остальное я решил делать через отдельные сборки и назвал их ПЛАГИНАМИ. Каждый плагин реализует интерфейс: IPlugin у котрого есть метод void Plug(Core core), void Start(), void Stop(). При запуске приложения я подгружаю из папочки Plugins дллки и достаю все классы имплементирующий IPlugin, вызываю метод plug.
Так вот. Теперь я хочу чтобы можно было закинуть новую длл в папочку во время исполнения приложения и он бы подтянулся. Как мне это сделать?
Аноним 28/09/21 Втр 21:43:10 #88 №2169500 
>>2169423
Без энамки, через наследование.

>>2169492
Рефлексия и динамическая загрузка длл.
Аноним 28/09/21 Втр 21:49:33 #89 №2169509 
Анончики, помогите плз составить регулярку
Есть строка "09/23/2021"
Надо регуляркой сделать из нее "2021-09-23"

Это ебучий специфический софт, который понимает только "C# regular expression syntax"
Аноним 28/09/21 Втр 21:51:41 #90 №2169511 
>>2169509
.Split('/')
Аноним 28/09/21 Втр 21:55:13 #91 №2169513 
>>2169511
Как .Split('/') поменяет порядок значений в строке?
Аноним 28/09/21 Втр 21:57:49 #92 №2169515 
>>2169513
Прикалываешь? Элементы массива не умеешь переставлять местами?
Через регулярку: https://dotnetfiddle.net/ymdT6T
Аноним 28/09/21 Втр 21:58:21 #93 №2169516 
>>2169513
Ну очевидно, разбиваешь а потом собираешь в нужном тебе виде.
Аноним 28/09/21 Втр 21:59:28 #94 №2169518 
>>2169515
>Элементы массива не умеешь переставлять местами?
Естественно нет, я же не знаю C#
Аноним 28/09/21 Втр 21:59:49 #95 №2169519 
>>2169515
>Через регулярку: https://dotnetfiddle.net/ymdT6T
Спасибо
Аноним 28/09/21 Втр 23:33:41 #96 №2169599 
image.png
Нахуя вы пишете на ебучем империческом говне, когда можно писать на божественном F#?
Аноним 28/09/21 Втр 23:35:57 #97 №2169601 
>>2169500
>Без энамки, через наследование.
Почему без? На каждый чих плодить ексепшены - такое себе.
Аноним 28/09/21 Втр 23:37:30 #98 №2169603 
>>2169601
Исключения для исключительных ситуаций. Для ожидаемого поведения можно использовать рельсы как у чела на F# выше, хоть там и говнокод.
Аноним 29/09/21 Срд 00:17:39 #99 №2169651 
>>2169603
Что такое "рельсы"?
Невалидные данные по бизнесс требованиям это исключительная ситуация?
Аноним 29/09/21 Срд 00:21:54 #100 №2169657 
>>2169651
>Что такое "рельсы"?
https://fsharpforfunandprofit.com/rop/

>Невалидные данные по бизнесс требованиям это исключительная ситуация?
Нет.
Аноним 29/09/21 Срд 00:36:13 #101 №2169674 
>>2169603
>хоть там и говнокод.
А как сделать не говнокод? Я просто только изучаю fsharp в целях автоматизации проекта на с++
Аноним 29/09/21 Срд 09:23:28 #102 №2169773 
>>2169674
Не мешать все в кучу, разбить хотя бы на модули.
Аноним 29/09/21 Срд 10:28:41 #103 №2169792 
>>2169657
Да при чем тут Ф#?
На С# как быть?
Возвращать резалт обжект как врапер выглядит говном. Лучше уж ексепшн пиздануть, не?
Аноним 29/09/21 Срд 10:44:19 #104 №2169805 
>>2169792
>На С# как быть?
Реализовать плюс/минус похожее. Нет никакого общего решения, зависит от конкретного случая. В ASP.NET MVC это например ModelState.

>Лучше уж ексепшн пиздануть, не?
Твои исключения - говнокод. Замерь производительность аллокации объекта против бросания исключения. Дык, ты еще ляпнул, что у тебя бл исключениями пронизана. Если тебе надо показать две и больше ошибок валидации, ты два исключения бросаешь? Или что ты наговнокодил?
Аноним 29/09/21 Срд 10:57:35 #105 №2169822 
>>2169805
Ну какой еще моделстейт. Я за бизнесс логику говорю.
Тоесть таки типа резалт обжекта? Что-то я нигде такого не видел в либах, все кидают ексепшн и не парятся.
На производительность похуй, хватит эту мантру повторять.
"Две и больше" - агрегейт ексепшн.
Аноним 29/09/21 Срд 11:46:42 #106 №2169865 
>>2169822
>Что-то я нигде такого не видел в либах
Мой пример - не пример, ага.

>все кидают ексепшн и не парятся
>На производительность похуй, хватит эту мантру повторять.
У такого кода не только проблема с производительностью. Мне изначально поебать, что у тебя в коде происходит, не еби потом мозг другим своими вопросами тогда про красоту. Еще разберись, что такое бизнес логика и какое отношение она имеет к валидации.
Аноним 29/09/21 Срд 13:16:55 #107 №2169937 
>>2169865
Да. Твой пример говно.
>Еще разберись
Тоже ясно. Пук в никуда. "Сами разбирайтесь".
Аноним 29/09/21 Срд 14:18:09 #108 №2169991 
>>2169651
>Невалидные данные по бизнесс требованиям это исключительная ситуация?
А можно пример? А то напрашивается очевидный ответ - если метод может обработать данные, то это не исключительная ситуация, если не может, то исключительная, и по принципу самурая чем раньше выкинет эксепшн тем лучше. Приход плохих данных от пользователя/из вне это не исключительная ситуация, это обычное дело и программа должна это обрабатывать в обычном режиме (валидировать данные перед прокидыванием их в БЛ).
Аноним 29/09/21 Срд 14:41:41 #109 №2170014 
>>2169991
А БЛ не должен их валидировать, что ли?

Ну вот пришел тебе запрос достать юзера. Не важно как с фронта вообще или по велению нибирианца.
Ты в либе точно видишь - данные хреновые. Ид кривая или вообще нулл, не важно.
Что делать? Вот чел выше, если я его правильно понял, советует вместо Юзера возвращать что-то типа Result<User>, где будет стейт операции. Может оно и правильно, но мне теперь во всех методах выше нужно будет проверять этот стейт, допустим метод вызывается не напрямую, а через кешировалку или мапилку. Когда же с ексепшеном - пизданул и забыл "выше, кому интересно, разберутся, кому нет - не законсюмят дальше".
Аноним 29/09/21 Срд 15:03:20 #110 №2170027 
>>2170014
Какой нахуй модел стейт, не слушайте того долбаеба из 2015-го.

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

Где можно в API - из контроллера сразу возвращаться, через NotFound, BadRequest или через кастомный wrapper для респонсов.

Если валидация происходит в специальных стандартизированных методах типо Validate(), например у моделей методы прописаны через интерфейс, то можно оттуда возвращать опять же wrapped validation result и контроллер затем его обрабатывает и возвращает ответ.

В случае же когда валидация происходит под тремя слоями энтерпрайзной логики, которая проверяется уже хуй знает где - то да, там будут исключения и их ловить через общий try/catch, а не локальный в методе.
Аноним 29/09/21 Срд 15:04:36 #111 №2170029 
>>2170014
>А БЛ не должен их валидировать, что ли?
Обычно БЛ не валидирует входные данные.
Аноним 29/09/21 Срд 15:07:48 #112 №2170032 
>>2170014
>возвращать что-то типа Result<User>
Если not found - то возвращаешь NotFound("User not found"), а никакой не Result<User> и не ебешь себе мозг, фронт проверяет пусть статус кода и отображает свою свистоперделку.
Аноним 29/09/21 Срд 15:08:53 #113 №2170033 
>>2170027
>Какой нахуй модел стейт, не слушайте того долбаеба из 2015-го.
То был пример. Меня любое решение не устраивает. Начиная от out параметров и заканчивая возвращением Result/bool.

>Если валидация происходит в специальных стандартизированных методах типо Validate(), например у моделей методы прописаны через интерфейс
Это решение тоже хуевое, поскольку нарушает принцип единственной ответственности.
Аноним 29/09/21 Срд 15:09:23 #114 №2170035 
>>2170027
>В случае же когда валидация происходит под тремя слоями энтерпрайзной логики, которая проверяется уже хуй знает где - то да, там будут исключения и их ловить через общий try/catch, а не локальный в методе.
Ну вот, допустим, такой сценарий, только мы создаем это с нуля.

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

Так финальный ответ? Метод в библиотетеке, допyстим UserManager.GetUser(UserId id) при невалидном UserId что должен возвращать/делать? Метод в библиотетеке, допyстим UserManager.CreateUser(User id) при невалидном User что должен возвращать/делать?
Аноним 29/09/21 Срд 15:10:25 #115 №2170037 
>>2170029
Решето какое-то получается. Ты точно пограммист?
Аноним 29/09/21 Срд 15:11:42 #116 №2170038 
>>2170032
Да десять раз уже повторил, что мы не говрим о презентейшн/консюмер слоях. Мы либу нахуй пишем. Уровень бизнесс логики, которому похуя откуда вызываться.
Аноним 29/09/21 Срд 15:12:59 #117 №2170040 
>>2170037
Например, луковая архитектура. Переворачиваешь свой код наизнанку таким образом, чтобы у нее не было зависимостей типа коннекшена к базе данных. На доменном уровне только бизнес логика, инфраструктура сбоку.
Аноним 29/09/21 Срд 15:15:17 #118 №2170041 
>>2170040
К чему ты это высрал? Да, у БЛ не будет доступа к конекшенам, только к репам. И что?
Как это твечает на вопрос, бросать ексепшены или Result<User>/out param?
И на вопрос, нужна ли валидацтия в БЛ слое?
Аноним 29/09/21 Срд 15:16:51 #119 №2170043 
>>2170033
>Это решение тоже хуевое, поскольку нарушает принцип единственной ответственности.
Хуевый только ты, речь про исключения, возврат ошибок и их обработку, а ты доебуешься ко всякой мелочи.

Замени Validate() у моделей на отдельный слой валидирования или другое - суть одна и та же, что сказать-то хотел?
Аноним 29/09/21 Срд 15:19:43 #120 №2170045 
>>2170041
Это отвечает на вопрос, что ты долбоеб, который пихает валидацию в бизнес слой. Если ты пишешь либу, то ты кидаешь исключение и возвращаешь результат операции.

>только к репам
Неправильный ответ.
Аноним 29/09/21 Срд 15:20:41 #121 №2170046 
>>2170043
>Замени Validate() у моделей на отдельный слой валидирования или другое - суть одна и та же, что сказать-то хотел?
Что это не одно и тоже.
Аноним 29/09/21 Срд 15:21:50 #122 №2170048 
>>2170045
>ты долбоеб, который пихает валидацию в бизнес слой
А ты долбоеб с нереюзабельной, дырявой БЛ.

>Неправильный ответ.
Какой правильный?
Аноним 29/09/21 Срд 15:37:45 #123 №2170057 
>>2170048
Я очень смутно себе представляю как ты переиспользуешь БЛ.

>Какой правильный?
Не мешать все в кучу.
Аноним 29/09/21 Срд 15:49:22 #124 №2170062 
>>2170014
>Ну вот пришел тебе запрос достать юзера.
>Что делать?
Зависит. Если логика доспукает, что можно запросить несуществующего юзера, то возваращать или null или Result.NotFound. По хорошему вышестоящий слой должен сначала проверить есть ли юзер а потом совершать операции над ним. Но из-за того, что запросы в бд дорогие, то сие действо часто объеденяют в одну операцию.
>во всех методах выше нужно будет проверять этот стейт
>Когда же с ексепшеном - пизданул и забыл
Не-не-не. Тебе в любом случае проверять или тип эксепшена или тип резалта. Главное запомни - эксепшн это когда что-то пошло по пизде. Строить нормальный поток выполнения приложения на эксепшенах это трэш.
Аноним 29/09/21 Срд 15:55:15 #125 №2170063 
>>2170035
Метод в библиотетеке, допyстим UserManager.GetUser(UserId id) при невалидном UserId что должен возвращать/делать?
Смотря как он спроектирован. Скорее всего исключение, но если Get там подразумевает поиск, а не просто доставание, то исключений быть не должно.
>CreateUser(User id) при невалидном User что должен возвращать/делать?
Опять же зависит. Если с точки зрения логики это нормально, что юзер может не создаться (например имя занято), то никаких эксепшенов, если отвалилась база - то эксепшн.
Аноним 29/09/21 Срд 16:09:49 #126 №2170075 
>>2170057
>Я очень смутно себе представляю как ты переиспользуешь БЛ.
Метод UserManager.GetUser(UserId id) дергается и с веб апы одной, и с другой, и с воркера, и с аллаха. Доверять им нельзя.
>Не мешать все в кучу.
Так у тебя, судя по всему, кокрастоке намешано. Это ответсвенность БЛ запрашивать сохранение данных. Через репы.

>>2170062
Но проверять в одном месте (на презентейшене, например), а не во всей цепочке.

>>2170063
>что юзер может не создаться (например имя занято), то никаких эксепшенов
Да. Вот тут вопрос. Если не ексепшн, то что тогда? Result<User>/out param? А почему (перфоманс опускаем)?


В общем, ребятки, вот я начал гуглить ваши эти онион архетектуры (оказался обычный мультилейер (3)) , и в первом же примере и репы в сервисах (БЛ), и ексепшены.
https://code-maze.com/onion-architecture-in-aspnetcore/
Аноним 29/09/21 Срд 16:20:25 #127 №2170087 
>>2170075
>Result<User>/out param?
out для tryXXX паттерна, но учитывай, что результат будет да/нет и аут не работает в асинхронщине. Result для асинхронного или если вариантов завершения несколько.
>Но проверять в одном месте (на презентейшене, например), а не во всей цепочке.
Если ты проверяешь по всей цепочке, то ты где-то свернул не туда. Данные слишком далеко от места, где они нужны. Получай их там где известно что делать с результатом.
Аноним 29/09/21 Срд 16:44:58 #128 №2170102 
>>2170075
>Метод UserManager.GetUser(UserId id) дергается и с веб апы одной, и с другой, и с воркера, и с аллаха. Доверять им нельзя.
Если что-то не так, кидаешь исключение. UserManager - god object, про это говорит твой суффикс Manager.

>Это ответсвенность БЛ запрашивать сохранение данных.
Потом у тебя тесты на инфраструктуру, вместо тестов на БЛ. БЛ срать как данные хранятся.

>я начал гуглить ваши эти онион архетектуры (оказался обычный мультилейер (3))
У онион внизу домен, у трехзвенки - дал. Схема неправильная: в домене тоже могут быть сервисы, сервисы - это уровень приложения, репозитории могут быть на всех слоях одновременно, инфраструктура отдельно от представления. У тебя по ссылке нет валидации в сервисах.
Аноним 29/09/21 Срд 19:55:30 #129 №2170225 
1.png
2.png
3.png
4.png
Допустим.
Я вот хочу сделать веб-приложение. Суть. Есть пользователи. Они могут создать каталог. Внутри каталога они могут создать подкаталог произвольной вложенности, в каждом каталоге могут храниться файлики произвольных типов.
Так вот. Я решил это реализовать(в плане базы) примерно вот таким вот макаром как на прикриплейде.
Покритикуйте и дайте предложений как можно лучше было бы сделать.
Аноним 29/09/21 Срд 20:28:53 #130 №2170263 
Вот асп нет локализуется через UseLoalization и StringLocalizer. А как локализовать строки, которые у меня в js? a? a? a?
Аноним 29/09/21 Срд 20:34:25 #131 №2170270 
>>2170263
>А как локализовать строки, которые у меня в js? a? a? a?

strings[localStorage.getItem('locale')].MySuperString
Аноним 29/09/21 Срд 20:35:37 #132 №2170271 
>>2170263
i18n-super-puper-my-frontend-framework.js
Аноним 29/09/21 Срд 20:36:44 #133 №2170273 
>>2170270
А можно по-подробнее, я только начал с js'ом. Что за strings, localStorage и как их наполнить?
Аноним 29/09/21 Срд 20:44:14 #134 №2170277 
>>2170271
Так не интересно же.
>>2170273
А шо подробнее? При статре фронтенда получаешь локаль пользователя - сохраняешь ее в локалстор. При этом делаешь себе json/js файлики где у тебя просто словарь со строками вида:
const strings = {
en:{ greet: "Hello"},
ru:{ greet: "Привет"},
de:{ greet: "Sieg Heil "},
}
Аноним 29/09/21 Срд 20:47:41 #135 №2170278 
>>2170225
Чем три от нод отличается? Зачем тебе различать нод и файл? Зачем ты коллекцию нод назвал просто нод? Зачем тебе юзер ноды?
Аноним 29/09/21 Срд 20:53:10 #136 №2170283 
>>2170277
=*
Аноним 29/09/21 Срд 21:04:16 #137 №2170291 
>>2170278
> Чем три от нод отличается?
Тем что как сущность это должен быть корень. Примерно как / в линуксе. Так вот, как мне кажется - вполне логично вынести эти корни в отдельную сущность, чтобы в случае если нужно показать список доступных пользователю "корней" не нужно было искать среди нод все у которых нет родителя.
> Зачем тебе различать нод и файл?
Ну, типа вот пользователь удалил на высоком уровне, в это время другой пользователь копировал себе какой-то файл, в случае если разделены эти сущности - файлик просто добавит ID куда надо и все, не нужно думать как разруливать транзакцию. А сами файлы из базы можно удалять с какой-то переодичностью, если они больше ни в одной ноде не присутствуют и никто не пытался их куда-то вернуть.

> Зачем тебе юзер ноды?
А, про это забыл написать. Ну, типа пока владелец не удалит весь каталог - пользователи могут там мутить свои мутки: удалять что-то, сварачивать-разворачивать, переименовывать, но эти изменения будут только им видны, плюс вносить изменения, которые чтобы попали в основную ноду - должны будут быть подтверждены владельцем, плюс владелец каталога решает какую часть всего дерева показывать кому. Как-то так.
Аноним 30/09/21 Чтв 08:34:33 #138 №2170479 
>>2170291
У всех классов общее Id, Name, Description, Nodes, только в случае с File почему-то перекочевало в FileType часть свойств.
То есть 2 варианта:
- как у тебя, но тогда надо было Node назвать подкаталогом, а Tree каталогом
- тоже самое, но через наследование от Node и дополнительным свойством NodeType или дискриминант
Аноним 30/09/21 Чтв 08:59:31 #139 №2170486 
Разбираюсь в чужом коде, столкнулся с непонятным местом: В описании класса MControl, после его объявления идет описание полей и методов и не совсем понимаю что декларируется в строчках типа private [имя] [имя] (например private TreeList treeList1). Для описания поля должен указываться тип данных, значит это не поле и не метод (нет описания переменных), тогда что это описывает?




using ASTRALib;
using DevExpress.XtraEditors;
using DevExpress.XtraTreeList;
using DevExpress.XtraTreeList.Columns;
using DevExpress.XtraTreeList.Nodes;
using Microsoft.Win32;
using Rastr.Core;
using Rastr.SimpleMAPI;
using Rastr.UI.Properties;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Net;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace Rastr.UI
{
public class MControl : UserControl
{
private string DefaultStatus;
private string DefaultBtn;
private DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider m_ErrorProv = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider();
private readonly RastrEngine engine;
private IContainer components;
private GroupBox groupBox2;
private TextEdit tbCompany;
private TreeList treeList1;
private TreeListColumn treeListColumn1;
private TreeListColumn treeListColumn2;
private TreeListColumn treeListColumn3;
private SimpleButton bLicense;
private LabelControl Status;
private TextBox tbUser;
private LabelControl labelControl3;
private LabelControl labelControl2;
Аноним 30/09/21 Чтв 09:04:24 #140 №2170487 
>>2170486
private - модификатор поля
TreeList - тип поля
treeList1 - имя поля
Аноним 30/09/21 Чтв 09:19:01 #141 №2170493 
>>2170487
так тип поля это же string int boolean, обозначает что можно ввести в этом поле, а что дает тип TreeList? получается это отсылка к какому-то классу?
Аноним 30/09/21 Чтв 09:31:37 #142 №2170500 
>>2170493
Чел... про типы рассказывается в любой книге в одной из первых глав. Классы/структуры это и есть типы. string - класс, TreeList - класс, int/bool/mystruct666 - структуры.
Жесть
Аноним 30/09/21 Чтв 10:00:35 #143 №2170527 
>>2170500

ок, спасибо, смотрел в ютубе и статьях, там в основном описывается что поле определяется как int/string/etc, поэтому возникли затруднения.

Аноним 30/09/21 Чтв 10:30:35 #144 №2170545 
>>2170527
>смотрел в ютубе и статьях
Далеко пойдешь нет
Аноним 30/09/21 Чтв 10:39:15 #145 №2170552 
>>2170545

Имеешь ввиду лучше ориентироваться на книги?
Аноним 30/09/21 Чтв 13:10:58 #146 №2170625 
Как узнать какие методы контроллера используются во вью?
Посмотрел cshtml файл, js который в него инжектится и собсна сам контроллер, но так и не нашел ничего такого. Сори за нубский вопрос, я понимаю что ответ скорее всего найдется в гайдах-туторах по веб-разработке, но я просто в вашем программировании не силен.
Аноним 30/09/21 Чтв 13:15:29 #147 №2170628 
>>2170625
Я даже твой вопрос не понял.
Аноним 30/09/21 Чтв 13:39:08 #148 №2170660 
Посоны, вопрос насчет ексепшенов и резалтов.
Например, у меня такая нищая структура в проекте - контроллер - датаменеджер - репозиторий - дбконтекст. Я хочу всё обмазать Result'ами, типа поступил запрос на обновление записи в базе - если нет айди из датаменеджера (проверяю в датаменджере) возвращаю NotFoundResult и т.д. Теперь вопрос: есть определенный метод, в котором надо сделать транзакцию. Я её делаю через using transaction, дальше try catch , в catch'е rollback. И после роллбека возвращаю UnexpectedResult, который в контроллере переделываю в 500 ProblemDetails. Конечно еще проблема что приходится ради транзакции тащить Dbcontext в датаменеджер, ну ладно не в этом суть.. Вопрос в том, что мне таким образом в try catch получается надо теперь все запросы к базе обмазать? Или как вообще происходит обработка эксепшонов снаружи контроллеров. Хочу чтобы в случае когда я UnexpectedResult возвращаю и когда просто кидается какой-то рандомный экспешон из-за проблем с базой возвращалось одно и тоже. Или это хуйня и можно забить?
Аноним 30/09/21 Чтв 13:47:50 #149 №2170673 
>>2170660
>хочу всё обмазать Result'ами
Не надо все обмазывать резалтами.

>если нет айди из датаменеджера
Кидай исключение. С точки зрения UI, пользователь не может обновить несуществующую запись.

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

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

>Или это хуйня и можно забить?
Чем тупее написан код, чем меньше он вызывает вопросов, тем лучше.
Аноним 30/09/21 Чтв 13:53:15 #150 №2170680 
>>2170660
Все хуйня, забей и выкинь нахрен. Особенно протаскивание контекста в датаменеджер. Выкидывай тогда репозиторий, если датаменеджер знает про дб.
>все запросы к базе обмазать?
Не все, а те, которые ты можешь обработать и продолжить выполнение, если сервер с базой ебнуло молнией такое не надо ловить.
>обработка эксепшонов снаружи контроллеров
В asp net есть специальный мидлварь, который обрабатывает ексепшоны и в случае если никто его (эксепшн) не перехватил отвравит ответ 500 - Servery Pizda.
Аноним 30/09/21 Чтв 13:58:30 #151 №2170684 
>>2170673
>Кидай исключение. С точки зрения UI, пользователь не может обновить несуществующую запись.
Не соглашусь. Если айди приходит от пользователя, то это нормальная ситуация, что пользователь проебался. В терминах хттп BadRequest а не ServerError. Но если это произошло в процессе обработки провалидированных данных, то да, ошибка в приложении и это эксепшн.
Аноним 30/09/21 Чтв 14:07:15 #152 №2170694 
>>2170660
>Конечно еще проблема что приходится ради транзакции тащить Dbcontext в датаменеджер
UnitOfWork создай, который будет все персистить, отправлять реальные запросы на апдейт. В нем же инкапсулируй создание транзакции, если надо. Если работаешь чисто с ЕФ-ом, то все просто и красиво строится.
Dbcontext ни в коем случае в явном виде не тащи вне дата/инфрастракчар слоя.

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

>>2170673
>Чем тупее написан код, чем меньше он вызывает вопросов, тем лучше.
Хм. Смелое утверждение. А как же орхитектура? Как же ентерпайз физбазз? Наследие предков не чтишь сука?
Улыбаются ли тебе твои предки, когда ты в 3 строчки в одном месте пол спринта закрываешь?
Аноним 30/09/21 Чтв 14:12:52 #153 №2170699 
>>2170694
>UnitOfWork создай
>Dbcontext не тащи
А разве DbContext это не UnitOfWork?
Аноним 30/09/21 Чтв 14:13:08 #154 №2170700 
>>2170694
>А как же орхитектура? Как же ентерпайз физбазз?
Когда тебе будут заводить тикеты хуе-мое-нехуя-не-работает и ты будешь такое фиксить дохуя времени, чтобы исправить ровно одну строчку, начнешь проклинать предков.
Аноним 30/09/21 Чтв 14:13:46 #155 №2170701 
>>2170699
DbContext - UnitOfWork
DbSet - Repository
холивар
Аноним 30/09/21 Чтв 14:20:48 #156 №2170703 
>>2170699
Да, но надо больше абстракций.
>>2170701
Холивар хуйня, "надо больше абстракций", если, конечно ты только не чувствуешь в себе силы написать новый ДбПровайдер или патчить текущий в случае изменений.
>>2170700
Будет аргумент "поппередники наговнячили", внутри души скажу "спасибо" им. Деды знали толк. Кто понял жизнь - тот не спешит.
Аноним 30/09/21 Чтв 14:22:43 #157 №2170707 
>>2170703
>"надо больше абстракций"
Покажи репозиторий для MSSQL и MongoDB.
Аноним 30/09/21 Чтв 14:23:15 #158 №2170708 
Раз пошла такая ебка, то и я про эксепшоны спрошу. Нужно ли оборачивать эксепшоны персистенс слоя в свои? Поясню. Есть интерфейс IStore и его реализации DbStore и JsonStore. Один наебнется с DbExcption другой c FileNotFound, но клиент-то не должен знать с чем он работает Store есть Store. Т.е. Store должен сделать так catch(Exception ex) { throw new StoreException(ex) }? Или не должен?
Минута пошла.
Аноним 30/09/21 Чтв 14:32:07 #159 №2170717 
>>2170707
UserRepo : BaseRepo<User, IMyDbContext>{

base.Get(id);
base.Create(User user);
base.Update(User user);

SomethingNotBase(User user)
}

В чем проблема-то?
Аноним 30/09/21 Чтв 14:37:05 #160 №2170725 
>>2170708
У тебя есть репо.
Репо консьюмит репо сервис.

Вася запросил детали о пользователе по гуиду.
Сервис обработки запросов дернул репо сервис.
Репо сервис дернул репо, в ней пользователя не оказалось.

Репо сервис бросает дочернее к BaseRepoServiceException исключение.
Исключение ловит глобальный обработчик исключений и формирует красивую джесонину Васе о том, что нет данных, а заодно логирует событие.

Все.
Аноним 30/09/21 Чтв 14:37:11 #161 №2170726 
>>2170717
Проблем довольно много. Где транзакция? Где поиск по критерию?

>SomethingNotBase(User user)
Юзвера вместе с ролью вставляешь?
Аноним 30/09/21 Чтв 14:40:25 #162 №2170730 
>>2170726
> Где транзакция?
В UnitOfWork
Ctor(IUnitOfWork<IMyDbContext> unitOfWork)
: base(unitOfWork)

>Где поиск по критерию
Сам пили, сучара "GetSomethingNotBase"

>Юзвера вместе с ролью вставляешь?
Depends. Но лучше завести RoleRepo
Аноним 30/09/21 Чтв 14:41:30 #163 №2170733 
>>2170725
Так а что делать с DbException/FileNotFound?
Аноним 30/09/21 Чтв 14:42:28 #164 №2170735 
>>2170725
>репо сервис
Што это? МОжет юзер (ентитинейм) сервис?
Аноним 30/09/21 Чтв 14:42:54 #165 №2170737 
>>2170730
Так ты не увидишь проблемы. Не забудь еще апдейт и делит по критерию. И мультивставку.
Аноним 30/09/21 Чтв 14:43:42 #166 №2170738 
>>2170737
И апсерт.
Аноним 30/09/21 Чтв 14:47:16 #167 №2170743 
>>2170737
Какой проблемы? Самые общие случаи в бейс репо.
Остальные - пили сам в нон дженерик репах.
Нипанимаю.

>апдейт и делит по критерию
ЕФ+. Но да в этом случае надо заморочится с юнитОфворком и в каждом методе репы конектится к транзакции. Я обычно игнорю это лол.
Аноним 30/09/21 Чтв 14:49:13 #168 №2170744 
>>2170743
В этом случае надо поебать себе мозг, а потом прийти к выводу, что абстракции потекли. Абстракции головного мозга.
Аноним 30/09/21 Чтв 14:55:51 #169 №2170753 
>>2170744
В каком месте абстракции потекли?
Разве что, что некоторые операции будут вне транзакции (но это можно реализовать легко требуя открытия в месте, где ты вызываешь такие методы транзакции вручную. типа using IUnitOfWork.CreateTransaction() либо заморочится и в репах это сделать). Где тут протечка?
Аноним 30/09/21 Чтв 15:03:26 #170 №2170755 
>>2170733
Бумп.
Аноним 30/09/21 Чтв 15:08:52 #171 №2170759 
>>2170753
>В каком месте абстракции потекли?
Смотри, абстракции нужны, чтобы уйти от деталей реализации, иначе польза от тех абстракций? Т.е., чтобы заменить MSSQL на MongoDB, или наоборот, достаточно изменить репозиторий.

Я натягиваю сову на глобус, перечисляя то, что не умеет EF. А ты из MongoDB делаешь реляционную базу данныхMSSQL.

Чтобы сделать то, что не умеет EF, мне надо IMongoDbRepository сделать? Тогда мне надо еще его вызывающий код исправлять - потекли абстракции.
Аноним 30/09/21 Чтв 15:09:39 #172 №2170760 
>>2170733
Мое скромное мнение - да, надо оборачивать в свой ексепшн, в инер - оригинальное, в методе документировать все возможные ексепшены, который он может выбросить.
Но мне лень обычно лол.

Ну и другие мнения тоже интересны.
Аноним 30/09/21 Чтв 15:15:16 #173 №2170763 
>>2170759
Все не так. Это все еще будет UserRepo. Но вот трахаться тебе прийдется внутри него и юнитоф ворка.
Я имел ввиду, что ради удобства я не создаю транзакции в ручную в сервисах и ожидаю, что ЮнитОфВОрк.Сейв() сделает все сам.
И это супер просто, когда под капотом ЕФ и его нативные операции, но да есть операции, которые выпадают с ЕФ-ного контекста и тут уже решать, или не гарантировать транзакционность вообще, илиюзать явную через ручной using IUnitOfWork.CreateTransaction(), или заморочится и сохранить "юнит оф ворк сделает все сам и транзакцию создаст и кофе, и отсосет" и поебстись в репах
Аноним 30/09/21 Чтв 15:28:54 #174 №2170775 
>>2170717
Ребята, ну уже не 12-й год, уже давно все поняли, что EF, Linq2Sql, etc - это и есть репозитори и самому это писать нужно только для ADO.NET/Dapper или другой лоу-левелной DAL, ну обновите уже методички свои и признайте что все знатно обосрались, проталкивая этот паттерн как дефолт.

С другой стороны, работы меньше станет на галерах, да и фактори себя не напишут.
Аноним 30/09/21 Чтв 15:32:45 #175 №2170777 
>>2170775
Мда да даб да.
Да ты не тренде. Давно уже твои братки перешли на лоукод.
Все давно поняли, что надо один ендпоинт на бек, который будет принимать запрос к CosmosNoSqlNoBrainDB и все.
Некст левел - встроить это в клиента и синкать по пирам. Но серверсолюшн.
Аноним 30/09/21 Чтв 15:37:31 #176 №2170780 
>>2170775
>EF
Не использую, потому что нужен перформанс (не хочу и долго профилировать функции) и часто надо писать какую-то хрень, которая не ложится на IQueryable. Еще и тесты ведут себя по разному, нужна дб в памяти, некоторые linq запросы без такой дб кидают исключения.

>Linq2Sql
Не вижу не одного плюса, какая-то жуть.

>ну уже не 12-й год
Холивар будет вечен.
Аноним 30/09/21 Чтв 15:40:19 #177 №2170782 
>>2170780
Точнее даже так. Проект стартуется на EF, а потом переписывается на ADO.NET.
Аноним 30/09/21 Чтв 15:43:36 #178 №2170786 
>>2170780
>>2170782
Так и я не юзаю. На проектах: ADO.NET, Dapper и linq2db.

Репозитори паттерн как раз таки обычно пихают поверх уже таких монстров, как EF, где это как ращ точно не нужно, но архитектура жи.
Аноним 30/09/21 Чтв 15:44:14 #179 №2170789 
OjLaStF.gif
>>2170777
>Мда да даб да.
Аноним 30/09/21 Чтв 15:45:08 #180 №2170791 
>>2170786
>>2170782
Ну давайте свои стори как с ЕФ обосрались
Аноним 30/09/21 Чтв 15:50:35 #181 №2170800 
>>2170791
Так обосраться легко. Достаточно поставить платного носорога и увидеть обосрамс. На одном проекте даж пилят ЭФ++, огромное расширение для экспрешин три с блек джеком и шлюхами.

Больше всего веселья с триггерами, когда надо запилить распределенный аудит или делать валидацию пермишином перед любым действием.
Аноним 30/09/21 Чтв 15:53:53 #182 №2170804 
>>2170800
ЧТо за носорог?

>с триггерами
А чем проблема-то?

>валидацию пермишином перед любым действием.
При чем тут Еф или датаслой вообще? Или вы тригером валидируете? Ну сами тогда себе злобные буратины
Аноним 30/09/21 Чтв 16:00:49 #183 №2170808 
>>2170791
Ну и так по мелочи: оконные функции, разнообразные специфические sql оптимизации, генерация значений по определенному правилу...

>>2170804
>ЧТо за носорог?
https://hibernatingrhinos.com/products/efprof

>А чем проблема-то?
В аудите с этим:
https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/distributed-transactions

>При чем тут Еф или датаслой вообще?
Надо запретить делать действие в мультитенант системе, если нет к нему доступа. У нас не через триггер, это просто один из вариантов решения.
Аноним 30/09/21 Чтв 16:07:37 #184 №2170814 
>>2170804
EF - это как Windows/Mac, да, можно одним кликом всё сделать, но когда нужно выйти за рамки стандартных сценариев - начинается трэш и понимание, насколько over dependent всё на жирных слоях этой либы/фреймфорка.

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

И это не только в .NET, это в целом так должно быть:

https://github.blog/2018-09-06-removing-jquery-from-github-frontend/

Я лично склоняюсь к середине - юзаю micro-ORM, которые не так просаживают перфоманс и в случае чего могут быть быстро выпилены из проекта.
Аноним 30/09/21 Чтв 16:08:52 #185 №2170815 
Как в регулярке проверить что точек 3, не больше не меньше?
Аноним 30/09/21 Чтв 16:09:23 #186 №2170816 
>>2170815
при этом могут быть цифры еще в рандомных местах
Аноним 30/09/21 Чтв 16:10:43 #187 №2170819 
>>2170815
\.{3}
Аноним 30/09/21 Чтв 16:11:35 #188 №2170821 
>>2170819
Я вроде так и сделал, но он с 2мя точками все равно пропускает
s.match(/([0-9\.{3}]){6,}/)
Аноним 30/09/21 Чтв 16:13:40 #189 №2170825 
>>2170821
Ты в квадратных скобках не можешь использовать фигурные. Перепиши без квадратных.
Аноним 30/09/21 Чтв 16:17:56 #190 №2170830 
>>2170825
теперь и для трех не работает
s.match(/(0-9\.{3}){6,}/)
Аноним 30/09/21 Чтв 16:23:26 #191 №2170833 
image
>>2170830
Ты {6,} применил на всю скобку. Считай без регулярки, что длина строки 6 и больше.
Аноним 30/09/21 Чтв 16:29:07 #192 №2170836 
>>2170833
она даже без учета строки не матчится
s.match(/0-9\.{3}/)
Аноним 30/09/21 Чтв 16:32:36 #193 №2170838 
image
image
>>2170836
Так у тебя написано, что ты хочешь 0-9...
На другом пике показал как работает фигурная скобка на круглую скобку. \d - это [0-9]
Аноним 30/09/21 Чтв 16:41:16 #194 №2170843 
>>2170838
А как мне ограничить количество точек тогда?
Аноним 30/09/21 Чтв 16:44:31 #195 №2170845 
>>2170843
На двух из трех моих пикчей я ограничил количество точек до 3. Голубой - первый мач, синий - второй мач. Если ты хочешь, чтобы вся строка состояла только из трех символов и был только один мач, то тебе надо еще добавить символы начала и конца $ и ^
Аноним 30/09/21 Чтв 18:09:05 #196 №2170891 
Хм. Я тут столкнулся с проблемой на относительно древовидных структур в EF.
Ну, допустим, на нативном SQL - я могу сделать хитрый рекурсивный запрос и получить сразу родителя всего дерева, да там будут циклы и все такое, но оно все равно будет довольно быстро(проверял по крайней мере на дереве с 10к нодами и 150 уровнем вложенности).
А вот в EF ничего кроме как:

var item = node;
while(item.Parent is not null){item = item.Parent;}
return item;

придумать не могу. Как понимаю, таким макаром - еф будет каждый раз подгружать родителей, что значит запросы к базе лишние что не оч удобно.

Пока что придумал еще костыль типа добавить каждому листу ссылку на корень чтобы сразу можно было его достать, но это костыль-костыль какой-то.
Аноним 30/09/21 Чтв 18:17:40 #197 №2170900 
>>2170891
>>2167284
Аноним 30/09/21 Чтв 18:19:38 #198 №2170902 
>>2170900
Ну блин(((
Тогда другой вопрос. Как организовать хранимки чтобы я мог при первом старте в контейнере сразу насоздавать их и потом дергать?
Аноним 30/09/21 Чтв 18:21:21 #199 №2170904 
>>2170902
Хранимку миграцией создаешь, из эфки дергаешь по имени.
Аноним 30/09/21 Чтв 21:15:21 #200 №2171046 
Поцоны.
Сделал я бота для пое, он гемблит.
На скриншотах, чекает пиксели и по ним проверяет.
Вот у меня вопрос. Как в C# работать я памятью ?
Хотелось бы еще торгового бота сделать но он на пикселях не получится так как надо сообщения с чата принимать.
Как вообще такое делают? Есть гайды что бы на простых примерах показывали?
Пока я думаю что есть ячейка памяти в которую помещаются сообщения из чата. Вот их надо как то найти только я хуй знает как.
И лезть в память игры это сильно палевно?
Аноним 30/09/21 Чтв 21:17:54 #201 №2171051 
>>2171046
Я вообще думал, что у пое было только два кор проекта: анализ траффика и анализ памяти (поехуд).

Посмотри поехуд, я на него когда-то забил хер и его вроде переименовали, но ты его легко найдешь и на его основе захуярили некоторых ботов.
Аноним 30/09/21 Чтв 21:18:49 #202 №2171052 
>>2171046
И да, лезть в память палевно. В пое есть защита от этого. Поехуд когда-то умел редактировать память, чтобы например вырубить дождь для обладателей картофельного пк.
Аноним 30/09/21 Чтв 21:26:46 #203 №2171059 
>>2171052
>>2171051
Бля а как тогда другие торгуют?
Я сначала хотел на нейронках бота делать но понял что хуета.
Не получится на 100% правильно распознать текст
Аноним 30/09/21 Чтв 21:28:51 #204 №2171062 
>>2171059
Я тебе уже объяснил, что многих ботов написали на основе поехуда. У него есть функционал для торговли. Но, чтобы ты знал, то, как он там сделан, у пое тоже есть защита. Если ты сам такое начнешь писать, получишь бан через какое-то время.
Аноним 30/09/21 Чтв 21:34:06 #205 №2171064 
>>2171062
А все теперь понял.
2 года не обновлялась это поехуда.
Коочи обойдусь без бота.
Аноним 30/09/21 Чтв 21:35:43 #206 №2171066 
>>2171064
>2 года не обновлялась
Она живет и процветает, только под другим названием. На него должна быть ссылка. Там местный абдула разбил каждый модуль на плагины, но я забыл название.
Аноним 30/09/21 Чтв 21:51:57 #207 №2171079 
>>2171066
Я сейчас с мобилы, не могу нормально код смотреть. Нашел этот репозиторий.
https://github.com/Qvin0000/ExileApi
Вроде этот
На сколько вообще сложно такова бота сделать?
Вроде функци мало, принимай сообщение, парси, приглашай, меняйся и проверяй что бы не наебали.
Аноним 30/09/21 Чтв 21:57:27 #208 №2171083 
>>2165540 (OP)
Добрейшего вечерочка, шарпаны. Как вообще неврождённому приложению обзавестись бд на сервере (с MS SQLServer)? Ну т.е. вот есть вроде такая концепция - кодфёрст, все дела, когда бд мы создаем в коде и запиливаем ее потом через миграции (включая инишал для создания самой бд). Как этот подход совместить с реальной ситуацией? Какого пользователя для этого создавать в бд для указания в строке подключения? (Юзера или логин? Бд ведь еще не существует до первой миграции.) С ролью dbcreator? А не слишком жирно и небезопасно? Но если создать менее привилегированного сервер же пошлет приложения нахер при попытке совершить первую миграцию (создание самой бд)? Как вообще инициировать эти самые миграции на реальных серверах? Есть какие-нибудь гайды/общепринятые подходы? В 99% обучающих материалов учат создавать бд в локалбд с трастед конекшн и инициировать миграции аосредством апдейт-датабейз с консоли в студии блджат
Аноним 30/09/21 Чтв 22:02:32 #209 №2171084 
>>2171079
Лол, чела зовут Queuete, а Qvin - это другой говнокодер. У этого проекта было контрибьютеров больше, чем членов у портовой шлюхи.

>На сколько вообще сложно такова бота сделать?
Через траффик вообще забей. У тебя не получится остановить отправку сообщений, чтобы увидеть магическое слово и не быть спаленным. Зато это самый лучший бот будет. Сорцы не найдешь, только описание алгоритма.

Память сделана через поиск шаблона. Ты если далек от умения находить шаблон каждый апдейт, твой бот сломается на следующее обновление. Идея предельно простая: читаешь ивент слушая найденную функцию https://en.wikipedia.org/wiki/Entity_component_system и эмулируешь нажатие кнопок. Как эмулировать кнопки и не спалиться, найдешь у авто фласок, если трейд выпилили.

Про чтение пикселей вообще забей.

Дальше сам, я больше ничего не скажу.
Аноним 30/09/21 Чтв 22:05:58 #210 №2171087 
>>2171083
Не использовать код ферст. Нашел проблему.
Аноним 30/09/21 Чтв 22:10:07 #211 №2171091 
>>2171084
В пизду такое счастье.
Я думал как в артмани, найти ячеку памяти и подменить)
А отправка сообщения?
Это типо слушаем трафик который идет в игру через прокси сервер?
Ну в принципе мне хватило бы просто прочитать сообщения от юзера а потом я и пикселями могу сделать.
Аноним 30/09/21 Чтв 22:10:28 #212 №2171092 
>>2171083
Делаешь простой инсталлятор, где на одном из этапов будет выбор провайдера и ввод строки подключения. Если БД на сервере нет - в установщик ее тоже засовываешь.
Аноним 30/09/21 Чтв 22:11:56 #213 №2171093 
>>2171092
>Делаешь простой инсталлятор
Вот с этого момента начнутся проблемы.
Аноним 30/09/21 Чтв 22:12:04 #214 №2171094 
>>2171087
Почему? Что использовать?
Аноним 30/09/21 Чтв 22:13:47 #215 №2171095 
>>2171094
Использовать дб ферст. Ты же не собрался креды продакшена пихать в контроль версии? Код ферст - это гиблое дело.
Аноним 30/09/21 Чтв 22:19:47 #216 №2171103 
Можно ли в шарпе удалить или переопределить переменную другим типом?
Вот есть у меня СтрингБилдер, и я хочу конвертнуть его в стринг но не хочу создавать еще одну переменную. Так можно?
Аноним 30/09/21 Чтв 22:21:14 #217 №2171105 
>>2171103
Span шоль? Через него можно хоть изменять неизменяемые итернированные строки в шарпе.
Аноним 30/09/21 Чтв 22:22:10 #218 №2171108 
>>2171103
Есть еще void*, мой любимец.
Аноним 30/09/21 Чтв 22:24:36 #219 №2171112 
>>2171093
Какие? Простейший инсталятор пилится за 2 часа и потом просто переиспользуется. Разве что там софту пиздец сколько настроек нужно.
Аноним 30/09/21 Чтв 22:26:56 #220 №2171114 
>>2171112
>Простейший инсталятор
Вменяемый еще стоит что-то около 5к бачей.

>Разве что там софту пиздец сколько настроек нужно.
Наивно думать, что все закончится на создании какого-то там dbcreator. Слишком идеальный мир получится.
Аноним 30/09/21 Чтв 22:34:10 #221 №2171125 
>>2171095
При чем тут контроль версий? Пайплайна распердолит. Но да, в основное приложение ддл_админа выдавать не хочется
Аноним 30/09/21 Чтв 22:35:36 #222 №2171126 
>>2171125
>При чем тут контроль версий?
На тему, что я часто вижу как секреты пихают в контроль версий для каждого энва.
Аноним 30/09/21 Чтв 22:36:33 #223 №2171128 
>>2171126
Хз. У нас все аппсетинги под гитигнором
Аноним 30/09/21 Чтв 22:39:15 #224 №2171129 
>>2171103
dynamic ?
Аноним 30/09/21 Чтв 23:02:19 #225 №2171157 
Посоны, как эмулировать зажатие кнопки контрл?
Нажатие эт понятно СендВайт а вот как зажатие?
Мне надо зажать кнтрл и нажимать лкм.
Аноним 30/09/21 Чтв 23:05:51 #226 №2171161 
>>2171157
От сложного к простому:
SendInput
keybd_event
SendKeys.Send
Последнее вроде не умеет контролы слать. Для мышки похожее апи.
Аноним 30/09/21 Чтв 23:34:50 #227 №2171178 
>>2171103
сап, аноны, обьясните сокральный смысл services.AddScope(className), services.AddTransient(className), понятно что в случае AddSinglton, мы дергаем один и тот же обьект в контроллер или разные контроллеры, и у него свое состояние например или рекомендуется использовать когда обращаемся к чему нибудь внешнему( кэш, конфигурация например). Что же в случае services.AddScope(className),services.AddTransient(className) все сложнее. Можно подсказать наглядный пример по смыслу. Когда нам надо это использовать и без этого не обойтись.
Аноним 30/09/21 Чтв 23:42:53 #228 №2171180 
>>2171178
Объясню на примере вонючего EF.
- Если сделать Singleton, контекст довольно быстро из-за кеша начнет пиздец тормозить.
- Если сделать Transient, потеряешь все плюшки кеша.
- PerRequest можно сделать только в ASP.NET.
- В какой-нибудь вундервафле придется использовать кастомный Scope вместо PerRequest.
Аноним 30/09/21 Чтв 23:43:49 #229 №2171181 
EF Core

Есть БД, упрощено говоря, в ней две таблицы User и Work
В первой столбцы
UserID и UserName
Во второй
WorkID, UserID1,UserID2, UserID3.

Как можно подменить имена во второй таблице на имена из первой (вместо ИД выводились имена)?
Аноним 30/09/21 Чтв 23:45:38 #230 №2171183 
>>2171181
Через джоин + проекцию.
Аноним 30/09/21 Чтв 23:47:42 #231 №2171184 
>>2171183
У меня почему-то возвращает пустой объект.
Аноним 30/09/21 Чтв 23:49:59 #232 №2171186 
>>2171184
Джоины разные бывают. Левый, правый, либеральный.
Аноним 30/09/21 Чтв 23:51:52 #233 №2171187 
>>2171186
Для такой херни я бы вообще вьюху создал и делал бы просто выборку из нее.
Аноним 30/09/21 Чтв 23:58:46 #234 №2171195 
>>2171186
А какой лучше всего использовать, когда надо заменить три одинаковых столбца?
Аноним 01/10/21 Птн 00:10:59 #235 №2171201 
>>2171180
Благодарствую анончик!) Стало попонятнее)
Аноним 01/10/21 Птн 00:23:49 #236 №2171209 
>>2171181
Что проще понять
Пусть в User будет

User Name
1 Петя
2 Вася
3 Катя

В Work будет одна строка
WorkID User1 User2 User3
1 1 2 3

Надо вывести через EF Core

User 1 = Петя, User 2 - Вася, User 3 - Катя.
Аноним 01/10/21 Птн 07:05:43 #237 №2171257 
>>2171195
Тебе надо написать три джойна или три подзапроса. Тип джойна влияет только на наличие значения UserId.
Аноним 01/10/21 Птн 08:34:03 #238 №2171272 
>>2171257
А примерный код можно? А то чувствую что застрял, и сам себе переусложнил решение
Аноним 01/10/21 Птн 08:58:23 #239 №2171278 
>>2171272
https://dotnetfiddle.net/ex4BMA
Аноним 01/10/21 Птн 09:04:26 #240 №2171283 
>>2171278
Спасибо, вечером попробую.
Аноним 01/10/21 Птн 10:09:21 #241 №2171321 
>>2165540 (OP)
Вопрос очень важный, прошу помочь!

В общем, я анализирую файл. Там есть два типа строк: одна содержит "=", а вторая ";". Задача - извлечь эти строки и раскидать их по ячейкам таблицы

В чем цимес ситуации: второй тип строк идет под первым (например, первый_тип_строки '\n' второй_тип строки). Однако может быть такое, что второго типа строки просто нет.

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

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

Может вы мне подскажете? Надеюсь понятно все объяснил...
Аноним 01/10/21 Птн 10:15:39 #242 №2171325 
>>2171321
Через регулярку:
мач(тип_2) ? парс_2 : парс_1
Или подключи скажем ANTLR и опиши дсл.
Аноним 01/10/21 Птн 10:24:05 #243 №2171332 
>>2171325
Да я бы рад, но у меня там цикл, за одну итерацию считывается только одна строка, я дурак забыл это упомянуть
Аноним 01/10/21 Птн 10:25:23 #244 №2171333 
>>2171332
цикл:
мач(тип_2) ? парс_2 : парс_1
Погоды не меняет.
Аноним 01/10/21 Птн 10:29:19 #245 №2171338 
>>2171333
Хм, что ты под парс_2 подразумеваешь? А так звучит годно

Хотя у меня идея захуярить два цикла, в одном запихнуть все в лист и чтоб второй тип строки сливался в одну с первым и потом этот лист обрабатывать
Аноним 01/10/21 Птн 10:31:30 #246 №2171340 
>>2171338
Ты сказал, что у тебя первая и вторая строка различаются символами. Значит их можно различать. Читаешь по одной строчке, чекаешь тип строчки и вызываешь функцию для парса первой строчки или второй.
Аноним 01/10/21 Птн 11:11:40 #247 №2171373 
>>2171103
Ебобо? У тебя там переменные называются a, b, c, huj? Иначе как может придти в голову идея переменной предназначенной для 'x' присвоить значение 'y'. Но вообще C# строго типизированный язык, и без ебли с dynamic/object такого не сделать.
>>2171181
Выглядит как какая-то ненормализованная хуита. Неплохо бы вынести назначения работ юзерам в отдельную таблицу.
Аноним 01/10/21 Птн 11:13:07 #248 №2171375 
>>2171340
Я вроде разобрался с проблемой. Достаточно костыльно, но оно работает. Спасибо что откликнулся)
Аноним 01/10/21 Птн 11:13:54 #249 №2171376 
>>2171373
>C# строго типизированный язык
Будет, когда имплисит удалят, гагагага.
Аноним 01/10/21 Птн 11:20:13 #250 №2171377 
>>2165540 (OP)
Анончики, кто в этом году вкатился? Расскажите что спрашивают чаще всего
Аноним 01/10/21 Птн 11:33:15 #251 №2171396 
>>2171376
Сильная типизация при слабой строгости определения оной. кек.
Аноним 01/10/21 Птн 11:35:11 #252 №2171398 
>>2171377
Ну про стулья там, про полотенце... Ты просто скажи что ты с двача, там поймут.
Аноним 01/10/21 Птн 11:38:51 #253 №2171404 
>>2171396
Сильная и строгая - синонимы. C# со слабой типизацией из-за имплисита как и плюсы.
Аноним 01/10/21 Птн 11:53:28 #254 №2171415 
>>2171404
Ты не понял. У сильной и слабой типизации нет прям такого четкого определения. И если брать строгое определение строгой типизации, то у шарпа слабая типизация, а если слабое определения, то у шарпа строгая типизация. Этож каламбур был... Я же кек написал... грустно.
Но вот сравнение с С це перебор. Даже при неявном касте в решетке ты получаешь строго типизированный объект.
Аноним 01/10/21 Птн 13:03:34 #255 №2171452 
С чем разобраться-поиграться синиор помидору ленивому?инбифо: с жопой
Аноним 01/10/21 Птн 13:09:59 #256 №2171456 
>>2171452
С розлином ¯\_(ツ)_/¯
Аноним 01/10/21 Птн 13:23:01 #257 №2171460 
>>2171452
Напиши сорс генератор на EF.
Аноним 01/10/21 Птн 13:43:21 #258 №2171472 
>>2171452
СЕНЬОР
@
НЕ УМЕЕТ СТАВИТЬ ЗАДАЧИ
Аноним 01/10/21 Птн 13:57:25 #259 №2171486 
Серьезная тема.
Вот есть асп кор приложение с ролями для юзеров. Есть сервис IFooService { Foo[] GetFoos()//реализация тащит данные из бд }
У Foo есть свойство Foo.IsPrivate и нужно обычным юзерам выдать страницу со списком foo, где IsPrivate = false, а юзерам с ролью "Рептилоид" все foo. Вопрос: кто где и как должен решить что показывать. Распишите плиз подробно от прихода запроса, до выдачи ответа. Пока у меня такие варианты:
1. Контролер проверяет роль и вызывает метод GetFoos, который принимает желаемое значение IsPrivate: fooService.GetFoos(isPrivate: false). Недостаток видится в том, если вызов будет из нескольких контроллеров, придется дублировать проверку ролей.
2. IFooService требует IAuthService, в котором можно получить роль и возвращает только достимые foo. Недостаток - IFooService делает слишком много и имеет несколько причин для изменеий.
3. Контроллер вытаскивает все foo и сам фильтрует. Недостаток - тянутся лишние данные с бд.
Аноним 01/10/21 Птн 14:01:56 #260 №2171494 
>>2171486
Я бы выбрал второй вариант и подробил сервис.
Аноним 01/10/21 Птн 14:04:17 #261 №2171496 
>>2171404
чо? неявные преобразования без потери точности не говорят о слабой типизации
Аноним 01/10/21 Птн 14:06:28 #262 №2171497 
>>2171496
Ты можешь написать неявное преобразование Foo в Bar, которые никак не связаны. Я думаю тот анон про такое писал.
Аноним 01/10/21 Птн 14:09:09 #263 №2171500 
>>2171497
а, ну так если ты можешь в шарпе юзать dynamic (aka object с рефлекшеном), то c# это язык с динамической типизацией, всё логично
Аноним 01/10/21 Птн 14:10:28 #264 №2171502 
>>2171500
Отличается все равно от фшарпа, где даже аппер каст надо явно делать.
Аноним 01/10/21 Птн 14:14:13 #265 №2171506 
А я вот тут подумал. Если надо вызвать метод по имени, то щинами даже лучше рефлексии? Ибо вручную там под капотом омтимизируео рефлексию. Не?
Аноним 01/10/21 Птн 14:16:14 #266 №2171508 
>>2171506
Ответ: хз. Напиши тест. Желательно на .нет 6 рк1, потому что помимо jit, появилась профиль оптимизации (кокой-то мотюк с 3 букф).
Аноним 01/10/21 Птн 14:18:39 #267 №2171510 
>>2171494
А как раздробить сервис? Т.е. в нем будет такое
if(!auth.UserInRole('Reptiloid'))
...query = query.Where(f => !f.IsPrivate)
И что куда дробить? Родилась такая идея
IFooAccessFilter { IQueryable<Foo> Fileter(IQueryable<Foo> foods)}
В IFooAccessFilter инжектить IAuthService, а сам IFooAccessFilter инжектить в IFooService. И тогда получится IAuth предоставляет данные о юзеер, IFooAccessFilter решает что можно а что ни-ни, а IFooService исползуя фильтр тянет только нужные данные. И это вроде неплохо масштабируется и на IBarService, IGovnoService.
Аноним 01/10/21 Птн 14:20:28 #268 №2171511 
>>2171510
Надо смотреть на конкретную картину в целом. Может ты себе сам внушил, что сервис делает слишком много. Чтобы не получилось, что тебе по приколу захотелось заниматься оверинженирингом.
Аноним 01/10/21 Птн 14:26:29 #269 №2171517 
>>2171500
Да, C# мультипарадигменный по всем параметрам. И рыбку съесть и на пенек присесть. Ну или ни рыба ни мясо, кому как нравится.
>>2171506
Смотри. Рефлексия всего лишь смотрит в метеданные, которые во время выполнения уже существуют. А в случае динамика в рантайме запускается некоторое подобие компилятора на минималках, который сначала обрабатывает его.
Аноним 01/10/21 Птн 15:45:07 #270 №2171601 
>>2171510
>f => !f.IsPrivate
К слову, есть паттерн спецификация. Куда можно абстрагировать всю эту чушь и избавиться от дублирования кода.
Аноним 01/10/21 Птн 16:39:03 #271 №2171656 
Есть прям ультимативное пособие для новичков?
Аноним 01/10/21 Птн 16:41:08 #272 №2171658 
>>2171656
Да, идти на бессплатные курсы у галер.
Аноним 01/10/21 Птн 16:49:31 #273 №2171661 
>>2171517
>метеданные, которые во время выполнения уже существуют
в случае AOT это не всегда правда
Аноним 01/10/21 Птн 19:31:37 #274 №2171765 
image.png
image.png
Пытаюсь в Q-обучение на небольшой игре с двумерным полем, для чего потребовалось иметь словарь, в котором игровое состояние и действие как единый ключ согласовывались бы с q-значением.
По факту получился словарь, в котором ключ - кортеж из двумерного массива и кортежа действия, содержащего координаты клетки поля, в которую делается ход; Значение - double для q-значения.
В чём проблема: при обновлении q-значений вместо их перезаписи происходит вставка идентичной по ключу записи, что кажется максимально странной хернёй для словаря. Пикрелейтед как это выглядит при отладке.

В какую сторону глядеть, чтобы пофиксить?
Аноним 01/10/21 Птн 19:43:40 #275 №2171770 
>>2171765
я нихуя не понял. конечная цель какая?
Аноним 01/10/21 Птн 19:52:40 #276 №2171778 
hjg.png
cxsa.png
Что я делаю не так? Просто не выводит результат на консоль
Аноним 01/10/21 Птн 20:00:22 #277 №2171785 
>>2171770
Конечная цель перезаписывать значения по имеющемуся ключу, а не создавать его дубликат (по крайней мере по всем значениям так выглядящий).

Словарь же не должен иметь возможности вставлять одинаковые ключи в целом, а тут я пошёл нахуй с дефолтной записью словарь[ключ] = значение.
Аноним 01/10/21 Птн 20:02:50 #278 №2171786 
>>2171785
Что ты от этого ключа хочешь? У тебя ключ - это ссылка на массив, а не массив.
Аноним 01/10/21 Птн 20:04:40 #279 №2171787 
>>2171778
Аноны, объясните пж что не так, ошибка то до безобразия простая, просто я не могу её найти
Аноним 01/10/21 Птн 20:17:33 #280 №2171793 
image
>>2171787
>ошибка то до безобразия простая
Меня всегда забавляли такие экспертные мнения. Проблема в потере третьего параметра. Ctrl + K, D чтоль еще нажми.
https://dotnetfiddle.net/vTgQIa
Аноним 01/10/21 Птн 20:27:00 #281 №2171794 
>>2171786
Действительно, затупил. Thx, анон.
Аноним 01/10/21 Птн 20:48:06 #282 №2171799 
Безымянный.png
>>2171778
Аноним 01/10/21 Птн 20:51:08 #283 №2171800 
8fc34ab4b8768dfb756df595dbfc8fd8.jpg
>в треде обсуждают циклы
>как мне по id вытащить рекорд
>пачиму моя рекурсия не работает
Аноним 01/10/21 Птн 20:52:38 #284 №2171802 
>>2171800
А что ты хочешь пообсуждать, няша?
Аноним 01/10/21 Птн 20:56:03 #285 №2171804 
>>2171793
На самом деле мерзотненькая хуйня. Вроде и удобно, и сам таких ошибок не совершаешь, но если тупо смотришь на код чужой - это оч непросто заметить с первого раза.
Аноним 01/10/21 Птн 21:02:22 #286 №2171805 
А у меня вот такой вот тупой вопрос.
Какого хуя, блядские инструменты EF - не хотят мне генерировать миграцию, если я переношу метод Main из класса Program?
Ну, допустим, я - ебланстер, и мне не нравится что метод Main в классе Program, ну вот такой я ебанутый, хочу чтобы такое охуенное слово для других целей использовать. Выношу в класс EntryPoint в котором метод Main делает:
new Program(string[]args).Run();
И ебучие инструменты миграции - тупо не хотят работать, дескать мы метод такие-то методы не нашли в классе Program. Ну охуеть, блядь. Разве нельзя было, блядь, не тупо сдыхать, а так и написать и попросить указать место куда стучаться, раз вы такое вот говно сделали?
Аноним 01/10/21 Птн 21:09:01 #287 №2171809 
Стикер
>>2171800
Я наполняю ванну рекордов и мы с тобой всю ночь на пролет обсуждаем циклы и рекурсии.
Аноним 01/10/21 Птн 21:16:15 #288 №2171811 
>>2171805
Создай здесь ишью https://github.com/dotnet/efcore/issues
Аноним 01/10/21 Птн 21:19:35 #289 №2171813 
>>2171278
В общем, пришлось ещё дописывать "into"
Но всё ровно спасибо
Аноним 01/10/21 Птн 23:14:12 #290 №2171881 
>>2171805
Смотри IDesignTimeDbContextFactory и аргументы команды. И успокой свое траханье.
Вообще не понимаю при чем там метож мейн.
Нихуя загуглить не могут, а потом "ЕФ гавно пайду лучше в АДО((("
Аноним 02/10/21 Суб 03:10:08 #291 №2171965 
Ребяты почему иногда не срабатывает SendKeys.SendWait("^(c)") ?
Вот в визуал студии я отлаживаю и запускаю программу. Иногда ее закрываю. И вот она начинает ебать голову потом. Перестает копировать, я перезвпускаю студию, иногда помогает сразу а иногда нужно ждать только хуй знает чего ждать то.
Аноним 02/10/21 Суб 09:09:00 #292 №2172001 
>>2171965
Он по дефолту навешивает хук. Хуй знает, что ты там чудишь идеешкой. Если помогает рестарт пк, то все понятно.
Аноним 02/10/21 Суб 09:18:53 #293 №2172008 
>>2165540 (OP)
Аноны, помогите придумать реализацию. Вот у меня есть объект, а в нем 20 полей int, надо вызывать один метод при присваивании значений этим полям. Возможно ли сделать что-то типа сеттеров у этих полей без дублирования сеттеров в каждом?
С INotifyPropertyChanged в любом случае надо в каждое свойство копипастить один и тот же код.
Можно сделать классы с кастомным implicit кастом, но тогда читаемость по пизде пойдёт, когда я буду инты присваивать классу. Разве что сделать дженерик и в скобках инт оставлять, чтоб понятнее выглядело откуда он взялся. Но это всё равно звучит как нечитаемая хуйня.
Рефлексией магию сотворить? Но это тоже звучит как костыль.
Или не ебать мозг и просто вызывать Set(...)? Но меня ОКР долбит.
Проверять поля на изменение в цикле? Вообще пиздец.
И если делать вместо интов классы, то в любом случае надо в конструкторе писать лапшу с вызовом конструкторов каждого класса, чтоб передать в него что это за поле вообще. Что тоже не нравится мне.
Аноним 02/10/21 Суб 09:31:08 #294 №2172013 
>>2172008
Сделай сорс генератор по атрибуту или суффиксу класса.
Аноним 02/10/21 Суб 10:00:19 #295 №2172019 
1.jpg
>>2172008
Могу прдложить прикриплейд)))
Аноним 02/10/21 Суб 10:17:13 #296 №2172030 
>>2172001
Рестарт пк помогает в любом случае.
Сейчас вот скомпилироаал программу и запускаю ее в релизе без студии и она нихея не работает.
Не происходит копирование(
Аноним 02/10/21 Суб 10:30:59 #297 №2172033 
Безымянный.png
>>2172019
Более лучшая реализация как мне кажется))))
Аноним 02/10/21 Суб 10:52:01 #298 №2172041 
>>2172019
>>2172033
Я ведь хотел чтоб просто писать zalupa.a = 5; и вызывался нужный метод. А так можно и через TypeBuilder весь класс слепить и обращаться через интерфейс. Но я думал может есть менее извращённый способ.
Аноним 02/10/21 Суб 11:01:53 #299 №2172047 
>>2172041
Мог бы Fody взять просто, подписаться на нотификации и что тебе там надо делать.
https://github.com/Fody/PropertyChanged
Аноним 02/10/21 Суб 14:45:16 #300 №2172170 
>>2172047
Я ему уже предложил использовать сорс генератор, намного лучше фоди.
Аноним 02/10/21 Суб 19:38:23 #301 №2172389 
>>2172170
А почему лучше фоди-то?
На самом деле гуд фича. И фоди это таки риск (сам автор писал, что когда он уходил - никто нахуй либу не поддерживал), но все же.
Аноним 02/10/21 Суб 19:43:57 #302 №2172395 
>>2172389
Фоди изменяет сгенерированный ил. Сорс генератор дописывает код до компиляции.
Аноним 02/10/21 Суб 21:10:05 #303 №2172464 
Позадавайте мне вопросов которые обычно задают вкатывальщикам. Позязя.
А то я на заводе работаю и завод немного(сильно на самом деле), заебал, но вкат на звавод происходил так:
-Привет, шарп знаешь?
- Знаю.
- Ок, вот тебе пека, иди работать.
И судя по всему в других местах немного не так.
Аноним 02/10/21 Суб 21:41:44 #304 №2172487 
изображение.png
Под виндовс оказывается есть какой-то йоба терминал новый
Аноним 02/10/21 Суб 23:37:11 #305 №2172506 
>>2172464
Стандарт.
ООП.
Наследование. Модификаторы доступа. Боксинг анбоксинг. Структуры данных. Паттерны проектирования.вкатывальшику нужно просто знать что такие есть.
Ну и общие воросы, что такое clr, что такое нет, нет кор, нет фраемворк, в чем разница.
Корочи зайди на метанит и там посмотри вопросы.
А ну еще sql. Так же желательно представлять что такое EF core. Ну если прл еф кор спросят то там и linq. Так же асинк авейт. Ну еще сериализация и структура json, но это легко, там пару строк кода.
Эт вопросы только по языку. А ведь есть еще впф, асп нет кор.
Впф я хуй знает, а в асп коре там я ебу вопросов, выебут в хвост и гриву. Модели, представления, контролеры, фильтрация, зависимости, модели представлений, частичные представления, апи, куки, маршрутизация, авторизация. А еще сигналР и Блейзор там тоже еще можно пачку вопросов придумать.
Но ты не пугайся, это все изи, главное практика.
Корочи теория это хорошо, но вот даже если ты наизусть весь метанит выучиш и слово в слово сможешь его пересказать тебе это не поможет.
Я сам вкатывальщик и уже давно понял что без практики ты нихуя не изучишь.
Придумай себе проект и делай его.
Только не придумывай очередную соц сеть или телеграм бота
Нужно что то что бы было интересно тебе. Что бы ты горел и хотел это делать.
Вот мб в игру какую играешь, сделай чит или бота для игры. Или у друзей спроси какой бы сайт им был бы нужнн и сделай им его.
Аноним 03/10/21 Вск 00:01:20 #306 №2172514 
изображение.png
Что это такое? Перечитываю пятый раз и понять не могу что, зачем и нахуя тут нужно. Зачем вообще писать как s1 и s4? Что тут вообще происходит?
Аноним 03/10/21 Вск 00:22:56 #307 №2172517 
>>2172514
s1 это конструктор с передачей ReadOnlySpan<Char> на самом деле и его не существовало до .net core 2. В классе String объявлены разные перегрузки конструкторов, например перегрузка с созданием строки из масива символов.
s2 существовала всегда
s3 - более поздняя и удобная версия s2(но её нельзя использовать для объявления поля внутри класса).
s4 это последнее добавление в язык и упрощённый вариант для s1, чтобы не писать второй раз имя класса, на любителя впрочем.

Аноним 03/10/21 Вск 00:48:55 #308 №2172539 
>>2172517
Всё равно не понимаю смысл s1 и s4. Я могу пока просто забить на это ?
Аноним 03/10/21 Вск 02:40:52 #309 №2172569 
>>2172506
>ООП
Ну, тут наверное чек. Как минимум за наследование-полиморфизм-инкапсуляцию могу пояснить + солид.
>Боксинг анбоксинг
чек
> Структуры данных
Хм. Вот тут у меня сомнения. Потому что многое на практике не применял, только знаю когда что надо в теории, но на практике только пригодились деревья, да стек, очередь, списки, массивчики.
> Паттерны проектирования
Если те что у банды четырех - чек. Если MVC-MVVM - тоже чек. Другие - хз.
> clr
Чек, хотя если будут спрашивать по кишкам - только общее знаю.
> что такое нет, нет кор, нет фраемворк, в чем разница
Чек
> sql
У sql много чего. Если просто про запросики и n+1 - чек, если какая-то специфичная фигня типа как какие индексы строятся - наверное не чек. Ну и специфичная для конкретных СУБД фигня, типа вот в этой можно это, а в той то.
> еф кор
Ну, опять же тут получается зависит. На текущей работе я его просто как хранилище использовал.
> асинк авейт
Чек
> Впф
Не интересно и не собирался на декстопы
> представления, контролеры, фильтрация, зависимости, модели представлений, частичные представления, апи, куки, маршрутизация, авторизация
Это все чек, если подразумевается веб. Просто потому что на текущей работе именно это использовал частенько.
> сигналР
Чек
> Блейзор
Знаю что есть, руками не трогал, только создавал проектик посмотреть. На текущей работе Webapi+angular+nginx+docker
Аноним 03/10/21 Вск 02:56:07 #310 №2172574 
>>2172569
Ну лак че голову дуриш то
Ты уже пояти милд если ебало касивое.
Аноним 03/10/21 Вск 03:08:39 #311 №2172575 
Ребята вы бы поверили если бы я вам сказал что игровые действия в игре наебнули бота который до этого работал? Наебнули всмысле сломали его правильную работу.
Я вот сам не верю в такое.
Вот история.
Сделал я бота корочи, который кликает в ПОЕ. В лиге он покупает предметы.
Ну все хорошо все работает без проблем вообще.
Скинул я его корешу.
Он пробует и говорит что не работает.
Я думаю как так то нахуй, скорее всего он персонажа не так поставил и пиксили не сходятся по которым нужно кликать.
Он высказывает предположение что из за размера персонажей клики не попадают. Ну ок, у меня вичка у него глад.
Я захожу на глада, и точно не работает.
Только вот я потом захожу на вичку и у меня ТОЖЕ БЛЯТЬ НЕ РАДБОТАЕТ.
Проблема в том что с какова то хуя данный метод перестал отжимать контрл в игре

public static void Ctrl_MouseLeft(int xpos, int ypos)
{
// Key Ctrl + Mouse Left
keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYDOWN, 0);
SetCursorPos(xpos, ypos);
mouse_event(MOUSEEVENTF_LEFTDOWN, xpos, ypos, 0, 0);
Thread.Sleep(200);
mouse_event(MOUSEEVENTF_LEFTUP, xpos, ypos, 0, 0);
keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0);

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

Блять как так то нахуй
Комп перезагружал уже.
Я просто не могу в это поверить.
Это как если бы человек увидел инопланетянина и мне рассказывал бы то я ему вызвал бы дурку.
Но я рили вам не пижу, так все и было.
Программа одна и та же. Причем я ее утром допилил и с утра она фармила, я заходил и выходил из игры все ок, а тут 1 раз сменил перса потом взял основного и такой пиздец.
Аноним 03/10/21 Вск 09:15:17 #312 №2172614 
Почему тред перекатили, а ссылку в старый не скинули?
Аноним 03/10/21 Вск 09:16:38 #313 №2172615 
>>2172614
>>2165543 →
Аноним 03/10/21 Вск 09:19:04 #314 №2172616 
>>2172615
Надо тройную ссылку при перекате делать. К примеру, вот так:

>>2165540 (OP)
>>2165540 (OP)
>>2165540 (OP)
Аноним 03/10/21 Вск 09:19:43 #315 №2172617 
>>2172616
Мне все равно.
Аноним 03/10/21 Вск 09:20:23 #316 №2172618 
>>2172617
А я в старом треде 2 недели просидел.
Аноним 03/10/21 Вск 12:18:57 #317 №2172678 
В конце большинства тредов вылазит какой-то петуч и перекатывается в джаву/го (шило на мыло). В чем смысол?
Работы нет - пиздеж. По вебу сейчас голод. За неделю на джинни приглосов 20 приходит. Из них в 10 будет красивый стек: кор, ангулар, опционально микросервисы.
Аноним 03/10/21 Вск 16:11:47 #318 №2172843 
Почему стек работает по правилу Last-in-first-out?
Аноним 03/10/21 Вск 16:22:12 #319 №2172854 
>>2172843
Сам подумай почему для вызова процедур нужен стек. Как еще хранить параметры вызова и состояние регистров хранить, чтобы востановиться после возрата из подпроцедуры?
Аноним 03/10/21 Вск 17:17:01 #320 №2172898 
Безымянный.png
Анончик, что думаешь о такой вот структуре проекта? Не кажется ли тебе она неудобной?
Аноним 03/10/21 Вск 19:48:23 #321 №2173035 
1633279702874.jpg
Я заебался.

ASP.NET MVC, .NET 5. У меня есть страница Razor, называется app.cshtml - на неё легко зайти, невозможно забыть, и легко потерять, она работает. Я хочу, чтобы запросы на сайт вроде сайт/сычёв и сайт/срака вели на аналогичную страницу как сайт/app?id=сычёв, но при этом выглядели как сайт/сычёв. Разве я много прошу?

Я сделал раутинг, он выглядит так:
endpoints.MapRazorPages();
endpoints.MapControllerRoute(name: "Apps", pattern: "{controller=Home}/{(звёздочка)pageID}", defaults: new { action = "ShowInfoPage" });

- и эта хуйня работает, я получаю выход в нужную функцию. Но потом из этой функции мне нужно подставить нужную страницу app.cshtml, и параметр. И ёптваюмать, это не работает.
return View("~/Pages/app.cshtml"); - вот эта срака переводит на нужную страницу, но теряется ViewData.

Меня заебло тупить. Как в этом ёбаном MVC подменять страницу без изменения пути в адресной строке?
Аноним 03/10/21 Вск 20:06:17 #322 №2173058 
1633280776645.jpg
>>2173035
Я вроде как решил это, создав нормальный View и Model, но хотелось же на нормальный RazorPage вывести.
Аноним 03/10/21 Вск 22:54:21 #323 №2173145 
>>2172898
А ты знаешь что в одном солюшене может быть несколько проектов? >>2173035
Чего блять? МВЦ и РазорПагес разные вещи. Их, конечно, можно вместе использовать, но надо нормально маршруты настроить. Ну и возвращать из контроллера страницу нельзя. Либо редирект, либо темплейты по-человечески сделать, которые и пага и вью будет использовать.
Аноним 04/10/21 Пнд 05:46:49 #324 №2173231 
image.png
Почему он ругается на i? Разве i не должно быть локальным внутри блока цикла?

Это что за хуита? Смешно что такая хуита когда-то была в С++, времен 6.0 версии студии до 98 стандарта, и ее пофиксили.

С какого она в шарпе-то делает?
Аноним 04/10/21 Пнд 07:28:22 #325 №2173243 
>>2173231
Защита от говнокода.
Аноним 04/10/21 Пнд 07:56:54 #326 №2173250 
Как подобный T&F|T=T&!T стринг в логику прасить? Как запилить
bool Foo(string bar) { }?
sageАноним 04/10/21 Пнд 08:23:10 #327 №2173261 
Неофит на связи, можете по хардкору объяснить как там переносятся библиотеки с .net framework на .net core / .NET? Я что-то слышал про компабилити пак. Есть один System.Windows.Threading в WindowsBase.dll, у меня сейчас ругается на Threading.
Аноним 04/10/21 Пнд 08:23:41 #328 №2173262 
Сага приклеилась сама
>>2173261
Аноним 04/10/21 Пнд 10:41:14 #329 №2173345 
20211004103915.jpg
20211004103912.jpg
Нихуя не понимаю бля.
Вот есть этот класс https://docs.microsoft.com/en-us/dotnet/api/system.windows.threading.dispatchertimer.start?view=net-5.0
>Applies to .net 5.0
Компитабилити пак поставил, пытаюсь гуглить в нугете - он есть только в каком-то левом пакете, который не ставиться. Непосредственно в reference assemblies на харде в .нете WindowsBase нету, только во фреймворке, но он очевидно нихуя не подключается.
Как его поставить?
Аноним 04/10/21 Пнд 10:48:26 #330 №2173358 
>>2173250
https://dotnetfiddle.net/uxl6Hg

Теперь задание тебе: запили мне
bool Foo(string bar) { }
Чтобы он приносил миллион долларов в месяц.
Аноним 04/10/21 Пнд 10:51:00 #331 №2173360 
>>2173345
Пришло время переустанавливать шиндус. У меня WindowsBase.dll лежит в папке кора. Ты кстати в какой папке смотришь? А кор у тебя 5 или 3?
Аноним 04/10/21 Пнд 11:24:16 #332 №2173406 
>>2173358
string Foo(string bar)
{
return "Один миллион долларов"
}
Держи, запускать раз в месяц
Аноним 04/10/21 Пнд 11:26:22 #333 №2173410 
>>2173406
Хули ты сигнатуру изменил?
Аноним 04/10/21 Пнд 11:50:59 #334 №2173427 
>>2173360
У меня .NET 5. Либы у меня все были сложены по дефолту приблизительно в C:\Program files(x86)\Reference assemblies\ .
Аноним 04/10/21 Пнд 11:56:17 #335 №2173432 
>>2173427
И что у тебя кор делает в папке фреймворка? Core по умолчанию идет в C:\Program Files\dotnet. Либы для десктопного сдк C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\5.0.0.
Аноним 04/10/21 Пнд 11:56:23 #336 №2173433 
>>2172575
Бамп вопросу.
Поцоны это же бред блять.
Аноним 04/10/21 Пнд 12:56:54 #337 №2173519 
>>2173432
Спасибо, добавил с последнего пути - сбилдилось, только в студии подсвечивает все равно ошибку, нужно навернуть еще какой-то анализатор?
Аноним 04/10/21 Пнд 12:58:48 #338 №2173526 
>>2173433
Ты что-то наговнокодил, очевидно же.
Аноним 04/10/21 Пнд 13:05:00 #339 №2173536 
>>2173345
>Компитабилити пак поставил, пытаюсь гуглить в нугете - он есть только в каком-то левом пакете, который не ставиться.
Начиная с VS2017 изменился формат csproj. Теперь он намного чище и без всякого мусора.

Чтобы получить WindowsBase.dll и еще ворох всякого говна, необходимо у csproj указать sdk Microsoft.NET.Sdk.WindowsDesktop и/или TargetFramework net5.0-windows.
Аноним 04/10/21 Пнд 13:32:01 #340 №2173560 
изображение.png
Что скажете?
Аноним 04/10/21 Пнд 13:33:00 #341 №2173562 
>>2173560
Краски не хватило на другие машинки.
Аноним 04/10/21 Пнд 14:04:48 #342 №2173585 
>>2173560
Русек вышел?
Аноним 04/10/21 Пнд 14:41:56 #343 №2173625 
>>2173585
Не знаю
Аноним 04/10/21 Пнд 15:08:50 #344 №2173645 
image
Да это же программист-анальник. Открыл 17 главу в надежде увидеть стандартные паттерны через дабл чек, фри лок и тому подобные базовые вещи. Но увидел по 2-3 абзаца на каждый базворд без нормальный объяснений нахуя и говнокод с ошибками в примерах.
Аноним 04/10/21 Пнд 15:11:50 #345 №2173646 
>>2173645
А че читать для вката?
Аноним 04/10/21 Пнд 15:13:49 #346 №2173650 
>>2173646
Для вката пох что читать.
Аноним 04/10/21 Пнд 15:22:02 #347 №2173653 
>>2173650
Значит продолжу этого анальника читать
Аноним 04/10/21 Пнд 17:32:21 #348 №2173780 
>>2173646
Харкачи. Особенно /бэ/ доску
Мимо эксперт по ИТ и /бэ/
Аноним 04/10/21 Пнд 18:01:28 #349 №2173832 
>>2173410
bool Foo(string bar = "Голова, дашь миллион долларов?")
{
return true;
}
Аноним 04/10/21 Пнд 18:38:06 #350 №2173872 
>>2173145
>А ты знаешь что в одном солюшене может быть несколько проектов?
Конечно знаю. Только вот дело в том, что тимлиду не нравится, когда ты какие-то там библиотеки классов делаешь, которые нужны только тебе и прочее-прочее.
Аноним 04/10/21 Пнд 18:42:50 #351 №2173879 
>>2173872
Он долюбоеб что-ли?
Разделение по класс лайбрари, даже если они будут юзаться только в 1 солюшене - ок, ибо четче границы, меньше связанность, легче отслеживать зависимости и всякие там кроссреференсы.
Пруф ми вронг
Аноним 04/10/21 Пнд 18:44:31 #352 №2173884 
>>2172898
ЧТо такое Feature1-2? Что там лежит?
Аноним 04/10/21 Пнд 18:56:03 #353 №2173903 
>>2173884
Очевидно, он решил поделить контроллеры по фичам. Но это так не работает.
Аноним 04/10/21 Пнд 19:01:45 #354 №2173911 
>>2173903
А чому нет?
Я вот последние пару сервисов так делаю и удобнее чем REST-контроллеры выходит.
Аноним 04/10/21 Пнд 20:26:24 #355 №2174013 
>>2173526
Ну да)
Хуй знает, контрл не отпускает когд.
Переписал все на инпутСимуляторе, работае.
Аноним 04/10/21 Пнд 20:27:45 #356 №2174014 
>>2174013
ИнпутСимулятор как раз сделали для таких рукожопов как ты.
Аноним 04/10/21 Пнд 20:29:14 #357 №2174015 
>>2173911
Представь, что тебе надо пилить фичи по фича флагам. Например, есть надо запилить фичу, которая будет фиксить другую фичу. В какой контроллер ты ее засунешь? Как ты решаешь проблему с роутом?
Аноним 04/10/21 Пнд 23:20:10 #358 №2174143 
Ой, какое же сложное ваше ебучее программирование
Аноним 04/10/21 Пнд 23:22:33 #359 №2174146 
>>2174143
90% - манкижоб.
Но и там умудряются обосраться.
Большинство круд нормально сделать не смогут даже.
Аноним 04/10/21 Пнд 23:24:56 #360 №2174148 
>>2174146
> круд
Что?
Аноним 04/10/21 Пнд 23:26:41 #361 №2174151 
>>2174148
Так. Надо менять методичку и переходить на "Большинство не знаю чт отакое круд"
CRUD
Аноним 05/10/21 Втр 09:00:52 #362 №2174256 
Раз уж подняли такую животрепещащую тему, то и я спрошу. Есть аккаунт-контроллер (логин/регистрация) и есть админ контроллер (админка сайта). Вот хочу я запилить функцию ролей на сайте, роли может менять Одмин в админке. Куда класть экнш ChangeUserRole в AdminControll или AccountController?
Аноним 05/10/21 Втр 09:22:12 #363 №2174268 
>>2174256
RoleController.
Аноним 05/10/21 Втр 09:35:18 #364 №2174276 
Как заставить приложушку что-то делать с определённой периодичностью? Например, раз в день в определённое время?
Аноним 05/10/21 Втр 09:38:21 #365 №2174278 
>>2174276
https://docs.microsoft.com/en-us/dotnet/core/extensions/workers
Performing a time-based operation on a schedule.
Аноним 05/10/21 Втр 09:51:23 #366 №2174291 
>>2174268
А под регистрацию RegisterController, LoginController под логин. Один контроллер - один экшн!
Аноним 05/10/21 Втр 09:52:48 #367 №2174294 
>>2174291
>Один контроллер - один экшн!
Как что-то плохое. Глянь CQRS.
Аноним 05/10/21 Втр 11:14:43 #368 №2174365 
Annotation 2021-10-05 111040.jpg
Почему, а самое главное как получить правильную версию NT?
Аноним 05/10/21 Втр 11:20:03 #369 №2174367 
>>2174365
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
Аноним 05/10/21 Втр 11:20:10 #370 №2174368 
>>2174365
Чтобы правильная выдалась, нужно добавить манифест и в нём раскомментить тег supportedOS.
Почему - хз.
Аноним 05/10/21 Втр 11:35:35 #371 №2174379 
image.png
image.png
>>2174368
Выдалась NT Windows 8.1
>>2174367
>пик 2
Аноним 05/10/21 Втр 11:36:49 #372 №2174381 
image.png
Есть словарь, в котором ключ это (int[,], (int, int)). Написал под него класс, реализующий IEqualityComparer, всё ок, дубликаты таки не записываются, но при этом не работает TryGetValue. Наверное ошибка где-то в высчитывании хэша, но в чём она может быть? Пикрелейтед реализация интерфейса.
Аноним 05/10/21 Втр 11:37:13 #373 №2174382 
>>2174379
На кой хер тебе это вообще надо?
Аноним 05/10/21 Втр 12:09:25 #374 №2174406 
>>2174381
>словарь, в котором ключ это (int[,], (int, int))
Пиздец.
Закинь на какой нибудь дотнетфидлле, нахер мне твои картинки разглядывать.
Аноним 05/10/21 Втр 12:14:15 #375 №2174408 
>>2174381
>аргументы функции с большой буквы
>таплы в паблик интерфейсе
>назвать кортеж с параметрами ширина-высота ДЕЙСТВИЕМ
>if(true) return true; else return false;
Ну ты и еблан, чел. Говнокодовое клише просто, ну и мерзость.
Аноним 05/10/21 Втр 12:19:04 #376 №2174414 
>>2174381
>else if(x.Satate != y.State)
Нахуя ты это делаешь? Ты сначала проверил содержимое массивов, а потом являются ли два массива одним инстансом... Если они один и тот же массив, то содержаимое у них будет одинаковое, если тебе важно содержимое, а не инстансы, зачем ты проверяешь ссылки?
Аноним 05/10/21 Втр 12:35:31 #377 №2174425 
>>2174414
Могут быть ключи, у которых State null, но при этом одинаковый кортеж Action. Если останется просто else, они ж разными признаются.

>>2174408
Последний пункт поправил, действительно хуету сделал. В остальном немного мимо, аргументы с маленькой, действие т.к. из состояния совершается действие и оно в словаре получает оценку. Хз как это можно реализовать не через словарь.
Аноним 05/10/21 Втр 12:41:12 #378 №2174428 
873107.png
Аноны! Вопрос по ажурке (azure) не нашел тред про облака

Такая проблема:
1 Вот у меня есть дома на холодильнике сервер
2 На ажурке есть статический сайт, который делает запрос напрямую на мой белый IP
проблема: клиент из европы не может получить ко мне доступ (вот не знаю почему)
3 Кто-нибудь знает как я могу использовать какой-нибудь ExpressRoute или PrivateLink чтобы клиент обращался не к моему IP, а к ажуровскому, а ажурка "под капотом" делала редирект на мой айпишник? у ажурки есть ко мне доступ

Не хочу платить несколько тысяч в месяц ради клента
Аноним 05/10/21 Втр 13:04:17 #379 №2174445 
>>2174382
Посмотрел доку. Десятая винда начинается с 10.0, начиная с висты они для какой-то обратной совместимости использовали 6.х. Так как эта хрень записана в реестре и была возможность обновиться с восьмерки на десятку, реестр мог не обновиться и некоторые легаси программы могут читать 6.3 или даже 6.2 вместо 10.0.
Аноним 05/10/21 Втр 13:09:56 #380 №2174451 
>>2174425
>ключи, у которых State null, но при этом одинаковый кортеж Action
При чем тут вообще action у тебя какая логика сравнения State? И кстати, загугли что такое отладчик и как им пользоваться.
Аноним 05/10/21 Втр 13:12:17 #381 №2174453 
>>2174428
https://azure.microsoft.com/en-in/services/dns/#overview
В амазоне раут53.
Аноним 05/10/21 Втр 13:13:50 #382 №2174456 
>>2174428
>не нашел тред про облака
Есть тред девопсов, где дрочат на ансибл. Можешь у них спросить.
Аноним 05/10/21 Втр 13:35:54 #383 №2174464 
>>2174451
А, понял ошибку. Действительно неверная строчка при логике сравнения содержимого, а не ссылки. Спасибо, анон!
Аноним 05/10/21 Втр 14:47:23 #384 №2174522 
>>2165540 (OP)
Сап аноны!

Появилось задание - разработать аддон к VS чтобы можно было автоматизировать добавление комментариев

Сам такой хуйней никогда в жизни не занимался. Интересует вопрос, а какой собсна тип проекта выбрать? Extensions development то я скачал и VSSDK тоже (если это не одно и то же конечно), а дальше? Мне выбрать плагин, аддон или что вообще?

Заранее спасибо!
Аноним 05/10/21 Втр 14:58:13 #385 №2174528 
>>2174522
Доку2 открывал хоть, или еще одна жертва обучения через ютуб?
> make sure you have installed the Visual Studio extension development workload, which includes the VSIX template
>...
>Step 1. From the File menu, select New > Project. Search for "vsix" and select the Visual C# VSIX Project and then Next.
Аноним 05/10/21 Втр 15:48:04 #386 №2174590 
>>2174528
Значит все правильно сделал, спасибо!
Аноним 05/10/21 Втр 15:59:06 #387 №2174597 
>>2174522
>автоматизировать добавление комментариев
> GetUser(int id)
> Comment: "Gets user"
> Очень полезно, спасибо.

А чем вас существующие решения ну строили? Тот же гостдок?
Аноним 05/10/21 Втр 16:44:48 #388 №2174632 
Антоны, каким образом base в наследуемых классах работает, я знаю, что оно делает.
Но как это выглядит со стороны таблицы методов и объектов типов? Указывает ли вообще указатель на объект-тип насдедуемого класса на базовый класс?
Аноним 05/10/21 Втр 17:09:00 #389 №2174647 
>>2174632
https://sharplab.io/#v2:EYLgtghglgdgNAFxFANgHwAICYCMBYAKAwGYACbUgQVIG9DSHyyA3KAJwQFcIVyAWUgFkAFAEpa9RgF9CMgoRLkspAEKkQVCQUZNSAe2YBTNmygATQ/yFitOncAgBnQwDoRogNySGcqUA===
Аноним 05/10/21 Втр 18:46:53 #390 №2174735 
>>2169599
На нём можно вывести массив пикселей на экран?
Аноним 05/10/21 Втр 18:49:10 #391 №2174736 
>>2174735
Разрешаю.
Аноним 05/10/21 Втр 18:52:32 #392 №2174744 
>>2174736
Я так проверяю игрушечные технологии от реальных, с которыми можно работать. К примеру, в 2017 язык Golang не справился с такой задачей.
Аноним 05/10/21 Втр 18:56:38 #393 №2174752 
>>2174744
С фшарпиком это не совсем верный способ. Эта хуйня мультипарадигмальна - раз. Два - .net там есть -> ты можешь просто те же формы достать и хуячить.
Другое дело, что когда ты начинаешь там более-менее сложные штуки делать, а в довесок которые требуют таки перформанса, вся эта изящность и красивость идет нахуй. Достаточно загуглить обычный такой realWorldExample, где включается бизнас-логика, валидации и проч-проч, как фшарп начинает казаться тем еще говном.
Аноним 05/10/21 Втр 18:58:32 #394 №2174756 
>>2174744
Я что-то очень сильно сомневаюсь, что ты знаешь дх12 или вулкан, задавая такие вопросы.
Аноним 05/10/21 Втр 19:06:00 #395 №2174767 
>>2169599
Потому что функцональщина для тупых. Это самая легкая в понимании парадигма, которая требует от тебя ровно одну извилину. Даже no-code сложнее в освоении, чем функциональщина.
Аноним 05/10/21 Втр 19:23:17 #396 №2174778 
>>2174756
В самом языке должна быть возможность сделать put_pixel(x,y,color)
Аноним 05/10/21 Втр 19:25:17 #397 №2174780 
>>2174778
Это не от языка зависит. Тебе уже ответили, что в .net это есть.
Аноним 05/10/21 Втр 20:19:18 #398 №2174815 
Как запустить асинхронную таску в новом треде, чтобы она не дедлочилась, шарпаны?
Аноним 05/10/21 Втр 20:24:50 #399 №2174821 
>>2174815
Поставь ей лонг ранин и запусти через эвейт или старт.
Аноним 05/10/21 Втр 20:28:30 #400 №2174827 
>>2174821
Че сказал, не понял. ThreadStart параметр не может быть асинхронным.
Аноним 05/10/21 Втр 20:34:58 #401 №2174837 
>>2174827
1. Таск != тред
2. Нет никакой гарантии, что таск будет запущен в другом потоке, повлиять можно только через TaskCreationOptions.LongRunning и создать таску через фабрику
3. Можно указать тип таски и запустить ее асинхронно
Аноним 05/10/21 Втр 20:35:40 #402 №2174838 
>>2174837
А через new Thread?
Аноним 05/10/21 Втр 20:36:49 #403 №2174841 
>>2174838
Как же хорошо, что в инглише нельзя такие обрывистые предложения строить.
Аноним 05/10/21 Втр 20:41:47 #404 №2174848 
image.png
Чуваки
Я изучаю, осматриваю с#, и вот такой вопрос возник у меня: можно ли сделать десктопное приложение с кастомным интерфейсом, как, например, у spotify? Если да, то подскажите какой тулзой
Аноним 05/10/21 Втр 20:44:04 #405 №2174853 
>>2174848
Можно, если руки не из жопы. И имя у тебя какое-то пидорское.
Аноним 05/10/21 Втр 20:45:29 #406 №2174856 
>>2174848
Конкретизируй что для тебя означает кастомный интерфейс
Аноним 05/10/21 Втр 20:45:50 #407 №2174858 
>>2174853
>имя у тебя какое-то пидорское
Это тебе из-за Земфиры так кажется. Чем сделать можно?
Аноним 05/10/21 Втр 20:47:56 #408 №2174860 
>>2174858
Чем хочешь. Дизайн к туллингу не привязан. Или для тебя небывалые открытия, что например кнопка - это набор картинок? Анимация - быстрая смена картинок.
Аноним 05/10/21 Втр 20:48:11 #409 №2174861 
>>2174856
Я немного посмотрел WinForms, вижу, например, можно сделать кнопку, но скруглить края, например, нельзя.
Кастомный интерфейс для меня, это интерфейс, где ты можешь сотворить хоть круглую кнопку, хоть квадратную, прихуячить анимации и т. д. и т. п. Типа возможности css, но только в десктопном приложении
Аноним 05/10/21 Втр 20:50:06 #410 №2174863 
>>2174860
У тебя такой тон, будто ты чем-то глубоко оскорблен.
Аноним 05/10/21 Втр 20:50:21 #411 №2174864 
>>2174861
Это все обман зрения.
https://www.youtube.com/watch?v=vYDyGxoq9JU
Аноним 05/10/21 Втр 20:50:52 #412 №2174866 
>>2174863
Я мысли читать не умею.
Аноним 05/10/21 Втр 20:52:06 #413 №2174872 
>>2174864
Спасибо, анонче!
Аноним 05/10/21 Втр 20:53:04 #414 №2174873 
>>2174815
Сделай просто свой планировщик который будет твои таски запускать в отдельных тредах. Что, блядь, сложного-то?
Другое дело, что если тебе прям нужен отдельный тред, то нахуя тебе таски - я не понимаю. Просто делай себе отдельный тред, а асинхронность получай с помощью коллбеков.
Аноним 05/10/21 Втр 20:54:20 #415 №2174877 
>>2174848
Не еби себе мозг. Бери божественный протон и делай интерфейс на html+js.
Аноним 05/10/21 Втр 20:59:18 #416 №2174882 
>>2174861
Wpf
Аноним 05/10/21 Втр 21:00:55 #417 №2174885 
>>2174882
Unity
Аноним 05/10/21 Втр 21:11:14 #418 №2174892 
>>2174885
Avalonia
Аноним 05/10/21 Втр 21:26:03 #419 №2174900 
>>2174841
Что обрывистые? Я создаю тред. Как мне в нем запустить таску? .Result сделает дедлок.
Аноним 05/10/21 Втр 21:27:01 #420 №2174902 
>>2174900
>запусти через эвейт или старт
Аноним 05/10/21 Втр 21:28:16 #421 №2174903 
>>2174902
Дай пример кода, я не вдупляю что ты имеешь виду.
Аноним 05/10/21 Втр 21:29:36 #422 №2174905 
>>2174903
await myTask;
или
myTask.Start();
Аноним 05/10/21 Втр 21:33:01 #423 №2174910 
>>2174905
>await myTask;
Пчел, внутри делегата, который передается в Thread, так нельзя сделать.
>myTask.Start();
А результат я куда получу и когда?
Аноним 05/10/21 Втр 21:34:28 #424 №2174911 
>>2174910
>так нельзя сделать
Можно, я разрешаю.

>А результат я куда получу и когда?
Тебе уже предложили через колбек. Вариантов уйма.
Аноним 05/10/21 Втр 21:40:34 #425 №2174918 
Ass.png
>>2174911
Аноним 05/10/21 Втр 21:42:12 #426 №2174919 
>>2174918
Почему ты показываешь С++ ошибку из С файла в треде про C#?
Аноним 05/10/21 Втр 21:43:54 #427 №2174921 
>>2174919
Потому что я делаю внешний вызов, и эта жопа валится.
Аноним 05/10/21 Втр 21:51:11 #428 №2174930 
Можно ли на C# из консольного приложения открыть браузер, скормить ему страницу с простым html, которая будет сгенерирована программой в string'е, и которая ни на каком сервере не сохраняется, и на диске желательно тоже чтобы не сохранялась.
Ну смысл задачи такой, чтобы отчёт о расчётах не в консоле писать, а чтобы было чуть больше возможностей для оформления текста. Нужно какое-то простое решение.
Аноним 05/10/21 Втр 21:52:39 #429 №2174931 
>>2174921
Потому что у тебя что не пост, так какая-то новая хуйня. Во-первых, прими таблетки. Во-вторых, падает у тебя проверка от рукожопа, написанная таким же рукожопом.

ret <= (ssize_t)len

На кой хуй нужна эта проверка и что за хуйню она проверяет? Откуда мне знать?
Аноним 05/10/21 Втр 21:54:56 #430 №2174932 
>>2174930
ASP.NET
Аноним 05/10/21 Втр 22:06:13 #431 №2174938 
1.png
2.png
>>2174930
Ну, чисто концептуально - прикриплейд, если я тебя правильно понял.
Ну, т.е. тут я ручками сделал статичный ответ. Можешь делать так же, но генерировать на основе каких-то данных.
Аноним 05/10/21 Втр 22:07:01 #432 №2174941 
>>2174932
А это реально за полдня накостылять, или придётся книги/мануалы/docs.microsoft.com... по этой штуке пару недель читать?
Я всё что касается веба игнорировал всегда, не думал, что макакопомойка может и мне понадобится. А тут вот оно как повернулось...
Аноним 05/10/21 Втр 22:07:55 #433 №2174942 
>>2174938
Спасибо, сейчас поразбираюсь.
Аноним 05/10/21 Втр 22:12:34 #434 №2174945 
>>2174941
>по этой штуке пару недель читать?
Как-то в шутку начали соревноваться в написании минимального кода для хелоу ворлда, что разработчики .net в следующей версии запилили апи для написания сайтов еще короче, чем на ноде и оф коз у того анона выше на скрине. Для этого надо было немного изменить лямбды. Начиная с .net 6, запилить сайт это три строчки кода. ASP.NET и раньше был консольным приложением.
Аноним 05/10/21 Втр 22:16:55 #435 №2174947 
>>2174942
Это на самом деле такой себе пример. Я просто за час на коленке побаловался. На самом деле если тебе действительно нужно что-то типа генерации отчетов или подобного, то ASP.Net - будет близок к оптимальному.
>>2174945
Мой код это просто развлечение же. Для реальных задач он малопригоден.
Аноним 05/10/21 Втр 23:25:55 #436 №2174983 
Насколько плохо пропускать некоторые главы когда еще только учишься? Не могу читать главу про Nullable Reference Types, голова пухнет, да и вещь это вроде не прям необходимая для изучения
Аноним 05/10/21 Втр 23:27:15 #437 №2174985 
>>2174983
Если не можешь сраные нуллаблы осилить, возможно, программирование - это не твое.
Аноним 06/10/21 Срд 09:56:10 #438 №2175259 
>>2174597
А я не шарю. Мы в Microsoft AX пишем. Я лично с этой системой не знаком (лол она ж в visual studio уже) а "мэтры-наставники" чет найти не могут таких утилит, вот мне и сказали писать ее. Хотя я в шарпе чуть лучше чем профан. Могу гит скинуть, поржешь с моего кода
Аноним 06/10/21 Срд 10:34:23 #439 №2175298 
>>2174985
Ну вообще эта херня вполне может быть непонятной для новичка. Сначала запилили нуллы, а потом дали костыль, чтобы выпиливать наллы.
Аноним 06/10/21 Срд 10:51:13 #440 №2175311 
>>2175259
Нихуя не понял. Что такое майкрософт ах?
Аноним 06/10/21 Срд 10:52:52 #441 №2175313 
>>2175311
Аксапта. Погугли. Хуйня на которой ERP-системы делают, на ЯП X++. Раньше была как отдельное приложение, щас как аддон к VS
Аноним 06/10/21 Срд 11:53:26 #442 №2175373 
https://github.com/OUTS1D3R047

Зацените мой гит, если хотите. Я не сильно шарю в кодинге конечно, но попытался сделать покрасивее. Прошу не слишком сильно меня херачить
Аноним 06/10/21 Срд 12:10:33 #443 №2175395 
>>2175373
- проекты принято делить не таким образом, можешь у джавистов посмотреть как желательно
- как открывать твой проект, если он состоит из двух файлов? Вьюхи и беханда для вьюхи? Даже csproj нема
- код написан курицой-лапой, банально форматировать весь файл через иде не можешь
- напрочь отсутствует архитектура, все насрано в одном файле
- в репозитории ключи не хранят
- скомпиленный проект тоже не хранят, для этого есть релизы на гитхабе и гит игнор
- код не поддается для расширений, все прибито гвоздями
- много аллокаций памяти бездумно
- не последний C#
- Newtonsoft.Json вместо System.Text.Json
- назвать переменную как l - это худшее, что могло прийти в голову
- результат http запроса необходимо проверять на возвращаемый статус код через метод EnsureSuccessStatusCode
- UI смешал с двумя языками
- такую обработку ошибок можно запихнуть в глобальный обработчик ошибок, а не дублировать одно и тоже через метод
- мусорные комментарии
Я бы тебя и на позицию трейни не взял.
Аноним 06/10/21 Срд 12:15:42 #444 №2175400 
>>2175395
Лол ну я ж просил...

Ну в принципе в чем ты не прав но все равно обидно, я старался, недели на это гробил.
Аноним 06/10/21 Срд 12:15:54 #445 №2175401 
>>2175373
> попытался сделать покрасивее
А получилась полная хуйня. Открыл, а там сразу пиздец. Во-первых, викинь нахуй Builded, для этого есть страница с релизами. Во-вторых, что за херня в исходниках? Зачем ты такую еблю придумал, почему весь проект не выложил?
>Создайте WPF-приложение с названием "Label Translator", в настройках целевой платформы выставите ".NET 5.0";
>Скачайте файлы из директории "For Dev" и замените ими соответствующие файлы в решении;
Ну это же пиздец. У тебя в локальном репозитории тоже половины кода нет, зато огромные блобы трекаются? Пусть тебе Yoskutik расскажет что такое гит и гитхаб. Код даже открывать страшно.
Аноним 06/10/21 Срд 12:17:10 #446 №2175404 
>>2175395
Насчет открытия, у меня в ридми все написано, я просто решил догрузить чисто те файлы с которыми работал и кспрож там есть


>>2175401
блобы?
Аноним 06/10/21 Срд 12:17:21 #447 №2175405 
>>2175400
>в чем ты не прав
Я всегда прав. Даже если я не прав, я все равно прав.
Аноним 06/10/21 Срд 12:17:55 #448 №2175406 
>>2175405
Как скажешь братан, энивей спасибо.

пойду плакать
Аноним 06/10/21 Срд 12:21:42 #449 №2175410 
>>2175404
>блобы?
>Binary Large Object — двоичный большой объект
гит он в основном для текстовых исходников, а ты туда экзешники и либы воткнул.
Аноним 06/10/21 Срд 12:24:37 #450 №2175417 
>>2175410
Так я же в ридми вписал цель своих действий

У меня вообще была следующая логика:

Я работал с теми файлами которые загрузил в папку For Dev а собранное решение в билдед

Если программисту впадлу самому работать то он скачивает папку билдед

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

В теории круто (как по мне), на практике вы меня разъебали (ну или ты один) и вроде бы за дело, но меня это задело так сказать
Аноним 06/10/21 Срд 12:30:08 #451 №2175423 
>>2175417
Обычно готовые билды заливаются куда-то в отдельное хранилище на которое потом ссылаешься в зависимости от версии/платформы/компилятра/проц.архитектуры.
Аноним 06/10/21 Срд 12:31:04 #452 №2175425 
>>2175423
У меня этого хранилища нет, решил сюда загружать поэтому (чтобы все в одном месте было). Думал круто будет...
Аноним 06/10/21 Срд 12:31:31 #453 №2175426 
>>2175423
Хорошо что меня на РАБоте еще пока не ебут за мой говнокод. Работает прога и норм
Аноним 06/10/21 Срд 13:12:26 #454 №2175475 
>>2175425
>У меня этого хранилища нет
Есть. Тебе уже писали - вклада релизов на гитхабе.
>>2175426
>Работает прога и норм
Так ты наверно один работаешь над своей прогой.>>2175417
>В теории круто (как по мне)
Нет. Круто это когда я написал
git clone foobar
и могу сразу работать над проектом, без диких танцев.
Аноним 06/10/21 Срд 13:16:51 #455 №2175484 
image.png
image.png
Помогите мне! Пишу расширение для VS. Нужно автоматизировать создание комментариев к коду. Установил СДК, создал проект, а дальше что? В гайдах создают toolwindow но я понимаю, что он мне не нужен. Какой extensible element взять из пикрилов? Туплю уже какой час... Спасибо если поможете!
Аноним 06/10/21 Срд 13:18:19 #456 №2175489 
>>2175475
Ну да один и работаю. Очевидно что к большому проекту меня не допускают. Так, пилю мелкие утилиты для упрощения работы сеньорам.

про фубары не знал и не знаю, поэтому делал как умел.
Аноним 06/10/21 Срд 14:38:38 #457 №2175591 
Антоны, что вы можете посоветовать почитать неводянистого по этому вашему новомодному неткору и мультиплатформе?
Я вот в душе не ебу, как работают треды на линуксе и каким образом thread scheduler в мультиплатформенных приложениях устроен...
Аноним 06/10/21 Срд 16:53:21 #458 №2175707 
>>2173879
Все по делу, тимлид - обезьяна.
Аноним 06/10/21 Срд 16:58:24 #459 №2175712 
>>2175395
>- Newtonsoft.Json вместо System.Text.Json
Ой бля.
Аргументировать сможешь?
Аноним 06/10/21 Срд 16:58:58 #460 №2175714 
Я очень давно не притрагивался к шарпу и уже не понимаю
Как в примере отсюда https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.taskfactory.continuewhenall?view=net-5.0#System_Threading_Tasks_TaskFactory_ContinueWhenAll_System_Threading_Tasks_Task___System_Action_System_Threading_Tasks_Task____
> var finalTask = Task.Factory.ContinueWhenAll(tasks.ToArray(), wordCountTasks =>
Вот это wordCountTask получает значение, я знаю, что это что-то очевидное, но уже не могу сообразить как, может кто помочь?
Аноним 06/10/21 Срд 17:00:39 #461 №2175717 
>>2175373
Ну там особо и оценивать нечего. По 1 файлу к просмотру в репе.
Ну старешься - молодец.
Но правда, начинать вкат с декстопа да и еще какой-то ЕРП - ну такое себе.
Аноним 06/10/21 Срд 17:01:24 #462 №2175718 
>>2175712
Легко, это дерьмо сложно поддерживать.
Аноним 06/10/21 Срд 17:02:19 #463 №2175721 
>>2175426
>Хорошо что меня на РАБоте еще пока не ебут за мой говнокод.
Нет. плохо. Для тебя же
Аноним 06/10/21 Срд 17:03:54 #464 №2175723 
>>2175718
Что там блядь поддерживать?
Давай, примеры.

А с System.Text.Json вот тебе пример: там нихуя не реализовано изкаробки, на каждые пол шага врпаво-влево (да и даже для банальностей, типа как с нулами) - пиши свое расширение нахуй. И вот где "это дерьмо сложно поддерживать"
Аноним 06/10/21 Срд 17:05:28 #465 №2175727 
>>2175723
Даю пример:
>там нихуя не реализовано изкаробки, на каждые пол шага врпаво-влево
+ проблемы с биндингами
+ хуевый перформанс
+ нет поддержки сорс генератора
+ иди нахуй

>пиши свое расширение нахуй
Говнокодер, кек.
Аноним 06/10/21 Срд 17:07:09 #466 №2175728 
>>2175714
>Вот это wordCountTask получает значение
Это лямбда, входной параметр которой - первый аргумент ContinueWhenAll.
Аноним 06/10/21 Срд 17:13:16 #467 №2175735 
>>2175728
Спасибо, Анон.
Аноним 06/10/21 Срд 17:31:15 #468 №2175744 
>>2175717
Да я сам и не хотел. Я админом хотел быть с уклоном в иб по профилю. Но не взяли никуда кроме как сюда. Говорю слава богу не ебут пока, и до учебы не доебываются

>>2175721
Я параллельно учусь. Если щас ебать начнут то это очень плохо
Аноним 06/10/21 Срд 18:29:40 #469 №2175787 
>>2175727
Проблемы у тебя с башкой.
Сорс генратор? Так это к пункту о перфомансе. Тоесть аргвмент один: перфоманс. И то тут спорно, если реализовать все фичи нютонсофта, то и перфоманс просядет.

В общем, с тобой все ясно- хуесос, прочитавший рекламный буклет мафкрософта.

С текст.жсоном- надеюсь взлетит. Но пока спорно.
Аноним 06/10/21 Срд 18:33:40 #470 №2175790 
>>2175787
>Сорс генратор? Так это к пункту о перфомансе. Тоесть аргвмент один: перфоманс.
Шесть аргументов превратил в один. Слился.
Аноним 06/10/21 Срд 19:02:31 #471 №2175821 
Почему для веба есть только ASP.NET и ни каких альтернатив? Почему его вообще используют? Мне кажется он не очень удобный, потому что надо соблюдать всякие глупые ограничения. Создавать "магические" типы файлов, которые он подхватывает и обрабатывает особым образом.
К примеру, в том же РНР нет ни какой магии. Всё файлы равнозначны и лишь программист с помощью кода определяет что и как будет исполняться.
Кроме того изучать ASP.NET очень долго. До окончания обучения невозможно написать даже простой сайт, потому что просто не понимаешь как этот монстр работает.
Аноним 06/10/21 Срд 19:09:31 #472 №2175828 
>>2175821
Что ты блядь несешь? Из альтернатив - та же ненси плюс куча других уровнем пониже.
Хочешь все сам делать - бери HTTPListener и делай, буквально будет как PHP. В HTTPListener'е тоже много магии? Бери сокеты и делай. Может быть в сокетах тебе магии много? Бери и хуячь драйвер и прямо из сетевухи перехватывай трафик, собирай из него tcp-фреймы, шли в ответ ACK и потом передавай уже приложению собранный пакет.
Аноним 06/10/21 Срд 19:17:22 #473 №2175836 
>>2175828
Там есть особые файлы, которые считаются основными шаблонами, а есть контейнерами. И разница между ними в тонкости написания имени файла. Я так до конца и не понял, потому что в книге про это мало написано. И вообще, я не чувствую творчества, меня просто тыкают носом и говорят делай так-то, без альтернатив. И в чём тогда тут программирование? Они тогда бы уж и писали полноценную CMS вроде WordPress, а "программист" бы просто оформлением занимался.
Аноним 06/10/21 Срд 19:18:54 #474 №2175838 
>>2175821
>Почему для веба есть только ASP.NET и ни каких альтернатив?
Из современного, есть три вида ASP: веб апи, мвс, разор. Из альтернатив есть например gRPC, но ты вебмакак не заставишь его использовать, им только GraphQL подавай с REST.

>К примеру, в том же РНР нет ни какой магии.
Ошибки на иврите и разнообразные странности как возможность найти длину числа пи.
https://phil.tech/2013/wtf-is-t-paamayim-nekudotayim/

>Кроме того изучать ASP.NET очень долго.
Пару раз нажал кнопку "далее" - сайт готов.

>До окончания обучения невозможно написать даже простой сайт, потому что просто не понимаешь как этот монстр работает.
Что ты такое изучаешь в асп, что до создания простого сайта уходит много времени?
Аноним 06/10/21 Срд 19:22:50 #475 №2175839 
>>2175836
>писали полноценную CMS вроде WordPress
Есть цмски на шарпе. Сайты-визитки можешь клепать на джумлах с вордпрессами.
Аноним 06/10/21 Срд 19:24:15 #476 №2175841 
>>2175836
>я не чувствую творчества
Ну так возьми сокеты и делай как тебе хочется. В чем проблема-то? Либа для вебсервера в духе go делается за 4 часа.
Аноним 06/10/21 Срд 19:24:22 #477 №2175842 
>>2175838
Я хотел начать с того, с чего начинал в своё время на РНР, а именно написать сайт-визитку с авторизацией, гостевой и динамическими темами.
Аноним 06/10/21 Срд 19:26:40 #478 №2175845 
>>2175842
И в чем сложность?
Аноним 06/10/21 Срд 19:27:34 #479 №2175847 
>>2175836
Творчество в чем ебать?
В создании шаблонных контролеров и в прописывании ручками "что-куда" есть творчество?
Творчество должно быть в реализации ТВОЕЙ бизнесс логики, а не изобретении Н-го способа создать екшн.
Тут скорее интересно наоборот изучать как они это сделали, как там всякие нейминг конвеншены работают и т.д. Для интереса их можно даже самому переопределить, но такой код - сразу на помойку.

В общем, сиди, учи, и пока не перди тут.
Аноним 06/10/21 Срд 19:27:57 #480 №2175848 
>>2175845
Сложность в начать.
Аноним 06/10/21 Срд 19:28:25 #481 №2175849 
>>2175848
Не начинай.
Иди нахуй.
Аноним 06/10/21 Срд 19:32:30 #482 №2175855 
>>2175847
Ну, допустим лично мне было в свое время свою библиотечку для работы с сетью писать, со всеми этими контекстами, диспечерезацией сообщений и проч-проч. Да и сейчас - посмотрел на гошечку и хочется чего-то в таком стиле но на шарпе сделать, типа чтобы:
http.Use(auth);
http.Bind(route, action);
хотя похожее уже в шестом дотнете сделали.
Аноним 06/10/21 Срд 20:03:41 #483 №2175889 
Почему Unity может создавать графические приложения для любой ОС, а на WPF можно писать только под Windows?
Аноним 06/10/21 Срд 20:12:57 #484 №2175897 
Это нормально, поднимать транзакцию к БД при каждом веб реквесте в начале и комитить в конце?
Тм ничего не полочится?
Аноним 06/10/21 Срд 20:15:39 #485 №2175903 
>>2175889
Потому что юнити делает конверт C# в C++ и на юнити C# другой. WPF изначально был для винды, его и не планировали пилить на кор.
Аноним 06/10/21 Срд 20:21:47 #486 №2175913 
>>2175855
>http.Use(auth);
https://docs.microsoft.com/ru-ru/aspnet/core/security/authentication/identity?view=aspnetcore-5.0&tabs=visual-studio#configure-identity-services

>http.Bind(route, action);
https://docs.microsoft.com/ru-ru/aspnet/core/mvc/controllers/routing?view=aspnetcore-5.0

перед тем как высиратсья и размышлять о творчестве, хотябы метаинт пройди, заебал
Аноним 06/10/21 Срд 21:08:55 #487 №2175966 
>>2175913
Чел, блядь, ты тупой или где? Я тебе, сука ты тупая, прямо сказал чего я хотел бы намутить в свободное, блядь, дебила кусок, время(net/http из го, потому что он красивый и удобный для наколеночных решений, и даже minimal api это не то). Ты серьезно думаешь, что я работая 5+ лет не знаю про то что уже есть во фреймворке? Серьезно, блядь? Корона не жмет? Все ж вокруг дегенераты, которые нихуя без тебя нагуглить не могут и только и делают, что массивы перебирают, да в жопе ковыряются.
Охуеть, блядь. Пиздец. Хтьфу в ебало. Хптьфу.
Аноним 06/10/21 Срд 21:27:51 #488 №2176003 
>>2175966
Хуя бомбаж.
Ну по твоим размышлениям о "вордпрессах", ПХП и "творчестве" было очень похоже на вкатуна, который метаинт не осилил и орет о "сложна дайте как в ПХП(((". Да и посмотри тред, тут каждый второй вопрос гуглится в минуту.
Прастити, извинити, что обидел почетного деда.
Аноним 06/10/21 Срд 21:34:11 #489 №2176018 
>>2176003
Анонимная борда, няша. Не я жаловался на то что ASP - сложный. Я просто сказал что весело в свободное от работы время что-то самому пилить.
Аноним 07/10/21 Чтв 08:05:41 #490 №2176415 
>>2165540 (OP)
Стоит ли для опыта поработать WPF разрабом или продолжать искать бэкендерские вакансии?
Аноним 07/10/21 Чтв 10:17:14 #491 №2176479 
>>2176415
Стоит поработать Scala разрабом
Аноним 07/10/21 Чтв 10:42:06 #492 №2176493 
>>2176479
Это же из джавы вообще
Аноним 07/10/21 Чтв 11:15:10 #493 №2176526 
>>2175903
И зачем тогда они городили эти огороды с виртуальными машинами, если по факту ни какой кроссплатформенности нет? Я вот хотел писать десктопные приложения, чтобы они работали на всех ОС.
Аноним 07/10/21 Чтв 11:16:33 #494 №2176528 
>>2176526
Твои десктопные приложения никому не уперлись. Ха-ха.
Аноним 07/10/21 Чтв 11:24:34 #495 №2176539 
>>2176526
>с виртуальными машинами, если по факту ни какой кроссплатформенности нет?
Как будто виртуальные машины только для кроссплатформенности делают.
>по факту ни какой кроссплатформенности нет?
Её не было в фреймворке, в коре она по факту есть. Почему не делали сразу - вопрос к майкам. Если ты начнешь дергать винапи в своей программе кроссплатформенность изчезнет вне зависимости от используемого стека.
>десктопные приложения, чтобы они работали на всех ОС.
Ну так и пиши Xamarian.Forms/MAUI, Uno, Avalonia плюс в предыдущик тредах еще какие-то откапывали, пошукай если интересно.
Аноним 07/10/21 Чтв 11:32:16 #496 №2176552 
>>2176493
это который скрипт?
Аноним 07/10/21 Чтв 12:04:09 #497 №2176580 
>>2176552
Который камень
Аноним 07/10/21 Чтв 13:18:11 #498 №2176651 
Когда там выходит новая студия? Нужно ли переходить с 2019 на 2022, чтобы были доступны все модные фишки .Net?
Аноним 07/10/21 Чтв 13:36:23 #499 №2176666 
image
>>2176651
>Когда там выходит новая студия?
В ноябре.

>Нужно ли переходить с 2019 на 2022
Писать на последнем шарпе с последним кором можно уже сейчас, если не вс. В вс2019 есть некоторые фишки вс2022.

Страдать будут только те, кто не может себе позволить установить на системный диск несколько инстансов вс и еще сверху всякого говна.
Аноним 07/10/21 Чтв 13:53:46 #500 №2176690 
Почему раньше, программируя на 8-разрядных ЭВМ, можно было, используя небольшие базовые знания об архитектуре этой ЭВМ, писать программы любой сложности. Теперь же, чтобы просто вывести пиксель на экран надо изучать монструозные библиотеки и фреймворки с документацией на тысячи страниц. Самое смешное, что даже в этих тысячи страниц авторы могут не упомянуть о способе вывода пикселей на экран.
Если раньше все программы были едины в своей концепции исполнения, то теперь есть разделение на консольные, декстопные и веб приложения. Если я создал консольное, то лишаюсь возможности графики и веба. Если графическое - то должен вывернуть логику программы наизнанку, подстроив под событийный механизм. Извините, а если мне нужно вычислять непрерывный процесс и параллельно визуализировать его результаты, то получается я не могу этого сделать? Ведь мне надо постоянно возвращать управление. Если идёшь в веб, то там вообще не понятно как это всё выполнять вне IDE и где дают полноценный хостинг под такого монстра.
Аноним 07/10/21 Чтв 13:57:47 #501 №2176696 
Анон, я работаю с блазором с клиент вебасембли и беком который хоститься на в сервере.
у меня проблема подключить к этому сигналР, насколько я понимаю они все так же коммуницируются через сигнал р как и обычний блазор, только вот он у меня не работает с коробки, я понял как с вебасембли отправить сигнал на сервер но мне нужно еще с сервера тригернуть вебасембли, кто работал с такой архитектурой, можете подсказать куда рыть?
Аноним 07/10/21 Чтв 14:00:51 #502 №2176702 
>>2176690
А вот и шизик в треде объявился!
Аноним 07/10/21 Чтв 14:27:03 #503 №2176721 
>>2176690
>с документацией на тысячи страниц
Это не ты недавно заявился с книгой программиста-анальника, который описывал несколько классов из коробки парой абзацев?

1. Разработка не делится на консоль, декстоп и веб.
2. Консоль позволяет работать с графикой и вебом.
Аноним 07/10/21 Чтв 14:33:40 #504 №2176725 
>>2176696
>можете подсказать куда рыть?
Почитать про сокеты, так как у тебя нулевое понимание о них. Если ты получил соединение с клиентом, то у тебя как минимум есть ссылка на это соединение. Так сложно у класса вызвать метод SendAsync?
Аноним 07/10/21 Чтв 14:41:57 #505 №2176733 
>>2175897
Смотря какую бд используешь и какой уровень изоляции. Попробуй постгрес.
Аноним 07/10/21 Чтв 14:49:56 #506 №2176741 
image
>>2176736 (OP)
>>2176736 (OP)
>>2176736 (OP)
>>2176736 (OP)
>>2176736 (OP)
ПЕРЕКАТ
Аноним 07/10/21 Чтв 15:36:03 #507 №2176783 
>>2176741
Ты долбоеб?
Аноним 09/10/21 Суб 22:12:07 #508 №2178797 
image.png
>>2165540 (OP)
Пацаны насколько так норм писать я про возвращаемое значение и сахар? логика если что вынесена вся
Аноним 10/10/21 Вск 00:44:37 #509 №2178942 
>>2178797
Ты пустой ок возвращаешь.
В данном методе ты не должен 404 возвращать. Возвращаей пустой массив c 200-той. Ну или 204 на крайняк, если хочешь.
Роут не долже н быть "олл", просто ГЕТ юзерс/
Аноним 10/10/21 Вск 13:35:49 #510 №2179229 
>>2178942
это я исправил Ok(listCustomers);
Аноним 10/10/21 Вск 13:36:09 #511 №2179230 
>>2178942
спасибо
Аноним 18/10/21 Пнд 16:26:00 #512 №2186815 
>>2178942
в своих проектах в возвращаемом типе в контроллерах вместо Task<ActionResult<T>> я указываю IActionResult. Это норм?
Аноним 19/10/21 Втр 01:16:36 #513 №2187283 
>>2186815
так дядя, Task<ActionResult<T>> это для асинхронности что бы сделать запрос асинхронные и отдать какой то статус код обратно, а у тебя IActionResult просто void без получения со статусом кодом
Аноним 22/10/21 Птн 21:44:49 #514 №2190760 
>>2173145
> МВЦ и РазорПагес разные вещи
Это одно и то же, чувак. И построены они по модели MVC. И всё, что тебе надо, чтобы они заработали - прописать одну команду в startup.cs.
Аноним 28/10/21 Чтв 14:40:48 #515 №2196049 
>>2187283
IActionResult может отдавать статус код через return Ok(), Unathorized() и тд
comments powered by Disqus

Отзывы и предложения