М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 3 октября 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

6 Кб, 230x231

.NET THREAD #1 (C#/F#/VB) # OP 21 Авг, 19:52 #824683 В конец треда | Веб

Тред единственной элитной платформы в мире программирования.

Шапка: https://github.com/CSharpShapka/SharpHat/wiki

(пока просто перенесена шапка из ОП-поста, в ближайшее время приведу к более-менее адекватному виду, не стесняйтесь слать свои пулл-реквесты)

Прошлый тред тонет здесь: https://2ch.hk/pr/res/796165.html (М)

Ответы>>824869>>829091>>832644>>835373>>836477>>837433>>838933

22 Авг, 05:06 #2 #824850

Уже 3 C# треда висят, ну ок спрошу здесь.
Этот код не компилится:
http://pastebin.com/89NFWke0
Выдает:
http://pastebin.com/0gxMwFgM
А этот компилится:
http://pastebin.com/ytMH13zK

Почему? Разве из
var RbtnArr_Planets = new RadioButton[Output.Length];
не понятно, что массив будет из радиобаттонов?
Что происходит?

Ответы>>824860

22 Авг, 08:05 #3 #824860

>>824792
ну не же, написал, что для всех радиобаттонов группы
т.е. если у тебя

Group1
|__RadioButton1
|__RadioButton2
|__RadioButton3
Grid
|__RadioButton4
|__RadioButton5
то тебе надо написать:
radioButton1.CheckedChanged += GroupRadioButtonCheckedChanged
radioButton2.CheckedChanged += GroupRadioButtonCheckedChanged
radioButton3.CheckedChanged += GroupRadioButtonCheckedChanged

где

private void GroupRadioButtonCheckedChanged(object sender, EventArgs args)
{
var control = (RadioButton)sender;
switch((SomeEnum)control.Tag)
{
...
}
}

>>824850
знаешь разницу между "не компилится" и "исключение в рантайме"?
> не понятно, что массив будет из радиобаттонов?
ссылка на радиобаттон не может быть пустой? или каждый инстанс в языке - это априори какой-то объект?

22 Авг, 08:05 #3 #824860

>>824792
т.е. если у тебя

Group1
|__RadioButton1
|__RadioButton2
|__RadioButton3
Grid
|__RadioButton4
|__RadioButton5
то тебе надо написать:
radioButton1.CheckedChanged += GroupRadioButtonCheckedChanged
radioButton2.CheckedChanged += GroupRadioButtonCheckedChanged
radioButton3.CheckedChanged += GroupRadioButtonCheckedChanged

где

private void GroupRadioButtonCheckedChanged(object sender, EventArgs args)
{
var control = (RadioButton)sender;
switch((SomeEnum)control.Tag)
{
...
}
}

>>824850
знаешь разницу между "не компилится" и "исключение в рантайме"?
> не понятно, что массив будет из радиобаттонов?
ссылка на радиобаттон не может быть пустой? или каждый инстанс в языке - это априори какой-то объект?

Показать весь текст
Ответы>>825097

22 Авг, 08:49 #4 #824869

>>824683 (OP)
> Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.
Не верьте этому говноеду, .NET сейчас как делфи только под легаси код. Веб в .net доживает последние дни, а десктоп умер, на его смену пршел Qt из мира С++

Ответы>>824880>>825035>>835339

22 Авг, 09:58 #5 #824880

>>824869
на .net работы больше,

22 Авг, 14:34 #6 #825026

Перепостну с другого треда, чем успешные господа парсят, HtmlAgilityPack или AngleSharp?

Ответы>>825127>>831349

22 Авг, 14:56 #7 #825035

>>824869
> на его смену пршел Qt
Лел

Ответы>>830703

22 Авг, 15:24 #8 #825047

Анчоусы, поясните за сборку установщика своей программы: при каких условиях мне для программы нужно делать установщик и как его лучше делать?

Ответы>>827089>>831503

22 Авг, 16:16 #9 #825087

Пусть шапка остается на гитхабе, в разы удобнее смотреть и читать всё как белый человек.
(Мимо подсмотрел эту идею у питоно и ява-господ)

22 Авг, 16:34 #10 #825097

>>824860
Спасибо за ответ, буду продолжать.
Разьясни пожалуйста этот момент:
>ссылка на радиобаттон не может быть пустой? или каждый инстанс в языке - это априори какой-то объект?
Разве конструкция new
>new RadioButton[Output.Length]
не создает физический массив в памяти?
И почему с
>string[] StringArr = new string[]
работает?

Ответы>>825122

22 Авг, 16:59 #11 #825115

Кто нибудь знает, в WPF есть возможность на DataGrid распространить ограничения на таблицу, данные и схема (следовательно, я так понимаю, и ограничения) которой загружаются из MS SQL сервера? к примеру, в таблице на поле "Поле1" установлено ограничение check (Поле1 like '%[0-9]%') После загрузки datatable перегоняю в BindingListCollectionView (ради свойства CustomFilter) через dataTable1.DefaultView;

22 Авг, 17:08 #12 #825122

>>825097
при создании new RadioButton[length] у тебя создается массив радиобаттонов в куче, но до тех пор, пока ты не инстациируешь каждый из элементов у тебя будет null, ибо их все в отдельности ты не успел еще создать
то же самое касается и string[] и ЧегоБыТоНиБылоСсылочного[]. вот про int либо другие структуры я бы тебе еще поверил

Ответы>>825189>>825191

22 Авг, 17:14 #13 #825127

>>825026
AngleSharp

22 Авг, 18:47 #14 #825189

>>825122
>ЧегоБыТоНиБылоСсылочного[]
Ааа, вот где я прощелкал.
Спасибо анон.

22 Авг, 18:51 #15 #825191

>>825122
Вообще интересно получается. Мне нужно сделать несколько зависимых друг от друга групп радиобаттонов.
Для этого - нужно понимать event-ы.
Для event-ов - нужно пройти делегаты.
И над всем этим - динамическая выборка радиобаттонов через LINQ.
Кто там кукарекал про низкий порог вхождения?

Ответы>>825255>>825317>>825686>>835605

22 Авг, 20:27 #16 #825255

>>825191
Что тут сложного?

22 Авг, 21:01 #17 #825317

>>825191
> Для event-ов - нужно пройти делегаты
ну, в общем-то, тут вопрос возникает, что такого нужно знать, чтобы просто использовать событие на форме? по-моему, достаточно по-дилетантски того, что событие когда-то вызывается со указанием в sender отправителя

> динамическая выборка радиобаттонов через LINQ
зачем тут линк? почему "над этим всем"? и что, опять-таки, ты предлагаешь понимать в этом всем?

Ответы>>825331

22 Авг, 21:17 #18 #825331

>>825317
Ага, а потом утечки памяти, потому что никто не знает, что от событий отписываться нужно. И никто не знает, почему с дизайнером мы руками не отписываемся, например. Не, нужно с азов.

Ответы>>825339

22 Авг, 21:23 #19 #825339

>>825331
Отписываться же нужно, только если источник живет дольше подписчика, не?

Очень надо 23 Авг, 09:18 #20 #825557

Халп, полубоги!

Есть несколько классов, в которых надо просто ебаническое количество свойств описать. Какие-то есть хоткеи или что-то вроде ctor для того, чтобы сразу готовое шаблонное писалось?

Ответы>>825562>>828293

23 Авг, 09:27 #21 #825562

>>825557
стандартно в VS только prop, и то только для автореализуемых

Ответы>>825563

23 Авг, 09:34 #22 #825563

>>825562
Спасибо, это и надо было

23 Авг, 13:09 #23 #825651

1 Как поставить студию 2015 под вайн?
2 Кто-нибудь пробовальставить студию 2015 под вайн не веб-инсталлером, а с iso -образа?

Ответы>>825653>>825699>>828286

23 Авг, 13:12 #24 #825653

>>825651
1 а в чем разница?
2 ну, мало чем отличается, либо ждешь загрузку после выбора компонентов, либо качаешь все и ставишь что надо

23 Авг, 14:32 #25 #825686

>>825191
братан, ты уже блять окошко нарисовал и радиобатоны загружаешь из файла.
на си ты бы ещё только начинал бы

23 Авг, 14:49 #26 #825699

>>825651
1 https://appdb.winehq.org/objectManager.php?sClass=version&iId=32486
>garbage
>What works Nothing.
>What does not Cannot run web installer.
2
>What was not tested Did not test ISO/offline installer.

23 Авг, 15:43 #27 #825736

Давно хотел спросить: под дотнет существует какой-нибудь глобальный фреймворк для бизнес-логики с dependency injection (с конфигом через атрибуты или конфигурационный файл) и прочим по типу Spring для джавы? Или обычно пользуются из коробки, а объекты через конструкторы создают?

Ответы>>825751>>825883

23 Авг, 15:59 #28 #825751

>>825736
castle.windsor?

43 Кб, 1000x800

23 Авг, 16:23 #29 #825775

Аноны, несмотря на шутливую форму вопрос предельно серьёзный. Не хочу вас грузить подробностями:
Есть начальник, зам, менеджер по персоналу. У них три компьютера без сети. Сеть отпадает!
Задача - сделать для трех не связаных компьютеров программу в которой есть перечень персонала (100 сотрудников), перечень наказаний для персонала (сажание на кол, удары плетью), перечень проступков (опоздание на милисекунду, недостаточно низкий поклон начальству). Данные динамические, ведь сотрудники уходят, проступки ужесточаются. Так вот, программа должна автоматически вычислять наказание для сотрудника который провинился.
Вопрос: как лучше подойти к делу? Какой нужен стек технологий (файловые бд? Entity framework? WPF?). Как лучше хранить данные, как организовать архитектуру? Ведь если менеджер по персоналу добавит нового сотрудника, то начальнику придется делать то же самое. Целевая платформа windows XP Не могу спланировать архитектуру, анон, если чувствуешь себя неебаться софтвейр архитектором то помоги, ты практически поучавствуешь в стартапе.

Ответы>>825777>>825873>>826020

23 Авг, 16:24 #30 #825777

>>825775
очевидная нейросеть?

Ответы>>825783

23 Авг, 16:28 #31 #825783

>>825777
Анон, алгоритм это дело десятое. Мне больше архитектура важна, где хранить данные, как обеспечить репликацию данных между компами без сети. Пусть носят на флешке, но как мержить данные, хранить в XML, в Sqlite? Может оставить как есть и пускай каждый в своём пека вводит заново а я просто sqlite запердолю?

Ответы>>825794

23 Авг, 16:32 #32 #825792

А где ссылки на архивач на предыдущие 30+ тредов? Давайте впредь быть ответственнее

23 Авг, 16:33 #33 #825794

>>825783
использовать хранение текущего состояния данных как журнал событий, при обнаружении новой пачки на устройстве (условно говоря, втыкнули флэшку), накатывать изменения. xml или sqlite - это, по-моему, уже дело десятое

Ответы>>825812

48 Кб, 543x441

23 Авг, 16:49 #34 #825812

>>825794
Вот гипотетическая ситуация. При мерже будет черти что. Я уже думал все изменения от запуска программы хранить локально в виде патчей. А потом чтобы раз в месяц люди патчились между собой, но это выглядит лютой ебенью.
Я остановился на таком варианте - каждый работает локально и не ебёт людям голову, в случае чего загружает чужой файл с данными целиком вместо своего если не работал в программе месяц.

Ответы>>825814>>825816

23 Авг, 16:54 #35 #825814

>>825812
ну ты пиздец, конечно. попробуй посмотреть интерактивно, как git тот же работает в таких случаях

> но это выглядит лютой ебенью
это выглядит совершенно рабочей версией в некоторых разработках (где это необходимо, естественно). при наличии какой-никакой активности производится регулярная репликация изменений и подвигание условного нуля

Ответы>>825824

23 Авг, 16:55 #36 #825816

>>825812
тебе не кажется, что ты пытаешься срать через ноздрю? ты хочешь сделать базу данных, которая предполагает, что есть централизованное хранилище информации, к которому подключаются клиенты, а ты наоборот пытаешься подключить источник информации к клиентам. не проще ли в организации поставить роутер/свитч, протянуть витую пару, организовать локальную сеть и внутри неё создать обычную сеть с стандартным распределением клиент-бизнес сервер-дата сервер?

Ответы>>825824

23 Авг, 17:05 #37 #825824

>>825816
Анон, меня именно об этом и просят. Срать через ноздрю, принеси на флешке и чтобы всё работало. Алсо мне только такие и предлагали подработки, дай программу и чтобы работало, а вести провода не будем и закупать вайфай адаптеры тоже, нахуй нам этот геморой.
>>825814
Босс запускает у себя программу, менеджер из отдела кадров тянет ему флешку. Что должно происходить далее? Я за этим вопросом и пришел к вам, аноны.

Ответы>>825829>>825888>>826020

23 Авг, 17:07 #38 #825829

>>825824
обнаруживаются данные -> способом fast_forward объединяются изменения, предварительно отсортировав их по дате изменений -> вычисляется новое состояние хранилища -> изменения обновляют алгоритм

23 Авг, 18:05 #39 #825873

>>825775
https://msdn.microsoft.com/en-us/sync/bb821992
можно грабить корованы

23 Авг, 18:16 #40 #825883

>>825736
У тебя в требованиях только DI? Тысячи их, в asp.net core даже встроенный есть.

23 Авг, 18:21 #41 #825888

>>825824
> вести провода не будем
А как они одноклассники скролят?

23 Авг, 21:28 #42 #826020

>>825775
>>825824
> Босс запускает у себя программу, менеджер из отдела кадров тянет ему флешку. Что должно происходить далее? Я за этим вопросом и пришел к вам, аноны.

Ну так и храни базу на флешке в единственном экземпляре, кому надо берут и вносят изменения.

23 Авг, 23:01 #43 #826078

Аноны, что там с кроссплатформенным гуем? Уже можно написать приложение с gui, который будет хорошо работать под виндой и линем? Хочу писать кроссплатформенные десктопные штуки, но не хочу шквариться об жвм.

Ответы>>826153>>826166>>826263

24 Авг, 04:47 #44 #826153

>>826078
>2016
>Хочу писать десктопные штуки
ловите наркомана

Ответы>>826301

20 Кб, 520x533

4 Кб, 1620x53

14 Кб, 517x393

7 Кб, 1071x76

24 Авг, 05:34 #45 #826157

Создаю интерфейс и реализую его (пик 1). Вылетает ошибка (пик 2). Если изменить DoubleLinkedListNode на IDoubleLinkedListNode (пик 3), то та ошибка исчезает, но появляется новая (пик 4).
Как решить эту проблему?

Ответы>>826182>>826218>>826285

24 Авг, 07:18 #46 #826166

>>826078
Тебе Qt для этого нужен

24 Авг, 08:29 #47 #826182

>>826157
у дженериков есть замута с ковариантностью/контрвариантностью.
Не осбо помню что там и к чему, но как минимум прочекать это можешь

Ответы>>826189

11 Кб, 1673x101

24 Авг, 08:41 #48 #826189

>>826182
Дело не в дженериках, он и без них выдает ошибку.

24 Авг, 10:18 #49 #826218

>>826157
Сделай приватные переменные тоже интерфейсными.

24 Авг, 11:42 #50 #826263

>>826078
Мы Avalonia понемногу пробуем, кое-какие проблемы есть, но в целом заебись.

24 Авг, 11:58 #51 #826279

Дотнетач, а как писать тесты для asp.net приложухи? Вот например, у меня есть partial классы в которых написан API, api так вообще вызывается с ангуляр - контроллера, там возвращается BadRequest(), Ok() или Json() в который передается класс на сериализацию соответственно, так как несколько вьюшек написаны на нем, как мне это все протестировать - то? И например, даже если убрать API часть, в обычный контроллер инжектятся 3 сервиса, в двух из них идут запросы в БД, это значит в сами сервисы идет инжект контекста, т.е. надо делать ещё одну БД и полностью писать новый сервис под тест? Пишу учебный проект и с тестами никогда дел не имел, хочу вот научиться.

Ответы>>826285>>826465

24 Авг, 12:10 #52 #826285

>>826157
реализация интерфейса предполагает публичный доступ к членам, объявленных интерфейсом, а не то, го написал ты

>>826279
тестится бизнес-логика, как правило. но, если ты удумал тестировать контроллер, то тебе надо создавать моковую базу данных, либо заглушку, что есть подобие интеграционных тестов, и все это дело соответствующим образом инжектировать

Ответы>>826288>>826298>>826465

24 Авг, 12:13 #53 #826288

>>826285
Хорошо, спасибо. Напишу тесты пока для тех частей приложухи, где не идет никаких DIs.

7 Кб, 497x241

24 Авг, 12:26 #54 #826298

>>826285
А я что написал? Вон у меня на скрине публичный доступ к Next реализован. Остальные просто не стал скринить, потому что ошибка не в этом.
В общем проблему я уже решил (пик).

24 Авг, 12:33 #55 #826301

>>826153
Поясни?

Ответы>>841320

24 Авг, 12:34 #56 #826303

Есть тут аноны из Украины ну хохляндии, ок, которые работают шарпо-кодерами?
Расскажите про уровень программистов, на что нужно обращать внимание для мамкиного вкатывальщика. Шапку если что прочитал полностью, но интересны стори анонов.

Ответы>>826335>>826980>>827844

24 Авг, 12:53 #57 #826320

Аноны, начал изучать ваше искусство и не понимаю такой хуйни, почему везде в обычных циклах ставят for (int i = 0; i < n; i++), когда в большинстве случаев подходит for (byte i = 0; i < n; i++). Это ведь экономит потребление памяти или это настолько незначительная хуйня что можно везде ставить лонги вместо всех типов и на памяти я особо не проиграю?

Ответы>>826328>>826348>>826362>>838545

24 Авг, 13:08 #58 #826328

>>826320
просто редко бывает, что n <=255. да и выгоды особо никакой, ящитаю.

24 Авг, 13:30 #59 #826335

>>826303
Просто берешь и без задней мысли вкатываешься, серьёзно. Причем тут вообще география?

Ответы>>841324

24 Авг, 13:52 #60 #826348

>>826320
Если в цикле обращаться к элементам массива, то итератор все равно неявно скастится к int (кроме лонга вроде).

24 Авг, 14:10 #61 #826362

>>826320
http://stackoverflow.com/a/1148505/1250699

12 Кб, 357x455

13 Кб, 367x363

8 Кб, 444x285

24 Авг, 16:05 #62 #826465

>>826279
>>826285
Вот есть сервис, в него инжектится контекст, вот контроллер, в него инжектится 3 сервиса соответственно, я хочу протестить для начала только сервис, как это можно сделать? Скорее даже так, можно ли это сделать с существующим контекстом, миграциями и базой данных соответственно, если проект со всеми зависимостями стоит как ссылка внутри библиотеки с тестами? Если в юнит тесте пытаться инжектить через конструктор, понятное дело, ничего не получается, как на третей картинке, как можно это сделать?

Ответы>>826476

9 Кб, 513x287

24 Авг, 16:18 #63 #826476

>>826465
Хотя вот так сработало, так надо делать? Или есть ещё способы?

