Это копия, сохраненная 14 декабря 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Прошлый >>1040269 (OP)
Не забывайте оформлять свой код https://ideone.com/
https://pastebin.com/
Стоит ли в него сейчас вкатываться?
Не обосрется ли майкрософт в очередной раз с идеей .net core?
>2017
>C#
Ору с необучаемых, вам же сто раз сказали, что дотнет умирает, зачем вы полезли?
В очко своей мамаши поори, даун
Просто Майкрософт за свою историю сделала очень мало проектов, которые взлетели. Взять все то говно, которое было создано в мире .net - где оно теперь? Всякие wcf, wpf, silverlight, c++/cli, winforms, winrt, и.т.д
Почему тут нельзя, как в ньюсаче двачнуть?
с условием типа !String.Equals(Console.ReadLine(),"quit")
или это костыль и есть более элегантные решения?
И ещё вопрос. который нагуглить не получается.
Есть метод, пикрелейтед. Можно ли как-то сделать, чтобы ретурны были только в кейсах, без того нижнего? Сейчас я на него повесил что-то типа оповещения об ошибке чтобы студия не ругалась на его отсутствие, но, например, в каком-то случае мне достаточно то, что свич возвращает, как быть?
Нормально. Только вместо true следует флаг выхода создать более декларативный, типа IsRunning.
Нахуй там брейк, если там ретурн?
Нахуй там брейк, если там ретурн?
Посмотри внимательно, что я в фидле сделал. Если еще раз внимательно посмотришь, то все будет.
Ты нихуя не вставил дефол, обезьяна ебанная. Почитай хотя пол страницы первой статьи в гугле, прежде чем срать тупорылыми вопросами здесь.
Так это ж новый джун-июнь после курсов.
хочу и сру, хули ты пиздишь, тред полумертвый итак
{
WriteParabolaMinX(1, 2, 3);
WriteParabolaMinX(0, 3, 2);
WriteParabolaMinX(5, 2, 1);
WriteParabolaMinX(4, 3, 2);
WriteParabolaMinX(0, 4, 5);
}
private static void WriteParabolaMinX(int a, int b, int c)
{
if (a == 0)
{
Console.WriteLine("Impossible");
}
else
{
Console.WriteLine(-b / (2 * a));
}
Чому в 3 и 4 варианте он мне нули компилирует?
Потому что ты еблан. Делай нормально: метод вынеси в отдельный класс. В конструкторе классе инициализируй переменные итприсваивай из значения полям.
Ой, всё. Даблы, хуяблы же там, а не инт.
Двачую адеквата! И без абстрактной фабрики в тред не возвращайся!
Да это же упражнение, там не весь код можно редактировать.
Можешь сделать предзаказ на амазоне, через 19 дней будет релиз
Где? Я не нашел
>Можно ли как-то сделать, чтобы ретурны были только в кейсах, без того нижнего?
Добавь в switch "default: return 900;"
Разобрался, надо же else if, а не if.
есть while(true) и без слипа он делает 1000000 операций в секунду, что грузит дико проц, если вставить sleep(1), то количество падает до примерно 300-500 и проц не грузит, но мне надо чтобы было 2000-6000 операций в секунду как быть?
Есть смысл перекатываться к вам? Нужно что-то кушать пока получаю нормальную вышку.
Смысл есть. Стэк большой: гейдев, универсальная платформа, веб- формошлепство и бэкенд, толстые клиенты.
Но будет сложно: язык не простой, очень много придется учить и делать, чтобы понять как и что. Положительные моменты: зп и скорость работы кода.
Из сярпа можно перекатиться в JAVA, потому что суть одно и то же - код выполняется JVM, синтаксис похож. Но сярп все- тааки дружелюбнее к ньюфаням.
Одно словосочетание - cancellation token. Гугли.
>Всякие wcf, wpf, silverlight, c++/cli, winforms, winrt, и.т.д
Как то странно ставить вцп, формы и впф в один ряд с сильверлайтом и плюсами для cli.
Мне сказали, что твоя мамаша умирает, но я все равно её выебал.
Антуаны, подскажите, а как при помощи String.Format в готовой строке заменить один блок текста на другой?
Ну например если мне не нужно менять ВСЕ вхождения, а только одно в конкретном месте.
А если это нужно делать на кучу итераций i (0-255). Короче мне сказали именно через Format.String, а как это сделать я не могу понять.
Тебя наебали. Стринг формат ничего не заменяет.
StringBuilder
Что такое EFT?
Могу я прямо из визуал студии отправлять ему код на исполнение?
Где почитать как это делается?
И посоветуйте статью по созданию/обработке JSON запросов из телеграм бота.
1)А как по соотношению вакансии/работники? Хуже или лучше чем джава? Пикрил мой мухосранск и райцентр, джава погуще будет, но там и кокуренция из-за всяких яварашей же?
2)Долго вкатываться до нормальной ЗП? Я планирую через 6-7 лет дропнуть кодерство к хуям вообще
3)Куда вообще копать, чтобы разобраться во всей этой .NET-параше, что зачем и что нужно под конкретные задачи? А то смотришь и глаза разбегаются, какие-то ADO, ASP, хуйня, малафья.
> Я планирую через 6-7 лет дропнуть кодерство к хуям вообще
Нахуя тогда вкатываешься? Делать то, что не будет приносить удовольствия 6-7 лет - нахуй так жить?
Что? Берешь и без задней мысли мапишь запросы в сущности.
> 2)Долго вкатываться до нормальной ЗП? Я планирую через 6-7 лет дропнуть кодерство к хуям вообще
Никуда не копать, ничего не изучать, вообще не вкатываться я серьёзно, если ты не готов этим заниматься всю жизнь - нет смысла начинать
Эта хуйня вообще думает работать?
Эта вижул студио 2017 гигов 30 весит, так что жди дня 2, чтобы все скачалось и с горем пополам установилось
Он использует движок IE, так что сам подумой. Сам юзаю CefSharp.
30 весит, если не знаешь, что тебе надо же. У меня 1.37 Гб.
Зачем на фронте хранить логику бота? На фронте клиент просто ставиться перед фактом о действиях бота и не принять их результат фронт не может.
Я ж написал
>Не хотелось бы к клиенту на js пропихивать логику бота и хранить его данные.
Просто это единственная альтернатива вот этому:
>помимо как в классе/таблице игрока вводить bool/bit IsBot?
которая приходим мне в голову.
Смотря как твои объекты-боты использоваться будут. Можно отдельный массив захуячить, например, где боты храниться будут. Но в чём проблема добавить поле, не совсем понятно.
>Смотря как твои объекты-боты использоваться будут.
Поскольку игра пошаговая, то нужно вести учет текущих ресурсов/параметров обоих игроков в БД. Объекты бота, как и игрока, живут, по сути,
от пост запроса к пост-запросу.
>Но в чём проблема добавить поле, не совсем понятно.
Да как то топорно это. Я же не буду делать по отдельному игроку-боту для каждого игрока, который играет в сингл. С другой стороны, если бот в БД будет в таблице игроков, то нужно вводить возможность игрока участвовать одновременно в N играх, значит ресурсы и параметры будут однозначно определяться игрой И игроком, а не только игроком, но это по сути будет функционал только для одного игрока.
но это по сути будет функционал только для одной-единственной записи игрока-бота в БД*
Я бы подождал. Никто не мешает пилить новые проекты на ASP.NET MVC, по нему умай доки.
Asp.Net Core менее изучен коммунити.
Вопрос насчет EF. Есть 2 объекта: А и Б. А имеет внешний ключ на Б - БiD. Есть объект В, первичный ключ которого - кластеризованный ключ из AiD и БiD. Всё здорово , в классе В вставляю 3 свойства с атрибутом Key, 2 из которых еще имеют атрибут ForeignKey на соовтетствующие таблицы, вот только как мне теперь в А добавить коллекцию объектов В? Ведь В определяется не только объектом А, но и Б. С другой стороны, в объекте А есть внешний ключ на объект Б, его как то можно задействовать?
private void button1_Click(object sender, EventArgs e)
{
int[,] arr1 = new int[5, 5];
Random rnd = new Random();
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{ arr1[i, j] = rnd.Next(-10, 10); }
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
dataGridView1.Rows.Cells[j].Value = arr1[i, j];
>System.ArgumentOutOfRangeException: "Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
}
}
Почему не работает? Ошибка.
А можно размерность массива указать как-нибудь по-другому, а не числом, ну как метод .Length
Только вот в двумерном массиве он общее число элементов возвращает.
почему-то неправильно скопировалось. я не шучу, блять
там вот так:
dataGridView1.Rows.Cells[j].Value = arr1[i, j];
и все-равно ошибка.
в ходе отладки посмотри, что у dgv с рядами и столбцами. может, ты когда его создаешь, количество рядов не указываешь или указываешь не то
Понял. Спасибо.
А как сделать чтобы он сам количество строк и столбцов подбирал исходя из данных которые передаются в датагридвью на вывод?
у dgv есть свойство DataSource. в древности, когда еще на земле жили динозавры, а ADO.net была ходовой ORM, данные из БД запихивали через адаптеры в DataTable, а потом скармливали DataSource'у dgv. не то через каст, не то у DataTable есть свойство DataView, короче, как то можно.
Кек, три года назад писал парашу на ADO.net для Deloitte потому что EF выдает "тормозной код" по мнению архитекторов Deloitte
Мы уже в мвп вышли, какой надуй обосретесь и из-за чего вообще?
И мы "вам перезвоним" уже не прокатыает у людей с опытом работы 5+ лет.
Рил толк.
Есть список объектов разных типов, каждый из которых реализует один общий интерфейс и может реализовывать ещё какие то известные мне интерфейсы, неся дополнительный функционал.
Мне нужно перебирать все объекты, вызывая функционал общего интерфейса с возможными изменениями от дополнительных.
Например, пусть это будут команды:
https://pastebin.com/BkCgYyET
Пока что в голову пришли только два варианта:
Проверять реализацию интерфейса с помощью is - в целом норм, но не впихнуть особую обработку для команд, реализующих только базовый интерфейс.
Или хранить переменную для типа команды - высока возможность проебаться при сильном увеличении количества команд.
Может есть вариант получше?
Всё зависит от твоего if(bla-bla-bla)
Можно ещё один общий интерфейс сделать который и будет делать твой if(bla-bla-bla) проверять, а там уже дёргать анусы или нет
Именно варианты if(bla-bla-bla) меня и интересуют. Пока что выбираю из
if(command is IAnotherCommand)
и
if(command.commandType == TYPES.another_command)
Хочется подобрать вариант, при котором будет труднее проебаться, плодя кучу классов.
>Можно ещё один общий интерфейс сделать который и будет делать твой if(bla-bla-bla) проверять
Но для этого где то всё равно необходимо хранить переменную с типом команды?
>>1076562
>visitor pattern
Меня скорее интересовала именно реализация, но спасибо. Так нагуглить примеры будет проще.
Комманды? Делай до конца Pipeline.
Смотри Mediatr фреймворк с его PipelineBehaviour.
Command -> GenericPipelineBehaviour -> SpecificPipelineBehaviour -> итд
Лучше варианта нет.
System.Reflection
public static connectionCreator: (url: string) => signalR.HubConnection = (url) =>
new signalR.HubConnection(url)
const connection = connectionCreator('url');
connection.start();
код с прода вообще
Лол, у нас бета есть в одном проекте.
>2017
>время однострочных пакетов с десятками зависимостей
>эпоха когда чтобы узнать длину массива нужно скачать пакет
>не иметь пре-альфа на продакшене
4 девелопера на проекте. Не галера кстати.
Есть легаси-говно под .net framework 4.6, которое работает в mono 5.2 в линуксе на arm уровня малинки (я его саппорчу), там полностью managed код, т.е. кроссплатформенный.
Есть свежее приложение под asp.net core (его пилят отдельные люди).
Мне нужно сделать библиотеку, которая будет использовать классы из моего легаси говна, и будет использоваться в свежем приложении.
Вопрос в следующем: какой тип проекта выбрать? Нужна class library, но какая из них? .net core, .net framework, .net standard?
И где об этом есть доходчивое чтиво?
Стандарт
Стандарт, но смотри, чтобы все используемые возможности входили в API.
>легаси-говно под .net framework 4.6
нихуя ты модный, как хуй подводный
мимо поддерживаю проект на .net 4.5
Ахаха, поддерживает он. Перекот делается через проперти.
Делал на формах. добавил некоторые элементы. Случайно шлепнул по ним и в итоге в коде создались классы этих форм, а они мне не нужны в коде. Как их удалить оттуда? Просто удалить их не могу, ошибка появляется.
либо в Form1.designer.cs, либо в дизайнере в свойствах формы с списке событий убираешь подписку.
А какое свойство подгоняет размер самого датагридвью под размер данных внутри? Можно так сделать?
dock только расположение датагриидвью меняет на форме. походу не он.
Или внутри equals сравнивать Tostring() каждого из объектов, вместо того чтобы сравнивать каждое поле объекта по отдельности?
он, кажется, флаговый. ты можешь выделить верх, низ, левую, правую стороны и центр.
{
if (a == true) return true;
else if (a == false) return false;
else return !true && !false;
}
bool F(bool a)
{
\tif (a == true && a!=false && !a!=true) return true;
\telse if (a == false && a!=true&&!a!=true) return false;
\telse return !true && !false;
}
Пофиксил тебя
Пусть есть два фрагмента кода:
Первый вариант:
если (ты_аутист) {
закинуть_тебе_за_щеку();
}
если (твоей_мамке_меньше_35) {
дать_на_ротан_твоей_мамаше();
}
Второй вариант:
если (ты_аутист) {
закинуть_тебе_за_щеку();
}
иначе, если (твоей_мамке_меньше_35) {
дать_на_ротан_твоей_мамаше();
}
Пусть твоей мамке 30 лет и ты у неё самый умный. В первом случае второй иф всё равно исполняется и твоя маман выполняет привычное для нее дело. Во втором случае первое условие фейлится, управление не переходит в ветку else и твоя сочная мамка скучает без дела.
>Зачем нужно реализовывать Equals для класса если можно рассчитать хэшкод и сравнивать уже его. Это же побыстрее, не?
Зачем получать элементарное математическое образование если можно сразу садиться и хуярить код. Это же побыстрее, да? гугли коллизии, неуч
>Или внутри equals сравнивать Tostring() каждого из объектов, вместо того чтобы сравнивать каждое поле объекта по отдельности?
Или разбить тебе ебало за такой подход к сравнению. Серьезно, как можно таким быть? Нахуя мне конвертить объект в строку если можно напрямую сравнить поля любой логикой блять? Пиздец, ты наверное из пыхапэ или жс-а пришел, верно?
Такие вопросы допустимы если ты шкальник или первокурсник, иначе - говори адрес - приеду, разобью тебе ебало.
Да, я выделю и датагрид растягивается до краев самой формы и занимает одно из положений. А я хотел чтобы он подстраиваться под размеры матрицы которую выводит.
Но ладно. Походу это невозможно, так что другой вопрос .
Как сделать чтобы поля ячеек растягивались под размер дата гридвью? Там есть параметр автосайз но только для ширины. Т.е. ячейки растягиваются в ширину, а снизу серая пустота остаётся. Как её убрать?
Хуя как ты легко взрываешься.
Я слышал про коллизии, думал что их можно как-то избежать
Как пишут тут, например
https://stackoverflow.com/questions/7968753/probability-of-getting-a-duplicate-value-when-calling-gethashcode-on-strings
Вероятность коллизии очень большая, то есть они гарантировано будут возникать с некоторой вероятностью независимо от алгоритма хэширования.
По поводу второго вопроса вообще нихуя не пояснил.
Какая разница буду я сравнивать строковое представление всех данных единожды или то же самое только по отдельности.
По первому вопросу ты, кажется, понял, почему неправ.
По второму вопросу - во-первых, у тебя реализация ToString() может быть какой угодно. Например, два абсолютно разных Васяна Ерохина могут в ToString() записываться как "Васян Ерохин", хотя это совершенно разные люди. Нет никаких договоренностей на тему того, что пишется в методе ToString(). По умолчанию он вообще возвращает GetType().ToString(), то есть если он не переопределен, то будет совпадать для разных объектов одного типа, это дефолтное поведение.
Но даже если бы метод ToString() возвращал какой-нибудь JSON, в котором сериализован весь объект, то для того чтобы создать такой JSON тебе всё равно придется пройтись по всем полям/методам класса (получить значение - добавить в итоговую строку). А раз ты будешь по ним проходиться, то почему бы сразу их и не сравнить, не плодя лишних строк.
мимо крок
>Какая разница буду я сравнивать строковое представление всех данных единожды или то же самое только по отдельности.
Ох ебать ты дебил.
js убивает мозг
никак, в winforms стилей из под коробки нет. только самому с событии менять цвета.
Ты многое пропустил.
А на чем надо делать?
Но судя по задаче, тебе нужно хранить стейт, так что база.
По привычке будешь делать ассемблерные вставки и использовать unmanaged code. Ещё с кодстайлом могут быть проблемы. Мимо тоже из системного программирования.
Подводные- скорость сборки проектов в разы больше, отсутсвие ебли с компилятором, наличие божественного решарпера.
Convert.ToInt32(t2.Text) = Convert.ToInt32(t1.Text) % Convert.ToInt32(t2.Text);
Почему выдаёт ошибку:
the left-hand side of an assignment must be a variable a property or an indexer
Ну так в ошибке же написано все. Слева переменная должна быть, а у тебя там метод.
Мне очень интересно, как ты думал, что это сработает?
Хотя вероятность 99%, что писал хуйню, не думая.
Ну так замени то, что слева от знака "равно" на просто t2.Text. Зачем ты там конверт то воткнул?
Пожалуйста, конечно, но что ты пытаешься написать, не зная таких элементарных вещей?
1) Из мэйна не видно методов этого статичного класса
2) Не знаю как в обработчике событий обратиться к тому элементу, к которому добавляю весь этот функционал
Ну и вдовесок вопрос как прикрутить управление с клавиш к самой форме. Чтобы независимо от того на каком элементе фокус был при нажатии на клавишу вправо нужный элемент двигался вправо, вот. Не серчайте за язык, я гуманитарий
Даны целые числа K и L. Если числа не равны, то заменить меньшее из них остатком от деления большего на меньшее.
У меня только на этом проблема была ...
> 1) Из мэйна не видно методов этого статичного класса
Код нужен.
> 2) Не знаю как в обработчике событий обратиться к тому элементу, к которому добавляю весь этот функционал
А для чего, по твоему, в твой обработчик события передаётся объект sender? Скастуй его в нужный тебе тип.
Извини, бро, но я тугодум.
С 1 проблемой разобрался. С кастом не разобрался. sender это же объект, который вызывает событие. У меня, допустим, это кнопка. А клиентсайз мне нужно померить у формы :-/
Чтобы они раскрывались по клику. Как на картинки.
>Пилит кто опенсорц на C#?
А по какой теме? В блокчейн-разработку например советую с этого вкатываться:
https://github.com/stratisproject/StratisBitcoinFullNode (Bitcoin на C#),
https://github.com/MetacoSA/NBitcoin (либа для Bitcoin на C#),
https://github.com/Nethereum/Nethereum (либа для Ethereum на C#). Всё хорошо описано и закоменчено, вкатываешься на раз-два, но это блокчейн-проекты, поэтому неплохо бы иметь базу.
>Как вообще на гитхабе искать проекты, в которые легко вкатиться ньюфагу без тонны мануалов?
Спаршивать ИТТ, уточняя тематику.
>Спаршивать ИТТ, уточняя тематику
Да, моя оплошность. Интересует в первую очередь десктопная поебень - утилиты, софт, возможно боты и прочее.
Есть у кого-нибудь пример на WPF с применением MVVM, где будет ни одна коллекция объектов, а несколько, взаимодействующих друг с другом, ну многооконное приложение?
>ну многооконное приложение?
ну и приложение ни с одним окном. А с добавлением редактированием и прочей поеботой.
быстрофикс
https://github.com/cztomczak/cefpython
Кто-нибудь работал с этой библиотекой? Какие подводные?
https://github.com/cefsharp/CefSharp
В связи, что все папулярные браузеры сохранют у себя на серверах всю историю о юзере, почему еще вы не запилили браузер на этой штуке, который будет без зондов?
С помощью данной штуке, можно как-то написанным кодом, управлять автоматически сайтом например, кликакать по определенному css селектору, заполнить форму и т.д?
Можно ли из этой cef сделать без гуй браузер, так называемый headless browser?
Использую на проде для интеграции сайта с древнем легаси аппликейшном. Никаких проблем.
Так я весь блок удалю и просто ничего не работает.
сразу говорю, в шарпе не шарю
есть экзешник, знаю что разрабатывался на шарпе в висуал студии.
задача его декомпилировать чтобы получить читаемый код.
погуглил - нашел несколько популярных софтин - ни одной из них не удалось это сделать. пишет типа не является модулем дотнета или как-то так... я так понимаю это защита такая?
как узнать какая и есть ли шансы ее ломануть?
Скорее всего там использовалось что-то очень низкоуровненове, так что в шарп ты это назад так просто не восстановишь.
>погуглил - нашел несколько популярных софтин - ни одной из них не удалось это сделать. пишет типа не является модулем дотнета или как-то так... я так понимаю это защита такая?
>
Какие софтины использовал? Там есть у сборок флаг на анти-реверс-инжиниринг, с парочкой таких программ может такое выдавать. Фиксится редактированием этого флага в любом HEX-редакторе, есть даже видео по использованию такой хуйни. Если это не помогает, то это не код для .NET платформы.
юзал ILspy, .NET Reflector 9, JetBrains dotPeek.
опредялялки упаковщика (Detect It Easy и RDG Packer Detector v0.7.6) указывают что это matcode compressor 2.19 и 2.17 соответсвенно.
нашел видос типа как выковырять приложение с него https://vimeo.com/54228188 , не помогло. все так же не открывается ILspy, .NET Reflector 9...
А ты на самом деле ковырни его каким нибудь hex editor'ом и посмотри, может там вовсе и не .net сборка, или она, но упакованная
http://geekswithblogs.net/rupreet/archive/2005/11/02/58873.aspx
выполнил код по ссылке:
This is NOT a valid CLR File!
хуй его знает что это за апликуха тогда.. знаю что писалась в visual studio, больше ничего не знаю.
кстати, открыл в хексе, там нашел упоминание mpress 2.19
ну да, проект сисярповский. так если у тебя доступ к исходникам есть, зачем тебе его вскрывать? Ребята не стоит вскрывать этот код. Вы молодые, хакеры, вам все легко. Это не то. Это не Stuxnet и даже не шпионские программы ЦРУ. Сюда лучше не лезть. Серьезно, любой из вас будет жалеть. Лучше закройте компилятор и забудьте что там писалось. Я вполне понимаю что данным сообщением вызову дополнительный интерес, но хочу сразу предостеречь пытливых - стоп. Остальные просто не найдут.
это скрин, нет у меня исходников.
Ебать анон, у меня тоже был экзешник дотнетовский, я даже как-то не думал его декомплить, так как не думал что это так просто, и ебался с костылями. А тут увидел твой пост и решил попробовать этот софт, и всё получилось. Спасибо тебе братишка, вот это не ожидал тут на такое озарение наткнуться.
Добавь модификатор 'public'. По умолчанию методы - приватные.
>>1079530-хакир
Я вкатывался лет пять назад, насколько мне известно ничего толком не поменялось. В плане функционального программирования там всё примерно как в Scala, но только немного хуже. Ленивость языком поддерживается через попецкий, синтаксис Ocaml древний, документация убогая... Написал пару ФРАКТАЛОВ, сделал несколько десятков заданий из какого-то учебника и забил.
Работы, разумеется, нет, хотя пять лет назад майкрософт всем обещали успешно вайти, типа у них научный отдел уже ни на чём, кроме F# не пишет.
Из чисто академического интереса наверное ML попроще. На F# можно писать как на ML, это экономит время на поиск IDE и компилятора.
Из чисто практического интереса C# не сильно хуже в плане функционального программирования, правда, там синтаксис не ортодоксальный и оптимизации хвостовой рекурсии нормальной нет. Если хочется чего-то эдакого, но на хаскель не тянет, то вкатывайся в Scala.
вроде распаковал и успешно запускается после этого.
Detect It Easy говорит теперь что это Microsoft Visual C/C++ (и раньше где-то проскакивало). Как такое декомпилить?
Никак, это unmanaged code. Такой ты только в ассемблер сдекомпилишь.
Почему ты вообще решил, что он дотнетовский?
Попросили меня тут недавно написать програмулину под windows, которая будет, в принципе, простейшим редактором CRUD.
Ну я, недолго думая, по студенческой памяти взял WinForms + EF6 + C#. Ну и это пиздец, эта "ORM" даже не умеет в откат изменений из коробки, приходится перебирать все измененные сущности и им менять статус, после чего перезагружать данные в биндинг. Соответственно, вопрос - что это за хуйня, когда даже обосанный веб с их ангуляром делает биндинги и работу с сущностями и обновлением интерфейса куда проще?
Вопрос второй - на чем на самом деле надо писать такие круды, чтобы было всё заебись? что выберет сейчас анон для такой задачи?
15 связанных друг с дружкой табличек, нужен фреймворк для быстрой разработки crud под эту БД, который запускается под windows, ну и там, нормальные манипуляции с сущностями, типо откатить всё/ откатить только одну сущность / сохранить только ее / сохранить весь изменный набор данных
Хуиту несешь, EF умеет в откат изменений. Хочешь полностью контролировать процесс - бери, сука, и пиши свои хранимки с begin try, begin tran; commit tran, begin catch.
1. Timer.Start сбрасывается каждый раз при прикручивании очередного хендлера
2. Не знаю как сбросить все хендлеры с Timer.Tick. Нагуглил что-то, но оно не работает.
3. Не знаю как динамически создавать такие же объекты, чтобы удлинить змейку и при этом, которые бы следовали один за другим. Может быть вбить их в List<Button>?
> EF умеет в контроль изменений
Ну, допустим, вот:
https://stackoverflow.com/questions/5466677/undo-changes-in-entity-framework-entities
>
> case EntityState.Modified: entry.CurrentValues.SetValues(entry.OriginalValues); entry.State = EntityState.Unchanged; break; case EntityState.Added: entry.State = EntityState.Detached; break; case EntityState.Deleted: entry.State = EntityState.Unchanged; break;
> сделой сам с хранимками
Блядь, я не спрашиваю про велосипедостроительство, я спрашиваю, какие возможности есть с уже готовыми транспортными средствами.
Какого хуя у меня есть db.SaveChanges();, но нету db.rejectchanges. Что за спермоклоунада.
if (a.b != null && a.b.c == something)
или выдаст NullReference?
>за исключением того, что если x имеет значение false, y не вычисляется, так как результат операции И — false независимо от того, какое значение имеет y. Это называется сокращенным вычислением.
https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/operators/conditional-and-operator
Помогите сделать регулярное выражение.
Есть строка, в ней одно слово, допустим "switch", мне нужно посчитать, сколько раз после "switch" повторяется слово "do". Именно после первого раза, остальные не интересуют.
Однозначное распознавание говнин, которые тебя окружают - актуально и не затащить не возможно.
Купи курс ITVDN на торренте. Либо глянь Express на их официальном канале (но я не смотрел). Там все на понятных ассоциациях объясняют. Я это тебе КАК ГУМАНИТАРИЙ говорю
>>1081050
Ну такое себе. Там же совсем для даунов поясняют. Попробуй лучше это:
https://professorweb.ru/
https://metanit.com/sharp/
Лол, тут нормально объясняют, если шарп - твой первый язык программирования. Албахари уже для более опытных, которые и шапку треда могут прочитать хотя бы. Курс ITDoVN - просто пушка, особенно урок по событиям, где тебе полчаса объясняют, как выглядит иконка event в VS.
Албахари с их ‘Сярп вкратце’ лучше, чем Троелсен. Инфа сотка.
>Xamarion'ом есть ли смысл пользоваться
Это в принципе единственное чем имеет смысл пользоваться для мобильных приложений
jQuery
Книжки адама фримена, Visual Studio Code
Если нужны формочки, то SharpDevelop
Программа хранит метаданные книг в запароленной БД SQL Server Compact Edition.
Теперь о том как работает загрузка книг:
1. Загружается по https зашифрованная книга в формате epub
2. epub (это zip архив с html "сайтом" внутри) распаковывается и каждый из файлов архива шифруется с помощью ManagedOpenSsl (https://github.com/openssl-net/openssl-net) - это следует из наличия ManagedOpenSsl.dll и заголовка Salted в начале каждого файла (http://justsolve.archiveteam.org/wiki/OpenSSL_salted_format). Файлы потом пишутся на диск в AppData c сохранением имён и структуры папок.
3. При чтении открывается шифрованный шайл, дешифруется и отрисовывается читалкой.
Так как мои попытки все это дело деобфусцировать не привели к какому-то успеху, я подумал что можно скомпилировать ManagedOpenSsl библиотеку самому, благо сорцы есть, и подсунуть читалке. В случае успеха добавить логирование, а после определения точек вызова заменить код шифрования/дешифрования в либе на пустышки чтобы на диск писались файлы как они есть. Сбилдить я ManagedOpenSsl сбилдил, но читалка отказывается стартовать с моей либой.
Аноны, подскажите что тут можно сделать?
Может как-то перехватить открытие базы данных? Все данные из распакованного epub архива доступны, поэтому при получении пароля дешифрования я в принципе и сам могу расшифровать.
Цель всего этого - получение книг в epub т.к. хочу читать на Kindle а не в их убогой читалке.
Думал идти со стороны сети, но при использовании Fiddler и прочих перехватывающих proxy отказывается даже заходить в аккаунт, через WireShark перехватывает, но выделить что-то нормальное тоже не вышо.
Запили какие-нибудь кластеризации.
Прямая ссылка: https://c.bookwalker.jp/ex/pcviewer/BOOKWALKER_for_Windows_1.2.9_eef2a1e7bb37daf73e9ad59f99860ec9.exe
Ссылка на страницу для скачивания: https://global.bookwalker.jp/info-u-pc/
Как бесплатно получить тестовые книги:
1. Зарегистрировать аккаунт здесь: https://member.bookwalker.jp/app/03/entry/new , нужна только почта.
2. Открыть поиск по слову SAMPLER: https://global.bookwalker.jp/search/?word=SAMPLER
3. Скачать любую из доступных книг.
4. Установить и открыть приложение.
5. Файлы книги появятся в папке C:\Users\USER\AppData\Roaming\BOOK☆WALKER for Windows\contents\BOOK_GUID.
Вот у нас есть класс, в котором методы и автоматические свойства. От этого класса наследуются три других класса, в должны быть те же свойства, только свои. Методы в первом классе используют автоматические свойства этого класса. Как сделать без переопределения методов в производных классов ссылку на свои свойства в каждом из классов? По типу
class first{ void Dosmth(){ тело метода с использование свойств} int x{get; set;} int y{get; set;}
class second:first{ int x{get; set; int y{get; set;}
Типа свойства те же, но для классов они разные и используются в те же методах для всех классов. Буду признателен.
Делаешь виртуальные проперти и оверрайдишь в дочерних, если я тебя правильно понел.
Вот спасибо тебе, братишка! Добра!
Какой вопрос такой ответ.
Двачую вопрос. Интересует разработка десктопного говна и биоинформатика (но второе боюсь не по теме), был вариант сделать аналог боинка для распределенного вычисления протеинов, но это дохуя работы и значимость хуй обоснуешь.
А как сделать красиво?
AllowUserToAddRows
Я кроме как через несколько циклов придумать не могу
У тебя есть строка и слово? В string есть indexof, возвращающий индекс, если я правильно тебя понял
Надо: Сделать абстракцию вида Stream, через которую можно читать данные из HTTP
Допустим есть интерфейс для http HttpListener
Уточню. Нужно при изменении Position потока отправлять реквест с Range, ну чтобы в стриме был поиск
>плюсы
не на java
не тормозит
занимает 50 мегабайт, а не гигабайт оперативной памяти
нормальный интерфейс
есть все функции
>минусы
их нет
List<MyClass> list = new List<MyClass>();
MyClass test;
list.Add(test);
Затем я хочу менять что-то в test чтобы в цикле который перебирает этот лист изменения подхватывались, но если тупо менять переданный test, то это не поможет. Хотя я думал что значения передаются по ссылке для ссылочных типов. Костылем стало вот это
return (MyClass)list.First(x => x.Name==name);
если редактировать это значение, то все работает как я хочу, но мне не нравится этот костыль и я хочу знать как сделать правильно?
Почему при Add в класс добавляется не ссылка на объект?
В каждом вопросе может быть несколько правильных ответов.
Туда ли ты зашел, байтоёб.
Будет ли профит, если на такую страницу данные подгружать асинхронно с async/await?
Примерно так:
Task<Data1> data1 = DataContext.GetDataAsync();
Task<Data2> data2 = DataContext.GetData2Async();
...
Task<Data10> data10 = DataContext.GetData10Async();
и затем, дождавшись загрузки Task.WaitAll()'ом вывести данные на вьюху.
Не будет. Узкое горлышко - всегда БД. Если нужно быстро вернуть данные по ключу, бери redis. Если на фронте ожидается hson, а не view, бери монгу или постгре. В остальных случаях, делай индексы по бд, если не помогает, разделяй бд на две и проч.
Пиздос, ты даже сфоткать нормально не смог.
дальше сам
net
Поддерживает, но о подсветке синтаксиса (например тупла) можешь забыть.
Awesomium.Core.dll
Awesomium.dll
Awesomium.Windows.Controls.Design.dll
Awesomium.Windows.Controls.dll
Awesomium.Windows.Forms.dll
Как всегда, сразу после поста всё находится. Отбой.
Я сам прихуел с такого расклада. Главное, чтобы корпоративные учетки не позакрывали, иначе нам пiзда. А щас - обмазывайся vpn.
На пример это когда есть 2 окна, одно полупрозрачное и всегда рисуется поверх другого, так вот мне нужно чтобы кликая на это полупрозрачное окно оно не реагирует на мышку, а фокус получает то что находится за ним.
Хуй знает, анон. Я бэкенд пишу.
Перехватывай фокус на первом окне и в коде фокуси второе. По другому хуй знает как.
Перешь исходники. запускаешь их в нужной среде в режиме отладки и доходишь до того места где оно тормозит. Смотришь какой код в данный момент исполняется.
Исходники есть, вытащенные васяном. Остального нет.
Бесплатных нет. Из годных- инфрагистик, сикфьюжн, телерик, девэспресс.
Оказалось все куда проще.
Через WinApi делаешь
SetLayeredWindowAttributes(handle, 0, 255, LWA_COLORKEY | LWA_ALPHA);
и все, окошко прозрачное все и пропускает через себя фокус.
>>1086084
dotTrace тебе в помощь, сделаешь снимок работы программы, а затем будешь видеть сколько какая функция % скушала от общего числа работы.
К примеру недавно оптимизировал с помощью нее одно приложение где изначально в целях оптимизации использовали Parallel.ForEach в очень многих местах, но оказывалось что в методах где это использовалось 70% времени уходило на обработку данных с помощью этой параллельности, при том большая часть занимала блокировки и смена контекста. Но стоило заменить их на обычный foreach, как обработка данных в цикле упала до 25%. Т.е убрав изначальную "оптимизацию" удалось убрать из метода 45% бесполезной работы.
>>1086366
Тут вопрос стоит зачем тебе это? Если нравится прогать то C# выглядит чуть более лучшим кандидатом.
Если ты хочешь денег, то можешь даже не тратить время. Синтаксис языка ты можешь и выучишь на неделю, но для работы у тебя уйдут годы, так как есть масса ньюансов которые постигаются на практике, а без этого на работу выше 25-35к не попасть, а на работе за 25-35к не познать, так как задачи там другие.
https://pastebin.com/z6X6x4V8
Когда асинхронный код выполняется внутри метода, от вызова асинхронной операции до await'a, там ещё понятно - посылаем команду на устройство i/o, она асинхронно выполняется, а мы просто дожидаемся ответа.
Но как происходит кода из примера? Там при компиляции внутри цикла проверка постоянно происходит что ли? По любому же как-то проще это делается.
А почему бы и нет? После await идет возврат в мейн, счетчик пошел -- и/о завершилась -- пошел вывод на консоль (там же continuation создается, и продолжается выполнение твоего асинка в её контексте) -- континуация завершилась и пиздец -- счетчик досчитал -- ридлайн
I need to go deeper. Не могу увязать эту концепцию с той средой где выполняется код. Код ведь потом в CIL преобразуется, и, в итоге, в машинные инструкции. Вот как можно в одном потоке со стеком, выполняя инкрементацию в цикле, внезапно получить команду на вывод строки от асинхронно выполнившейся операции?
Про стейт машину, которая в CIL'е создаётся прочитал, но всё равно непонятно как там это событие вкорячивается в стек.
>Вот как можно в одном потоке со стеком, выполняя инкрементацию в цикле, внезапно получить команду на вывод строки от асинхронно выполнившейся операции?
Потому что твой ReadAsync(hui) выполняетя в контексте континуации (когда ты ебанул await идет тупо ретурн в мейн) и хуй клал на твой поток в мейн - в момент завершение эвейт происходит возврат выполнения кода в его точку. До чего там твой цикл успел к этому моменту дотикать - ахуйевознаит.
Смысл-то этой хуеты был чтоб не ебаться с многопоточностью при отрисовки гуя, например - эвейтнулся и тут же возвращается управление, гуйня не тормозит, эвейт выполнился - тут же перехватываем выполнение и херачим дальше в контексте континуации.
В догонку
Then, we are awaiting on the factorial finding function. The moment the await is encountered during the execution, thread goes to the calling method and resumes execution from there. Here in our case, the counter loop, and takes the next number. The awaited code is executed using TPL as its task. As normal, it takes a thread from the pool and executes it. Once the execution is completed, the statements below the await will be executed.
Открыл проект - консольное приложение. Пытаюсь его отладить. VS предупреждает, что я запускаю релизный бинарник. Но у меня везде стоит DEBUG, я даже не компилировал релиз. Посему и в процессе отладки он не читает содержимое большинства переменных. Что за нах?
Его не это интересовало - понятно что асинк в итоге в тред-пул улетел. Его интереовала, каким образом таска после завершения эвейта прерывает цикл и делает вывод в консоль.
Причем тут гуй?
Там продолжения через SуnchronizationContext выполняются в гуи-треде по очереди
Мне нужно, чтобы в консоль выводился текст из файла и считались в нем пробелы. Где тут ошибка?
Каждый вызов Read() переводит курсор в файле на следующую букву, запихни его в вайл, остальные убери
Ну если убрать иф, то все работает. Но мне то нужно, чтобы еще пробелы считались.
char huynya = (char)read.Read();
Console.Writeline(huynya);
if (huynya == ' ')
{
spacecount++;
}
Спс. Теперь все понял.
И еще где можно надыбать современный веб-проект на неткоре, просто чтобы структуру глянуть? У нас все весьма своеобразно было из-за особенностей шарпоинта
>2017 говно в процессе допиливания.
А в чем проблемы?
Сам перекатывался на новую студию ибо заебало нюгеты постоянно ставить, никаких проблем вообще не испытываю.
Хочешь фриланс - ебашь на выхе\js\питоне.
На шарпачах только серьезные проекты, их хуй на бирже найдешь. Только по рекомендациям\знакомым.
Мутишь свою .dll-ку, пилишь хуки на что хочешь (можешь использовать Detours), инжектишь в эту хуйню и хукаешь
https://github.com/sdigi/VkDockSearch/blob/dev/VkDockSearch/Form1.cs
С async сейчас в мастере, но там вызов один раз, типа в принципе возможно в несколько таких асунков запустить?
>>1087686
>>1087653
https://github.com/sdigi/VkDockSearch/blob/master/VkDockSearch/Form1.cs вот с асунк но тут типа один отдельный поток, а хотелось указывать количество потоков на них распределять диапазоны
Как-то так
async void Foo()
{
int threadCount = 10;
int begin = 10, end = 20;
var wait = new SemaphoreSlim(threadCount);
for (; begin < end; begin++)
{
await wait.WaitAsync();
Bar(begin);
wait.Release();
}
}
async void Bar(int num)
{
}
Алсо, в твоем случае проще просто использовать Parallel.For
https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.parallel.for?view=netframework-4.7.1
Спасибо, годные сайты. Но всетаки мне нужно что-то по проще..по типу Параграф - вопросы-ответы.., Параграф - задачи, ответы..
Спасибо большое! Я первую мелком глянул - то, что мне нужно. Ща сяду изучать
Можно с бд взаимодействовать напрямую- гугли sql command. А можно опосредованно- через EF. Гугли entity framework.
как мне в WnForms проекте реализовать
активацию одного из элементов управления
при нажатии на любую кнопку
НЕ ДЕРЖА ВИНФОРМУ В ФОКУСЕ (в этом вся загвостка )
т.е у меня форма в таск баре висит и ждет пока кто то клацнет мышью, после начинает работать.
Буду благодарен за ответы
Джентльмены, что я делаю не так при попытке захостить asp mvc сайт у себя локально через IIS? В панели управления включил все компоненты IIS, в вижаке добавил профиль публикации. пробовал выбирать как web deploy, так и file system. потом в панели управления IIS добавлял новый веб сайт, указывал ему путь на папку с C#-проектом, и как то один раз заработало, но я не понял как и не могу реконструировать. при переходе по url в хостсах забил себе переход с url на 127.0.0.1 говорит, что такой URL не найден, dns name not resolved. пробовал копировать настройки с существующего сайта - не работает. я не пропустил в своём описании никаких шагов?
Это который?
Русик для лахов.
анончик, я знал, ты меня не подведешь, сяп
Есть окно wpf на нем с помощью popup выводится пользовательский компонент. Необходимо чтобы этот компонент растворяется по всему экрану, но вместо этого он оставляет внизу небольшую часть. Если указывать отступ с помощью vertical то эта полоса уменьшается, но появляется отступ сверху.
Сам popup устанавливается через родительский грид, т.е popup.height = window_name.ActualHeight, тоже для weight. Если устанавливать их пиксилями, то все равно не помогает. Возможно, потому что размер в дизайне 2678х1363, а сам экран 1378х768. Точно размеры не помню
В гугл
>хорошо написанные проекты на гитхабе с REST API на шарпах
Хороших я не видел. Можешь загуглить RestSharp. Еще обычно делают отдельные объекты для запроса и ответа. Все это очень перегружен и множит лишние сущности.
Можешь посмотреть как сделал я. Я вроде белый человек.
https://github.com/qril/microscope/blob/master/microscope/PeriscopeClient.cs
Может кто разъяснить что сия конструкция должна делать в итоге?
int[] array2 = Array.FindAll(array, 2);
Так ведь я не получу второй массив из двоек из первого массива?
это ссылки на ValueType, которые видимо нельзя изменять. тупая идея. можно из метода вернуть ссылку на структуру, например ссылку на элемент массива, который можно потом изменить
int[] array2=array.Where(num=>num==2).ToArray();
Ну и ваще с Array никто не работает, юзай листы.
Благодарю, учусь же. Знать не помешает, наерное.
Вы застряли где-то в 1965 году, сэээр.
Будьте добры изучите безымянные функции наконец.
И уменьшайте количество изменяемого состояния везде, где только можно.
BaseC instance = new DerivedC();
BaseC instance = new BaseC();
тут?: https://pastebin.com/SSvGD7ne
Попробовал читать файл сборки и скармливать его Assembly.Load() вместо Assembly.LoadFile() чтобы не блокировать файл и его можно было заменить, затем все это сую Activator.CreateInstanse(Type), но косяк в том что на второй раз он вместо объекта выдает тупо null хотя Type валидный.
Новый домен создавать не вариант так как надо передавать пару тройку классов в dll, а через домен это просто сделать не выйдет.
скидончики там всегда. скачай троелсена или рб уитакера и не трать деньги зря
Двачую за троелсена
ну допустим ref readonly S M() => throw null
это Action<ref readonly S> возвращающий ссылку на структуру которая неизменяема, поэтому можно обойтись без лишних копирований
А throw null это вещь уровня оператора -->
Но что блядь за readonly ref struct S в объявлении типа то блядь
>>1088939
>>1088903
Ебом токнуть?
Непосредственно переменная instance будет типа BaseC, и лежать в ней в обои случаях будет ссылка в кучу. В одном случае на объект типа BaseC, во втором - на DerivedC.
Различие будет у невиртуальных (по дефолту) и виртуальных методов:
невиртуальные методы пляшут от типа переменной - поэтому будет вызываться метод из BaseC
виртуальные методы пляшут от типа значения, поэтому для DerivedC будет искаться перегруженный метод
ака: https://pastebin.com/ES2eCETp
У меня друган без опыта офисной работы и с где-то 3мя годами мелкого веб фриланса нашел удаленку в другой стране за 120к он не из рашки на пхп. Походу я языком промахнулся, эх.
И да и нет.
Одна сборка может быть загружена в домен только один раз.
Чтобы каждый раз скармливать новую версию - это надо версионировать.
Грубо говоря:
System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - сила
OcheHuevoBiblioteka, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - могила
Вообще да, на жирных корпоративных языках (а это ява тоже) уйти в ремоут тяжело.
Впрочем на неткоре уже пару ремоут вакансий я уже получал недавно, что-то меняется походу
Спасибо, анон!
private static void WriteBoard(int size)
{
for (int y = 1; y <= size; y++)
{
if (y % 2 !=0)
{
for (int x = 1; x <= size; x++)
{
if (x % 2 != 0) Console.Write ("#");
else Console.Write (".");
}
}
else
{
for (int x = 1; x <= size; x++)
{
if (x % 2 != 0) Console.Write (".");
else Console.Write ("#");
}
}
Console.WriteLine();
}
Console.WriteLine();
}
private static void WriteBoard(int size)
{
for (int y = 1; y <= size; y++)
{
if (y % 2 !=0)
{
for (int x = 1; x <= size; x++)
{
if (x % 2 != 0) Console.Write ("#");
else Console.Write (".");
}
}
else
{
for (int x = 1; x <= size; x++)
{
if (x % 2 != 0) Console.Write (".");
else Console.Write ("#");
}
}
Console.WriteLine();
}
Console.WriteLine();
}
Учись пока батя жив.
P.S. В колледже когда обучался, то изучал Pascal и Delphi все четыре года(на последнем курсе мы яву немного брали, но это было вообще бред, т.е. по факту ничему и не учили по Жабе). Но сейчас если честно, то вообще ничего не помню из Паскаля и Делфи. Хотя из Паскаля всё-таки помню, да, а из Делфи - нет.
Ты б сперва тред пролистал.
Нахуя козе баян? Делай кэш в редисе.
WPF очень популярен в десктоп разработке так-то. Да и легаси говна на формочках хватает.
ConcurrentDictionary
И после этого, если проект выкачать отдельно с CVS, он падает с хуйней на пике. НО! сука, что самое интересное, в том .sln, в котором я создавал паблишинг профайлы, всё до сих пор запускается через IIS express. При этом, в настройках у исходного проекта и клона с репозитория в настройках запуска стоит использовать IIS express, но вот похоже, что клон всё таки смотрит на реальный IIS. как быть?
Вот строчка.
s = string.Concat(s.OrderBy(x => x).ToArray());
Строчка переводит строку s в ту же самую строку но где все буковки стоят в алфавитном порядке.
Я синтаксически вроде все понимаю но x => x что это?
Почему там иксы? Туда можно вставить любую букву? Как это читается в слух?
Ну вообще раскидайте за лямда выражения и LINQ, как понимаю они служат что бы пачку кода сократить в лакончиные строчки запросов.
Но востребовано ли это? Что удобней читается?
Это функция, которая ничего не делает, записанная укороченным способом. Сама функция identity, а способ записи лямбда. Буква любая. Можно наверное туда написать method reference вместо лямбды, ну в джаве так можно.
Так пишут, когда уместно, в этом случае он попытается передать х в неё, а функция откажется его брать и всё сломается.
Ну не х в смысле передать, а аргумент, а функция от нуля аргументов.
Короче,
сначала работает
s.OrderBy(x=>x).ToArray()
Работает потому что строка реализует интерфейс IEnumerable<char> - то бишь у тебя есть множество символов
OrderBy (на самом деле OrderBy<char>) работает именно с множеством, отсортировать он может по чему попало, поэтому передается функция которая получает на вход char а выдает говно, которая будет сравниваться. Если сортируешь алфавитно = по самим символам, то это тупая единичная функция x=>x (в математической нотации f(x) = x, имена аргументов смысла ничего не привносят, так что можно смело написать и f(hui) = hui оно же hui=>hui)
Обрати внимание, аргументов тут не 0, а 1 - собственно символ. Если вместо x=>x использовать другую функцию, то можно отсортировать по другому. В итоге у тебя выйдет отсортированный IEnumerable<char>.
.ToArray() не нужен, string.Concat может работает и с IEnumerable<char>.
Толково. Спасибо.
Как эту строку превратить в T чтобы в цикле можно было перебрать кучу Get для всех имеющихся у него T ?
>ViewModel - View model is a class that contains properties from more than one Models, generally used to list data from more than one database tables...
Однако здесь, например, ViewModel-ом названа обычная анемичная модель с голыми гет-сетами и ничем более:
https://metanit.com/sharp/helpdeskmvc/3.2.php
На стаковерфлоу в одном из ответов на вопрос про нейминг и организацию архитектуры программы вообще говорилось, что похуй, как модели называть и в какую папку класть, главное — чтоб понятно.
Поясни, короче, анон, за именование моделей/вьюмоделей и их отличия. Заодно хотелось бы конкретно узнать, куда мне класть модель с полями формы логина, назвать её SignInModel, или SignInViewModel, или просто SignIn, если я точно знаю, что данные не будут соответствовать ни одной из таблиц в БД. И да, может быть, удалить нахуй проект "EF" и запихнуть все его классы в Model?
модель - описание структуры, используемое в ORM. на стороне БД - таблица, на стороне кода - модель. viewmodel - описание структуры, необходимое для рендеринга информации на view. Типа, если тебе нужно отобразить информацию каким нибудь кастомным образом, который не покрывается обычными LINQами и операторами, ты можешь запихать перед вызовом View в контроллере ему (view) в viewmodel, который заполнишь данными из модели, чтобы viewmodel сам анализировал данные и выдавал информацию на основе них.
именование - хз, дело вкуса наверно, но я предпочитаю класть модели в папку Models, вьюмодели - во ViewModels. Если моделей дохуя, то да, можно вынести вместе с миграциями, sql скриптами и прочей хуйней в отдельный проект
Что ж, благодарствую за доходчивый ответ.
Переделал своего уродца в пикрелейтед, вроде бы стало лучше.
var stringArray = new string[]{"1","2","3","4","5"};
var intArray = stringArray.Select(x=>int.Parse(x)).Take(2);
мяу
$theHub.client.someMethod()
Ладно, с этим разобрался. Еще вопрос по signalr - почему иногда вызывается в хабе вызывается OnDisconnected, когда никто из пользователей не закрывал соединение? Может ли это быть из за того, что я в дебаге долго сижу, и клиент считает, что соединение разорвано?
Спасибо помог. Хотя на десяток минут затык был с указанием сборки, оказалось нужно не просто имя, а прям точно с токеном и прочим.
Блядь, этот кусок говна всё позволяет, просто в разоре его вообще нет.
Видные/невидные куски по ролям делаются через @if(User.InRole("фгсфдс"), если у кого возникнет такой же вопрос.
Да блин, захотелось идентити руками подключить. Потом осознал, что лучше такой хуйнёй не страдать, зато теперь лучше понимаю, что там внутри. А внутри там, к слову, всё просто идеально: даже валидацию и хеширование+соление паролей не надо самому делать.
Ну я приукрасил конечно чутка, сначала скачиваются данные с сайта (успешно), потом они обрабатываются и тут начинается этот затуп. Потоков нет.
У меня там есть словарь, он много раз вызывается в цикле, и вот почему-то на этом моменте возникает такая задержка. (словарь довольно небольшой, примерно 200 ключей)
Upd.:
Попробовал запустить скомпиленный экзешник из папки bin, и о боги, оттуда всё работает без проблем.
И че это такое? В чем разница? Как фиксить?
>И почему же?
Нужно было сделать класс, реализующий IUserIdProvider, и зарегистрировать его в AppStart для signal R
https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/mapping-users-to-connections - вот здесь описано как. Я на это внимание не обратил и пихал ему сразу user ID из Identity, искренне негодуя какого хуя эта сука не дергает обработчики у клиента.
Значит ты еще не дорос до таких задач. Решай алгоритмические задачи, и по больше.
Я также с нуля хотел вкатиться в ASP.NET MVC, тогда еще ASP.NET Core не существовало. И точно также не мог потянуть, потому что основы программирования не подтянул. Сначала нужно натренироваться решать несложные алгоритмические задачи. В процессе этого и синтаксис запомниться на пальцах, и самое важное навыки программирования появятся. Только после этого можно изучать веб-фреймворки, но сначала хорошенько понять веб-протоколы, HTTP в частности. Ну и базы данных тоже. А также как работает фронтенд.
Ну, по алгоритмам у меня действительно есть некоторые проблемы. Я немного тугодум, поэтому порой приходится немало сидеть над той или иной задачей.
>>1091625
Да, книга на англе.
>>1091635
>>1091638
Я уже до этого кодил на ASP.NET MVC 5, но это было давно и не профессионально, многое успело позабыться. Сейчас я так для себя решил, что буду специализироваться на С#, мне нравится язык и вообще его перспективы.
Моя проблема в том, что автор (конечно же очень опытный девелопер) подходит к решению проблем чересчур досконально. Я понимаю, что это позволяет создать, так сказать, robust code, подходящий для будущего рефакторинга, но там много незнакомого синтаксиса и разветвлений (под конец становится очень много файлов в солюшне), и когда это все сваливается на голову, получается каша в голове, именно обилие информации. Чтобы освоить Net Core по его методике, нужно куда больше сил, чем если б я учил джанго или ноду где-нибудь онлайн.
В общем нашел ошибку, если кому интересно, в поиск по словарю попадались null значения, они обрабатывались в catch'е, но на это уходило очень много времени.
>Чтобы освоить Net Core по его методике, нужно куда больше сил, чем если б я учил джанго или ноду где-нибудь онлайн.
Объясняю, у тебя пробелы в основах. Я также пытался влезть в ASP.NET MVC 5 не имея навыка программирования, не зная как работает веб и базы данных. У меня ничего не вышло. Когда я подрос, и начал читать Фримена по ASP.NET Core 1.0, то мне все стало понятно, каждая мелочь. Книга очень хорошая, я правда читал перевод первого издания. Все очень глубоко и понятно объясняется, лучше чем в документации. Просто у тебя есть пробелы в знаниях, и ты мало писал код. Начни с простых вещей, не лезь сразу в ООП. Решай алгоритмические задачи. Перечитывай книгу, и увидишь как с каждым разом понимание будет расти. Главное писать код, только так можно научиться, просто чтение не дает ничего.
Снижай свои завышенные ожидания. Меньше нервов истратишь. Не жалей себя. Приготовься трудиться. Ничего просто так не дается в жизни. За всё нужно бороться. Программирование сложная профессия. Бороться придется в двойне.
Поменяй мышление. Относись к трудностям как к ступенькам. Преодолел одну ступеньку, двигайся к следующей. Это вроде игры, где нужно прокачивать героя. Трудности нужны чтобы прокачиваться. Хватить себя жалеть.
>>1091776
Как удачно я мимокрокодил в мыслях о том каким будет будущее человечества. Учиться, даже на совсем обыденные вещи, нужно всё больше и больше лет. А значит будут либо жёсткие антиутопии с массовым отупением/обнищанием человечества в пользу тех самых марксистских держателей капиталов, либо некие персональные агенты, заменяющие огромную долю образования, эдакие карманные учёные, с которыми можно поговорить и которые тебе пояснят за всё с нужной тебе степенью детализации. Пока что это интернет, гугл, википедия, книги. Но это всё ещё неэффективно, так как вот человеку нужно дохера учить чтобы освоить что он там хотел освоить, а это неправильно. С другой стороны, если каждый хуй сможет всё, то совокупно их труд сильно удешевится, что одновременно и хорошо и плохо. В идеале это эдакие повсеместные домохозяйства-бизнесы с паритетом друг к другу по капиталовложениям-трудозатратам. Но экономика тяготеет к централизации, так как организация производства с нуля это не хуй собачий.
Так как программистам с годами нужно осваивать всё больше, вангую зарплаты вырастут, но массовый спрос сильно снизится, так как меньше людей теперь смогут сделать намного больше. Это как у тридешников: первые 5 лет ты сосёшь хуи и дрочишь туториалы, но потом вливаешься и ебошишь в пиксаре за достойную зарплату контент в промышленных масштабах.
И да, там где один человек уже не справляется, где затраты на образование становится ну нереально длинными, профессии будут разделяться, специализироваться. Фулстеки должны постепенно уйти в прошлое. Ящетаю современный клепатель сайтов на все руки даже сверстать достойно не сможет не влезая во всякие бутстрапы.
>>1091776
Я себя не жалею, анончи, иначе бы я не пошел в погроммисты. Ясное дело, я не собираюсь сдаваться, просто у меня мало времени, и хочется верить, что научившись пилить проекты на ASP и Net Core, то я смогу заработать в ближайшем будущем хотя бы на хлеб с маслом, вот и все, большего мне не надо.
Тогда действуй решительно. Сразу же иди на собеседование. Пройди их штук 10. Это тебя сильно приблизит к цели. Ты станешь понимать что требуется работодателям. Перестанешь боятся собеседований, научишься их грамотно проходить. Это ускорит процесс.
Ну не гадать, адаптироваться к реалиям скорее. Ясное дело что бесконечно увеличивать образовательную планку невыгодно: проще трактористом пойти уже работать. И учиться не надо, и жрать будет, и селянок за сиси полапать получится.
ASP.NET какой версии? Ты не то походу юзаешь, это уже устаревшая версия. Юзай ASP.NET MVC или ASP.NET Core.
Лучше изучай ASP.NET Core, он базируется на .NET Core. Он проще для понимания.
Там был один петух, который VS Community за IDE не считает, но аргументов не приводил. Из альтернатив у нас лишь Rider и VS Pro/Enterprise. Ну так вот, объясните в чем проблема использовать VS Community, если на пинусе хватает того же VS Code?
И еще один вопрос. Как почувствовать ВАУ эффект от Resharper'а. Для меня это сродни кучи сахара, которым я буду пользоваться от случая раз в день, если не в неделю. Благо есть лицензия на все продукты JB и пиратить их не приходится, но и необходимости в том же Resharper'е нет.
Где собака то зарыта? Неужели я тупой или обезьяны на столько обленились, что им требуется 100500 плагинов на текстовый редактор?
Продублирую сюда:
> \r\n\r\nВ: У меня горит лаба/курсач, не знаю какую тему диплома взять.
> \r\nО: Задавай вопрос в этом треде.
Че пацаны, программирование?
Предлагайте свои темы:
C# + MS-SQL + С/С++.
На дабл думаю, на трипл делаю
VS Comunity 2017 от энтерпрайза того же года в основном отличается условиями лицензирования и использования, так что там петухи какие-то были.
Насчёт плагинов: если к ним привыкнуть, то потом очень сложно без них писать, например без плагина на проверку пунктуации и орфографии в комментах и идентификаторах, если ты не нэйтив, очень сложно, особенно с иностранцами. Без плагина на вертикальные черты в отступах начинаешь долбиться глаза и думать, сколько же там табов и нет ли среди них пробелов. Без решарпера сложно рефакторить код, менять виды циклов в один клик, проводить замену имён и т.п. Короче плагины таки повышают производительность труда и убирают рутину из такого рутинного дела, как программирование.
Уточни тему научных интересов, а то заставим писать драйвера на шарпе и искать циклические онтологиии в вебе на TSQL.
Ну ты делаешь (байт пикселя & ~1) | (байт буквы & 1).
Обнуляешь у пикселя последний бит, а у буквы всё кроме последнего и накладываешь. Может ошибся в чём-то.
А, у буквы же все биты нужны по очереди.
Вообще-то сказали все что угодно.
Просто должен быть шарп и базы данных. Очень желательно в этих рамках и оставаться, и желательно без супер приблуд и мокрых писичек к ним, и желательно без особого дроча самых баз, около примитивное юзание баз подойдет, все свистеть и пердеть по максимуиу должно именно на шарпе.
Это мой первый тру-курсач, а сам я ньюфаг (Шарп с начала осени, в базах пока 0).
На вопрос - назовите пример курсача было:
-Ну например печать на скорость там.
-А базы там нахуя?
-Ну типа регистрация профиля там, историю печати там можете прикрутить.
Вообщем да, это должно быть около объемное говно на формах.
Времени пока есть много.
Буду держать вас вкурсе.
Всё еще не могу дописать. Вот есть у меня строка, надо извлекать по очереди символы из нее, символ переводить в массив битов, пробегать по всем пикселям и записывать в младший бит каждого канала бит символа. Понаписал тут кучу циклов в цикле в цикле, ничего не работает.
К примеру
Строка: AB
A = [A0][A1][A2][A3][A4][A5][A6][A7] (биты)
B = [B0][B1][B2][B3][B4][B5][B6][B7] (биты)
Пиксель0 = (0,0)
R0 = [][][][][][][][A0]
G0 = [][][][][][][][A1]
B0 = [][][][][][][][A2]
Пиксель1 = (0,1)
R1 = [][][][][][][][A3]
G1 = [][][][][][][][A4]
B1 = [][][][][][][][A5]
Пиксель2 = (0,2)
R2 = [][][][][][][][A6]
G2 = [][][][][][][][A7]
B2 = [][][][][][][][B0]
Пиксель3 = (0,3)
R3 = [][][][][][][][B1]
G3 = [][][][][][][][B2]
B3 = [][][][][][][][B3]
Пиксель4 = (0,4)
R4 = [][][][][][][][B4]
G4 = [][][][][][][][B5]
B4 = [][][][][][][][B6]
Пиксель5 = (0,5)
R5 = [][][][][][][][B7]
G5 = [][][][][][][][]
B5 = [][][][][][][][]
До алгоритма не могу додуматься.
Всё еще не могу дописать. Вот есть у меня строка, надо извлекать по очереди символы из нее, символ переводить в массив битов, пробегать по всем пикселям и записывать в младший бит каждого канала бит символа. Понаписал тут кучу циклов в цикле в цикле, ничего не работает.
К примеру
Строка: AB
A = [A0][A1][A2][A3][A4][A5][A6][A7] (биты)
B = [B0][B1][B2][B3][B4][B5][B6][B7] (биты)
Пиксель0 = (0,0)
R0 = [][][][][][][][A0]
G0 = [][][][][][][][A1]
B0 = [][][][][][][][A2]
Пиксель1 = (0,1)
R1 = [][][][][][][][A3]
G1 = [][][][][][][][A4]
B1 = [][][][][][][][A5]
Пиксель2 = (0,2)
R2 = [][][][][][][][A6]
G2 = [][][][][][][][A7]
B2 = [][][][][][][][B0]
Пиксель3 = (0,3)
R3 = [][][][][][][][B1]
G3 = [][][][][][][][B2]
B3 = [][][][][][][][B3]
Пиксель4 = (0,4)
R4 = [][][][][][][][B4]
G4 = [][][][][][][][B5]
B4 = [][][][][][][][B6]
Пиксель5 = (0,5)
R5 = [][][][][][][][B7]
G5 = [][][][][][][][]
B5 = [][][][][][][][]
До алгоритма не могу додуматься.
Что можете сказать про эту книжку? Есть ли что-то ещё лучше, если изучаю C# для разработки на Unity?
Например по нажатию клавиши добавлять например там в какой-нибудь контейнер(какой?) лейбл, затем два текстбокса, затем баттон. Ну и соответственно, чтобы этот баттон уже был привязан к выполнению какого-то метода. Желательно все это в MVVM.
.exeшную?
Бля, все, разобрался.
Несколько месяцев назад мелкомягкие выпустили обнову для win phone 8.1. Может быть такое, что они что-то поменяли в регистрации/приеме пушей? Слыхал кто-нибудь об этом?
Двачую, адеквата выше. Я бы сам написал борду/клиент для борды, но я уже работаю на девяти проектах, а ты пока молодой и шутливый.
Нахуй эта нода нужна кроме как писать хипстерские тулы для компиляции фронта?
Даже создатель ноды сказал, что нода воз е мистейк.
Округлить люки.
Если вебмакака, то написать что-то типа бронировщика номеров в отеле или книжную полку.
>И уменьшайте количество изменяемого состояния везде, где только можно.
А как это делать-то епта?
Вот есть у меня котик, тарелочка и еда. Как мне уменьшить изменение еды в таролочке и увеличить довольность котика?
О хорошая идея, возможно возьму себе на проект что-то подобное.
А вообще анончики, какие у Вас были первые проекты?
А, так вот что мне нужно было: "Задачи по генетике за 10-ый класс. Законы Менделя".
Теперь осталось разобраться, как это аккуратно выполнить.
Ладно, я мудень. Какого-то хрена на мобиле я регался на WNS, а не MPNS, а посылал на MPNS.
Да я простенький симулятор фермы пишу, в котором разные фенотипы будут иметь разную цену. Обычные коровы стоят 100, фиолетовые — 300. Вот и сиди старайся не проебать породу, пока корова не сдохнет.
Допустим есть у меня процесс w3wp, к нему поступает запрос, поток лочит себе доступ как какому-то ресурсу. Вроде все нормально.
Но тут, допустим iis решает перезапустить мой пул приложений (ну там по расписанию, по привышению обьемов памяти, не разбирался особо, но там же много причин может быть? да пусть даже тот же админ перезапустить решил). Ну вот, запускается новый w3wp, старый продолжает обрабатывать запрос. И тут новому процессу поступает такая де команда как и старому. И он начинает её выполнять, соответственно, положив болт на блокировку, поставленную другим процессом.
Как такого можно избежать? Пока что в голову приходит мутекс в global.asax'е , создающийся при запуске и удаояющийся при выходе из приложения.
Вы скоро в дурку отчалитесь с таким подходом, сээээр.
Посмотрите для начала, как работает с данными Б-гомерзский похапэ, где Апач трёт всё состояние процесса и где все ваши «блокировки» спрятаны внутри транзакций в СУБД. Потом сравните сиё с подходом реакта и редакса в не менее Б-гомерзском жаббаскрипте. Потом постепенно подберитесь к эрлангу с эликсиром. К тому времени вопросы о блокировках исчезнут сами собой.
А то вы сейчас напоминаете линуксойедов из 90-х, которых Билл Гейт лично!!!! три раза в день ударял хуём по лбу, так они от огорчения переселились в командную строку. Вы имейте в виду, они все на кладбище, т.е. они все попередохли в прямом смысле этого слова, в том числе и от стресса.
Написал три варианта тасков и одну реализацию через async \ await, ничего подобного не увидел. Можно хороший пример подобного или все-таки токен в таск передается только для первой причины?
Я вопрос криво написал, видимо? Попробую иначе.
В первом случае мне ручками хендлить токен не надо ни в каком из вариантов, во втором надо.
> давайте ещё студия 35 высрет
А зачем ты все компоненты ставишь, ты наркоман?
> Установить в другую папку
Там же можно менять путь установки, не?
> А зачем ты все компоненты ставишь, ты наркоман?
Три. Три, сука, компонента.
> Там же можно менять путь установки, не?
Можно. Он из 41 гига перенесет туда 5. Остальное куда захочет по 1000 папок раскидает по всему диску. Максимум удобно.
Не знаю, у меня не так.
Asp.net, сам шарп, entity framework и еще дохуя всего. Это всё используется во многих топовых мировых компаниях. Почти всё, что ты назвал - устаревшее говно типа winforms. Да, технологии тоже устаревают и это нормально, когда на них хуй забивают.
До сих пор не понимаю, какого хуя долбоебы на джаве пишут, если у них котлин есть.
райдер ставь, а не эту залупу
Я чото не то пизданул, да?
Запили свой парсер двача на шарпе.
Я вот упрощённую копию MAL делал под десктоп в прошлом году на курсач препод немного офигел с предметной области
Хули мой друг говорит, что с таким кодом у него все работает, а без засыпания потока у него вылетает? Ведь await делает так, чтобы метод подождал, пока не выполнится connectAsync. Или я не прав?
1) Нахуя там вообще коннект асинхронный? Дохуя долго коннектится?
2) Работать должно и без говноцикла. аваит ждёт пока не станет доступен результат таска, выданного connectAsync
Твой друг слепой или с тонкой душевной организацией? Что с форматированием, мать твою, Джонни!?
Асинк не ждет результата. Видимо проблема во втором асинке, клиент еще не успевает законнектится и идет реквест. Нужно что-то типа ContinueWith хуячить.
Бля у меня идёт переподключение к другим датацентрам в итоге оно длиться в 2-3 раза дольше и нихуя не работает без остановки потока
Спасибо, пойду читать, что такое ContinueWith
Че пацаны аниме?
var respstream = response.GetResponseStream(); Угадай чему равен responce.ContentLenght? Правильно -1, потому-что до тех пока ты с него стрим не считаешь, а не получишь он будет -1 Даже если ты считал и фидлер показал, что отправил тебе все байты, так теперь этот стрим chunked и gzip. Допустим мы знаем, что делать с Gzip стримом var gsr = new GZipStream(respstream, CompressionMode.Decompress);, но как ме получить именно Gzip не chunked?
Анон помоги уже пздц, как заебался
Почему?
Ты что, дурак? Это все делается за тебя.
Тему курсача надо узнавать у своего руководителя.
>>1095933 (OP)
ПЕРЕКIT
>>1095933 (OP)
ПЕРЕКIT
>>1095933 (OP)
ПЕРЕКIT
>>1095933 (OP)
ПЕРЕКIT
>>1095933 (OP)
Это копия, сохраненная 14 декабря 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.