Вы видите копию треда, сохраненную 16 мая 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Литература вторым постом
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
— 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
— 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
Шапка протухнет к следующему перекату.
Ну блин хуита на оп пикче
Я знаю. Не голых же девок добавлять.
у меня проблема подключить к этому сигналР, насколько я понимаю они все так же коммуницируются через сигнал р как и обычний блазор, только вот он у меня не работает с коробки, я понял как с вебасембли отправить сигнал на сервер но мне нужно еще с сервера тригернуть вебасембли, кто работал с такой архитектурой, можете подсказать куда рыть?
Стандартную кортинку добавляй как пре предидущем треде. И вторую уж на выбор или нахуй.
Что-то тут обсуждают или дедовские декстгпы или хипстоблейзоры.
Что стало с этим миром, где няшный асп?
Где вы вообще проекты на блейзорах находите? Ладно декстоп- легаси махровое поддерживать надо
очень просто, халява, сказал шефу что если делать все на блазоре тогда весь код будет выполнятся на устройствах пользователя и можно экономить на серверах. у него аж глаза загорелись вот и сказал мне учить теперь блазор, вот сижу теперь лениво пинаю двачь.
мань, я таких ответов могу сколько хочешь дать, и даже не будучи експертом, вот смотри, не понимаешь квантовую механику? иди четах квантмех, не понимаешь достоевского? иди читай литературу, хочешь разобраться в орбитальной механике? ну ты понял куда тебе, а теперь угадай куда тебе надо пойти с если ты не знаешь что по существу сказать? правильно, тебе нахуй!
в общем пикрил пробую отослать что-то на хаб,
второй пикрил хаб которому хочу отпарвить
тертьий пикрил то что должно выполнятся после ответа хаба
Первый - это легаси под Framework, второй актуальный под кор/дотнет
Тогда какую книжку читать?
Фримен А. - ASP.NET Core MVC
Фриман А. - ASP.NET Core MVC 2
Сандерсон С - ASP.NET MVC3
Джеффри Палермо - ASP.NET MVC 4
Я так понимаю, что надо по порядку читать или можно сразу с MVC 4 начинать? Стоит ли ждать MVC 5 или MVC 6?
читай то что тебе прийдется использовать, если ты ньюфег вкативальщик тогда сразу 4
Хз какой ты ответ ожидаешь. Оно работает ровно так, как я описал: принял коннекшен, отправил меседж когда захотел на сокет. Сигнал р - это про открытое постоянное соединение.
Не клауд с вами, дегродами, обсуждать же, которые не могут найти на свой говновопрос решение первой ссылкой поисковика.
устройся стажером, у меня друг устроился стажером вообще без знания программирования, даже без вышки по специальности.
Вкатиться можно легко просто будь готов что по началу работать будешь за еду
Да ты охерел. В твоем изначальном вопросе одна вода была.
>я работаю с блазором с клиент вебасембли и беком который хоститься на в сервере
Ты бы еще написал, что срешь сидя.
А как это происходит? Ему по Skype говорят что делать и он пишет прогу у себя, потом архивирует в zip и отправляет по e-mail?
Я думал что это распостраненная проблема, потому что изначально в вебАсембли не прикручен сигналР, без сервера он не нужен же, я ставил его вручную через нугет, потому и спросил как народ это делал потому что есть подозрение что я в чем-то простом налажал
нет, он приходит в офис и ему сеньоры дают студенсткие задачки по типу пикрила
и получает он за это 85 кусков на руки между прочем
Мне наоборот сказали, что программисты все работают на удаленке и не надо ни куда переезжать. И получают дофига, что в моей мухосрани за год не заработаешь.
это когда ты мидл как миниму, а ты даже не джун, ты только хочешь стать стажером
лол, на 10 сек опередил
>Я думал что это распостраненная проблема
У тебя на скрине общая ошибка. Она нехуя не означает. Скорее всего ты ссылку испортил.
>потому что изначально в вебАсембли не прикручен сигналР
СигналР никуда изначально не прикручен и работает поверх вебсокетов.
>без сервера он не нужен же
Тебе ничего не мешает использовать его без сервера.
>я ставил его вручную через нугет
Какая разница как ты его ставил?
>спросил как народ это делал потому что есть подозрение что я в чем-то простом налажал
https://docs.microsoft.com/en-us/aspnet/core/tutorials/signalr-blazor?view=aspnetcore-5.0&tabs=visual-studio&pivots=server
Руки значит из жопы растут.
Что я посмотрю? Я вижу, что моя прога файл лочит, мне нужно посомтреть, кто внутри проги это делает
Чел, ты троллишь?
Ты абсолютно так же можешь на любом языке хуячить программы любой сложности. Никакого деления на десктопные-консольные-веб-мобильные нет.
> Извините, а если мне нужно вычислять непрерывный процесс и параллельно визуализировать его результаты
Ты точно троллишь. Я просто не поверю что чел даже уровня джун такую хуйню сморозить мог.
Ты тралишь? Меня или шефа?
1. Накатываешь SP1 на свой кусок говнашиндовс 7.
2. Скачиваешь и устанавливаешь точка нет 5
3. Копируешь скопиленый асп нет коре на шиндовс
4. Пишешь в консоль дотнет рун моя.прога.длл
Можно без иисы запускать, потомушо еще есть селфхост кестрал, который даж хттп2 тянет.
От проекта зависит. Если слишком много слоев, очень быстро заебешься вручную мапить яблоки в бананы. Из вменяемых альтернатив: ручной маппинг и сорс генератор/т4, но с последним будут сложности при сложном маппинге.
> сорс генератор
А есть уже решения?
Видел какое-то говно, но оно платное. Тип кста люто обсирает автомапер.
Я вообще думал в этих ваших новых код генераторах это сделать и ебошить как имлицит конверт в помеченные классы. ПОка н епредставляю себе обьем задачи.
>А есть уже решения?
Нет, пиши свое на коленке или жди когда что-то похожее запилят.
>ПОка н епредставляю себе обьем задачи.
Что-то простое сделать за вечер можно, но есть подводные камни.
>Мне наоборот сказали, что программисты все работают на удаленке и не надо ни куда переезжать
Все правильно тебе сказали. Только ты то ещё не программист, сечешь? Сначала нужно стать программистом, а потом - устраиваться на удаленку.
Как ее привести не самым всратым образом к "Иванов Иван Иваныч"
???
Нашёл строчку, которая лочит файл
Document = (FlowDocument)XamlReader.Parse(docString);
Но это не фиксится, похоже
Фигли ты вообще XamlReader используешь?
Как оно может лочить файл, если оно принимает уже прочтенную строку? Может ты обосрался и не закрыл файл? А?
Помогите мне! Пишу расширение для VS. Нужно автоматизировать создание комментариев к коду. Установил СДК, создал проект, а дальше что? В гайдах создают toolwindow но я понимаю, что он мне не нужен. Какой extensible element взять из пикрилов? Туплю уже какой час... Спасибо если поможете!
Кастомную команду возьми, а еще лучше глянь сорцы любого расширения на комментарии.
Вот объективно, хорошая ли это технология для шиндоус UI?
У меня самого один маленький проект на нём есть, ну я так и не понял, годнота или нет, точнее есть ли профит юзать вместо форм.
>Объясняю как работает программирование.
>1. Заходишь в гугл
Напрягся
>2. пишешь "C# capitalize first letter of word".
Выгорел
>3. Просматриваешь первые 1-5 результатов и выбираешь наиболее подходящий
Между каждым просмотром сбегал покурить и чекнуть тиктоки.
>4. если надо правишь детали под свою задачу.
Догорел
>5. ...
Устроился сархитектором и только рисую кортинки.
Во, нормальная тема пошла.
Привет. Ты чо охуел?
Мимо кор 3 (ждем ЛТСа от 6-того), ежур фанкшены, онгуляр - энтерпрайзная тварь.
Ну, у нас тестировщики тестовые утилиты на нем пишут...
Легко. Не тоже самое.
Ну, у шарпа нет такого зоопарка технологий. Так что не сложно. Про то же самое - это не так.
>у шарпа нет такого зоопарка технологий
Но только не для desktop UI:
>WinForms
>WPF
>Xamarin
>UWP
>MAUI
Это ещё не считая Avalonia/Uno.
Эх. Забавно во всем этом то, что пока учился в вузе - считал впф - топовой хуйней. Но как пришел работать и поработал примерно годик бекендером - винформы такой-то охуенной няшей стали. Вот буквально - нужно какую-то тулзу быстро написать - хуяк-хуяк и тулза готова.
Замарин - пиздец отвращение после первого места работы вызывает, после тесного знакомства с ним. Просто потому что на 2016 год - шаг влево-варпаво от чего-то стандартного - все, пизда.
UWP - потрогал, вроде как WPF только уродливый.
MAUI - не понравился, плюс как слышал там под капотом замарин, а замарин все еще флешбеки вызывает.
Короче, топ - формы. ВПФ - не топ, но там стандартизация и ксстомизация хорошие.
А почему WPF не зашёл? Я вот смотрю вроде XAML юзают много где, напримем всякие Noesis GUI.
Ну я собственно, как раз работал с винФормами и считал их для быдла, на небольшом проекте мог выбирать, и выбрал WPF.
У меня там был особый кейс - Bootstrapper Installer, поэтому я нихуя не понял правильно ли я MVVM там заюзал.
Конечно оверинженирингом чучуть попахивало, особенно когда нужно было highlight цвета у элементов менять дефолтные через templates.
Ещё так и не смог пофиксить через XAML очень маленькую мертвую зону у чекбокс элементов для клика (примерно 1-3% пикселей слева, вверху и снизу) внутри листа, как же я там заебался.
Ну во-первых надо вывести параметр в метод string type в enum.
Во-вторых чтобы избавиться от if-оф можно погуглить, я чаще всего юзаю метод как на пик1
Я бы что-то типа такого сделал.
В целом отправлять по api какому-то хую просто, однако сами требования заказчика усложняют всю картину. Суть такова:
1. Есть папка с файлами
2. Туда работник завода кидает файлы
3. Программа отслеживает эти файлы (сканирует папку по таймеру)
4. Если файлы есть - отправляются
1. Есть чел который принимает эти файлы, он тоже может кидать в ответ какие-то файлы
2. С api я получаю эти файлы
3. Скачиваю в выбранную директорию
Так же, юзер проги может настраивать первую подпрограмму (выбирает путь до директории, таймер сканирования, сканировать ли вложенные директории)
Всё это говно логируется в программе (типа как консоль, чтобы просто смотреть состояние текущее программы, отправились ли файлы, отправляются ли в принципе, есть ли новые)
Я не понимаю, как мне правильно организовать MVVM, чтобы настраивать первую подпрограмму (необходимо открыть окно, чтобы настроить). Но ведь следуя паттерну mvvm, то viewmodel не знает о view, а значит и никакой передачи данных между окнами быть не может. Как мне правильно организовать это всё?
>сканирует папку по таймеру
https://docs.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher?view=net-5.0
>Всё это говно логируется в программе
Логгировать как минимум надо в файл.
>передачи данных между окнами
У тебя проблема в передаче данных между окнами? Так не надо срать в VM.
Как кайф так и организовывай.
По факту, когда не знаешь КАК ПРАВИЛЬНО ОРГАНИЗОВЫВАТЬ - значит что ты не знаешь как решать задачу и считаешь что если тебе объяснят как правильно организовать - у тебя волшебным образом появится понимание того как делать задачу.
Отслеживание папки и логирование - это я уже сделал. Проблема в том, как всё это настроить через отдельное окно, а так же как у меня будет выглядеть VM в основном окне, в котором и будет запускаться процесс сканирования папки + отслеживания новых файлов от заказчика. Это ведь две разные вещи, а значит и две разные ViewModel. Как я могу забиндить 2 ViewModel к одной View? Правильно ли это?
В основном окне у меня "под капотом":
1. Сканирование папки + отправка исходящих файлов
2. Сканирование папки "входящие" на сайте + скачивание если появились новые
3. псевдо-логирование + вывод лога в основное окно программы. Например появились файлы в папке, в программе вывелось "новые файлы" и это же записалось в файлик который будет жить 24 часа.
Я могу сделать какую-нибудь хитровыебанную ViewModel в которой в конструкторе будет запускаться методы из разных Model (WaitDirectoryChange(), WaitIncomingFilesChange(), StartLog()). Но правильно ли это? Так помимо запуска всех этих методов, мне их еще и настроить надо через отдельное окно, а как передать данные между окнами?
>Отслеживание папки и логирование - это я уже сделал.
Сделал через жопу же.
>а так же как у меня будет выглядеть VM в основном окне
Да никак, примитивное управление потоком выполнения между V и логикой.
>Это ведь две разные вещи
Это к VM вообще отношение не имеет.
>Как я могу забиндить 2 ViewModel к одной View?
В чем сложность? Можно хоть 100 привязать или сделать аналог шаблона Composite.
>Правильно ли это?
Хз, код де? Звучит как говнокод.
>Но правильно ли это?
Хитровыебанный код = неправильно.
>а как передать данные между окнами?
Не хранить говно как сканирование папки и отправка файлов в VM. VM - это не управляющий элемент.
>В чем сложность? Можно хоть 100 привязать или сделать аналог шаблона Composite.
Не знаю как это сделать, я только начал изучать MVVM. Можешь пожалуйста скинуть на статью какую-нибудь где биндят несколько VM
Не хранить говно как сканирование папки и отправка файлов в VM. VM - это не управляющий элемент.
А где мне всё это запустить? У меня есть Model c методами отслеживания папки. Где мне метод отслеживания запустить?
Тебе надо изучить такую херь как DI: https://stackoverflow.com/a/25524753
>А где мне всё это запустить?
Ты нарушаешь единственную ответственность в солиде, превращая свою VM и M заодно в свалку. Создай отдельный класс/классы и вызывай его метод из VM.
И данные надо хранить где-то, в оперативной памяти например. Но никак не в VM, тогда проблема передачи данных между окнами сама отпадет.
Просто чем дальше - тем больше у меня мыслей о том чтобы перекатиться на линукс. Тем более что там теперь можно на шарпике кодить без особых проблем.
Я могу данные сохранить в бд, а потом по триггеру достать их в виде модели. Это норм? В оперативке так себе хранить настройки программы, тогда они сохраняться не будут.
Я правда не умею работать с триггерами.
>>178121
Создай отдельный класс/классы и вызывай его метод из VM.
Всё это говно должно запускаться всё само без участия человека. Запустил программу -> всё само уже там где-то чето там отправляется сканируется хуируется итп.
Я просто не понимаю, как мне настроить метод отправки файлов в гл. окне через окно настроек ебаных
>Я могу данные сохранить в бд
Похуй где.
>Это норм?
Нет.
>Всё это говно должно запускаться всё само без участия человека.
Тебе ничего не мешает насрать все вообще в окне без MVVM. Сути это не меняет, твой код говно.
>Я просто не понимаю, как мне настроить метод отправки файлов в гл. окне через окно настроек ебаных
1. Не хранить данные в VM
2. Не хранить данные в моделях
3. Хранить данные в других классах на другом слое кода, который про твой MVVM и WPF нехуя не знает.
> Я просто не понимаю, как мне настроить метод отправки файлов в гл. окне через окно настроек ебаных
Держи, няша, можешь не благодарить.
Ну блин. Чел же дурачка из себя строит.
По факту - сделать обычный сервисный класс с настройками. Его заригестрировать в контейнере как синглтрон. Классы которым нужно какие-то настройки получать - в конструкторе этот класс получают. При выполнении логики просто берут актуальную на данный момент информацию. Все. Изи-бризи. Не, чел вон, бд зачем-то хочет присобачить и доставать из бд при каждом изменении настройки. Хитро, что пиздец.
>Не, чел вон, бд зачем-то хочет присобачить и доставать из бд при каждом изменении настройки. Хитро, что пиздец.
Так если программу закрыть, то настройки не сохранятся
Это наверное тот, кто недавно говорил "нахуй ваши консоли, я нашел книгу по декстопу".
Так это логично, что настройки сохраняются. Еслиб у тебя настройки браузера слетали нахуй каждый раз, было бы прикольно?
Не логично. Если это архиватор, то зачем ему настройки? Или ffmpeg. Таких программ миллион.
Яндередев, ты?
Во-первых, а может и не надо сохранять.
Во-вторых, если таки надо сохранять - ты это уже в логике настройки делаешь. Какая нахуй разница клиенту как эта настройка получена и откуда она взялась?
Ну как. Из коробки их нет. Можно ставить нугетом.
Просто если человек задает такие вопросы, то очевидно же что он не знает ни про какие IOptions.
Я не понял, тут предлагается, по таймеру, каждые N миллисекунд хуярить запрос к диску? Что за пиздец? Или в 2к21 это нормально?
Что мешает сделать событие при закрытии программы, которое сохнарит настройки?
>Тебе ничего не мешает насрать все вообще в окне без MVVM.
Во многих случаях именно так и надо делать. Если весь твой код занимает меньше 10к строк кода, то только так.
А то долбоёбы начитаются про паттерны и давай городить хуйни на трёхкнопочное приложение.
Ты про сетевую папку ничего не говорил.
У меня есть пара программ на меньше 10к строк кода, которые ты не сможешь поддерживать.
Ну, исходя из того что тот анон описал - он так и делает.
Выше ему посоветовали FileSystemWatcher
Что будешь делать, если у тебя два инстанса проги?
Как напишешь тесты на свой сиглтрон?
Мне не нужна сетевая папка. У меня 2 разные вещи
1. Входящие: файлы лежащие не на моем сервере, а на сайте какого-то говна (я с помощью апи получаю их)
2. Исходящие: файлы лежащие в папке на локальном пк, отправляю их по апи какому-то челу и они у него появляются на сайте
Ну например я когда-то написал код на VBA для Excel, которому уже лет 10. Который представляет из себя один единственный метод на несколько тысяч строк кода. И каким-то образом, даже далёкие от программирования люди понимают, что и как он делает, и пользуются им уже многие годы и передают другим, вносят свои правки.
Может то были сишники? У них в порядке вещей писать большие методы.
Ок, синглтон с ConcurrentDictionary
Хотя аймеморикеш подойдет если в будущем есть планы перейти на какой-нить редис.
Как ты собираешься удалять значение из ConcurrentDictionary спустя заданное время? Или как ты уменьшишь размер ConcurrentDictionary при инвалидации огромного числа записей?
Мб у меня на работе по даунски меморикеш юзают.
Потому что в нем хранятся данные в виде memoryCache.Add("UserCacheConstant", new Dictionary<userid, User>)
Ладно, спрошу у лида в понедельник почему так.
Ну вдруг он мой лид, а его Русланом зовут.
Учитывая, что люди могут заходить с телефона, домашнего и рабочего ПК, то скорее всего реальных людей ещё в 2 раза меньше.
>Потому что в нем хранятся данные в виде memoryCache.Add("UserCacheConstant", new Dictionary<userid, User>)
Уебанство какое-то.
Как вы группируете кеш для массовой иерархической инвалидации?
Допустим, мне надо инвалидировать ВСЕХ юзеров, если, например, роль какая-то удалилась или типа того.
Есть какой-то годный снипет? Знаю, что через кенселейшн токены можно там наворотить, но когда прошлый раз пытался сделать красиво - где-то я завтыкнулся и бросил.
Хм. А кенселейшн токены, вообще будут работать с распределенным кешем?
Чевоблдяь?
Так вот. Что я хочу. Я хочу генерировать классы-модельки для вот таких вот документов. Ну, т.е. допустим я запускаю программулину, указываю путь к файлику, если все ок - генерируется пачка файлов(
ну, типа в контексте картинки:
//ModuleName.Person
public enum Sex{
male = 0,
female = 1
};
public sealed class Company{
public VisibleString Name {get;set;}
public VisibleString Departamet {get;set;}
}
)
с модельками того что мы там подастовали и DLL которую я бы мог использовать по необходимости.
Так вот. Я не совсем понимаю как это делать, лол. Потому буду рад любым советикам.
ааа, потому что я долбоеб. finally не омитает эксепшены.
А, понял. Но все равно геморно, ибо создавая список нужно перед каждым типом typeof писать.
Студентота и прочая перхоть идет нахуй инста, нужны мнения тех, кто с этим работал. Урлы на MSDN тоже кидать не нужно, гуглить научен
>гуглить научен
>базовые тупые вопросы.
>Что можно почитать/потыкать?
Попробуй гугл и MSDN. Урлу кидать не буду, как ты и просил.
Екстеншн на обжект, который пригодится, скорее всего, в одном месте. Ну такое.
И тогда уж IsOfType IsIn
Почему?
Иногда шарпе не хватает, чего-типа тайпскриптовой структурной типизации.
Так бы он сделал int | long | double да и усе.
Спасибо. Схороню. Не совсем то что хотелось бы, но на безрыбье.
>>178859
Никакой конкретной. Просто задумался на тему, решил поспрашивать советов мудрых.
>>178873
А в чем проблема проверок типов? Вот допустим у меня есть женерик метод который я хочу ограничить несколькими примитивными типами. Но ограничения женериков не работают с примитивами. И какие есть опции кроме проверки типа внутри метода?
>>базовые тупые вопросы.
чекни мать, если InMemoryCache это базовый вопрос. Решеточный тред как обычно полон сопливых выпердышей, которые только тригеры кидают
>женерик метод который я хочу ограничить несколькими примитивными типами
Какие общие методы у них ты хочешь использовать?
Один ты дартаньян.
Нет - ты пидорас. Исходный код - есть, сиди смотри. Пришло говно с претензиями в первом же посте с говновопросом и права качает. Пососи хуя
Если тебе для нумериков, то ради интереса, можешь сюда глянуть
https://devblogs.microsoft.com/dotnet/preview-features-in-net-6-generic-math/#generic-math
Малютка, сдристуна оформил отсюда, не порти воздух.
>определили
у сисярп даунов раздвоение личности? И почему ты так бомбишь? Поди понимаешь, что стэк, в которым ты повяз это кусок бесполезного кала (за исключением сдачи лабы в шараге). Сочувствую, хули, такова судьба лохов. Делфи и даже паскаль адепты (внезапно) до последнего отбивались от ссаных тряпок, настала очередь сисярп даунов. Такова судьба, ничего не поделать.
Пидорас, сьебывай молча. Твое место у параши утверждено. С первого раза ты не понимаешь, бывает.
А в чём проблема с Делфи? Мы в конторе до сих пор его юзаем сайд-бай-сайд, так сказать, новый WPF и тот же старый Делфи, да тулзы может быть уже устарели чучуть на нём, но проект хороший.
Это папка publish?
Вот так генерит только exe и pdb в ней:
publish -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeAllContentForSelfExtract=true -c Release
Есть программа, заполняющая значениями из базы данных по ID...
Но там проблема, что некоторые поля опциональны (могут быть null).
Если заполнять данные в контроллере, то логично, что вылетает с ошибкой. Какие варианты есть? Кроме создания двух view с разными полями?
Маппить бананы в персики.
Так вот. Я сделал. Но меня вот что смущает. Вся настройка сервиса происходит через json-файлик. И вроде ничего страшного. Типа его один раз настроил и он себе запускается при старте системы. Но первый запуск для пользователя - нужно прочитать инструкцию, потом полезть в файлик и настроить как тебе надо.
Я думаю о том чтобы выпросить недельку(да, беру с запасом) и сделать настройщик. Ну, простенькое винформ-приложение, которое просто откроет этот же json, пользователь настроит как ему надо, сохранит но это будет с графическим интерфейсом и типа удобнее.
Стоит ли это того? Вот кто-нибудь тут для телекома пилил демоны на шарпе? Как у вас вообще поставка клиентам осуществляется? Потому что у меня это выглядело как: клиент дает доступ к виртуальной машине, я подключился, закинул все, настроил и пошел по делам, что довольно выглядит геморно если в дальнейшей перспективе смотреть.
Сделай установщик воркера. Например nsis или nuke.
>@if (Model.Something != null) ?
Так ошибка вылазит прямо в контроллере
>Вообще непанятна, что тебе надо?
Заполнять документ для печати. Есть хозяин, а есть доверенное лицо. Но хозяин есть всегда, то доверенное лицо может и не быть.
>Какая модель-то?
DTO
>Так ошибка вылазит прямо в контроллере
Ну так в контроллере и ифай, ебана.
Ну или да, как выше посоветовали маппер какйо-то заюзай. Автомаппер там или типа того
>Ну так в контроллере и ифай, ебана.
Ну ифаю? И что дальше делать, если объект всё-ровно посылать надо
Ну так посылай, ебана.
На вьюхе еще раз ифай.
Если у тебя можно выделить несколько типов - да, отдельные вью или паршиал вью. Можешь паршиал вью с екшеном создать и уже в нем домапливать. Но все это хуита.
Система тяжёловесная, требует какие-то специфические хостинги, когда РНР практически везде стоит по-умолчанию. Для разработки не достаточно простого текстового редактора, а надо грузить платную ИДЕ от Микрософт. Винда онли.
Если в РНР всё работает по-честному и можно самостоятельно разобраться в работе фреймворка, то в АСП присутствует магия, когда некоторые вещи работают волшебным образом за счёт скрытых механик.
В РНР полная свобода творчества, а в АСП - жесткие ограничения. Одну палочку удалил и весь сайт перестаёт работать по необъяснимым причинам.
>ASP.NET
Легковесная система, запустится на кофеварке, в топах бенчмарков.
>надо грузить платную ИДЕ от Микрософт
Есть как бы другие иде. Есть иде в браузере. Есть Cloud9 например.
>можно самостоятельно разобраться
Да пошел ты, давай не глядя в гугл, что означает T_PAAMAYIM_NEKUDOTAYIM.
>некоторые вещи работают волшебным образом за счёт скрытых механик
Я тебе уже приводил пример вычисления длины числа пи на пхп.
>В РНР полная свобода творчества
Запусти мне свой пхп в серверлесе без мозгоебли.
>Одну палочку удалил и весь сайт перестаёт работать по необъяснимым причинам
Только на днищенских проектах ты все в одном лице.
>Только на днищенских проектах ты все в одном лице.
Ну или без понимания примитивнейших вещей. Удалил он палочку в клиенте сигналр при касте к абсолютной урле.
Какую бд сейчас чаще всего юзают на проектах, postgresql?
Она обычно не используется как основная бд. Но может встречаться. Чаще всего в CQRS.
Вот мой пример:
1 % 2
и 1 & 1
Дают один результат почему?
Как научиться пользоваться этим как господь?
>Как научиться пользоваться этим как господь?
Книгу по дискретной математике выучить.
>Дают один результат почему?
Потому что в двоичном представлении все нечетные числа закачиваются 1 в 0 разряде.
Я тут немного подумал. Если хочется совсем по хардкору, то есть еще книга по схемотехнике.
>вам не грустно от того как 11 выглядит?
Нет.
>перекатиться на линукс
Люди из этого порой делают пиздец какое событие. Отрезать кусок диска и накатить какую-нибудь бубунту дело получаса. Поплачешь и вернешься назад, будет весело от вида 11
>>180220
Что за хуйню ты несешь? Есть побитовое смещении >> и <<. для битовых операций и преобразований хватит школьного учебника информатика. А вот это - 1 % 2 - остаток от деления - примерно 3ий класс.
Есть тут человек который реально что-то делает? Особенно интересуют пет проекты (но не уровня калькулятора)
>Что вы делаете на шарпе?
Энтерпрайз.
>Сайты на асп?
Нет.
>Игры на юнити?
Нет.
>Десктоп приложения?
Нет.
Так dotnet и C# в частности это наиболее адекватное, что есть сейчас на рынке для быстрого и удобного создания каких либо сервисов и как дополнение к С++.
У меня на работе в CV вычислительное ядро написано на С++, а всякие сервисы для коммуникаций на C#/F#. Очень классно, а общается это все через gRPC. А самое замечательное, что это работает на linux.
Я выбирал между JVM, и даже первая версия была написана на джаве, но как я с нее плевался когда пытался скомпилировать что-то с помощью ебучего maven, это же просто пиздос. Да и Java по сравнению с C# кажется деревянной. Вот например, в сисярпе есть async/await из коробки, в ебучей джаве такого нет, даже в С++ уже завезли корутины.
Так что, дотнет заебись, а ты иди нахуй от сюда, никчемная макака, максимум что клепавшая - это лабы на питоне.
мимо с++ сеньор в cv
Karaf. Osgi контейнеры в джаве существуют уже двадцать лет.
Асп сайты. Раньше фулстеком с онгуляром. Сейчас бек с функциями и азуром.
Нет, потребитель - другие сервисы. Это не первый проект такой за последние 5 лет.
Откуда мне знать? Вся система поделена на проекты, я их все и не знаю хотя б по названию. То, за что мы отвечаем, центральная система, к которой все обращаются и которая сама разные стейт машины запускает.
Я посмотрел на вакансии, есть и без asp.net вакансии, которые требуют только знания C#, .Net Framework и знания Solid, стоит ли туда идти или лучше получить еще?
На асп вкатиться проще всего.
Никогда не понимал нахуя эти стейтмашины нужны.
Код по определению это стейт машина, не? а если только чистые ф-ции?
Разница в том, скрыта ли стейт машина за кучей спагетти кода или она явно бросается в глаза.
И когда ее надо использовать-то?
Дай задачку какую-то. Мож попробую на стейт машине ее сделать, помню либу какую-т осмотрели раньше.
В последний раз я использовал стейт машины, когда проходил туториал по написанию игр в Godot. Персонаж был представлен стейт-машиной, были такие состояния как Idle, Run, Jump, в зависимости от текущего состояния по-разному реагировал на нажатия клавиш и отрисовывал разные анимации. Можешь для начала написать примитивный консольный вариант персонажа с разными состояниями.
А ещё стейт-машины связаны с регулярными выражениями. Можешь придумать стейт-машину, которая получает строку или список на входе и каким-то образом анализирует или преобразует его.
Я так то асп нет кор мвц изучаю. Пытаюсь вкатится. Ну более менее изучил, простые сайты там могу написать.
И думаю а дай как я посмотрю че там раньше было.
Госпаде, как так то нахуй? Там же не логичный бред блять полный.
Даже тот код питухона без скобок который сливается логичнее и понятнее смотрится. Я до этого всего немного пшп знал и бля его читать же проще.
Я хуй знает, мб если больше времени уделить то все понятнее станет. Но вот хз что может быть лучше MVC. Все просто и логично.
Сцу на отклики на вакансии кидать.
А вдруг позовут на собес? Будут там спрашивать про к
Рокет сайн а я в душе не ебу че там и как.
Метанит то я весь прочел.
Ну мб наследование повторить а так уже хорошо все выучил. По АСП нет кор тоже вроде хорошо знаю основы. Ну со шпаргалкой. А с гуглом дак ваще профи.
Есть какая лакмусовая бумажка?
Ну например написать сайт по определенному ТЗ, естественно будет говнокод но все же ТЗ будет выполнено и типо можно и джуном называтся. Или прогу просто п ТЗ.
Или давайте такое ТЗ вмечте напишем.
> простые сайты там могу написат
имиджборду запилил?
>придумать асп веб формс?
Давно померло и слава б-гу.
как повторить еффект как здесь : https://impreza.us-themes.com/portfolio-grid-2/
когда наводишь мышкой проигрывается анимация движения кадрированого изображения, как сделать так же но бесплатно?
Сайт делал пидор.
>.NET Framework 4.5.2 or above is required to install Visual Studio. Visual Studio requires .NET Framework 4.8 to run. If .NET Framework 4.8 isn't already installed, it will be installed during setup.
Чет проиграл. Тебе нужен net framework, что бы мы могли установить тебе net framework.
>.NET Framework 4.5.2 или выше требуется для установки Visual Studio. Visual Studio требует .NET Framework 4.8 для запуска. Если .NET Framework 4.8 не установлен, будет установлен во время установки.
>Тебе нужен net framework, что бы мы могли установить тебе net framework.
Я с тебя проиграл.
почему вы такие агресивные? у фронта же нет отдельного загона на дваче, куда нам еще идти...
А в чем агрессия-то? В том что тебе не разжевали и на блюдечке не подали? Ок, зумер. Я же не знаю твой уровень, что тебе не понятно анимации или ты даже про :hover не знаешь, а начинать рассказ с того что переменная это такой ящичек... желания нет. А по F12 вот тебе готовый рабочий пример со всем html и css. И подебажить и горячие изменения внести. Хз чем ты недоволен.
А тебе не пихуй?
>пример кода в этой статье — это приложение WPF, которое использует клиент ASP.NET Core SignalR
https://docs.microsoft.com/ru-ru/aspnet/core/signalr/dotnet-client?view=aspnetcore-5.0&tabs=visual-studio
>А тебе не пихуй?
Смотря сколько придется за этим тащить. А рефлексии нет шоле? Ручками имена методов писать? Хуйня какая-то из мира макак.
Ладно, спасибо, посмотрю, Надеюсь, кто-нибудь что-нибудь получше подскажет.
Из самого простого: WebAPI + Swagger или gRPC. Оба умеют генерить классы для клиента.
Так а че, WCF в чистом виде никто так и не повторил? Я вижу что в нугете есть и ServiceModel, и ServicemModel.Web, но последний чет протухший.
> Из самого простого
Я отказываюсь в это верить, надо продолжать искать. У меня двадцать интерфейсов, которые можно использовать как экземплярами в приложении, так и удаленно, причем делать это прозрачно, не теряя контроля над связностью. А теперь мне "генерить классы для клиентов"? Это пиздец, граждане.
>Так а че, WCF в чистом виде никто так и не повторил?
Для клиента 100% поддержка. Для сервера левым васей в глубокой альфе. Но при переходе на кор, лучше вообще уйти от WCF.
>А теперь мне "генерить классы для клиентов"?
Так WCF тоже генерит классы. В чем трабла? Клиент для сваггера или грпц работает 1 в 1. Анализаторы сейчас на столько умные, что достаточно нажать кнопку билд.
Но я сказал, что это самое простое решение. Простое - не значит лучшее. Для коммуникации между серверами лучше использовать очередь или другие системы для декапла связи.
> Но при переходе на кор, лучше вообще уйти от WCF.
Ну я пытаюсь но не вижу пока удобных альтернатив. Мне ведь еще кучу интерфейсов надо переводить.
> Анализаторы сейчас на столько умные, что достаточно нажать кнопку билд.
Но ведь эту хуйню надо будет с собой таскать везде, иначе в стоковом окружении соснешь?
>Для коммуникации между серверами лучше использовать очередь или другие системы для декапла связи.
Так WCF, при всех его минусах, сам по себе заебись развязкой был. Нахуя сломали то что заебись работало - непонятно.
> очередь
Какую очередь? Жирноту типа кролика или о чем ты?
>Но ведь эту хуйню надо будет с собой таскать везде, иначе в стоковом окружении соснешь?
Я не понял. Ты не умеешь заглушки на хттп вызовы клепать? Смысл тогда использовать, например, сигналр как писали выше? На него еще сложнее затычку сделать. Так нужно еще и постоянный конекшен держать, иначе получится WebApi через жопу.
>Какую очередь? Жирноту типа кролика или о чем ты?
В таких системах как твой вцф есть очень много недостатков. Я даж не знаю как описать:
- не масштабируется, больше одного сервера хуй поднимешь, сразу крути лоад балансер и другие извращенные схемы для навигации
- нет реагирования на падение сервера, изволь сам написать
- и как ты вообще это себе представляешь? Насиловать сервер в десна, пока не поднимется?
На кой фиг нужны очереди, глянь описание например RabbitMQ. Облачные сервисы предоставляют более широкий спектр возможностей.
>Ты не умеешь заглушки на хттп вызовы клепать?
Ну с вцф мне это и не надо. А так-то да, это изврат.
> Смысл тогда использовать, например, сигналр как писали выше?
Вот и я понять не могу, надеюсь что итт пояснят.
> В таких системах как твой вцф есть очень много недостатков.
У него действительно много недостатков, но не концептуальных а реализационных. Короче, не тех что ты описал.
> не масштабируется, больше одного сервера хуй поднимешь
Почему нет-то?
> нет реагирования на падение сервера, изволь сам написать
И это нормально. Может ты еще и сетевые ошибки не хочешь сам обрабатывать? Я не понимаю сути претензий.
> Насиловать сервер в десна, пока не поднимется?
Ну да. А как это происходит в случае любого другого сетевого взаимодействия?
> На кой фиг нужны очереди, глянь описание например RabbitMQ
Ну я про него и спросил. Это его подразумевали под очередью?
>Это его подразумевали под очередью?
Да. Но в случае с RabbitMQ есть несколько моделей поведения очереди. В других системах каждое такое поведение названо другими словами.
>Почему нет-то?
Потому что изначальный подход неправильный, если нужна отказоустойчивая система. В твоем случае придется переизобретать колесо. На грабли понаступаешь, сам потом придешь к этому решению. Пока можешь игнорировать.
>У него действительно много недостатков, но не концептуальных а реализационных.
Замени WCF на что-угодно, в зависимости от того, что у тебя там (tcp, soap, http...) и сделай прототип. Про WCF забудь.
>Замени WCF на что-угодно, в зависимости от того, что у тебя там (tcp, soap, http...) и сделай прототип. Про WCF забудь.
Я в свое время начал, но без поддержки отражений на уровне редактора (студии) все оче плохо (а их сделать нормально это совсем боль). На каждый метод приходится писать (генерировать) прокладку.
Вся красота вцф в том и была, что я тупо делаю фабрикой экземпляр класса, который реализует интерфейс. При этом фабрикой я могу возвращать в зависимости от переданных извне настроек как вцф-экземпляр, созданный самим дотнетом и работающий через сетевой стек, так и тупо экземпляр класса, созданный в оперативе. Снаружи будет вообще похуй и мне это очень нравится, я реально часто это использую. Сейчас вернуться обратно на вариант абстракции уровня "всегда сеть" - это деградация.
Правильно ли я понимаю, что ты именно это мне предлагаешь? Если нет, то прошу терпеливо пояснить еще раз.
>На каждый метод приходится писать (генерировать) прокладку
Я тебе уже объяснил, что на свагер и на грпц иде сама генерит нужные классы. Эти классы скрывают сетевой уровень и дают типизацию. Тебе надо только создать экземпляр класса сгенерированного клиента и вызвать у него метод. Только, в отличии от вцф, клиент ты можешь херануть не только на дотнете, а например на какой-нибудь экзотической хери как Haskell.
> Я тебе уже объяснил, что на свагер и на грпц иде сама генерит нужные классы.
Да, я понял, повторюсь: эта фигня прикручивается к иде и должна быть в наличии на каждой рабочей машине? Она реализована в виде расширения, работающего на каких-то хуках, или как? Если я собираю проект не через иде мне сначала придется его как-то через процессор этой хуйни прогонять?
nuget пакет, поставил и сбилдил. Расширения тоже есть. Не через иде есть команды в терминале. На нужный сервер просто длл закинул и все.
>как-то через процессор этой хуйни прогонять?
Как хочешь, можешь закоммитить сгенерированные файлы или прописать пребилд.
>Она реализована в виде расширения, работающего на каких-то хуках, или как?
Давно все на билд таргетах работает, если тебе это хоть что-то говорит.
Вообще, ты слишком много вопросов задаешь. В чем проблема создать хелоу ворлд и потыкать палкой как оно работает?
>В чем проблема создать хелоу ворлд и потыкать палкой как оно работает?
Занятой дохуя, хочется за меньшее количество телодвижений провести водораздел между оно/не оно и копать дальше только если это оно. Я ебал каждую современную пердолю ставить и палкой тыкать.
Всем спасибо за ответы. Как оказалось, новоделы умеют только разъебывать, а как строить, так сразу вспоминают технологии древних с генерацией кода. Охуеть вообще.
только мне в итоге нужно коеч-то совершенно другое, чего я сделать не могу, суть в адаптивности, когда мы сидим на большом екране пикча расшинряется на всю свою величину, но когда мы начнем ее ресайзить она не будет уменшаться как показано на всех примерах респонсивных дизайнов а вместо этого она как бы маштабироваться, сохраняя при это тот же размер, и так из пикчи скажем 16 на 9 сделаетм 4 на 3 просто обрезав все остальное как в том примере, я понятие не иммею как это сделать и просто коппирование оттуда когда мне ничего не даст
Сиу на галере на vs22. Из проблем R# только EAP и новый модный интеллисенс, который предугадывает твою следующую строчку на таб часто делает табуляцию вместо ввода этой самой строчки.
Нехуя не понял. И твой сайт говно: анимации через jquery, позиционирование элементов через float, position, z-index.
мимо
>анимации через jquery, позиционирование элементов через float, position, z-index.
Float уже вообще не котируется? А z-index -то при чем? Как без него попапы дергать-то?
>Float уже вообще не котируется?
Нет. Есть флексы и гриды для таких целей.
>А z-index -то при чем? Как без него попапы дергать-то?
Притом что они нахрен не нужны на той черепице на каждом элементе. Это не попапы.
И я что-то не понял. Ты считаешь, что я перечислил все косяки?
Есть в этом некая ирония. Чел продает свое говно 20летней давности таким баранам, которые не в состоянии прикрутить оформление на очередной вордпресс.
Я когда-то, когда только вкатывался, начинал с жеса, писал одному кабанчику финтифлюшки для таких "тем" на жиквери. ПРи этом я ему явно говорил: "чувак, я не шарю, только вкатываюсь", ему был опохуй лол. Тему покупали.
Сап программач. Я вообще не кодер ни разу, а тупая мамака, учащаяся на тестировщика. Скинули лабу, протестировать калькулятор, написанный на си, но там не обычный кулькулятор, а двух кнопочная хуйня, считающая факториал.
И вот я даже нихуя не помню, что такое этот блять факториал. Вроде по кнопкам потыкал, числа повбивал, все работает корректно (За исключением отрицательных чисел, но я хуй понимаю какой ответ верный при отрицательном факториале).
Двач помоги как найти баг в калькуляторе?
Ну вот кстати так я тоже пробывал и это выдает ошибку. Но можно ли это считать багом если калькулятор не предназначен для подсчета букв?
Или типо любая ошибка = ошибка
Если калькулятор не предполагает ввод букв, то он их не должен позволять вводить в принципе. И ошибки бывают нескольких видов: когда выводится юзер френдли надпись, когда пидорасит все кишки реализации, когда выводится только неясная хуйня типа Null Reference Exception.
мимо
Попробуй пройти несколько собесов. Тебя в никакой черный список не добавят. Максимум оставят пометку "не брать полгода-год". Только если провалишься, не спрашивай причину, ты и так уже проебал их время.
Возьми например три конторы и начни с самой хуевой.
>Только если провалишься, не спрашивай причину, ты и так уже проебал их время.
Схуяли? Фидбек это обязанность любой, уважающей себя конторы.
Это вариант:
>когда пидорасит все кишки реализации
Так не должно быть + ошибка на инглише, когда интерфейс на русеке. Я описал не все виды ошибок. Это самые типичные.
А свич значит после того как найдет нужное значение прекращает свою работу? И что его потом тригернет чтобы он начал опять работать?
Ошибка.
Кстати, если можно в результат вводить - тоже ошибка.
Отсутствие локализации - тоже. Либо все на английском, либо русском, либо выбор, а не эта хуйня вразнобой.
Да, еще можешь вбить оч большое число. Если зависает - ошибка. Если выдает неверный результат - ошибка.
>А свич значит после того как найдет нужное значение прекращает свою работу?
Я не знаю как оптимизирован свич на юнити. На нормальном шарпе до какого-то момента "большой" свич заменялся на словарь. На современном шарпе только бенчмарки писать.
В свиче и ифе нет ничего плохого, если это не hot path. Но их черезмерное количество говорит о хуевой архитектуре. Часто можно переписать код таким образом, чтобы иф вообще был не нужен. Если от ифа не получается избавиться, то иногда его можно на что-то заменить, например на шаблон состояние.
Кекай дальше со своими шарагами.
В 80% дают фидбек.
Обыдно только с последним. пилил тестовое и нихуя в ответ. Ну да ладно.
Главное много платят и являются лидером международного рынка. Остальное не важно.
Спасибо анончик, попробовал вбить 99999999 тоже выдало ошибку :3
Можешь уточнить поподробнее, как описать отсутствие локализации в тест кейсе?
> На современном шарпе только бенчмарки писать.
Не совсем понял смысл твоей фразы если честно
Я пока слаб в программировании, но вообще не могу представить чем можно заменить иф. Вот допустим как у яндередева у нас есть школа где школьники в определённое время занимаются разными занятиями. Как это без иф сделать?
Смотри. В простом случае switch - это последовательность if - else if - else if - else if... Ясное дело, если проверяющее условие где-то в жопе, то надо пройтись по всем предыдущим проверкам. И ясное дело, если нужное условие было найдено, то эта цепочка ифов прекращается.
Но! В шарпе есть дохуя различных оптимизаций, помнить которые - сойдешь с ума. Еще осложняет жизнь современный паттерн матчинг и всякие хитровыебанные оптимизации процессора (лучше вообще забудь, что они существуют). Самое простое и правильное решение - написать бенчмарк на конкретный участок кода. Любая оптимизация в принципе начинается с бенчмарка. Пох, что в случае с юнити большинство кладет хуй на тесты.
У тебя слишком общий вопрос. Проблемы в деталях реализации. Как правильно решить ту или иную ситуацию конкретно на его коде обсасали на многих ресурсах, в том числе на тытрубе.
Например частый говнокод. Накидали на сцену пачку объектов и дописали им текстовые теги. Потом в методе Update ищут объект по тегу и из него достают нужный компонент. В большинстве случаев, где такое говно используют, искать объект по тегу вообще не нужно. С нормальным разделением логики на классы и инкапсуляцией кишков, ссылка на нужный объект будет и ее искать не надо. А не как это обычно, насрать все в GameObject.
Потом на такой говнокод насаживается дополнительная логика по проверке тегов, чтобы описать какое-то поведение в зависимости от типа объекта. Ну а хули? Объект по тегу нашли же, продолжаем пьянку.
Ну половина файлов понятны а вот остальные нет
Шо за реф рунтайм
public int Var { get; set; }
когда проще написать так:
public int Var;
И в чём тогда инкапсуляция, если свойства всё равно открыты и геттеры-сеттеры стандартные и ничего не делают необычного? По сути заменили шило на мыло.
Хороший вопрос. Не я же делаю
Какие твои действия, если Var не может быть больше 10 или надо запретить публичный set?
Ни разу не видел, чтобы кто-то писал условия. Все как макаки шлёпают get-set и всё. Тем более, чтобы условие написать, тебе нужен доступ к самой переменной, а свойство её скрывает.
private int _var;
public int Var {
get { return _var;}
set { if(value<=10) { _var = value; }
}
По факту мы всё равно заводим переменную, а логику прописываем отдельно. Можно и по-старинке методами сделать типа SetVar, GetVar.
>Ни разу не видел
Значит не видел ничего кроме POCO классов. Как будешь реализовывать INotifyPropertyChanged используя поля? А?
>а свойство её скрывает.
Не свойство а автосвойство, почувствуй разницу. Первое - сахар, второе сахар поверх сахара.
>проще написать так
Прям охуеть как проще, особенно когда для свойств есть уже встроенные сниппеты.
>в чём тогда инкапсуляция
В том, что объект контролирует доступ к своим кишкам.
>геттеры-сеттеры стандартные и ничего не делают.
Напиши которые будут что-то делать.
А еще фреймворки, которые используют рефлексию работают со свойствами.
Можно написать АДАПТЕР и оградить ФАСАДОМ, у нас тут серьезная ынтырпрайз компания, между прочем.
В тырпрайзе достаточно создать ValueObject из DDD.
по новым требованиям 10 нельзя, приводит к делению на 0 в блоке управления ядерным реактором и блокированию кнопки АЗ-5
@
переписали, оттестировали
@
пришел джун, присвоил 10
@
джуном тормозят нейтроны
@
тимлид охлаждает жопу в бассейне-барбатёре
В юнити - как один из вариантов. Но я говорил про общее решение, а не конкретно юнити https://github.com/dotnet/BenchmarkDotNet
А в шарпе надо вот такое городить
Console.WriteLine("Введите свое говно сюда")
Console.ReadLine()
ПОчему я не могу просто приглашение вписать в скобки ReadLine?
Да я определиться не могу, обновил студию, а там теперь каскадия по умолчанию. Вот и ломаю голову оставаться на нем или вернуть в зад.
Напиши свой метод. Народ всякую тырпрайзную абстракцию городит, что голову сломаешь, а тут делов на 5 сек.
Я скорее возмущаюсь просто что такой простой вещи нет из коробки. Неужели нельзя было подглядеть у питона?
Питон это кал.
Это всё фигня. Вот когда начнёшь изучать фреймворки, вот тогда офигеешь. Я сейчас изучаю APS.NET и офигел от его сложности. На тебя просто вываливают миллион файлов с уже написанным кодом и ни где толком не написано, что этот код делают. Все "учебники" учат лишь как встроить туда свой код, чтобы вывести шаблонные списки. Как делать нормальные сайты никто не пишет.
Как же ты заебал, вкатун.
Говори спаибо, что тебе изкаробки все дают . Для таких вкатунов как ты, кста.
Не хочешь- удаляй CreateHostBuilder и пердоль все сам, ну или консольку создавай сразу.
>Как делать нормальные сайты никто не пишет.
Так за тебя, ебика, там в темплейте уже нормально и настроили (частично).
Пиздуй в ПХП и создавай там "нормальные" сайты в один файл.
В общем, изучай и не пукай.
APS.NET Core?
В MVC все просто и логично. Да много всего есть и по этому простой одностраничный сайт будет долго пилить. Но собственно технология не для этого. Надо 2 страницы делай на пшп. А если надо дохуя чего городить то выбирай асп нет коре, там еще и сигналР есть и Блейзор ваще бомбезные штуки.
А разве просто лигатурный шрифт выбрать недостаточно?
>>182407
Я тебя помню питоногей, ты же уже это спрашивал и получал код метода. Зачем опять тут насрал?
>>182429
Бери пустой проект и сам подключай что надо шаг за шагом. Для начала хоть по метениту.
>Как делать нормальные сайты никто не пишет.
А не ты ли тот шизик, которому и про впф не пишут, ни про как "писать код в событийной модели"?
ИМХО MVC и MVVM это кал. Всё в динамике (теряется статическая типизация), хуй проссышь что где и как работает, поэтому как дебил ловишь ошибки в рантайме перезапуская сотни раз.
>А разве просто лигатурный шрифт выбрать недостаточно?
Разобрался. Я думал лигатура это опция для шрифта, а оказывается надо выбирать шрифт с суффиксом CODE вместо MONO.
Но остается вопрос насчет операторов --, == и -> они отображаются как обычно.
Скорее слишком умён что бы быстро утомляться от рутины для обезъянок на которых расчитаны эти паттерны.
>вместо MONO
Ну так. Моно это когда каждый символ занимает одинаковую ширину. Какие же там лигатуры.
> --
-- ты на что хочешь заменить на тире или равно?
> == и -> они отображаются как обычно.
А остальное работает, например, => === != ?
> -- ты на что хочешь заменить на тире или равно?
На укороченные минусы как это сделано для ++
> А остальное работает, например, => === != ?
Да
Какие нахуй ошибки?
Поставил точку остановки на методе который тестируешь и смотришь что не так.
Все логично.
Одна страница, одно представление , одна вьюмодель, один контроллер и методы на каждую кнопку.
Вот например каталог фильмов.
Страница с фильмов.
Хедер и футер подгружается с частичных представлений, вьюмодель собирается в контролере, в ней инфо о фильме и похожие фильмы. Выполняется GET метод, отдается вью модель и выводится инфа в представлении.
Куда логичнее то?
Все по полочкам разбито, всегда понятно где ошибка.
А ты как хочешь что бы было?
Родные реализации ВПФ или асп поддерживаются студией и сильно помогают отлавливать динамические ошибки, на любой кастомной реализации MVVM уебешься искать опечотку в каком нибудь биндинге.
да что тут не понятного то? мне просто нужно что бы картинка нахуй двигалась в себе без ресайза так как на примере
Я ж говорю это МС за тебя все сделал и добавил кучу хелперов под свои фреймворки. В общем случае это не так, а биндинги могут быть очерь хитрые. для всяких таблиц, списков или деревьев.
> Зачем опять тут насрал?
Честно? Не знаю, я просто аутист. Но больше спрашивать точно не буду
>МС за тебя все сделал и добавил кучу хелперов
На тему качества иде. + еще и в вс хоткей Go To Definition не пашет для View, почему-то сделали другой хоткей и другое название меню. В вс код вовсе смех.
Неужели микрософтам самим не стыдно? Вроде фирма не маленькая.
> Вот почему на Java написали кроссплатформенную IDE Rider
Нашёл, чем гордиться.
> На нашем яп снова написали говно, которое свистит, пердит и жрёт всю озу, но зато на Жабе!
Моя рабочая машина хоть и говно, но зато ссд и 16 гб озу.
Если бы WPF был кроссплатформенным, то тоже можно было бы писать программы под все ОС. К примеру, написать свою красявую ИДЕ и продавать её вкатунам. Им функционал не важен, главное, чтобы всё было модно, молодёжно.
Вот VS вроде функциональна, но когда хочешь создать файл, а на тебя вываливается меню на 50 пунктов - сбивает с толку и побешивает.
Можно и даже пишут, но это кастомные решения.
Я имею ввиду что-то типа class Email or class FullName
В связке - ЕФ идеально, но там типа просто .OwnsOne
Что вообще помещать в такие велью обжекты? Валидацию? Зачем они вообще?
Тоесть я хочу вместо class UserEntity { string FirstName; string LastName; string Email } иметь
UserEntity { FullnameValueObj FullName; EmailValueObj Email }
>Потому что могу
Ну-ну.
Какую годную реализацию ты хочешь, если Value Object - это класс, который нельзя создать невалидным? Есть два подхода: валидация в конструкторе, либо приватный конструктор и валидация в статическом методе Create.
>Ну-ну.
Ну .OwnsOne же есть? Есть. Могу же значит.
> это класс, который нельзя создать невалидным
Инфа 100%?
>OwnsOne
Дерьмо с строковыми литералами + NRE. У тебя модель домена запросто может не совпадать с способом сохранения.
>Инфа 100%?
Тебе сложно взять книгу по ддд и прочитать ее? Или ты ожидаешь пересказ книги, полностью посвященной ддд, в посте на анонимной борде?
Value Object должны следовать нескольким правилам дизайна. Их городят на что-то мелкое, чтобы добиться помощи от компилятора. Например, есть имя юзвера, которое не может быть длиннее 50 символов и короче 1 символа. Или не дать возможность присвоить идентификатор пользователя вместо идентификатора роли.
Есть еще ряд оптимизаций. Например замена рекорда на ридонли структуру, но если у тебя руки из жопы, то производительность будет хуже, чем с классами.
>Дерьмо с строковыми литералами + NRE. У тебя модель домена запросто может не совпадать с способом сохранения.
Строковыми литералами? Нипонел. Нормально там все типы для полей распердоливаются.
Ты считаешь, что поверх ентити должна быть модель? Репозиторий должен модель или ентитю возвращать?
>Тебе сложно взять книгу по ддд и прочитать ее? Или ты ожидаешь пересказ книги, полностью посвященной ддд, в посте на анонимной борде?
Да. Ну не пересказ, а объяснение "для тупых" по некоторым довольно узким вопросам.
>помощи от компилятора. Например, есть имя юзвера, которое не может быть длиннее 50 символов и короче 1 символа.
Ээээ. А как компилятор нам поможет провалидировать длину строки в билд тайме?
Ты уже хочешь разжевывание на каждую мою реплику. Модель домена - это не модель эфа и не M в MVC. Модель домена ничего не знает про интерфейс и способ сохранения данных.
Конкретно в моем случае использовать дробь, которая отдельно сохраняет знаменатель и числитель как BigInteger.
В общем случае не использовать decimal, найти модуль разности двух чисел и сравнить с некоторой погрешностью.
Иди нахуй, короче.
Это UTF-16? Что это за символ, которому нужны пробелы?
Студия вроде есть на огрызках. А лучше студии все равно ничего нет.
>Пикрелейтед демонстрирует что проблема не в шрифтах и сами по себе символы отображаются
УТВЕРЖДАЕТ ЧТО ШРИФТ КОНСОЛИ МОЖЕТ ВЫВОДИТЬ ЮНИКОД
@
ПРУФАЕТ СКРИНОМ ИЗ РЕДАКТОРА КОДА
Очередная жертва видеокурсов?
Я принимаю по массиву типа [0, 1], [0,3] и мне надо чтобы в мой уже созданный пустой двумерный массив они добавлялись?
twoNumbers = ReadTwoNumbers(twoNumbers);
array[0] = twoNumbers[0];
array[1] = twoNumbers[1];
Я пытался так, но array[][] изначально все null из-за этого нельзя взять array[0][0] и т.п.
все, я нашел
for (var i = 0; i < n; i++)
{
twoNumbers = ReadTwoNumbers(twoNumbers);
Array.Copy(twoNumbers, array = new int[2], 2);
};
Нихуя непонятно. Двумерный ([,]) или ступенчатый([][])? Ты знаешь что размеры массивов нельзя менять? Опиши задачу, уверен есть нормальный способ решения, а не твои костыли на массивах.
массив должен получиться такой: [[1,2][1,3][3,5][4,5]]
а вообще я построчно получаю
1,2
1,3
3,5
4,5
Ну если вы мне задачу решите так не интересно будет, это задачка по алгоритмам. цифры в строке это координаты массива, я на 0 0 нахожусь, нужно собирать посылки по координатам, передвигаться можно только вверх и вправо
Количество строк известно
И вот ещё сайт позволяет юзерам аплоадить файлы, я их складываю в ввврут, как это работает в случае докера, и как правильно поступать в таких ситуациях?
Бамп вопросу.
Тоже интересует если у сайта есть бд MSSQL че с ней делать в докере?
Я тренировался и делал типо каталог фильмов, бд MSSQL , все было походув одном контейнере. Но вот если я захочу обновить сайт то бд похерица при перезаливе.
Я думаю что БД и сам сайт должны быть в разных контейнерах. А с файлами что делать? Ну с постерами и трейлерами к примеру?
Сейчас возникла необходимость получать из Assembly в которой используется My.dll ТИПЫ через GetTypes() и вот тут начало сыпать экспешены потому что My.dll на момент когда мне нужны тип он не загружен так как логика загрузки еще не обработана.
И естественно срабатывает AppDomain.CurrentDomain.AssemblyResolve
Проблема в том что на этой стадии я не могу знать какой именно надо грузить dll и вот тут возникает вопрос как фиксить ситуацию?
Могу ли я загрузить скажем My1.dll и затем если в настройках в логике используется My2.dll загрузить и подменить ее?
Сразу скажу что никак раньше определить какую dll загружать я не могу потому что это как бы подмодуль другой dll которая так же загружается динамически и GetTypes() мне нужен для того чтобы получить тип экземпляр которого я создаю через рефлексию.
Т.е ситуацию можно решить если каким-то образом получать тип экзлемпляра что хочу сделать без GetTypes(), но такого способа вроде бы не существует.
Ни хера не понятно, что ты написал. Дай код.
Если классы и интерфейсы в сборках одинаковые, можно сделать отдельный DLL-фасад, который будет сообщать остальному коду сигнатуру My.dll, My1.dll и так далее. Юзай extern class для определения.
1) у нас есть квадраты, у каждого квадрата есть высота, ширина которая определяется условними пунктами от плоскости на котором они находятся.
2) Они помещаются на плоскость и их позиционирование определяется количеством услонвых пунктов от плоскости.
3) Плоскость может растягиваться в осях Х и У, в таком случае услонвые пункты умножаются на степень растяжения.
А теперь вопрос, заказчик добавляет фичу с вращением квадратов на плоскости, при этом очевидно что если квадрат повернуть на 90 градусов то он потеряет свою правильную форму и размеры поскольку его высота которая расчитывалась условними пунктами умноженими на растяжение по высоте станет шириной а там могут быть совершенно другие коефициенты растяжения
Пункты, блять, неквадратные квадраты, блять. Нихуя не понял. Храни в квадрате его номинальные значения, а отображение в искривленном пространстве-времени получай через метод Transform.
Чел не может представить квадрат в виде вершин и применять к ним 3 операции: T x R x S
T - матрица перемещения
R - матрица поворота
S - матрица масштабирования
я согласен я нарвеное написал непонятно и полную чепуху поэтому скину код, смотри это как сейчас, сейчас я предполагаю что поворт может быть только на 90 градусов, в таком случае я просто меняю висоту и ширину местами, это отлично работает когда плоскость не растягается, а вот когда мы попробуем растянуть плоскость например в оси Х можно заметить проблему потому что вместо растяжения квадратов в ширину они будут растягиваться в высоту, я может быть очень тупой но я не понимаю как сделать наоборот
я уточню есть плость, напрмиер пикча 100 на 100 сантиметров условных. они делятся на разрешение екрана, так мы поулчаем услонвые пункты плоскости
а далле мы строим квадраты умножая их размерность на эти пункты, это хорошо рабоатет если их не вращать
проблема в том что пункты эти для оси Х и для оси У разные потому что присутствует растяжение по этим осям
У тебя не будет проблем, если ты повернешь вершины, а не будешь подменять ширину высотой.
>У тебя не будет проблем, если ты повернешь вершины, а не будешь подменять ширину высотой.
ты иммеешь ввиду если заюзать transform rotate? я если че его специально оставил на том скрине закомментированым, что бы как бы намекнуть что это не работать, когда прямоугольник поворачивается высота становиться шириной только вот высота расчитана с учетом растяжения по высоте и оно все так же меняется когда меняется высота а не ширина, это точно та же проблема просто теперь надо учитовать смещения после оборота. потому что когда используется transform rotate маргин устанавливается не до вершины а до точки оборота, это страшно геморно
А вообще меня забавляют твои большие посты, вместо того, чтобы открыть книгу по компьютерной графике и прочитать пару первых глав, включая камеру.
>ты иммеешь ввиду если заюзать transform rotate
Нет. Я предлагаю повернуть в жабаскрипте, а не через ксс.
>Нет. Я предлагаю повернуть в жабаскрипте, а не через ксс.
Вот здесь понял что ничего не понял....
можешь пояснить?
Какая камера что ты несешь? у меня рисование квадратиков в браузере, я не игру какауй нибуть делаю, я пытаюсь сделать простенькую лабу для выша
Компьютерная графика учится на 1-2 курсе, так что попустись, хуев геймейкер. Каждый твой пост - несусветная ересь. Тот эффект, который ты пытаешься добиться, решается через дополнительное преобразование или через камеру. Но для этого ты должен считать не через анальное отверстие.
Вон у тебя стосы какие-то, надо понимать там твои прямоугольники. Вот координаты их повернутых вершин и высчитывай. Потом применяй свои коэффициенты растягивания. И вуаля! У тебя координаты вершин трансформированного прямоугольника.
А кстати, что за проблему ты решаешь, а то мож ты вобще не туда свернул?
у меня нет никаких координатов вершин, там внутри 5 параметров
высота
ширина
отступ свеху
отступ снизу
угол поворота
это все что у меня есть, нет ни координатов, ни матриц, ни камер или точек как пишут некотрые шизики, поменять структуру стосов я не могу, она не моя. получаю что получаю...
плоскостью есть сетка, она может растягиваться и мне нужно что бы стосы мои растягивались пропорционально растяжению плоскости под ними не важно на какой угол они повернуты.
что за чушь ты нахер несешь тупой ты школьник? не знаешь как помочь так иди нахуй отсюда тут адекватные люди общаются
По видеокурсам учишься что-ли? Ты же даже не понимаешь о чем тебе пишут, но зато обзывать мастак.
>высота
>ширина
>отступ свеху
>отступ снизу
сверху/снизу или сверху/слева? Если второе, то этого достаточно, чтобы получить вершины.
x0 = (left, top)
x1 = (left + width, top)
x2 = (left + width, top + height)
x4 = (left, top + height)
Третий класс школьной математики
я Вроде понятным образом обяснил почему тот первый комментарий это жирный тролинг в лушчем случае, а в худшем случае человек который это написал просто тупой, и хуй он сомжет решить эту задачу "хранением гиперкоординат в квадрате трансформатора"
>хранением гиперкоординат в квадрате трансформатора
Прекращай уже. Геометрию и матрицы в школе не проходил?
я обозвал чела который уже несколько раз к ряду меня матом крыл
x0 = (left, top)
x1 = (left + width, top)
x2 = (left + width, top + height)
x4 = (left, top + height)
ну предположим у нас есть координаты вершин, дальше что?
дивы по координатам не строится, нет такой команды в цсс,
да и если бы была, вот мы растягиваем переворачиваем и.... и все разлезлось....
хорошо я попробую
> дальше что?
Дальше поворачивай. Формулы сам сможешь найти?
>дивы по координатам не строится, нет такой команды в цсс,
есть position: absolute
>и все разлезлось...
Я понятия не имею, что у тебя там помимо твоих фигур. Рисуй на канве. Я спрашивал, что ты там делаешь, но ты не ответил. Еще тут посмотри
https://html5book.ru/css3-transform/ мож тебе и ксс хватит. И прекращай вести себя как боевой петух, если хочешь, чтоб тебе помогли.
С адекватами которые хотят помочь общаюсь соответственно, а школоту которая про камеры заливает я хотел бы заткнуть сразу же. что бы не отвлекали
Скажи, тебе такое надо? https://liveweave.com/P1UlEa
> школоту которая про камеры заливает
Так это ты ничего не понимаешь, о чем тебе пишут
Совершенно нет!
хотя нет, похоже....
в общем мне удалось перевести в координаты и обратно, и пока без вращение все работает, а как теперь поворавичать?
Повороты и все прочие преобразования матрицами делаются. Их в 11 классе на алгебре проходят.
Уже 12 классов. Но я слышал в рашке хотят отменить старшую школу.
Я все еще не знаю что ты делаешь. Но на пикрелейтеде говно какое-то. У тебя уже есть width/height зачем ты их высчитываешь?
я нашел эту формулу
https://stackoverflow.com/questions/15170942/how-to-rotate-a-matrix-in-an-array-in-javascript
и запустил, после этого система намертво зависла, почему так?
У меня когда была подобная задача, я тоже такие вот формулы колхозил. А потом, когда осознал прелесть матриц, особенно что вообще любое преобразование может быть записано матрицей (как результат произведения матриц элементарных преобразований), от всякого колхоза отказался.
ну у меня получилось повернуть матрицу... и в итоге пшик, мля а я то думал, конечно эе это не работает, это и не могло работать но что бы так, значение настолько абсурдные что дивы даже не отобразились
Пусть колхозит.
Умный учится на своих ошибках, мудрый учится на чужих, а дурак не учится никогда (с)
Как в таком случае лучше сохранять объекты этих классов? Бтв, миллиард раз пожалел использовать razor pages для одностраничника, учитывая, что только вкатываюсь
эти ваши матрицы не работают, ну повернул их. а что толку? в итоге в координатах чушь полная, так далеко от успеха я еще никогда не был вообще, моим извините "колхозом" удалось получить хотя какой-то результат, а тут покруитили, покрутии назда, кинули и .... и конечно же ничего не работает
Ссылку точно открыл и прочитал? Потому что примеры рабочие https://jsfiddle.net/tatumcreative/9vr2dorz/
Потом рассказывают, что не нужная нормальная архитектура. Хули вы тут оверинжинирингом занимаетесь. Дак блядь писать все в одну функцию и пользоваться шаблоном ctrl + c и ctrl + v.
>Как в таком случае лучше сохранять объекты этих классов?
В оперативной памяти оставить? Зачем ты в сессию их сохранил?
причему тут та сылка, мне то что в той ссилке показано не подходит, я делал как этгот анон сказал в этих постах
>>184357
>>184367
сделал все точно так же, сделал матрицы по вершинам, потом повернул матрицы и обратно преобразовал в отступы и размерности и в итоге все ожидаемо не работает, даже не понимаю на что я расчитывал
все там правильно, это даже интуитивно не работает, вот если просто представить но очевидно что это работать не будет и не может. ну и что толку что мы поменяли вершины местами? у вершин все еще останутся старые координаты и старая привязка, конечно ничего не будет отображаться, ну камон ребят просто поудмайте, ну и конечно что когда пойдет расширение все будет все так же расползаться
Да, оставить в оперативной памяти.
Сохранил в сессию, потому что так после каждого хода юзера могу достать игровое поле обратно. Если этого не сделать, модель страницы при получении аякса заново запускается и все поля создаёт заново, т.е. получается пустой объект игрового поля.
>модель страницы при получении аякса заново запускается и все поля создаёт заново
Так не трогай поле.
>ну и что толку что мы поменяли вершины местами?
Операции производятся к каждой вершине по отдельности.
У меня нет такой формулы, и не уверен чтотакую формулу можно найти, и это не звучит легко вот вообще, я понимаю я ньюфег все дела, но такую формулу мне кажестя даже програмисты с опытом не напишут
если ты конечно не о том что бы Х и У местами менять
Так я и не трогаю поле, контроллер (наследующий PageModel) просто при каждом обращении заново запускается. Если в нём прописать поле со значением 10, потом в методе с аяксом добавлять ещё 10, то там всегда будет 20 получаться, а не 30, 40, ...
Поэтому и спрашиваю как сохранять данные собственно, потому что сессия кажется нехилым костылём.
У тебя страница перезагружается?
>контроллер
А? Какой еще контроллер? У razor страниц нет контроллера.
>контроллер (наследующий PageModel)
Вот это вообще не понятно.
>У меня нет такой формулы
По ссылке есть, в книге тоже есть бтв с пояснениями. Нет в той формуле ничего сложного.
>даже програмисты с опытом не напишут
Программист с опытом не будет это писать, так как есть готовое с всеми нужными оптимизациями. Касательно не напишут, в лаба2 студентам то и делают, дают задачи на матрицы.
>ну вот я ручкой переставил
Сделал неправильно. Продолжишь со мной спорить, буду игнорировать.
я написал что это не работает, я написал КОНКРЕТНО почему, а ты мне про какие-то ссылки на какие-то страницы которых конечно же нет. и уверяешь мол я что-то сделал не правильно хотя не можешь сказать где.... ну что ж для меня тут все ясно, и конечно не продолжай отвечать, тебе ответить то нечего, ты этой глупой идеей поменять местами вершины только потртил мое время
Страница не перезагружается, все данные через аякс передаются.
Про контроллер условно сказал - есть Index.cshtml и его .cs-файл, в котором есть класс IndexModel : PageModel. Вот этот IndexModel заново запускается при каждом аякс-посте на сервер, и это, как я понял, верное поведение, потому что http должен быть стейтлесс. Но при этом я хз как хранить объекты классов, которые в IndexModel создаются, использование сессий как костыль выглядит.
>и это, как я понял, верное поведение, потому что http должен быть стейтлесс
На странице может быть несколько форм и каждая содержать свою модель.
>Но при этом я хз как хранить объекты классов
Сделай запрос через javascript без аяксовых форм и сохраняй результат в javascript переменную.
Кстати похоже тот анон с который сылку кидал https://liveweave.com/P1UlEa
похорже питался сделать что-то подобное что мне нужно но затих потому что понял в чем заключается вся сложность, у него это тоже не получилось
Спасибо, анон, попробую через js-запрос.
Пятница же. Сложности на самом деле всего 2: ты не можешь нормально изъясняться и ты долбоеб и не понимаешь что тебе пишут.
collectionView не видит полей классов из observablecollection<Student> students.
То есть здесь он биндит students:
<CollectionView ItemsSource="{Binding students}"
А когда я описываю внутри ItemTemplate - уже не видит:
<Label Grid.Row="0" Text="{Binding Name}"/>
Хамарин увидит Name, только если я напишу Binding students[0]. Name, но как-то в примерах все не так работает
Пример брал здесь:
https://blog.logrocket.com/getting-started-with-collectionview-in-xamarin-forms/
У того дебича все названо students. Посмотри что именно ты биндишь. И кста, не работает биндинги или просто подсказок нет?
Биндинги к полям вьюмодели видит. А вот биндинги к полям класса из обсервабл - ошибка при сборке. Прикрепил пик чего я хочу - Есть готовая либа из нюгета, я с помощью неё получаю обсерколлекшн<SearchResponse>. SearchResponse - класс из либы с полем Username, которое я как раз хочу забиндить на вывод collectionview
Обсёрколлекшон
Всё равно нипанимаю почему не работает у меня, может я не вижу чего?
Xaml
https://pastebin.com/ggQUTyLE
view.cs
https://pastebin.com/j12LiRyA
Viewmodel
https://pastebin.com/Dw7i1qQa
private void UpdateResponseResults(IReadOnlyCollection<SearchResponse> r)
{
ResponseResponses = (ObservableCollection<SearchResponse>)r;
}
У тебя ошибка в этом дерьме. Нельзя менять ссылку на коллекцию без уведомления.
1) А можно для тупого чуть объяснить что я должен сделать? Мне кажется я еще не догнал обсёрколлекшн этот вот.
-------------------------------------------------------------------------------------
2)Я сделал то же самое в другом вью и вьюмодели - и там все работает как в примерах, значит я где-то объебался с привязками SearchViewModel, но я пока не вижу где, буду искать
1. Обсёр колекшен следит автоматически только за обновлением коллекции. Если изменяешь ссылку на коллекцию, надо делать нотификацию. Твой дизайнер скорее всего не видит из-за этого тип элемента коллекции.
2. У тебя там еще другой метод есть, который ссылку меняет.
Форма названа Form1
Не локализованы кнопки
Порастягивай форму, вдруг поедут текстбоксы/текст
Ввод должен допускаться только цифр/точек и минуса(считается ли факториал для отрицательного числа?)
Проверь что запрещено копирование в значение
Проверь что будет при вычислении для нуля
Нажми calculate без значения
Сравни что он вообще выдает, мож считает неправильно
В результат ты не должен иметь возможности ничего ввести.
Проверь меняется ли результат после второго вычисления
мимо-макака-жму-на-кнопки-за-деньги
.net6 убьет джаву?
Поясни за базар.
Когда не нужны реляционные связи и много инсертов.
Есть компьютер с виндой с выделенным статическим белым айпишником от провайдера (никаких там DNS и вообще ничего - тупо айпишник)
Мои дальнейшие действия чтобы я мог свой сайт открыть в интернете?
Там все уже будет работать из коробки из IIS? Ну чтобы я запустил службу сайта и вот прям сразу все работало? Или все равно будет ебля со всякими конфигами, консолями и прочей ебедней?
Просто гуглил - но что-то не нашел ни одного гайда дальше локалхоста. Даже когда видос или статья прям написана про размещение сайта на своем серваке - все равно аутист заканчивает на локалхосте.
А все, понял. Ему new() не хватало,
Нашел проблему номер два. Самый рофел в том, что вчера заработало всё и с этой штукой
Надо из вьюхи было убрать x:DataType="viewmodels:SearchViewModel"
Сейчас типа эта хуйня не нужна
да в чем проблема понять что я хочу, проблема то ведь простая как два пальца, есть прямоугольники, есть пространство на котором они нарисованы, и вот надо что бы прямогольники растягивались пропорционально пространству, ВСЕ!
это весь таск, растягивать прямоугольники блять!
Нашел только для UWP но он мне нах не нужен, нужен обычный Framework. Желательно незаоблачных версий.
Ну вот и мы не можем понять что у тебя за сложности. Уже все разжевали.
Давай начнем с начала... Что за прямоугольники, где и ка ты их рисуешь?
Вот, написал пример, в моем коде все чуток сложнее но так будет сразу понятно в чем проблема
https://jsfiddle.net/businessintelligences4h/b3v2uxoe/12/
да, но для лучшего понимания я увеличил размер красного на ф4 е4
Должно быть условно что-то такое, только заметь что то что тут высота как бы на самом деле шририна, просто он повернут на 90 градусов.
>Ну тип 100 дивов запилить в сетке )))
квадратики это только пример, у меня более слождный код, и фигуры могут принимать каку угодно форму и угол.
>Не не получается осознать. У тебя все прямоугольники имею размер 100х100. Почему красный вытянулся по вертикали, а зелен
нет, красному я сейчас для лучшей видимости задал ширину 200. но так как он повернут на 90 градусов он вытянулся в высоту.
знаю, только эти квадраты не мои, я их архитектуру поменять не могу, у них должны быть именно такие атрибуты и именно так заданы все размерности
Понятие не иммею, они должны покрить ф4, е4, а как повернуть я бы сам хотел знать, я сделал апдейт, там я делаю поворот и делю высоту и ширину на 2, но я далек от решения
https://jsfiddle.net/businessintelligences4h/b3v2uxoe/33/
И еще важный момент: контент внутри прямоугольника (текст, например) должен вращаться?
Чел, Я прекрасно знаю что его можно по разному вращать, и я не иммею понятия как правильно.
https://jsfiddle.net/businessintelligences4h/37hqcLt9/1/
так как бы должно быть
другой более правильный в том смысле что там поворот не закостылен но при это он разлезается при маштабирвоании
https://jsfiddle.net/businessintelligences4h/b3v2uxoe/39/
>Так узнавай. Я то как тебе помогу, если ты не знаешь что тебе надо.
ты тролишь что ли? если бы я знал как поворачивать я бы не сидел над этим уже 3 день, я уже пробовал много чего. пока ничего не подошло.
> если бы я знал как поворачивать я бы не сидел над этим уже 3 день,
Так ты над кодом сидишь или не знаешь какой результат должен быть? Я про результат спрашиваю. По описанию тебе надо две операции повернуть и переместить (пик для прямоугольника), но ты говоришь, что угол и фигура могут быть произвольными. Вот я и спрашиваю как поворачивать-то надо.
насколько я понял должно в теории быть что-то типа такого, но я не уверен я уточню это, пока я поворачивал через transform rotate, и смещал на минус половина высоты блока по оси у и на минус половину ширины блока по оси х
>пока я поворачивал через transform rotate, и смещал на минус половина высоты блока по оси у и на минус половину ширины блока по оси х
Ну примерно так это и работает. При повороте не на 90, смещение считается через синусы и косинусы.
пока пусть будет только 90, хотя бы что бы 90 работало, но даже так все, все-варно расползается, у меня уже давно закончились идеи...
Загляни сюда часов в 9 по мск. Есть идея, но сейчас кроме блокнота нет ничего. Но у меня текст будет скукоживаться вместе с полотно, такое приемлемо?
бамп
Где полно? Разве что легаси, но это узкая ниша типа кобола.
Нужно к максимально простенькому десктопному приложению прикрутить юи. Твои предложения что почитать? Инбифо отца и мать
Method(ref int[] data)
Method(ref object[] list)
Вопрос, нафига тут ref? Ведь массивы же передаются всегда по ссылке и так было всегда и будет всегда. В чем сакральный смысл было так писать?
Сама ссылка значимый тип. А тут ссылка передается по ссылке.
Если отвечаешь да, берут фуллстаком?
Это еще ты in не видел для ссылочных типов. Во где вершина кретинизма.
Может быть они так "помечали" параметры, которые будут изменятся внутри.
короч, сначала рисуем в нормальных координатах, потом масштабируем. поворот фигуры только для 90град
https://pastebin.com/sJjcPS4A
то-есть если просто поменять местами высоту и ширину можно достичь такого же еффекта только с меньшей нагрузкой, мне же нужно именно поворот на определенный градус, пусть и не с идеальной точностью, но все же примерно то бы пропорции сохранялись, и не слишком ли жестка задача для студентов?
>но 90 градусов и закостилить можно.
>>186739
>пока пусть будет только 90, хотя бы что бы 90 работало
>>187053
> можно достичь такого же еффекта только с меньшей нагрузкой
не такой же. контент не повернется.
>именно поворот на определенный градус
ты так и не объяснил относительно чего поворачивать. Нарисуй в пэинте поворот на 60 градусов.
>но все же примерно то бы пропорции сохранялись
transform rotate сохраняет пропорции
> не слишком ли жестка задача для студентов?
Нет. Проблема в том, что ты не знаешь что тебе надо.
>но 90 градусов и закостилить можно.
>>186739
>пока пусть будет только 90, хотя бы что бы 90 работало
>>187053
> можно достичь такого же еффекта только с меньшей нагрузкой
не такой же. контент не повернется.
>именно поворот на определенный градус
ты так и не объяснил относительно чего поворачивать. Нарисуй в пэинте поворот на 60 градусов.
>но все же примерно то бы пропорции сохранялись
transform rotate сохраняет пропорции
> не слишком ли жестка задача для студентов?
Нет. Проблема в том, что ты не знаешь что тебе надо.
>пока пусть будет только 90, хотя бы что бы 90 работало
ну тут ты прав, это лучше из того что меня пока есть
>transform rotate сохраняет пропорции
он сохраняет пропорции но вот при растягивании пропорции уже не будут сохранятся, потому что нас посчитан коэффициент на х или у а нужно тогда пропорциональное значение из этих двух. но вот это по-моему уже вообще не реально
что по поводу
>ты так и не объяснил относительно чего поворачивать. Нарисуй в пэинте поворот на 60 градусов.
я правда не знаю как мне поворачивать что бы область заполнилась нормально
>ты так и не объяснил относительно чего поворачивать. Нарисуй в пэинте поворот на 60 градусов.
вот как-то так можно?
>Ты тот чел, которому нужны семь красных перпендикулярных линий, нарисованных прозрачным цветом, две из которых будут синими и параллельными.
ЛОЛ, но все же в конце он все нарисовал, а ты что не можешь? ты же программист!
шучу если что.
так-то этот чел который хочет 7 красных линий это препод, я сам охриневаю от задания,
можно же написать тогда какую-то логику которая будет считать угол поворота и чем он ближе к 90 тем сильнее смещать в право что бы на 45 градусах точка поворота была как на первом пике а на 90 градусах точка поворота была как на втором
Есть ли смысл делать выкат из джавы в шарпы? Сильно тяжело?
Легко. Смысла нет.
ЭТО-ТО!!!
Это именно то что мне нужно было!!
Как ты это понял!
КАК тебе ужалось это понять и придумать?
Ты что гребаный гений?
Но кроме того что ты понял ты еще понял как написать, написал формулу, мне с трудом удавалось даже представить резульятат а ты все написал,!! вот бы мне быть таким же крутым программистом в будущем.
У тебя наверное много лет опыта?
сколько платят программистам такого же класса?
> с трудом удавалось даже представить резульятат а ты все написал
Блокнот+карандаш = сила
>быть таким же крутым программистом в будущем.
Бойся своих желаний
>много лет опыта?
0
>сколько платят программистам такого же класса?
0
Да, ладно, ты что студент?
дай свои контакты, я хочу кое-то спросить
ну или напиши мне
>Да, ладно, ты что студент?
Нет, другая работа. А прогаю просто так ¯\_(ツ)_/¯
>дай свои контакты
нит
>Нет, другая работа. А прогаю просто так ¯\_(ツ)_/¯
вот как... я вообще вкинул эту задачку много где, стак оверфлов, телетеграмм каналы, форумы, в общем в много различных ру тусовок, и решил пока только ты, не знаю кем ты работаешь, но это должна быть крутая профессия потому что к программированию у тебя талант, тот самый за который много платят....
любой может генерик круд операции программировать
а вот решить математическую задачку с звездочкой да и с неясными и изменяющимися условиями... да это нужно иметь что-то в голове, с таким человеком я бы хотел общаться
Настя составляет 6-буквенные коды из букв Н, А, С, Т, Я. Каждая допустимая гласная буква может входить в код не более одного раза. Сколько кодов может составить Настя?
Ответ: 6075.
Откуда там нахуй 6075 получается?
Правильный ответ: МАСТУРБЕК.
Сап анон, тут такое дело не могу понять почему не работает условие
if (names == inputName) //не работает
if (names.Contains(inputName))//не работает
if (names.Equals(inputName))//не работает
Точнее оно работает, пока я не включаю блок else
https://pastebin.com/dhiaJbLj
Да ёбаны врот, онаны. Как в блядской visual studio 2019 community создать проект Windows Forms .NET CORE???? В каком она пакете???
Мутирую в гидралиска.
Вы видите копию треда, сохраненную 16 мая 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.