Ответы>>826535

24 Авг, 17:36 #64 #826535

>>826476
если тебе надо тестировать только бизнес-логику - берешь последний вариант с Mock<>
если по какой-то причине нужно задействовать при этом реальную базу данных - берешь свой используемый контекст

единственное, что мне не совсем ясно - зачем держать поле контекста в классе теста? но это уже такое, издержки реализации

Ответы>>826553

24 Авг, 17:49 #65 #826553

>>826535
Cпасибо.

24 Авг, 18:16 #66 #826570

Перекатился недавно на Xamarin, до этого на WPF немного писал. Не понимаю как на Xamarin сделать следующую штуку: есть Grid, скажем 5х5, заполненный image'ми. Пользователь свайпит image в сторону соседнего и они меняются местами, как в игре "три в ряд". Свайпа в Xamarin из коробки нету, нашёл такое решение: http://stackoverflow.com/questions/29972404/xamarin-forms-swipe-left-swipe-right-gestures/37644851#37644851 Допустим, я размещу Grid в этот GestureFrame, но как я буду знать какой именно image свайпается?

Ответы>>826656

24 Авг, 21:10 #67 #826656

>>826570
А почему бы кажде изображение не разметить в своем фрейме?

Ответы>>826703

24 Авг, 22:34 #68 #826699

Хочу переехать на линь, core нормально работает? Не надо будет ебаться с ксамаринами? Что по ide? Ну и подводные камни офк.
спасибо

Ответы>>828277

24 Авг, 22:39 #69 #826703

>>826656
А по производительности не пиздец будет? 25 этих фреймов, у каждого событие на свайп в каждую сторону...

Ответы>>826914

433 Кб, Webm

6 Кб, 778x72

24 Авг, 23:27 #70 #826766

И как это починить, сталкивался кто? Тут есть конечно решение, с добавлением Program.cs и Startup.cs в class library, но это извращение же. Или откатить до обычного проекта? На самом деле я возился с неймспейсами целый день и мне очень сильно пичот. Хочется держать контекст и entities в отдельном проекте.

Ответы>>826772

24 Авг, 23:32 #71 #826772

>>826766
Решение с вторым Startup'ом и пустым Main'ом в библиотеке работает после запуска команды по ссылке, отличный RTM, пойду обмажусь говном.

25 Авг, 09:20 #72 #826914

>>826703
Ты сначала попробуй.

25 Авг, 10:35 #73 #826948

Всем адекватных сущностей, полубоги!

Вопрос:
- с использованием чего сейчас модно делать десктопные приложения с клиентской и серверной части для локалочки?

Самостоятельное изучение вопроса почему-то всё упирает в IIS и ASP.NET, хотя нутром чувствую, что таки да надо дрочить WPF/XAML.

Ответы>>827003

25 Авг, 11:30 #74 #826980

>>826303
Есть,
высокий (смотря где, но мне повезло),
на книгу CLR via C#, C# in depth, Release IT, и иже с ними.

Ответы>>827059

25 Авг, 11:52 #75 #827003

>>826948
> десктопные приложения
> IIS и ASP.NET
ты какой-то странный

Ответы>>827012

25 Авг, 12:07 #76 #827012

>>827003
Electron + WebAPI!

25 Авг, 13:42 #77 #827059

>>826980
А как обстоят дела за рубежом? Реально ли после вуза при наличии проектов и экзамена по языку вкатиться джуном или даже около миддлом? И какого уровня должны быть проекты? Ну, например на новом asp.net. Конечно, тут без линкедина не обойтись, но речь о проектах.

Ответы>>827844

25 Авг, 15:05 #78 #827089

>>825047
installshield, insted

Оптимизация 26 Авг, 09:30 #79 #827537

List<img_info> img_list = new List<img_info>();
for (int i = 0; i < files.Length; i++)
{
if (IsImageFile(files))
{
//var data = parser.Parse(files);
//data.ToList().ForEach(Console.WriteLine);
System.IO.FileStream fs = new System.IO.FileStream(files, System.IO.FileMode.Open);
System.Drawing.Image img = System.Drawing.Image.FromStream(fs);
fs.Close();
img_info ii = new img_info();
ii.Width = img.Width;
ii.Height = img.Height;
ii.Ratio = ii.Width / ii.Height;
ii.hash = Path.GetFileNameWithoutExtension(files);
img_list.Add(ii);
Console.WriteLine("Обрабатываю: {0} [{1}/{2}]", Path.GetFileName(files), i+1, files.Length);
}
}

Помогите ускорить этот код.

Ответы>>827709

тут наверное за такие вопросы убивают нахуй 26 Авг, 13:11 #80 #827672

string sqlExpression = "INSERT INTO Users (Name, Age) VALUES ('Jzck', 21)";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(sqlExpression,connection);
int number = command.ExecuteNonQuery();
Console.WriteLine("Добавлено объектов: {0}", number);
}

Пиздец тупой. Короче, пример из учебника, правда там БД создается из SQL Studio, а я добавил LocalDB вариант.
Подключение без ошибок, но в базу ничего не пишется.
Сам запрос выполняется, но запись в БД появляется только после того как ручками обновишь. ЧЯДНТ? Похоже, что в моем варианте как-то в программе надо обновить табличку, но не соображу каким образом

Ответы>>827678>>827707>>827745>>827892>>830149

26 Авг, 13:22 #81 #827678

>>827672
Большие куски кода лучше где-нибудь на pastebin выкладывай. А тут скорее всего надо транзакцию закоммитить.

26 Авг, 13:47 #82 #827707

>>827672
попробуй без "into"

Ответы>>827716>>827745

61 Кб, 1012x394

26 Авг, 13:48 #83 #827709

>>827537
Что это за безумие с неймспейсами? Очередная лабораторная на лето?

Ответы>>830056

26 Авг, 13:59 #84 #827716

>>827707
Не помогает

26 Авг, 14:40 #85 #827745

>>827707
insert users? пиздец лол

>>827672
ты уверен, что insert и select выполняется из одних и тех же баз данных?

Ответы>>827841

26 Авг, 15:33 #86 #827800

Шарпач, если есть база данных, где в нескольких таблицах у каждой записи может быть много фотографий (10+), как лучше организовать хранение фото: хранить на sql-сервере, и получать через при запросе к бизнес-серверу, заставлять дата-сервер предоставлять фотографии и отсылать клиенту, или написать свою логику хранения и извлечения изображений в файловой системе, и в контексте изображений работать с ней, а не с sql сервером?

Ответы>>827874

26 Авг, 16:09 #87 #827841

>>827745
Эмм. Я без select смотрю в базе, в которой таблица Users. И там нихуя. База одна всего. Не, я рылся в интернете, видел там ситуации когда человек путался, но тут она тупо одна

Ответы>>827874

26 Авг, 16:14 #88 #827844

>>826303
Меня взяли без опыта только на работу за 10к гривен.
До этого пару месяцев почти никто на резюме не отвечал и не звонил.
На собеседовании дали не очень сложные тесты, которые даже не зная ответа, можно догадаться какой правильный. Для вката с 0 думаю норм, учитывая что варинатов не было.
>>827059
Веслаешь на галере + релокейшн. Дипломы наших вузов не котируются за рубежом
А вообще лучше в магистратуру поехать за границу учиться, если есть соответствующие программы для твоего вуза. У меня знакомый в Европке уже год, сейчас доучитвается и будет у него диплом европейского вуза, с этим ему конечно будет проще свалить.

26 Авг, 16:40 #89 #827874

>>827800
я за последний вариант

>>827841
нуок, что возращает ExecuteNonQuery?
сделай select из базы в блоке того же SqlConnection и после него в новом коннекшне

26 Авг, 16:43 #90 #827878

Как понять паттерн MVVM? Нахуя он нужен и как им пользоваться?

Ответы>>827882>>827898

26 Авг, 16:45 #91 #827882

>>827878
необходим, если используемся механизм связки данных
почитать про него в вики, msdn

26 Авг, 16:53 #92 #827892

>>827672
>запись в БД появляется только после того как ручками обновишь
>как-то в программе надо обновить табличку
В какой программе, какую табличку, какая запись? Ты смотришь на БД через стороннюю прогу или через датагрид в твоей?

26 Авг, 17:00 #93 #827898

>>827878
насколько я понял, паттерн предполагает разделение программы на три концепции:
model - как я понял, это классы объектов, информация о которых отображается пользователю ИЛИ, если я неправильно понял, то модель - это класс окна/страницы, откуда всё запускается
view - уровень представления. то есть то, что пишется в xaml'e - всякие контролы, привязки их друг к другу, из графические особенности, (цвет, запах, анимация и тд) то есть то, что видит пользователь
view-model - уровень, который связывает модель и view, то есть объясняет представлению как отображать тот или иной объект пользователю. во view-model обычно описывают свойства, которые привязывают к контролам во view. также во view model запихивают команды, вызываемые при событиях контролов, и описывают общую логику взаимодействия. типа, стремись оставлять класс окна (c# код) пустым так долго, как это возможно, и описывай всё в xaml'e. если нужно что то припиздячить к контролам, то это, по возможности, описывается во view-model'e. надеюсь, найдутся аноны, которые поправят меня.

Ответы>>829728

9 Кб, 578x191

4 Кб, 353x120

26 Авг, 18:06 #94 #827945

Дотнетач, есть один контроллер с пост - методом и одна вью - модель, на картинке, так вот, на вью - модели стоит аттрибут, который должен переназначать null на "", это весьма критично, так как в противном случае возвращается 200 ошибка, но аттрибут не работает, я долго искал почему, нашел ответ на гитхабе https://github.com/aspnet/Mvc/issues/5086, в итоге есть два варианта, убрать ModelState из контроллера, и сделать простую логику if/else, или написать свой аттрибут, есть конечно вариант подождать до релиза, но я не хочу. Так вот, как лучше сделать - то? Может быть есть ещё подобные аттрибуты?

Ответы>>827950>>827953>>827974

26 Авг, 18:11 #95 #827950

>>827945
400* ошибка же, глупость написал

26 Авг, 18:13 #96 #827953

>>827945
> который должен переназначать null на ""
> ConvertEmptyStringToNull = false

Ответы>>827958>>827984

1 Кб, 447x47

26 Авг, 18:19 #97 #827958

>>827953
Все правильно же, по умолчанию аттрибут выставлен в true, если идет запрос как на картинке, вью - модель вместо "" будет держать null в поле text, если false, то вместо null идет "", не знаю к чему твой зеленый маркер.

Ответы>>827984

26 Авг, 18:40 #98 #827974

>>827945
>аттрибут, который должен переназначать null на ""
>ConvertEmptyStringToNull
Судя по названию он наоборот заменяет "" на null

26 Авг, 18:49 #99 #827984

>>827958
>>827953
Да, но он не работает, ты мой пост читал? У аттрибута 2 состояния: true и false, если false null->"", если true ""->null

26 Авг, 20:18 #100 #828078

аноны, что можете рассказать насчёт undo/redo в c#, и в частности в WPF в контексте datagrid имею ввиду, как реализовывать? мб у кого нибудь есть ссылки, где приведён хороший пример имплементации

26 Авг, 20:24 #101 #828087

3-й день сижу залипаю.
Хочу перекатиться из VBA.
Поставил SharpDevelope и NetOffice.
C моделью Экселя разобрался, а по виндовой api-шке куда лазить? Хочется изнутри ее пощупать

26 Авг, 22:21 #102 #828277

>>826699
Тоже хотел спросить. Бампану

26 Авг, 22:28 #103 #828286

>>825651
> Visual Studio Code

Ответы>>828288

26 Авг, 22:30 #104 #828288

>>828286
Но это же ноутпад++ на жабаскрипте.

Ответы>>828291

26 Авг, 22:35 #105 #828291

>>828288
Ноутпад, да с интеллисенсом, отладкой и другими ништяками.

26 Авг, 22:39 #106 #828293

>>825557
Можно кастомных на создавать в последней вижле. А с R# так вообще красота

Ответы>>828397

27 Авг, 00:00 #107 #828375

Чем заполнить недоджуну свой гитхаб?

Ответы>>828712

27 Авг, 00:34 #108 #828397

>>828293
R#?

Ответы>>828533

УЁБОК 27 Авг, 02:02 #109 #828448

Сап, профи. Задача такая:
имеются веб-интерфейсы от МФУ xerox и ricoh. Они совершенно разные по интерфейсу и функционалу.
Задача собирать статистку по отпечаткам каждый день.
Скажите, как это сделать? В компании 100 МФУ двух типов.

27 Авг, 09:47 #110 #828533

>>828397
resharper же

27 Авг, 10:06 #111 #828544

Ради интереса качнул iso vs2015community.
Установка длится уже более 4-х часов с постоянной загрузкой доп. компонентов.
Микрософт в своем репертуаре.
Еще чуть чуть и я дропну это говно

Ответы>>828563

27 Авг, 11:16 #112 #828563

>>828544
А когда если установится, ты охуеешь от медленности, а если решарпер поставишь - то вообще вешаться можно.
Калькулятор свой дропни, собачка.

Ответы>>828577>>828579

27 Авг, 11:38 #113 #828577

>>828563
чистая студия шустрая, не пизди. конечно, если не сравнивать с блокнотом

Ответы>>828585

27 Авг, 11:46 #114 #828579

>>828563
в курсе что ты ебнутый?

Ответы>>828585

44 Кб, 500x330

27 Авг, 12:05 #115 #828585

>>828577
>>828579

Ответы>>828601

11 Кб, 200x200

27 Авг, 12:14 #116 #828592

Анон, как работать с версиями?
Есть, допустим, мои приложение/библиотека и я хочу добавить новые фичи в это приложение/библиотеку при этом, чтобы версия которая есть сейчас продолжала работать и не трогать ее вообще.
Если текущее решение находится в папке Program_v1.0.0.0, я хочу создать новую папку Program_v2.0.0.0 скопировать туда все содержимое из первой и поменять версию в настройках Visual Studio, и все. Такой подход практикуется? Что может пойти не так? И как по-нормальному решаются такие вопросы?

Ответы>>828605>>828610

1484 Кб, 320x240

27 Авг, 12:25 #117 #828601

>>828585

27 Авг, 12:31 #118 #828605

>>828592
>продолжала работать и не трогать ее вообще
Так сделай билд и не трогай ее вообще.
>папки какие-то, скопировать куда-то
Ты про гит, например, слышал?

Ответы>>828616

27 Авг, 12:36 #119 #828610

>>828592
https://ru.wikipedia.org/wiki/Система_управления_версиями
Самая популярная сейчас – git.
https://try.github.io/levels/1/challenges/1

Ответы>>828616

27 Авг, 12:55 #120 #828616

>>828605
>>828610

Ок, спасибо. Читал Эндрю Троелсена и когда в примерах нужна была новая версия библиотеки он просто копировал ее из одной папки в другую попутно меняя версию в имени папки и настройках не заморачиваясь, вот и стало интересно насколько это правильно и применимо на практике.

16 Кб, 730x345

20 Кб, 692x383

4 Кб, 303x149

27 Авг, 13:22 #121 #828622

Подскажите по entity framework'у, на первой картинке один - к - одному модель с официальной документации, зачем они ставят public Blog Blog { get; set; } после указания id? Следующие две картинки моя модель и метод в сервисе, как правильнее делать? Я смотрел разные гитхабы, и везде делали по - разному. Мой вариант работает если что, но я хочу узнать как надо.

Ответы>>828636>>828638

27 Авг, 13:50 #122 #828636

>>828622
Если тебе BlogImage нужен Blog - то делаешь, если не нужен - не делаешь. Вопрос то в чем?

Ответы>>828692

27 Авг, 13:51 #123 #828638

>>828622
> зачем они ставят public Blog Blog
чтобы иметь доступ к связанной сущности из BlogImage, очевидно

Ответы>>828692

27 Авг, 14:57 #124 #828692

>>828636
>>828638
В этом и был вопрос, все ясно, спасибо.

26 Кб, 633x471

27 Авг, 15:22 #125 #828712

>>828375

Говнокодом

27 Авг, 20:45 #126 #828995

Посоветуйте хороших книг по ООП, нужно мозги перестроить, а то только на си писал и питоне без использования классов.

Ответы>>829025

27 Авг, 21:43 #127 #829025

>>828995
Ну что - нибудь из книг Фаулера наверное, можешь навернуть Gang of Four, но тебе ведь основы нужны? Все эти книжки по паттернам скорее для архитекторов, джуну достаточно знать основы ООП + пару паттернов, которые идут в любой литературе по C#.

Ответы>>829052

27 Авг, 22:19 #128 #829052

>>829025

Ну ок, на будущее тогда сохраню, я пока читаю с# players guide, хорошо написана, может и освою.

27 Авг, 23:38 #129 #829091

>>824683 (OP)
> Хардкорная литература по шарпу
Ептя, анон. Спасибо за наводку. Алсо, есть ли еще что-то интересное по Machine Learning и прочему ИИ для дотнета? На курсере эта тема вскрывается с помощью питона, а меня от его синтаксиса блевать тянет.
а то ведь чувствую, что придется качать скилл борьбы с брезгливостью
плюралсайт сосет хуй

Ответы>>829093

27 Авг, 23:39 #130 #829093

>>829091
Ах да, и лучей добра тебе за такие книжечки.

89 Кб, 400x254

Экземляр класса в качестве параметра 28 Авг, 00:39 #131 #829112

Господа, помогите, кажется, я стал заложником ДИЗАЙНА своей утилитки.

В программе есть абстрактный класс, у него несколько полей и свойств, часть полей и свойств переопределены в классах-наследниках.
В другом классе есть метод, обрабатывающий данные из этих полей. Но, так как метод завязан на сравнение данных, мне нужно передать ему в качестве параметров два экземпляра класса, чтобы в теле метода вызывать свойства, возвращающие нужные мне значения. На момент компиляции не знаю, какого типа будут эти экземпляры, знаю только, что это будет один из унаследованных от абстрактного, классов. Всяческие мои ухищрения приводят меня к ошибкам, сама частая "Error CS0120 An object reference is required for the non-static field, method, or property", из-за несоответствия типов.

Наверное, мой способ кривой, но эта концепция с наследниками от абстрактного работала до текущего момента.

Ответы>>829130

28 Авг, 01:19 #132 #829130

>>829112
Ты что-то не то несешь, у тебя ругается на static, а не на абстрактность. Покажи вырезку из кода, как-что вызываешь. В чем проблема передать два объекта с типом абстрактного класса?

Ответы>>829216

521 Кб, 1500x2306

28 Авг, 03:41 #133 #829216

>>829130
Спасибо, надо было просто проговорить проблему: уже что-то под ночь туплю., забыл создать экземляр.
Извиняюсь за беспокойство.

28 Авг, 14:31 #134 #829459

Что читать после c# players guide? Переходить к более хардкорному материалу или

< C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) ?

Ответы>>829460>>829488

28 Авг, 14:31 #135 #829460

>>829459
> C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) ?

fixed

28 Авг, 15:21 #136 #829488

