Вы видите копию треда, сохраненную 18 ноября 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
Литература вторым постом
1. Ресурсы:
- http://stackoverflow.com/questions/tagged/c#
- http://www.tutorialspoint.com/csharp/
- http://professorweb.ru
- http://net-informations.com
- http://habrahabr.ru/hub/csharp/
2. Онлайн-компиляторы:
- https://dotnetfiddle.net/ - возможно лучший вариант. Встроено немного убогое, но все-таки автодополнение и проверка синтаксиса.
- http://ideone.com/
- http://csharppad.com/
- http://www.tutorialspoint.com/compile_csharp_online.php
- http://rextester.com/l/csharp_online_compiler
3. WinForms или WPF?
Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.
4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
Неправда. C# довольно активно развивается, недавно вышла третья версия .NET Core фреймворка и восьмая версия языка. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.
5. Какую ИДЕ выбрать?
Для Windows самым очевидным вариантом будет Visual Studio (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx). Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений
Для мака и никсов самый юзабельный вариант - MonoDevelop ( http://www.monodevelop.com/download/ ).
Для vim можно использовать OmniSharp ( https://github.com/OmniSharp/omnisharp-vim ).
Кросплатформенный полуредактор/полуIDE VS Code ( https://www.visualstudio.com/en-us/products/code-vs.aspx )
Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана.
Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа (Project Rider), вероятно в ближайшее время станут доступны первые EAP. IDE заявлена как кросплатформенная, со всем решарпер-функционалом, поддержкой отладки, моно и .net core.
SharpDevelop - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими ништяками. Если хочется что-то по быстрому набросать, а выкачивать гигабйты нет желания, то возможно SharpDevelop будет лучшим вариантом.
6. С# для мобильной разработки
Если нужны инструменты для разработке под мобилы, ставь сразу VS2015 и при установке выбирай все нужные компоненты.
Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspx
Из актуальной литературы
- Xamarin Mobile Application Development
- Xamarin Essentials
7. Дополнительные инструменты для разработки на C#
LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных
dnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студии
dotPeek - бесплатный декомпилятор от JetBrains
scriptcs - для запуска C# кода как скриптов, возможность использовать как REPL
8. Расширения для студии
ReSharper - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентов
Supercharger - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по ним
Indent Guides - показывает вертикальные линии на каждом уровне отступов.
Format document on Save - форматирует код каждый раз при сохранении документа
Code alignment - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях
Обзор Roslyn: https://github.com/dotnet/roslyn/wiki/Roslyn Overview
Новые возможности C# 6.0: https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C#-6
ПРИНИМАЮТСЯ ПРЕДЛОЖЕНИЯ ПО ШАПКЕ
Код этой шапки: https://pastebin.com/YJFQKsNm
Прошлый тред тонет здесь: >>1499746 (OP)
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином
- C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.
10. Более хардкорный материал
- C# in Depth (Jon Skeet) - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
- Writing High Performance .NET Code (Ben Watson) - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили.
- CLR via C# (Jeffrey Richter) - это классика, это знать надо.
11. Хочу еще хардкорней
- C# Deconstructed (Mohammad Rahman) - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата.
- Expert C# 5.0 with .NET 4.5 Framework - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.
- .NET IL Assembler (Serge Lidin) - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам
12. Литература по WPF
Из более-менее актуального можно выделить пару книг:
- Pro WPF 4.5 in C# (Matthew MacDonald)
- Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
13. Литература по ASP.NET
- Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
- Pro ASP.NET MVC 5 Platform (Adam Freeman)
- Beginning ASP.NET for Visual Studio 2015 (William Penberthy)
14. Литература по асинхронности, параллелизму и всему такому
- Concurrency in C# Cookbook (Stephen Cleary) - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции
- Multithreading in C# 5.0 Cookbook - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
- Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg
15. Литература не по шарпу, но так или иначе связанная с языком
C# Game Programming Cookbook for Unity 3D (Jeff W. Murray) - разработка на шарпе под Unity
Introduction to Neural Networks with C# (Jeff Heaton) - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
Machine Learning Using C# Succinctly (James D. McCaffrey) - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
16. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"
17. Что еще нужно знать, чтобы взяли работать за еду?
- SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper
- Системы контроля версий - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick
- Гитхабы-гитхабчики - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун
- Алгоритмы - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках
- Структуры данных - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы
- Если идти в веб - HTML, CSS, JavaScript, веб-сокеты, REST
- Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID
18. Я не умею читать, что посмотреть?
- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином
- C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.
10. Более хардкорный материал
- C# in Depth (Jon Skeet) - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
- Writing High Performance .NET Code (Ben Watson) - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили.
- CLR via C# (Jeffrey Richter) - это классика, это знать надо.
11. Хочу еще хардкорней
- C# Deconstructed (Mohammad Rahman) - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата.
- Expert C# 5.0 with .NET 4.5 Framework - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.
- .NET IL Assembler (Serge Lidin) - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам
12. Литература по WPF
Из более-менее актуального можно выделить пару книг:
- Pro WPF 4.5 in C# (Matthew MacDonald)
- Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
13. Литература по ASP.NET
- Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
- Pro ASP.NET MVC 5 Platform (Adam Freeman)
- Beginning ASP.NET for Visual Studio 2015 (William Penberthy)
14. Литература по асинхронности, параллелизму и всему такому
- Concurrency in C# Cookbook (Stephen Cleary) - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции
- Multithreading in C# 5.0 Cookbook - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
- Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg
15. Литература не по шарпу, но так или иначе связанная с языком
C# Game Programming Cookbook for Unity 3D (Jeff W. Murray) - разработка на шарпе под Unity
Introduction to Neural Networks with C# (Jeff Heaton) - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
Machine Learning Using C# Succinctly (James D. McCaffrey) - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
16. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"
17. Что еще нужно знать, чтобы взяли работать за еду?
- SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper
- Системы контроля версий - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick
- Гитхабы-гитхабчики - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун
- Алгоритмы - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках
- Структуры данных - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы
- Если идти в веб - HTML, CSS, JavaScript, веб-сокеты, REST
- Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID
18. Я не умею читать, что посмотреть?
- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
1) Нужно ли его в подавляющем большинстве случаев для сайтостроительства использовать или только при проектировании API? То есть если я пишу код к которому клиент будет только через браузер обращаться, насколько мне нужно придерживаться REST'a?
2) Решил все таки следовать REST'у в проекте, но у меня пиздец не получается нормально формы PUT и DELETE отправлять, чтобы контроллер их понимал.
Пик 1 - сама форма.
Пик 2 - две действия контроллера, один для DELETE, другой для GET. При отправке формы меня перекидывает на GET действие.
Пытался решить с помощью:
1) Залез в настройки IIS Express как у них в FAQ написано, поменял строчку на <add name="ExtensionlessUrl-Integrated-4.0" ... verb="GET,HEAD,POST,DEBUG,PUT,DELETE" Остальные действия и до, и после этого проверял.
2) Fetch API (пик 3) - алерт выскакивает, однако перенаправляет все равно на гет. Вместо url ставил как и прямую ссылку "/product-catalog/product", так и "@Url.Link("ProductCatalogSingle", null)"
3) Чистый Jquery AJAX (пик 4)
4) Подключал AJAX unbostuctive, пытался с помощью тегов data-ajax="true" data-ajax-method="delete", в итоге тоже безрезультатно.
Короче пробовал все что здесь нашёл https://www.learnrazorpages.com/razor-pages/ajax/form-post
Может кто-нибудь пошагово объяснить как в чистый ASP.NET Core MVC шаблон запилить функционал посылки приема REST'овых форм. И нужно ли это вообще?
https://pastebin.com/zu09Ve9j - дубляж кода в текстовом виде
закинул в стеш и дропнул, помогло
ЛУЧШИЙ ОНЛАЙН РЕСУРС ПО C#/JS/SQL И СОПУТСТВУЮЩИМ ТЕХНОЛОГИЯМ
https://metanit.com/
У Java нет поддержки IT компании, которая входит в топ-3 самых успешных IT компаний мира. Что уже сказывается на языке. Ты хоть видел последний стрим майкрософтов?
не корми быдло, тем более так толсто
ХЗ, у полутора анонов от него ПИЧОТ. Наверно хотели войти вайти, а оказалось, что прочитать метанит недостаточно.
Зачем мне это - история долгая.
>как только происходит какое-то упоминание модели
будет идти запрос в БД, где по внешнему ключу происходить выборка данных
eager, explicit, lazy loading тебе в помощь
>eager, explicit
В коде уже дохуя десятков запросов, это в каждый надо добавлять .Include/референсов и тестировать.
>lazy
Все бы ничего, да в этом легаси полно .ToList()'ов до обращения к полям связанной модели.
Ты не поверишь чем именно сейчас я занимаюсь и почему эта проблема возникла.
Как вообще кто-то в соло может написать что-то типа https://github.com/dotnetcore/surging ? А если и может, то сколько на это должно уйти времени и как подобное распланировать?
На метаните много плохих практик и при этом даже не говориться как сделать правильно. Плюс там очень много именно решения конкретных проблем и ньюфаг просто берет код оттуда, немного меняет и думает что понял, а на деле нихуя он не понял. Ну и куча ошибок в коде, не говорится что и зачем там используется и как этот же инструментарий использовать если у тебя задача чутка отличается. Ко всему все что там описано это чисто учебная фигня, которая в реальном проекте на реальном железе работать нормально не будет.
>желательно все эти подходы соблюдать с вынесением всего в интерфейсы
Где это ты такие подходы видел? Интерфейсы существуют для того чтобы создавать мосты между иерархиями классов, которые между собой напрямую не связаны, но имеют что-то общее. Абсолютно всё переносить в интерфейсы будет только человек, который не понимает их предназначения.
Читай книги по ООП. Сейчас ты просто не понимаешь для чего всё это делаешь, какая у этого и цель и почему это удобно, именно поэтому и дропаешь. Когда будешь знать что зачем и почему, то заставлять себя не придётся, код автоматически будет соответствовать принципам ООП и работать.
Няша, я же немного преувеличил про всё вынести в интерфейсы.
Принципы, на концептуальном уровне, я понимаю. Взять тот же SOLID, каждый из его пунктов понятен, так же понятно как это все делать в частных случаях и для чего оно нужно, но когда нужно писать что-то, я просто начинаю запутываться во всем этом. И ведь я бы мог сделать сначала какой-то прототип просто чтобы работал, а потом начать по кускам пытаться его привести в нормальный вид, но голос в моей голове говорит, что так будет сложнее потом и надо сразу делать как надо, а чтобы делать сразу как надо надо пониматься что надо, а я каждый раз столкнувшись с чем-то новым просто не понимаю что в данный момент таки надо.
Короче, посоветуй тогда нормальных книг/лекций по ООП, где не про наследование-инкапсуляцию-полиморфизм будут рассказывать, а про то как выделять эти самые сущности, как правильно строить структуру проекта чтобы потом его можно было допиливать и расширять и всё это вот.
>плохих практик
где эти практики лучше по твоему? На мсдн? Так там практик нет от слова соовсем. Так лучше хуже лучше, чем ничего
>много именно решения конкретных проблем
в принципе тоже самое, что и с SOF. Хуй знает, как это работает, но работает
>куча ошибок в коде
если пользователь информации не дебил, он поймет где фиксить. Best practice все равно не найти.
Я именно с метанита нашел некоторые архитектурные решения (типо DAL-BLL-UI или IUOW), отношения между классам - Агрегация, композиция, DI. Много прочтенного было Usefull.
К тому же на метаните (в отличии от МСДН) четко структурирована информация, где можно пункт за пунктом имея под рукой IDE практиковать (с какими ни какими примерами).
Говорить, что это хорошо, а это плохо, т.к. не мсдн могут на галерах, где руки прибивают от использования таких порталов (т.к. приучают к чтению первоисточников).
>Так там практик нет от слова соовсем.
Ты когда там последний раз был? На каждый класс и каждый метод есть пример и даже не один, плюс отмечают подводные камни, которые могут встретиться при работе с этими классами и методами. Или ты очередное быдло, которое английский не знает?
>если пользователь информации не дебил, он поймет где фиксить.
Т. е. ты увидел кусочек непереварившегося арахиса в куче кала, а теперь предлагаешь хорошенько его очистить, съесть и получить немного питательных веществ? И всё это в то время, когда рядом стоит лавка с бесплатным арахисом, без говна и мусора? Самого не смущает?
>К тому же на метаните (в отличии от МСДН) четко структурирована информация
На мсдн уже давно есть отличный туториал, где информацию структурирована в разы лучше чем у твоего мутанита.
>я знаю
>каждый из пунктов понятен
Это тоже самое, что сказать о том, что тебе понятен принцип умножения столбиком, но когда перед тобой стоит задача умножения нескольких двузначных чисел, ты пользуешься сложением.
>тогда нормальных книг/лекций по ООП
Заходишь на libgen.is и вбиваешь OOP в поиск.
Хорошая попытка, Шинобу, но нет.
По твоей логике тогда все онлайн туториалы нужно выпилить и оставить только msdn. Или ты не знаешь, что информацию можно черпать из разных источников?
>ты увидел кусочек непереварившегося арахиса в куче кала
ты все слишком утрируеш. Я тебе написал примеры, по которым стоит не упускать из вида этот портал. Кому то он будет полезным, кому то нет. Ведь каждому решать, с каким источником работать и какой использовать. Есть даже те, кто по индусовским туторам на ютубе пытаються учится, что ты им скажешь?
>По твоей логике тогда все онлайн туториалы нужно выпилить и оставить только msdn. Или ты не знаешь, что информацию можно черпать из разных источников?
По шарпу нормальных онлайн туториалов нет, наверно потому что все понимают, что им не переплюнуть msdn. Для остального есть книги, что в этом удивительного, блять? Да, твой мутанит сосёт, и твоё отрицание это никак не меняет.
>Кому то он будет полезным, кому то нет. Ведь каждому решать, с каким источником работать и какой использовать
Для этого и существует такое понятие как "совет", именно для этого и существует этот тред. Новичку-вкатывальщику не нужны ресурсы, полезность которых иллюзорна и сомнительна. Лучше пусть две главы троелсена прочтет, чем потратит это время на выискивание полезного у метанита.
Бля.. как про себя прочитал, точь в точь моя ситуация.
>По шарпу нормальных онлайн туториалов нет
Все твои посты на тему метанита - это пердеж в лужу. Для того, чтобы писать на шарпе нужно... знать шарп. Метанит дает знания по шарпу? Дает. Дает примеры, для укрепления знаний? Дает.
Все твои доводы - это обобщение к первоисточнику. Можно такое приведение сделать к Троелсону или Шилду. Типо, нахуя их читать, если есть МДСН (да да, на ангельском, книжечки же можно на рузком почитать).
>Новичку-вкатывальщику не нужны ресурсы, полезность которых иллюзорна и сомнительна.
Такой же пук в лужу, как и все остальные. Когда приходит джун на собес, его не спрашивают - откуда ты взял информацию по теме? Конечно нет, главное чтобы правильно ответил.
Upd. Я бы даже сказал так, такие ресурсы, как метанит - скорее для тех, кто даже с программированием мало знаком и кому тяжело даются мануалы. Msdn - ресурс к которому так или иначе приходят в процессе РАБОТЫ, но не всегда до нее.
Постарайся привести хоть один весомый довод, почему метанит нельзя использовать впринципе. Я не отстаиваю позицию, что метанит >= msdn, а наоборот - лучше первоисточников ничего не может быть. Я за то, что каждому источнику информации место быть, даже тем же индусовским туторам на ютубе.
>Можно такое приведение сделать к Троелсону или Шилду. Типо, нахуя их читать, если есть МДСН (да да, на ангельском, книжечки же можно на рузком почитать).
В том и дело, что нельзя, потому что у Троелсена и Шилда по 1к+ страниц, а у мутанита "тоже самое", но на 50-ти страницах. Поэтому ему и противопоставляется мсдн, в которой материал подается сжато, но при этом без ошибок, хорошими примерами и в обновленном виде.
>Такой же пук в лужу, как и все остальные.
Ты сам это подтвердил, когда сказал, что метанита перед употреблением нужно фильтровать, а во время нужно еще и дешифровать текст и понимать, где этот долбоеб опечатался, а где просто объебался.
>лучше первоисточников ничего не может быть
Так пиздуй спецификации читать, при чём здесь MSDN?
>Я за то, что каждому источнику информации место быть
Так пусть будет, только вне этого треда, потому что этому источнику есть хорошие аналоги и тратить на него время не имеет смысл.
Зачем тебе цикл?
точки и запятые как разделители выбираются относительно региональных настроек, вроде есть какая-то перегрузка которая конкретно позволяет указать что будет. просто позакидывай строки типа "12.3421", "11,11145215" и так далее, и посмотри что будет. и убери этот наркоманский цикл.
Почему именно с запятой? Может быть и точка, зависит от языка. Для этого есть статический метод у класса char - char.IsPunctuation(char c)
В итоге тебе надо проверить булевый тип который возвращает TryParse, если он равен true, значит ты разбиваешь строку на массив символов и проходишь по каждому элементу, используя IsPunctuation до тех пор пока не получишь true или не пройдешь весь массив. Если получил true, значит число дробное, если нет, значит целое.
Если TryParse вернул True, значит делишь его на 1 используя modulo operation (%), если результат деления равен нулю, значит число целое, если нет, значит дробное.
в экселе рациональные числа разделяются ',' а не точками, так что не удивительно, если аналитики начнут преобразование точек в запятые
Это в настойках нужно лазить, гуглить... сложно, та и коллеги не поймут. Так что ',' - общепринятый стандарт
мимо бывший экономист-финансист
>в экселе рациональные числа разделяются ',' а не точками
В экселе они разделяются так, как принято в установленном в ОС национальном стандарте (локале). То же самое с датой и т.п.
Не только
Это в пидорахии и еще нескольких странах, в США по дефолту '.' даже в экселе.
Блядь, я из-за того что неправильно прочел полез в исходники .Core. Думал ты спрашиваешь как работает TryParse() и скачал. Пиздос. Ну хоть будет что почитать на выходных.
А работает с TryPares() проще некуда, указываешь культуру и просто пихаешь строку, никаких циклов-хуиклов не нужно.
Я так же не понял, из за чего вся шумиха с ASP.NET Core 3. Подумаешь сделали внутренний Json, Blazor - это тот же Razor. Вот то, что есть возможность на линуксе запускать в отличии от ASP.NET - это да.
И кто ни будь может посоветовать годный ресурс или статью, где показан полный цикл прохождения в ASP.NET от request до response? Какой жизненный цикл приложения?
Хочу написать программулину, которая с телефона будет отправлять координаты этого самого телефона и немного другой инфы на мой сервер. До этого с сетями дело особо не имел, разве что чатик консольный для локальной сети делал где по IP подключеление было. Как я понимаю, основное отличие только в том, что IP телефона динамический. Может есть еще какие-то подводные камни? И еще, как мне потом узнать что это тот самый телефон подключился? Я пока придумал только такое решение: телефон отправляет пакет регистрации, а сервер в ответ присваивает адрес и сохраняет его в БД, телефон этот адрес сохраняет и в следующих пакетах прикрепляет, чтобы можно было понять что это тот самые телефон, но мне кажется что у такого решения есть некоторые недостатки, например как узнать что кто-то другой не узнал адрес и просто крепит к своим пакетам? Я думал что можно как-то пакеты шифровать, но если шифровать весь пакет, то получается что я с ходу не смогу определить что мне на сервер стучится именно телефон а не какой-то левый хуй, следовательно будет тратиться время на расшифровку пакета и только потом приниматься решение что со стучащимся делать. Все это дело на .net core + xamarin. Подумывал о том, чтобы еще веб-апи сделать, но пока отложил эту идею.
Так вот, что почитать про это всё в контексте .net core? Просто я с этим самым .net-ом знаком еще меньше чем с сетями и не хочется пилить свой велосипед, а потом узнать что за меня большую часть проблем уже решили и можно было взять готовое решение.
Нет, они похожи. Только какой смысл...
смотря на каком ты этапе
Если стану шарпистом, смогу позволить себе пикрил?
Забейте, нашел System.IO.Pipes
Есть задача сделать навигационную панель, если пользователь зарегистрирован (Система регистрации через Identity), то нужно загружать одну панель, если нет, то другую.
Как это сделать? Разные дочерние действия вызывать или прямо в представлении менять?
оп сейчас не я.
Алсо нумерация сбилась, поэтому следующий тред будет 15.
Не скучайте без меня няши, сейчас у меня мало времени на тред, так как меня уже повышают до мидла. Работы прибавилось, а ещё скоро я еду в японию на половину декабря. Ня :3
В лейауте посмотри идентити да и все.
Потому что им не дают.
Это умение в абстракции. Дело вовсе не в аниме. Например в 90 годы лучшими были Фэнтезийщики, просто анима не особо была распространена. Сейчас же банально проще поставить себя на место гг и проработать ми заранее в голове используя логику и его законы. Прокачивает совместный скилл с программированием знатно.
Нихера не понимаю сериализацию и интерфейсы.
Что может быть сложнее в С, чем это?
Это элементарные понятия, сложность которых сравнима со сложностью понимания переменных и базовых типов.
Мне, как нуфагу метанит совсем не нравится, говно какое-то, в лучшем случае нихуя не понятно почему и как, а нередко бывает что ещё больше запутывает.
Вообще заметил, что вся инфа на русском как то криво и уебищно подаётся, на английском легче понять даже с учётом моего весьма посредственного ингриша.
Ты просто тупой, тебе и msdn не поможет. Метанит — это разжевывание совсем для детишек деревянных.
>Метанит — это разжевывание
>C# за 50 неполных веб-страниц
>разжевывание
Толсто даже для двача.
Конечно на пустом, особенно когда это говноподелие позиционирует и озаглавливает себя как "Полное руководство". В то время как это даже полным справочником назвать нельзя. Хотя чего ожидать от шизиков, которые в многочисленных опечатках и просто неверных трактовках, не видят ничего плохого, потом такие долбоебы пишут using SmallBasic и говорят, что написали графическое приложение с черепашкой.
давай пруфлинки для начала, прежде чем кидаться словами. Формат:
1. Что по твоему мнению должно быть на метаните;
2. Источник, где это написанно.
Мне вообще нравятся сеньеры двача, пердят в лужу, что все пидарасы, только они Д'артаньяны, по факту ниодного пруф линка не увидел. Целевой подход должен быть, иначе есть вероятность сходить нахуй
Кидать линки из CLR via C# и других источников, где уровень работы с языком совсем другой не нужно.
Листай прошлые треды, там будут тебе пруфлинки и разжевывания на тему "почему метанит говно". Вот где парадокс - долбоебу не нужно разжевывать про C#, но нужно разжевывать почему метанит и его ресурс говно.
> пердят в лужу, что все пидарасы
С каких это пор мутанит == все? Куча годных ссылок в шапке, но шизику-мутанитоебу почему-то не хватает мутанита.
>Кидать линки из CLR via C#
Вот и еще один хороший детект долбоеба - кидается из крайности в крайность. Ему либо обрубленное, кривое дерьмо вида метанита, либо книги для людей с опытом вида CLR via C#, а между этим пропасть.
>пук пук пук
Все, как писал ранее
>CLR via C# книги для людей с опытом
да ты я смотрю дно ногами не чувствуешь. Сейчас на каждом первом собесе джуна спрашивают про компиляцию MSIL, сборки, хеш таблицы
Насколько ReSharper актуален для проверки своих работ? Этим гавном пользуются у вас на галерах?
У меня больше используют для рефакторинга. Потому с каждой новой версией студии он все меньше нужен становится.
VS2019 умеет ну, да вообще умеет ВСЁ... даже код пишет за тебя
using System;
namespace Practica_1_1
{
class Program
{
static void Main()
{
Console.WriteLine("Input x =\r");
double x = Convert.ToDouble(Console.ReadLine());
double f = Math.Cos(1.5 * x)- Math.Exp(Math.Sin(x+4/3))+ Math.Sqrt(x+7/6);
Console.WriteLine("x={0} \t F={1}",x,f);
Console.ReadKey();
}
}
}
Но ответы почему-то не сходятся, даже гуглить непонятно что, так как никаких ошибок не выдаёт. Что я делаю не так?
4/3 и 7/6 - это целочисленное деление и результат соответственно тоже целочисленный, то есть 1.
Понял, а как делить не целочисленно, вроде в руководстве написана, что эта операция применима к не целочисленным.
Всё уже понял, спасибо за совет, хз сколько бы я ещё с этим парился. Добра тебе
0,235 ,если я правильно понял суть.
Такого рода таблица, правда я не понимаю зачем тут второе число в в секции с X
Извини, я дурак сонный, вводил 1,26 вместо 2,26
В PHP это сделать вообще просто.
Что нужно использовать, чтобы реализовать такое на C#? ASP .NET MVC 5 выглядит слишком громоздко
Мне и без middleware хорошо. Мне б чего-то простого, хайлоад не надо
Ну, если тебе это кажется слишком громоздким, то просто юзаешь без задней мысли сокеты и по TCP/UDP отправляешь ответ. Даже не знаю что может быть менее громоздким чем это.
Я худею с MSDN ruzian edition, бом бом. Тут на мутанит пиздели, этот портал тоже не отличился. Решил тыкнуть в сурс с рузке переводом, проиграл с подливой.
Ванькам так и намекают - "Learn english motherfucker"
>Тупое быдло
Которые даже пост не читает, а уже начинает срать кирпичами
>Кассы в макдональдсе простаивают
ты походу тот шизоид, который "ЗА МДСН, ПРОТИВ МУТАНИТА". Во как пригорела жопа, небойсь уже с десяток репортов накатал на портале.
>ряяя ета ни я на русике читаю эта вы пасты не читаете ммаааам скажи им што мутанит крута!!! ну мааам
Проиграл.
С подливой забыл добавить, ведь ты обосрался, Маня
Тоже считаю метанит говном, but who cares? Рвать жопу доказывая такому же долбоебу, как и ты, что твоя точка зрения правильная, а его нет?
1.определить, сколько различных символов встречается в строке.
И в общем пиздец не знаю даже как все сделать на базовом пошаговом уровне. Через метод Distinct ебанул за 2 минуты. А вот как он работает на прикладном уровне хз. В общем если можете подскажите как решить или что читать. Снизу кусок кода который вносит строку для подсчета символов хз нужен ли он тут.
Типо того.
Согласен.
Классическое решение примерно так выглядит: Сохраняешь строку, заводишь список char, затем в цикле добавляешь в этот список новый символ, если данного символа в строке нет, после этого смотришь сколько символов в списке.
Небольшая сложность была бы, если бы ты тебе там нужно было не символы а буквы посчитать, но простейшим решением было бы сначала строку перевести в один регистр, а дальше так же.
Анончик подскажи еще один момент не совсем понимаю.
Получается прогоняем массив чисел через цикл.
и Если число не повторяется в массиве то добавляем его в переменную? И если можно метод Contains он получается добавляет не повторяющиеся значения?Этот метод принадлежит классу String верно?
Да вроде не секрет как Distinct работает.
Ты куда-то не туда свернул. Во-первых ты создаешь массив равный длине строки - слишком расточительно. Хотя в худшем случае строка будет из уникальных символов, тем не менее при росте длины строки, вероятно, количество повторяющихся символов будет увеличиваться. Т.е. скорее всего даже для строки длиной в 10к уникальных символов будет не более ста. Во-вторых, попробуй придумать имена переменных по-лучше. В -третьих, разумно предположить, что если ты вызываешь Contains на массиве, то медод принадлежит массиву а не строке (на самом деле это расширение для IEnumerable). И нет, он ничего не добавляет, а только проверят есть ли указанный элемент в последовательности.
>массив чисел через цикл
строку через цикл
> Если число не повторяется в массиве
если массив не содержит символ
>добавляем его в переменную
добавляем символ в массив, увеличивая счетчик на 1
>прогоняем массив чисел
Прогоняем массив символов в виде String
>Если число не повторяется в массиве
если символ не повторяется в новом массиве
char[] x = new char[s.Length];
то добавляем в него символ из цикла
>метод Contains он получается добавляет
он ничего не добавляет, он проверяет принадлежность (в твоем случае символа ХХХ из цикла в массиве X
>метод принадлежит классу String
https://docs.microsoft.com/en-us/dotnet/api/system.string.contains?view=netframework-4.8
Цикл, нет? И выписывать каждую букву по итерации по индексу
https://gist.github.com/Hotriden/3c10522d827e1e6ecb61fabc85ec9fdb
>>19466
Ему нужно каждый раз добавлять по букве, а не выводить по букве
1) ASP.net
2) Unity
3) ????
4) Desktop
В глаза долбишься? Там консоле.клир перед новым выводом.
Просто ну не может же быть так, что у вас либо Http для сетевого взаимодействия, либо ручками все собирай. Да, про попытку перенести Mina на нет кор я слышал, но там во-первых много чего недопилено, во-вторых, проект, судя по гитхабу, заброшен и последняя версия под .net Core 2.
Вот интересно, как, им web api нужно или я могу просто в MVC генерить ответ через JSONRESULT?
И как должна работать система регистрации, у них вообще Membership, я хочу заюзать Identity.
Ночью многие спят, а не капчуют в /pr/. Поэтому ответа и не получил
Потому что в этом треде кроме вкатывальщиков никто не сидит, ты слишком сложные вопросы задаешь.
>12/11/19 Втр 21:39:17
>>19879
>13/11/19 Срд 07:18:44
Подержите мою сигару, уже бегу помогать анону, как настроить Kestrel, ШТО Б БЫЛО КАК НА АПАТЧЕ В ДЖАВЕ. У НИВО НАВЕРНОЕ ГУГЛ СЛОМАН ИЛИ ДЖАВИСТЫ НЕ УМЕЮТ В ГУГЛ.
Это случайно не ты тот, кто раз в 2 недели постит какую то дичь типо упаковки в обобщенных коллекциях при переборе циклом, а потом под видом "РАЗОБРАЛСЯ" начинает закидывать говном всех, кто ему отписал?
>>19896
ты сильно охотно делаешь чужой таск, за который нихуя не платят?
на сколько я помню, POCO всегда должны быть открытыми и без наследования. Попробуй в песочнице заменить поля из твоего POCO из класса маппинга. Если есть нужда делать мост по редактированию сущностей - можешь запилить автомаппер.
У Троелсена есть про .Net Core
@Html.RouteLink("Link", "PagenationRouteLink", new { currentPage = 1, itemsOnPage = 15})
Можно ли это как то провернуть?
Например сделать словарик с ключами - названиями аргументов и подцепить его?
Фиксировано размер Count у тебя задан, вот и создаёт
Попробывал как https://stackoverflow.com/questions/7595416/convert-dictionarystring-object-to-anonymous-object через динамический объект, выдает ошибку что нельзя динамический объект пихать, надо его закастить. Может есть вариант напрямую словарь засунуть?
Нет. Части deprecated legacy говна, вроде WCF вообще нет. Часть специфичных технологий, вроде Windows Forms или WPF только на винде. Впрочем, Avalonia или UNO что-то дают схожее и на лине
Они уже давно перетянуты, вот только кроссплатформенными от этого не стали и не станут, потому что зависят от Win API, которого, очевидно, на других платформах нет.
Для кроссплатформенности есть Xamarin, ну или Avalonia, но её пилят 3 калеки.
Действительно, а я повелся :(
Блять, ты на жабу посмотри с её JavaFX. Говно то ещё. У тебя вся кроссплатформенность заключается только в UI?
Я так и сказал. Они в Core есть, но только для винды.
Блять, а что тебе на линуксе надо? Основные направления для шарма -- ASP (Web), Unity, Desktop (WPF и Windows Forms). Может, ещё Xamarin. Есть, конечно, ещё IOT и ML, который недавно подтянули, но они не так сильно распространены. Как раз основные направления в Core есть для всего.
Зачем тебе, например, WCF, когда есть более удобный и логичный ASP.NET Core WebAPI? Интерфейс Windows Forms и WPF завязан на WinAPI, в лине его вообще нет, а в гейоси Cocoa. Хочешь GUI -- чекай Avalonia и UNO (последнее более предпочтительно, т.к. даже Roadmap у них схож с WinUI, т.е. что-то схожее с наивным GUI и, соответственно, будет почти не отличаться от WPF)
Уебывайте их треда нахуй, вкатывальщики, блять. Язык у них, видите ли, плохой, блять.
С словарём такое вряд ли пройдёт, т.к. просто не гарантированно же у тебя, что данные в анонимном объекте соответствуют в Value одному типу. В таком случае можно попробовать Dictionary<string, object>, например, но проблема тогда с value-типами.
Еще идея -- рыться в рефлексии, возможно, проверять поля и ручками создавать словарь и заполнять его.
Server server = new Server();
server.Port = 8000;
server.MaxConnections = 100;
server.SessionTimout= 10000;
server.ProtocolParser = new HttpParser();
server.SessionHandler = new MySuperSessionHandler();
server.Start();
с тем как подобное делается в Asp.Net Core. Там пиздец какой-то и понять как оно работает и почему какой-то хуй именно это использовал а не то просто невозможно без тонны прочитанных мануалов, в моем примере и школьник поймет как что каждая строчка значит и сможет, если надо, настроить так чтобы у него работало и делало то что он хочет.
Не представляю, как кому-то именно нравится может то как Asp.Net Core выглядит и кому кажется он логичным. Да модно-молодежно, да снижается связность классов, но при этом на пустом месте превращаем код в нечитаемое и хуй пойми как отлаживаемое говно.
Почему говно? Там CSS можно.
Кросплотформенность сейчас есть только у JS с его Node.js и Electron. Вот ведь анекдот получается. Строго типизированные языки, которые изначально были заточены и предназначены для написания софта, с проглотом соснули у какого-то браузерного обрубка с динамической типизацией, который изначально предназначался для скрытия/открытий веб-форм.
Даже сам майкрософт прогнулся и написал Visual Code используя Electron. Если это не поражение, то что тогда?
Как раз из-за читаемости, отлаживаемости и реюзабилити, всё выглядит так, как это выглядит в asp.net core. C# это энтерпрайз уровень, а не уровень лаба №1 или мувиадвайсер для всей семьи. Энтерпрайз подразумевает штат программистов, которые вообще могут между друг другом не пересекаться, и весь этот штат работает над кодом состоящим из нескольких сотен тысяч строк. Вот когда ты кодишь на таком уровне, тогда ты начинаешь понимать почему твои server.Start(); являеются хуитой и баловством.
Именно потому что там штат программистов, которые могут не пересекаться и нужно чтобы код был понятен сразу.
Это неофициальная реализация бинарников.
В чем проблема на офф сайте сделать? Видимо там нативные костыли есть.
Нет, они просто изначально сделали хуету с поддержкой только у винды и мака, а переделывать под линукс им лень, тем более когда уже есть годные билды. Тот же VS Code изначально выходил на всех платформах и никаких проблем с этим не имеет.
>>20754
Но, как оказалось, в первую очередь им нужна динамика, а уже потом обертки в виде TS для того чтобы большие проекты удобней делать было.
вместо html делаем документ на fxml
CSS можно и там, и там юзать, только на FX немного некрасивее
А саму логику на главном ЯПе.
Вот только jvm с собой таскать тяжелее, чем ноду.
DI наше все! Ninject - мммм, кайф. Сейчас, погоди, что это... ДА ЭТО ВСТРОЕННЫЕ DI в Core 3.0 (attach.jpg)
Тебе жалко что-ли?
жалею тех джунов, кто попал на ASP.NET до 4 версии... Это ад. Вообще советую всем вкатывальщикам спрашивать 100 раз перед принятием оффера на какой проект их берут. Это может быть легаси времен мамонтов, на котором не только опыта не получишь, так еще и отупеешь реализацией интерфейсов, которые из коробки доступны в более свежих версиях. На .NET раньше 4 вообще нет смысла идти. Хотя каждому свое конечно. Кто то с легаси рубит бабло лопатой, т.к. только он знает как работает интерпрайз щит 10 летней давности, а кто то в говне тонет...
Я как раз попал на VB.NET + ASP.NET Web Forms. Работаю уже месяц, большинство времени учил теорию области и настраивал VDE. Проект пизда, писался с начала нулевых, единого стиля не было. Коменты на 5% методов. Думаю посижу пол года-год и буду искать что то получше, параллельно изучая кор и пиля петпроекты. Ведь с опытом коммерческой и командной разработки, джиры, конфлюенса, работы с IIS и работы на платформе .NET (хоть и не шарп) у меня будет намного больше шансов чем уйти сейчас.
Что думаете? Опыт поддержки древнего легаси все равно же будет плюсом?
и да,
>Вообще советую всем вкатывальщикам спрашивать 100 раз перед принятием оффера на какой проект их берут
Это точно, меня на собесе спрашивали кишочки шарпа, патерны, сукель и тд, а буду ихемельки править и в говне мамонта ковыряться. До этого искал работу месяца 2 и уже условия поджимали, что и ослепило меня.
> пик
Блин, а я вот дотнет корщиком пошел работать за 25к, после всех налогов остается чуть больше 20к. Надо было как Вованчик устраиваться.
>VB.NET
>ASP.NET Web Forms
Ты блять серьезно? Ты перед принятием оффера хоть понимал, что это? Если таски закрываются, советую ЗП поднимать выше средней по рынку. На таком говне уже никто не пишет и твои знания по этим технологиям должны выпиливаться GC головы после выпиливания с этого места работы К сожалению так мозг не работает, увы
По сабжу, охуеваю с тех людей, которых на собесе спрашивают за .NET 4.5+, а садят работать за .NET 2.0. А еще больше охуеваю с тех, кто на это соглашается. Как и писал ранее кто сидит на легаси должен руки выкручивать на подъемные, иначе пусть другого дурака ищут
Чё по SQL можно прочесть? Либо как вы его учили? Я вроде 1000 раз слышал про всякие CREATE TABLE, JOIN, где их писать, применять на практике - хз.
Как реализовывать команды? Каждый раз хуярить новый класс? Как организовать взаимодействие между несколькими ViewModel? Как вообще правильно строить приложение с разным контентом появляющимся по нажатию разных кнопок (пока делаю через Frame, в который кладу Page)? И чего, реально каждый раз надо интерфейсы реализовывать? неуже ли нет никаких дополнительных фреймворков, которые избавят от рутины? MVVMLight и Prism ведь не про это? Или про это? А что почитать?
В связи с чем может ли мне кто-то дать ссылку на гитхаб с многостраничным приложением реализованным с помощью WPF+MVVM, с хорошим, правильным кодом, к которому я должен стремиться?
>где их писать, применять на практике - хз.
ADO.NET, Dapper, SqlManagementStudio
Помоему работа с БД - это самое материально, что только может быть. Есть куча порталов, где можно подрочить эти запросы, типо w3school.com. Читать не нужно, гланое понять принцип составления запросов.
>>21552
>Джавакун
>изучение C#
>WPF
Удачи в изучении земля тебе пухом
> реализованным с помощью WPF+MVVM
Джависты не умеют в гугл?
Чего то щелкнул вопрос. А зачем ты перекатываешься с джавы на шарпы? Что стало причиной? Я просто сам начинал с джавы, но перекатился по причине, что .NET вакансий было и есть в 2 раза больше в моем городе + LINQ приятное дополнение.
Сейчас если бы мне дали право выбора, я бы не смотрел в сторону Evil Company. Сейчас думаю о том, чтобы после работы потыкать в RoR/Python или даже какой ни будь Rust. А у тебя шо?
Нахуй их учить, если есть LINQ to SQL? Они нужны только в легаси дерьме, когда нужно было всё ручками писать.
> Что стало причиной?
Spring Framework отвратительная хуета, нарушающая принципы ООП. Ебал его в рот. Но, в основном, хотят именно его. Потому лучше уж я на шарпы укачусь, да и вообще, судя по всему, шарп скоро станет более универсальным, чем джава
>>21562
>Джависты не умеют в гугл?
Умеют, но я тупой так не нашёл же ничего. Отдельный код есть, а вот целиком демо-проектика какого нибудь нету
>скоро станет
Да не, просто у EvilCorp хорошая пиар команда. Раздули из .NET core что то невообразимое.
Ладно, так и быть
https://prismlibrary.github.io/docs/commanding.html
Вот тебе яркий пример MVVM
Пошли нахуй те, которые Prism считают overheavy framework - для примера покатит
спасибо большое, попробуем!
Так я именно это и просил. Туториалы у меня есть, но это чёт не помогает. Хочу посмотреть на /работающее/ приложение
Для твоего сельского магазина может и не надо, а на практике в крупных проектах часто приходится переписывать генерируемые ормкой запросы руками.
Продолжай оправдывать свой говнокод, дурачок. Не такой задачи с которой не справиться LINQ to SQL, но долбоебу конечно легче свой велосипед придумать чем разобраться.
Джун плез
Иди сделай отчёт, включающий в себя выборку десятков тысяч строк из 10 таблиц с аггрегированием данных сначала на Linq, а потом перепиши на хранимую процедуру или вью, а потом сравни скорость выполнения.
Но в твоей галере конечно таких задач никогда не стояло, понимаю
>долбоеб не разобрался в элементарных понятиях вида lazy/eager/explicit loading
>не знает как избежать ненужных запросов к базе данных
>проецирует на всех своё слабоумие и говорит, что без костылей никуда
Уже даже не смешно, а жалко тебя.
есть же оптимизаторы запросов в EF. По сабжу - поддерживаю использование Sql, как мастхев, т.к. в практике знаю, что Dapper - ходовой фреймворк.
Потому что я ебучий студент без опыта и город всего 500к населениея. Если не выгонят, то лет через 7 буду 60к получать, тогда заживу!
Есть три модели, чтобы не раскрывать бизнес-процессов назовем First, Second, Third
First связана с Second как один ко многим, аналогично Second с Third.
У Second есть интовое свойство Limit, у Third - интовое свойство Value.
Кроме того у них есть еще множество полей, которые не нужны для задачи.
Нужно найти айдишники всех FIrst, у которых больше трех Second, у которых сумма Value в связанных с ними Third больше чем Limit. Плюс вывести само количество таких Second для каждого First.
Пикрил-1 генерит SQL (пикрил-2), который выполняется 10+ секунд на 25к данных
В то время как наляпанный на скорую руку SQL (пикрил-3) выполняется за 200мс, выдавая аналогичный ответ.
Что я делают не так?
Мимошел
Извиняюсь, первый пик не тот
О, а вот и велосипедоизобретатели подъехали. Ассемблер уже выучил чтобы лучше компилятора код писать?
Можно ли скомплировать .ехе без visual studio, через консольную команду, но не CORE (Dotnet build), а какой-ниюудь .NET Framework 4.0,4.5
А она платная?
Я к чему.
Есть определенный код, который я пишу на comminity edition под коммерческие нужны. IDE в этой шараге никто не купит. В лицензионном смысле, я "какбы пишу программы" на бесплатном гавне вроде sharpdeveloper. Но на деле хочу писать на VS studio и компилировать MSbuild
>Тебя небось и прослойки на плюсах в питоновских либах удивляют?
И на плюсах в этих прослойках пилят очередной велосипед или каким образом это как-то влияет на мною сказанное?
>Не понимаешь нахуя пилят wasm когда есть js?
Чтобы можно было писать веб-страницы на более низкоуровневых языках чем js, также как js-еры запилили node.js для того чтобы делать десктопные и серверные приложения.
>Наличием ансейфа в шарпе не шокирован?
Он там для доступа к неуправляемым ресурсам, а не для того чтобы долбоебы пытались свой linq to sql запилить.
Все что можно запилить на плюсах, можно сделать на питоне, и даже проще. Но почему-то прослойки пишут на плюсах, хотя по твоей маня классификации это велосипед. Интересно почему же блядь?
>Писать на более низкоуровневых языках
Ясно, велосипед значит
>Свой linq to sql
>Свой linq
Хоспаде, ребенок, ты походу вообще не вдупляешь о чем речь. Тебе пишут о том что в узких местах без голого sql никуда, а ты дальше про велосипединг кудахчешь.
Дай угадаю, тебе с задачами сложнее чем "выбрать данные из 3 связных таблиц" сталкиваться не приходилось.
>Тебе пишут о том что в узких местах без голого sql никуда, а ты дальше про велосипединг кудахчешь.
Долбоеб, это тоже самое, что говорить о том что Typescript выдает код медленнее чем JS. linq to sql это и есть голый sql, тупорылое ты животное, просто за тебя его пишет среда.
Меньше кода, быстрее читается. Это как использование delegate вместо лямбда-выражений для создания анонимных функций с параметрами — признак незнания языка.
Ага, только пишет она его хуево, когда начинаются специфические заморочки
>Linq это и есть SQL, просто за тебя его пишет среда
Самому от таких лингвистических маневров не противно, дебил?
Ага, а жава это и есть ассемблер, просто за тебя его пишет си, которое пишет жвм.
До чего вкатывальщики тупые пошли пиздец
Во-первых я их не тут вижу, а регулярно в продакшне, переписывая узкие места на SQL
Во-вторых раз начал выебываться, то давай, показывай как ты бы тут переписал Linq чтобы ускорить на порядок запрос.
А нет, напиздел. Я же в дебаге смотрел, в релизе на одну операцию копирования в стек меньше при ифе, чем при ??. Но это, конечно, не аргкмент.
Мне за это деньги платят. Пусть долбоебы продолжают свои велосипеды придумывать и говорить, что это СПЕЦИФИЧЕСКИЕ ЗАМОРОЧКИ.
Слив засчитан
Чтобы строка из потока куда-то собиралась, чтобы потом ее распарсить. Строка неизвестной длины, может и один символ быть, а может и пара гигов прилететь, и нужно что-то, что эту строку будет сохранять, для дальнейшего использования и обработки.
>из потока куда-то собиралась
в StringBuilder
>может и пара гигов прилететь
ну тогда наверно в файл.
>это тоже самое, что говорить о том что Typescript выдает код медленнее чем JS
Справедливости ради, в данном случае скорее "говорить о том что React выдает код медленнее чем чистый JS"
И в общем-то это так
Снова Я пришел с охуенными задачками.
В общем в консоль вводим строку со всякими словами пробелами и т.д. с клавиатуры. И нужно вывести только те слова сообщения, которые начинаются с прописной буквы.
План у меня такой при помощи метода SpliT поделить строку на слова и потом проверить в каждом слове регистр первой буквы.
Кусочек кода я набросал как поделить на слова. А вот как потом взять каждое слово что то нихуя не могу понять. Если можно подскажите как вальнуть данный момент.
>И в общем-то это так
Долбоеб, Typescript и React этот и есть чистый JS, блять. Да, то что они делают ты можешь написать собственноручно и это будет работать быстрее, например, Vue в сравнении с React, но от этого это не перестанет быть чистым JS-ом.
Чувак, тебе действительно делать нехуй, кроме как приебываться к словам на анонимной борде в полумертвом треде? Очевидно же что под чистым жс подразумевается отсутствие фреймворков и либ кроме полифиллов мб.
Ебать ты токсичный короче
Норм, компилятор разворачивается в if(x == null) x=... (байтоеб во мне доволен) и запись не избыточна (а то x = x ?? ... какое-то масляное масло). Похоже пришло время переползать на 8.0.
Кстати 2017 студия может в C#8, а то есть любители?
Вот тебе, няша, решение для ascii-таблицы, все будет Ok если в строке только английские буковки.
для конкретно этой задачи регэксп подходит чуть ли не идеально, какие проблемы?
using System.Text.RegularExpressions;
string pattern = @"\b[A-Z].*?\b";
var result = Regex.Matches(textWithCapitals, pattern);
foreach (var m in result)
Console.WriteLine(m);
кто с байтами ебется - тот с регекспом не выступает
По критериям красоты и возможностей самого ЯПа
https://github.com/BakaVaka/MySuperTcpServer/tree/master/src/Main/Net
Короче, что я делаю не так и как надо правильно?
Много чего не так. Что сразу бросилось: рекурсивный метод приема клиентов, пустые классы в проекте, вызов консольных методов из модели, очевидно ты не понимаешь, что значит DataAvaible, раз через него определяешь конец сообщения, зачем-то влепил concurrentDictionary туда, куда пишет/читает только один поток, диспоз, который крашнет приложение. И это я еще не смотрел саму логику.
> пустые классы в проекте
Ну это же типа первый коммит, я еще не придумал что там еще должно быть, просто набрасываю чтобы потом допилить.
> рекурсивный метод приема клиентов
Ну ладно, это справедливо
> очевидно ты не понимаешь, что значит DataAvaible
Ну, может быть не понимаю. На MSDN просто получают сообщение конструкцией do...while(myNetworkStream.DataAvailable). Я думал так и надо. Если не так, то как правильно?
> зачем-то влепил concurrentDictionary
Потому что в конечном виде должно быть несколько потоков.
> диспоз, который крашнет приложение
Опять же, это первый коммит, пока не решил что там буду освобождать
Объясните нубасу, почему приватные поля обозначаются как _
Зачем это вообще в C#, если и так все понятно? это не не С++, где везде m_privateField
Советую установить CodeMaid и еще какие-нибудь линтеры-хуинтеры
ап
Regex regex = new Regex(...);
var regex = new Regex (...);
Итогдалее?
>первый коммит
Ну так сделаешь во втором коммите. Нет причин пихать в первый коммит мусор
>как правильно
Отсылать сначала размер сообщения в байтах, а потом тело, при преме считать размер, а потом количество байт равное размеру сообщения. На датааваибл полагаться нельзя, потому что в реальной сети есть потери, есть высокие пинги и прочее. Может получиться так, что датааваибл уже 0, а сообщение пришло не до конца.
> в конечном виде
Ну вот кода дойдёшь, тогда и сделаешь. Я уверен, что у тебя нет чёткого плана реализации и поэтому пытаться кодить на будущее плохая идея, все разобъется о то, что в реальности будет не так как ты думал. Лучше пытайся сделать код простым для изменений.
>пока не решил
А вызвать диспоз можно уже сегодня, а учитывая то, что нужно диспозить все что диспозится, результат плачевный
Если тип очевиден из правой части, то указываешь var, если не очевиден, то указываешь явно. Но для новичков var лучше использовать в LINQ выражениях, а во всех остальных случаях объявлять явно.
Спасибо,
уже понял для себя, что не всегда прикольно писать
Dictionary<string, string> openWith = new Dictionary<string, string>()
1:
поле1
поле2
св-во1
св-во2
2:
поле1
св-во1
поле2
св-во2
Что по WCF почитать и зачем он нужен? Два раза ходил на синьёра собеседоваться и два раза спрашивали.
WCF это легаси хуета, он нахуй не нужен.
Ап блять. Заебали со своими курсовыми/лабами. Идите на хуй отседова, студентота ебучая
я так и предпологал, хотел убедиться. Спасибо.
Еще вопрос, когда помещаются экземпляры приложения в docker container (или кибернейт, не важно) как предоставляют доступ к БД из разных источников? Т.е. работа с БД идет по принципу открыл-закрыл, ждешь очередь, когда другой экземпляр из другого контейнера подключится? Или у каждого контейнера своя БД, которая синхронизируется? Тупа шо? Нипанятно.
Перед обращением открывается соединение с БД, далее уже идёт обращение к ней и никто никого не ждёт, если кто-то пытается изменить одну и ту же запись, то применяться изменения самого последнего запроса (это поведение можно изменить при помощи Timestamp). Если кто-то попытается удалить запись, которая уже удалена, то будет выброшено исключение типа DbUpdateConcurrencyException.
падажи, но ведь аттачить БД может только один экземпляр контейнера. К тому же держать заатаченную БД ресурсоемко и каждый запрос (на примере даппера) происходит в контексте структуры Using, чтобы после команды был Finalize.
Или я что то путаю?
Ты спросил про то как с бд работают несколько клиентов. Если речь идёт про один клиент, то отрывать нужно как можно меньше соединений с базой данных.
да, все так. Спасибо
>разбить на 2-3 класса.
>использовать #region
Бро, да ты просто бог рефакторинга. Еще советов плез, всем классом твои советы в тетрадь переписали
пацаны сказали, что такую глину месить не будут. Вон Ванька с последней парты кричит - "Пиши сажа, скрыл"
Молодой человек, вы нам не подходите.
Сказали на курсах, что станете джуниорами - идите работайте на курсах.
Я серьезно вот. Джуниор это специалист со стажем от год и выше, то есть уже знает технический минимум для работы
>Джуниор это специалист со стажем от год и выше
Я уже 2 года только на .NET pet-project-ы клепаю. Причем не Hello world, а высрал свой ASP.NET MVC5 сайтец с DI Контейнерами, Moq, блек джеком и шлюхами. Типо чтобы джуном работать, нужно где то уже отработать. Какая то рекурсия получается. Как тогда джуны появляются? Вакансии только на джунов и выше.
Ехай в мухосрань, устраивайся на 11к и работай 2-3 года, там конкуренции особой нет, берут не то что без опыта, даже знания синтаксиса не всегда спрашивают, главное что ты должен за время что тебе скажут сделать работу, заплатят после выполнения.
Ну или делай свое приложение под IOS, благо замарин тебе позволяет, потом его в аппсторе размещай, как будет 100к+ скачиваний, и положительные отзывы, можешь добавлять его в портфолио и идти на собес с ним.
Что толсто? Я сам из мухосрани, пришел в самую большую фирму, где нужны кодеры были. Там спросили: Ты кодить умеешь? Я сказал: Да умею(хотя до этого только калькулятор на обратной польской записи на сях писал по гайдам). Мне сказали: Завтра выходи, нужно сайт допилить, мобильное приложение сделать и станки запрограммировать. Я обосрался - меня пидорнули. И так 5 раз в разных фирмах. В 6й уже не обосрался.
Тебе заняться нечем? Так ты книжку по сетям и их работе почитай, а не хуйню спрашивай и в пейнте рисуй.
Ну, все книжки, что советуют, по сетям на сях написаны, а я когда вижу указатели в обморок падаю.
Какие тебе Си, если ты основ не знаешь? Гугли "Сети и системы передачи информации для чайников".
Загуглил. Там все что я и так знаю. Понимаешь ли, знать что tcp-пакет заканчивается пакетом флагом fin, а при получении сегмента отправляется пакет с фалгом ack не помогает мне понять, как я должен используя сокеты получить картинку с помощью сокетов.
>1_1
>1_2
Иди нахуй отседова со своими вонючими курсовыми. string = string.Empty он блять инициализирует урод.
И не помогайте ему нахуй, а то будут сюда как на парад ходить.
Потому что ты в словах ищешь индекс самого слова. У тебя indexoflastelement всегда равен нулю.
При этом чтобы на слова разбить недостаточно одного split(' '), потому что в конце слов у тебя будут знаки препинания.
Ты на Geekbrains что ли курс проходишь? Если да, то урок про регулярные выражения. Если их использовать, то задача в 2 строки выполняется.
Гыгыгыгыгы.
Бля, проебался из-за того что неправильно задание прочитал. Короче, думаю ты догадаешься, как потом это в строку собрать.
Никак. Знаки проебуться, строки проебуться, получится одна строка из слов, при этом с разным регистром.
да пошел ты нахуй со своим учусь. Stackoverflow, google - вот твои учителя, не двач. Что ни зайдешь какую ни будь шелуху обсуждают, а на серьезные темы забивают болт
Потому что здесь все вкатывальщики, а остальные долбоебы вроде тебя, которые только воняют.
Та же хуйня, братиш.
Держу оборону на десктопе.
ЗП в 3 раза чему у усепшных веб-разработчиков.
Но мне похуй, я ноулайфер, запросы у меня мизерные.
Рыночек порешал. Если не знаешь JS и что-то из React/Vue/Angular, то на нормальное место можешь даже не рассчитывать.
ios/android
Вы видите копию треда, сохраненную 18 ноября 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.