В: Чо учить? О: https://metanit.com/sharp/tutorial/ В: Где писать? О: Visual studio для спермачей, vs code для линуксо бояр. В: РЯЯЯ Почему моего вопроса нет в шапке? О: Ну создай свою шапку и перекат блять
Блять, почему никто за 100 с чем-то постов овер бамплимит не сделал перекат? Я уже про сисярп и забыл, просто зашел на двач, а мой тред все еще живет.
>>1335690 >Покинуть секту школьников и перейти на ООП язык Как будто шарп не ооп язык. Переходить толком некуда. Можно наверное только на кресты, всё остальное - это выбор языка под конкретные нужды, ничего более универсального нет. >>1335690 >например Java С одного мертвого языка на другой, да к тому же еще и ужасно многословный и уёбищный. Что на жабе можно делать? Саппортить такое же легаси говно? Spring - кусок говна, начиная от реализации, заканчивая отсутствием адекватной документации и тонной магии. Как там, в 2019 году, нормально еще raw sql запросы в аннотациях писать? Про котлин можно кукарекать сколько угодно: убогость JVM от этого никуда не денется. Из единственных плюсов - биг дата. >>1335800 >почему такой хейт в сторону сисярп >>1335859 >Во всех языках есть хейтеры За что его любить? Кроссплатформенности - нет. Большая часть работы пока - классический mvc и легаси. Нормальной IDE нету даже в 2019 году. Хочешь работать на коре: добро пожаловать в фуллстак. За неделю пишется бэк, где то еще меньше, забивая хуй на архитектуру, все остальное время - пердолинг фронта. Ко всему прочему добавляется майкрасофт, который почему-то все больше любит тайпскрипт в связке с нодой. Может за хороших укатывающихся разработчиков любить? Может за кривую обучения? Где для того чтобы дорости до сеньера (нормального сеньера, а не сеньера в ИП Вася Пупкин) нужно на пару лет больше, чем на других языках. А может за зарплаты? Тоже нет. Если Core так и не взлетит (а он и не взлетит) - забросят asp.net (благо майкам это не в первой) и шарп окончательно сдохнет,
>>1335984 >Бывает ООП без множественного наследования? Попробуй потоньше в следующий раз. Из того что массовое: кресты и пайтон. В крестах да, используется, но за плюс это никто никогда не считал. А в пайтоне почти не используется, потому что макакам на скриптодристне еще нужно объяснять что такое MRO, да и не за чем в принципе, они скорее в ногу себе выстрелят.
>>1335937 >С одного мертвого языка на другой, да к тому же еще и ужасно многословный и уёбищный. Что на жабе можно делать? Саппортить такое же легаси говно? Spring - кусок говна, начиная от реализации, заканчивая отсутствием адекватной документации и тонной магии. Как там, в 2019 году, нормально еще raw sql запросы в аннотациях писать? Про котлин можно кукарекать сколько угодно: убогость JVM от этого никуда не денется.
Всё так. Написал веб-приложение на Spring, обплевался от магии и отсутствием ХОРОШО НАПИСАННЫХ доков. Но считаю, что C# комфортнее, поэтому ищу позиции и по нему. В частности потому, что смогу поработать на софтверной позиции, а потом перекатиться мидлом/сеньоров в Юнити.
>>1336148 >Что для тебя мертвый язык то? А какие немертвые тогда? Я уже писал выше. У него нет ниши, кроме десктопов под винду, которые никому не нужны, ну и пары долбаебов из Европы, которым нужен бэк на .NET. Веб занят, мобилки - тоже. Не мертвые из старичков: C++, Java (Android), Python, R, JS, PHP В целом - любой язык, куда пойдет молодняк. В мобилках - Java, Kotlin, Swift, Obj C В вебе - JS, PHP, Python, Ruby, Go (да-да, даже "мертвый" пхп и язык одного фреймворка имеют нишу) >>1336193 > а потом перекатиться мидлом/сеньоров в Юнити. Это так не работает. А дорасти ты до сеньера - тебе юнити нахуй не в срется. У нас одни додумались с фразой "мы ведь знаем С#", пойти на Xamarin клепать приложение, ничего толкового из этого не вышло. >>1336208 >Есть. Видно что ты типичный хейтер. Все твои доводы не обоснованы. Нету. Видно что ты типичная зелень, которая не пробовала Mono, в противном случае таких вскукареков у тебя не было бы. Массового перехода на Core так и нет, да и проекты на классическом mvc от этого никуда не денутся, так что просто взять и уйти на линукс не получится.
>>1336236 Подтерется можешь только ты и вот почему: 1. Вакансий на классическом mvc в 7 раз больше 2. Почти везде это фуллстаки (да еще и nodejs много где нужен, лол) либо же сеньеры\тимлиды 3. Вакансий для молодняка нет.
везде опыт работы требуют. хмм я так понимаю опыт должен быть именно в области программирования? если допустим у меня в ТК 3 года, но работал я сетевиком (администратор компьютерных сетей), то это не канает?
Во многих вакансиях по C# висит Angular, никак до него руки не доходят посмотреть. Пытаюсь по мануалу поставить его в ASP.NET проект — идут какие-то nvm, node.js modules... Разве node.js это не конкурирующая несовместимая технология?
Уважаемые шарперы, меня крайне интересует изучение шарпа для использования в геймдеве и разного рода программ. Так ли универсален и гибок этот язык? Начать можно сразу с шарпа или с плюсов? Когда я разберу основной синтаксис шарпа, с чем начать экспериментировать? Почему плюсы популярнее?
>>1336264 >ООП без наследования не бывает >>1336110 >>Бывает ООП без множественного наследования? Я же просил, потоньше будет >>1336289 >Мне не нужно в 7 раз больше вакансий. Как и любому другому, кто хочет устроиться на работу. Нужно только одна вакансия. Какие же зеленые все-таки тупые. Ты не найдешь вакансии на коре, потому что зеленый там нахуй не нужен, вот и все. >>1336434 >идут какие-то nvm, node.js modules Это просто пакетный менеджер для жсо параши. >>1336434 >Разве node.js это не конкурирующая несовместимая технология? Именно в ноду обычно перекатываются "современные" фуллстако мидлы, когда не могут пробить потолок до сеньера. >>1336272 >то это не канает Глобально - не канает, плюсик в карму если не совсем пинал хуй. P.S. Как и ожидалось: тред такой же мерт как и язык, в треде 1.5 зеленых ВАйтишника, у которых проснулась любовь после написания Laba1. Пора выкатываться. P.S.S. Всем зеленым удачного вкатывания
>>1336472 Господин, дядя, олдфаг. Мы были не лучшими учениками, но кто другой проведёт нас к искусству шарпа? Мастерство нельзя пропить, но можно закопать, так, чтобы оно никому не досталось. Мы нуждаемся в тебе.
В моей стране я наблюдаю такую ситуацию, что вакансий по тем же плюсам в разы меньше и там требования неадекватные для джунов, а ЗП меньше. А вот вакансий по шарпу много, там и требования нормальные и ЗП.
Так что зависит все от места где конкретно ты находишься.
>>1336471 Для новичка они похожи на 90% Если хочешь для геймдева, то пили игры. Змейка, кресты нули, арканоиды, саперы,морской бой. Суть не в языке а в алгоритмах.
Есть вот такой код https://pastebin.com/eA81Svy2 для .NET Core 2.2 При его выполнении Система (как винда так и Ubuntu) открывает соединение, падает с "404 not found" и не закрывает соединение. На Ubuntu это много CLOSE_WAIT в netstat. Если выбран урл, который возвращает "200 OK", то Система закрывает соединение на последней строке блока using StreamReader. То есть как только происходит Dispose у стрим-ридера, соединение закрывается. request.Abort в блоке catch/finally не помогает. Получить ResponseStream при HTTP-ошибке я не могу, так как объект response = null. То есть GetResponseAsync/GetResponse не возвращают значение, только рейзят ошибку. Так как я не могу получить ResponseStream, я не могу сделать Dispose на стриме и не могу закрыть коннект.
Как закрывать удалённое подключение HttpWebRequest при HTTP-ошибке?
>>1336609 Лол. Полтора часа искал как исправить ошибку и как последнее оружие обратился на двач и сразу после этого нашёл сам в одном из примеров на csharp.hotexamples.com. В блоке catch можно у WebException вызвать Response через, собственно, property Response.
В общем, вот решение: e.Response.GetResponseStream()?.Close();
Знаете, что удивительно? На сайте Microsoft в примерах нет ничего, связанного с обработкой HTTP-ошибок. Поэтому я думал, что при ошибке всё закрывается само
>>1336250 >Вакансий на классическом mvc в 7 раз больше Как и на джаве, это легаси. Никто в здравом уме новые проекты на нем не начинает.
>Почти везде это фуллстаки (да еще и nodejs много где нужен, лол) либо же сеньеры\тимлиды Уже обсасывалось, что фуллстек это бэк + базовые знания фронта, т.к. он совсем близок и надо понимать, что происходит рядом.
>>1336577 Да не понятно, чего он пиздит тут. Понятно, что сейчас динамическая параша в моде, но джава и сишарп это реально два стула, только на джаве куча легаси и з/п выше, а сишарп приятней и развивается интересней. С крестами, конечно, перетолстил, там мало того, что з/п самые низкие и уровень входа охуенский, так еще и язык в пизду катится
Антоны, в каком случае стоит применять асинхронные запросы и сохранение в EntityFramework? Мне чет не очевидно, ну понятно там, что поток не будет простаивать, но у меня чет приложение виснет каждый раз, когда я добавляю запись в БД и сохраняю.
>>1336877 > С крестами, конечно, перетолстил, там мало того, что з/п самые низкие и уровень входа охуенский, так еще и язык в пизду катится Да все норм с крестами и зарплатами, просто крестомакаки не нужны. Если хочешь писать на плюсах - раздрачивай свою математическую девственность и учись решать задачи про два стула и другие айсикью - тогда тебе бабла столько отсыпят, что джависты не сдохнут от зависти лишь по причине того, что не поверят в существование таких зарплат.
>>1337177 Найс схавал утку Java-дебилов. Говнокод на C++? Ты серьезно? Впрочем это зависит только от тебя. Напоминаю, что C++ поддерживает по-мимо ООП парадигмы еще несколько. Байтоебить полезно даже тебе. CLR/JIT/Ось/протоколы, тебе в этом говне энивей придется разбираться если ты собрался выше условного мидла прыгать.
>>1337179 Haskell, OCaml, F# - языки здорового человека. C++ это чудовище. C# намного более изящен. В MS работает много хаскеллистов. Тот же Эрик Мейер, который запилил LINQ.
>>1337662 Ты про C# и Java спрашивал? Конечно C# лучше как язык. И экосистема более цельная. В джаве стопятсот всяких штук вокруг, замучаешься с выбором.
>>1337711 Я бы сказал, что экосистема скорее ограниченная, потому что серьёзных проектов/фреймворков на C# без участия майков очень мало. В долине язык как был не особо востребован, так и остаётся, поэтому их появление в ближайшем будущем по-прежнему под вопросом, даже принимая во внимание усиленный форс .NET Core. Не знаю ни одной компании, которая бы строила бизнеса на опенсорсном .NET продукте (ну типа Apache Ignite). Еще один вариант рождения годного опенсорс проекта - это академическая среда, но там по-прежнему доминируют джава/плюсы/питон.
Гейдев - это такая ничтожная ниша по сравнению с остальными отраслями, что даже как то неловко за сисярп. Ну и да - сдуется юнька - сисярпу придет окончательная пизда как востребованному на рынке языку.
90% которых зарабатывают буквально дюжина ебадельных студий вроде близарда и электроник артс. И на вакансии очередь из байтолюбов. Охуенный рынок. Остальное - индюшатина за отзiв/за копейки уровня обычной зарплаты.
И эти 130млрд - полная хуита по сравнению с рынком энтерпрайз и веб разработки. Как по крутящимся деньгам, так и по объёму рынка труда.
> 90% которых зарабатывают буквально дюжина ебадельных студий вроде близарда и электроник артс. И на вакансии очередь из байтолюбов. Охуенный рынок. Остальное - индюшатина за отзiв/за копейки уровня обычной зарплаты.
И юнька с сисярпом относятся именно к категории "остальное".
>>1337743 >>1337744 Это верно, НО. 1. Пилить индюшатину для души зачастую комфортнее в личном отношении, чем РАБотать на Кровавый Энтерпрайз. 2. Можно заРАБатывать на C# и в свободное время пилить индюшатину с надежной на взлёт. 3. Из Юньки+Шарп с опытом можно перекатиться в более мейнистримный геймдев.
>3. Из Юньки+Шарп с опытом можно перекатиться в более мейнистримный геймдев.
Где за деньги требуются исключительно именитые боевые прожженые байтопидоры вроде миши актона-оптимизаторного, причем в количестве максимум полутора рыл каждые 5 лет, а за еду по теме gameplay scripting (это если еще предположить что там действительно используют сисярп, а не какой-нибудь проверенный LUA) придется еще конкурировать с фрилансерами индусами.
>>1337731 Ожидаемо. Прямо ждал такого наброса. Фреймворки не нужны. Нужен один фреймворк. Тому пример Рельсы, Джанго и Феникс. Это 3 лучших мейнстрим фреймворка. Для мейнстрима ничего лучше не придумали. Благодаря тому, что в языке один фреймворк, все усилия сконцентрированы на нем. Нет разрозненности.
ASP.NET Core уделывает по всем статьям любой джавовый фреймворк. Я сам делал выбор между джавой и сишарп, и aps.net core стал решающим фактором. В джаве чтобы создавать веб-приложения нужно делать выбор какой фреймворк использовать. Все они ни о чем. У asp.net core цельная экосистема, все что нужно делается одними и теме же людьми. Нет такого, что одна библиотека плохо стыкуется с другой. Вся документация в одном месте.
Мне плевать на твою долину. Ты сидишь в тысячах километров оттуда, не известно что ты за программист, и вещаешь мне тут о важности оглядываться на долину? Ты поехавший что ли?! В долине популярны Рельсы, про которые я уже написал выше. ASP.NET Core это лучшее из Рельс, вкупе со скоростью, и с современными подходами построения веб-приложений.
ASP.NET Core уже догнал по производительности Netty. И на этом не остановился. Так что мимо. Хочешь пиши на джавовом легаси. Я выбираю современный, мощный, и удобный инструмент.
>>1337731 Ах да, для .NET Core есть Websharper. Крутейший фреймворк для построения SPA. В джаве был аналог Lift, но он монструозный, неудобный, и уже не поддерживается если не ошибаюсь. В любом случае Web# круче.
>>1337759 А если идти в ГД не программистом, а именно геймдизайнером? Скажем, если помимо программирования, есть очень мощный и полезный бэкграунд (но это отдельная история).
>>1337743 >И эти 130млрд - полная хуита по сравнению с рынком энтерпрайз и веб разработки. Как по крутящимся деньгам, так и по объёму рынка труда. Цифры в студию. Хватить балоболить. Сдается мне что ты школьник. И вообще ничего не писал никогда. Просто воздух тут будоражишь.
>>1337767 Речь шла о сферах применения языка. Если ты пытался мне доказать, что Шарп хорош как язык пары фреймворков, то ок - тебе удалось. Но я не увидел опровержения моего изначального тезиса.
Вот тебе пример: к нам пришёл клиент и захотел отказоустойчивый распределенный кластер, способный выдержать миллионы запросов на запись в минуту. А потом он захотел обработку и агрегацию этих данных в Спарке, чтобы потом грузануть и вертить их в Постгресе. Всё запилено на Джаве. Если бы ребята захотели сделать личный кабинет на ASP, то ему бы тоже нашлось место в этом стеке.
Именно потому, что в реальном мире всё не делается на одном фреймворке/продукте, и появились такие компании как GridGrain, DataStax, Elastic, Hortonworks и т.д.
>>1337800 >Вот тебе пример: к нам пришёл клиент и захотел отказоустойчивый распределенный кластер, способный выдержать миллионы запросов на запись в минуту. Мечты школоты. И вообще, можно подумать на .NET Core такое нельзя сделать, ха. Кого ты тут пугаешь. На Web# на одном сервере 5 миллионов запросов держит. Это было еще до .NET Core. Полагаю сейчас будет летать еще быстрее. Так что отдыхай.
Здравствуй анон. Ты лучше чем stackoverflow поэтому спрошу тебя. Есть небольшая приложуха которую я захотел сделать красивой (потому что уже могу). Подобавлял иконок вместо надписей. И все заебись, стало намного лучше. Только все иконки это отдельные файлы. И тут меня озадачило, а как это делать оптимально? Погуглил, нашел пару спрсобов, но ничего такого до чего сам кмтому моменту не додумался. Это и скомпилить в файл и хранить в архиве или как одно изображение из которого вырезать нужные квадраты. Но нигде не сказано какой из способов максимально заебатый. Может ты мне подскажешь?
>>1335434 (OP) Всем кукарекающим дотнетчикам по поводу СКОРОСТИ https://www.techempower.com/benchmarks/ Redhat был куплен ibm - можно ждать еще большего отсоса. Вся бигдата как была на жабе - так и осталась и никуда переезжать не собирается P.S. Уёбищности и костыльность жабы как языка и JVM, с пятью GC это не отменяет, но если выбор между одной парашей и другой - лучше в жабу.
>>1338707 >Всем кукарекающим дотнетчикам по поводу СКОРОСТИ Кек. В этом же тесте asp.net core в лидерах. В других тестах тоже. В plaintext asp обошла netty почти в 2 раза! Это победа! В предыдущем тесте asp только догнала netty. Так что ждем следующий, когда порвет всех остальных.
>>1338707 >Вся бигдата как была на жабе - так и осталась Кек. Бигдата маркетинговый термин.
>>1338707 >Уёбищности и костыльность жабы как языка и JVM, с пятью GC это не отменяет Ну вот. Сам же все понимаешь. .NET Core крайне удобная штука. Современный рантайм. Не легаси.
>>1338763 >Кек. В этом же тесте asp.net core в лидерах. В других тестах тоже. В plaintext asp обошла netty почти в 2 раза! Это победа! В предыдущем тесте asp только догнала netty. Так что ждем следующий, когда порвет всех остальных. > Жаба все равно обходит + там фулл ORM, а не RAW запросы. >>1338763 >Кек. Бигдата маркетинговый термин. Не маркетинговый. Но наеба хватает, особенно когда хомячкам раскрывают глаза на то, что бигдата все-таки на жабе и скале, а не их любимом пайтоне >>1338763 >. Сам же все понимаешь. .NET Core крайне удобная штука Я так то сам дотнетчик.
Учитывая плохую репутацию майек - я скорее сам сдохну быстрее, чем дотнет откусит половину тырпрайз рынка у жабы.
>>1338786 >Не маркетинговый. Еще какой маркетинговый. Как и хайлоад.
>>1338786 >я скорее сам сдохну быстрее, чем дотнет откусит половину тырпрайз рынка у жабы Энтрапрайс не нужон. Это еще один маркетинговый термин без смысла.
>>1338803 >Энтрапрайс не нужон Лол блять, ясно. Почти все что есть на дотнете - это ебучий тыпрайз. Нет, ну если тебе нравится работать в ДОДО ПИЦЦА, либо на каком-нибудь другом локальном говне - пожалуйста. >>1338807 >Хваленый энтрапрайс [YouTube] Web application vs Enterprise application[РАСКРЫТЬ] Можешь найти такого же индуса на дотнете, свифте, ... (сам допишешь)
>>1338810 >Можешь найти такого же индуса на дотнете, свифте, ... (сам допишешь) Тут важен не язык, а то что это показывает что такое энтрапрайс. Это реальный уровень энтерпрайза. В здравый продуктовых компаниях такого нет. И там нет джавы. А джава === энтерпрайз, ты сам говорил. Получается джава и энтерпрайз низкосортный говнокод.
>>1338817 >Объясни что ты понимаешь под enterprise Любой аутсорс >>1338817 >Ты имеешь ввиду галеры И галеры в том числе. >>1338820 >В здравый продуктовых компаниях такого нет. И там нет джавы. ЛОЛ, ясно-понятно. Ты видимо совсем не понимаешь как работает аутсорс. На жабу спрос был, есть и будет. >>1338820 >Это реальный уровень энтерпрайза Тыскозал?
>>1338830 >Любой аутсорс Давай теперь разберемся чем так крут энтерпрайз. Ты его тут возносил как вершину построения ПО. Оказалось что это все дикий говнокод, который пишут низкосортные кодеры, лишь бы бабло пилилось. Вот значит какой он, этот энтерпрайз. Ну и хорошо, что он как ты говоришь весь на джаве.
В общем разобрались. .NET Core не энтерпрайз (это замечательно).
>>1338833 >Галеры значит. > >>1338833 >между аутсорсом и продуктовыми компаниями >>1338833 >Там где низкосортные кодеры пишут говнокод >>1338834 >Оказалось >>1338834 >что он как ты говоришь весь на джаве. >>1338834 >В общем разобрались. .NET Core не энтерпрайз (это замечательно). Очень жирно. Ты либо зеленый, либо шизик. 1. Почти все компании в СНГ - аутсорс 2. Качество кода на так называемых тобой "галерах" (да, есть галеры, но галеры и компании пилящие аутсорс ни одно и тоже) выше. 3. >>1338833 >Энтрапрайс === джава === галеры === говнокод Это звучит очень смешно, потому что дотнет это всегда был и будет интерпразом. >>1338834 >который пишут низкосортные кодеры Это как минимум забавно: дотнетомакака, ставит себя выше других макак, как будто она 24\7 занимается R&D, решая сложные задачи. >>1338834 >В общем разобрались. .NET Core не энтерпрайз Классно тебе, шизик. Хуйню сказал, да еще и за правду ее принимаешь.
>>1338841 тебя жирно тралят, а ты кормишь. говнокода шо на шарпе, шо на жабе хватает. естественно, за счем большей кодбазы, на жабе говнокода больше. шарп, как язык, чутка удобнее жабы, но, при прочих равных, на жабе платят чутка больше.
>>1338841 >выше Выше чего? Выше чем в продуктовых? Нет, это ты зеленый.
>>1338841 >Почти все компании в СНГ - аутсорс Знаток нашелся. Как-будто ты все компании знаешь. Всех кого я знаю работают в продуктовых компаниях. Аутсорс зашквар. В моем кругу общения так.
>>1338841 >галеры и компании пилящие аутсорс ни одно и тоже Одно и тоже. Ты просто не шаришь. Аутсорс === Галеры, это синонимы вообще то. Еще есть термин бодишопы. Тоже самое.
>>1338841 >Это звучит очень смешно, потому что дотнет это всегда был >и будет интерпразом. Ты сам сказал что весь аутсорс на джаве, а на дотнете нету. Тем более нету на неткоре. От слов своих отрекаешься?
>>1338841 >Это как минимум забавно: дотнетомакака, ставит себя выше других макак, как будто она 24\7 занимается R&D, решая сложные задачи. С чего ты вообще взял, что я дотнетчик? Я полиглот. Вообще тяготею к ФП языкам. R&D подразумевает исследования, новые фичи. В курсе про Microsoft Researc? Знаешь сколько там работает и работало ученых (суперзвезд)? Все основные разработчики компилятора Haskell там работают. И не только они. Там клондайк ресерчеров.
Так вот, .NET Core как и C# и F# продукт ресерча. А джава продукт недоучек. Ничего особенного в ней нет. Легаси обычное.
>>1338841 >Хуйню сказал, да еще и за правду ее принимаешь. Сам говорил, что энтерпрайз весь на джаве, а .NET Core не используют вообще. Так что молчи. Иначе ты балабол простой.
>>1338915 >Так вот, .NET Core как и C# и F# продукт ресерча. Будто от этого ты сразу начинаешь писать не говнокод. >Знаешь сколько там работает и работало ученых (суперзвезд)? Все основные разработчики компилятора Haskell там работают. И не только они. Там клондайк ресерчеров. А теперь поименно. Алсо, люто проиграл с отчаянных попыток макакмакакича примазаться к СЛАВЕ СУПЕРЗВЁЗД РАЗРАБОТЧИКОВ ХАЧКЕЛЯ на основе факта, что макак юзает инструмент, который суперзёзды делают специально для макакичей. мимопомидор
>>1338979 Ты на скольких языках писал? У тебя прослеживается неосознанная некомпетентность. Если ты гребешь на галере, пишешь говнокод, то это не значит что все такие. На чем ты писал кроме джавы?
>>1338979 >А теперь поименно. Надо будет сам нагуглишь.
>>1338979 >СУПЕРЗВЁЗД РАЗРАБОТЧИКОВ ХАЧКЕЛЯ Это данность, придется тебе с этим смириться. .NET ресерчат ученые, а джаву энтрыпрайс кодеры.
>>1338972 >Хуя макаки сцепились. >>1338979 >мимопомидор >>1338988 >Скорее школьник. Очередное доказательство того, что дотнет для школоты и студентов. Яскокал, нетты.
>>1338988 Опять ты за своё. Очнись мань, всем похуй на то, кто на чем пишет, кроме тебя и твоего собеседника жабамакакича. Спорить на двачах - дело неблагодарное. Поэтому, тебе придётся смириться с моей точкой зрения или продолжать кукарекать в пустоту. Ну или подождать жабамакакича, который составит тебе компанию.
Вопрос века: как можно назвать класс у которого есть такие методы: IEnumerable<Item> ReadAllItems(); void AppendItem(Item item); void WriteAll(IEnumerable<item> items); ? ItemReaderWriter как-то не очень.
Бля, а в шарпе что ли нет стандартного класса для создания матрицы? Типо как класс List<Type> для создания списков и Dictonary<Type> для создания словарей? Ну вот меня есть класс MyClass. Мне нужно объявить матрицу моего класса: MyClass[,] myClass. Выходить, что я это смогу сделать, только если заебусь с перегрузками?
Здорова пистоны и нормальные парни. Перекатываюсь в шарп и чтобы время не терять решил написать чат параллельно теории . Был опыт написания чата на qt c++ тспшного, нужно понять что из библиотек актуально в 2076 году от рождества лесика юзать под эту задачку, чтобы потом на работке пригодились знания, ну и в целом что может ещё посоветуете давайте обнял
Есть вопрос по интерфесам. Я всё никак не могу понять: когда писать интерфейсы? Для каждого класса? Или это просто некая абстракция, для абстрагирования от всякого побочного и гарантии, что некий базовый функционал реализуют классы - реализаторы?
>>1339776 Для каждого класса их писать не нужно. Если у тебя есть необходимость использовать определённое поведение в другом классе, но ты задницей чувствуешь, что реализация используемого класса со временем может измениться, то создаёшь интерфейс для того, чтобы клиентский код от реализации не зависел.
Сап, сисярпач! Нужна помощь с меня как обычно Есть программка, которая использует определённую стороннюю dll. Пришло время заменить dll и была скачана новая версия из инета, но у первой в свойствах была пустота, у второй - сплошные копирайты (лицензия позволяет абсолютно свободно использовать триальную версию), которые, если кто-то придирчивый увидит, могут дорого обойтись (интернет на работе запрещён, "безопасность", видите ли, а штатного механизма получения информации из Сети у нас нет, вот и возникнет вопрос "а где вы взяли dll?", за ответ на который выпрут на мороз). В общем, вижу 2 варианта: 1. Зашить dll в исполняемый файл. 2. Обернуть dll своей dll (сборка в сборке и используется экзешником). Первый вариант простой, но распухшие исполняемые файлы неудобны. Второй вариант... я хз как реализовать и загуглить пока не вышло, может кто-то сталкивался с подобной задачей или сможет подсказать как решить? inb4: Сделал событие AppDomain.CurrentDomain.AssemblyResolve, но хз как правильно найти поток с данными вложенной сборки. >using (Stream io = Assembly.GetExecutingAssembly().GetManifestResourceStream(name)) догадываюсь, что нужно в строчке выше сослаться на сборку-обёртку (GetExecutingAssembly возвращает имя сборки-экзешника, а не сборки-обёртки, поэтому поток не находится), но от догадок легче не становится.
Какого хуя все солюшены заливают на ебаный гитхуб, вы че блять? в решетке есть такая хуйня по типу cmake как в плюс плюс или блять принято слн заливать поясните дебилу
Завтра будет второе собеседование на позицию начинающего C#-разработчика, но у меня преимущественно Java-опыт. Какие нюансы подтянуть. ib4 LiNQ, sync/async
Если дадут добро, полностью перекатываюсь в Шарп, сажусь читать Рихтера.
>>1341363 И да, ты вообще его видел, этот исходник? Вот он, здесь: https://github.com/username1565/js-jpeg-steg/blob/master/index_files/js/jsf5steg.js Там классы какие-то, куча функций ещё. main2.js - doEmbed сначала генерирует с пароля key_from_pass и кладёт в iv затем делает j.parse(container); //как это закодить на с# - вообще хз и на этом этапе из жипега - извлекаются коэффициенты, и запускается куча функций. и только потом j.f5embed(embeddata,iv); var pck = j.pack(); и этот pck - конвертит в бейс, тоже функцией: var jpegDataUri = 'data:image/jpeg;base64,' + arrayBufferDataUri(pck);
>>1341839 Нахрена мне целая либа f5-стеги, даже если её можно скомпилить, какими-то неведомыми ёба компиляторами? У меня есть csc.exe от .NET Framework v4.0 под Windows XP и MSBuild.exe, в той же папке. Они успешно компилят нбороду из исходника. Посему, мне нужен алгоритм f5-jpeg-steg - причём одним cs-файлом "Program.cs". Ну, чтобы функции оттуда просто включить в исходник нбороды и откомпилить её. Исходник на JS есть, как его в сиярп загнать - хз, но буду ручками, потихоньку... И скорее всего, года полтора-два...
>>1342024 Если бы я знал этот язык программирования, наверное мог бы. Неймспейсы какие-то... Алго разбросано по куче файлов... Какие-то using в начале каждого, и фреймворк 12.0 просит... Запилили бы, одни полноценным Program.cs, чтобы без зависимостей, и в portable exe компилировался...
Чо там у вас нынче с Замарином, шарпаны? Хочу сделать несложную приложульку-приёмник аудиостримов на айось и ведро, пока что исключительно ради PoC и демоверсии, а писать две разные версии как водится не хочу. Обжси и свифт не знаю совсем и усилий на демку затрачивать много не хочу, а на шарпе лабы в универе говнякал, да и вообще вроде на жабу родную сильно похоже.
>>1341372 А возможно ли массив из кода С# передать самому JavaScript'у и выполнить из под С# - JS-функцию, подключив included.js? Можно было бы, наверное, и из-под JS, XHR-запросом на localhost - зашифрованный массив с нанопостами вытащить, а потом обработать JavaScript'ом, и скачать blob. Ну, или, на худой конец, тупо записать var array = [byte1, byte2, byte3]; причём текстом, в локальный текстовый файл, а его уже XHR-запросом прогрузить локально, из папки, при запуске JavaScript-функции и обработать скриптом...
СИСЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯРП!!!! Я наконец-то понял, как применять интерфейсы! Это же в разы лучше множественного наследования, еще можно со структурами использовать, не знаю как я раньше без них жил.
Как же меня доебал этот дот нет. Устал уже блядь. Ебаные аутисты индусы, сука бомбит. Не что бы взять и допилить, исправлять, улучшать. Нет блядь, вот вам новая хуета жрите. А теперь это уже не актуально, вот другая, но через год все будет по другому можете выкидывать все в помойку. А теперь мы подумали и решили а ну его все на хуй. Вот вам нет кор. Доколе блядь этот ебаный цирк будет продолжаться?
>>1342526 Бери шире, весь веб нынче такой. А вообще это все - проблемы вкатывальщиков-аутистов которым всенепременно надо изучить прежде чем работать. Хочешь штабильности - перекатывайся поддерживать легаси-говнецо на жабе. Либо возьми и вкатись уже без задней мысли, тогда вопрос «какого хуя все постоянно меняется» перестанет мучать почти моментально и будешь волком выть от «какого хуя мы это говно пятилетней давности до сих пор поддерживаем когда можно все сделать проще, быстрее и лучше на новых свистоперделках».
>>1342526 Тупой долбоеб, асп, впф и винформы живут уже хуй знает сколько лет, если ты в какой-нибудь сильверлайт или вебформы пытался, то сходи просто на хуй, ебало тугорогое, ты изначально в мертвую технологию вкатился, которая по объективным причинам на рынке не прижилась.
>>1342557 Как-то раз попадалась статья Додо пиццы на хабре, там там основатель ныл, что студенты написали монолитный кусок говна на ASP, а идти переписывать его на Коре никто не хочет, лол. Сейчас много всякого легаси, которое можно перепилить на Коре, но я не думаю, что опытный разраб на это согласится с горящими глазами. Но зато шанс для вкатывальщиков.
>>1342867 > зато шанс для вкатывальщиков Как я уже написал - вкатывальщики никогда толком не вкатятся, так и будут «изучать» и сраться в комментах на хабре под очередной новостью о релизе чего-то нового. Остальные все уже вкатились.
>>1343161 Да я уже полез, запустил несколько демок на айоси. Ну и как я уже сказал - мне эта хуйня нужна исключительно ради проверки концепции, если взлетит - выбью финансирование и соберу команду которая нативно все перепишет.
>>1339776 Тащемта, когда какую нибудь хуйню пишу не по паттерну, стараюсь все классы, которые выполняют работу, обносить интефрейсами и юзать депенденси инжекшн. Представляю классы в качестве работников, которые должны выполнить какую то определенную работу. Если интерфейсы осваивать начал, сходу начинай использовать IoC и DI.
>>1343164 Сам не использовал, но коллеги за соседней партой во всю плюются и ругают. Не было еще дня на работе, что бы я не слышал как кто нибудь поносит ксамарин.
Объясните долбоёбу, почему так? Я правильно понимаю, что я сначала создаю горсть объектов, потом создаю некоторые объекты-«буферы», которые подменяют значения в уже имеющихся объектах, а потом удаляются? Почему деструктор для объекта 3 тогда вызывается дважды, и как в нём вообще запустится хеллоуворлд, если объект сам себя удалил?
>>1343171 >почему так? Потомушо это тред по четырём крестам, а не по двум. Твой вопрос надо на собеседовании задавать, чтоб нубьё отсеивать. Первые 5 объектов создаются new c[5] с дефолтным конструктором (нубас пропустил звёздочку). Потом в цикле ты создаешь без new, вызываю конструктор c(a, b). Подобный вызов будет использовать дополнительный copy-конструктор (зависит от компилятора): 1) c(a, b); 2) c(const c&); 3) ~c() для объекта в 1 Объект из 3 у тебя идет в массив указателей, заменяя там указатель на первые пять объектов. В конце ты убиваешь объекты в массиве, забыв про созданные new (с k = 0) и получив утечку памяти.
>>1343166 > Не было еще дня на работе, что бы я не слышал как кто нибудь поносит ксамарин. Не было ещё дня чтобы кто-нибудь не хуесосил какой-нибудь фреймворк или язык в целом.
Сап, пр! У меня есть класс, который шифрует данные, которые потом записываются в файл. Шифрую AESом, вектор и ключ генерирую через Rfc2898DeriveBytes из строки с паролем. Вопрос, могу ли я захардкодить соль? Файл храниться локально и никаких баз или списков нет, т.е. каждый юзер ставит свой пароль на свой файл и данные никуда не передаются.
Антоны, у меня есть три формы. В первой у меня есть datagridview, вторая форма нужна для того, чтобы добавить в него данные, третья форма содержит datagridview, из которой нужно выбрать значение и перенести на вторую форму. Вторую форму я открываю через ShowDialog, но когда я пытаюсь работать с третьей через ShowDialog, то при ее закрытии закрывается и вторая, а когда через Show, то вторая закрывается при открытии третьей
Не читал ни одной книги по программированию. Успешно работаю джуном, потихоньку подхожу к мидлу. Нахуй вообще эти книги нужны, когда есть стековерфлоу?
>>1345995 >ни одной книги по программированию >>1345995 >Успешно >>1345995 >подхожу к мидлу Звучит как начало анекдота. >>1345995 >когда есть стековерфлоу Именно из-за SODD дебилов, на проектах и появляется говнокод.
btw, сеньер в ИП Вася Пупкин, на деле вовсе не сеньер. Это так, к слову.
Кстати, вот собеседовании недавно челика на джуна, гоняли его по теории, я бы на половину тех вопросов сам не ответил потому что не держу в голове всякую поебень, да и не рассчитывали что он на все ответит, а он взял да и ответил зубрил походу, но как только дело дошло до практики на реальном проекте он тут же начал жидко серить под себя. Хуйня эти ваши книги.
>>1346051 >btw, сеньер в ИП Вася Пупкин, на деле вовсе не сеньер. У нас обычная аутсорс контора. Начальство - два сеньора с ~15 лет опытом, говорят что как для джуна у меня заебись код.
>>1346076 Что угодно, что включает в себя написание кода. Я когда пришел, меня сходу посадили на проект, который до меня писало два недомидла. Надо было разобрать по частям ими написанное, пока они не свалили, что бы я потом смог написать похожий продукт, но под другие задачи.
Блять, говнокод ли, если для нахождения пути к файлу локальной БД я использую FileInfo?
Иначе, если использовать "|DataDirectory|", вижуалка копирует базу в папку с .exe файлом и не сохраняет изменения в изначальной базе. Если лечение через FileInfo говно то почему и как можно сделать по другому?
>>1346327 Ну и я ньюфаг в формах и их взаимодействии с базой, так что сорри за тупые вопросы.
Есть ли смысл вывести все взаимодействие с базой в отдельный класс, я спрашивал у препода, он ничего внятного не сказал, только то что SqlConnection и SqlCommand и так достаточно, но мне бы хотелось чтобы сама форма юзала методы какого-то класса для вставки, удаления и редактирования данных в БД, ибо в самой форме оно выглядит хуебищно.
>>1346339 Для доступа к БД используй ConnectionString, который ты пропишешь в конфиг файле приложения. Как достать и где именно писать, гугли. И если идти дальше, я бы разделил это все на 3-х слойку, так у каждог слоя будет своя задача, и при желании всегда можно заменить один не трогая другие.
>>1335434 (OP) >vs code Как убрать ненужные using во всех файлах? Как починить ложный already defined, кроме как перезапуска омнишарпа или ожидания, пока омнишарп полностью загрузится?
>>1346741 > >vs code > Как убрать ненужные using во всех файлах? Уже не помню, но это встроеный функционал омнишарпа или второго аддона к сисярпу, если ввести c# в строку поиска плагинов.
Что делать если не хватает идей для программирование? Учил шарп,кресты,си - забил на половине,тк не вижу что можно было бы написать в ближайший хотя бы месяц Хелловорлды разной изворотливости писать - такое себе Вообщем это я к чему Где брать интересные идеи и задачи для новичка
>>1346855 Какую-нибудь хуйню для работы с базой напиши, чтобы было подключение к ней, редактирование, удаление из нескольких таблиц. С миграцией баз данных разберись, построением графиков, выводом отчетов, созданием документа в Word, в Excel, с парсингом сайта, с созданием какого-нибудь чатбота.
>>1346855 >Где брать интересные идеи и задачи для новичка Попробуй написать для начала то что уже есть. Разве это плохая практика? Или ты уверен что новичек должен писать сразу миллиардный стартап с наскока?
>>1346858 Ты ебанутый, на сисярпе ты можешь все сделать, просто нужно идеи иметь. Перескачешь на голанг и так же будешь думать, что писать, только у него область применения гораздо уже, чем у шарпа и будет еще сложнее придумать
>>1346855 Короче даю идею, которая поможет нормально прокачать твой уровень, делаешь веб приложуху, с простым (или не очень) фронтом, типа в форме выбираешь дбпровайдера, вводишь кредентиалс и тебе генерится отчет со списком схем, названиями таблиц и метаданными по таблицам в виде таблиц. Можно сделать таблицы кликабельные, после клика выдает уже саму таблицу с данными, если ты еще более охуенный, делай возможность редактирования полей, добавление новых записей. Экспорт отчета в какой-нибудь мд, пдф, ворд. Сделаешь эту хуйню и можешь идти работу искать, знаний достаточно будет
Как в рамках MVVM корректно сделать выход из приложения через меню? Передавать окно в команду? Использовать Application.Current.Shutdown() в комманде? В кодбихайнд окна закрывать его?
>>1335434 (OP) Сап! Вопросы по asp net и jwt. 1. Я правильно всё понимаю: Есть authentication middleware, сказано что он не short-circuit (не замыкающий), значит запрос идет дальше до mvc (если никто не развернет) и внутри уже фильтрами происходит именно авторизация. 2. Может ли кривая реализация middleware, сразу завернуть запрос? В гайдах какого-то васяна, сказано что если сдохнет сервер авторизации токенов, то запрос завернется со статус кодом 404. Где и когда это произойдет? Сразу же, либо еще пройдет пару middleware ?
>>1346117 Раньше использовал на другой работе, где был винформс и ебейшие классы по 2к строк, сейчас не использую и в проекте никто не парится, стараемся просто следовать SOLID и методы писать не длиннее 70 строк, поэтому классы обычно достаточно компактные.
Сап пр. Как понять что я уже достаточно умненький и могу пойти работать джуном? На метанит осилил все двадцать глав и во всем разобрался, большую часть запомнил. Мб ещё чего подучить?
>>1347467 > Как понять что я уже достаточно умненький и могу пойти работать джуном? Отправить резюме на вакансию и пройти собеседование. Если наймут - значит достаточно умненький. Если не наймут - значит ещё учиться надо. Если перезвонят - то ты червь пидор который не в состоянии пройти собеседование с эйчаркой и тебе надо помимо ЯП научиться разговаривать с людьми.
Сап. Последнее время студия начала после запуска программы показывать окно с текстом "загрузка символов для mscorlib.dll из: Серверы символов (Майкрософт)". Обязательно ли грузить эти символы? Это очень долгий процесс, которого хотелось бы избежать вернее даже не процесса избежать, а потери времени. Можно ли это отключить и как?
Антоны, прочитал я Рихтера по асинхронщине, понял, для чего это нужно и как работает. Но как применять понятия не имею, попробовал с Entity Framework в виндовс формах, а там все начинает неимоверно лагать.
Нахуй надо это унылое говно - MVVM? Вот зачем, сука? Почему мне надо держать одни, сука, и те же свойства в модели и вьюмодели? А как же повторяемость кода? А как же разговоры про то, что повторять код плохо? Тогда какого хуя у меня в модели 10 свойств, так мне еще 10 точно таких же нужно во вьюмодели нахуячить, м? А вишенка на торте...как ебаные свойства во вьюмодели узнают, что такие же свойства в модели изменились, м? Спрашиваю я вас, как? Нахуячить INPC в модели? А не говно ли выйдет? Может создать супер евент и в нем оповещать, что одно из свойств модели посмело измениться? Блядь, нахуя это все, сука? Нахуя такой перегруз кодом? Ну было же раньше, написал все в code behind, все обработчики, хуетчики, все данные здесь, пожалуйста, только скажи. Нет, не хочу по простому, хочу выдумывать велосипеды, пердолиться со всякой еботой только потому, что классы модели о вьюмодели не должны ничего знать - яскозал! Сука, разбить бы ебальник Джону Госсману, с каким бы удовольствием, а...навыдумывает хуйни, а ты ебись. В общем, вопрос у меня есть и он таков - есть вьюмодель со свойствами, есть модель с идентичными свойствами, в модели они изменяются, как оповестить вьюмодель о том, что они изменились, без еботы и дохуя сложных конструкций, при этом чтобы поддерживался паттерн MVVM?
Правильно ли я понимаю, что начать углубленное изучение ЯПа нужно с заучивания английского языка? На русском очень мало контента, книги переведены женщинами, которые вообще ничего не знают о программировании и допускают кучу смысловых и логических ошибок, статей мало. Особенно интересует системное программирование, ассемблер, прочее байтоебство, хайлоад, производительность итд. Дискасс.
>>1347810 тупой долбоеб, даже если бы тебе понадобилось зачем-то прописывать везде свойства, то ты мог тупо один интерфейс написать и наследовать везде, где тебе твоя пачка свойств нужна
>>1348012 >Пиздец ты всё усложняешь. Ты что, дурак? А я что юзаю по твоему? Мамашу твою что ли? >>1348095 >то ты мог тупо один интерфейс написать и наследовать везде, где тебе твоя пачка свойств нужна Чего, блядь? Мало того, что свойства хуячить везде, так еще и интерфейс ебануть, ты совсем долбоебушка что ли?
>>1348286 >Мало того, что свойства хуячить везде, так еще и интерфейс ебануть, ты совсем долбоебушка что ли? ты троль или долбоеб тупорылый, который не смог в основы ооп? если ты такой ебанат, что не смог нормально все сделать и тебе обязательно в дохуищи мест прописывать один и тот же набор свойств, ты можешь один раз блядь интерфейс с свойствами прописать и наследовать его везде где хочешь, иди на хуй, короче
>>1348318 Знаешь что я сделал, немного подумав? Нет, не стал в модель включать INPC, не стал интерфейсы писать и хуйней заниматься. Просто подумал, а ведь ViewModel общается с View, так зачем мне эти свойства в Model? Правильно, нахуй не нужны, убрал оттуда и просто в модели прописал методы, которые оперируют данными, далее в ViewModel просто вызываю нужные методы из модели толкая параметрами нужные данные, а на выходе получаю обсчитанное значение, которое в ViewModel записываю, а там в set уже оно обновляется в View. Охуенно, правда? А теперь расскажи мне, нахуя мне твои интерфейсы левые в моделях и куча кода повторяющегося, м?
>>1335434 (OP) Аноны, смотрите, простая задача: 1. Сделать файл Program.cs, в котором включить http-сервер. 2. Запостить на сервер PNG-картинку. 3. Принять её на сервере, и сделать с неё bitmap. 4. Сохранить в bmp.
>>1348375 >А теперь расскажи мне, нахуя мне твои интерфейсы левые в моделях и куча кода повторяющегося, м? Да я не ебу, нахуя тебе куча свойств повторяющихся нужна была, ты про них писал, а теперь придумал новую хуйню и на попятую идешь, а я тебе сказал, как правильно прописать свойства один раз и обмазываться ими потом в любом количестве.
>>1348564 >а я тебе сказал, как правильно прописать свойства один раз и обмазываться ими потом в любом количестве. Ты сказал, что нужен интерфейс, а интерфейс не содержит реализации, то есть, мало того, что эти свойства мне нужно будет в интерфейсе написать, так потом еще в каждом классе реализовывать, который его наследует...пиздец ты, молодец
Столкнулся с реальной магией, используя Dictionary в качестве кеша где ключом является long, так же есть второй словарь (по тому же ключу) который хранит последнее время доступа чтобы можно было раз в пару минут вызывать очищение неиспользуемого кеша. Так вот при каждом чтении из кеша делается это lastAccess[longKey] = DateTime.UtcNow; Все бы ничего, но почему-то спустя 20 минут после пары очисток кеша начинает вываливаться. System.IndexOutOfRangeException: Индекс находился вне границ массива. в System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) в System.Collections.Generic.Dictionary`2.set_Item(TKey key, TValue value) Я конечно же отлавливаю дебагом чтобы посмотреть, а что там не так то, но в этом то и магия что отваливается к примеру на ключе 140697896502128 что явно в пределах long. Как подобное фиксить? Ключ 100% такой, потому что я отлавливал его даже до момент как он передастся в метод для чтения и он совпадал с тем с которым вывалится exception.
>>1348671 Да так и есть, примерно 10% обращение из другого потока, при том исключение выходит только после очистки кеша. Обернул метод в lock и ошибка исчезла, но мне не нравится это решение так как lock сам по себе не дешевый, а обращение к кешу очень активное. За секунду 100-200к чтений может быть при 1к записи. Можно конечно ConcurrencyDictionary использовать, но он судя по бенчмарку на большой коллекции еще хуже будет.
>>1348947 Естественно, это я про разработку легких апликух для себя/учебы. Если уже работаешь джуном и до сих пор не понимаешь зачем нужны юнит тесты, то земля тебе пухом.
>>1348884 Спасибо попробовал. По сравнению с просто локом вышло примерно на 10%-15% лучше. Но все равно как-то не приятно когда 50% (а точнее 47% согласно dottrace) работы метода занимает вход в блокировку.
>>1348889 Большинство стандартных решений очень плохи в плане перформанса. Конкретно ConcurrentDictionary еще может сильно засрать память и в результате GC будет тормозить.
>>1348564 > а я тебе сказал, как правильно прописать свойства один раз и обмазываться ими потом в любом количестве. Объясни толком, а то не ясно нихуя, как потом из модели то во вьюмодель их пихать?
>>1349399 Бамп! Загуглил, оказывается никак. Нужно писать PE parser. Но я вообще ньюфаг в этой теме. Гугл поиск выдает какую-то парашу связанную с экселем, пидоры.
Антоны, как работает CodeFirst Обязательно ли мой класс должен полностью соответствовать таблице в SQL? Например, в базе есть таблица Клиент, если мне нужно выводить только ключ и имя клиента, я могу только эти поля привязывать и нужно ли привязывать все? Нужно ли мне привязывать все таблицы?
>>1350292 Так и работает. Твоя модель должна быть один в один, как таблица. Смысл в том, что каждая строка в этой таблице это экземпляр твоего класса в модели. Надо тебе только ключ и имя, получаешь строку (это будет экземпляр твоего класса), ну и обращайся к нему по имени через точку узнавая ключ и имя
>>1348513 Всё, решил. dataURL бейсом гонится после encodeURIComponent в GET-запросе, либо же в теле POST-запроса, строкой, затем разбивка, вытаскивается base64. После, var base64Data = Regex.Match(data, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value; var binData = Convert.FromBase64String(base64Data); var stream = new MemoryStream(binData) Ну, а дальше - битмап с потока... и наконец bmp.Save(ms, ImageFormat.Png) с предварительным using System.Drawing.Imaging;
>>1350158 Таки Func это и есть делегат.>>1350292 >>1350292 Нет, ты можешь настроить маппинг, например, чтобы разные поля проецировались на разные таблицы.
РЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ ПОЧЕМУ CLR x64 ТАКОЕ ЕБАНОЕ ГОВНО И НИХУЯ НЕ УМЕЕЕТ!??!?!!? ПОЧЕМУ БЛЯТЬ ЭТА ЗАЛУПА НЕ МОЖЕТ СТРУКТУРУ САМА ВЫРОВНЯТЬ В ПАМЯТИ ПОЧЕМУ БЛЯТЬ ЭТИМ ДОЛЖЕН ЗАНИМАТЬСЯ Я? РЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
>>1350311 А если в таблице есть внешний ключ, то что делать? Необходимо ли использовать дополнительный атрибут [ForeignKey]? >Твоя модель должна быть один в один, как таблица. Окей, а если в таблице названия строк с пробелом, то я могу через атрибут Column привязывать?
>>1350573 Есть база данных, которая уже была создана, я хочу использовать CodeFirst к существующей базе данных, чтобы работать с ней. Впрочем, думается мне, что разумнее использовать ADO.NET,
Аноны, есть проблема. Имеется консольное приложение, нужно сдетектировать перенаправление вывода в файл, и проигнорировать его.
Другими словами, мне нужно выводить всё в консоль, даже если приложение было запущено примерно так: program.exe > temp.txt.
При таком запуске Console.IsOutputRedirected показывает true. Я попытался взять Console.OpenStandardOutput и засунуть в SetOut, но это не работает, вывод продолжает идти в файл.
Есть класс Process, с методами Read(), Write(), GetModule(). Есть класс Module с методом Parse(). Объект класса Process содержит в себе список объектов класса Module. Чтобы получить доступ к методам Read()/Write() из Parse() было принято сделать класс Module родственником класса Process(). Вроде все нормально, но с инкапсуляцией пиздейшн. Process process = new Process(); // Read/Write/GetModule var module = process.GetModule(name); // Read/Write/GetModule/Parse
Как мне сделать так, чтобы я из module мог использовать только метод Parse()?
>>1335434 (OP) Платина, но все же. Ищу учебник/курсы для самых начинающих (в оп-посте не то), где бы разжевали все по полочкам для человека, который ничего, кроме бейсика 20 лет назад в школе не изучал. Я знаю основные понятия, вроде циклов, массивов, переменных и т.д., но вот классы, функции и т.д. уже темный лес. В идеале что-то уровня того сайтика для нубов в пхп-треде, есть такое?
>>1350949 Нормально проектировать классы, если тебе нужен функционал класса process в классе module, то лучше тогда его полем module сделать, а не наследовать будет тогда class Module { Process _process; public void Parse() { ебошишь здесь методы process или зачем они тебе там } }
>>1350949 Расскажи какую задачу решаешь, без этого конкретных советов дать не получится. Очевидно ты неправильно выделил абстракции, у тебя не должно быть циклических зависимостей и ты неправильно используешь наследование (прочитай про принцип замещения Лисков).
>>1335434 (OP) Какая выгода от DI фрэймворков? Чем плохо реализовать DI просто ограничившись добавлением интерфейса в конструктор, просто сделать интерфейс IFoo, сделать класс Bar с конструктором Bar(IFoo foo), и готово, потом сам создаешь конкретные реализации IFoo и передаешь их в конструктор, безо всяких контейнеров
>>1350954 Благодарю, так и сделал. А я напридумал всяких конструкций...
>>1351068 Да, у меня плохо все с проектированием, особенно когда глубина абстракции высокая. Но я вроде на листочке потом все нарисовал карандашом и разобрался. Спасибо, почитаю.
>>1335434 (OP) Есть переменная с типом Image, внутри которой - картинка с прозрачностью. Задача - взять отдельные цвета с каждого пикселя. Color c = innocuousBmp.GetPixel(x, y); // работает для Bitmap. Но конвертация Image в Bitmap - херит прозрачность. А-компонента 255 для всех пикселей. Вопрос, как можно по-другому взять по отдельности цвета каждого пикселя, включая прозрачность, причём для пикч самых различных форматов, поддерживаемых типом Image. Ну, или, как сконвертитьвать пикчу не в RGB, а в ARGB-Bitmap.
На выходе, из неё - массив RGB-цветов. А я хочу массив - RGBA значений. Ибо пхнул туда, полупрозрачную BMP-шку, а она получилось - вообще непрозрачной. Но bmp и jpeg, по определению, не поддерживают alpha-компоненту aRGB, только PNG поддерживает прозрачность. Поэтому, очевидно, что не через Bitmap надо получать цвета пикселей.
А как тогда? innocuousBmp.GetPixel(x, y) - поддерживается только в System.Drawing.Bitmap, то есть, если innocuousBmp - имеет тип Bitmap. И приходится конвертировать из Image в bitmap.
>Как конвертируешь? А тупо вот так, как там: >Bitmap innocuousBmp = new Bitmap(innocuousImg); Или же >var innocuousBmp = innocuousImg as Bitmap; что то же самое.
С другой же стороны bitmap.SetPixel(x, y, Color.FromArgb(a, r, g, b)); работает с компонентой A, и именно так я и сгенерировал полупрозрачную BMP, сгенерировав цвета, и выполнив bmp.Save("RandomImage.bmp", ImageFormat.Bmp); В последствии, я дал этой BMP-картинке - расширение .png
У меня даже получилось распарсить её и вытащить оттуда массив байт RGBA: byte[] rgbaComponents; using (var ms = new MemoryStream())\t//convert to Byte array, without converting to bitmap, to save transparency... { \tinnocuousBmp.Save(ms,innocuousBmp.RawFormat); \trgbComponents = ms.ToArray(); } for(int i=0; i<150; i++){ \tConsole.WriteLine(rgbaComponents); }
Но тут, в начале массива - байты заголовка BMP-файла. С 11-го байта - можно получить оффсет RGBA-компонент, а сами байты компонент - идут по порядку bgra (реверс argb).
>>1351169 >Это функция public static byte[] RgbComponentsToBytes(Image innocuousImg) Её код игнорирует альфа-канал: for (int x = 0; x < innocuousBmp.Width; x++) ..{ ..Color c = innocuousBmp.GetPixel(x, y); ..components[counter++] = c.R; ..components[counter++] = c.G; ..components[counter++] = c.B; ..// components[counter++] = c.A; - этой строки нет } https://docs.microsoft.com/en-us/dotnet/api/system.drawing.color?view=netframework-4.7.2
>>1351175 Дело не столько в этом, сколько в том, что после преобразования Image в Bitmap каждый пиксель имеет байт альфа-компоненты, равный 255. То есть картинка - становится не прозрачной, и компонента прозрачности исходной - не попадает в Bitmap (только RGB). Попробуй сам впиши там, рядом со твоей строчкой - ещё одну: Console.WriteLine("c:"+c+", c.A:"+c.A); Получишь ответ: >... >c: Color [A=255, R=255, G=128, B=64], c.A: 255 >c: Color [A=255, R=64, G=58, B=21], c.A: 255 >c: Color [A=255, R=195, G=8, B=15], c.A: 255 >...
Поэтому, вопрос заключается в том, как достать компоненты конкретного пикселя из Image, а не из Bitmap, ну или как преобразовать Image в полупрозрачный aRGB-Bitmap.
>>1351180 Сорян, всё ровно с битмапом. Это у меня лаги. И странно, то, что твой пример тоже работает, у меня, если компилировать сs-файл, через csc.exe. А если при помощи MSBuild.exe - не работает нихрена. Поэтому тупо перерисовал Image поверх Bitmap, как в этой статье 2013-го года: https://softwarebydefault.com/2013/03/02/bitmap-image-filters/
Начал курить паттерны. Нахуя синглтон нужен? Если мне нужен всего один объект, так я другие не буду создавать. Зачем мне ебаться и реализовывать что-то там? Ради подстраховки? Стоит вообще заморачиваться и имлантировать подобные паттерны в свои хеллоуворды?
>>1351787 В хелоуворды не надо. Паттерны это не про хэллоуворды, в ник использование паттернов только увеличит сложность и не даст никаких профитов. С другой стороны одиночка реализуется в шарпе в две строки, так почему бы явно в коде не обозначить что класс должен быть один. Лучшая документация кода - сам код. Если бесит писать Huj.Instance посмотри паттерн моносостояние.
>>1351787 Я вообще чем дальше лезу в CS тем меньше понимаю зачем в ООП развели дроч вокруг 30+ паттернов и почему нюфаням говорят тратить время на них, вместо того чтобы изучать моменты больше связанные с характеристиками самого языка, или более прикладные вещи.
Чего стоит твоя абстрактная хуябрика, если ты не сталкивался с задачами, где её применение действительно оправдано и само просится на ум? Какое заказчику дело до твоих маняназваний, если ему нужен банальный REST-сервер?
Куда ты будешь деваться, когда окажется что даже подобных паттернов можно ещё набрать? (Давай вспомним очевидных MVC и MVVM, например) А как обстоят дела с функциональной парадигмой?
А потом ты такой лезешь разбираться в DI и оказывается что это по большей части ненужный ужас, связанный не столько с программированием сколько PHP и Java причём образца начала нулевых.
>>1352048 Как же повезло современной IT индустрии, что в нашем мире есть такой гений как ты! Тебе нужно непременно организовать несколько конференций, а затем издать книгу, чтобы открыть неразумным долбоебам, погрязшим в слоях абстракций, настоящее положение вещей.
>>1352058 Это всё очень иронично, но почти у всех кто лезет сначала в паттерны обучение там и стопорится что вообще нигде не ясно зачем эта хрень нужна. Пацаны само ООП ещё не понимают, а ты их призываешь синглтоны дрочить.
>>1351787 Ты рано паттерны изучать начал, забей на них и вернись через год. Если у тебя в голове при их изучении не крутится "А что, так можно было? Божечки, почему я до этого не додумался, это же очевидно" или "Так вот как называется та штука, которую я навелосипедил" - то тебе изучать их рано и бесполезно.
>>1352048 >понимаю зачем в ООП развели дроч вокруг 30+ паттернов >>1352048 >или более прикладные вещи Ага, а какие вещи более прикладные? >>1352048 >если ты не сталкивался с задачами Это твоя проблемы. Если ты писал хоть 2-3 проекта, при знакомстве с паттернами всплывают старые проекты и решения. Под проектами я понимаю проекты, а не накиданый на коленке крад. >>1352048 >Какое заказчику дело до твоих маняназваний Видимо нужно открыть тебе маленький секрет: проекты нужно поддерживать. >>1352048 >когда окажется что даже подобных паттернов можно ещё набрать К чему это высрано - не понятно. Никто в глотку не сует и не заставляет их использовать, если в них нет надобности. >>1352048 >DI и оказывается что это по большей части ненужный ужас >>1352048 >причём образца начала нулевых Ну, здесь окончательно становится понятно, кто по ту сторону экрана: ебучая зелень, которая не работала на больших проектах.
>>1352048 >и оказывается что это по большей части ненужный ужас, связанный не столько с программированием сколько PHP и Java причём образца начала нулевых. Не доеба ради, а правда интересно. Приведи хоть пару примеров
>>1352064 >Пацаны само ООП ещё не понимают А хуль там понимать? Наследование - позволяет избежать повторяемости кода и расширить функциональность класса, инкапсуляция реализована через свойства и полиморфизм, что суть есть интерфейсы. Все, блядь, носятся с этим ООП, что пиздец.
>>1352194 >Если у тебя в голове при их изучении не крутится "А что, так можно было? Эххх, ну давай. Вот есть MVVM, чем он лучше обычных событий, методов и привязок в code behind? >Арррряяяя, там вдруг весь интерфейс поменять на вьюхе надо будет, ты такой хуяк и поменял, а потом к нужным свойствам вьюмодели привязал Бля, ну так я и из code behind все скопирую и приляпаю к новой вьюхе, то же самое бля. Только MVVM я из вьюхи лезу сначала во вьюмодель, смотрю к чему там привязано, затем лезу в модель чтобы реализацию поглядеть, тогда как раньше сразу было видно что и как делается.
>>1352048 > А как обстоят дела с функциональной парадигмой? > А потом ты такой лезешь разбираться в DI Но ведь DI это и есть функции высшего порядка курильщика
>>1352243 >А хуль там понимать? >>1352243 >Все, блядь >>1352243 >полиморфизм, что суть есть интерфейсы >>1352243 >инкапсуляция реализована через свойства Теперь пиздуешь из треда читать про полимфоризм, разницу между инкапсуляцией и сокрытием данных Про абстракцию еще сверху наверни.
Привет,шорперы Вообщем такая штука,чем можно снять .net reactor чтобы заменить пару строк в коде и собрать его потом обратно в рабочее приложение? после де4дота+закидывания то что получилось в днспай и выгрузка оттуда кнопкой "выгрузить в проект" выходит хуйня с кучей ошибок как фиксить и чем вскрыть?
>>1352208 >которая не работала на больших проектах. Угу, а чувак учащий паттерны конечно же работает сразу на большом проекте с полным контролем архитектуры кода.
Вообще в это упираешься когда с разными языками начинаешь работать и оказываешь что в разных языках их юзают в разном количестве. Вплоть до того что кое-где определённые паттерны не будут заметно использоваться как раз из-за дизайна языка. А потом начинаются вообще вредные мысли уровня а являются ли монадные перегонки данных (в случае шарпа это LINQ, например) паттерном? И тут ты гуглишь вопрос и теряешь сознание
>>1352243 >хуль там понимать? Ну хотя бы то что ООП суть пересмотр ADT. >Наследование - позволяет избежать повторяемости кода и расширить функциональность класса Ну так почти про всё в программировании так пишут. Даже про JMP в ассемблере. >полиморфизм >что суть есть интерфейсы Вот сейчас мощный панчлайн был.
>>1352311 >Теперь пиздуешь из треда читать про полимфоризм, Я читал.. Давай объясни разницу, только своими словами. И это, обоснуй, что инкапсуляция в шарпе не через свойства реализована
>>1352379 >Вот сейчас мощный панчлайн был А хули не так? Например, способность функции принимать и обрабатывать разные типы данных - это полиморфизм. Как в качестве параметра передать в неё экземпляры разных классов? Через интерфейс. Так что или извинись, или покажи, где я не прав и что же такое полиморфизм в твоём манямире
>>1352403 Это ты сейчас adhoc полиморфизм описал. Но есть еще и параметрический полиморфизм. Они ортогональны и вместе образуют очень мощный инструмент.
В ООП же намешаны смузи из этих полиморфизмов в разных пропорциях: дженерики, перегрузка, интерфейсы, наследование.
>>1352535 Блять, откуда вы такие лезете? Говоришь то что знаешь. Знаешь настолько насколько вообще изучал. Не изучал - так и говори. Считаешь что изучал недостаточно - изучай глубже.
Если тебе нужны заученные ответы, то пошёл-ка ты нахуй из профессии. Либо иди паттерны зазубри, чтоб хоть какой-то толк с тебя был.
>>1352716 Ты, блядь, не выебывайся, а расскажи своими словами, что такое полиморфизм. А то уже не первый раз вижу, когда такие умники сидят, понты кидают, а спросишь их и все, нихуя ответить не могут. Только пасты кидать горазды с какого-нибудь ресурса. Ну и традиционное, своими словами расскажи, почему MVVM - круто, а в code behind писать - плоха, тупа, нада вьюмодел
>>1352727 >В треде новый мемас придумали и лезут с ним на всех подряд. Ричард Фейнманн говорил, что если ты не можешь объяснить то, что ты делаешь на работе так, чтобы это понял ребенок, значит ты сам в этом ничего не понимаешь. И это верно, когда все из себя программисты не могут объяснить новичкам какие-то вещи, которые по их словам, элементарные, нуууу, тут все ясно о их уровне. Давай, объясни, как ты понимаешь полиморфизм в шарпе, как он реализовывается? Ну и про MVVM вопрос продолжает оставаться без ответа. Тут что, в целом треде нет ни одного специалиста, который это бы понимал не на уровне заученных понятий или потому что кто-то там скозал?
>>1352724 Хули тебе объяснять? Открыл метанит, любую книгу по основам ооп, там все блядь разжевано, иди на хуй, если ты такой целеустремленный, решил идти на вакансию 300к/сек, хуле ты у местных долбоебов спрашиваешь, а не в книге смотришь? парадигме уже лет 30, там умных книжек больше, чем здесь анонов сидит
>>1352874 >любую книгу по основам ооп Вот справедливости ради - в книгах именно по ООП, особенно ньюфажным, очень уж любят давать размытые, нестрогие определения пригодные только в контексте самого ООП.
>>1352874 >Хули тебе объяснять? Открыл метанит, любую книгу по основам ооп Чего ты опять попкой то вилять начал? Я ж даже в том посте написал, что все ниибаца программисты, козыряют своими знаниями, а спросишь любого и будет ответ - аряяя, там в книге все написано, иди читай. Своими словами нихуя объяснить не могут, а вот пасты кидать все горазды. Да сознайся ты уже, что сам нихуя не понимаешь и все.
>>1352328 de4dot не фиксит полностью код после деобфускации. Можно прямо в dnspy пропатчить или гугли фиксеры под netreactor. А вообще ты пидор! Хули софт тыришь? Пиши сам, сука.
>>1352979 Ну синглтон и нинужен, это антипаттерн. А смысл синглотона не просто том что ты создаешь только один объект, а ы том что этот один объект будет общим для всего приложения.
Поясните за сокеты и tcp/ip. В частности порты. Допустим есть сервак, как выбрать порт для прослушки ему? Какие-то ведь уже заняты могут быть. Типо, рандомно прописать порт 1256 и клиенту и серверу? Но это же бред. Как это делается по уму если?
>>1353152 > Какие-то ведь уже заняты могут быть. Типо, рандомно прописать порт 1256 и клиенту и серверу? Но это же бред. Как это делается по уму если? Именно так оно и делается. Выбираешь порт для сервера, клиент заставляешь только по этому порту обращаться.
>>1353235 Тогда все. В макдак на кассу идти. Обычно сервер находится под твоим контролем и ты можешь выбрать заведомо неиспользуемый порт (зная что запущено на сервере). Обычно клиенты конектятся к серверу (потому что NAT) так что на клиентские порты похуй. Если серверу нужно конектится к клиенту то там или берешь какой-то никем из известных приложений неиспользуемый порт, или как-то при первоначальном подсоединении клиента определяешь свободные у него порта и стучишь по ним. Можно использовать диапазоны портов - пытаться по очереди подключаться пока не найдешь свободный.
>>1353279 Есть дефолтные вроде 80 для внешних подключений, часто используемых типа 5000 а также используемых конкретными приложениями. Большинство из доступных для пользования портов не пользуются. Соответственно, можно просто рандомить по диапазонам. Можешь отдельно загуглить эту тему, там в общем-то ничего эдакого, разве что есть специфика по ОСям, но в целом среди всей сетевой хрени это наверное самая изичная. Хотя можешь углубиться в историю и архитектуру компьютеров, чтобы понять откуда вообще взяли идею портов, чего в ней хорошего, и почему оно выглядит именно так как сейчас.
Аноны, такое интересует. Есть список чисел, которые отсортированы, ну пусть в порядке возрастания. Надо добавить еще одно число в него. Вроде все логично: list.Add(chislo); list.Sort(); Но если список будет большой, числа будут идти довольно часто, то не посыпется ли это все от тормозов? Как то можно изящнее сделать или и так сойдет?
>>1353551 Сортировки нет пердоль сам. Фишка линкед листа в том что добавление/удаление происходит за O(1), но зато, доступ за О(n), поэтому про бинарный поиск можно забыть. Что бы выбрать правильную структуру надо полностью разобраться в задаче. Так что не выебывайся и бери готовые SortedList/SortedSet/SortedDictionary.
>>1353036 Понял. Но разве не легче везде с собой таскать нужный экземпляр объекта? Через ссылку его перекидывать и норм. С синглтоном производительность ниже будет же? Или я не прав?
>>1353770 > Через ссылку его перекидывать и норм. С синглтоном производительность ниже будет же? Ну смотри. Вместо того чтобы хранить одну ссылку для синглотона на все приложение, ты собираешся в каждый конструктор класса (в котором нужна функциональность синглтона) добавить еще один параметр для передачи ссылки, и добавить еще одно поле в сам класс для постоянного хранения ссылки. Каким образом это может быть проще или эффективнее?
>>1353782 И где мне эту ссылку на синглтон держать-то? Я пару дней назад спрашивал об этом, мне все в один голос написали не выебываться и копировать в конструктор объект. Хуй пойми блять.
>>1353792 >И где мне эту ссылку на синглтон держать-то На вики посмотри примеры реализации ШАБЛОНА ПРОЕКТИРОВАНИЯ ОДИНОЧКА - там есть немного подводных камней. > не выебываться и копировать в конструктор объект Ну так нужно по ситации ориентироваться. Если то что должно быть синглотоном используется в объектах которые создаются в одном месте то тогда действительно может быть смысл передавать в конструтор.
Анчоусы, мне тут попалась книжка ASP NET MVC 4. Я понимаю, что эта версия фреймворка уже устарела, но мне нравится эта книжка. Там отлично объясняется работа с интерфейсами, делегатами, лямбда-выражениями, LINQ и всем прочим До этого читал Труэлсена, было ощущение, что много воды и спустя пару часов ничего не понимал. Дошел где-то до середины и дропнул. Затем читал метанит, но это больше похоже на справочник, куда стоит заглянуть, если что-то забыл. Или знаешь похожую технологию
В результате изучаю эту книжку по MVC 4, а на непонятных местах лезу к Рихтеру и на метанит - так получается намного продуктивнее и интереснее. И в голове все связно - все примеры в книге идут последовательно и тут же применяются на практике. Прям удовольствие получаю
Но у меня какой-то подростковый ангст от того, что я изучаю старую технологию, по большому счету. Есть что-нибудь подходящее для меня, на русском языке? Можно и на английском, но, прошу, вдруг есть годный материал на русском. Тяжело читать англоязычную литературу
Летом хочу на джуна собеседоваться, поэтому сейчас каждый день ебашу. Хочется влиться в какую-нибудь заебатую команду, которая подскажет, что к чему
История довольно тупая - четыре года учился на специальности "Связь", понял, что не мое. Случайно нашел программирование и испытал детский восторг. Чекнул зарплаты и охуел. Такое ощущение, что связисты не нужны. Да и все остальные тоже Однако дело не в шкурном вопросе. Просто не хочу как родители всю жизнь пыхтеть не на своём месте
>>1354065 Convert попытается преобразовать тип если возможно, например сконвертировать строку в число, числовой тип в бул и т. д. Явное приведение сразу бросит эксепшн, если приведение не определено.
Анонасы, я линуксоид и хочу выучить шарп. Не ну а чо, у жабы производительность чутка поменьше, да и ее излишняя многословность пугает. dotnet теперь опенсорц, везде работает теперь. Посоветуйте годную IDE под Linux, мне VSCode не понравился чет, электрон этот жирный...
>>1354105 Rider в целом неплох, но вообще лучше перекатись на винду: там есть VS, которая на порядок лучше, ну и все популярные линуксы уже туда интегрированы.
>>1354105 А кроме вскода ничего и нет, страдай. Конечно, есть райдер, но он платный и проприетарный, да и не особо быстрее вскода. Зато в вскоде можно напердолить красивый интерфейс и дрочить на него! Мне, как хелловорлдщику, который не писал приложений > пары тысяч строк кода я на глаз приктнул, хз сколько на самом деле, вскода вполне хватвет - подсветка ошибок есть, автокомплит есть, дебаг есть. Что еще надо?
>>1354197 В смысле толсто? Чего тебе не хватает из линь инфраструктуры в WSL? cgroups или gpu? Rider действительно неплох и будет получше нежели MonoDevelop/SharpDevelop. VSCode - вообще не IDE.
Я только начинаю вкатываться, головная контора в городе работает на шарпе, соответственно в малых конторках он тоже есть. Можете еще пояснить зачем вообще нужен? Для энтерпрайза есть жава. Для веба - пхп, джанга, жаба, го. Для мобилок - свифт и опять же жаба. Для игор - плюсы. Как он вообще взлетел? Правильно я понимаю, что шарп чаще используется для тяжелых бекэндов? А для визиток "ИП Хачатурян" - пхп? И еще как там с удаленочкой, фрилансом, релокейшеном?
>>1353938 Один вопрос тебе. Зачем эта самая С нужна? Хранить методы действий? Нахуя нужен контроллер, если он только и делает, что вызывает методы модели
>>1354228 Да потому что пересаживаться на винду ради языка - это может посоветовать только очень толстый тролль. Я не буду тебе объяснять почему венда - унылое говно (ибо уж на дваче это точно стопицот раз писали), просто запомни, что не программист подстраивается под инструмент, а инструмент под программиста.
>>1354228 Гну/Линукс - относительно свободная ос. А винда нет. >>1354275 Хуй его знает. Да и никто под него не пишет - сейчас в тренде электрон и кутэ. Не удивлюсь, если высеры шарпохейтеров окажутся правдой и даже на серверах шарп уступит место нодджсу и тайпскрипту.
>>1354271 Если винда лучше подходит для решения задачи, почему троллинг её предлагать? Для каждой задачи свой инструиент. Или у тебя линукс отберут, если ты винду поставишь?
>>1354294 >если высеры шарпохейтеров окажутся правдой и даже на серверах шарп уступит место нодджсу и тайпскрипту. > А причем тут высеры шарпохейтеров? Любой нормальный дотнетчик это и так понимает. Достаточно открыть репозиторий майек и увидеть тонны кода на ноде и тс. Учитывая что тс детище майек - на шарп успешно забьют хуй. Выкатили 2.1 LTS, выкатят еще через пару лет LTS, а потом пошлют нахуй.
>>1354975 Если тебе нужен многомерный массив, то надо так: my_struct[ , ] data = new my_struct[64, 12];
Если нужен именно лист листов, то надо так: List<List<my_struct>> data = new List<List<my_struct>>();
В обоих случаях тип ясен по правой части выражения, поэтому лучше просто использовать var: var data = new my_struct[64, 12]; или var data = new List<List<my_struct>>();
Элемент в строке i и столбце j можно получить так: data[i, j]
>>1353938 можешь почитать и про MVC 4, а затем MVC 5 глянуть. Но сейчас по сути уже .NET Core (тем более 2.0). А там вроде как не много концепцию изменили. + как никак но фронтен не много учить придется. Чисто бэкендом наврятли будешь.
>>1355075 не обязательно отучиваться на него. У меня как раз получилось наоборот. Учусь на программиста, а работаю связистом. Правда всё же в программирование вкатываюсь.
Бля, у меня какого то хуя вместо ссылки на список создаётся его копия.
Class { List<MyObj> MyList;
public func (List<MyObj> List) { MyList = List; //Здесь в MyList должна была записаться ссылка на List, а вместо этого создаётся копия List. ЧО ЗА ХУЙНЯ БЛЯДЬ } }
Кто нибудь юзает C# на линуксе? У меня установлен .NET Core и Mono. Создал консольный проект net core. Открыл в VS Code. Началась установка OmniSharp. Выпала ошибка. Говорит попробуй установить msbuild для mono. Пробую установить, выдает что следующие пакеты больше не требуются и будут удалены linux-headers-4.15.0-43 linux-headers-4.15.0-43-generic linux-image-4.15.0-43-generic linux-modules-4.15.0-43-generic linux-modules-extra-4.15.0-43-generic. Мне кажется это лажа какая то, у меня сейчас активно ядро 4.15.0-43, то есть пакеты эти нужны. Какого хрена такое происходит?
>>1355193 Омнишарп делали какие-то ебаны и он нигде, кроме бубунты/дебиана, не работает. Поэтому или ставь убунту винду или докер. Могу скинуть свой работающий докерфайл с вскодом, если надо.
>Гну/Линукс - относительно свободная ос. >А винда нет.
Какое практическое применение свободы на десктопе?
>>1354271 >Да потому что пересаживаться на винду ради языка - это может посоветовать только очень толстый тролль.
Это совет к любой системе, где нормальные инструменты прибиты гвоздями к платформе. Сейм шит с яблочными технологиями — можно пердолиться и разрабатывать под iOS c линукса/винды, используя удалённые билд-сервера для сборки/отладки/даже превью, но проще сесть за мак, несмотря на то, что макось — лютое консьюмерское говнище.
>>1355219 > Какое практическое применение свободы на десктопе? Раз тебе нравятся зонды и реклама, то твое дело. > Это совет к любой системе, где нормальные инструменты прибиты гвоздями к платформе. Сейм шит с яблочными технологиями — можно пердолиться и разрабатывать под iOS c линукса/винды, используя удалённые билд-сервера для сборки/отладки/даже превью, но проще сесть за мак, несмотря на то, что макось — лютое консьюмерское говнище. Но неткор опенсурсен и кроссплатформен - под него можно писать и под линуксом. Да и на шарпе ты пишешь под линукс, а не под айфон.
>>1355200 Сочувствую. А я разобрался в чем была проблема.
>>1355200 >VS 2017 Однажды ебался с вижуал студией на винде. Скачал VS с торрента, весила она 30Гб! 1-2 часа устанавливал всю эту хрень. Когда запустил чуть не блеванул. Глючное поделие. Снес винду к ебеням.
>>1355217 >Омнишарп делали какие-то ебаны и он нигде, кроме бубунты/дебиана, не работает. Где он не работает кроме убунты? У меня Минт, так что должно работать.
Опенсорсный дотнет кор, кстати, по дефолту шлёт телеметрию. Там есть флаг для отключения, но если б я не сказал, ты бы пошёл его ставить? Аналогичное можно сказать про кучу открытого софта, где есть крэшрепортеры/метрики/что угодно(и vscode, в которой ты собирался писать, тоже срёт телеметрией как сама, так и 3-rd party расширения).
Эту проблему опенсорц не решает ни разу сам по себе — надо лезть в конфиги, как и с закрытым софтом.
> и реклама, то твое дело.
В PRO-редакции есть реклама? Как там поживают amazon ads в ubuntu? inb4: я элитный борщехлёб на дебиане.
Мне нравятся инструменты, которыми работают, оставляя мне процесс разработки, а не ебли с конфигурацией.
>Но неткор опенсурсен и кроссплатформен - под него можно писать и под линуксом.
Писать можно хоть с телефона, работать — только с винды / из-под студии. Все попытки пердолинга из-под заканчиваются на том, что внезапно нужно открыть дотнетовский проект с какой-нибудь легаси-хуитой уровня edmx, который не поддерживается нигде, кроме оригинальной студии(и хорошо ещё, если свежие редакции её нормально поддерживают).
>>1355248 Не хочу начинать спор, но очевидно, что полноценному сисярп разработчику необходима винда. Ты победил. а я мамин борщехлеб, пишу на шарпе только для себя
Суп парни и девочки, такой вопрос. Я только учусь, и проще все осваивать переписывая чейто говнокод. Если я условно переписал какую-то программку скажем с ролика на ютабчике, обмозговал ее, в чем то разобрался , что то своего подговнокодил, но основной код все таки чужой, имею ли я право это лить на свой репозиторий в качестве какого-то портфолио и прочее. Как то это палится, какие то нюансы, поясните мне как это все работает и в будущем когда на джуна буду устраиваться. Давайте обнял
А зачем качать дистр, который включает даже раковину и несколько версий андроида? У майкрософта есть специальный веб-инсталлер с красивыми кнопочками(пикрил) под разные стеки для совсем тупеньких, который вытягивает только нужное.
Денег студия много лет не просит за нормальную редакцию — пиратить энтерпрайз ради энтерпрайза странно(но и в этом случае проще поставить через веб-инсталлер и дать ей левый ключ, которых полно в интернете).
>>1355219 > макось — лютое консьюмерское говнище Как по мне так макось от любой другой nix системы не отличается вообще никак. Разве что меньше пердолинга с драйверами, лол.
>>1355254 >У майкрософта есть специальный веб-инсталлер Чтобы поставить только msbuild, надо сначала скачать и установить установщик, и уже через установленный установщик поставить msbuild. Последний весит гораздо меньше установщика. Хорошо, что есть JetBrains.
>а я мамин борщехлеб, пишу на шарпе только для себя
Попробуй Rider от JetBrains тогда. Он, правда, стоит денег и закрытый, но там всё сильно лучше, чем в поделках уровня OmniSharp и MonoDevelop. Даже два с половиной назад, когда он был в глубокой бете, писать в нём было удобнее, чем в на то ещё момент не переименовавшейся Xamarin Studio.
>>1355254 >Денег студия много лет не просит за нормальную редакцию За комьюнити что ли? Даже через веб-инстоллер будет весить дофига. Если не ошибаюсь дефолтная без ничего весит 3Гб! Охренеть. Мой дистрибутив ОС весит 2,5Гб. Такое поделие не нужно.
>>1355260 >Чтобы поставить только msbuild, надо сначала скачать и установить установщик, и уже через установленный установщик поставить msbuild. Последний весит гораздо меньше установщика. VS не нужен, хоть с установщиками хоть без них.
MSBuild стоит из коробки, зачем для него студийный инсталлер? Если нужен только sdk без всего остального, его можно скачать отдельно(опять же, странно использовать инсталлятор студии, для того, чтобы ставить не студию).
>Если не ошибаюсь дефолтная без ничего весит 3Гб!
500 метров, причём большая часть уходит под sdk разные(которые и в дистрибутиве на 2.5gb точно так же нужно будет ставить)
Если ты про то, что ставит .NET Core cross-platform development, то там ещё чуть более 9000 инструментов в комплекте идёт, начиная с нескольких редакций докера и, если не ошибаюсь, дистрибутива moby linux, чтобы запускать нативные линуксовые контейнеры в hyper-v, а не WSL.
>>1355264 Я уже привык к вскоду - в нем нет кучи ненужной хуйни и я не теряюсь в настройках, поэтому довольно быстро выучил шорткаты и он кажется пиздос удобным. Да, он не подсказывает как правильно называть переменные и не способен в два клика изменить десятки классов наследников от измененного абстрактного вроде что-то подобное делал в студии с спираченым решарпером, непомню уже. Но я ждал аж 30 секунд, пока оно применило все изменения моего йоюа рефакторинга, но мне его хватает. Ну и еще шрифты в вскоде красивее, как же без этого. на самом деле я ненавижу эту парашу, ради котлрой аж докер пришлось ставить. Сдохните, индусы с омнишарпа ебучие.
>Как по мне так макось от любой другой nix системы не отличается вообще никак
Конфиги-через-жопу. Ни нормальных текстовых файлов, как в линуксе, ни нормального UI для многих вещей, как на win. Нетривиальные настройки через defaults write... Абсолютно угрёбищный дефолтный софт, который выпрямляется кучей мелких костылей за $0.99. Начиная с таких базовых вещей, как window snapping в window manager, который реализуется элементарно, но его нет из коробки в 2019-м. Пакетный менеджер кастрирован до user-level пакетов. Контейнеры -- нет, только пердольный эмулятор docker, которому нужна VM с линухом. Даже на windows нативные контейнеры уже завезли.
>>1355281 > >500 метров, причём большая часть уходит под sdk разные(которые и в дистрибутиве на 2.5gb точно так же нужно будет ставить) Пиздешь. Дефолт ультимэйт 3 гига. Там есть галочки, которые нельзя снять, виндовый дотнет и еще что то. В линукс который весит 2.5 гига весь, не нужно ставить VS, только дебил будет это делать, тем более она на линуксах не работает. У меня vs code, весит 100-200 метров. Больше мне ничего не надо.
>>1355293 >проблема решается SSD шником) сама студия за 3-5 сек открывается. Проект же за секунд 10-15. Нахуй оно мне нужно. Винда для ламеров. Это тяжеловесное чудовище.
Там одного электрона(который ставится свой, а не используется из зависимостей), больше. Для понимания, выполни du -sh ~/.vscode(а именно туда оно заливает тонны говен) и вывод вбрось — мы все посмеёмся.
OmniSharp, mono, .net core — они ставятся отдельно и тянут за собой сотни мегабайт.
> Конфиги-через-жопу. Ни нормальных текстовых файлов, как в линуксе, ни нормального UI для многих вещей, как на win. Нетривиальные настройки через defaults write... Поясни, пожалуйста, подробнее.
> Начиная с таких базовых вещей, как window snapping в window manager, который реализуется элементарно, но его нет из коробки в 2019-м. Не хочу чтобы ты подумал что я адепт нинужна но что это и зачем оно нужно? Мб я какую-то полезную фичу упускаю?
> Абсолютно угрёбищный дефолтный софт, который выпрямляется кучей мелких костылей за $0.99. Какой именно? И другой вопрос - действительно ли он неудобен, или просто у тебя не могли все как в крузисе виндовсе сделать? Я до сих пор порой матерюсь от неудобности определенных вещей в UI макоси, но при этом я понимаю что проблема исключительно в том что предыдущие 20 лет я провёл за виндой.
> Пакетный менеджер кастрирован до user-level пакетов. Я может не в курсе, но мне казалось что ты волен поставить любой менеджер нужный тебе, начиная от brew и заканчивая кучей альтернатив. Ну и да, безопасность же, проще анально ограничить по умолчанию и тем пользователям которым это реально надо объяснить что делать.
> Контейнеры -- нет, только пердольный эмулятор docker, которому нужна VM с линухом. Ну я слышал про то что докер на Макоси пока что не может в нашивную виртуализацию, но опять же - и чо? Там легковесная виртуалка с необходимым минимумом. И думается мне ещё допилят.
apt show code Package: code Version: 1.31.1-1549938243 Priority: optional Section: devel Maintainer: Microsoft Corporation <[email protected]> Installed-Size: 197 MB Provides: visual-studio-code Depends: libnotify4, libnss3 (>= 2:3.26), gnupg, apt, libxkbfile1, libsecret-1-0, libgtk-3-0 (>= 3.10.0), libxss1 Conflicts: visual-studio-code Replaces: visual-studio-code Homepage: https://code.visualstudio.com/ Download-Size: 48,7 MB APT-Manual-Installed: yes APT-Sources: http://packages.microsoft.com/repos/vscode stable/main amd64 Packages Description: Code editing. Redefined. Visual Studio Code is a new choice of tool that combines the simplicity of a code editor with what developers need for the core edit-build-debug cycle. See https://code.visualstudio.com/docs/setup/linux for installation instructions and FAQ.
В ~/.vscode сейчас 2 расширения, которые я поставил после установки. Сама vscode 197Мб.
>>1355308 >OmniSharp, mono, .net core — они ставятся отдельно и тянут за собой сотни мегабайт. Естественно ставятся отдельно. Unix way ёпты. Каждый пакет выполняет свою задачу и не связан с другими. Только в винде и в VS все прибито гвоздями.
apt show dotnet-sdk-2.2 Package: dotnet-sdk-2.2 Version: 2.2.104-1 Priority: standard Section: devel Maintainer: Microsoft <[email protected]> Installed-Size: 235 MB Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.8), aspnetcore-runtime-2.2 (>= 2.2.2), dotnet-runtime-2.2 (>= 2.2.2) Homepage: https://dotnet.github.io/core Download-Size: 88,5 MB APT-Manual-Installed: yes APT-Sources: https://packages.microsoft.com/ubuntu/18.04/prod bionic/main amd64 Packages Description: Microsoft .NET Core SDK 2.2.104 .NET Core is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs
Моно нужно не только для omnisharp. Я ставлю его всегда, так как использую приложения которые на нем работают. Также компилятор F# его требует. И другие разные пакеты.
apt show mono-devel Package: mono-devel Version: 5.18.0.240-0xamarin1+ubuntu1804b1 Priority: optional Section: cli-mono Source: mono Maintainer: Debian Mono Group <[email protected]> Installed-Size: 105 MB Provides: assembly-linker, c-sharp-2.0-compiler, c-sharp-3.0-compiler, c-sharp-4.0-compiler, c-sharp-4.5-compiler, c-sharp-compiler, resource-file-generator, strong-name-tool Depends: mono-runtime (>= 3.0~), libc6 (>= 2.27) | libc6.1 (>= 2.27) | libc0.1 (>= 2.27), libglib2.0-0 (>= 2.56.3), libmono-accessibility4.0-cil (>= 1.0), libmono-cecil-private-cil (>= 5.18.0.240), libmono-cecil-private-cil (<< 5.18.0.241), libmono-codecontracts4.0-cil (>= 1.0), libmono-compilerservices-symbolwriter4.0-cil (>= 3.6.0), libmono-corlib4.5-cil (>= 4.0.0~alpha1), libmono-i18n4.0-cil (>= 4.0.0~alpha1), libmono-messaging4.0-cil (>= 3.0.6), libmono-microsoft-build-framework4.0-cil (>= 3.6.0), libmono-microsoft-build-utilities-v4.0-4.0-cil (>= 3.6.0), libmono-peapi4.0a-cil (>= 3.2.8), libmono-rabbitmq4.0-cil (>= 1.0), libmono-relaxng4.0-cil (>= 2.10.1), libmono-security4.0-cil (>= 3.0.6), libmono-system-componentmodel-composition4.0-cil (>= 3.0.6), libmono-system-componentmodel-dataannotations4.0-cil (>= 4.0.0~alpha1), libmono-system-configuration-install4.0-cil (>= 1.0), libmono-system-configuration4.0-cil (>= 4.0.0~alpha1), libmono-system-core4.0-cil (>= 4.0.0~alpha1), libmono-system-data-linq4.0-cil (>= 1.0), libmono-system-data-services-client4.0-cil (>= 1.0), libmono-system-data4.0-cil (>= 4.0.0~alpha1), libmono-system-design4.0-cil (>= 1.0), libmono-system-drawing-design4.0-cil (>= 1.0), libmono-system-drawing4.0-cil (>= 3.0.6), libmono-system-enterpriseservices4.0-cil (>= 1.0), libmono-system-identitymodel-selectors4.0-cil (>= 1.0), libmono-system-identitymodel4.0-cil (>= 4.0.0~alpha1), libmono-system-io-compression-filesystem4.0-cil (>= 3.2.1), libmono-system-ldap4.0-cil (>= 4.0.0~alpha1), libmono-system-messaging4.0-cil (>= 2.10.1), libmono-system-net-http-formatting4.0-cil (>= 1.0), libmono-system-net-http4.0-cil (>= 1.0), libmono-system-numerics4.0-cil (>= 1.0), libmono-system-reactive-core2.2-cil (>= 1.0), libmono-system-reactive-interfaces2.2-cil (>= 1.0), libmono-system-reactive-linq2.2-cil (>= 1.0), libmono-system-runtime-caching4.0-cil (>= 4.0.0~alpha1), libmono-system-runtime-durableinstancing4.0-cil (>= 1.0), libmono-system-runtime-serialization4.0-cil (>= 4.0.0~alpha1), libmono-system-runtime4.0-cil (>= 2.10.1), libmono-system-security4.0-cil (>= 1.0), libmono-system-servicemodel-activation4.0-cil (>= 1.0), libmono-system-servicemodel-web4.0-cil (>= 3.2.1), libmono-system-servicemodel4.0a-cil (>= 3.2.3), libmono-system-transactions4.0-cil (>= 1.0), libmono-system-web-applicationservices4.0-cil (>= 1.0), libmono-system-web-extensions4.0-cil (>= 2.10.3), libmono-system-web-http4.0-cil (>= 1.0), libmono-system-web-razor2.0-cil (>= 1.0), libmono-system-web-services4.0-cil (>= 1.0), libmono-system-web-webpages-razor2.0-cil (>= 1.0), libmono-system-web-webpages2.0-cil (>= 1.0), libmono-system-web4.0-cil (>= 2.10.3), libmono-system-windows-forms4.0-cil (>= 1.0), libmono-system-xaml4.0-cil (>= 1.0), libmono-system-xml-linq4.0-cil (>= 3.0.6), libmono-system-xml4.0-cil (>= 3.12.0), libmono-system4.0-cil (>= 4.0.0~alpha1), libmono-windowsbase4.0-cil (>= 3.0.6), mono-mcs (= 5.18.0.240-0xamarin1+ubuntu1804b1), mono-roslyn (= 5.18.0.240-0xamarin1+ubuntu1804b1), mono-gac (= 5.18.0.240-0xamarin1+ubuntu1804b1), mono-xbuild (= 5.18.0.240-0xamarin1+ubuntu1804b1), libmono-cil-dev (= 5.18.0.240-0xamarin1+ubuntu1804b1), libmono-2.0-dev (>= 5.18.0.240-0xamarin1+ubuntu1804b1), libmono-2.0-dev (<< 5.18.0.240-0xamarin1+ubuntu1804b1.1~), ca-certificates-mono (= 5.18.0.240-0xamarin1+ubuntu1804b1), pkg-config Homepage: http://www.mono-project.com/ Download-Size: 21,9 MB APT-Manual-Installed: yes APT-Sources: https://download.mono-project.com/repo/ubuntu stable-bionic/main amd64 Packages Description: Mono development tools Mono is a platform for running and developing applications based on the ECMA/ISO Standards. Mono is an open source effort led by Xamarin. Mono provides a complete CLR (Common Language Runtime) including compiler and runtime, which can produce and execute CIL (Common Intermediate Language) bytecode (aka assemblies), and a class library. . This package contains various development tools and pulls in the default development stack for Mono (which is 4.0 currently).
Ха-ха. Полный метапакет моно со всеми зависимостями всего 105 мб. Шах и мат.
Аноны, как перестать использовать в своих поделках чужие либы? 8 месяцев неспешно изучаю c# (тупой просто, тяжело усваиваю). Сейчас нахожусь где-то на уровне: придумал - загуглил - повторил. В середине треда прочитал совет по созданию приложухи от анона с таблицами и выгрузкой графиков, отчётов и доков. Хотелось бы больше адекватных примеров, а не создадим ебучую хуету, чтобы посмотреть, как автор усвоил что такое интерфейсы, делегаты и события, и решил выебнуться и других научить, которую в нормальном приложении так никто делать не будет? Ну и да, метанит заебал икниги не идут, перечитываю и не понимаю где применить изучение. Выручай!
>>1355332 Ебучий Т9, ну ты понял. Можно примеры на ингрише, со словарём справлюсь. И сейчас спрошу самый пиздос: как разбирать код, который есть на гитхаб? Я имею в виду либы, чтобы переписать под себя, а то читаю и не понимаю нихуя иногда (часто).
Конфиги, в основном, лежат в plist(недо-xml) файлах, разбросанных по системе. Значительная часть гайдов по настройке чего-нибудь сложного — это вызов defaults write с магическими строками для ключей/значений, причём не для простоты воспроизведения, а именно из-за отсутствия UI. Такого типа: http://osxdaily.com/2012/10/09/best-defaults-write-commands-mac-os-x/
>что это и зачем оно нужно?
Банально сделать окно в половину экрана / развернуть в полную высоту / ширину / вернуть как было
> адепт нинужна
В линуксах оно точно такое же.
> Абсолютно угрёбищный дефолтный софт, который выпрямляется кучей мелких костылей за $0.99. > Какой именно?
Файндер, например: - Путь невозможно поправить(но есть path finder за $40(!), который добавляет address-бар) - Открыть архив — хуй там, только распаковать - Наркоманские комбинации клавиш — это вкусовщина и, вроде, настраивалось
В итоге, пока пару лет сидел на маке, использовал mc из терминала. Уже пару лет макосью не пользовался, больше сходу не вспомню.
>действительно ли он неудобен
Это элементарные вещи, которые сделаны неитуитивно. В линуксах попсовых реализации от винды не сильно отличаются — не из-за подражания, а просто сделано наиболее очевидным способом, а не think different.
> Пакетный менеджер кастрирован до user-level пакетов. >brew
Брю как раз прибит к юзеру и не запустится через sudo/от рута.
>безопасность же
Невозможность поставить софт глобально в пакетном менеджере — это проблема, а не безопасность: возможность выполнения произвольного кода остаётся(от имени ставящего юзера), а выставить общий софт не может даже админ.
>>1355332 >Аноны, как перестать использовать в своих поделках чужие либы? Какие например? Ты бы еще спросил как перестать использовать земные блага и создавать свои. Перестать пользоваться ложкой с вилкой, придумать свои столовые приборы. Перестать ездить на колесном транспорте, переизобрести колесо и потом самому создать автомобиль. Перестать носить одежду, пока не сошьешь все сам. Ну ты понял. Глупо не использовать либы если они хорошо решают свою задачу.
>>1355339 Либы которые я встречал, не очень подходят, а в силу нехватки знаний не могу допилить под себя, какие-то из-за зависимостей использовать не получается (может я просто не понимаю как, ну хули если туповат). А из примеров типа метанита или Троелсена не всегда понимаю суть, теряю нить в процессе.
>перестать использовать в своих поделках чужие либы
Зачем? У тебя в любом случае огромный фреймворк, чтобы не велосипедить как раз.
>Хотелось бы больше адекватных примеров, а не создадим ебучую хуету, чтобы посмотреть, как автор усвоил что такое интерфейсы, делегаты и события
Ну так решай какую-нибудь свою задачу, в процессе разберёшься со всем остальным. Вообще, инструменты для проблем, а не проблемы для инструментов: - будут у тебя события в приложении — поймёшь, зачем нужны события в языке - сделаешь несколько реализаций общих — осознаешь необходимость интерфейсов - проебёшься с отладкой несколько дней — поймёшь, зачем нужны тесты и модульность
>>1355346 Я вот и спросил где бы посмотреть/почитать адекватные примеры/идеи? Мне присылали тестовое написать приложение asp.net web api с отправкой push уведомлений на телефон. Я сделал часов за 8, хотя веб даже не начинал, потому что интересным показалось.
>>1355343 >Либы которые я встречал, не очень подходят Что значит встречал, может какое то говно с файлопомоек находишь, и считаешь это за либы. Нужно правильно искать, спрашивать у старших товарищей, тех кто давно программирует на дотнет, они знают что есть чего нет. Например есть замечательный чат в телеграме, который самый крупный.
Чтобы писать свои библиотеки нужен опыт. Опыт не просто копирования, а самостоятельного проектирования. Никакие Троелсены этому не учат, тем более метанит. Даже в книгах этого почти не найдешь. Такому можно научиться только переняв опыт у более опытных, тех кто пишет код за деньги. Либо работая самому в команде. Либо занимаясь контрибьютингом в опенсорс проекты. Без комьюнити никуда. По книгам сам не научишься. В комьюнити могут посмотреть твой код и сказать что не так, как сделать лучше.
>>1355354 >Даже в книгах этого почти не найдешь. Такому можно научиться только переняв опыт у более опытных, тех кто пишет код за деньги Что за хуйню ты несешь, поехавший. На docs.microsoft.com столько инфы, начиная от монолитной архитектуры, N-tier, CQRS, микросервисы, описано, с плюсами-минусами и так далее. При наличии мозга и способности к чтению, можно обойтись без старших товарищей, но кто-то кто будет делать код ревью конечно желателен, но не ОБЯЗАТЕЛЕН, если ты умеешь ЧИТАТЬ >>1355353 >Нахуй ути какие мы нежные.
>>1355365 >На docs.microsoft.com столько инфы, начиная от монолитной архитектуры, N-tier, CQRS, микросервисы, описано, с плюсами-минусами и так далее. Это все хуйня, шаблоны. Чтобы спроектировать библиотеку нужен другой подход. Нужно спроектировать ее API, то что будут юзать пользователи. Потом внутренности. Спроектировать уровни абстракции, и барьеры между ними, чтобы все было модульно, склеивалось друг с другом без проблем, и не зависело друг от друга.
Микросервисы и прочую хуйню никто не знает как проектировать. Все только пиздят про них, но никто нигде не говорит как они должны быть сами по себе устроены внутри, как соединятся друг с другом. Не говорят потому что не знают нихуя. Почитай СИКП, вот там уровень проектирования, там инженеры.
>>1355365 >При наличии мозга и способности к чтению, можно обойтись без старших товарищей, но кто-то кто будет делать код ревью конечно желателен, но не ОБЯЗАТЕЛЕН, если ты умеешь ЧИТАТЬ Такая хуйня не работает. Спроси у любого сеньера. Ни один ученый не делал отрытие закрывшись у себя в доме. Рост профессионализма возможен только через обмен опытом. Тупое поглощение информации ничего не дает.
>>1355365 Читать умею, но быстро забываю информацию. Часто приходится перечитывать, пересматривать или возвращаться, т.к. помню где искать, как называется, даже идею, но реализацию - нет. Даже разметку на дваче уже забыл. >>1355354 Я себя и так обезьяной неразумной чувствую периодически, осталось только чтобы меня нахуй в чате посылали (я за этим на двач хожу)
>>1355372 >осталось только чтобы меня нахуй в чате посылали Ты зря так думаешь. В чатах где собраны профессионалы обычно хорошо относятся к новичкам. Я задавал вопросы в Хаскель чате, там очень хорошо принимают новичков, на все вопросы отвечают, во всем помогают. Главное не боятся и не стыдится. Стыдно не задавать вопросы, стыдно не желать обучиться, стыдно боятся общаться с людьми, а показать всем что ты чего то не знаешь не стыдно. За интерес как говорится спроса нет. В морду не дадут.
>>1355372 >Читать умею, но быстро забываю информацию. Часто приходится перечитывать, пересматривать или возвращаться, т.к. помню где искать, как называется, даже идею, но реализацию - нет. >Даже разметку на дваче уже забыл. У тебя наверное мало практического опыта. Читать просто так бесполезно. Нужно много практиковаться.
>>1355349 > Даешь еще делфи Я кстати на стажировке в 2015 году писал на дельфях, внезапно очень доставило, если бы не долбоебическая политика Борланда и позднее Эмбаркадеро - для энтерпрайзных задач был бы замечательный инструмент.
>>1355371 В этом вся проблема двачевкатывальщиков в ойти, лол. Вместо того чтобы без задней мысли начать кодить, общаться с другими и наращивать опыт - двачеайтишники ищут серебряную пулю в виде книжки «как правильно кодить» и надеются что вот-вот ее найдут, прочитают и начнут кодить по единственно правильным и хорошим правилам, и не надо будет тогда читать/учить что-либо ещё.
Ананасы, есть ли тут среди вас асутпшники? Может кто из асутпшников вкатывается впрограммирование или же наоборот, кого то программирование доебало и он укатился в асутпшники. Расскажите, может ли обычный быдлопрограммист вкатиться в асутп?
>>1355335 Двачую насчет всего. Думал, что это божественная система, раз ее все так обсуждают, а на самом деле она то, что ты описал. Пиздос, чтобы не смотреть на противный файндер, я в отдельном окне запустил терминал на весь экран и пользовался cd ls. Никогда больше не вернусь на эту хуету.
Пока в винде все работает изкаробки, а на линуксе все, что нужно, опенсурсно и ставиться за пару минут, на макосе стоит 39.99$. чтобы раскладка была на шиыт альт, мне посоветовали скачать мокропиську от яндекса. Иначе сиди и меняй языки на вин+пробел
>>1355370 Лол блять. Маня проекции. Если в вашей сраной конторе не могут в микросервисы и нормальную масштабируемую архитектуру то это исключительно твои проблемы.
>>1355454 Что такое микросервисы и архитектура? Скорее всего ты нихуя не ответишь на эти вопросы. Микросервисы во первых верхний уровень. Что на нижних уровнях? Опять ты нихуя не ответишь. Какое отношение микросервисы имеют к написанию библиотек? Какое отношение микросервисы имеют к архитектуре вообще? Ты не разобравшись пизданул хуйню.
>>1355381 Я уже вкатился в ойти, только не занимаюсь разработкой. А на работе, в основном, использую батники в связке с vbs. Поэтому и спрашиваю где посмотреть на хорошие практики кода. >>1355373 Ок, анон. Что это за чат?
>>1355490 >Поэтому и спрашиваю где посмотреть на хорошие практики кода. СИКП. Там есть отличные примеры проектирования библиотек. Например написание библиотеки для работы с рациональными числами во 2 главе.
>>1355494 Замечательный чат в телеграме. Или это другой анон писал? >>1355495 С моим уровнем усвоения и понимания скорее всего хуй пойдет sicp. Я тут по поводу Троелсена и метанита бугурчу, а тут sicp.
Прочитал тут про SOLID, чет вода какая и поебень. Чо там соблюдать должен каждый программист? Каждый класс должен делать свое дело? Ну, ебать, открыли омерику, во всех книгах про это пиздят.
>>1355305 Ты думаешь, я не пытался? Я два дня убил на этот ебучий омнишарп, даже делал свои билды моно вдруг ментейнеры напортачили? - нихуя. В итоге психанул и поставил докер.
>>1355512 Архитектура появляется не в момент написания кода, а во время рефакторинга. Написал код? Перечитай, подумай что можно разделить, может ты из-за сиюминутной надобности навеслал сто строчек кода которые вообще с этим классом слабо связаны?
>>1355504 >С моим уровнем усвоения и понимания скорее всего хуй пойдет sicp. Я тут по поводу Троелсена и метанита бугурчу, а тут sicp. Он не пересекается с Троелсеном. Попробуй, если не получится отложишь до лучших времен. Почти никому он с первого раза не дается. Нужно перечитать несколько раз. Но оно того стоит.
Антоны, нужно написать клиент-серверный чат, что работает на сокетах, есть такой код, он из консольного приложения и находится в main https://pastebin.com/qA0j3WUm Как мне сделать так, чтобы в Windows Forms я мог отправлять ответ из текстбокса по кнопке? Будет ли оно вообще работать вне бесконечного цикла?
>>1355672 >Допустим тебе надо написать 2 класса: прямоугольник и квадрат. >Когда можно использовать наследование, а когда нельзя? Квадрат от прямоугольника наследуешь, раз квадрат это частный вариант прямоугольника, не?
Из бд получаю обьект и делаю над ним иземения. Но хотелось бы знать, сделал я изменения над обьектом или нет? В абсраткный класс Enity надо добавить bool isChanged, и чтобы оно менялось при изменении определенных полей в обьекте-наследнике от Enity. Как это сделать? Мб как-то с помощью атрибутов?
>>1355377 Так я против делфи ничего против и не имею. Сам на нем писал, да и вообще, большая доля дотнетчиков. >>1355371 >Тупое поглощение информации ничего не дает. Видимо это и отличает нормального человека с ЛЮБЫМ образованием от двачера и вкатывальщика. Поясняю: обучать человека который хоть краем уха слышал, что-то читал - гораздо приятнее. >>1355466 >Какое отношение микросервисы имеют к архитектуре вообще? По такому вопросу, в принципе становится понятно что ты либо зелень ебаная, либо жирно толстишь. Потому что про монолитную архитектуру и ее противоположность - микросервисную архитектуру, слышал наверное каждый, ДАЖЕ кто НЕ РАБОТАЛ >>1355466 > Что на нижних уровнях Открываю один маленький секрет: их ЧАСТО просто НЕТ, а сразу голые запросы к хранилищу В общем случае - event bus.
Я в реальной жизни таких дебилов как ты не встречал, потому могу сделать вывод что ты либо зелень ебаная, либо просто долбаеб.
>>1355802 >Почитай про принцип постановки Лисков и попробуй ещё раз ответить на вопрос. Почитал. Типо, от абстрактного класса Фигура, например надо наследовать. И что? Наследую я их от одного астрактного класса, методы то все равно одинаковые будут у обоих, например, посчитать площадь или задать свойства ширина и высота
>>1355759 И тут же ты идёшь нахуй, потому что работа с какими-либо другими объектами кроме как с прямоугольником и квадратом не была предусмотрена. Но ты побежал оверинженерить сразу абстрактный четырехугольник наследуемый от класса геометрическая фигура наследуемого от класса фигура, потому что иначе все подумают что я джун.
>>1355790 >про монолитную архитектуру и ее противоположность - микросервисную архитектуру, слышал наверное каждый Разница между этим примерно как дом из блоков (или кирпичей) строить или монолитный заливать (залитые стены из бетона). Раньше многоэтажные здания строили из кирпичей, сейчас строят сборно-монолитные, но суть не изменилась, все равно нужно провести исследования грунта, правильно спроектировать фундамент, стены, кровлю, и все остальное. Нет разницы, монолитное здание или блочное (кирпичное), все равно нужно проектировать все.
Микросервисы это маркетинговый хайп. Еще в 80-е годы существовали принципы разрабатывать модульные программы, наподобие того что ты подразумеваешь под микросервисами. Код строился из маленьких кирпичиков, которые составляли более крупные модули, и они были независимы друг от друга, каждый решал свою задачу. С хуя ты сейчас это выдаешь за какой то блять прорыв, за что то особенное? Если даже у тебя микросервисы, все равно нужно проектирование, как и в примере со зданиями.
Сами микросервисы должны состоять из абстракций, которые тоже могут состоять из абстракций, которые в свою очередь тоже могут состоять из разных абстракций... Таких слоев может быть сколько угодно. Между ними еще нужен клей, чтобы все соединялось и взаимодействовало. Так вот ты говоришь о мифическом микросервисе, не упоминая как он будет выглядеть изнутри. По сути пускаешь пыль на воздух. Как их делать внутри ты конечно не знаешь. Кто знает, тот не кидается пустыми терминами.
>>1355790 >Открываю один маленький секрет: их ЧАСТО просто НЕТ, а сразу голые запросы к хранилищу >В общем случае - event bus. Хуета какая то. Не всегда и не везде логика состоит в одном только походе в базу.
>>1355893 >Еще в 80-е годы существовали принципы разрабатывать модульные программы >>1355893 >Так вот ты говоришь о мифическом микросервисе, не упоминая как он будет выглядеть изнутри >>1355893 > сути пускаешь пыль на воздух
Я после прочтения в очередной раз подумал, бывают ли такие долбаебы в реальной жизни, а потом увидел >>1355370 >Почитай СИКП, вот там уровень проектирования, там инженеры. И все сразу стало на свои места.
>>1355895 >Хуета какая то Именно это можно сказать про твои "гениальные" аналогии и попытки в течении трех постов выехать на высказываниях в духе" "ак их делать внутри ты конечно не знаешь. Кто знает, тот не кидается пустыми терминами." при этом без каких либо на это оснований.
>>1335434 (OP) Анон в каком месте я лажанул? ------------------------------------------------------------------------ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OLD { class Human { public int Age { get; set; } public string Sex { get; set; } public string Name { get; set; } public void SayHelloToBitch() { Console.WriteLine("Ну привет шаболда"); } } } ------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace OLD { class Boozer : Human { private Liver Liver = new Liver(); protected Boaroshnik Boaroshnic = new Boaroshnik(); public void NassatVPadike() { Console.WriteLine("Опять кто-то подъезд обоссал"); } } static void Main (string[] args) { Boozer Seva = new Boozer(); Seva.Name = "Дядя Сева"; Seva.Age = 50; Seva.Sex = "Мужичара"; Seva.SayHelloToBitch(); Seva.NassatVPadike(); Human man = Seva; Boozer boozer = man as Boozer; if(boozer != null) { boozer.NassatVPadike(); } Console.ReadKey(); } } ----------------------------------------------- namespace OLD { class UltraBoozer : Boozer { public void ChoDrink() { Console.Writeline(Boaroshnik); } } } ----------------------------------------------- namespace OLD { class Boaroshnik { } } ------------------------------------------------- namespace OLD { class Liver { } } -------------------------------------------------------------- Ошибка\tCS0116\tПространство имен не может напрямую включать в себя такие члены, как поля или методы.\t Ошибка\tCS0117\t"Console" не содержит определение для "Writeline". Ошибка\tCS0119\t'Boaroshnik" является тип, который недопустим в данном контексте.\t
>>1368173 Блять, очень страшно, вырубай 1. У тебя метод Main лежит вне класса 2. Язык регистрозависимый, правильно WriteLine 3. Без комментариев. Метод WriteLine в качестве параметров принимает объект, а ты что написал?
О: https://metanit.com/sharp/tutorial/
В: Где писать?
О: Visual studio для спермачей, vs code для линуксо бояр.
В: РЯЯЯ Почему моего вопроса нет в шапке?
О: Ну создай свою шапку и перекат блять
Блять, почему никто за 100 с чем-то постов овер бамплимит не сделал перекат? Я уже про сисярп и забыл, просто зашел на двач, а мой тред все еще живет.