>>829459
Линк/коллекции/делегирование усвоил? Пиши приложуху, попутно разберешься асинхронностью, узкими местами языка, поймешь несколько архитектурных паттернов, разберешься с фреймворками той области, в которой хочешь работать, смотри решения на SO, рефакторь свой код, попутно можешь полистать что - нибудь уровня Writing High Perfomance или CookBook, через пару месяцев сможешь спокойно пособеседоваться, так как половину ты уже знать будешь, рихтера оставь на потом, ну, или прочитай если ты так этого хочешь. Не увлекайся книгами, а то будешь рассказывать про паттерны и цититровать CLR via C#, не имея ни одного проекта.

Ответы>>829496

28 Авг, 15:27 #137 #829496

>>829488
Спасибо за развернутый ответ, но я только пол книги прочитал и спрашивал на будущее, ну короче так и сделаю, а вообще хочу попрообовать игру сделать, только не знаю Monogame или юнити выбрать.

28 Авг, 16:12 #138 #829543

Что значит такая запись?
>GameObject tile = (GameObject) Instantiate(er);
Вначале понятно - объявление переменной tile типа GameObject, которой присваивается результат функции Instantiate c аргументом er. Но что значит (GameObject)?

Ответы>>829545>>829731

28 Авг, 16:13 #139 #829545

>>829543
Приведение типа

Ответы>>829547

28 Авг, 16:17 #140 #829547

>>829545
Спасибо.

83 Кб, 411x411

28 Авг, 19:01 #141 #829687

private int _name
или
private int name
????

Ответы>>829705>>829816>>829826>>829892

28 Авг, 19:20 #142 #829705

>>829687
auto property

28 Авг, 19:48 #143 #829728

>>827898
ViewModel вообще ничего не должна знать ни о контролах, ни о событиях.

28 Авг, 19:54 #144 #829731

>>829543
Типичный юнити-говнокодер, лол.

28 Авг, 21:09 #145 #829816

>>829687
Так и так пишут, самый простой пример если взять DI

public Class(IService service) {
...this.service = service;
}
public Class(IService service) {
..._service = service;
}
Хотя в офиц. документациях в основном _prop идет, без this

28 Авг, 21:23 #146 #829826

>>829687
Ты вынужден называть переменную с подчеркиванием?

28 Авг, 22:36 #147 #829892

>>829687
Дело вкуса

28 Авг, 23:26 #148 #829961

Господа, я знаю в нашем треде сидят исключительно архитекторы и сеньоры с 10+ годами опыта, потому я прошу мельком посмотреть мое поделие и сказать мне почему я нубас. Мне ещё учиться 2 года, но хочу попробовать сходить на собеседование в след. году. https://github.com/Softenraged
Алсо, оно сделано процентов на 70 только, буду в конце семестра допиливать, не успеваю так как.

Ответы>>831211

29 Авг, 04:09 #149 #830056

>>827709
Во первых твой код падает с OutOfMemoryException, а во вторых работает также медленно как и мой.

Ответы>>830128>>830201

29 Авг, 04:19 #150 #830060

Нужно по быстрому загрузить из графического файла данные о разрешении изображения? Само изображение загружать не нужно.

Ответы>>830109

29 Авг, 08:53 #151 #830109

>>830060
Сам разобрался, Taglib# помог.

29 Авг, 10:08 #152 #830128

>>830056
- оборачивать Stream в using
- оборачивать Bitmap/Image в using
- избавиться от лишних IO-операций, коими являются те же Console.WriteLine
- не очень ясно, что такое IsImageFile(files) (и, судя по всему, на всех шагах цикла, оно возвращает абсолютно одинаковое значение)
- используй Parallel
- шо такое img_info - тоже ясно достаточно смутно
- зная длину конечного листа, создавай экземпляр с явным указанием размеров
- наконец, зачем тебе бездонный лист имэджев? делай что-то с ними на каком-то этапе уже

Ответы>>830186

29 Авг, 10:52 #153 #830149

>>827672
Разобрался. В итоге в говнобазах в говнообозревателях серверов, объектов SQL и прочих эксплореров заблудился, в разные базы запросы посылал и смотрел итог.

29 Авг, 11:36 #154 #830186

>>830128
Вот полный код, уже переделанный.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SQLite;
using System.Data;
using System.IO;
using TagLib;

namespace Azusa
{
class Program
{
static void Main(string[] args)
{
//string connection_string = "data source=C:\\utils\\Erza\\erza.sqlite";
Console.WriteLine("Получаю список файлов из {0}", args[0]);
string[] files = Directory.GetFiles(args[0], ".", SearchOption.AllDirectories);
//Parser parser = new Parser();
List<img_info> img_list = new List<img_info>();
for (int i = 0; i < files.Length; i++)
{
if (IsImageFile(files))
{
//var data = parser.Parse(files);
//data.ToList().ForEach(Console.WriteLine);
//System.IO.FileStream fs = new System.IO.FileStream(files, System.IO.FileMode.Open);
//System.Drawing.Image img = System.Drawing.Image.FromStream(fs);
//fs.Close();
img_info ii = ParsePhoto(files);
if (ii != null)
{
//img_info ii = new img_info();
//ii.Width = img.Width;
//ii.Height = img.Height;
ii.Ratio = (float)ii.Width / (float)ii.Height;
ii.hash = Path.GetFileNameWithoutExtension(files);
img_list.Add(ii);
}
Console.WriteLine("Обрабатываю: {0} [{1}/{2}]", Path.GetFileName(files), i+1, files.Length);
}
}
WriteDB(img_list, ".\\img_info.db");
}
static void WriteDB(List<img_info> img_list, string BaseName)
{
SQLiteConnection.CreateFile(BaseName);

using (SQLiteConnection connection = new SQLiteConnection("data source=" + BaseName))
{
connection.Open();

using (SQLiteCommand command = new SQLiteCommand(connection))
{
command.CommandText = @"CREATE TABLE [image_info] (
[id] integer PRIMARY KEY AUTOINCREMENT NOT NULL,
[hash] char(32) NOT NULL,
[width] integer NOT NULL,
[height] integer NOT NULL,
[ratio] real NOT NULL
);";
command.CommandType = CommandType.Text;
command.ExecuteNonQuery();
}
}
//hguihuihihiu
using (SQLiteConnection connection = new SQLiteConnection("data source=" + BaseName))
{
int count_file = 0;
int all_files = img_list.Count;
DateTime start = DateTime.Now;
connection.Open();
SQLiteTransaction transact = connection.BeginTransaction();
foreach (img_info img in img_list)
{
count_file++;
using (SQLiteCommand command = new SQLiteCommand(connection))
{
command.CommandText = "INSERT INTO image_info(hash, width, height, ratio) VALUES(@hash, @width, @height, @ratio);";
command.Parameters.AddWithValue("hash", img.hash);
command.Parameters.AddWithValue("width", img.Width);
command.Parameters.AddWithValue("height", img.Height);
command.Parameters.AddWithValue("ratio", img.Ratio);
command.ExecuteNonQuery();
}
Console.WriteLine("Фаил {0} добавлен. [{1}/{2}]", Path.GetFileName(img.hash), count_file, all_files);
}
transact.Commit();
DateTime finish = DateTime.Now;
Console.WriteLine("Файлов проверено: {0} за: {1} секунд ({2} в секунду)", img_list.Count, (finish - start).TotalSeconds.ToString("0.00"), (img_list.Count / (finish - start).TotalSeconds));
}
}
static bool IsImageFile(string s)
{
int t = s.LastIndexOf('.');
if (t >= 0)
{
string ext = s.Substring(t).ToLower();
switch (ext)
{
case ".jpg":
return true;
//break;
case ".jpeg":
return true;
//break;
case ".png":
return true;
//break;
case ".bmp":
return true;
//break;
case ".gif":
return true;
//break;
case ".tif":
return true;
//break;
case ".tiff":
return true;
//break;

}
}
return false;
}
static img_info ParsePhoto(string path)
{
img_info ii = new img_info();
TagLib.File file = null;

try
{
file = TagLib.File.Create(path);
}
catch (TagLib.UnsupportedFormatException)
{
Console.WriteLine("UNSUPPORTED FILE: " + path);
Console.WriteLine(String.Empty);
Console.WriteLine("---------------------------------------");
Console.WriteLine(String.Empty);
return null;
}

var image = file as TagLib.Image.File;
if (file == null)
{
Console.WriteLine("NOT AN IMAGE FILE: " + path);
Console.WriteLine(String.Empty);
Console.WriteLine("---------------------------------------");
Console.WriteLine(String.Empty);
return null;
}
/
Console.WriteLine(String.Empty);
Console.WriteLine(path);
Console.WriteLine(String.Empty);

Console.WriteLine("Tags in object : " + image.TagTypes);
Console.WriteLine(String.Empty);

Console.WriteLine("Comment : " + image.ImageTag.Comment);
Console.Write("Keywords : ");
foreach (var keyword in image.ImageTag.Keywords)
{
Console.Write(keyword + " ");
}
Console.WriteLine();
Console.WriteLine("Rating : " + image.ImageTag.Rating);
Console.WriteLine("DateTime : " + image.ImageTag.DateTime);
Console.WriteLine("Orientation : " + image.ImageTag.Orientation);
Console.WriteLine("Software : " + image.ImageTag.Software);
Console.WriteLine("ExposureTime : " + image.ImageTag.ExposureTime);
Console.WriteLine("FNumber : " + image.ImageTag.FNumber);
Console.WriteLine("ISOSpeedRatings : " + image.ImageTag.ISOSpeedRatings);
Console.WriteLine("FocalLength : " + image.ImageTag.FocalLength);
Console.WriteLine("FocalLength35mm : " + image.ImageTag.FocalLengthIn35mmFilm);
Console.WriteLine("Make : " + image.ImageTag.Make);
Console.WriteLine("Model : " + image.ImageTag.Model);
/
if (image.Properties != null)
{
//Console.WriteLine("Width : " + image.Properties.PhotoWidth);
//Console.WriteLine("Height : " + image.Properties.PhotoHeight);
//Console.WriteLine("Type : " + image.Properties.Description);
ii.Height = image.Properties.PhotoHeight;
ii.Width = image.Properties.PhotoWidth;
}

//Console.WriteLine();
//Console.WriteLine("Writable? : " + image.Writeable.ToString());
//Console.WriteLine("Corrupt? : " + image.PossiblyCorrupt.ToString());
/
if (image.PossiblyCorrupt)
{
foreach (string reason in image.CorruptionReasons)
{
Console.WriteLine(" " + reason);
}
}

Console.WriteLine("---------------------------------------");*/
return null;
}
}
class img_info
{
public string hash;
public int Width;
public int Height;
public float Ratio;
}
}

29 Авг, 11:36 #154 #830186

>>830128
Вот полный код, уже переделанный.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SQLite;
using System.Data;
using System.IO;
using TagLib;

namespace Azusa
{
class Program
{
static void Main(string[] args)
{
//string connection_string = "data source=C:\\utils\\Erza\\erza.sqlite";
Console.WriteLine("Получаю список файлов из {0}", args[0]);
string[] files = Directory.GetFiles(args[0], ".", SearchOption.AllDirectories);
//Parser parser = new Parser();
List<img_info> img_list = new List<img_info>();
for (int i = 0; i < files.Length; i++)
{
if (IsImageFile(files))
{
//var data = parser.Parse(files);
//data.ToList().ForEach(Console.WriteLine);
//System.IO.FileStream fs = new System.IO.FileStream(files, System.IO.FileMode.Open);
//System.Drawing.Image img = System.Drawing.Image.FromStream(fs);
//fs.Close();
img_info ii = ParsePhoto(files);
if (ii != null)
{
//img_info ii = new img_info();
//ii.Width = img.Width;
//ii.Height = img.Height;
ii.Ratio = (float)ii.Width / (float)ii.Height;
ii.hash = Path.GetFileNameWithoutExtension(files);
img_list.Add(ii);
}
Console.WriteLine("Обрабатываю: {0} [{1}/{2}]", Path.GetFileName(files), i+1, files.Length);
}
}
WriteDB(img_list, ".\\img_info.db");
}
static void WriteDB(List<img_info> img_list, string BaseName)
{
SQLiteConnection.CreateFile(BaseName);

using (SQLiteConnection connection = new SQLiteConnection("data source=" + BaseName))
{
connection.Open();

using (SQLiteCommand command = new SQLiteCommand(connection))
{
command.CommandText = @"CREATE TABLE [image_info] (
[id] integer PRIMARY KEY AUTOINCREMENT NOT NULL,
[hash] char(32) NOT NULL,
[width] integer NOT NULL,
[height] integer NOT NULL,
[ratio] real NOT NULL
);";
command.CommandType = CommandType.Text;
command.ExecuteNonQuery();
}
}
//hguihuihihiu
using (SQLiteConnection connection = new SQLiteConnection("data source=" + BaseName))
{
int count_file = 0;
int all_files = img_list.Count;
DateTime start = DateTime.Now;
connection.Open();
SQLiteTransaction transact = connection.BeginTransaction();
foreach (img_info img in img_list)
{
count_file++;
using (SQLiteCommand command = new SQLiteCommand(connection))
{
command.CommandText = "INSERT INTO image_info(hash, width, height, ratio) VALUES(@hash, @width, @height, @ratio);";
command.Parameters.AddWithValue("hash", img.hash);
command.Parameters.AddWithValue("width", img.Width);
command.Parameters.AddWithValue("height", img.Height);
command.Parameters.AddWithValue("ratio", img.Ratio);
command.ExecuteNonQuery();
}
Console.WriteLine("Фаил {0} добавлен. [{1}/{2}]", Path.GetFileName(img.hash), count_file, all_files);
}
transact.Commit();
DateTime finish = DateTime.Now;
Console.WriteLine("Файлов проверено: {0} за: {1} секунд ({2} в секунду)", img_list.Count, (finish - start).TotalSeconds.ToString("0.00"), (img_list.Count / (finish - start).TotalSeconds));
}
}
static bool IsImageFile(string s)
{
int t = s.LastIndexOf('.');
if (t >= 0)
{
string ext = s.Substring(t).ToLower();
switch (ext)
{
case ".jpg":
return true;
//break;
case ".jpeg":
return true;
//break;
case ".png":
return true;
//break;
case ".bmp":
return true;
//break;
case ".gif":
return true;
//break;
case ".tif":
return true;
//break;
case ".tiff":
return true;
//break;

}
}
return false;
}
static img_info ParsePhoto(string path)
{
img_info ii = new img_info();
TagLib.File file = null;

try
{
file = TagLib.File.Create(path);
}
catch (TagLib.UnsupportedFormatException)
{
Console.WriteLine("UNSUPPORTED FILE: " + path);
Console.WriteLine(String.Empty);
Console.WriteLine("---------------------------------------");
Console.WriteLine(String.Empty);
return null;
}

var image = file as TagLib.Image.File;
if (file == null)
{
Console.WriteLine("NOT AN IMAGE FILE: " + path);
Console.WriteLine(String.Empty);
Console.WriteLine("---------------------------------------");
Console.WriteLine(String.Empty);
return null;
}
/
Console.WriteLine(String.Empty);
Console.WriteLine(path);
Console.WriteLine(String.Empty);

Console.WriteLine("Tags in object : " + image.TagTypes);
Console.WriteLine(String.Empty);

Console.WriteLine("Comment : " + image.ImageTag.Comment);
Console.Write("Keywords : ");
foreach (var keyword in image.ImageTag.Keywords)
{
Console.Write(keyword + " ");
}
Console.WriteLine();
Console.WriteLine("Rating : " + image.ImageTag.Rating);
Console.WriteLine("DateTime : " + image.ImageTag.DateTime);
Console.WriteLine("Orientation : " + image.ImageTag.Orientation);
Console.WriteLine("Software : " + image.ImageTag.Software);
Console.WriteLine("ExposureTime : " + image.ImageTag.ExposureTime);
Console.WriteLine("FNumber : " + image.ImageTag.FNumber);
Console.WriteLine("ISOSpeedRatings : " + image.ImageTag.ISOSpeedRatings);
Console.WriteLine("FocalLength : " + image.ImageTag.FocalLength);
Console.WriteLine("FocalLength35mm : " + image.ImageTag.FocalLengthIn35mmFilm);
Console.WriteLine("Make : " + image.ImageTag.Make);
Console.WriteLine("Model : " + image.ImageTag.Model);
/
if (image.Properties != null)
{
//Console.WriteLine("Width : " + image.Properties.PhotoWidth);
//Console.WriteLine("Height : " + image.Properties.PhotoHeight);
//Console.WriteLine("Type : " + image.Properties.Description);
ii.Height = image.Properties.PhotoHeight;
ii.Width = image.Properties.PhotoWidth;
}

//Console.WriteLine();
//Console.WriteLine("Writable? : " + image.Writeable.ToString());
//Console.WriteLine("Corrupt? : " + image.PossiblyCorrupt.ToString());
/
if (image.PossiblyCorrupt)
{
foreach (string reason in image.CorruptionReasons)
{
Console.WriteLine(" " + reason);
}
}

Console.WriteLine("---------------------------------------");*/
return null;
}
}
class img_info
{
public string hash;
public int Width;
public int Height;
public float Ratio;
}
}

Показать весь текст
Ответы>>830190>>830205

29 Авг, 11:41 #155 #830190

>>830186
ебать-колотить, тебе dotnetfiddle или pastebin показать?

Ответы>>830927

20 Кб, 654x330

29 Авг, 11:56 #156 #830201

>>830056
Я поймал это исключение только тогда, когда прочитав твой пост запустил код по директории, где 2000+ картинок, что ты там загружать пытаешься? Ты в любом случае быстрее не сделаешь, работая с bitmap на 1000+ изображений, как вариант оставь в покое Image и используй FileInfo, пикрилейтед.

Ответы>>830924

6 Кб, 200x251

29 Авг, 12:01 #157 #830205

>>830186

29 Авг, 20:13 #158 #830644

Поясните что делает Thread.Sleep(0)
Thread.Sleep(0) relinquishes the thread’s current time slice immediately, voluntarily handing over the CPU to other threads.
Это объяснение не совсем понятно.
Что значит передает обработку другим потокам?
Когда он не во сне другие потоки и так работают. Зачем потоку передавать тому, что и так работает.

Ответы>>830654

13 Кб, 745x200

1 Кб, 202x58

29 Авг, 20:27 #159 #830654

>>830644
Инженеры Интел думают, как бы тебе ядер побольше сделать, а у него все потоки работают.

Ответы>>830662

29 Авг, 20:35 #160 #830662

