Вы видите копию треда, сохраненную 2 апреля 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
О: https://metanit.com/sharp/tutorial/
В: Где писать?
О: Visual studio для спермачей, vs code для линуксо бояр.
В: РЯЯЯ Почему моего вопроса нет в шапке?
О: Ну создай свою шапку и перекат блять
Блять, почему никто за 100 с чем-то постов овер бамплимит не сделал перекат? Я уже про сисярп и забыл, просто зашел на двач, а мой тред все еще живет.
C# язык успешных людей. поэтому он не актуален в pr же
>Покинуть секту школьников и перейти на ООП язык
Как будто шарп не ооп язык.
Переходить толком некуда.
Можно наверное только на кресты, всё остальное - это выбор языка под конкретные нужды, ничего более универсального нет.
>>35690
>например Java
С одного мертвого языка на другой, да к тому же еще и ужасно многословный и уёбищный. Что на жабе можно делать? Саппортить такое же легаси говно? Spring - кусок говна, начиная от реализации, заканчивая отсутствием адекватной документации и тонной магии. Как там, в 2019 году, нормально еще raw sql запросы в аннотациях писать? Про котлин можно кукарекать сколько угодно: убогость JVM от этого никуда не денется.
Из единственных плюсов - биг дата.
>>35800
>почему такой хейт в сторону сисярп
>>35859
>Во всех языках есть хейтеры
За что его любить? Кроссплатформенности - нет.
Большая часть работы пока - классический mvc и легаси.
Нормальной IDE нету даже в 2019 году.
Хочешь работать на коре: добро пожаловать в фуллстак. За неделю пишется бэк, где то еще меньше, забивая хуй на архитектуру, все остальное время - пердолинг фронта.
Ко всему прочему добавляется майкрасофт, который почему-то все больше любит тайпскрипт в связке с нодой.
Может за хороших укатывающихся разработчиков любить?
Может за кривую обучения? Где для того чтобы дорости до сеньера (нормального сеньера, а не сеньера в ИП Вася Пупкин) нужно на пару лет больше, чем на других языках. А может за зарплаты? Тоже нет.
Если Core так и не взлетит (а он и не взлетит) - забросят asp.net (благо майкам это не в первой) и шарп окончательно сдохнет,
Бывают интерфейсы.
>Бывает ООП без множественного наследования?
Попробуй потоньше в следующий раз.
Из того что массовое: кресты и пайтон.
В крестах да, используется, но за плюс это никто никогда не считал. А в пайтоне почти не используется, потому что макакам на скриптодристне еще нужно объяснять что такое MRO, да и не за чем в принципе, они скорее в ногу себе выстрелят.
Он просто интерфейсами не научился пользоваться еще.
>С одного мертвого языка на другой, да к тому же еще и ужасно многословный и уёбищный. Что на жабе можно делать? Саппортить такое же легаси говно? Spring - кусок говна, начиная от реализации, заканчивая отсутствием адекватной документации и тонной магии. Как там, в 2019 году, нормально еще raw sql запросы в аннотациях писать? Про котлин можно кукарекать сколько угодно: убогость JVM от этого никуда не денется.
Всё так.
Написал веб-приложение на Spring, обплевался от магии и отсутствием ХОРОШО НАПИСАННЫХ доков.
Но считаю, что C# комфортнее, поэтому ищу позиции и по нему. В частности потому, что смогу поработать на софтверной позиции, а потом перекатиться мидлом/сеньоров в Юнити.
>Кроссплатформенности - нет.
Есть. Видно что ты типичный хейтер. Все твои доводы не обоснованы.
>Что для тебя мертвый язык то? А какие немертвые тогда?
Я уже писал выше.
У него нет ниши, кроме десктопов под винду, которые никому не нужны, ну и пары долбаебов из Европы, которым нужен бэк на .NET.
Веб занят, мобилки - тоже.
Не мертвые из старичков: C++, Java (Android), Python, R, JS, PHP
В целом - любой язык, куда пойдет молодняк.
В мобилках - Java, Kotlin, Swift, Obj C
В вебе - JS, PHP, Python, Ruby, Go (да-да, даже "мертвый" пхп и язык одного фреймворка имеют нишу)
>>36193
> а потом перекатиться мидлом/сеньоров в Юнити.
Это так не работает. А дорасти ты до сеньера - тебе юнити нахуй не в срется. У нас одни додумались с фразой "мы ведь знаем С#", пойти на Xamarin клепать приложение, ничего толкового из этого не вышло.
>>36208
>Есть. Видно что ты типичный хейтер. Все твои доводы не обоснованы.
Нету. Видно что ты типичная зелень, которая не пробовала Mono, в противном случае таких вскукареков у тебя не было бы.
Массового перехода на Core так и нет, да и проекты на классическом mvc от этого никуда не денутся, так что просто взять и уйти на линукс не получится.
Подтерется можешь только ты и вот почему:
1. Вакансий на классическом mvc в 7 раз больше
2. Почти везде это фуллстаки (да еще и nodejs много где нужен, лол) либо же сеньеры\тимлиды
3. Вакансий для молодняка нет.
Мне не нужно в 7 раз больше вакансий. Как и любому другому, кто хочет устроиться на работу. Нужно только одна вакансия.
Попробуй напиздеть, ТК смотрят уже после пройденного собеседования, а в случае удаленной работы через ИП вообще не смотрят.
Пытаюсь по мануалу поставить его в ASP.NET проект — идут какие-то nvm, node.js modules... Разве node.js это не конкурирующая несовместимая технология?
Вот мой репозиторий:
https://github.com/spitfireoverwatch?tab=repositories
Что в него добавить? с ASP.NET что-нибудь?
Так ли универсален и гибок этот язык?
Начать можно сразу с шарпа или с плюсов?
Когда я разберу основной синтаксис шарпа, с чем начать экспериментировать?
Почему плюсы популярнее?
>ООП без наследования не бывает
>>36110
>>Бывает ООП без множественного наследования?
Я же просил, потоньше будет
>>36289
>Мне не нужно в 7 раз больше вакансий. Как и любому другому, кто хочет устроиться на работу. Нужно только одна вакансия.
Какие же зеленые все-таки тупые. Ты не найдешь вакансии на коре, потому что зеленый там нахуй не нужен, вот и все.
>>36434
>идут какие-то nvm, node.js modules
Это просто пакетный менеджер для жсо параши.
>>36434
>Разве node.js это не конкурирующая несовместимая технология?
Именно в ноду обычно перекатываются "современные" фуллстако мидлы, когда не могут пробить потолок до сеньера.
>>36272
>то это не канает
Глобально - не канает, плюсик в карму если не совсем пинал хуй.
P.S.
Как и ожидалось: тред такой же мерт как и язык, в треде 1.5 зеленых ВАйтишника, у которых проснулась любовь после написания Laba1. Пора выкатываться.
P.S.S.
Всем зеленым удачного вкатывания
Господин, дядя, олдфаг.
Мы были не лучшими учениками, но кто другой проведёт нас к искусству шарпа?
Мастерство нельзя пропить, но можно закопать, так, чтобы оно никому не досталось.
Мы нуждаемся в тебе.
>Это просто пакетный менеджер для жсо параши.
NVM пакетный менеджер? Все понятно. До свидания.
Так что зависит все от места где конкретно ты находишься.
Для новичка они похожи на 90%
Если хочешь для геймдева, то пили игры. Змейка, кресты нули, арканоиды, саперы,морской бой. Суть не в языке а в алгоритмах.
При его выполнении Система (как винда так и 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-ошибке?
Лол. Полтора часа искал как исправить ошибку и как последнее оружие обратился на двач и сразу после этого нашёл сам в одном из примеров на csharp.hotexamples.com. В блоке catch можно у WebException вызвать Response через, собственно, property Response.
В общем, вот решение: e.Response.GetResponseStream()?.Close();
Знаете, что удивительно? На сайте Microsoft в примерах нет ничего, связанного с обработкой HTTP-ошибок. Поэтому я думал, что при ошибке всё закрывается само
Хочу переместить биндинг из конструктора в разметку, чтобы красиво было. Можно устроить?
>Вакансий на классическом mvc в 7 раз больше
Как и на джаве, это легаси. Никто в здравом уме новые проекты на нем не начинает.
>Почти везде это фуллстаки (да еще и nodejs много где нужен, лол) либо же сеньеры\тимлиды
Уже обсасывалось, что фуллстек это бэк + базовые знания фронта, т.к. он совсем близок и надо понимать, что происходит рядом.
>>36577
Да не понятно, чего он пиздит тут. Понятно, что сейчас динамическая параша в моде, но джава и сишарп это реально два стула, только на джаве куча легаси и з/п выше, а сишарп приятней и развивается интересней. С крестами, конечно, перетолстил, там мало того, что з/п самые низкие и уровень входа охуенский, так еще и язык в пизду катится
Мне чет не очевидно, ну понятно там, что поток не будет простаивать, но у меня чет приложение виснет каждый раз, когда я добавляю запись в БД и сохраняю.
Потому и асинхронно нужно, чтобы не висло. Изучай все подробно, чтобы понимать когда будет виснуть, там и нужно применять.
> С крестами, конечно, перетолстил, там мало того, что з/п самые низкие и уровень входа охуенский, так еще и язык в пизду катится
Да все норм с крестами и зарплатами, просто крестомакаки не нужны. Если хочешь писать на плюсах - раздрачивай свою математическую девственность и учись решать задачи про два стула и другие айсикью - тогда тебе бабла столько отсыпят, что джависты не сдохнут от зависти лишь по причине того, что не поверят в существование таких зарплат.
Только вот задачи решать ты будешь все равно на каком-то скриптовом языке.
Крестам только макачество и осталось. Оплачиваемое, впрочем.
А что такое кресты? Говнокод да байтоебство. Какой язык такие и его пользователи. А язык все знают какой, - чудовище Франкенштейна.
Найс схавал утку Java-дебилов. Говнокод на C++? Ты серьезно? Впрочем это зависит только от тебя. Напоминаю, что C++ поддерживает по-мимо ООП парадигмы еще несколько. Байтоебить полезно даже тебе. CLR/JIT/Ось/протоколы, тебе в этом говне энивей придется разбираться если ты собрался выше условного мидла прыгать.
Haskell, OCaml, F# - языки здорового человека. C++ это чудовище. C# намного более изящен. В MS работает много хаскеллистов. Тот же Эрик Мейер, который запилил LINQ.
Ты про C# и Java спрашивал? Конечно C# лучше как язык. И экосистема более цельная. В джаве стопятсот всяких штук вокруг, замучаешься с выбором.
Я бы сказал, что экосистема скорее ограниченная, потому что серьёзных проектов/фреймворков на C# без участия майков очень мало. В долине язык как был не особо востребован, так и остаётся, поэтому их появление в ближайшем будущем по-прежнему под вопросом, даже принимая во внимание усиленный форс .NET Core.
Не знаю ни одной компании, которая бы строила бизнеса на опенсорсном .NET продукте (ну типа Apache Ignite).
Еще один вариант рождения годного опенсорс проекта - это академическая среда, но там по-прежнему доминируют джава/плюсы/питон.
>Я бы сказал, что экосистема скорее ограниченная, потому что серьёзных проектов/фреймворков на C# без участия майков очень мало
Их дохуя, но они все в геймдеве/3D визуализации.
Гейдев - это такая ничтожная ниша по сравнению с остальными отраслями, что даже как то неловко за сисярп. Ну и да - сдуется юнька - сисярпу придет окончательная пизда как востребованному на рынке языку.
90% которых зарабатывают буквально дюжина ебадельных студий вроде близарда и электроник артс. И на вакансии очередь из байтолюбов. Охуенный рынок. Остальное - индюшатина за отзiв/за копейки уровня обычной зарплаты.
И эти 130млрд - полная хуита по сравнению с рынком энтерпрайз и веб разработки. Как по крутящимся деньгам, так и по объёму рынка труда.
> 90% которых зарабатывают буквально дюжина ебадельных студий вроде близарда и электроник артс. И на вакансии очередь из байтолюбов. Охуенный рынок. Остальное - индюшатина за отзiв/за копейки уровня обычной зарплаты.
И юнька с сисярпом относятся именно к категории "остальное".
Естественно перспективный. Но всё зависит от того, в какую область и лавку ты хочешь вкатиться.
>3. Из Юньки+Шарп с опытом можно перекатиться в более мейнистримный геймдев.
Где за деньги требуются исключительно именитые боевые прожженые байтопидоры вроде миши актона-оптимизаторного, причем в количестве максимум полутора рыл каждые 5 лет, а за еду по теме gameplay scripting (это если еще предположить что там действительно используют сисярп, а не какой-нибудь проверенный LUA) придется еще конкурировать с фрилансерами индусами.
Ожидаемо. Прямо ждал такого наброса. Фреймворки не нужны. Нужен один фреймворк. Тому пример Рельсы, Джанго и Феникс. Это 3 лучших мейнстрим фреймворка. Для мейнстрима ничего лучше не придумали. Благодаря тому, что в языке один фреймворк, все усилия сконцентрированы на нем. Нет разрозненности.
ASP.NET Core уделывает по всем статьям любой джавовый фреймворк. Я сам делал выбор между джавой и сишарп, и aps.net core стал решающим фактором. В джаве чтобы создавать веб-приложения нужно делать выбор какой фреймворк использовать. Все они ни о чем. У asp.net core цельная экосистема, все что нужно делается одними и теме же людьми. Нет такого, что одна библиотека плохо стыкуется с другой. Вся документация в одном месте.
Мне плевать на твою долину. Ты сидишь в тысячах километров оттуда, не известно что ты за программист, и вещаешь мне тут о важности оглядываться на долину? Ты поехавший что ли?! В долине популярны Рельсы, про которые я уже написал выше. ASP.NET Core это лучшее из Рельс, вкупе со скоростью, и с современными подходами построения веб-приложений.
ASP.NET Core уже догнал по производительности Netty. И на этом не остановился. Так что мимо. Хочешь пиши на джавовом легаси. Я выбираю современный, мощный, и удобный инструмент.
Ах да, для .NET Core есть Websharper. Крутейший фреймворк для построения SPA. В джаве был аналог Lift, но он монструозный, неудобный, и уже не поддерживается если не ошибаюсь. В любом случае Web# круче.
А если идти в ГД не программистом, а именно геймдизайнером? Скажем, если помимо программирования, есть очень мощный и полезный бэкграунд (но это отдельная история).
>И эти 130млрд - полная хуита по сравнению с рынком энтерпрайз и веб разработки. Как по крутящимся деньгам, так и по объёму рынка труда.
Цифры в студию. Хватить балоболить. Сдается мне что ты школьник. И вообще ничего не писал никогда. Просто воздух тут будоражишь.
Речь шла о сферах применения языка. Если ты пытался мне доказать, что Шарп хорош как язык пары фреймворков, то ок - тебе удалось. Но я не увидел опровержения моего изначального тезиса.
Вот тебе пример: к нам пришёл клиент и захотел отказоустойчивый распределенный кластер, способный выдержать миллионы запросов на запись в минуту. А потом он захотел обработку и агрегацию этих данных в Спарке, чтобы потом грузануть и вертить их в Постгресе. Всё запилено на Джаве. Если бы ребята захотели сделать личный кабинет на ASP, то ему бы тоже нашлось место в этом стеке.
Именно потому, что в реальном мире всё не делается на одном фреймворке/продукте, и появились такие компании как GridGrain, DataStax, Elastic, Hortonworks и т.д.
C# как язык лучше Java. Это все знают.
>Вот тебе пример: к нам пришёл клиент и захотел отказоустойчивый распределенный кластер, способный выдержать миллионы запросов на запись в минуту.
Мечты школоты. И вообще, можно подумать на .NET Core такое нельзя сделать, ха. Кого ты тут пугаешь. На Web# на одном сервере 5 миллионов запросов держит. Это было еще до .NET Core. Полагаю сейчас будет летать еще быстрее. Так что отдыхай.
Два чаю адеквату. А то я вижу этот шизик уже засел тут, который день ошивается.
Не утруждайся
Есть небольшая приложуха которую я захотел сделать красивой (потому что уже могу). Подобавлял иконок вместо надписей. И все заебись, стало намного лучше. Только все иконки это отдельные файлы. И тут меня озадачило, а как это делать оптимально? Погуглил, нашел пару спрсобов, но ничего такого до чего сам кмтому моменту не додумался. Это и скомпилить в файл и хранить в архиве или как одно изображение из которого вырезать нужные квадраты. Но нигде не сказано какой из способов максимально заебатый.
Может ты мне подскажешь?
Может просто подключить их как отдельные ресурсы?
move hippo "sosu ыпырдл"
Игнорируя пробел внутри строки?
Уже сделал, не помогайте.
Всем кукарекающим дотнетчикам по поводу СКОРОСТИ
https://www.techempower.com/benchmarks/
Redhat был куплен ibm - можно ждать еще большего отсоса.
Вся бигдата как была на жабе - так и осталась и никуда переезжать не собирается
P.S.
Уёбищности и костыльность жабы как языка и JVM, с пятью GC это не отменяет, но если выбор между одной парашей и другой - лучше в жабу.
>Всем кукарекающим дотнетчикам по поводу СКОРОСТИ
Кек. В этом же тесте asp.net core в лидерах. В других тестах тоже. В plaintext asp обошла netty почти в 2 раза! Это победа! В предыдущем тесте asp только догнала netty. Так что ждем следующий, когда порвет всех остальных.
>>38707
>Вся бигдата как была на жабе - так и осталась
Кек. Бигдата маркетинговый термин.
>>38707
>Уёбищности и костыльность жабы как языка и JVM, с пятью GC это не отменяет
Ну вот. Сам же все понимаешь. .NET Core крайне удобная штука. Современный рантайм. Не легаси.
>Кек. В этом же тесте asp.net core в лидерах. В других тестах тоже. В plaintext asp обошла netty почти в 2 раза! Это победа! В предыдущем тесте asp только догнала netty. Так что ждем следующий, когда порвет всех остальных.
>
Жаба все равно обходит + там фулл ORM, а не RAW запросы.
>>38763
>Кек. Бигдата маркетинговый термин.
Не маркетинговый. Но наеба хватает, особенно когда хомячкам раскрывают глаза на то, что бигдата все-таки на жабе и скале, а не их любимом пайтоне
>>38763
>. Сам же все понимаешь. .NET Core крайне удобная штука
Я так то сам дотнетчик.
Учитывая плохую репутацию майек - я скорее сам сдохну быстрее, чем дотнет откусит половину тырпрайз рынка у жабы.
На джаве. Забыл добавить.
>Энтрапрайс не нужон
Лол блять, ясно. Почти все что есть на дотнете - это ебучий тыпрайз. Нет, ну если тебе нравится работать в ДОДО ПИЦЦА, либо на каком-нибудь другом локальном говне - пожалуйста.
>>38807
>Хваленый энтрапрайс [YouTube] Web application vs Enterprise application[РАСКРЫТЬ]
Можешь найти такого же индуса на дотнете, свифте, ... (сам допишешь)
>Почти все что есть на дотнете - это ебучий тыпрайз.
Ты имеешь ввиду галеры? Объясни что ты понимаешь под enterprise?
>Можешь найти такого же индуса на дотнете, свифте, ... (сам допишешь)
Тут важен не язык, а то что это показывает что такое энтрапрайс. Это реальный уровень энтерпрайза. В здравый продуктовых компаниях такого нет. И там нет джавы. А джава === энтерпрайз, ты сам говорил. Получается джава и энтерпрайз низкосортный говнокод.
>Объясни что ты понимаешь под enterprise
Любой аутсорс
>>38817
>Ты имеешь ввиду галеры
И галеры в том числе.
>>38820
>В здравый продуктовых компаниях такого нет. И там нет джавы.
ЛОЛ, ясно-понятно.
Ты видимо совсем не понимаешь как работает аутсорс.
На жабу спрос был, есть и будет.
>>38820
>Это реальный уровень энтерпрайза
Тыскозал?
>Любой аутсорс
Галеры значит.
>>38830
>Ты видимо совсем не понимаешь как работает аутсорс.
Ты видимо не понимаешь разницу между аутсорсом и продуктовыми компаниями.
>>38830
>На жабу спрос был, есть и будет.
В аутсорсе, галерах. Там где низкосортные кодеры пишут говнокод.
>>38830
>Тыскозал?
Читай выше. Энтрапрайс === джава === галеры === говнокод.
>Любой аутсорс
Давай теперь разберемся чем так крут энтерпрайз. Ты его тут возносил как вершину построения ПО. Оказалось что это все дикий говнокод, который пишут низкосортные кодеры, лишь бы бабло пилилось. Вот значит какой он, этот энтерпрайз. Ну и хорошо, что он как ты говоришь весь на джаве.
В общем разобрались. .NET Core не энтерпрайз (это замечательно).
>Галеры значит.
>
>>38833
>между аутсорсом и продуктовыми компаниями
>>38833
>Там где низкосортные кодеры пишут говнокод
>>38834
>Оказалось
>>38834
>что он как ты говоришь весь на джаве.
>>38834
>В общем разобрались. .NET Core не энтерпрайз (это замечательно).
Очень жирно. Ты либо зеленый, либо шизик.
1. Почти все компании в СНГ - аутсорс
2. Качество кода на так называемых тобой "галерах" (да, есть галеры, но галеры и компании пилящие аутсорс ни одно и тоже)
выше.
3.
>>38833
>Энтрапрайс === джава === галеры === говнокод
Это звучит очень смешно, потому что дотнет это всегда был
и будет интерпразом.
>>38834
>который пишут низкосортные кодеры
Это как минимум забавно: дотнетомакака, ставит себя выше других макак, как будто она 24\7 занимается R&D, решая сложные задачи.
>>38834
>В общем разобрались. .NET Core не энтерпрайз
Классно тебе, шизик. Хуйню сказал, да еще и за правду ее принимаешь.
>Галеры значит.
>
>>38833
>между аутсорсом и продуктовыми компаниями
>>38833
>Там где низкосортные кодеры пишут говнокод
>>38834
>Оказалось
>>38834
>что он как ты говоришь весь на джаве.
>>38834
>В общем разобрались. .NET Core не энтерпрайз (это замечательно).
Очень жирно. Ты либо зеленый, либо шизик.
1. Почти все компании в СНГ - аутсорс
2. Качество кода на так называемых тобой "галерах" (да, есть галеры, но галеры и компании пилящие аутсорс ни одно и тоже)
выше.
3.
>>38833
>Энтрапрайс === джава === галеры === говнокод
Это звучит очень смешно, потому что дотнет это всегда был
и будет интерпразом.
>>38834
>который пишут низкосортные кодеры
Это как минимум забавно: дотнетомакака, ставит себя выше других макак, как будто она 24\7 занимается R&D, решая сложные задачи.
>>38834
>В общем разобрались. .NET Core не энтерпрайз
Классно тебе, шизик. Хуйню сказал, да еще и за правду ее принимаешь.
тебя жирно тралят, а ты кормишь. говнокода шо на шарпе, шо на жабе хватает. естественно, за счем большей кодбазы, на жабе говнокода больше. шарп, как язык, чутка удобнее жабы, но, при прочих равных, на жабе платят чутка больше.
>выше
Выше чего? Выше чем в продуктовых? Нет, это ты зеленый.
>>38841
>Почти все компании в СНГ - аутсорс
Знаток нашелся. Как-будто ты все компании знаешь. Всех кого я знаю работают в продуктовых компаниях. Аутсорс зашквар. В моем кругу общения так.
>>38841
>галеры и компании пилящие аутсорс ни одно и тоже
Одно и тоже. Ты просто не шаришь. Аутсорс === Галеры, это синонимы вообще то. Еще есть термин бодишопы. Тоже самое.
>>38841
>Это звучит очень смешно, потому что дотнет это всегда был
>и будет интерпразом.
Ты сам сказал что весь аутсорс на джаве, а на дотнете нету. Тем более нету на неткоре. От слов своих отрекаешься?
>>38841
>Это как минимум забавно: дотнетомакака, ставит себя выше других макак, как будто она 24\7 занимается R&D, решая сложные задачи.
С чего ты вообще взял, что я дотнетчик? Я полиглот. Вообще тяготею к ФП языкам. R&D подразумевает исследования, новые фичи. В курсе про Microsoft Researc? Знаешь сколько там работает и работало ученых (суперзвезд)? Все основные разработчики компилятора Haskell там работают. И не только они. Там клондайк ресерчеров.
Так вот, .NET Core как и C# и F# продукт ресерча. А джава продукт недоучек. Ничего особенного в ней нет. Легаси обычное.
>>38841
>Хуйню сказал, да еще и за правду ее принимаешь.
Сам говорил, что энтерпрайз весь на джаве, а .NET Core не используют вообще. Так что молчи. Иначе ты балабол простой.
>Так вот, .NET Core как и C# и F# продукт ресерча.
Будто от этого ты сразу начинаешь писать не говнокод.
>Знаешь сколько там работает и работало ученых (суперзвезд)? Все основные разработчики компилятора Haskell там работают. И не только они. Там клондайк ресерчеров.
А теперь поименно. Алсо, люто проиграл с отчаянных попыток макакмакакича примазаться к СЛАВЕ СУПЕРЗВЁЗД РАЗРАБОТЧИКОВ ХАЧКЕЛЯ на основе факта, что макак юзает инструмент, который суперзёзды делают специально для макакичей.
мимопомидор
Ты на скольких языках писал? У тебя прослеживается неосознанная некомпетентность. Если ты гребешь на галере, пишешь говнокод, то это не значит что все такие. На чем ты писал кроме джавы?
>>38979
>А теперь поименно.
Надо будет сам нагуглишь.
>>38979
>СУПЕРЗВЁЗД РАЗРАБОТЧИКОВ ХАЧКЕЛЯ
Это данность, придется тебе с этим смириться. .NET ресерчат ученые, а джаву энтрыпрайс кодеры.
>>38979
>мимопомидор
Скорее школьник.
Опять ты за своё. Очнись мань, всем похуй на то, кто на чем пишет, кроме тебя и твоего собеседника жабамакакича. Спорить на двачах - дело неблагодарное. Поэтому, тебе придётся смириться с моей точкой зрения или продолжать кукарекать в пустоту. Ну или подождать жабамакакича, который составит тебе компанию.
IEnumerable<Item> ReadAllItems();
void AppendItem(Item item);
void WriteAll(IEnumerable<item> items);
?
ItemReaderWriter как-то не очень.
>В мобилках
Unity3D для игр & Xamarin для прриложух. Сейчас очень много моб игр сделано именно на Юнити, а там пишут скрипты на C#.
Ну вот меня есть класс MyClass. Мне нужно объявить матрицу моего класса: MyClass[,] myClass. Выходить, что я это смогу сделать, только если заебусь с перегрузками?
А нет, всё нормально. Просто я тупанул.
Не понял, чем тебе массивы не угодили?
Интерфейс виндоус программ делают на WPF. Хотя есть еще виндоус формс, но он уже устарел. Для работы с сетью смотри System.Net.Sockets.
для 10 винды вместо WPF, уже UWP юзают.
Для каждого класса их писать не нужно. Если у тебя есть необходимость использовать определённое поведение в другом классе, но ты задницей чувствуешь, что реализация используемого класса со временем может измениться, то создаёшь интерфейс для того, чтобы клиентский код от реализации не зависел.
Нужна помощь с меня как обычно
Есть программка, которая использует определённую стороннюю dll. Пришло время заменить dll и была скачана новая версия из инета, но у первой в свойствах была пустота, у второй - сплошные копирайты (лицензия позволяет абсолютно свободно использовать триальную версию), которые, если кто-то придирчивый увидит, могут дорого обойтись (интернет на работе запрещён, "безопасность", видите ли, а штатного механизма получения информации из Сети у нас нет, вот и возникнет вопрос "а где вы взяли dll?", за ответ на который выпрут на мороз). В общем, вижу 2 варианта:
1. Зашить dll в исполняемый файл.
2. Обернуть dll своей dll (сборка в сборке и используется экзешником).
Первый вариант простой, но распухшие исполняемые файлы неудобны. Второй вариант... я хз как реализовать и загуглить пока не вышло, может кто-то сталкивался с подобной задачей или сможет подсказать как решить?
inb4:
Сделал событие AppDomain.CurrentDomain.AssemblyResolve, но хз как правильно найти поток с данными вложенной сборки.
>using (Stream io = Assembly.GetExecutingAssembly().GetManifestResourceStream(name))
догадываюсь, что нужно в строчке выше сослаться на сборку-обёртку (GetExecutingAssembly возвращает имя сборки-экзешника, а не сборки-обёртки, поэтому поток не находится), но от догадок легче не становится.
Длл на шарпе? Декомпиль в dnspy и переписывай функционал.
В C# есть Cake.
Для красноглазиков вообще сделали одну команду dotnet build
ib4 LiNQ, sync/async
Если дадут добро, полностью перекатываюсь в Шарп, сажусь читать Рихтера.
А давайте, перепилим это: https://username1565.github.io/js-jpeg-steg/ - на кресты, и запхнём в нанобороду?
Желательно, одним cs-файлом, который мог бы быть скомпилирован в exe для win32.
Задолбало уже два гига PNG-контейнеров хранить для нбороды, когда есть куча фоток с камеры.
Проблема лишь в том, что я вовсе не знаю - синтаксиса четырёх крестов.
И да, ты вообще его видел, этот исходник?
Вот он, здесь: 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);
Как это всё в крестах писать хз...
Но я видел один лишь проект на крестах: https://github.com/otuncelli/f5-steganography
и там - целая либа, некомпилируемая на win32, кстати.
Вот если бы можно было как-то JS внутри кода С# сунуть, запустить эти функции, и вернуть результат обратно в С#...
https://twitter.com/ben_a_adams/status/1092454464269754369
Нахрена мне целая либа f5-стеги, даже если её можно скомпилить, какими-то неведомыми ёба компиляторами?
У меня есть csc.exe от .NET Framework v4.0 под Windows XP и MSBuild.exe, в той же папке.
Они успешно компилят нбороду из исходника.
Посему, мне нужен алгоритм f5-jpeg-steg - причём одним cs-файлом "Program.cs".
Ну, чтобы функции оттуда просто включить в исходник нбороды и откомпилить её.
Исходник на JS есть, как его в сиярп загнать - хз, но буду ручками, потихоньку...
И скорее всего, года полтора-два...
Тебе скинули сурс. В чем проблема? Ты не можешь алгоритм оттуда сам вытащить или что?
Ты в C# треде если что. Уверен в своих высказываниях?
Если бы я знал этот язык программирования, наверное мог бы.
Неймспейсы какие-то...
Алго разбросано по куче файлов...
Какие-то using в начале каждого, и фреймворк 12.0 просит...
Запилили бы, одни полноценным Program.cs, чтобы без зависимостей, и в portable exe компилировался...
Нет, блядь, не это. Я имел ввиду скомпилировать ее.
Тебе 15?
А возможно ли массив из кода С# передать самому JavaScript'у и выполнить из под С# - JS-функцию, подключив included.js?
Можно было бы, наверное, и из-под JS, XHR-запросом на localhost - зашифрованный массив с нанопостами вытащить,
а потом обработать JavaScript'ом, и скачать blob.
Ну, или, на худой конец, тупо записать var array = [byte1, byte2, byte3];
причём текстом, в локальный текстовый файл,
а его уже XHR-запросом прогрузить локально, из папки, при запуске JavaScript-функции и обработать скриптом...
Но вот как это всё закодить - вообще хз...
Лучше не надо
А теперь наверни ковариантность/контрвариантность/инвариантность обобщенный интерфейсов, обкончаешься радугой.
Net core
Устал уже блядь. Ебаные аутисты индусы, сука бомбит.
Не что бы взять и допилить, исправлять, улучшать.
Нет блядь, вот вам новая хуета жрите. А теперь это уже не актуально, вот другая, но через год все будет по другому можете выкидывать все в помойку.
А теперь мы подумали и решили а ну его все на хуй. Вот вам нет кор.
Доколе блядь этот ебаный цирк будет продолжаться?
Бери шире, весь веб нынче такой. А вообще это все - проблемы вкатывальщиков-аутистов которым всенепременно надо изучить прежде чем работать. Хочешь штабильности - перекатывайся поддерживать легаси-говнецо на жабе. Либо возьми и вкатись уже без задней мысли, тогда вопрос «какого хуя все постоянно меняется» перестанет мучать почти моментально и будешь волком выть от «какого хуя мы это говно пятилетней давности до сих пор поддерживаем когда можно все сделать проще, быстрее и лучше на новых свистоперделках».
>А давайте, перепилим f5
Тут >>1342615
я нашёл ещё один алго для JPEG - jsteg.
Есть реализации на Java и С: https://github.com/search?q=jsteg
Из C было бы проще перепелить на C#.
И ещё, вот здесь: https://ru.bmstu.wiki/JSteg_(Стеганографический_алгоритм)#.D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5
Помимо F5 - я вижу есть F3, F4.
Какой лучше, как считаете?
Тупой долбоеб, асп, впф и винформы живут уже хуй знает сколько лет, если ты в какой-нибудь сильверлайт или вебформы пытался, то сходи просто на хуй, ебало тугорогое, ты изначально в мертвую технологию вкатился, которая по объективным причинам на рынке не прижилась.
Как-то раз попадалась статья Додо пиццы на хабре, там там основатель ныл, что студенты написали монолитный кусок говна на ASP, а идти переписывать его на Коре никто не хочет, лол. Сейчас много всякого легаси, которое можно перепилить на Коре, но я не думаю, что опытный разраб на это согласится с горящими глазами. Но зато шанс для вкатывальщиков.
> зато шанс для вкатывальщиков
Как я уже написал - вкатывальщики никогда толком не вкатятся, так и будут «изучать» и сраться в комментах на хабре под очередной новостью о релизе чего-то нового. Остальные все уже вкатились.
Гугли mono.
Да я уже полез, запустил несколько демок на айоси. Ну и как я уже сказал - мне эта хуйня нужна исключительно ради проверки концепции, если взлетит - выбью финансирование и соберу команду которая нативно все перепишет.
Тащемта, когда какую нибудь хуйню пишу не по паттерну, стараюсь все классы, которые выполняют работу, обносить интефрейсами и юзать депенденси инжекшн. Представляю классы в качестве работников, которые должны выполнить какую то определенную работу.
Если интерфейсы осваивать начал, сходу начинай использовать IoC и DI.
Сам не использовал, но коллеги за соседней партой во всю плюются и ругают. Не было еще дня на работе, что бы я не слышал как кто нибудь поносит ксамарин.
Я правильно понимаю, что я сначала создаю горсть объектов, потом создаю некоторые объекты-«буферы», которые подменяют значения в уже имеющихся объектах, а потом удаляются? Почему деструктор для объекта 3 тогда вызывается дважды, и как в нём вообще запустится хеллоуворлд, если объект сам себя удалил?
>почему так?
Потомушо это тред по четырём крестам, а не по двум. Твой вопрос надо на собеседовании задавать, чтоб нубьё отсеивать.
Первые 5 объектов создаются new c[5] с дефолтным конструктором (нубас пропустил звёздочку). Потом в цикле ты создаешь без new, вызываю конструктор c(a, b). Подобный вызов будет использовать дополнительный copy-конструктор (зависит от компилятора):
1) c(a, b);
2) c(const c&);
3) ~c() для объекта в 1
Объект из 3 у тебя идет в массив указателей, заменяя там указатель на первые пять объектов. В конце ты убиваешь объекты в массиве, забыв про созданные new (с k = 0) и получив утечку памяти.
> Не было еще дня на работе, что бы я не слышал как кто нибудь поносит ксамарин.
Не было ещё дня чтобы кто-нибудь не хуесосил какой-нибудь фреймворк или язык в целом.
да я вообще WebForms взял бы, но думаю засмеют
Почитаю. Благодарю, анончик.
Как там ваш дотнет? Не помер еще?
Помирает.
Зачем хардкодить-то? Генерь уникальную, используй для этого номер жесткого диска юзверя, например.
В первой у меня есть datagridview, вторая форма нужна для того, чтобы добавить в него данные, третья форма содержит datagridview, из которой нужно выбрать значение и перенести на вторую форму.
Вторую форму я открываю через ShowDialog, но когда я пытаюсь работать с третьей через ShowDialog, то при ее закрытии закрывается и вторая, а когда через Show, то вторая закрывается при открытии третьей
диалогрезульт в ноне устанавливай
многообещающе, спасибо
>функциональщик
Новый школомем?
>работы нет, потому и времени много
Т.е. наличие работы подразумевает отсутствие времени чтение? Это нездоровая ситуация.
Не, не так. Нахуй мне кому то объяснять элементарные вещи?
Хуйня эти ваши книги.
>btw, сеньер в ИП Вася Пупкин, на деле вовсе не сеньер.
У нас обычная аутсорс контора. Начальство - два сеньора с ~15 лет опытом, говорят что как для джуна у меня заебись код.
Хочешь, сказать, что если бы он не ответил на вопросы, но с практикой у него было бы норм, вы бы взяли?
Что подразумевается под практикой? Какое-то тестовое задание? Мне просто это тоже предстоит на днях.
Что угодно, что включает в себя написание кода. Я когда пришел, меня сходу посадили на проект, который до меня писало два недомидла. Надо было разобрать по частям ими написанное, пока они не свалили, что бы я потом смог написать похожий продукт, но под другие задачи.
Пруф.
Иначе, если использовать "|DataDirectory|", вижуалка копирует базу в папку с .exe файлом и не сохраняет изменения в изначальной базе. Если лечение через FileInfo говно то почему и как можно сделать по другому?
Ну и я ньюфаг в формах и их взаимодействии с базой, так что сорри за тупые вопросы.
Есть ли смысл вывести все взаимодействие с базой в отдельный класс, я спрашивал у препода, он ничего внятного не сказал, только то что SqlConnection и SqlCommand и так достаточно, но мне бы хотелось чтобы сама форма юзала методы какого-то класса для вставки, удаления и редактирования данных в БД, ибо в самой форме оно выглядит хуебищно.
Для доступа к БД используй ConnectionString, который ты пропишешь в конфиг файле приложения. Как достать и где именно писать, гугли.
И если идти дальше, я бы разделил это все на 3-х слойку, так у каждог слоя будет своя задача, и при желании всегда можно заменить один не трогая другие.
А по поводу разделения обязанностей SOLID, который не раз спасет тебе жизнь в дальнейшем
>но препод сказал заменить там часть пути на "|DataDirectory|"
Скажи ему что он еблан и не имеет морального права учить других кодить.
>vs code
Как убрать ненужные using во всех файлах?
Как починить ложный already defined, кроме как перезапуска омнишарпа или ожидания, пока омнишарп полностью загрузится?
> >vs code
> Как убрать ненужные using во всех файлах?
Уже не помню, но это встроеный функционал омнишарпа или второго аддона к сисярпу, если ввести c# в строку поиска плагинов.
Быстровопрос - книга в оп-пике действительно норм для турбоньюфагов или это локальная шутка юмора?
Учил шарп,кресты,си - забил на половине,тк не вижу что можно было бы написать в ближайший хотя бы месяц
Хелловорлды разной изворотливости писать - такое себе
Вообщем это я к чему
Где брать интересные идеи и задачи для новичка
алсо хочу попробовать голанг,говорят что там весь язык учиться за пару недель и можно уже писать что-то интересное
Стоит ли?
Какую-нибудь хуйню для работы с базой напиши, чтобы было подключение к ней, редактирование, удаление из нескольких таблиц.
С миграцией баз данных разберись, построением графиков, выводом отчетов, созданием документа в Word, в Excel, с парсингом сайта, с созданием какого-нибудь чатбота.
Чего точно не стоит делать так это прыгать с языка на язык в начале обучения.
>Где брать интересные идеи и задачи для новичка
Попробуй написать для начала то что уже есть.
Разве это плохая практика?
Или ты уверен что новичек должен писать сразу миллиардный стартап с наскока?
Ты ебанутый, на сисярпе ты можешь все сделать, просто нужно идеи иметь. Перескачешь на голанг и так же будешь думать, что писать, только у него область применения гораздо уже, чем у шарпа и будет еще сложнее придумать
Короче даю идею, которая поможет нормально прокачать твой уровень, делаешь веб приложуху, с простым (или не очень) фронтом, типа в форме выбираешь дбпровайдера, вводишь кредентиалс и тебе генерится отчет со списком схем, названиями таблиц и метаданными по таблицам в виде таблиц. Можно сделать таблицы кликабельные, после клика выдает уже саму таблицу с данными, если ты еще более охуенный, делай возможность редактирования полей, добавление новых записей. Экспорт отчета в какой-нибудь мд, пдф, ворд. Сделаешь эту хуйню и можешь идти работу искать, знаний достаточно будет
Сап!
Вопросы по asp net и jwt.
1.
Я правильно всё понимаю:
Есть authentication middleware, сказано что он не short-circuit (не замыкающий), значит запрос идет дальше до mvc (если никто не развернет) и внутри уже фильтрами происходит именно авторизация.
2. Может ли кривая реализация middleware, сразу завернуть запрос?
В гайдах какого-то васяна, сказано что если сдохнет сервер авторизации токенов, то запрос завернется со статус кодом 404. Где и когда это произойдет? Сразу же, либо еще пройдет пару middleware ?
test
Ну конечно же нет, я ведь не пишу так что нельзя разобраться.
Веселые человечки, подскажите, пожалуйста, годный учебник на русском про си шарп. Именно учебник. Я уже поизучал Нет.Академи. Спасибо.
Свыкнись, что любое русское издание будет:
1) с хуевым переводом
2) с опечатками-ошибками
3) устаревшее как говно мамонта
Раньше использовал на другой работе, где был винформс и ебейшие классы по 2к строк, сейчас не использую и в проекте никто не парится, стараемся просто следовать SOLID и методы писать не длиннее 70 строк, поэтому классы обычно достаточно компактные.
> Как понять что я уже достаточно умненький и могу пойти работать джуном?
Отправить резюме на вакансию и пройти собеседование. Если наймут - значит достаточно умненький. Если не наймут - значит ещё учиться надо. Если перезвонят - то ты червь пидор который не в состоянии пройти собеседование с эйчаркой и тебе надо помимо ЯП научиться разговаривать с людьми.
Пасибочки. Так и сделаю.
бамп вопросу, может кто поделится сканом
отмена вопросу
Но как применять понятия не имею, попробовал с Entity Framework в виндовс формах, а там все начинает неимоверно лагать.
А не, сейчас у меня более-менее начало получаться.
Можешь в гугл переводчике переводить, машинный перевод очень неплох уже, все понятно.
тупой долбоеб, даже если бы тебе понадобилось зачем-то прописывать везде свойства, то ты мог тупо один интерфейс написать и наследовать везде, где тебе твоя пачка свойств нужна
>Пиздец ты всё усложняешь.
Ты что, дурак? А я что юзаю по твоему? Мамашу твою что ли?
>>48095
>то ты мог тупо один интерфейс написать и наследовать везде, где тебе твоя пачка свойств нужна
Чего, блядь? Мало того, что свойства хуячить везде, так еще и интерфейс ебануть, ты совсем долбоебушка что ли?
>Мало того, что свойства хуячить везде, так еще и интерфейс ебануть, ты совсем долбоебушка что ли?
ты троль или долбоеб тупорылый, который не смог в основы ооп? если ты такой ебанат, что не смог нормально все сделать и тебе обязательно в дохуищи мест прописывать один и тот же набор свойств, ты можешь один раз блядь интерфейс с свойствами прописать и наследовать его везде где хочешь, иди на хуй, короче
Знаешь что я сделал, немного подумав? Нет, не стал в модель включать INPC, не стал интерфейсы писать и хуйней заниматься. Просто подумал, а ведь ViewModel общается с View, так зачем мне эти свойства в Model? Правильно, нахуй не нужны, убрал оттуда и просто в модели прописал методы, которые оперируют данными, далее в ViewModel просто вызываю нужные методы из модели толкая параметрами нужные данные, а на выходе получаю обсчитанное значение, которое в ViewModel записываю, а там в set уже оно обновляется в View. Охуенно, правда? А теперь расскажи мне, нахуя мне твои интерфейсы левые в моделях и куча кода повторяющегося, м?
Аноны, смотрите, простая задача:
1. Сделать файл Program.cs, в котором включить http-сервер.
2. Запостить на сервер PNG-картинку.
3. Принять её на сервере, и сделать с неё bitmap.
4. Сохранить в bmp.
Как сделать это на С#? Есть где-то примеры?
>А теперь расскажи мне, нахуя мне твои интерфейсы левые в моделях и куча кода повторяющегося, м?
Да я не ебу, нахуя тебе куча свойств повторяющихся нужна была, ты про них писал, а теперь придумал новую хуйню и на попятую идешь, а я тебе сказал, как правильно прописать свойства один раз и обмазываться ими потом в любом количестве.
На все сразу
>а я тебе сказал, как правильно прописать свойства один раз и обмазываться ими потом в любом количестве.
Ты сказал, что нужен интерфейс, а интерфейс не содержит реализации, то есть, мало того, что эти свойства мне нужно будет в интерфейсе написать, так потом еще в каждом классе реализовывать, который его наследует...пиздец ты, молодец
Так вот при каждом чтении из кеша делается это
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.
У тебя не про выход за границы long ошибка. Используешь свой Dictionary в нескольких потоках?
Да так и есть, примерно 10% обращение из другого потока, при том исключение выходит только после очистки кеша.
Обернул метод в lock и ошибка исчезла, но мне не нравится это решение так как lock сам по себе не дешевый, а обращение к кешу очень активное. За секунду 100-200к чтений может быть при 1к записи.
Можно конечно ConcurrencyDictionary использовать, но он судя по бенчмарку на большой коллекции еще хуже будет.
Твой говнокод полезным сложно назвать.
Юнит тесты - проверка на вшивость. Если ты пишешь хуйню, то и протестировать свои модули нормально не сможешь.
Естественно, это я про разработку легких апликух для себя/учебы. Если уже работаешь джуном и до сих пор не понимаешь зачем нужны юнит тесты, то земля тебе пухом.
Спасибо попробовал.
По сравнению с просто локом вышло примерно на 10%-15% лучше.
Но все равно как-то не приятно когда 50% (а точнее 47% согласно dottrace) работы метода занимает вход в блокировку.
>>48889
Большинство стандартных решений очень плохи в плане перформанса.
Конкретно ConcurrentDictionary еще может сильно засрать память и в результате GC будет тормозить.
> а я тебе сказал, как правильно прописать свойства один раз и обмазываться ими потом в любом количестве.
Объясни толком, а то не ясно нихуя, как потом из модели то во вьюмодель их пихать?
Бамп! Загуглил, оказывается никак. Нужно писать PE parser. Но я вообще ньюфаг в этой теме. Гугл поиск выдает какую-то парашу связанную с экселем, пидоры.
Я уже прочитал Рихтера, но мне его язык больно не нравится.
>как получить возвращаемое значение делегата?
Чего, блядь? Делегат это указатель на метод, какое возвращаемое значение тебе надо?
Все, разобралси: ноги из .csproj росли.
И правда. Напиздел, но не совсем! Почему-то bool не могу в переменную положить, а инты могу.
Нахуй делегаты, используй Func<>. Делаешь обжект типа Fucn<bool>, вызываешь у него метод invoke(), который вернет тебе результат.
бамп
ajax
Обязательно ли мой класс должен полностью соответствовать таблице в SQL?
Например, в базе есть таблица Клиент, если мне нужно выводить только ключ и имя клиента, я могу только эти поля привязывать и нужно ли привязывать все?
Нужно ли мне привязывать все таблицы?
Так и работает. Твоя модель должна быть один в один, как таблица. Смысл в том, что каждая строка в этой таблице это экземпляр твоего класса в модели. Надо тебе только ключ и имя, получаешь строку (это будет экземпляр твоего класса), ну и обращайся к нему по имени через точку узнавая ключ и имя
Всё, решил. 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;
Вот так - заебись
Ты ньюфаг что-ли? Уже даже на крестах везде auto тычут и правильно делают, так код действительно компактнее и лучше читается.
Наверняка дебил с блокнотом верещящий, что иде не нужна
А если в таблице есть внешний ключ, то что делать? Необходимо ли использовать дополнительный атрибут [ForeignKey]?
>Твоя модель должна быть один в один, как таблица.
Окей, а если в таблице названия строк с пробелом, то я могу через атрибут Column привязывать?
Если у тебя уже есть таблица, нахуя тебе CodeFirst? CodeFirst это для случая, когда таблицы и базы нет, нахуячил моделей, EF все сам создал
Есть база данных, которая уже была создана, я хочу использовать CodeFirst к существующей базе данных, чтобы работать с ней.
Впрочем, думается мне, что разумнее использовать ADO.NET,
Другими словами, мне нужно выводить всё в консоль, даже если приложение было запущено примерно так: program.exe > temp.txt.
При таком запуске Console.IsOutputRedirected показывает true. Я попытался взять Console.OpenStandardOutput и засунуть в SetOut, но это не работает, вывод продолжает идти в файл.
Других идей нет, кто-нибудь может помочь?
Ну так и настраивай маппинг через аннотации/флюентапи
Process process = new Process(); // Read/Write/GetModule
var module = process.GetModule(name); // Read/Write/GetModule/Parse
Как мне сделать так, чтобы я из module мог использовать только метод Parse()?
второй день голову ломаю, ничего не выходит
Напиши пример в рекстестере, для наглядности, а то у меня не получилось: https://rextester.com/ZOJFX89906
Платина, но все же. Ищу учебник/курсы для самых начинающих (в оп-посте не то), где бы разжевали все по полочкам для человека, который ничего, кроме бейсика 20 лет назад в школе не изучал. Я знаю основные понятия, вроде циклов, массивов, переменных и т.д., но вот классы, функции и т.д. уже темный лес.
В идеале что-то уровня того сайтика для нубов в пхп-треде, есть такое?
c# player's guide именно то, там вообще за самую базу поясняют.
Попробуй javarush. Хз как сейчас, но два года назад его триалверсия охуенно обьясняла про циклы/массивы/ооп.
https://rextester.com/RCZ55698
>>50754
Куда это пихать? Вот я выше скинул пример. Нихуя разобраться не могу.
Нормально проектировать классы, если тебе нужен функционал класса process в классе module, то лучше тогда его полем module сделать, а не наследовать
будет тогда
class Module
{
Process _process;
public void Parse()
{
ебошишь здесь методы process или зачем они тебе там
}
}
естественно process в конструкторе хуяришь
С каким тестом проблема? Никаких подводных нет, просто пердоль тест за тестом.
>везде одна и та же информация и только примитивнейшие примеры.
Потому что одиночка примитивнейший паттерн, на шарпе реализуется в две строки.
Расскажи какую задачу решаешь, без этого конкретных советов дать не получится. Очевидно ты неправильно выделил абстракции, у тебя не должно быть циклических зависимостей и ты неправильно используешь наследование (прочитай про принцип замещения Лисков).
Какая выгода от DI фрэймворков? Чем плохо реализовать DI просто ограничившись добавлением интерфейса в конструктор, просто сделать интерфейс IFoo, сделать класс Bar с конструктором Bar(IFoo foo), и готово, потом сам создаешь конкретные реализации IFoo и передаешь их в конструктор, безо всяких контейнеров
Есть переменная с типом Image, внутри которой - картинка с прозрачностью.
Задача - взять отдельные цвета с каждого пикселя.
Color c = innocuousBmp.GetPixel(x, y); // работает для Bitmap.
Но конвертация Image в Bitmap - херит прозрачность. А-компонента 255 для всех пикселей.
Вопрос, как можно по-другому взять по отдельности цвета каждого пикселя,
включая прозрачность, причём для пикч самых различных форматов, поддерживаемых типом Image.
Ну, или, как сконвертитьвать пикчу не в RGB, а в ARGB-Bitmap.
Вот гист: https://gist.github.com/AndreCAndersen/78b38ef60b402c7f1b7566e091941d0a
Там найди строку
>Color c = innocuousBmp.GetPixel(x, y);
и код, рядышком.
Видишь, на входе Image innocuousImg.
Это функция public static byte[] RgbComponentsToBytes(Image innocuousImg)
На выходе, из неё - массив 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())//convert to Byte array, without converting to bitmap, to save transparency...
{
innocuousBmp.Save(ms,innocuousBmp.RawFormat);
rgbComponents = ms.ToArray();
}
for(int i=0; i<150; i++){
Console.WriteLine(rgbaComponents);
}
Но тут, в начале массива - байты заголовка BMP-файла.
С 11-го байта - можно получить оффсет RGBA-компонент,
а сами байты компонент - идут по порядку bgra (реверс argb).
Вот такая херня какая-то.
Вот гист: https://gist.github.com/AndreCAndersen/78b38ef60b402c7f1b7566e091941d0a
Там найди строку
>Color c = innocuousBmp.GetPixel(x, y);
и код, рядышком.
Видишь, на входе Image innocuousImg.
Это функция public static byte[] RgbComponentsToBytes(Image innocuousImg)
На выходе, из неё - массив 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())//convert to Byte array, without converting to bitmap, to save transparency...
{
innocuousBmp.Save(ms,innocuousBmp.RawFormat);
rgbComponents = ms.ToArray();
}
for(int i=0; i<150; i++){
Console.WriteLine(rgbaComponents);
}
Но тут, в начале массива - байты заголовка BMP-файла.
С 11-го байта - можно получить оффсет RGBA-компонент,
а сами байты компонент - идут по порядку bgra (реверс argb).
Вот такая херня какая-то.
>Это функция 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
Дело не столько в этом,
сколько в том,
что после преобразования 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.
Сорян, всё ровно с битмапом. Это у меня лаги.
И странно, то, что твой пример тоже работает, у меня, если компилировать сs-файл, через csc.exe.
А если при помощи MSBuild.exe - не работает нихрена.
Поэтому тупо перерисовал Image поверх Bitmap,
как в этой статье 2013-го года: https://softwarebydefault.com/2013/03/02/bitmap-image-filters/
Бамп вопросу
Можно в консоли использовать команду tee в bash в линухе, в виндовом powershell тоже аналог есть.
https://ru.wikipedia.org/wiki/Tee
https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/tee-object?view=powershell-6
Что?
Приложение не перенаправляет вывод, это делает оболочка. Пиши вывод в StandardError
В хелоуворды не надо. Паттерны это не про хэллоуворды, в ник использование паттернов только увеличит сложность и не даст никаких профитов. С другой стороны одиночка реализуется в шарпе в две строки, так почему бы явно в коде не обозначить что класс должен быть один. Лучшая документация кода - сам код. Если бесит писать Huj.Instance посмотри паттерн моносостояние.
Бугаенко часто говорит годноту, но ко многим вещам у него надо относиться с долей скептицизма, особенно, к его церки юнит-тестов.
Запускай еще один инстанс приложухи, который срёт в консоль.
Я вообще чем дальше лезу в CS тем меньше понимаю зачем в ООП развели дроч вокруг 30+ паттернов и почему нюфаням говорят тратить время на них, вместо того чтобы изучать моменты больше связанные с характеристиками самого языка, или более прикладные вещи.
Чего стоит твоя абстрактная хуябрика, если ты не сталкивался с задачами, где её применение действительно оправдано и само просится на ум?
Какое заказчику дело до твоих маняназваний, если ему нужен банальный REST-сервер?
Куда ты будешь деваться, когда окажется что даже подобных паттернов можно ещё набрать? (Давай вспомним очевидных MVC и MVVM, например)
А как обстоят дела с функциональной парадигмой?
А потом ты такой лезешь разбираться в DI и оказывается что это по большей части ненужный ужас, связанный не столько с программированием сколько PHP и Java причём образца начала нулевых.
Как же повезло современной IT индустрии, что в нашем мире есть такой гений как ты! Тебе нужно непременно организовать несколько конференций, а затем издать книгу, чтобы открыть неразумным долбоебам, погрязшим в слоях абстракций, настоящее положение вещей.
Это всё очень иронично, но почти у всех кто лезет сначала в паттерны обучение там и стопорится что вообще нигде не ясно зачем эта хрень нужна.
Пацаны само ООП ещё не понимают, а ты их призываешь синглтоны дрочить.
Ты рано паттерны изучать начал, забей на них и вернись через год. Если у тебя в голове при их изучении не крутится "А что, так можно было? Божечки, почему я до этого не додумался, это же очевидно" или "Так вот как называется та штука, которую я навелосипедил" - то тебе изучать их рано и бесполезно.
>понимаю зачем в ООП развели дроч вокруг 30+ паттернов
>>52048
>или более прикладные вещи
Ага, а какие вещи более прикладные?
>>52048
>если ты не сталкивался с задачами
Это твоя проблемы. Если ты писал хоть 2-3 проекта, при знакомстве с паттернами всплывают старые проекты и решения.
Под проектами я понимаю проекты, а не накиданый на коленке крад.
>>52048
>Какое заказчику дело до твоих маняназваний
Видимо нужно открыть тебе маленький секрет: проекты нужно поддерживать.
>>52048
>когда окажется что даже подобных паттернов можно ещё набрать
К чему это высрано - не понятно. Никто в глотку не сует и не заставляет их использовать, если в них нет надобности.
>>52048
>DI и оказывается что это по большей части ненужный ужас
>>52048
>причём образца начала нулевых
Ну, здесь окончательно становится понятно, кто по ту сторону экрана: ебучая зелень, которая не работала на больших проектах.
>и оказывается что это по большей части ненужный ужас, связанный не столько с программированием сколько PHP и Java причём образца начала нулевых.
Не доеба ради, а правда интересно. Приведи хоть пару примеров
>Пацаны само ООП ещё не понимают
А хуль там понимать? Наследование - позволяет избежать повторяемости кода и расширить функциональность класса, инкапсуляция реализована через свойства и полиморфизм, что суть есть интерфейсы. Все, блядь, носятся с этим ООП, что пиздец.
>Если у тебя в голове при их изучении не крутится "А что, так можно было?
Эххх, ну давай. Вот есть MVVM, чем он лучше обычных событий, методов и привязок в code behind?
>Арррряяяя, там вдруг весь интерфейс поменять на вьюхе надо будет, ты такой хуяк и поменял, а потом к нужным свойствам вьюмодели привязал
Бля, ну так я и из code behind все скопирую и приляпаю к новой вьюхе, то же самое бля. Только MVVM я из вьюхи лезу сначала во вьюмодель, смотрю к чему там привязано, затем лезу в модель чтобы реализацию поглядеть, тогда как раньше сразу было видно что и как делается.
> А как обстоят дела с функциональной парадигмой?
> А потом ты такой лезешь разбираться в DI
Но ведь DI это и есть функции высшего порядка курильщика
Вообщем такая штука,чем можно снять .net reactor чтобы заменить пару строк в коде и собрать его потом обратно в рабочее приложение?
после де4дота+закидывания то что получилось в днспай и выгрузка оттуда кнопкой "выгрузить в проект" выходит хуйня с кучей ошибок
как фиксить и чем вскрыть?
>которая не работала на больших проектах.
Угу, а чувак учащий паттерны конечно же работает сразу на большом проекте с полным контролем архитектуры кода.
https://www.tonymarston.net/php-mysql/dependency-injection-is-evil.html
Вот у этого наиболее вменяемо было.
Вообще в это упираешься когда с разными языками начинаешь работать и оказываешь что в разных языках их юзают в разном количестве. Вплоть до того что кое-где определённые паттерны не будут заметно использоваться как раз из-за дизайна языка.
А потом начинаются вообще вредные мысли уровня а являются ли монадные перегонки данных (в случае шарпа это LINQ, например) паттерном? И тут ты гуглишь вопрос и теряешь сознание
>хуль там понимать?
Ну хотя бы то что ООП суть пересмотр ADT.
>Наследование - позволяет избежать повторяемости кода и расширить функциональность класса
Ну так почти про всё в программировании так пишут. Даже про JMP в ассемблере.
>полиморфизм
>что суть есть интерфейсы
Вот сейчас мощный панчлайн был.
>Теперь пиздуешь из треда читать про полимфоризм,
Я читал..
Давай объясни разницу, только своими словами. И это, обоснуй, что инкапсуляция в шарпе не через свойства реализована
>Вот сейчас мощный панчлайн был
А хули не так? Например, способность функции принимать и обрабатывать разные типы данных - это полиморфизм. Как в качестве параметра передать в неё экземпляры разных классов? Через интерфейс. Так что или извинись, или покажи, где я не прав и что же такое полиморфизм в твоём манямире
Полиморфизм это прежде всего из области типизации вообще.
Интерфейсы в трактовке ООП - это уже конструкт над конструктом, в общем-то из другой области даже.
У вас сова на глобус натянута, а вы ещё от других за это извинений требуете.
Это ты сейчас adhoc полиморфизм описал. Но есть еще и параметрический полиморфизм. Они ортогональны и вместе образуют очень мощный инструмент.
В ООП же намешаны смузи из этих полиморфизмов в разных пропорциях: дженерики, перегрузка, интерфейсы, наследование.
Ну это лучше, чем штаны просиживать и геморрой получать.
Блять, откуда вы такие лезете? Говоришь то что знаешь. Знаешь настолько насколько вообще изучал. Не изучал - так и говори. Считаешь что изучал недостаточно - изучай глубже.
Если тебе нужны заученные ответы, то пошёл-ка ты нахуй из профессии. Либо иди паттерны зазубри, чтоб хоть какой-то толк с тебя был.
Ты, блядь, не выебывайся, а расскажи своими словами, что такое полиморфизм. А то уже не первый раз вижу, когда такие умники сидят, понты кидают, а спросишь их и все, нихуя ответить не могут. Только пасты кидать горазды с какого-нибудь ресурса. Ну и традиционное, своими словами расскажи, почему MVVM - круто, а в code behind писать - плоха, тупа, нада вьюмодел
>В треде новый мемас придумали и лезут с ним на всех подряд.
Ричард Фейнманн говорил, что если ты не можешь объяснить то, что ты делаешь на работе так, чтобы это понял ребенок, значит ты сам в этом ничего не понимаешь. И это верно, когда все из себя программисты не могут объяснить новичкам какие-то вещи, которые по их словам, элементарные, нуууу, тут все ясно о их уровне. Давай, объясни, как ты понимаешь полиморфизм в шарпе, как он реализовывается? Ну и про MVVM вопрос продолжает оставаться без ответа. Тут что, в целом треде нет ни одного специалиста, который это бы понимал не на уровне заученных понятий или потому что кто-то там скозал?
Ты дурак? Внимательно посмотри на свои значения
Хули тебе объяснять? Открыл метанит, любую книгу по основам ооп, там все блядь разжевано, иди на хуй, если ты такой целеустремленный, решил идти на вакансию 300к/сек, хуле ты у местных долбоебов спрашиваешь, а не в книге смотришь? парадигме уже лет 30, там умных книжек больше, чем здесь анонов сидит
>любую книгу по основам ооп
Вот справедливости ради - в книгах именно по ООП, особенно ньюфажным, очень уж любят давать размытые, нестрогие определения пригодные только в контексте самого ООП.
>Хули тебе объяснять? Открыл метанит, любую книгу по основам ооп
Чего ты опять попкой то вилять начал? Я ж даже в том посте написал, что все ниибаца программисты, козыряют своими знаниями, а спросишь любого и будет ответ - аряяя, там в книге все написано, иди читай. Своими словами нихуя объяснить не могут, а вот пасты кидать все горазды. Да сознайся ты уже, что сам нихуя не понимаешь и все.
У меня как раз и крутится, иначе бы я не спрашивал тут совета. Но некоторые паттерны выглядят бесполезно, вот этот синглтон например.
de4dot не фиксит полностью код после деобфускации. Можно прямо в dnspy пропатчить или гугли фиксеры под netreactor. А вообще ты пидор! Хули софт тыришь? Пиши сам, сука.
Ну синглтон и нинужен, это антипаттерн. А смысл синглотона не просто том что ты создаешь только один объект, а ы том что этот один объект будет общим для всего приложения.
А кэш ты через что будешь делать?
> Какие-то ведь уже заняты могут быть. Типо, рандомно прописать порт 1256 и клиенту и серверу? Но это же бред. Как это делается по уму если?
Именно так оно и делается. Выбираешь порт для сервера, клиент заставляешь только по этому порту обращаться.
> рандомно прописать порт 1256 и клиенту и серверу
джа
> Какие-то ведь уже заняты могут быть
Ниповезло
Тогда все. В макдак на кассу идти.
Обычно сервер находится под твоим контролем и ты можешь выбрать заведомо неиспользуемый порт (зная что запущено на сервере). Обычно клиенты конектятся к серверу (потому что NAT) так что на клиентские порты похуй. Если серверу нужно конектится к клиенту то там или берешь какой-то никем из известных приложений неиспользуемый порт, или как-то при первоначальном подсоединении клиента определяешь свободные у него порта и стучишь по ним. Можно использовать диапазоны портов - пытаться по очереди подключаться пока не найдешь свободный.
А как вообще выбирать порт, есть какие-то чаще доступные, какие-то постоянно занятые?
Есть дефолтные вроде 80 для внешних подключений, часто используемых типа 5000 а также используемых конкретными приложениями. Большинство из доступных для пользования портов не пользуются. Соответственно, можно просто рандомить по диапазонам.
Можешь отдельно загуглить эту тему, там в общем-то ничего эдакого, разве что есть специфика по ОСям, но в целом среди всей сетевой хрени это наверное самая изичная. Хотя можешь углубиться в историю и архитектуру компьютеров, чтобы понять откуда вообще взяли идею портов, чего в ней хорошего, и почему оно выглядит именно так как сейчас.
Ну там есть хуи которые пытаются регестрировать используемые порты https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt но на ним всем похуй
на вики есть список https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers но ситауция меняется же
list.Add(chislo);
list.Sort();
Но если список будет большой, числа будут идти довольно часто, то не посыпется ли это все от тормозов? Как то можно изящнее сделать или и так сойдет?
Почитал на хабре, блядь, а где там сортировка то? Ну хранит он ссылки на предыдущий и следующий объект коллекции, мне то чем легче?
Сортировки нет пердоль сам. Фишка линкед листа в том что добавление/удаление происходит за O(1), но зато, доступ за О(n), поэтому про бинарный поиск можно забыть. Что бы выбрать правильную структуру надо полностью разобраться в задаче. Так что не выебывайся и бери готовые SortedList/SortedSet/SortedDictionary.
Понял. Но разве не легче везде с собой таскать нужный экземпляр объекта? Через ссылку его перекидывать и норм. С синглтоном производительность ниже будет же? Или я не прав?
internal, конечно же
> Через ссылку его перекидывать и норм. С синглтоном производительность ниже будет же?
Ну смотри. Вместо того чтобы хранить одну ссылку для синглотона на все приложение, ты собираешся в каждый конструктор класса (в котором нужна функциональность синглтона) добавить еще один параметр для передачи ссылки, и добавить еще одно поле в сам класс для постоянного хранения ссылки. Каким образом это может быть проще или эффективнее?
И где мне эту ссылку на синглтон держать-то? Я пару дней назад спрашивал об этом, мне все в один голос написали не выебываться и копировать в конструктор объект. Хуй пойми блять.
>И где мне эту ссылку на синглтон держать-то
На вики посмотри примеры реализации ШАБЛОНА ПРОЕКТИРОВАНИЯ ОДИНОЧКА - там есть немного подводных камней.
> не выебываться и копировать в конструктор объект
Ну так нужно по ситации ориентироваться. Если то что должно быть синглотоном используется в объектах которые создаются в одном месте то тогда действительно может быть смысл передавать в конструтор.
В обычном листе обычный массив.
До этого читал Труэлсена, было ощущение, что много воды и спустя пару часов ничего не понимал. Дошел где-то до середины и дропнул. Затем читал метанит, но это больше похоже на справочник, куда стоит заглянуть, если что-то забыл. Или знаешь похожую технологию
В результате изучаю эту книжку по MVC 4, а на непонятных местах лезу к Рихтеру и на метанит - так получается намного продуктивнее и интереснее. И в голове все связно - все примеры в книге идут последовательно и тут же применяются на практике. Прям удовольствие получаю
Но у меня какой-то подростковый ангст от того, что я изучаю старую технологию, по большому счету. Есть что-нибудь подходящее для меня, на русском языке? Можно и на английском, но, прошу, вдруг есть годный материал на русском. Тяжело читать англоязычную литературу
Летом хочу на джуна собеседоваться, поэтому сейчас каждый день ебашу. Хочется влиться в какую-нибудь заебатую команду, которая подскажет, что к чему
История довольно тупая - четыре года учился на специальности "Связь", понял, что не мое. Случайно нашел программирование и испытал детский восторг. Чекнул зарплаты и охуел. Такое ощущение, что связисты не нужны. Да и все остальные тоже
Однако дело не в шкурном вопросе. Просто не хочу как родители всю жизнь пыхтеть не на своём месте
Одно и то же.
Convert попытается преобразовать тип если возможно, например сконвертировать строку в число, числовой тип в бул и т. д. Явное приведение сразу бросит эксепшн, если приведение не определено.
dotnet теперь опенсорц, везде работает теперь.
Посоветуйте годную IDE под Linux, мне VSCode не понравился чет, электрон этот жирный...
Rider в целом неплох, но вообще лучше перекатись на винду: там есть VS, которая на порядок лучше, ну и все популярные линуксы уже туда интегрированы.
А кроме вскода ничего и нет, страдай. Конечно, есть райдер, но он платный и проприетарный, да и не особо быстрее вскода. Зато в вскоде можно напердолить красивый интерфейс и дрочить на него! Мне, как хелловорлдщику, который не писал приложений > пары тысяч строк кода я на глаз приктнул, хз сколько на самом деле, вскода вполне хватвет - подсветка ошибок есть, автокомплит есть, дебаг есть. Что еще надо?
>>54190
Толстовато
В смысле толсто? Чего тебе не хватает из линь инфраструктуры в WSL? cgroups или gpu? Rider действительно неплох и будет получше нежели MonoDevelop/SharpDevelop. VSCode - вообще не IDE.
Я только начинаю вкатываться, головная контора в городе работает на шарпе, соответственно в малых конторках он тоже есть. Можете еще пояснить зачем вообще нужен? Для энтерпрайза есть жава. Для веба - пхп, джанга, жаба, го. Для мобилок - свифт и опять же жаба. Для игор - плюсы. Как он вообще взлетел?
Правильно я понимаю, что шарп чаще используется для тяжелых бекэндов? А для визиток "ИП Хачатурян" - пхп?
И еще как там с удаленочкой, фрилансом, релокейшеном?
Один вопрос тебе. Зачем эта самая С нужна? Хранить методы действий? Нахуя нужен контроллер, если он только и делает, что вызывает методы модели
Да потому что пересаживаться на винду ради языка - это может посоветовать только очень толстый тролль. Я не буду тебе объяснять почему венда - унылое говно (ибо уж на дваче это точно стопицот раз писали), просто запомни, что не программист подстраивается под инструмент, а инструмент под программиста.
Мимокрок, но спрошу. А что с гуем на линуксе? Были какие-то фреймворки, вроде, "авалония", как оно?
Авалония имеет статус beta, они пишут, что все работает, но в любой момент могут поломать API.
По описанию мне больше нравится это: https://github.com/picoe/Eto
Палочкой правда пока не тыкал, но там даже GTK 3 есть пишут.
Из официально© поддерживаемых майкрософтом: https://github.com/xamarin/Xamarin.Forms
Задумывался для винды/мака, но есть "почти готовый" GTK бэкенд. Правда коммиты были туда полгода назад и я сомневаюсь, что его вообще доведут до конца.
Если винда лучше подходит для решения задачи, почему троллинг её предлагать? Для каждой задачи свой инструиент. Или у тебя линукс отберут, если ты винду поставишь?
>если высеры шарпохейтеров окажутся правдой и даже на серверах шарп уступит место нодджсу и тайпскрипту.
>
А причем тут высеры шарпохейтеров?
Любой нормальный дотнетчик это и так понимает. Достаточно открыть репозиторий майек и увидеть тонны кода на ноде и тс.
Учитывая что тс детище майек - на шарп успешно забьют хуй. Выкатили 2.1 LTS, выкатят еще через пару лет LTS, а потом пошлют нахуй.
Angular вон весь на ts, с пробуждением.
my_struct data[ 64 ][ 12 ];
Как это на сисярпе будет то блять?
List<List<my_struct>> ? Так не работает.
Не понял.
Подробнее напиши что у тебя там за код на крестах и что ты пытаешься сделать. Телепаты в отпуске.
Если тебе нужен многомерный массив, то надо так:
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]
Ты бы хоть сперва погуглить пытался бы такие вещи
https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/arrays/multidimensional-arrays
>my_struct[ , ] data = new my_struct[64, 12];
Разве не так?
int myData[][] = new myData[10][10]?
В пезду анон, программирование то еще болото. Лучше бы я отучился на связиста нах.
можешь почитать и про MVC 4, а затем MVC 5 глянуть. Но сейчас по сути уже .NET Core (тем более 2.0). А там вроде как не много концепцию изменили. + как никак но фронтен не много учить придется. Чисто бэкендом наврятли будешь.
не обязательно отучиваться на него. У меня как раз получилось наоборот. Учусь на программиста, а работаю связистом. Правда всё же в программирование вкатываюсь.
Class
{
List<MyObj> MyList;
public func (List<MyObj> List)
{
MyList = List; //Здесь в MyList должна была записаться ссылка на List, а вместо этого создаётся копия List. ЧО ЗА ХУЙНЯ БЛЯДЬ
}
}
>Бля, у меня какого то хуя вместо ссылки на список создаётся его копия.
Почему ты так решил?
>Кто нибудь юзает C# на линуксе?
В проде. На линукс деплоится(докер-хуёкер), пишется, очевидно, под виндами. Линукс на дестопе -- удел безработных борщехлёбов.
Омнишарп делали какие-то ебаны и он нигде, кроме бубунты/дебиана, не работает. Поэтому или ставь убунту винду или докер. Могу скинуть свой работающий докерфайл с вскодом, если надо.
>Гну/Линукс - относительно свободная ос.
>А винда нет.
Какое практическое применение свободы на десктопе?
>>54271
>Да потому что пересаживаться на винду ради языка - это может посоветовать только очень толстый тролль.
Это совет к любой системе, где нормальные инструменты прибиты гвоздями к платформе. Сейм шит с яблочными технологиями — можно пердолиться и разрабатывать под iOS c линукса/винды, используя удалённые билд-сервера для сборки/отладки/даже превью, но проще сесть за мак, несмотря на то, что макось — лютое консьюмерское говнище.
> Какое практическое применение свободы на десктопе?
Раз тебе нравятся зонды и реклама, то твое дело.
> Это совет к любой системе, где нормальные инструменты прибиты гвоздями к платформе. Сейм шит с яблочными технологиями — можно пердолиться и разрабатывать под iOS c линукса/винды, используя удалённые билд-сервера для сборки/отладки/даже превью, но проще сесть за мак, несмотря на то, что макось — лютое консьюмерское говнище.
Но неткор опенсурсен и кроссплатформен - под него можно писать и под линуксом. Да и на шарпе ты пишешь под линукс, а не под айфон.
>Омнишарп делали какие-то ебаны и он нигде, кроме бубунты/дебиана, не работает.
Где он не работает кроме убунты? У меня Минт, так что должно работать.
>А я разобрался в чем была проблема.
У тебя была ошибка с System.threading.Tasks.Dataflow? Или мсбилд сразу нормально стал?
> Раз тебе нравятся зонды
Опенсорсный дотнет кор, кстати, по дефолту шлёт телеметрию. Там есть флаг для отключения, но если б я не сказал, ты бы пошёл его ставить?
Аналогичное можно сказать про кучу открытого софта, где есть крэшрепортеры/метрики/что угодно(и vscode, в которой ты собирался писать, тоже срёт телеметрией как сама, так и 3-rd party расширения).
Эту проблему опенсорц не решает ни разу сам по себе — надо лезть в конфиги, как и с закрытым софтом.
> и реклама, то твое дело.
В PRO-редакции есть реклама?
Как там поживают amazon ads в ubuntu? inb4: я элитный борщехлёб на дебиане.
Мне нравятся инструменты, которыми работают, оставляя мне процесс разработки, а не ебли с конфигурацией.
>Но неткор опенсурсен и кроссплатформен - под него можно писать и под линуксом.
Писать можно хоть с телефона, работать — только с винды / из-под студии. Все попытки пердолинга из-под заканчиваются на том, что внезапно нужно открыть дотнетовский проект с какой-нибудь легаси-хуитой уровня edmx, который не поддерживается нигде, кроме оригинальной студии(и хорошо ещё, если свежие редакции её нормально поддерживают).
Минт это форк убунты, который форк дебиана. А на моем никсосе нихуя не запускается. На раче тоже были проблемы.
Не хочу начинать спор, но очевидно, что полноценному сисярп разработчику необходима винда. Ты победил.
а я мамин борщехлеб, пишу на шарпе только для себя
> Скачал VS с торрента, весила она 30Гб
А зачем качать дистр, который включает даже раковину и несколько версий андроида? У майкрософта есть специальный веб-инсталлер с красивыми кнопочками(пикрил) под разные стеки для совсем тупеньких, который вытягивает только нужное.
Денег студия много лет не просит за нормальную редакцию — пиратить энтерпрайз ради энтерпрайза странно(но и в этом случае проще поставить через веб-инсталлер и дать ей левый ключ, которых полно в интернете).
> макось — лютое консьюмерское говнище
Как по мне так макось от любой другой nix системы не отличается вообще никак. Разве что меньше пердолинга с драйверами, лол.
мимо-маковод
>У майкрософта есть специальный веб-инсталлер
Чтобы поставить только msbuild, надо сначала скачать и установить установщик, и уже через установленный установщик поставить msbuild. Последний весит гораздо меньше установщика.
Хорошо, что есть JetBrains.
>а я мамин борщехлеб, пишу на шарпе только для себя
Попробуй Rider от JetBrains тогда. Он, правда, стоит денег и закрытый, но там всё сильно лучше, чем в поделках уровня OmniSharp и MonoDevelop. Даже два с половиной назад, когда он был в глубокой бете, писать в нём было удобнее, чем в на то ещё момент не переименовавшейся Xamarin Studio.
В свой репазиторий чо угодно заливать можешь, ты ведь не коммерческую хуйню пишешь.
>Денег студия много лет не просит за нормальную редакцию
За комьюнити что ли? Даже через веб-инстоллер будет весить дофига. Если не ошибаюсь дефолтная без ничего весит 3Гб! Охренеть. Мой дистрибутив ОС весит 2,5Гб. Такое поделие не нужно.
>Чтобы поставить только msbuild, надо сначала скачать и установить установщик, и уже через установленный установщик поставить msbuild. Последний весит гораздо меньше установщика.
VS не нужен, хоть с установщиками хоть без них.
>Попробуй Rider от JetBrains тогда. Он, правда, стоит денег
Есть сервера с бесплатной регистрацией. Легко гуглились пол года назад.
>Чтобы поставить только msbuild
MSBuild стоит из коробки, зачем для него студийный инсталлер? Если нужен только sdk без всего остального, его можно скачать отдельно(опять же, странно использовать инсталлятор студии, для того, чтобы ставить не студию).
>Если не ошибаюсь дефолтная без ничего весит 3Гб!
500 метров, причём большая часть уходит под sdk разные(которые и в дистрибутиве на 2.5gb точно так же нужно будет ставить)
>>55258
106 мегабайт: https://dotnet.microsoft.com/download/dotnet-core/3.0
Если ты про то, что ставит .NET Core cross-platform development, то там ещё чуть более 9000 инструментов в комплекте идёт, начиная с нескольких редакций докера и, если не ошибаюсь, дистрибутива moby linux, чтобы запускать нативные линуксовые контейнеры в hyper-v, а не WSL.
Я уже привык к вскоду - в нем нет кучи ненужной хуйни и я не теряюсь в настройках, поэтому довольно быстро выучил шорткаты и он кажется пиздос удобным.
Да, он не подсказывает как правильно называть переменные и не способен в два клика изменить десятки классов наследников от измененного абстрактного вроде что-то подобное делал в студии с спираченым решарпером, непомню уже. Но я ждал аж 30 секунд, пока оно применило все изменения моего йоюа рефакторинга, но мне его хватает.
Ну и еще шрифты в вскоде красивее, как же без этого.
на самом деле я ненавижу эту парашу, ради котлрой аж докер пришлось ставить. Сдохните, индусы с омнишарпа ебучие.
Лучше nixpkgs
>Глючное поделие. Снес винду к ебеням.
проблема решается SSD шником) сама студия за 3-5 сек открывается. Проект же за секунд 10-15.
>Как по мне так макось от любой другой nix системы не отличается вообще никак
Конфиги-через-жопу. Ни нормальных текстовых файлов, как в линуксе, ни нормального UI для многих вещей, как на win. Нетривиальные настройки через defaults write...
Абсолютно угрёбищный дефолтный софт, который выпрямляется кучей мелких костылей за $0.99. Начиная с таких базовых вещей, как window snapping в window manager, который реализуется элементарно, но его нет из коробки в 2019-м.
Пакетный менеджер кастрирован до user-level пакетов.
Контейнеры -- нет, только пердольный эмулятор docker, которому нужна VM с линухом. Даже на windows нативные контейнеры уже завезли.
Это сходу.
>Когда-то можно было.
В гугле забанили?
https://dotnet.microsoft.com/download/visual-studio-sdks
>Не 15 версии.
Да, ты прав. Поставить можно отдельно через vs build tools installer(не требует студии, но нужна установка установщика, да)
https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2017
>
>500 метров, причём большая часть уходит под sdk разные(которые и в дистрибутиве на 2.5gb точно так же нужно будет ставить)
Пиздешь. Дефолт ультимэйт 3 гига. Там есть галочки, которые нельзя снять, виндовый дотнет и еще что то. В линукс который весит 2.5 гига весь, не нужно ставить VS, только дебил будет это делать, тем более она на линуксах не работает. У меня vs code, весит 100-200 метров. Больше мне ничего не надо.
Запускать vscode в докере это извращение. Поставь последний моно из их репов и все омнишарп должен нормально встать.
>проблема решается SSD шником) сама студия за 3-5 сек открывается. Проект же за секунд 10-15.
Нахуй оно мне нужно. Винда для ламеров. Это тяжеловесное чудовище.
>У меня vs code, весит 100-200 метров
Там одного электрона(который ставится свой, а не используется из зависимостей), больше. Для понимания, выполни 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 <
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Мб.
>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 <
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 <
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 мб. Шах и мат.
>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 <
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 <
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 мб. Шах и мат.
Ебучий Т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/от рута.
>безопасность же
Невозможность поставить софт глобально в пакетном менеджере — это проблема, а не безопасность: возможность выполнения произвольного кода остаётся(от имени ставящего юзера), а выставить общий софт не может даже админ.
>Поясни, пожалуйста, подробнее.
Конфиги, в основном, лежат в 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/от рута.
>безопасность же
Невозможность поставить софт глобально в пакетном менеджере — это проблема, а не безопасность: возможность выполнения произвольного кода остаётся(от имени ставящего юзера), а выставить общий софт не может даже админ.
>Аноны, как перестать использовать в своих поделках чужие либы?
Какие например? Ты бы еще спросил как перестать использовать земные блага и создавать свои. Перестать пользоваться ложкой с вилкой, придумать свои столовые приборы. Перестать ездить на колесном транспорте, переизобрести колесо и потом самому создать автомобиль. Перестать носить одежду, пока не сошьешь все сам. Ну ты понял. Глупо не использовать либы если они хорошо решают свою задачу.
Либы которые я встречал, не очень подходят, а в силу нехватки знаний не могу допилить под себя, какие-то из-за зависимостей использовать не получается (может я просто не понимаю как, ну хули если туповат). А из примеров типа метанита или Троелсена не всегда понимаю суть, теряю нить в процессе.
>перестать использовать в своих поделках чужие либы
Зачем? У тебя в любом случае огромный фреймворк, чтобы не велосипедить как раз.
>Хотелось бы больше адекватных примеров, а не создадим ебучую хуету, чтобы посмотреть, как автор усвоил что такое интерфейсы, делегаты и события
Ну так решай какую-нибудь свою задачу, в процессе разберёшься со всем остальным. Вообще, инструменты для проблем, а не проблемы для инструментов:
- будут у тебя события в приложении — поймёшь, зачем нужны события в языке
- сделаешь несколько реализаций общих — осознаешь необходимость интерфейсов
- проебёшься с отладкой несколько дней — поймёшь, зачем нужны тесты и модульность
Я вот и спросил где бы посмотреть/почитать адекватные примеры/идеи? Мне присылали тестовое написать приложение asp.net web api с отправкой push уведомлений на телефон. Я сделал часов за 8, хотя веб даже не начинал, потому что интересным показалось.
>Либы которые я встречал, не очень подходят
Что значит встречал, может какое то говно с файлопомоек находишь, и считаешь это за либы. Нужно правильно искать, спрашивать у старших товарищей, тех кто давно программирует на дотнет, они знают что есть чего нет. Например есть замечательный чат в телеграме, который самый крупный.
Чтобы писать свои библиотеки нужен опыт. Опыт не просто копирования, а самостоятельного проектирования. Никакие Троелсены этому не учат, тем более метанит. Даже в книгах этого почти не найдешь. Такому можно научиться только переняв опыт у более опытных, тех кто пишет код за деньги. Либо работая самому в команде. Либо занимаясь контрибьютингом в опенсорс проекты. Без комьюнити никуда. По книгам сам не научишься. В комьюнити могут посмотреть твой код и сказать что не так, как сделать лучше.
Я имел в виду небольшие пользовательские либы на гитхаб.
А из старших товарищей у меня только ты, анон.
>Даже в книгах этого почти не найдешь. Такому можно научиться только переняв опыт у более опытных, тех кто пишет код за деньги
Что за хуйню ты несешь, поехавший. На docs.microsoft.com столько инфы, начиная от монолитной архитектуры, N-tier, CQRS, микросервисы, описано, с плюсами-минусами и так далее.
При наличии мозга и способности к чтению, можно обойтись без старших товарищей, но кто-то кто будет делать код ревью конечно желателен, но не ОБЯЗАТЕЛЕН, если ты умеешь ЧИТАТЬ
>>55353
>Нахуй
ути какие мы нежные.
>На docs.microsoft.com столько инфы, начиная от монолитной архитектуры, N-tier, CQRS, микросервисы, описано, с плюсами-минусами и так далее.
Это все хуйня, шаблоны. Чтобы спроектировать библиотеку нужен другой подход. Нужно спроектировать ее API, то что будут юзать пользователи. Потом внутренности. Спроектировать уровни абстракции, и барьеры между ними, чтобы все было модульно, склеивалось друг с другом без проблем, и не зависело друг от друга.
Микросервисы и прочую хуйню никто не знает как проектировать. Все только пиздят про них, но никто нигде не говорит как они должны быть сами по себе устроены внутри, как соединятся друг с другом. Не говорят потому что не знают нихуя. Почитай СИКП, вот там уровень проектирования, там инженеры.
>При наличии мозга и способности к чтению, можно обойтись без старших товарищей, но кто-то кто будет делать код ревью конечно желателен, но не ОБЯЗАТЕЛЕН, если ты умеешь ЧИТАТЬ
Такая хуйня не работает. Спроси у любого сеньера. Ни один ученый не делал отрытие закрывшись у себя в доме. Рост профессионализма возможен только через обмен опытом. Тупое поглощение информации ничего не дает.
Читать умею, но быстро забываю информацию. Часто приходится перечитывать, пересматривать или возвращаться, т.к. помню где искать, как называется, даже идею, но реализацию - нет.
Даже разметку на дваче уже забыл.
>>55354
Я себя и так обезьяной неразумной чувствую периодически, осталось только чтобы меня нахуй в чате посылали (я за этим на двач хожу)
>осталось только чтобы меня нахуй в чате посылали
Ты зря так думаешь. В чатах где собраны профессионалы обычно хорошо относятся к новичкам. Я задавал вопросы в Хаскель чате, там очень хорошо принимают новичков, на все вопросы отвечают, во всем помогают. Главное не боятся и не стыдится. Стыдно не задавать вопросы, стыдно не желать обучиться, стыдно боятся общаться с людьми, а показать всем что ты чего то не знаешь не стыдно. За интерес как говорится спроса нет. В морду не дадут.
>>55372
>Читать умею, но быстро забываю информацию. Часто приходится перечитывать, пересматривать или возвращаться, т.к. помню где искать, как называется, даже идею, но реализацию - нет.
>Даже разметку на дваче уже забыл.
У тебя наверное мало практического опыта. Читать просто так бесполезно. Нужно много практиковаться.
> Даешь еще делфи
Я кстати на стажировке в 2015 году писал на дельфях, внезапно очень доставило, если бы не долбоебическая политика Борланда и позднее Эмбаркадеро - для энтерпрайзных задач был бы замечательный инструмент.
В этом вся проблема двачевкатывальщиков в ойти, лол. Вместо того чтобы без задней мысли начать кодить, общаться с другими и наращивать опыт - двачеайтишники ищут серебряную пулю в виде книжки «как правильно кодить» и надеются что вот-вот ее найдут, прочитают и начнут кодить по единственно правильным и хорошим правилам, и не надо будет тогда читать/учить что-либо ещё.
Двачую. То что нужно.
Расскажи поподробнее
Двачую насчет всего. Думал, что это божественная система, раз ее все так обсуждают, а на самом деле она то, что ты описал.
Пиздос, чтобы не смотреть на противный файндер, я в отдельном окне запустил терминал на весь экран и пользовался cd ls. Никогда больше не вернусь на эту хуету.
Пока в винде все работает изкаробки, а на линуксе все, что нужно, опенсурсно и ставиться за пару минут, на макосе стоит 39.99$.
чтобы раскладка была на шиыт альт, мне посоветовали скачать мокропиську от яндекса. Иначе сиди и меняй языки на вин+пробел
Лол блять. Маня проекции. Если в вашей сраной конторе не могут в микросервисы и нормальную масштабируемую архитектуру то это исключительно твои проблемы.
Что такое микросервисы и архитектура? Скорее всего ты нихуя не ответишь на эти вопросы. Микросервисы во первых верхний уровень. Что на нижних уровнях? Опять ты нихуя не ответишь. Какое отношение микросервисы имеют к написанию библиотек? Какое отношение микросервисы имеют к архитектуре вообще? Ты не разобравшись пизданул хуйню.
Перекатывай. А где православная шапка из 2018?
Были же долгоиграющие треды по шарпу, возьми шапку оттуда.
Вот например https://2ch.hk/pr/arch/2016-05-24/res/717891.html (М)
>Поэтому и спрашиваю где посмотреть на хорошие практики кода.
СИКП. Там есть отличные примеры проектирования библиотек. Например написание библиотеки для работы с рациональными числами во 2 главе.
Ты думаешь, я не пытался? Я два дня убил на этот ебучий омнишарп, даже делал свои билды моно вдруг ментейнеры напортачили? - нихуя. В итоге психанул и поставил докер.
Архитектура появляется не в момент написания кода, а во время рефакторинга. Написал код? Перечитай, подумай что можно разделить, может ты из-за сиюминутной надобности навеслал сто строчек кода которые вообще с этим классом слабо связаны?
>Замечательный чат в телеграме.
C#?
>>55504
>С моим уровнем усвоения и понимания скорее всего хуй пойдет sicp. Я тут по поводу Троелсена и метанита бугурчу, а тут sicp.
Он не пересекается с Троелсеном. Попробуй, если не получится отложишь до лучших времен. Почти никому он с первого раза не дается. Нужно перечитать несколько раз. Но оно того стоит.
>Я два дня убил на этот ебучий омнишарп, даже делал свои билды моно вдруг ментейнеры напортачили? - нихуя.
Вот о таком пердолинге на линуксе я и говорю. Поставь шиндошс в дуалбут и работай.
Зачем? Докер работает, нахуй мне винда?
Надо срочно (за несколько вечеров) освежить многопоточность (в основном синхронизацию) и работу с памятью.
Что советуете прочитать?
Мне в голову сходу приходит только CLR via C#, но ее последнее издание было выпущено во времена .NET 4.5 + хотелось бы чтобы-то попроще Рихтера.
Допустим тебе надо написать 2 класса: прямоугольник и квадрат.
Когда можно использовать наследование, а когда нельзя?
https://pastebin.com/qA0j3WUm
Как мне сделать так, чтобы в Windows Forms я мог отправлять ответ из текстбокса по кнопке?
Будет ли оно вообще работать вне бесконечного цикла?
А вообще, этот код с метанита https://metanit.com/sharp/net/3.2.php
Если кому захочется узнать, что на стороне клиента
>Допустим тебе надо написать 2 класса: прямоугольник и квадрат.
>Когда можно использовать наследование, а когда нельзя?
Квадрат от прямоугольника наследуешь, раз квадрат это частный вариант прямоугольника, не?
Пожалуйста.
И почему бы мне тогда просто не использовать статические методы класса/статический класс? Хуй пойми.
В абсраткный класс Enity надо добавить bool isChanged, и чтобы оно менялось при изменении определенных полей в обьекте-наследнике от Enity. Как это сделать? Мб как-то с помощью атрибутов?
Конечно, я могу захуярить сеттеров на каждое свойство, но я ебал это делать - хочется КРАСИВО
Так я против делфи ничего против и не имею. Сам на нем писал, да и вообще, большая доля дотнетчиков.
>>55371
>Тупое поглощение информации ничего не дает.
Видимо это и отличает нормального человека с ЛЮБЫМ образованием от двачера и вкатывальщика.
Поясняю: обучать человека который хоть краем уха слышал, что-то читал - гораздо приятнее.
>>55466
>Какое отношение микросервисы имеют к архитектуре вообще?
По такому вопросу, в принципе становится понятно что ты либо зелень ебаная, либо жирно толстишь. Потому что про монолитную архитектуру и ее противоположность - микросервисную архитектуру, слышал наверное каждый, ДАЖЕ кто НЕ РАБОТАЛ
>>55466
> Что на нижних уровнях
Открываю один маленький секрет: их ЧАСТО просто НЕТ, а сразу голые запросы к хранилищу
В общем случае - event bus.
Я в реальной жизни таких дебилов как ты не встречал, потому могу сделать вывод что ты либо зелень ебаная, либо просто долбаеб.
Ты не можешь реализовать интерфейс в статическом классе, и ты не можешь передавать его в метод в качестве параметра.
Почитай про принцип постановки Лисков и попробуй ещё раз ответить на вопрос.
Спасибо, выглядит полезно.
>Почитай про принцип постановки Лисков и попробуй ещё раз ответить на вопрос.
Почитал. Типо, от абстрактного класса Фигура, например надо наследовать. И что? Наследую я их от одного астрактного класса, методы то все равно одинаковые будут у обоих, например, посчитать площадь или задать свойства ширина и высота
>Конечно, я могу захуярить сеттеров на каждое свойство, но я ебал это делать
Ты охуел? Это и есть красиво!
в мтуси учишься?
Там все ебанулись и устроили эпичную войну с электриками, набегали на треды друг друга лол
>Расскажите, может ли обычный быдлопрограммист вкатиться в асутп?
Легко, писать под асу - это как хеловорды ебашить
Заебись, надо лезть туды, ибо для ебаного айти я слишком тупой
И тут же ты идёшь нахуй, потому что работа с какими-либо другими объектами кроме как с прямоугольником и квадратом не была предусмотрена. Но ты побежал оверинженерить сразу абстрактный четырехугольник наследуемый от класса геометрическая фигура наследуемого от класса фигура, потому что иначе все подумают что я джун.
Нет, либо абстрактный класс, либо интерфейс
ПЕРЕКАТ
ПЕРЕКАТ
https://2ch.hk/pr/res/1355872.html (М)
https://2ch.hk/pr/res/1355872.html (М)
https://2ch.hk/pr/res/1355872.html (М)
https://2ch.hk/pr/res/1355872.html (М)
https://2ch.hk/pr/res/1355872.html (М)
https://2ch.hk/pr/res/1355872.html (М)
https://2ch.hk/pr/res/1355872.html (М)
https://2ch.hk/pr/res/1355872.html (М)
https://2ch.hk/pr/res/1355872.html (М)
https://2ch.hk/pr/res/1355872.html (М)
>про монолитную архитектуру и ее противоположность - микросервисную архитектуру, слышал наверное каждый
Разница между этим примерно как дом из блоков (или кирпичей) строить или монолитный заливать (залитые стены из бетона). Раньше многоэтажные здания строили из кирпичей, сейчас строят сборно-монолитные, но суть не изменилась, все равно нужно провести исследования грунта, правильно спроектировать фундамент, стены, кровлю, и все остальное. Нет разницы, монолитное здание или блочное (кирпичное), все равно нужно проектировать все.
Микросервисы это маркетинговый хайп. Еще в 80-е годы существовали принципы разрабатывать модульные программы, наподобие того что ты подразумеваешь под микросервисами. Код строился из маленьких кирпичиков, которые составляли более крупные модули, и они были независимы друг от друга, каждый решал свою задачу. С хуя ты сейчас это выдаешь за какой то блять прорыв, за что то особенное? Если даже у тебя микросервисы, все равно нужно проектирование, как и в примере со зданиями.
Сами микросервисы должны состоять из абстракций, которые тоже могут состоять из абстракций, которые в свою очередь тоже могут состоять из разных абстракций... Таких слоев может быть сколько угодно. Между ними еще нужен клей, чтобы все соединялось и взаимодействовало. Так вот ты говоришь о мифическом микросервисе, не упоминая как он будет выглядеть изнутри. По сути пускаешь пыль на воздух. Как их делать внутри ты конечно не знаешь. Кто знает, тот не кидается пустыми терминами.
>Открываю один маленький секрет: их ЧАСТО просто НЕТ, а сразу голые запросы к хранилищу
>В общем случае - event bus.
Хуета какая то. Не всегда и не везде логика состоит в одном только походе в базу.
>Еще в 80-е годы существовали принципы разрабатывать модульные программы
>>55893
>Так вот ты говоришь о мифическом микросервисе, не упоминая как он будет выглядеть изнутри
>>55893
> сути пускаешь пыль на воздух
Я после прочтения в очередной раз подумал, бывают ли такие долбаебы в реальной жизни, а потом увидел
>>55370
>Почитай СИКП, вот там уровень проектирования, там инженеры.
И все сразу стало на свои места.
>>55895
>Хуета какая то
Именно это можно сказать про твои "гениальные" аналогии и попытки в течении трех постов выехать на высказываниях в духе"
"ак их делать внутри ты конечно не знаешь. Кто знает, тот не кидается пустыми терминами." при этом без каких либо на это оснований.
такой софт больше не продается от слова совсем
можешь кстати кинуть примеров фиксеров реактора?
я до сих пор сосу хуй с этой прогой
пиши, че надо
упростят жизнь
Анон в каком месте я лажанул?
------------------------------------------------------------------------
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
{
}
}
--------------------------------------------------------------
ОшибкаCS0116Пространство имен не может напрямую включать в себя такие члены, как поля или методы.
ОшибкаCS0117"Console" не содержит определение для "Writeline".
ОшибкаCS0119'Boaroshnik" является тип, который недопустим в данном контексте.
Анон в каком месте я лажанул?
------------------------------------------------------------------------
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
{
}
}
--------------------------------------------------------------
ОшибкаCS0116Пространство имен не может напрямую включать в себя такие члены, как поля или методы.
ОшибкаCS0117"Console" не содержит определение для "Writeline".
ОшибкаCS0119'Boaroshnik" является тип, который недопустим в данном контексте.
Блять, очень страшно, вырубай
1. У тебя метод Main лежит вне класса
2. Язык регистрозависимый, правильно WriteLine
3. Без комментариев. Метод WriteLine в качестве параметров принимает объект, а ты что написал?
Ясно, пойду дальше мучить алкаша.
Пилю учебную игру, а мне кампилятор прописывает в лицо исключением.
Вы видите копию треда, сохраненную 2 апреля 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.