>>830654
> Инженеры Интел думают, как бы тебе ядер побольше сделать, а у него все потоки работают.
Первая глава по многопточности
http://www.albahari.com/threading/
Тебе лишь бы выебнуться :(
Спасибо за нихуя.

Ответы>>830793

29 Авг, 21:14 #161 #830703

>>825035
Чет тоже в голосину с этого.

29 Авг, 21:39 #162 #830744

Извините за возможно супер-тупой вопрос, но какой инструмент надо использовать, чтобы написать на андроид простую програмку? Яву не знаю, но знаю Си-сярп.

Ответы>>830759>>830764>>830864>>831203

29 Авг, 21:47 #163 #830759

>>830744
их много. в vs2015 при установке предлагают андроид кит установить. также, можешь на юнити писать

Ответы>>830832

29 Авг, 21:48 #164 #830764

>>830744
Один хуй, ты в своей андроид программке даже в синтаксисе не увидишь разницы. Пиши в андроид студио шарп код и исправляй места где подчеркивает красным вслед за подсказками.

Ответы>>830832

32 Кб, 1355x383

35 Кб, 1299x355

29 Авг, 21:58 #165 #830793

>>830662
Ну ты сразу не загорайся, если процессор занят тредом - то процессор скорее всего занят тредом, и ему до пизды есть у тебя там потоки или нет, он же занят тредом.
Вот смотри виртуалки с виндой не было один процессор с одним ядром, первый пик - без Thread.Sleep, но если его добавить то процессор сможет переключиться к другим тредам (пик 2). В принципе, ThreadScheduler должен этим заниматься, но все зависит от его реализации, ну и от количества ядер конечно же.

Ответы>>830815

29 Авг, 22:12 #166 #830815

>>830793
думаю, тут дело в том, как устроена многопоточность в современных ОС: во время работы ОС функционирует большое количество потоков, ограниченное, кажется количеством ядер*1022. каждый тред имеет приоритет, и одновременно одно логическое ядро занято только одним тредом. на всё-провсё в зависимости приоритета ему выделяется различное время, пропорция приоритет-время прямопропорциональная, но всё же выделяемое треду время исчисляется микросекундами. дак вот, вероятно, за несколько десятков мкс ядро успевает за один заход обработать все 500 итераций в треде, НО! если ты после каждой итерации вызываешь тред.слип(), то ты "аварийно" завершаешь работу ядра с тредом раньше времени, и ядро переходит к другому треду. возможно, дальше в контексте приложения процессор возьмётся за тред с выводом Х, а возможно снова за тред с выводом У

29 Авг, 22:33 #167 #830832

>>830759
>>830764
Я думал меня отсюда пошлят в три пизды и колено, а тут ответили адекватно и быстро.
Спасибо вам анончики, у вас ламповый тред

29 Авг, 23:33 #168 #830864

>>830744
Xamarin

30 Авг, 03:06 #169 #830924

>>830201
Нужно получить информацию о разрешении для 200 000 картинок.

Ответы>>830981

30 Авг, 03:26 #170 #830927

>>830190
http://pastebin.com/bi8YfEEb

Ответы>>830981

30 Авг, 08:30 #171 #830981

>>830924
>>830927
записывай их периодически куда-нибудь. только для одних числовых полей твоего класса для 200К записей понадобится порядка 24Гб памяти, которой у тебя, подозреваю, не присутствует

Ответы>>830987>>831205

30 Авг, 08:44 #172 #830987

>>830981
(4+4+8+32)*200 000=9 600 000 байт.

Ответы>>831158

30 Авг, 12:52 #173 #831132

Скок занимает перекот с плюсов на шарп? Какие основные особенности?

Ответы>>831164>>831208

30 Авг, 13:12 #174 #831158

>>830987
блжад, я же разрядности считал. но все-равно много
float занимает 4
а со string я не уверен, что получится 32. как так-то?

Ответы>>831715

30 Авг, 13:21 #175 #831164

>>831132
>Какие основные особенности?
Ну это как есть говно, а потом резко начать есть пирожные.

30 Авг, 13:59 #176 #831203

>>830744
vs 2015 community. Там есть волшебный Xamarin

30 Авг, 14:02 #177 #831205

>>830981
Чувак, не открывай картинки целиком. Это сжирает оче дохуя памяти.
Юзай другой подход.
Например тут: http://stackoverflow.com/questions/111345/getting-image-dimensions-without-reading-the-entire-file

Ответы>>831712

30 Авг, 14:04 #178 #831208

>>831132
Ну если в ооп ты можешь, то особо не долго. Просто тут нету работы с указателями, адресами и прочим. на самом деле есть, но тебе не понадобится скорее всего
Пробуй, язык простой. Тем более, ты уже умеешь плюсы.

30 Авг, 14:08 #179 #831211

>>829961
Особо не смотрел.
Глянул один файл LinqExtension

Братан, ты чего?
последние 5 записей берутся просто:
.Skip(count-5).Take(5);
Всё.
Нахуя какие-то очереди?
Не усложняй, братан.

Если освободится время - гляну по максимуму, но не уверен.

Ответы>>831222

30 Авг, 14:22 #180 #831222

>>831211
> .Take(5)
> Не усложняй

Ответы>>831255

30 Авг, 15:19 #181 #831255

>>831222
а что не так?
Как ещё проще-то?
Реверс а потом взять 5?

Ответы>>831288

30 Авг, 16:14 #182 #831288

>>831255
Братишка всегда пишет зеленым маркером, дело все в том, что на втором релиз кандидате не работал MoreLinq, а решения с Skip(), Take(), Reverse() не самые эффективные, вот я и взял оттуда решение с очередью, потом когда проапдейтился до RTM, решил оставить, не подключая лишние ссылки в class library.

30 Авг, 16:50 #183 #831311

хлопци, как используя ADO.net получая информацию в DataSet из ms sql сервера получить ещё и навешенные в самом sql-сервере на таблицы ограничения типа первичный/внешний ключ, null\not null, check и прочие?

Ответы>>831636

30 Авг, 17:38 #184 #831349

>>825026
> HtmlAgilityPack
Он вроде не обновляется уже.

30 Авг, 20:01 #185 #831441

Почему Шарп такой классный? Когда я его пишу, то чувствую вкус шоколада и кремовых пирожных. Когда я писал на жаве, я чувствовал вкус гнили и смрад разложения.

Ответы>>831480

30 Авг, 21:04 #186 #831480

>>831441
Двачую. Сразу видно язык, дизайну которого посвятили кучу времени.

Ответы>>831512

68 Кб, 600x400

30 Авг, 21:11 #187 #831487

Решил наконец попробовать WPF. И еле нашёл класс program с методом Main(). И открыв его, прочитал: «изменения в этом классе могут быть утеряны, если файл отрегенерирует».

Почему студия всячески охраняет от меня этот класс?
Ведь любой новичок из-за этого не знает откуда начинается программа, и не понимает, что окна можно создавать как угодно, а не только главное с модальными. И именно по этой причине начинают программировать в кнопках превращая программу в однородный бульон без деления программы на слои гуя, данных и бизнес-логики.

С доступным Program.Main, Я ПОВЕЛЕВАЛ: что, когда, и как будет инициализироваться и настраиваться. И какие действия нужно выполнить до начала программы и после. Каждый класс создавался и вкладывался в более сложную структуру (как часы, создающиеся не из отдельных винтиков а из блоков, состоящих из винтиков). Формы мог организовать как угодно.

А тут вам — пишите в главной форме, а о program.Main() забудте. (MVVM лишь способ взаимодействия формы с источником данных, а не способ создания архитектуры программы)
Как теперь жить? Может я что-то не правильно понял?

Ответы>>831515>>831516>>833155

30 Авг, 21:23 #188 #831503

>>825047
Делай через ClickOnce. Очень хорошо заходит на предприятиях.

Ответы>>831547

30 Авг, 21:29 #189 #831512

>>831480
Ну не совсем же так радужно все. Вот взять даже конструкцию Switch / Case оператора. Это же привет из прошлого века. Сейчас, как очень хорошая альтернатива свичу предлагается паттерн матчинг (Rust к примеру).
Или же модификаторы доступа к методам и свойствам класса. Почему их нельзя группировать, как это сделано в C++ ? Постоянно вынужден к каждому члену класса приписывать свой модификатор.

Ответы>>831695>>831740

30 Авг, 21:31 #190 #831515

>>831487
Ты неправильно понял. Оставь в покое Main(). WPF рулез

Ответы>>831551

30 Авг, 21:31 #191 #831516

>>831487
В WPF окна не очень принято создавать. Там есть страницы, которые ты можешь загружать во фрейм на главном окне приложения.

Ответы>>831551

30 Авг, 21:33 #192 #831518

Поясните нубу разницу в использовании (int) и Convert.Int32()? Максимально полно, то что нашел пока:
- Convert.Int32() математически округляет в то время как (int) берет целую часть
- При обработке null (int) выдаст исключение, Convert.Int32() вернет 0

Что еще и когда какой способ приведения лучше применять?

Ответы>>831523

30 Авг, 21:37 #193 #831523

>>831518
Если ты говоришь о дробях и тебе нужна точность, то можно реализовать это в стиле Smalltalk. Делаешь небольшой тип данных, который раздельно хранить в double числитель и знаменатель. И делаешь метод, который делит с заданной точностью, возвращая результат.

Ответы>>831528

11 Кб, 400x248

Visual Studio Lightswitch 30 Авг, 21:40 #194 #831527

Привет, Аноны. Кто-то может пояснить за сабж ? Он хоть развивается или давно уже заброшен с 2012 года ?

30 Авг, 21:42 #195 #831528

>>831523
Не, я говорю о различиях в использовании, когда что лучше использовать и почему. Пару различий которые я нашел я привел

Ответы>>831532

30 Авг, 21:44 #196 #831532

>>831528
Можно взять Jetbrains Dotpeek и посмотреть, как устроен метод Int32() в классе Convert.

Ответы>>831543

30 Авг, 21:52 #197 #831539

Аноны, короче есть Яндекс мани, и когда на него приходят деньги от клиента он предлагает сделать так:
>Уведомление отправляется как HTTP-запрос на адрес, указанный в настройках счета, в следующем формате:

> метод — POST;
> каждый параметр уведомления указывается парой ключ/значение в виде параметра POST-запроса;
> MIME-тип — application/x-www-form-urlencoded;
> кодировка символов — UTF-8.

Как мне на С# сервере принять этот запрос? Чем его слушать надо?

Ответы>>831545

30 Авг, 21:56 #198 #831543

>>831532
Декомпилем то зачем лезть?
https://github.com/dotnet/coreclr/blob/255cb7355da9cbfda84bdd09e388ef660eddffe3/src/mscorlib/src/System/Convert.cs#L1049

30 Авг, 21:58 #199 #831545

>>831539
http://www.asp.net/web-api/overview/advanced/sending-html-form-data-part-1

Ответы>>831549

30 Авг, 21:59 #200 #831547

>>831503
я не совсем корректно сформулировал вопрос. в каких ситуациях мне придётся или крайне рекомендуется делать установщик для программы? когда невозможно предоставить программу пользователю без соответствующего установщика? или в установщик запихивают всякие .нет фреймворки и прочее, необходимое для работы?

Ответы>>835345

30 Авг, 22:01 #201 #831549

>>831545
Меня не так поняли. Яндекс предлагает отправить мне уведомление с деталями платежа. Мне надо его получить и распарсить. Вот как мне этот HTTP (а лучше HTTPS) получить?

Ответы>>831599

30 Авг, 22:02 #202 #831551

>>831515
>>831516
Но всё таки. Если нужно создать подключение к базе перед работой программы или сохранение при выключении/поломке программы или в зависимости от ОС создать платформенно-зависимые классы, то где это всё писать? Учить этому главную форму точно не правильное решение. Или может выделать рабочую часть в «серверную" программу, а в другую гуй с WPF?

Ответы>>831557>>831565

30 Авг, 22:06 #203 #831557

>>831551
>Учить этому главную форму точно не правильное решение
Почему?

Ответы>>831563>>831564

30 Авг, 22:08 #204 #831563

>>831557
предположу, что перегруженность кодом и привязанность бизнес-серверного слоя к оболочке пользователя больше, ежели у отдельной программы для бизнес-сервера

30 Авг, 22:08 #205 #831564

>>831557
SOLID говорит, что должна быть одна причина для изменения. Считаю что главная форма пусть отвечает за загрузку страниц.

30 Авг, 22:09 #206 #831565

>>831551
Entity Framework ?

Ответы>>831576

30 Авг, 22:20 #207 #831576

>>831565
Он только для баз данных? Или это каркас, который в процессе загрузки, может запустить событие, в котором я смогу исходя из настроек создать классы использующиеся в задача-ориентированном коде?
Плюс позволит импортировать формочки?

Ответы>>831591

30 Авг, 22:33 #208 #831591

>>831576
Формочки делать самому придется, но он создает полный домен и репозитории для каждой таблицы. Затем его можно очень хорошо использовать в WPF с привязками данных [https://msdn.microsoft.com/en-us/data/jj574514.aspx] (очень важная штука).

И вообще там есть три основных способа работы:
1. Code First - пишешь C# код для Entity Framework и он генерирует DSL для создания схемы данных;
2. Model First - пилишь модель данных (как схема классов) в конструкторе EF и он генерирует DSL для создания схемы данных.
3. Database First - генерирует весь программный код на основе схемы данных из базы данных.

*DSL - это SQL скрипты для создания схемы данных (базы данных).

30 Авг, 22:51 #209 #831599

>>831549
>Here is a Web API controller that accepts an object via POST.

30 Авг, 23:56 #210 #831636

>>831311
> самом sql-сервере на таблицы ограничения типа первичный/внешний ключ, null\not null, check и прочие?
Настраиваешь сам при создании датасета в соответствии с твоими таблицами в бд.

31 Авг, 02:11 #211 #831695

>>831512
>Ну не совсем же так радужно все. Вот взять даже конструкцию Switch / Case оператора. Это же привет из прошлого века. Сейчас, как очень хорошая альтернатива свичу предлагается паттерн матчинг (Rust к примеру).
Паттерн матчинг завезут в C# 7, уже скоро, есть превью https://blogs.msdn.microsoft.com/dotnet/2016/08/24/whats-new-in-csharp-7-0/

Ответы>>831745

31 Авг, 03:02 #212 #831712

>>831205
Спасибо это то что я искал.

Ответы>>831872

31 Авг, 03:08 #213 #831715

>>831158
Даже если посчитать по максимуму то на вряд ли будет больше 100 мегабайт.

31 Авг, 06:24 #214 #831740

>>831512
>модификаторы доступа ... Постоянно вынужден к каждому члену класса приписывать свой модификатор.
Можешь для приватных полей/методов не прописывать, он и так по умолчанию стоит.

Потом, в c++ удобно это тк там определение метода отдельно прописывается, а в c# все вместе.
Было бы жутко неудобно постоянно проматывать экран, что бы понять область видимости текущего метода.

31 Авг, 07:42 #215 #831745

>>831695
Хм… Так это будет хорошо смотреться в связке с Tuples.

Ответы>>831756

31 Авг, 08:39 #216 #831756

>>831745
В чем преимущество кортежа перед экземпляром класса?
Минус, который вижу я - читаемость кода хуже. Понять, что там нахуевертил джун, прочитавший про тьюплы - дорогого стоит.

Ответы>>831760>>831874

31 Авг, 08:52 #217 #831760

>>831756
Джун нахуячит в любом случае.
Для этого их сажают на правку багов и код их ревьювят.

А у людей с опытом будет больше возможностей (хотя тюплы >3 это хреновая практика).

Ответы>>831804

16 Кб, 796x270

31 Авг, 08:53 #218 #831762

Шах и мат, дотнетобляди.

Ответы>>831780

31 Авг, 10:15 #219 #831780

>>831762
Что это значит, поясни?

Ответы>>831794

31 Авг, 10:31 #220 #831794

>>831780
Это значит что ты пидор, хаха расширение файлов результатов тестов совпало с расширением исходников 1с: Кровавый энтерпрайз

31 Авг, 10:44 #221 #831804

>>831760
А при чем тут джуны вообще ? Не отвергать же все инновации только из-за того, что «раньше было лучше».

Ответы>>831853

31 Авг, 11:42 #222 #831853

>>831804
Тому що причин использовать ТЬЮПЛ немного и делать это джуну точно причин нет.
Но он об этом не знает, находит инструмент, подходящий под его задачу и бездумно использует его. А что с кодом будет потом - его не волнует.

Ответы>>831860>>831882

31 Авг, 11:49 #223 #831860

>>831853
Лел, уже вижу как мам, смотри, я без классов пишу!.
Хотя dynamic сделали, вроде его бездумно не пихают хотя иногда проскакивает, но там терминальный случай, может и тут нормально будет.

Ответы>>831894

31 Авг, 12:08 #224 #831872

>>831712
<3

31 Авг, 12:13 #225 #831874

>>831756
Ну кортеж - это ж просто набор объектов.
А класс - это ещё и поведение.
Элементарно, ватсон ёпта

31 Авг, 12:32 #226 #831882

>>831853
Если инструмент подходит под задачу, то это уже априори не бездумное использование. Но я согласен, что сначала желательно все взвесить.

Ответы>>832129

31 Авг, 12:49 #227 #831894

>>831860
Так и есть. Один такой написал огромный класс с кучей статик методов, которые возвращали кортежи. То есть представления об ООП в хоть немного сложном реальном проекте куда-то деваются и начинает лезть говнокод.
Ну ничего, уволился и пошел куда-то архитектором.
Кстати, отстал от жизни - не знал про dinamyc. Главное, теперь не проболтаться о нем джунам.

31 Авг, 15:56 #228 #831990

Пользуюсь 2015 студией + решарпер. В решарпере стоит Visual Studio Keyboard Scheme. После каждого перезапуска студии отваливаются горячие клавиши (например Ctrl+Alt+/). Приходится залазить в настройки решарпера и заново нажимать "Apply Scheme" (радиобуттон в положении Visual Studio Keyboard Scheme).
Сталкивался кто с таким?
Можно как-то исправить это?

Ответы>>831995>>832218

wpf+materialDesign 31 Авг, 15:58 #229 #831992

йо шарпачи. есть проект, накидать 3 формы: список контактов, страница пользователя, и страница чатика.
ну и соответственно переход между этими страницами.
требуется реализовать это на wpf, в стиле MaterialDesign.
Сколько берут за выполнение задачи такой?

Ответы>>831993

31 Авг, 16:00 #230 #831993

>>831992

Сделаю за 5000$

Ответы>>832001

31 Авг, 16:04 #231 #831995

>>831990

Нахуя тебе это тормозяещее говно? У меня после апдейта оно стало валить студию на оном проекте. Криворукие дебилы бля.

Алсо есть вопрос ко всем. GetHashCode должен выдавать уникальные значения или нет? Я правильно понял что он нужен только для оптимизации, т.е. некоторые агрегаты при сравнении могут сначала запросить хешкод что бы отбросить из рассмотрения объекты с разными кодами, но при установлений эквивалентности все равно последнее слово за вызовом Equal?

Ответы>>832218

31 Авг, 16:10 #232 #832001

>>831993
откуда расценки, маня?

Ответы>>832003

31 Авг, 16:12 #233 #832003

>>832001

Взял средние исходя из твоего ТЗ. Если брать максимум, то ваттсап или телеграм можно подогнать под категорию "чатика".

Ответы>>832011

31 Авг, 16:18 #234 #832011

>>832003
ну врядли ребята согласятся если я им такую цену озвучу=)

Ответы>>832128

31 Авг, 16:57 #235 #832045

static ulong Fibonacci(int number)
{
if (number == 1) { return 1; }
if (number == 2) { return 1; }

return Fibonacci(number - 1) + Fibonacci(number - 2);
}

Глохнет уже на попытке определить 45ю позицию я ряду. Как это можно оптимизировать улучшить?

Ответы>>832069>>832109

Работа. Dot NET 31 Авг, 16:58 #236 #832046

Ребят, можете что-то сказать о конторе по сопровождению 1С Гэндальф (Ростов) ? Вроде бы берут студентов со знанием C#.

Ответы>>832126>>832552

31 Авг, 17:15 #237 #832069

>>832045

// Хвостовая рекурсия
public static ulong FibR(uint n)
=> n > 1 ? FibR(n - 1) + Fib(n - 2) : n;

// Арифметика
public static ulong Fib(uint n)
{
ulong[] f = new ulong[3];
f[1] = 1;
for (int i = 2; i <= n; i++)
f[i % 3] = f[(i + 1) % 3] + f[(i + 2) % 3];
return f[n % 3];
}

Второй способ существенно быстрее.

31 Авг, 18:04 #238 #832109

>>832045
Посмотри на хабре статью по вычислению чисел Фибоначчи, там все подводные камни расписаны.

31 Авг, 18:17 #239 #832126

>>832046
>1С Гэндальф
проиграл

31 Авг, 18:19 #240 #832128

>>832011
а что за чат внутри?
Мне кажется - именно чат самая большая проблема, а не переходы по страничкам.

Ответы>>832591

31 Авг, 18:21 #241 #832129

>>831882
я могу забивать гвозди своей сракой, но вроде это неправильно, не?

Ответы>>832447

31 Авг, 20:08 #242 #832218

>>831995
где ты видишь стремление к оптимизации в сравнении двух величин вместо одной, дятел?

>>831990
аналогичная фигня. причем бывает (бывало), что настроенные горячие клавиши на разных установленных версиях студии не оч совмещаются друг с другом (работают то в одной версии, то в другой, но не в обеих сразу)
такшто бамп вопросу

Ответы>>832592

31 Авг, 21:43 #243 #832347

Есть тут угоревшие по drag'n'drop'у? В общем я пытался написать небольшое окошко на которое можно перетягивать картинки из firefox, и похоже обосрался (в прочем тут ничего нового). Вместо оригинала FF создает ебаный в сраку bmp файл. И такое поведение наблюдается в других программах, например explorer++, paint.net. Но почему тогда перетаскивание нормально работает из ff в explorer?

Алсо вызов GetData("FileContents") возвращает null. Не знаю может быть так и должно быть. Было бы заебись если б в нем было содержимое файла, но похоже не судьба.

Еще какая хохма - GetData("Format17") возвращает null, но если перед ним разместить вызов GetFormats() - то уже не null. Хвала скрытому стейту.

Можно было бы вычленять ссылку на файл и скачивать его самому, но меня это не устраивает.

В общем разработчики FF - пидорасы.

31 Авг, 23:07 #244 #832447

>>832129
Ну может у тебя особенная срака. Почему бы и нет тогда)

Ответы>>832656

01 Сен, 00:52 #245 #832507

Где качнуть portable SharpDeveloper?

42 Кб, 500x281

01 Сен, 07:53 #246 #832552

>>832046

01 Сен, 09:31 #247 #832591

>>832128
не, конкретно в ту задачу что я описал, разработка чатика не входит. просто страница с чатиком. типа реализация макета, с минимум функционала

Ответы>>832726

01 Сен, 09:33 #248 #832592

>>832218
такая же хуйня с хоткеями была. само как то прошло=)

62 Кб, 800x250

01 Сен, 11:47 #249 #832644

>>824683 (OP)
Антон, посоветуй хорошую русскоязычную книгу по MSBuild. Молю.

Ответы>>832652>>833372

01 Сен, 12:05 #250 #832652

>>832644
пхех

Ответы>>832657

01 Сен, 12:12 #251 #832656

>>832447
да ладно, анон.
Ты же понял о чем я.

а срака такая, да

01 Сен, 12:14 #252 #832657

>>832652
Ну англоязычную хоть

01 Сен, 13:44 #253 #832726

>>832591
так если там 3 страницы, навигация и дизайн, то это немного ж.
ну там 300-500

Ответы>>832759

01 Сен, 14:16 #254 #832759

>>832726
лолшто? я надеюсь это не в рублях?

Ответы>>832817

01 Сен, 15:39 #255 #832817

>>832759
а баксах же.

01 Сен, 19:26 #256 #832982

У нас на работе есть ЙОБА класс в котором есть генерик метод, в который если вместо генерика поставить название интерфейса который реализует класс, то тебе через рефлексию создается объект этого класса перебирая какой-то список названий классов.
Это патерн какой-то?

Ответы>>833059>>833387

01 Сен, 20:14 #257 #833059

>>832982
> вместо генерика поставить название интерфейса который реализует класс
ты всем так объясняешь, что ни хрена не понятно?
типа так:
public static T Get<T>(string interfaceName = null)
{
if (interfaceName != null)
{
return (T) Activator.CreateInstance(ListOfClasses.FindType(interfaceName))?
}
...
}

Ответы>>833127

01 Сен, 20:52 #258 #833127

>>833059
Ну ты же примерно понял
Да, там есть какой-то класс активатор

Ответы>>833151

01 Сен, 21:07 #259 #833151

>>833127
судя по всему, это какая-то ущербная версия Service Locator, хотя, может, в вашем случае, она довольно-таки имеет смысл

Ответы>>833251

203 Кб, 1024x768

01 Сен, 21:12 #260 #833155

>>831487
Жизнь налаживается.
Итак, чтобы снова стать хозяином программы, идём в App.xaml и стираем StartupUri="MainForm.xaml" чтобы само без спросу не грузилось.
Далее в App.xaml.cs создаём обработчик события protected override void OnStartup(StartupEventArgs e) в котором и указываем программе как ей себя вести.

Как это сделано у Джона Смита https://msdn.microsoft.com/ru-ru/magazine/dd419663.aspx

И оказывается класс Application из WPF > Application из WinForms. Поэтому и не понял по началу как найти место старта программы.

23 Кб, 836x364

1836 Кб, 1365x767

01 Сен, 22:22 #261 #833209

Чтобы попрактиковаться на с#, пилю софтину для удаления неуникальных вебмок и картиночек.
Файлы сортируются по размеру, затем, если у соседних файлов одинаковый размер, сравниваются первые 10 байтов и, если они одинаковые, один из файлов удаляется. Но идентичные, сука, массивы никак не могут пройти сраный иф. Что делать?

Ответы>>833211>>833219

01 Сен, 22:24 #262 #833211

>>833209
ты сравниваешь массивы через ==? ты поехал штоли?

Ответы>>833218

01 Сен, 22:30 #263 #833218

>>833211
Ага, спасибо, решил через SequenceEqual.

Ответы>>833230

01 Сен, 22:31 #264 #833219

>>833209
А хуйни linq
if(bytes1.SequenceEqual(bytes2))

Ответы>>833230

01 Сен, 22:48 #265 #833230

>>833218
>>833219
Говорят это ебически медленно, можно с винапи
http://stackoverflow.com/a/1445405/1250699

Ответы>>833233>>833235>>833282

01 Сен, 22:51 #266 #833233

>>833230
http://rgho.st/6BMdZF4YD
Вот что получилось. Работает вроде нормально. Из 1500 вебмок секунд за 15 отсеяло 93 повторяющихся.

Ответы>>833235

01 Сен, 22:53 #267 #833235

>>833230
> 2016
> coreclr
> winapi

>>833233
Про MD5 слыхал?

Ответы>>833237

01 Сен, 22:55 #268 #833237

>>833235
>Про MD5 слыхал?
Краем уха на лекциях.
Ты предлагаешь удалять файлы с одинаковым хешем?

Ответы>>833245

01 Сен, 23:04 #269 #833245

>>833237
>Ты предлагаешь удалять файлы с одинаковым хешем?
Это хоть как-то выглядит по научному.
В отличие от сравнения 10 байт, при том что первые 4 всегда константы.

01 Сен, 23:08 #270 #833251

>>833151
Ну если так создается довольно простой класс, то почему нет?
я так окна в впф создаю, например

Ответы>>833262

01 Сен, 23:20 #271 #833262

>>833251
тут есть несколько "но". ну, наконец, что мешает использовать new()-constraint в методе?

01 Сен, 23:57 #272 #833282

>>833230
Это фича: код должен быть индустриальным.

02 Сен, 09:11 #273 #833372

>>832644
Антон, ну хотя-бы руководство брось по этому... делу.

Ответы>>833377

02 Сен, 09:23 #274 #833377

>>833372
https://msdn.microsoft.com/en-us/library/dd393574.aspx
Просто нажимаешь в студии F5.

02 Сен, 09:44 #275 #833387

>>832982
А при работе с бд вы что используете?

Ответы>>834095

Реверс-инжиниринг .net 02 Сен, 09:55 #276 #833392

Здравствуйте, антуаны!
Я новичек в .net, в данный момент изучаю c# всеми возможными способами, в том числе декомпилирую и смотрю код различного софта.
Столкнулся с тем, что полученный код при вставке в студию выдает определенное количество синтаксических ошибок.

И назрел у меня один вопрос. А могут ли во время декомпиляции в коде образовываться ошибки (сам файл не обфусцирован)? Или это я просто не добавил в проект какие-то ссылки?

Ответы>>833393

02 Сен, 09:56 #277 #833393

>>833392
код открывал в ILSpy

Ответы>>833396

02 Сен, 10:09 #278 #833396

>>833393
синтаксические ошибки - это некорректно расставленные скобки блока/условия оператора/метода, некорректно поставленные знаки препинания, студия также ругается, когда при записи строки в стринг исползуют энтер не закончив строку (имею ввиду что то типа
string x = "dadadadadadadada

dadassss";
)
а если бы нехватало каких либо библиотек (что наиболее вероятно, учитывая, что неймспейсы кажись не присутствуют в декомпилированном приложении, а ты просто вставляешь голый код в ИДЕ), то ИДЕ указывала бы ошибку типа cannot find namespace xxx/ cannot resolve xxx и т.д.

Ответы>>833397>>833403

02 Сен, 10:10 #279 #833397

>>833396
ну и алсо в синтаксические ошибки можно занести неправильное использование ключевых слов типа if while new int x = 5-6; и всё такое

02 Сен, 10:23 #280 #833403

>>833396
Ну в общем-то да, все так и есть.
Все ошибки, связанные с подключением чего-либо, я исправил добавлением в проект соответствующих ссылок.
Остались ошибки вида:
-Синтаксические
-"метод имеет несколько недопустимых аргументов"
-"преобразование int в byte невозможно"
-"обнаружен недостижимый код"
- и т.п

Вот я и гадаю, откуда все это?
Ведь тут даже декомпиляции нет как таковой, фактически просто открытие .net .exe файла.

Ответы>>834542

02 Сен, 10:44 #281 #833407

ну хуй знамо тогда, что у тебя с синтаксическими ошибками. никогда не вставлял код из ILSpy в студию, но в целом, когда открывал, не видел каких то проблем хотя и не искал.
насчёт "обнаружен недостижимый код" - ну, в ILSpy такое и не будет подсвечиваться, да и ошибкой, влияющей на корректность работы программы, не является. недостижимый код может быть написан либо индусским программистом, либо, насколько я знаю, обфускаторы могут добавлять недостижимые иф-блоки наряду с заменой имён переменных, чтобы запутать хацкера, пиздящего исходный код коммерческого ПО.

насчёт "преобразование int в byte невозможно", ты уверен, что в этом месте рабочий код, а не мусор, напиханный обфускатором для отвода глаз?

Ответы>>833442

02 Сен, 11:13 #282 #833423

Аргументы в функцию передаются по ссылке или по значению? Если я создам массив arr = [1,2,3] и передам его в функцию, внутри которой в массив добавится элемент 4, будет ли он добавлен в массив снаружи функции?

Ответы>>833427>>833434>>833437

02 Сен, 11:23 #283 #833427

>>833423
По значению. Будет.

Ответы>>833432>>833436

02 Сен, 11:37 #284 #833432

>>833427
Но почему он тогда добавляется в массив снаружи, если внутрь в функцию передается только значение, которому и прибавляется новый элемент?

02 Сен, 11:40 #285 #833434

>>833423
передастся сам объект.
Если в функции тебе нужна копия - то нужно создать новый массив.

02 Сен, 11:41 #286 #833436

>>833427
пиздец тут сидят люди.
По значению передаются только Value-типы.

Ответы>>833521

02 Сен, 11:42 #287 #833437

>>833423
каким образом добавится? через arr = new AzazaType[4]? тогда нет, если ты не используешь ref/out параметры. если ты имеешь дело с List/Collection/etc... и используешь Add(new()), то добавится, конечно

02 Сен, 12:01 #288 #833442

>>833407
Хорошая информация для размышления, спасибо.
Только что для интереса декомпилил и запустил на студии программку Expresso. После удаления ссылок на картинке все (о чудо!) запустилось.
Значит, такая декомпиляция в принципе возможна, и все дело в рассматриваемом мной софте.
Насчет обфускации - хз, посмотрим. Обычно ее сразу видно на глаз, а тут я такого не заметил.

02 Сен, 14:15 #289 #833521

>>833436
Ты передаешь ссылку на массив и она передается по значению.

Ответы>>833537

02 Сен, 14:59 #290 #833537

>>833521
бляяя.
но массив-то передался по ссылке, маня.

Ответы>>833545

02 Сен, 15:13 #291 #833545

>>833537
Передается ссылка, а не массив.

Ответы>>834096

02 Сен, 15:51 #292 #833583

Пацаны, что скажить за https://www.ozon.ru/context/detail/id/7246392/

Ответы>>833593

02 Сен, 16:01 #293 #833593

>>833583
N тредов назад тут был крендель, брызгающий слюной по поводу суперовости и уберклассности этого высера. вероятно, он снова появится тут и будет расхваливать это говно, но я бы советовал тебе прочесть более адекватные источники

Ответы>>833609

02 Сен, 16:33 #294 #833609

>>833593
Буду тебе благодарен за литературу на русском

Ответы>>833619

02 Сен, 16:40 #295 #833619

>>833609
Троелсен
Албахари
Шилдт
Рихтер

Ответы>>835813

03 Сен, 00:36 #296 #834070

Что скажет анон за .NET Core и сопутствующий ASP.NET? Реально за этими платформами будущее или хуйня и не стоит учить?

Ответы>>834169>>834301

03 Сен, 02:20 #297 #834095

>>833387
Проект древний, есть свои классы для выполнение всех базовых операций через ADO.NET(создание конекшона, выборки, вставки, транзакции и т. д.)

03 Сен, 02:23 #298 #834096

>>833545
В таком случае говорят что передается по ссылке чтобы не сбивать с толку.

Ответы>>834192

03 Сен, 02:25 #299 #834097

Нормально ли использовать такие конструкции:
>List<List<int>>
Или это считается говнокодом?

Ответы>>834169

03 Сен, 10:13 #300 #834169

>>834070
имхо, ~Cores будут достаточно весомы на рынке .NET. если доведут до ума наконец

>>834097
если ты задаешь такой вопрос тут, значит это говнокод. но есть и свои исключения

03 Сен, 10:54 #301 #834192

>>834096
И потом не объяснить, что такое ref array.

Ответы>>834294

03 Сен, 12:56 #302 #834294

>>834192
ССЫЛКА НА ССЫЛКУ

03 Сен, 13:07 #303 #834301

>>834070
А там есть какие-то отличая?

03 Сен, 18:10 #304 #834542

>>833403
>-"метод имеет несколько недопустимых аргументов"
>-"преобразование int в byte невозможно"
Не те библиотеки или их версии скорее всего подключил.

04 Сен, 18:10 #305 #835339

>>824869
АААХАХААААХААХАХААААХААХААХАХААХАХАХАХААХАхАХААХАХАХАХААахаахахааааахахахахахахахаааАХАХааааахахахахаххааххааАХАХАааааАХАХАААахахахаа

спасибо)

04 Сен, 18:16 #306 #835345

>>831547
если на один раз, можно сделать обычный SFX архив в винраре или любом другом архиваторе

если хочется поддержка встроенных обновлений с минимально работой, ClickOnce

если хочется обеспечить дополнительные проверки на целостность бинарников, если хочется каких нибудь нестандартных пресетов развертывания конфигурации и других специфичных вещей, можно сделать кастомное решение, например, с помощью WiX toolset, или вообще как кастомный виндовый проект

04 Сен, 19:03 #307 #835373

>>824683 (OP)
Вечер в хату, боги кодинга! Кто из вас сможет взломать бота: http://travibot.com/ru/

Ответы>>835389

04 Сен, 19:15 #308 #835389

>>835373
зачем?

Ответы>>835398

04 Сен, 19:20 #309 #835398

>>835389
Тебя как кодера должен интересовать вопрос КАК. Или только в хеллоуворды можешь?

Ответы>>835403>>835405

04 Сен, 19:23 #310 #835403

>>835398
могу в хеллоуворды. Тебе сколько надо?

04 Сен, 19:23 #311 #835405

>>835398
меня как кодера интересует вопрос: сколько платишь?

Ответы>>835412

04 Сен, 19:29 #312 #835412

>>835405
С меня лучи добра, анон :3

Ответы>>835414>>835419

04 Сен, 19:30 #313 #835414

>>835412
)))

04 Сен, 19:32 #314 #835419

>>835412
ну так бы и сказал, хули. берешь, значит, ollydbg, запускаешь в нём свою тулзу (.ехе). последовательно выполняешь все шаги до того момента, когда возникнет проблема с лицензией. ищешь байт(ы), который нужно подправить, чтобы продолжить (либо убрать байты). сохраняешь "пропатченный" .ехе. всё.

Ответы>>835430

45 Кб, 500x407

04 Сен, 19:46 #315 #835430

>>835419
Это слишком сложно для меня. Для меня твоя инструкция это шаманство. Сделай это и выложи пропатченный .exe. С меня лучи добра.

04 Сен, 20:06 #316 #835450

Хлопци, расскажите мне следующее: если обфусцировать код, будет ли работать та его часть, где задействована рефлексия? В частности, в одном участке кода я с помощью рефлексии ищу конструктор неизвестного типа, потом смотрю на названия и тип параметров конструктора. Дак вот, если я обфусцирую код, с большой вероятностью изменятся и имена переменным параметров конструктора, следовательно, рефлексия "не будет работать", я правильно размышляю?

алсо, что вообще скажете про рефлексию - когда её лучше использовать и стоит ли, или её используют в исключительных случаях и в целом её использование нужно избегать?

Ответы>>835577

8 Кб, 773x481

04 Сен, 20:13 #317 #835460

Братаны, в шапке треда ссылки на курсы всяких курсер и т.д., я уверен, что ты, анон, знаешь годные каналы на ютубе по обучению C#. Подкинь ссылок, анончик. :3

Ответы>>835465>>835814

04 Сен, 20:15 #318 #835465

>>835460
Забыл добавить, что неважно на русском или на английском. Я буду рад любому подобному каналу, который проверен тобой, анон.

sage 04 Сен, 22:32 #319 #835577

>>835450
>её использование нужно избегать?

Прежде, чем изучать языки программирования, изучи русский язык.

Ответы>>836814>>836849

04 Сен, 23:03 #320 #835605

>>825191
Хули ты вообще делаешь проект на формах не зная основ?

05 Сен, 11:14 #321 #835813

>>833619
Если есть Троэлсон то Шилдт не нужен

05 Сен, 11:19 #322 #835814

>>835460
Гугли курсы ITVD. Все что тебе нужно есть на торрентах

17 Кб, 302x302

05 Сен, 16:53 #323 #836010

посоветуйте годных книг по сетевому программированию на C# плиз

Ответы>>836059

05 Сен, 17:53 #324 #836059

>>836010
http://metanit.com/sharp/net/

Ответы>>836185

05 Сен, 18:41 #325 #836105

Подскажите, чем Assembly в .NET отличается от обычной подключаемой библиотеки DLL, создаваемой компилятором в C++?

Ответы>>836110>>836111>>836112

05 Сен, 18:58 #326 #836110

>>836105
бамп вопроса

05 Сен, 19:02 #327 #836111

>>836105
bump

05 Сен, 19:03 #328 #836112

>>836105
Тем же, чем и нативный ехе отличается от дотнетовского.

Ответы>>836115

05 Сен, 19:07 #329 #836115

>>836112
можно подробнее, пожалуйста

05 Сен, 19:56 #330 #836135

Анон, посоветуй архитектурное решение.

У меня в ASP.NET сайте (но это не важно) есть вьюмодель (vm) и модель (m). Нужно маппить вьюмодель в модель.
Часть атрибутов мапится всегда:
m.Attr1 = vm.Attr1
m.Attr2 = vm.Attr2
m.Attr3 = vm.Attr3

Но остальные атрибуты нужно маппить не всегда по условию.

Сейчас решил в лоб, завёл на каждый такой атрибут по флагу:

if (vm.MapAttr1)
m.Attr1 = vm.Attr1

if (vm.MapAttr2)
m.Attr2 = vm.Attr2

if (vm.MapAttr3)
m.Attr3 = vm.Attr3

Может есть какое-то более изящное решение? Желательно без рефлексии.

Ответы>>836138

05 Сен, 20:00 #331 #836138

>>836135
AutoMapper посмотри, там вроде есть условные маппинги.
>Желательно без рефлексии.

Ответы>>836141

05 Сен, 20:00 #332 #836141

>>836138
@
Хехе, нет. Один маппер был без рефлексии, но он вроде не развивается давно.

05 Сен, 21:07 #333 #836185

>>836059
спасибо бро, добра тебе

128 Кб, 340x340

05 Сен, 22:23 #334 #836253

Юнит-тесты в блядском Ксамарине

Аноны, как правильно настроить проекты для юнит-тестирования приложения? Есть проект, состоящий из трёх "подпроектов" MyApp (shared code, MVVM), MyApp.iOS и MyApp.Android.
По идее, чтобы всё это дело можно было протестировать, нужно создавать отдельные тестовые подпроекты это ж надо было такую хуйню сделать, а?. Типа так: MyApp.Test, MyApp.iOS.Test и MyApp.Android.Test.

Только что-то не работает нихрена. Постоянно разные ошибки, код из shared-части не находится, или не инициализируются сервисы. Версии NUnita нужны разные у разных подпроектов (NUnit, NUnit Lite и NUnit Xamarin Runner), тоже не совмещаются вместе..

Есть тут кто-то, кто смог сконфигурировать всю эту хуиту вместе? Или хотя бы, есть какой-нибудь пример? На гитхабе пусто. Есть только две куцые статьи, которые не сильно помогают
https://developer.xamarin.com/guides/ios/deployment,_testing,_and_metrics/touch.unit/
https://github.com/nunit/nunit.xamarin

Ненавижу это говно

Ответы>>836322

05 Сен, 23:40 #335 #836322

>>836253
А мне норм.
Бизнес логику в shared-project покрыл юнит-тестами (сейчас там работает последний nunit).
Для интеграционных тестов у меня UITests.

Ответы>>836341

05 Сен, 23:53 #336 #836341

>>836322
Сорри, я думал это у меня в Android треде пост не пропечатался :)

44 Кб, 333x333

06 Сен, 11:37 #337 #836477

>>824683 (OP)
Друзья, помогите. Пилю первый учебный проект. Он разбит на три уровня:уровень доступа к данным, бизнес-логика и уровень представления на asp.net mvc. Итак у нас есть пользователи, которые могут подписываться на других пользователей как в твиттере и инстаграме. Очевидно, что пользователь не должен подписываться сам на себя. Где мне оставить это ограничение? В бизнес логике при такой попытке выбрасывать исключение, в конроллере, или в представлении просто не показать кнопку "подписаться" на своей странице?

Ответы>>836478

06 Сен, 11:41 #338 #836478

>>836477
В бл и на вьюхе

Ответы>>836480

06 Сен, 11:45 #339 #836480

>>836478
спасибо

Ответы>>836481

06 Сен, 11:50 #340 #836481

>>836480
И да, казалось бы, что для своей страницы должен быть другой шаблон, с настройками, моими же подписками и без кнопки "подписаться" в частности. Тогда бы у тебя даже вопроса не возникло.

06 Сен, 21:14 #341 #836765

Как обстоят дела с инструментами тестирования в asp.net Core?

06 Сен, 22:00 #342 #836814

>>835577
Я хохол, не обязан знать руснявый язык.
Он в моей стране не государственный.

Ответы>>836834>>836849

06 Сен, 22:14 #343 #836834

>>836814
Зато руснявый - официальный язык борды. Не знаешь - съеби на учан.

Ответы>>836836

06 Сен, 22:16 #344 #836836

>>836834
Нигде не написано об этом официально
Тоже самое что утверждать что C++ официальный язык борды.

Ответы>>836980

06 Сен, 22:33 #345 #836849

>>835577
толсто, лол

А ты >>836814 ещё и повелся

Ответы>>836863

06 Сен, 22:47 #346 #836863

>>836849
Но толстил же я, а не он.

Ответы>>836880

06 Сен, 23:11 #347 #836880

>>836863
Короче, в итоге мы имеем толстоту х2.

07 Сен, 01:52 #348 #836980

>>836836
>Тоже самое что утверждать что C++ официальный язык борды.
Но так и есть, лол.

4 Кб, 338x162

11 Кб, 389x163

07 Сен, 02:33 #349 #836984

Котаны!
Пытаюсь создать таблицу в базе данных mysql через студию (пик 1), но выскакивает ошибка (пик 2).
Как можно исправить?

Ответы>>837120>>837878>>837881

07 Сен, 12:01 #350 #837120

>>836984
как минимум можно использовать CodeFirst или сделать табл в самой базе

Ответы>>837878

07 Сен, 18:21 #351 #837433

>>824683 (OP)
А есть ли бесплатные хостинги для погонять asp .net mvc?

Ответы>>837541>>837546>>838804

07 Сен, 20:03 #352 #837541

>>837433
localhost

07 Сен, 20:04 #353 #837546

>>837433
Microsoft Azure - первый месяц бесплатно

Ответы>>837654

07 Сен, 22:06 #354 #837654

>>837546
Dev Essentials год бесплатно

08 Сен, 10:09 #355 #837878

>>837120
>как минимум можно использовать CodeFirst или сделать табл в самой базе
Ну тоже верно

>>836984
Анончики, проверьте у себя. У вас тоже ошибка выскакивает? Может кто сталкивался?

08 Сен, 10:16 #356 #837881

>>836984
чистатеретически, попробуй проверь, может быть, отключена какая-нибудь служба май скуля?

08 Сен, 15:01 #357 #838072

Поясните мне за вот за какую хуйню, вот сел я читать Албахари к примеру (да у меня есть профильное образование и я понимаю о чём речь, грубо говоря вспоминаю давно забытое). Ладно, первое время были задачи уровня hello world но их там слегка рефакторили, разбирали вот это всё. Спустя совершенно короткое время это превратилось в:
кококо
.....
кудах
тах
тах
.....
и так через каждый абзац это примеры сферических коней в вакууме не говоря про их излюбленные шутки писать на ~30 странице сноску и мол в 25 главе это разбирается. Да я забуду к 25 главе что вообще блядь такая сноска была.
В изучении в таком виде нет никакого смысла, первый день я еще что-то писал в студии но следующие я просто лежу на диване и читаю потому что писать нечего, это рассказ ебучий. ???????????

08 Сен, 15:44 #358 #838119

Приветствую, полубоги!

Сделал своё второе уже приложение на этом чудесно-эльфийском наречии. Однако, возникла проблема. Если первую однооконную быдлообработку я просто забирал из папки release, то со второй, которая писана с использованием EF CodeFirst я таким же макаром запустить не могу. Немного покопался в детских воспоминаниях о VS2008 UltraHardCoreEditionCrackedWithActivaziya сообразил, что нужен какой-то сборщик установщика. А ИНСТАЛЛШЫЛД-то оказывается платный! и для VS2015 community не подходит. Так вот, вопрос, а чем вообще можно собирать без лишнего красноглазия и консолек, ну и чтобы туда всякие компоненты типа sqllocaldb можно было запиливать в режиме некст-некст-некст-ок?

Ответы>>838266

08 Сен, 18:20 #359 #838266

>>838119
можно, вот тебе ссылка, ты парень способный, должно быть, разберешься http://wixtoolset.org/

Ответы>>838799

08 Сен, 18:50 #360 #838288

Есть прога по обработке больших данных. На моем компе она работает быстро (1 час), а на другой машине - медленно (за 12 часов так и не отработала). Хотя вторая машина мощнее. В чем может быть причина? прога никаких сторонних либ не юзает

Ответы>>838293>>838784>>839460

08 Сен, 19:01 #361 #838293

>>838288
dxdiag обоих компов покажи нам.

Ответы>>838300

08 Сен, 19:10 #362 #838300

>>838293
http://pastebin.com/uFn4uZuC

08 Сен, 20:16 #363 #838362

Шарпач, как привязать значения списка из комбобокса к выполнению определенного куска кода. Понятно, что по нажатию кнопки мы передаем значение из текстбокса и комбобокса, но если с первым ясно, то как решается с элементами спика комбобокса?

Ответы>>838367>>838371

08 Сен, 20:21 #364 #838367

>>838362
Поправлюсь, ибо мне кажется что будет проще вбить через
<ComboBoxItem Name="Item_name">
<StackPanel Orientation="Horizontal">
<TextBlock>Ярдов</TextBlock>
</StackPanel>
</ComboBoxItem>
И по этому Item_name уже передавать дальше.

08 Сен, 20:24 #365 #838371

>>838362
ероха, у комбобокса есть событие на изменение SelectedItem, в обработчике уже делаешь, что хочешь. Если ты труЪ MVVM парень, то через interactions привязываешь команду из вьюмодели, в качестве параметра как раз прилетит твой SelectedItem. Или во вьюмодели делаешь SelectedItem биндишь его на selectedItem своего комбобокса и по OnPropertyChanged в сеттере делаешь вызов своего кода

08 Сен, 23:05 #366 #838545

>>826320
На уровне IL у байта вообще арифметики нет, i++ выльется в int tmp = i; tmp = tmp +1; i = (byte) tmp
А арифметики у байта нету потому что эффективнее с интами на процессоре работать было. В шарпе для похожести с джавой по сему поводу решили все приводить к инту (в том же vb.net приведения нет, но генерится в итоге код с кастами)

09 Сен, 10:15 #367 #838783

Как можно скрафтить аналог List, не применяя никаких динамических структур?

Ответы>>838786

09 Сен, 10:17 #368 #838784

>>838288
Бамп

09 Сен, 10:19 #369 #838786

>>838783
делаешь класс/структуру, внутри которого массив определённой длины (например, по умолчанию 2. можешь перегрузить конструктор с первоначальной длиной массива). потом, по мере заполнения массива, создаешь новый в 2 раза больше (или больше на какую то константу), копируешь всё из предыдущего массива все объекты в новый массив. в классе для массива делаешь индексатор. добавляешь IEnumerator по вкусу

Ответы>>838792

09 Сен, 10:26 #370 #838792

>>838786
Понятно, благодарю.

Ответы>>838806

09 Сен, 10:40 #371 #838799

>>838266
Спасибо, видел этот продукт в поисковых выдачах, более-менее понял в чем смысл. Однако в ходе освоения еще один вопрос больно ударил по яйцам. Разрабатывал с использованием SQL Server 2016 LocalDB, а что клиенту в сборку включать на голую Windows 10? Весь этот стапитсотмегабайтный пакет или есть какие-то компакт-варианты? Что-то я яндексу вопрос неправильно формулирую, ибо не нашел.

Ответы>>838805

09 Сен, 11:13 #372 #838804

>>837433
Если что интересно и на asp.net Core, то пиши, могу у себя на впс закинуть, там как раз асп и нода крутятся

09 Сен, 11:15 #373 #838805

>>838799
SQLite не?

09 Сен, 11:16 #374 #838806

>>838792
в любом случае у тебя массив будет динамисеский

Ответы>>838808

09 Сен, 11:21 #375 #838808

>>838806
>создаешь новый
>динамический

09 Сен, 15:13 #376 #838933

>>824683 (OP)
Failed to create prime the NuGet cache. restore failed with: 1
Telemetry is: Disabled
log : Restoring packages for /home/sparin/.vscode/extensions/ms-vscode.csharp-1.4.1/coreclr-debug/project.json...
error: Unable to load the service index for source https://api.nuget.org/v3/index.json.
error: Unable to obtain lock file access on '/tmp/NuGetScratch/lock/0fe55cca3e8a8fb7b26a7002bf1dc05f2d5faf41' for operations on '/tmp/NuGet/TempCache/ff77a80e-987b-4406-9956-ac4260dcb8ec/n50dr154.rqm'. This may mean that a different user or administator is holding this lock and that this process does not have permission to access it. If no other process is currently performing an operation on this file it may mean that an earlier NuGet process crashed and left an inaccessible lock file, in this case removing the file '/tmp/NuGetScratch/lock/0fe55cca3e8a8fb7b26a7002bf1dc05f2d5faf41' will allow NuGet to continue.
dotnet exited with error code 1

Пишу rm /tmp/NuGetScratch/lock/0fe55cca3e8a8fb7b26a7002bf1dc05f2d5faf41, а мне в ответ rm: невозможно удалить «/tmp/NuGetScratch/lock/0fe55cca3e8a8fb7b26a7002bf1dc05f2d5faf41»: Нет такого файла или каталога. Открываю nautilus, а его все равно нет.
Короче, я не понял как навернуть дебагер на Visual Stuidio Code. Что я делаю не так?

09 Сен, 17:38 #377 #839032

Насколько справедливо мнение, что лучше не писать код на .net языках, связанный с информационной безопасностью в контексте обмена информацией по сети, особенно клиентскую часть, ведь приложения .net вскрываются рефлекторами на раз два, и можно узнать, как работают все алгоритмы шифрования?

Ответы>>839055>>839057>>839744

09 Сен, 18:19 #378 #839055

>>839032
если вкратце, то нет
а вообще непонятно, что делают в одном предложении рефлектор, передача данных и работа алгоритмов шифрования (известная в 2016м любому дворнику васе благодаря интернетам и педивикиям)

Ответы>>839056

09 Сен, 18:21 #379 #839056

>>839055
нет - значит несправедливо

09 Сен, 18:22 #380 #839057

>>839032

Если тебе нужно скрыть алгоритм шифрования, значит ты уже делаешь что-то не так.

10 Кб, 136x248

09 Сен, 21:22 #381 #839200

Как написать regexp, чтобы она выдавала найденные теги с любым количеством символов после них?
Возможно, проще пример привести:
Исходник:
newRecord любой текст /r/n(любое количество строк) wundkcn newRecord любой текст93487dfjvndknfvkn !Ъ\.

Должно найти:
newRecord любой текст /r/n(любое количество строк) wundkcn
newRecord любой текст93487dfjvndknfvkn !Ъ\.

Проблема в том, что если напишу regexp вот так @«newRecord [\s\S]*» парсер не видит когда остановиться и выдаёт всю исходную строку целиком.

Ответы>>839282>>839323>>839329

09 Сен, 23:22 #382 #839282

>>839200
newRecord любойТекст \r\n || newRecord любойТекст !Ъ\.

Ответы>>839329

128 Кб, 900x900

10 Сен, 04:32 #383 #839323

>>839200
НИКОГДА, СЛЫШИШЬ, ПИДР, НИКОГДА НЕ ПАРСИ ТЕКСТ С ПОМОЩЬЮ РЕГЭКСПОВ.

Ответы>>839329

27 Кб, 600x600

10 Сен, 07:32 #384 #839329

>>839200
Итак, я выспался и нашёл отет.
string pattern = @"newRecord[\s\S]?(?=newRecord)"; //работает как надо
string pattern = @"newRecord[\s\S](?=newRecord)"; // не работает
(да, последнюю newRecord в строке не считает, но этого и не требую)

Но не понятно что даёт вопрос.
В документации https://msdn.microsoft.com/ru-ru/library/az24scfc(v=vs.110).aspx сказано:
Соответствует предыдущему элементу ноль или более раз.
? Соответствует предыдущему элементу ноль или один раз.
Как-бы на первый взгляд, и должна была бы брать любой текст. Но увы, берёт не останавливаясь.

>>839282
Благодарю за поиск конечного newRecord

>>839323
Ого сколько БОЛИ! Почему ты избегаешь регэкспов?

Ответы>>839651>>839852

54 Кб, 600x450

10 Сен, 09:05 #385 #839356

Погромисты, работающие с виндовым магазином, поясните, сколько стоит подписка, аккаунт разработчика, и что вообще нужно, чтобы выложить свое платное приложение.
И в чем разница VS Community и платной версии, я на комьюнити же смогу писать платные приложухи и выкладывать их в магазин?

Ответы>>839357

10 Сен, 09:11 #386 #839357

>>839356
> подписка
Какая?

> аккаунт разработчика
600р.

> что вообще нужно, чтобы выложить свое платное приложение
Само приложение и заполнение простенькой налоговой декларации.

> на комьюнити же смогу писать платные приложухи и выкладывать их в магазин?
Да.

Ответы>>839376

10 Сен, 09:48 #387 #839376

>>839357
600 рублей один раз заплатил и можно выкладывать всю жизнь сколько угодно приложений? И без разницы, какая прибыль?
Налоговая декларация США чтобы им уплачивать налоги? Никаких подводных камней?
Так зачем все-таки существует платная версия, если на бесплатной можно писать те же приложения?

Ответы>>839396

10 Сен, 09:59 #388 #839396

>>839376
> 600 рублей один раз заплатил и можно выкладывать всю жизнь сколько угодно приложений? И без разницы, какая прибыль?
Йеп.

> Налоговая декларация США чтобы им уплачивать налоги?
Для нас не СШАшная, а сильно упрощенная.

> Никаких подводных камней?
Вроде как.

> Так зачем все-таки существует платная версия
Для ентерпрайза.

Ответы>>839403

10 Сен, 10:07 #389 #839403

>>839396
Спасибо.
>Для нас не СШАшная, а сильно упрощенная.
Для кого нас? Там для каждой страны своя декларация, например, для беларашки, или имеется ввиду все кто не в США?

Ответы>>839405

10 Сен, 10:07 #390 #839405

>>839403
> или имеется ввиду все кто не в США?
Зис.

10 Сен, 11:41 #391 #839460

>>838288
две машины - два разных доступа к вычислительным ресурсам. правильней всего было бы оценить работу алгоритма на всех шагах выполнения на обеих машинах и посмотреть все, что происходит в округе. также учитывать I/O операции и возможности каждого из хардов. какой-нибудь болеет профайлер тебе в помощь

Ответы>>839635

10 Сен, 15:46 #392 #839528

Есть фри аналог DevExpress?

Ответы>>839687

10 Сен, 19:43 #393 #839635

>>839460
Проблему уже определили, так что
this
>I/O операции
Сервер, как оказалось, есть виртуалка, и у него нет физического харда. Потому он и тупит.

10 Сен, 20:07 #394 #839651

>>839329
Регэкспы не предназначены для парсинга. Ты закладываешь бомбу замедленного действия в свой код.

Ответы>>839666

10 Сен, 20:58 #395 #839666

>>839651
А для чего они предназначены?

Ответы>>839686

10 Сен, 21:30 #396 #839684

Я только сейчас понял, что меня в шараге недавно учили оператору goto. Ебаный стыд.

Ответы>>839689

10 Сен, 21:31 #397 #839686

>>839666
Для поиска соответствий, что не есть парсинг.

10 Сен, 21:32 #398 #839687

>>839528
синкфьюжн имеет комьюнити лисенз, по сути бесплатная хуйня

Ответы>>840045

10 Сен, 21:33 #399 #839689

>>839684
В этом операторе нет ничего плохого, если ты понимаешь как им пользоваться. C# - компилятор, например, владеет им в совершенстве.

10 Сен, 22:30 #400 #839723

В чём разница между int[][] и int[,]? Это же всё двухмерные массивы, да?

Ответы>>839726

10 Сен, 22:32 #401 #839726

>>839723
int[][] - это jagged array.

Ответы>>839728

10 Сен, 22:33 #402 #839728

>>839726
В смысле там внутрениие массивы могут быть не одинаковыми по длинне?

Ответы>>839732

10 Сен, 22:39 #403 #839732

>>839728
Да, каждое измерение [] - вещь в себе. Вообще гугли msdn-документацию, там про такие массивы подробно расписано.

Ответы>>839733

10 Сен, 22:41 #404 #839733

>>839732
Понял, спасибо.

10 Сен, 23:00 #405 #839744

>>839032
>код на .net языках
Код на этих языках - де-факто open-source. Тебя не спасёт даже самый навороченный обфускатор потому что он элементарно снимается утилитой с github, код можно декомпилировать и подменить на любой другой.

>ведь приложения .net вскрываются рефлекторами на раз два, и можно узнать, как работают все алгоритмы шифрования?
От этого нельзя защититься ни на каком языке программирования. C/C++ просто сильно замедлят процесс взлома, но никак не предотвратят его.

11 Сен, 02:01 #406 #839852

>>839329
Да нет, сударь. Просто про кванторы либо хуево читал, либо не читал. Логично тебя послать изучать конструкции по группировке и условным кванторам. В общем, мы тебя должны были ткнуть в ссылку ниже

https://msdn.microsoft.com/ru-ru/library/az24scfc(v=vs.110).aspx

143 Кб, 1920x1080

11 Сен, 02:55 #407 #839858

https://youtu.be/t8GuveyIV38
Доклад с dot next со смехуечками про особенности double и прочего подобного. Чуток похоже на знаменитый ролик Wat про javascript и ruby, только на полчаса и с ненужным советским квном. Но все равно интересно было посмотреть.

Ответы>>839921

11 Сен, 11:20 #408 #839911

Ребят, помогите новичку, если не сложно. Где можно посмотреть коды несложных программ? Мб какие-то ресурсы есть, просьба не обоссывать сильно

11 Сен, 11:34 #409 #839921

>>839858
Мне все его доклады доставляют, топовый чел. Алсо у него еще бложик классный, вот одна из последних статей, такая ведь даже на миникнигу потянуть может: http://aakinshin.net/en/blog/dotnet/stopwatch/

21 Кб, 1352x323

5 Кб, 649x225

11 Сен, 11:40 #410 #839923

Котаны, решил попробовать VS Code. Омнишарп поставил, нет кор поставил.
Через консольку нормально комплирует, а через VS Code копротивляется. Пикрелейтед.
Как заставить его нормально компилить?

Ответы>>839931

!vYed01wfE2 11 Сен, 11:53 #411 #839931

>>839923
Так. Как чувак, который месяца 2 назад пытался разобраться с VS Code, и все таки разобрался, могу предположить, что ты неправильно создаешь проект. Т.е. в батник прописываешь то что написано на сайте справа: https://www.microsoft.com/net/core#windows

может ещё ошибка из-за того, что ты пытаешься .нет подогнать под .нет коре.

Ответы>>839938

11 Сен, 11:54 #412 #839932

ой, трип случайно.

4 Кб, 421x108

11 Сен, 12:03 #413 #839938

>>839931
>в батник прописываешь
Что за батник?

>то что написано на сайте справа: https://www.microsoft.com/net/core#windows
Это я в консольке пишу. И он собирает. А вот по ф5 в VS Code нет.

>может ещё ошибка из-за того, что ты пытаешься .нет подогнать под .нет коре.
Да вроде нет. Пикрелейтед.

Можешь по шагам расписать как настроить?

Ответы>>839941

11 Сен, 12:08 #414 #839941

>>839938
>батник
Это я так под винду делал. Если у тебя Мак, то терминал.

>>839938
>Это я в консольке пишу.
У тебя проект создается?

Ответы>>839947

2 Кб, 814x34

11 Сен, 12:21 #415 #839947

>>839941
>Это я так под винду делал. Если у тебя Мак, то терминал.
Я под виндой.

>У тебя проект создается?
После dotnet new, dotnet restore создаются 3 файлика:
Program.cs project.json project.lock.json
И запускаю по dotnet run.
По ф5 не хочет. Пикрелейтед

Ответы>>839952>>839958>>839959

11 Сен, 12:33 #416 #839952

>>839947
dotnet restore
dotnet run

11 Сен, 12:50 #417 #839958

>>839947
ru.stackoverflow.com/questions/546396/

Ответы>>839959

11 Сен, 12:53 #418 #839959

>>839947
Как видишь, у меня была такая же проблема, но я её пофиксил тем, как написал в ответе тут >>839958 . Дерзай, всё что можно было расписал. Я эту проблему VS CODE долбил несколько суток. Такие дела.

Ответы>>839967

15 Кб, 641x238

11 Сен, 13:20 #419 #839967

>>839959
Изменил значение поля program в файле launch.json (пикрелейтед). По ф5 выдаёт такую же ошибку "build завершено с кодом выхода 1".
Правда при нажатии "принудительная отладка" запускает (не компилирует) старую версию программы. Код был изменён, но dotnet run не выполнен.

Ответы>>839998>>840000

11 Сен, 13:51 #420 #839988

Подскажите как связать таблицы и настроить автозаполнение между ними в c#. Как я понимаю мне нужно, чтобы Id заполнялся случайным уникальным числом и с разных таблиц передавались значения в главную.
В БД связываю вот так: CONSTRAINT [FK_Clients_ToMain] FOREIGN KEY ([ID техники]) REFERENCES [dbo].[Main] ([Id])
и по аналогии 2 других к главной, которая должна заполнятся. Всем IDам присваиваю uniqueidentifier. Что делать дальше не понимаю, заранее спасибо за помощь

Ответы>>840262

11 Сен, 14:10 #421 #839998

>>839967
>"${workspaceRoot}\bin\Debug\netcoreapp1.0\VSCODE_PROSTO.dll"

я без понятия. у меня была такая же ошибка, я её пофиксил тем, что описал на стаковерфлове. ты что-то делаешь не так, скорее всего.

Ответы>>840066

11 Сен, 14:14 #422 #840000

>>839967
>принудительная отладка
и забудь про это

11 Сен, 16:04 #423 #840045

>>839687
что что?

11 Сен, 16:43 #424 #840066

>>839998
Пересоздал папки и получилось. Он даже сам прописал путь.

Но вот что напрягает:
Через файл/открыть папку он открывает текущую рабочую папку (одна папка на проект).
И чтобы сменить рабочую нужно лезть в меню. Можно как-то добавить все рабочие папки (все проекты)?

Ответы>>840070

11 Сен, 16:54 #425 #840070

>>840066
хз

у меня на 2 монитора не получается код разбить, пришлось обратно к VS возвращаться.

11 Сен, 18:39 #426 #840207

Ребят, подскажите какой-нибудь кастомный контрол чтобы сделать карту. Нужна возможность отображения своей карты и элементов поверх неё с возможностью обработки кликов по ним.

Ответы>>840234>>840318

11 Сен, 19:03 #427 #840234

>>840207
Винформс, впф, увп?

Ответы>>840235

11 Сен, 19:04 #428 #840235

>>840234
Winforms

11 Сен, 19:45 #429 #840262

>>839988
Речь про EF Code First?

11 Сен, 20:57 #430 #840300

Аноны, а используется ли шарп в бэкэнде, но не с asp.net? Есть фреймворки какие-то типа Django/Flask? Вообще кто-так делает или я ебанулся?

Ответы>>840332

11 Сен, 21:28 #431 #840318

>>840207

подсказал тебе за щеку, проверяй

11 Сен, 21:39 #432 #840332

>>840300
>а используется ли шарп в бэкэнде, но не с asp.net?
Да, задачи-то могут быть совсем разные. Например, фоновая служба, которая что-то там ковыряет в БД.

>Есть фреймворки какие-то типа Django/Flask?
Это и есть asp.net / webapi, только на других языках. Asp.net / webapi - основа web'а в .net. К ним ты можешь прикрутить любую хрень, типа React, например.

Ответы>>841212

11 Сен, 22:24 #433 #840346

Анон, изучаю ваш язык (совсем нуб) и столкнулся со следующим траблом: прошел урок с инкапсуляцией и придумал себе задачку, сделал класс машина, и внутри него создаю 3 объекта классов корпус, мотор и подвеска. Так вот, в классе корпус есть булевая переменная (закрыты ли двери), в классе мотор есть метод включения мотора, который проверяет закрыты ли двери. В классе машины я создал объект корпуса и мотора, но в класс мотор в методе включения ругается, говорит Машина.Корпус (ссылка на объект корпуса inaccessible due to protection level ) не доступна из-за уровня защиты, хотя, блядь у меня там все по умолчанию или публичное. Гуглил, но там примеры пиздануты и пишут что из-за конструктора, а у меня все конструкторы публичные.

Ответы>>840351>>841641

11 Сен, 22:39 #434 #840351

>>840346
>inaccessible due to protection level
Ну очевидное сообщение об ошибке же.Ты где-то обосрался с доступностью полей, свойств или методов. Перепроверь весь код.

Ответы>>840358

11 Сен, 23:00 #435 #840358

>>840351
Да, ты прав. Сделал, но теперь выдает:
an object reference is required for the nonstatic field

Ответы>>840360

11 Сен, 23:20 #436 #840360

>>840358
это английский, наверное О_о

Ответы>>840361>>840393

11 Сен, 23:23 #437 #840361

>>840360
Думаю что так. Просто ебанина, я понял в чем трабл, я не могу обратиться к переменной корпуса, пока не создастся объект корпуса, а он создается в конструкторе машины и я вот хз как теперь быть.

Ответы>>840384

12 Сен, 00:06 #438 #840384

>>840361
Создать экземпляр машины?

12 Сен, 00:06 #439 #840385

>я не могу обратиться к переменной корпуса, пока не создастся объект корпуса

Ты где-то нарушил принцип инкапсуляции. Создавай объект "копрус" и пусть уже он инициализирует все свои поля или свойства.

Ответы>>840412

12 Сен, 00:15 #440 #840393

>>840360
>это английский, наверное О_о
Конечно, это он. Без него сразу нахуй из треда. С одним языком будешь всегда иметь языковой барьер в команде.

Ответы>>840539

12 Сен, 01:37 #441 #840412

>>840385
Спасибо, переписал - все заработало!

12 Сен, 12:39 #442 #840539

>>840393
лол

145 Кб, 1920x1080

12 Сен, 16:01 #443 #840660

Прошаренный анон, почему сборщик мусора не может уничтожить за один проход объект с деструктором? Продвигать мусор в следующее поколение это ж какая-то балда.

Ответы>>840714>>840730>>842056

37 Кб, 500x407

sage 12 Сен, 18:13 #444 #840714

>>840660
За какой проход, дибил? Объекты уничтожаются либо в конце scope ( {} ) либо когда ты их уничтожаешь руками. И если не сам, то обычно группами. Вот и всё.

Ответы>>840730

12 Сен, 18:43 #445 #840730

>>840714
еси не знаешь, о чем речь, не забивай людям мозги хуйней

>>840660
в момент очистки определенного поколения далеко не каждый из объектов может быть удален (ты ведь знаешь, на основании чего сборщик принимает решение об удалении объекта?).
ну а почему поколения - как правило считается, что наиболее "свежие" экземпляры менее всего нужны приложению в дальнейшем. ну не даты же фиксировать создания объекта, в самом же деле

Ответы>>840731

12 Сен, 18:44 #446 #840731

>>840730
>ты ведь знаешь, на основании чего сборщик принимает решение об удалении объекта?
нет. на основании того, существуют ли ссылки на этот объект?
мимокрокодил

Ответы>>840735

12 Сен, 18:46 #447 #840735

>>840731
Не только, иначе бы циклические объекты не собирались.

Ответы>>840750

12 Сен, 19:02 #448 #840750

>>840735
ну расскажи тогда, как оно на самом деле.

12 Сен, 20:51 #449 #840855

Читаю сейчас про делегаты и эвенты и не могу понять, зачем они нужны и когда их стоит использовать.
Ведь не проще ли использовать для каких-то действий обычные методы?
В общем, помогите пожалуйста

Ответы>>840888>>840909

12 Сен, 21:42 #450 #840888

>>840855
Ну вот у тебя файл загрузился асинхронно например, какой метод вызывать будешь?

Ответы>>840936

sage 12 Сен, 22:21 #451 #840909

>>840855

Гугли "Наблюдатель (шаблон проектирования)". В кратце - это позволяет разрывать сильную связь между объектами.

К примеру - есть у тебя кнопка.

Если делать без событий, то кнопка привязывается к твоей логике, из-за этого появляется сильная связность.

В коде кнопки ты определяешь момент нажатия на неё:

var isPressed = / magic /

if(isPressed)
{
Make(barrel);
Suck(dick);
}

Обрати внимание, в этом случае кнопка будет знать, что ты хочешь соснуть хуйца и сделать бочку. Чтобы это реализовать, тебе придётся наследоваться от кнопки, чтобы изменить обработчик нажатия.

В случае использования событий, код будет выглядеть так:

var isPressed = / magic /

if(isPressed)
{
Invoke.Pressed(this, huita);
}

В этом случае кнопке будет похуй на что ты там её будешь подвязывать. Она абсолютна никак не связана с тем, что ты будешь делать. Поэтому, где-то в другом месте ты сделаешь так:

button1.Pressed += (sender, e) =>
{
Make(barrel);
Suck(dick);
}

Ты можешь динамически менять обработчики:

if(youAreFaggot)
{
button1.Pressed +=Suck(dick);
}
else
{
button1.Pressed +=Suck(chupaChups);
}

При этом код кнопки не будет меняться.

sage 12 Сен, 22:21 #451 #840909

>>840855

Гугли "Наблюдатель (шаблон проектирования)". В кратце - это позволяет разрывать сильную связь между объектами.

К примеру - есть у тебя кнопка.

Если делать без событий, то кнопка привязывается к твоей логике, из-за этого появляется сильная связность.

В коде кнопки ты определяешь момент нажатия на неё:

var isPressed = / magic /

if(isPressed)
{
Make(barrel);
Suck(dick);
}

Обрати внимание, в этом случае кнопка будет знать, что ты хочешь соснуть хуйца и сделать бочку. Чтобы это реализовать, тебе придётся наследоваться от кнопки, чтобы изменить обработчик нажатия.

В случае использования событий, код будет выглядеть так:

var isPressed = / magic /

if(isPressed)
{
Invoke.Pressed(this, huita);
}

В этом случае кнопке будет похуй на что ты там её будешь подвязывать. Она абсолютна никак не связана с тем, что ты будешь делать. Поэтому, где-то в другом месте ты сделаешь так:

button1.Pressed += (sender, e) =>
{
Make(barrel);
Suck(dick);
}

Ты можешь динамически менять обработчики:

if(youAreFaggot)
{
button1.Pressed +=Suck(dick);
}
else
{
button1.Pressed +=Suck(chupaChups);
}

При этом код кнопки не будет меняться.

Показать весь текст
Ответы>>840936>>840973

12 Сен, 22:49 #452 #840936

>>840888
>>840909
Спасибо, я вроде понял.
Просто для меня в обычном консольном приложения уровня laba 1 использование евентов было не слишком очевидно

Ответы>>840965

12 Сен, 23:47 #453 #840965

>>840936
Ну вот напиши для laba2 консольное же приложение которое логгирует действия пользователя с файлами в определенной папке с помощью FileSystemWatcher.

12 Сен, 23:59 #454 #840973

>>840909
И чем эта хуйня отличается от создания классов в css и подвешивания потом классов через addeventlistener？

Ответы>>841118

13 Сен, 09:50 #455 #841118

>>840973
Тем что ты пидор)))0

13 Сен, 13:58 #456 #841212

>>840332
Но ведь asp.net так легко не развернешь, как приложения на python например, так ведь? Почему хостинг днем с огнем не сыщешь бесплатный?

Ответы>>841371

13 Сен, 15:18 #457 #841260

Решарпер после обновления до 2016.2 стал на одном проекте валить студию при загрузке. Что делать?

13 Сен, 15:34 #458 #841266

Вопрос по архитектуре от новичка. Простая программа учёта, типа оборудование IT конторы, можно перемещать из кабинета в кабинет, заводить новое, списывать. База SQLite, сейчас в процедурном стиле на событие нажатие кнопки висит селект или апдейт, но так сложно менять запросы ибо они раскиданы по баттонам/формам. Думаю сделать статический класс типа QueryManager и всё хранить там, а на кнопку вешать QueryManager.MoveItem(item). Нормальный вариант или есть лучше способы организации приложения?

138 Кб, 1280x744

13 Сен, 16:59 #459 #841318

Есть сорцы одной программы на гитхабе, хочу ее собрать без засирания системы студией.
поставил шарпдевелоп и билдтулс, попробовал собрать и пожрал говна с ошибками.
как это собрать без студии? https://github.com/martinmine/Shikashi-Uploader
в релизе старое говно

Ответы>>841347

13 Сен, 17:01 #460 #841320

>>826301
ну он имел в виду что-то типа
>2k16
>десктоп

13 Сен, 17:04 #461 #841324

>>826335
ну а как же подводные камни?

13 Сен, 17:42 #462 #841347

>>841318
Родина им студию дала, охуенную, бесплатную, юзай, юзай студию! Нет, не хотим, хотим из говна и палок собирать велосипед, засирать систему не меньше и страдать. И это разрабы?

Ответы>>841364

13 Сен, 18:15 #463 #841364

>>841347
Нахуй мне это говно размером с ос? тем более, что я не пишу на шарпе.

13 Сен, 18:24 #464 #841370

Вот что за гавно. Почему за что не берется мс всё пиздой накрывается? Серьезно. Вот сделали операционку и типо в шоколаде должны быть, лидерами. Двигаться вперёд, на примере своём показывая кто тут главный а на деле делают рывок и курить уходят проебав всё преимущество и все позиции. Все бородачи убежали на юникс все мамкины эстеты, модники, хипстеры на гейоси и оставили мс рыночек обычных пользователей и вместо того что бы попытаться забрать их себе продолжили хуйнёй страдать и менять обои пока остальные жопу рвали. Теперь на гейоси помимо всех старых модников еще и наебизнесмены и стремящиеся и вообще это уже просто блядь бренд (как модные шмотки) который хотят себе все. Бородачи же пошли в другую сторону и довели всё до состояния что пользоваться юниксами теперь уже и домохозяйки могут и забрали эту часть. Пользователи винды получили новые обои. Сделали свой флеш, "перевернем мир" вся хуйня и могли ведь но как сделали так и списали в утиль и помнят о нём только связанные с тематикой. Был блядь офис, нахуй с рынка благодаря опен офису гугл доксам и прочей хипстерской хуйне. Можете почитать гиктаймс 90% "их приглашенных поболтать" пользуются чем угодно но только не продукцией мс. Языки свои были, нахуй половину. Остальные всосали лишь потому что дальше чем на мс невозможно с ними было работать а мс уже нахуй никому не нужен был. Сервера, энтерпрайз (банки,больницы,инвест фонды, кофеварки, секс игрушки) нахуй всё не пользуются там продукцией мс. Оракл и ява забрали половину остальное раскидали по полу деритесь за еду. Дальше больше решили в мобилки уйти, нокию блядь купили показать как всё заебись в итоге нету нахуй больше нокии нету нахуй виндовсфонов расспродают патенты уже кто что возьмет в китае. Супер просто и как обладатель люмии могу честно сказать нихуя там в магазине приложений хорошего нет, сорта говна одни, чего уж говорить даже Стим который продает 99% игр под винду не озаботился о том что бы клиент под виндос фоны сделать, только блядь андроит и гейось всё. Нахуй люмии, сидите под Bluestack если хотите, я без него даже войти не могу в клиент стима зайти теперь. Спасибо блядь. Про почту их забыл, такая полезная что только для их внутренних сервисов и используется лучшая просто блядь и такая же нахуй никому не нужна если контекст мс убрать. Скайп купили такой то вин, связали со всем чем можно своим убранством "и вот теперь-то соснут все" подумали хуй там плавал, теперь все благополучно пользуются всякими телеграмами,перископами прочей хуйней по скайпу не помню уже когда говорил он блядь превратился в "сейчас я тебе в <приложение нейм> наберу" "Ой а у меня его нет" "ебать ты лох ладно в скайп наберу" и на следущий день уже минус один пользователь скайпа. Почему мс убивает всё к чему руку протягивает?

13 Сен, 18:24 #464 #841370

Вот что за гавно. Почему за что не берется мс всё пиздой накрывается? Серьезно. Вот сделали операционку и типо в шоколаде должны быть, лидерами. Двигаться вперёд, на примере своём показывая кто тут главный а на деле делают рывок и курить уходят проебав всё преимущество и все позиции. Все бородачи убежали на юникс все мамкины эстеты, модники, хипстеры на гейоси и оставили мс рыночек обычных пользователей и вместо того что бы попытаться забрать их себе продолжили хуйнёй страдать и менять обои пока остальные жопу рвали. Теперь на гейоси помимо всех старых модников еще и наебизнесмены и стремящиеся и вообще это уже просто блядь бренд (как модные шмотки) который хотят себе все. Бородачи же пошли в другую сторону и довели всё до состояния что пользоваться юниксами теперь уже и домохозяйки могут и забрали эту часть. Пользователи винды получили новые обои. Сделали свой флеш, "перевернем мир" вся хуйня и могли ведь но как сделали так и списали в утиль и помнят о нём только связанные с тематикой. Был блядь офис, нахуй с рынка благодаря опен офису гугл доксам и прочей хипстерской хуйне. Можете почитать гиктаймс 90% "их приглашенных поболтать" пользуются чем угодно но только не продукцией мс. Языки свои были, нахуй половину. Остальные всосали лишь потому что дальше чем на мс невозможно с ними было работать а мс уже нахуй никому не нужен был. Сервера, энтерпрайз (банки,больницы,инвест фонды, кофеварки, секс игрушки) нахуй всё не пользуются там продукцией мс. Оракл и ява забрали половину остальное раскидали по полу деритесь за еду. Дальше больше решили в мобилки уйти, нокию блядь купили показать как всё заебись в итоге нету нахуй больше нокии нету нахуй виндовсфонов расспродают патенты уже кто что возьмет в китае. Супер просто и как обладатель люмии могу честно сказать нихуя там в магазине приложений хорошего нет, сорта говна одни, чего уж говорить даже Стим который продает 99% игр под винду не озаботился о том что бы клиент под виндос фоны сделать, только блядь андроит и гейось всё. Нахуй люмии, сидите под Bluestack если хотите, я без него даже войти не могу в клиент стима зайти теперь. Спасибо блядь. Про почту их забыл, такая полезная что только для их внутренних сервисов и используется лучшая просто блядь и такая же нахуй никому не нужна если контекст мс убрать. Скайп купили такой то вин, связали со всем чем можно своим убранством "и вот теперь-то соснут все" подумали хуй там плавал, теперь все благополучно пользуются всякими телеграмами,перископами прочей хуйней по скайпу не помню уже когда говорил он блядь превратился в "сейчас я тебе в <приложение нейм> наберу" "Ой а у меня его нет" "ебать ты лох ладно в скайп наберу" и на следущий день уже минус один пользователь скайпа. Почему мс убивает всё к чему руку протягивает?

Показать весь текст
Ответы>>841373>>841375

13 Сен, 18:26 #465 #841371

>>841212
наверное потому, что хостинг на дотнет - это традиционно винда, за которую надо заплатить. а вообще, что ты подразумеваешь под бесплатностью хостинга? тоталфри аля народ.ру когда-то? ну это жирновато. а хостингов с триалом не так уж прям многомного, но хватает. некоторые триалы даже супер круты по условиям, однако там не работает нихуя нормально, но это побочный уже эффект

13 Сен, 18:27 #466 #841373

>>841370
а это я забыл еще про этот мертвый тред мертвого языка, в топане полтора вкатывальщика что ждут по пол дня в ЛУЧШЕМ случае помощи а потом уходят дублировать вопрос в QA в шапке /pr в том же жабаториуме и то в разы лучше. Пиздец у меня бомбит сегодня.

13 Сен, 18:33 #467 #841375

>>841370
Охуенная паста

Ответы>>841383

13 Сен, 19:06 #468 #841383

>>841375
Дак заебался я уже смотреть на эту парашу блядь, книги все что купил, люмия блядь офис который блядь я запускал пару раз, винда купленая нахуй всё это какой в этом блядь смысл? Я мог поставить какую нибудь ебунту и дрочить яву и имел бы в своём регионе гораздо больше вакансий для трудоустройства но блядь даже среди тех что есть по net это 50% асп 25 допиливание чужих костылей оставшиеся 25 это упоминание в вакансии на позицию java что ты с нет платформой (синтаксисом) знаком. Мобилки мертвы, ентерпрайз мертвый, асп только еще более менее держится на плаву за счёт внутренних ERP систем ну и юнити подогнали что бы мс спасти, хоть какой-то прирост в шарп активности но даже блядь при этом в 2015 когда java упала сильнее всего за всё время она всё равно стала языком года а ебаный шарп как не попал в тройку так и нахуй идет до сих пор.

Ответы>>841515

13 Сен, 22:06 #469 #841511

Почаны, чем парсить аргументы командной строки в .NET Core?

13 Сен, 22:12 #470 #841515

>>841383
А нахуя тебе ассортимент вакансий если нужна тебе одна? Я когда выбирал язык запариаался на эту тему, а по факту сейчас заебываюсь футболить эйчаров с моего круга и хх.

14 Сен, 09:06 #471 #841641

>>840346
>по умолчанию

private

14 Сен, 10:54 #472 #841676

Я правильно понимаю, что массив объектов в C# это просто массив ссылок на объекты? Можно как-то выделить память сразу под все объекты, или для этого нужно только использовать struct?

Ответы>>841681

14 Сен, 10:58 #473 #841681

>>841676
попробуй почитать про stackalloc в контексте блоков unsafe, это альтернатива оператору new(), который выделяет последовательно расположенную память в стеке вместо кучи.

79 Кб, 1024x1024

14 Сен, 21:20 #474 #841973

Почему на дотнете нет нормальных проектов? На 3 собеса уже сходил - везде предлагают веслать кривое наследие хуй знает сколько летней давности. Заебалось, честное слово.

Ответы>>842003>>842062

14 Сен, 21:40 #475 #842003

>>841973
Ты так в каждом треде будешь писать? Я тебя помню из джава треда, зеленый!

Ответы>>842007

14 Сен, 21:43 #476 #842007

>>842003
В джава треде писал не я, но я поддерживаю пост и мне неприятно, что на дотнете легаси говнище, а не проекты.

Ответы>>842009

14 Сен, 21:46 #477 #842009

>>842007
Ну энтерпрайз проекты вообще очень живучи

14 Сен, 22:44 #478 #842056

>>840660
Странный вопрос какой-то, продвигаются в следующее поколение живые объекты, мусор с деструкторами (которые на самом деле нихера не деструкторы, а финализаторы) не в поколение перемещается, а в специальную очередь финализации. В этой очереди обработка происходит не на потоке сборщика, а на другом (чтобы нахер не повесить финализатором сборку/выделение памяти), из этого состояния объект может воскреснуть (корректно написать код такой очень тяжело, но иногда требуется, например для поддержки пула соединений: в финализаторе происходит подчистка всякого говна, которое юзер забыл очистить, а соединение возвращается в пул), кроме того объект может оказаться собран в тот момент когда происходит интенсивная работа, поэтому финализация откладывается до более спокойного времени/острой недостатки памяти.
То бишь можно было бы сразу, но не выгодно. (По примерно той же логике несколько поколений у сборщика, а не одно)

14 Сен, 22:48 #479 #842060

Сап, дайте ссылочку на посоветуйте модную книг на общепанятнам языке.

59 Кб, 500x350

14 Сен, 22:48 #480 #842062

>>841973
>везде предлагают веслать кривое наследие хуй знает сколько летней давности
Добро пожаловать в Энтерпрайз, сынок!

37 Кб, 460x460

15 Сен, 22:27 #481 #842646

Ананасы, подкиньте годной литературы по TPL. Раньше была статья (серия статей) на RSDN, да то ли сайт сам закрылся, то ли статья проебалась, в общем, ищу нечто похожее

Ответы>>842651

15 Сен, 22:33 #482 #842651

>>842646
Замени в rsdn.ru... ru на org

16 Сен, 15:40 #483 #842907

Есть задачка на с# - надо написать программку, которая бы вела лог всех подключенных и отключенных носителей (диски/флешки/прочее).
С помощью чего можно мониторить подключение и отключение?

Ответы>>842910

16 Сен, 15:49 #484 #842910

>>842907
Чому бы тебе не погуглить? Можешь дергать DriveInfo.GetDrives() периодически, а можешь попердолиться в win api.

Ответы>>842918

16 Сен, 15:58 #485 #842918

>>842910
>Чому бы тебе не погуглить?
Ну я нагуглил вот эту статейку
http://mycsharp.ru/post/21/2013_06_12_rabota_s_fajlami_v_si-sharp_klassy_streamreader_i_streamwriter.html
Но это все же не мониторинг.
>периодически
Думал, но это как-то слишком топорно на мой взгляд? Запись-то должна быть только при смене конфигурации.
Есть же какие-то события в винде при обнаружении/удалении устройства, я думал может подскажут как их использовать?

Ответы>>842921

16 Сен, 15:59 #486 #842921

>>842918
>вот эту статейку
Не ту, вот эту
http://upread.ru/art.php?id=103

Ответы>>842959

16 Сен, 17:35 #487 #842959

>>842921
Ты на кокаом языке гуглишь?
http://www.codeproject.com/Articles/18062/Detecting-USB-Drive-Removal-in-a-C-Program

Ответы>>842974

16 Сен, 18:25 #488 #842974

>>842959
На русском, вроде бы.
Спасибо!

Ответы>>843006

16 Сен, 19:31 #489 #843006

>>842974
Не надо так гуглить.

16 Сен, 19:39 #490 #843009

Скомпилировал небольшую программку в Xamarin Studio (бывший MonoDevelop). Получился экзешник, на винде работает нормально, но на лине не открывается. Как скомпилировать проект в XS под линух?

Ответы>>843016

16 Сен, 19:54 #491 #843016

>>843009
А что пишет? Да и как ты запускаешь? На линуксе стоит mono? Он console или winform?

Ответы>>843032

16 Сен, 20:42 #492 #843032

>>843016
Не знает как открыть, .exe же. Да, моно стоит. На GTK#.

Ответы>>843034

16 Сен, 20:47 #493 #843034

>>843032
mono ./kolobok.exe

Ответы>>843047>>843173

16 Сен, 21:16 #494 #843047

>>843034
Шо в терминале то показывается? И что за версия mono?

17 Сен, 00:37 #495 #843173

>>843034
>mono ./kolobok.exe
Запустилось! Спасибо!
Оно по двойному клику не стартовало, вот я и решил, что не работает.

!PepsiY0aso 17 Сен, 15:46 #496 #843400

Какие преимущества новой IDE Rider от JetBrains перед VS?
inb4: кроссплатформеность

Ответы>>844818

17 Сен, 15:47 #497 #843401

ой, трип случайно

Ответы>>843456

17 Сен, 17:28 #498 #843456

>>843401
зачем ты акцентируешь внимание на свой трип код? всем ведь похуй, а ты лишь обращаешь на него внимание своим "я случайно". может, и не случайно вовсе?

Ответы>>843481>>843534>>843545

179 Кб, 682x567

17 Сен, 17:33 #499 #843458

Анон, есть необходимость сохранить объект класса в отдельный файл и для этого используется сериализация. Однако код программы обфусцирован, а поля сериализованного класса (ровно как и все поля его базовых классов), как известно, обфускации не подлежат. Так как же защитить код программы в этом случае, если в отдельный файл как раз необходимо сохранить, в общем-то, все сердце программы?

Ответы>>843467>>843624

17 Сен, 17:42 #500 #843467

>>843458
> поля сериализованного класса (ровно как и все поля его базовых классов), как известно, обфускации не подлежат.
почему?

17 Сен, 18:08 #501 #843481

>>843456
Спасибо, что ответил по вопросу, ламер.

Ответы>>843483

17 Сен, 18:10 #502 #843483

>>843481
тебе сложно ответить на вопрос? в принципе, если рассуждать как ты, то и тебе отвечать не должны, ведь раз ты не знаешь сам ответа на свой вопрос, то ты ламер.

Ответы>>843484

17 Сен, 18:12 #503 #843484

>>843483
пиздец ты ебанутый
>мне настолько похуй

Ответы>>843485>>843487

17 Сен, 18:14 #504 #843485

>>843484
почему ебанутый?

Ответы>>843486

17 Сен, 18:14 #505 #843486

>>843485
ерунду несешь.

Ответы>>843488

17 Сен, 18:15 #506 #843487

>>843484
>мне настолько похуй
ого, ты крутой.

17 Сен, 18:15 #507 #843488

>>843486
почему ерунду?

Ответы>>843489

17 Сен, 18:16 #508 #843489

>>843488
я тебя в твои же сообщение носом тыкать не собираюсь, извини.

Ответы>>843493

17 Сен, 18:22 #509 #843493

>>843489
ну пожжи. ты отказался давать мне ответ на вопрос просто под предлогом того, что я не знаю ответ на вопрос. отсюда можно предположить, что ты считаешь себя выше того, чтобы отвечать людям на вопросы, ответы на которые они не знают, а ты знаешь. почему тогда тебе должны отвечать люди на вопрос, ответ на который они знают, а ты не знаешь? я не ответил на твой вопрос, потому что не знаю на него ответ, но в то же время один аспект формулировки твоего вопроса меня заинтересовал. если тебя оскорбило, что я, незнающий ответа на вопрос, обратился напрямую к тебе, потому что, похоже ты знаешь на него ответ, то, во первых, иди нахуй, пидорас ЧСВшный, а во вторых, задам тогда вопрос абстрактно, всем участникам треда: почему поля сериализованного класса (ровно как и все поля его базовых классов) обфускации не подлежат?

Ответы>>843495>>843496

17 Сен, 18:23 #510 #843495

>>843493
лол

Ответы>>843497

17 Сен, 18:23 #511 #843496

>>843493
Сейчас бы высеры ламерья почитать, м...

Ответы>>843498

17 Сен, 18:24 #512 #843497

>>843495
что смешного?

17 Сен, 18:24 #513 #843498

>>843496
почему высеры?

17 Сен, 19:24 #514 #843534

>>843456
А что плохого в трипкодах?

Ну честно заебали семены и когда за меня отвечают.

302 Кб, 619x449

17 Сен, 20:03 #515 #843545

>>843456
> всем ведь похуй
тебе то видно как похуй

556 Кб, 2000x1250

17 Сен, 20:23 #516 #843557

Анон, а как ты разбираешься с большими неизвестными солюшенами?

С отдельными мелкими классами проблем нет, но я не понимаю как разобраться с большой кодовой базой в целом.
Разобраться в целом = знать какие классы есть в проекте, какие у них интерфейсы, как классы связаны между собой. Глубокое знание реализации пока не интересует.

Пробовал Code Map, легче не стало. :(

17 Сен, 22:02 #517 #843624

>>843458

Бамп вопросу.

Ответы>>843631

17 Сен, 22:08 #518 #843631

>>843624
Не обфусцируй / не сохраняй / настрой свой обфускатор / используй сериализацию, которая не сипользует имаена классов и полей при сериализации

18 Сен, 00:27 #519 #843712

ПЕРЕКАТ
http://2ch.hk/pr/res/843711.html (М)
http://2ch.hk/pr/res/843711.html (М)

20 Сен, 07:40 #520 #844818

>>843400
Работает пошустрей

Тред утонул или удален.
Это копия, сохраненная 3 октября 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion