[Ответить в тред] Ответить в тред

02/12/16 - Конкурс визуальных новелл доски /ruvn/
15/11/16 - **НОВЫЙ ФУНКЦИОНАЛ** - Стикеры
09/10/16 - Открыта доска /int/ - International, давайте расскажем о ней!



Новые доски: /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • /int/ - International • /ruvn/ - Российские визуальные новеллы • /math/ - Математика • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 503 | 39 | 165
Назад Вниз Каталог Обновить

.NET THREAD #5 (C#/F#/VB) Аноним 03/12/16 Суб 18:34:41  887100  
C-books-to-lear[...].jpg (16Кб, 260x321)
ред единственной элитной платформы в мире программирования.

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

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

Прошлый тред тонет здесь: https://2ch.hk/pr/res/869105.html
Аноним 03/12/16 Суб 18:35:40  887105
И сразу вопрос: каковы шансы при устройстве на работу джуном попасть на новый проект, а не на поддержку тысячелетнего говна?
Аноним 03/12/16 Суб 21:05:38  887199
>>887105
перед собесом спрашиваешь: куда и на что тебя собеседуют. ну а дальше 60/40, что наебут
Аноним 03/12/16 Суб 21:17:16  887209
Сап, дотнетач. Понадобилось мне тут обработать ~10000 картинок, решил написать одноразовую программулину на C#.
Делаю все как обычно, последовательно по одной картинке за раз (распараллелить тут нельзя, ибо манипуляции с каждой следующей картинкой зависят от предыдущей + рандом):

Width = bitmap.Width;
Height = bitmap.Height;
Bits = BitmapToByteArray(bitmap);
BitsHandle = GCHandle.Alloc(Bits, GCHandleType.Pinned);
Bitmap = new Bitmap(Width, Height, Width * 4, PixelFormat.Format32bppArgb, BitsHandle.AddrOfPinnedObject());

Далее произвожу нужные мне манипуляции с Bits, делаю Bitmap.Save, и после сохранения освобождаю GCHandle и все ресурсы.
Но возникает проблема - программа правильно обрабатывает и сохраняет примерно первые 3-5 тысяч картинок, и после этого на рандомной картинке на Bitmap.Save выдает мне "AccessViolationException: Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена". Все картинки имеют одинаковые параметры (размер, формат, битность).

Аноны, подскажите, куда копать? В каком месте память повреждается? И как она вообще может повредиться, если я выполняю все последовательно, и освобождаю все ресурсы строго после того, как они перестают использоваться? Тем более, все это делается даже без unsafe.
Аноним 03/12/16 Суб 22:00:18  887254
>>887209
действительно ли тебе тут нужен gchandle, или проще воспользоваться блоком using для bitmap?

выполняешь ли ты все дела с картинкой в unsafe блоке?
Аноним 03/12/16 Суб 22:30:24  887268
>>887254
Вот этого удвою. Если уж совсем параноик, можешь явно прописать на Bitmap'е диспоуз.
Аноним 03/12/16 Суб 22:38:56  887274
Здравствуйте дамы и господа!

Прямо с детства мечтал стать ниибаца кодером, как-то с годами забыл, но вот недавно пыл вернулся, на этот раз цель себе поставил четко. Свободного времени в день 2-3 часа +/-. Хочу это время полностью посвящать шарпу.
Интересует разработка софта для соц.сетей, всякие боты и т.д., многопоточность, брут, ну и прочая хуйня.
Знаний самую малость, но не полный 0.
Так вот, очень прошу вас дать мне дельные видео уроки, книжки и т.д., дабы я их полностью переварил и начал потихоньку сам, свободно кодить, без копи-пасты чужих кодов.
Алсо, пытался смотреть ITVDN курсы лысого Путина, но не зашла часть после машинных кодов, все эти байты и прочая хуйня сильно поимели мой мозг.

Коротко говоря, нужны годные видео уроки и книжки, где доступным языком научат потихоньку самостоятельному кодингу.
Заранее благодарен тебе анон!
Аноним 03/12/16 Суб 22:46:58  887276
>>887100 (OP)
Здравствуйте дамы и господа!

Прямо с детства мечтал стать ниибаца кодером, как-то с годами забыл, но вот недавно пыл вернулся, на этот раз цель себе поставил четко. Свободного времени в день 2-3 часа +/-. Хочу это время полностью посвящать шарпу.
Интересует разработка софта для соц.сетей, всякие боты и т.д., многопоточность, брут, ну и прочая хуйня, короче, вполную использовать API и т.д.
Знаний самую малость, но не полный 0.
Так вот, очень прошу вас дать мне дельные видео уроки, книжки и т.д., дабы я их полностью переварил и начал потихоньку сам, свободно кодить, без копи-пасты чужих кодов.
Алсо, пытался смотреть ITVDN курсы лысого Путина, но не зашла часть после машинных кодов, все эти байты и прочая хуйня сильно поимели мой мозг.

Коротко говоря, нужны годные видео уроки и книжки, где доступным языком научат потихоньку самостоятельному кодингу.
Аноним 03/12/16 Суб 22:48:57  887277
>>887274
>очень прошу вас дать
Нахуй проследуй. Если не в состоянии найти сам - в айти тебе не место.
Аноним 03/12/16 Суб 22:54:17  887279
>>887274
> видео уроки
Учить программирование по видеоурокам - то же самое, что и просить других людей пережевать еду за тебя, чтоб ты потом мог только проглотить.
> книжки
На русском всё устаревшее, на английском годная литература в основном только за бабло.

Всё это хуйня, ты так ничему не научишься. Просто ставишь себе задачу "написать такое-то приложение", гугл в зубы - и вперёд, по пути всему, что потребуется, научишься.
И да, вот этот >>887277 господин полностью прав - либо учишься искать нужную инфу сам, либо нахуй путешествуй отсюда.
Аноним 04/12/16 Вск 00:07:37  887323
>>887279
Двачую. Я сам начинал с C/C++. Си учил по Ричи, а кресты по Страусу. Плюс гуглил если что-то не понятно. Дальше все языки без книг учу и видео. Там слишком для начинающих объясняют. Не хочу каждый раз проходить переменные снова. Лучше так как ты сказал, Google+MSDN+SO и пилишь проект.
Аноним 04/12/16 Вск 00:24:07  887337
>>887277
>>887279
>>887323
Благодарствую господа.
Так и быть, откину нахуй все книжки и видео уроки и сяду тупо пилить софт путем поиска в гагле.

Назрел такой вопрос:
На каком уровне знаний лучше лезть в API? Там дохуя сложно или как? Тут наверное есть те, кто работал с API.
Аноним 04/12/16 Вск 02:31:43  887389
Capture.PNG (27Кб, 895x207)
>>887337
Это просто пиздецки сложно. На пике все слова, которые тебе нужно гуглить.
Аноним 04/12/16 Вск 03:58:05  887409
Для каких реальных кейсов используется dynamic? У меня такое ощущение, что он нужен только для того, чтобы любители динамикодрисни а-ля JavaScript чувствовали себя как дома, кладя хуй на всю систему типов.
Аноним 04/12/16 Вск 09:03:21  887425
>>887409
для совместимости с языками программирования без статической типизации. ну либо в случае, когда структура объекта может быть настолько разной, что аж плохо становится
Аноним 04/12/16 Вск 11:37:42  887463
>>887337
Если умеешь в Си, начни с албахари. Идёт как справочник по возможностям языка и потом юзкейсы. Мне после контроллеров заходит самое оно.
Аноним 04/12/16 Вск 11:50:41  887468
>>887409
D L R
L
R
Аноним 04/12/16 Вск 15:18:18  887714
Господа анонимные шарписты, где почитать про библиотеки?

Вот у меня есть самописный редактор уровней для самописной игры. Есть инструменты - кисть, ластик, селектор для работы со свойствами конкретного блока и создания связей, етц. Каждый такой инструмент - синглтон, наследующий интерфейс ITool. Я хочу каждый такой инструмент сделать дллькой, чтобы в коде это выглядело как-то так:
foreach (var tool in toolDir.GetFiles(*.dll))
Tools.Add(tool.Name, tool);

Мне нужно узнать собственно про импорт и детали создания. Если просто создать новую библиотеку классов, сунуть туда все связанные интерфейсы и код из текущих классов, это будет правильно?
Аноним 04/12/16 Вск 16:53:11  887778
>>887714
MEF
Аноним 04/12/16 Вск 17:06:07  887787
>>887778
На первый взгляд, выглядит правдоподобно. Спасибо.
Аноним 04/12/16 Вск 19:55:14  887926
>>887787
> На первый взгляд, выглядит правдоподобно
Это только на первый взгляд, на самом деле MEF - хуита лютая. Я хотел использовать в своем проекте, но, почитав доки и посмотрев примеры кода, решил, что нахуй это всё. Ограничился подгрузкой модуля через Reflection, куда быстрее и проще.
Аноним 04/12/16 Вск 19:56:43  887928
Я не понимаю шарп и мне больно.
Аноним 04/12/16 Вск 20:10:02  887937
>>887928
Как можно не понимать один из самых простых языков программирования? Синтаксис самый что ни на есть классический, без новомодных выебонов. Каких-то подводных камней, на которых может споткнуться начинающий - нету. Возможностей во фреймворке куча на все случаи жизни, а если чего-то нет, то для этого наверняка есть сторонняя либа. Шарп - наверное лучший язык для вхождения в программирование, а ты его не понимаешь. Странно как-то.
Аноним 04/12/16 Вск 20:24:18  887943
>>887937
дотнет - не самый простой фреймворк
Аноним 04/12/16 Вск 20:28:46  887946
>>887943
А что, из современного и универсального есть что-то ещё проще?
Аноним 04/12/16 Вск 20:50:26  887955
Интерпрайзоны, а какие у шарпа преимущества в корпоративной разработке перед 1c и java?
Аноним 04/12/16 Вск 22:20:22  888020
>>887946
руби-хуюби?

>>887955
охуеть, сравнивать .net и 1с
https://ru.wikipedia.org/wiki/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_C_Sharp_%D0%B8_Java
Аноним 04/12/16 Вск 22:49:39  888049
Читал давеча, что нового в седьмой версии и у меня возникает только один вопрос: почему Сишарп такой охуенный?
Аноним 04/12/16 Вск 23:24:28  888073
>>888049
так, небось, пидары как всегда наобещают, а потом повводють один синтаксический сахар
Аноним 05/12/16 Пнд 00:24:01  888117
> Что почитать про юнит тесты, чтобы научиться их писать? Много раз слышал, но сам не пользовался.

Просто про юниттесты - книга roy osherove unit tests чегототам, в целом дает норм представление и многие моменты разъясняет.
Толковый справочник xunit test patterns

По мне, юнит тесты дают максимум выхлопа при tdd.
Мой путь был таков:
Unit tests for fridy cats like me на pluralsight
Еще пачка видосов от туда по этой теме, вплоть до курса марка симана
Книжка growing object oriented software guided by tests - вот после нее все встало на свои места и теперь мне без test first жизнь не мила.
Аноним 05/12/16 Пнд 02:02:40  888162
>>888073
>а потом повводють один синтаксический сахар
А они же вроде ничего кроме сахара и не обещали (паттерн матчин там будет примитивный)
Аноним 05/12/16 Пнд 07:00:05  888225
Уже год как вкатился в асп мвс. Каждый день я занимаюсь крудошлепством и ковырянием проекта, знания которого никак не помог мне при перекате в другую контору. Если бы это не разбавлялось фронтэндом и написанием тестов, я бы уже завыл от безысходности.
Это вот так все и будет продолжаться? Когда начнется интересная часть? Про многопоточность могу не мечтать?

Аноним 05/12/16 Пнд 07:21:47  888231
>>888225
Точи навыки в попенсорсе, есть множество проектов на .Net где требуются люди с опытом и горящими глазами делать что-то интересное.
Аноним 05/12/16 Пнд 08:21:41  888242
>>887254
>>887268
В общем, хотел расписывать ответы на вопросы, но таки нашел решение.
Прежде всего напишу, что я не программер, никогда на него не учился, и это всё - чистое хобби. Так что возможно я просто не учёл какую-то особенность языка.

Сначала скажу, что я использовал не Bitmap, а класс-обертку (DABitmap) над ним, которая позволяет доступ к пикселям напрямую - получается доступ к массиву каналов без unsafe кода, LockBits, Marshal.Copy и прочей ненужной шелухи, при этом со скоростью того самого LockBits. Написал свои методы GetPixel и SetPixel, работаю с ними.
Для обработки картинки я сделал функцию ProcessBitmap, которая изначально принимала и возвращала DABitmap, затем в вызывающем коде уже выполнялся Bitmap.Save. Всё работало прекрасно, однако прога стала сжирать память в больших количествах. На маленьких наборах картинок ещё всё отрабатывало, а на полном массиве, по моим подсчетам, ей понадобилось бы около 20 гигов оперативки. Я прогнал профайлером и обнаружил, что по какой-то причине те самые одномерные массивы каналов после использования продолжали оставаться в памяти, по ~2 мб на картинку. Я решил изменить функцию так, чтобы она принимала исходный DABitmap, и через ref обычный битмап, в который нужно возвратить результат. Прописал возвращение через Bitmap.Clone, затем вручную Dispose на используемые ресурсы. Пожирание памяти прекратилось, но стала выплывать проблема из >>887209. В итоге я решил ради теста не возвращать битмап, а сохранять его непосредственно из ProcessBitmap (вместо Clone), прямо перед диспозом. И, о чудо, всё вдруг заработало прекрасно. Я прогнал ради теста раз 20 на разных наборах картинок, ошибка перестала появляться.

Такие дела. Но мне всё же непонятно, почему вылетала та ошибка. Явно каким-то образом мой склонированный битмап исчезал из памяти раньше, чем успевал сработать Save, но как такое возможно?
Аноним 05/12/16 Пнд 09:28:00  888251
14665310309990.jpg (45Кб, 1247x581)
>>888020
Как руководители определяют, на какой инфраструктуре сидеть? В 1с все шаблоны отчётиков готовы и бух функции написаны. Так чем шарп для предприятия лучше? (Как доказать работодателю, что оставаясь на шарпе, мы сможем большее? В чём наше конкурентное преимущество?)

Или иначе задам вопрос, каким компаниям выгоднее .net а каким 1c?
Аноним 05/12/16 Пнд 10:17:36  888260
>>888251
тут вопрос не в том, что шарп лучше для бухучета или наоборот, а что это сравнение не совсем правильное: как теплое и мягкое

>>888162
и даже свитч-кейз для типов будет оберткой над if (obj is Type) { (Type)obj. } ?
нупиздец
Аноним 05/12/16 Пнд 12:08:36  888296
>>888260
Ну им же легче компилятор дописать, чем саму clr чтобы она понимала твой паттерн матчинг. Зато работать будет без обновлений фреймворка
Аноним 05/12/16 Пнд 12:09:51  888297
>>888225
Многопоточность?
Ну попробуй редактировать и удалять одну и ту же сущность в паралели - если всё ёбнется - чини. Узнаешь про потоки
Аноним 05/12/16 Пнд 12:11:11  888300
>>887928
>я тупой
>мне больно
отсутствие мозга создает вакуум.
Потому тебе больно.
Аноним 05/12/16 Пнд 13:26:08  888364
ЬМС.png (47Кб, 1276x763)
>>888225
Подмогите, аноны. Обращался в прошлом треде, уже больше понимания, но остались еще вопросы.

Дали курсовой по .net сделать интернет магазин.
То, что должно быть в проекте обязательно:
N-tier
asp MVC
autofac
EF CodeFirst


Должно быть 4 слоя:
1) Репозиторий
2) Домен
3) Сервисы
4) MVC

Я все правильно понимаю или нет?
Буду искренне благодарен!
Аноним 05/12/16 Пнд 14:10:10  888391
>>888364
Я сам джун, но всё-таки отвечу.

Делай три слоя:
Domain
DAL
Web

В Domain лежат сущности, сервисы и интерфейсы репозиториев. Этот слой ни от кого не зависит. Здесь реализуется только бизнес-логика.

-----

DAL - реализует интерфейсы репозиториев из Domain. Соответственно, от него же он и зависит. То, что ты пишешь реализации интерфейсов в отдельной сборке позволяет тебе полностью абстрагироваться от способа хранения данных, у этого есть свои плюсы:
1. Ты не думаешь понятиями EF или других механизмов хранения данных, когда пишешь Domain-слой
2. Ты можешь писать юнит-тесты для Domain-слоя, делая заглушки для репозиториев
3. Если приспичит, то можно без особой боли отказаться от EF (хотя хуй знает, зачем)

Отдельно стоит сказать, что в DAL слое у тебя, скорее всего, будут лежать дубликаты всех сущностей в виде DTO. Причина этого в том, что в Domain слое ты, по хорошему, убираешь часть сеттеров (например, у пользователя нельзя поменять id после создания). EF пошлёт тебя нахуй, если ты попытаешься создать сущность с отсутствующим сеттером и без конструктора по умолчанию (который без параметров). Поэтому тебе нужно будет маппить доменные сущности к DTO и обратно. Чтобы не писать тучу однотипного кода, есть готовые либы, можешь погуглить. Алсо, в этих DTO ты можешь использовать аннотации для описания схемы бд, типа [StringLength(200)]. Все эти DTO можешь пометить модификатором internal, поскольку кроме DAL-слоя о них никто не знает.

-----

Web, соответственно, зависит от двух верхних слоёв и делегирует исполнение бизнес-голики доменным сервисам. В контроллерах не должно быть никакой бизнес-логики. Только валидация, преобразования сущностей в DTO (например, тебе нужно в результате отдать данные пользователя в виде JSON, но ты не хочешь отправлять его пароль) и отправка результатов на выход.

Ахуеть, я на курсовых только формошлёпством занимался. Удачи тебе.
Аноним 05/12/16 Пнд 14:21:42  888409
>>888364
Вроде все так. Только учти, что нижние слои не должны знать о верхних, что-то типо такого:
Domain <- Repo <- Service <- Web
т.е. доменка не связана ни с чем, репозитории знают только о доменке и т.д.
Аноним 05/12/16 Пнд 14:38:22  888422
>>888391
Спасибо, я еще до конца не разобрался, но разве не с помощью IoC контейнеров реализуются интерфейсы репозиториев?
Аноним 05/12/16 Пнд 14:45:14  888426
Посоны, EF рабочая технология или нет? Разве запросы не проще хранимыми процедурами написать? Энторпрайз уровень, EF видел только в простейших реализациях.
Аноним 05/12/16 Пнд 14:49:33  888428
>>888422
Зависимость для контейнеров прописывается на уровне web-приложения как раз.

>>888426
Что тебе мешает вызывать хранимые процедуры из EF? Да и не все же ты на хранимках будешь делать. Где-то достаточно простого запроса с использоваие linq и EF, если даных не много. Зачастую мне кажется EF в тырпрайсе только по историческим причинам существует - когда-то запилили, ибо самый удобный инструмент был, а микро-orm небыли на слуху и не пользовались популярностей.
Аноним 05/12/16 Пнд 14:52:58  888431
>>888422
IoC контейнер всего лишь управляет зависимостями. Например, у тебя есть сервис, который зависит от объекта типа IUserRepository. Ты хочешь скормить ему реализацию в виде UserRepository. При этом UserRepository лежит в другой сборке и напрямую ты от него не зависишь.

Для этого тебе нужно настроить твой IoC-контейнер. Ты пишешь либо в DAL, либо в Web-слое что-то рода:
Bind<IUserRepository>().To<UserRepository>();

Всё. Теперь любой, кому понадобится реализациия IUserRepository, сможет её получить. Автомагия IoC-контейнера подставит репозиторий в конструктор для твоего сервиса.
Аноним 05/12/16 Пнд 15:02:04  888436
>>888428
там где достаточно простого запроса, селекта через ADO хватает. Про энторпрайз - я имел в виду, что EF там нет. (Ориентируюсь на SharePoint).
Аноним 05/12/16 Пнд 15:03:02  888437
>>888409
Спасибо, еще раз, а то не мог найти, что бы доступным языком объяснили
Аноним 05/12/16 Пнд 15:12:40  888444
>>888431
>>888437
Аноним 05/12/16 Пнд 16:08:40  888473
>>888436
Через ado пиздец неудобно работать - linq куда красивее и проще.
Аноним 05/12/16 Пнд 17:29:12  888534
>>887105
Джуном без опыта устроиться непросто. Сейчас джунов как говна, а позиций не так уж много. Легче мидла одного нанять чем несколько джунов.
Аноним 05/12/16 Пнд 17:31:13  888535
>>887277
А вот этого пидора хорошего человека внезапно двачую
Аноним 05/12/16 Пнд 17:36:23  888536
>>888242
> Прописал возвращение через Bitmap.Clone


Наверное из-за этого ошибка была:

It is the common difference between a "deep" and a "shallow" copy, also an issue with the almost-deprecated IClonable interface. The Clone() method creates a new Bitmap object but the pixel data is shared with the original bitmap object. The Bitmap(Image) constructor also creates a new Bitmap object but one that has its own copy of the pixel data.

Using Clone() is very rarely useful. Lots of questions about it at SO where the programmer hopes that Clone() avoids the typical trouble with bitmaps, the lock on the file from which it was loaded. It doesn't. Only use Clone() when you pass a reference to code that disposes the bitmap and you don't want to lose the object.
Аноним 05/12/16 Пнд 17:41:56  888539
>>887279
> На русском всё устаревшее, на английском годная литература в основном только за бабло.
Все основные книги по шарпу из шапки переведенына русек, даже если не последнее издание ничего страшного в этом нету.
> Просто ставишь себе задачу "написать такое-то приложение", гугл в зубы - и вперёд, по пути всему, что потребуется, научишься.
Знал я таких хуесосов, которые хвастаются своими еба проектами которые написали с помощью гугла и SO, но при этом даже не знают для чего используется ключевое слово static. Так что книги нужно будет осилить в любом случае для более глубокого понимания предмета.
Аноним 05/12/16 Пнд 19:10:42  888623
>>888426
инфраструктура EF дает возможность писать те участки кода, которые зависят от обновления БД, но писать триггеры, самому высматривать что удалилось/изменилось/добавилось, возможность отсутствует
Аноним 05/12/16 Пнд 19:39:29  888661
>>887276
> ITVDN курсы лысого Путина, но не зашла часть после машинных кодов, все эти байты и прочая хуйня
Там что, умные вещи рассказывают? Посмотреть что-ли.
Аноним 05/12/16 Пнд 19:48:18  888669
>>888431
ioc еще всего-лишь вынужден управляет временем жизни инстансов, так-то
Аноним 06/12/16 Втр 09:16:37  888972
>>888536
> pixel data is shared with the original bitmap object
Боже мой, ну вот нахуя они это сделали? Ещё и нигде про это не написано. От функции с именем Clone ждёшь совсем другого поведения.
Аноним 06/12/16 Втр 09:45:34  888986
>>888972
ну тошо копировать пару мегабайт данных это вам не это. достаточно много всякого в BCL неочевидно в угоду производительности
Аноним 06/12/16 Втр 10:24:44  889009
Шарпаны, поясните за массивы vs коллекции. Как я понял, для повседневных нужд лучше использовать коллекции, особенно специфичные их типы: таблицы хешей, стёк и прочее. Для высоконагруженных задач обычные(особенно двумерные/зубчатые) подходят лучше.
Аноним 06/12/16 Втр 10:58:09  889022
>>889009
массив - это тоже коллекция, так-то

> для повседневных нужд
> особенно специфичные их типы
охуенная логика

хэшсеты, стэки и прочее используются там, где нужны хэшсеты, стэки и прочее. для того, чтобы загнать некое множества данных от одного места в другое, обычно используют T[]/List, прикрывая все это IEnumerable. изредка появляется необходимость использовать нечто вроде IList, IReadOnlyCollection. в качестве коллекции, которую можно дополнить/урезать - соответственно List/Collection
Аноним 06/12/16 Втр 11:10:19  889032
>>889022
Я нюфаня, но твой посыл примерно понял. Буду решать задачи с использованием всех возможных типов, по необходимости.
Аноним 06/12/16 Втр 11:20:47  889038
>>889032
пробегись глазами сюда http://metanit.com/sharp/tutorial/4.1.php раз уж так
Аноним 06/12/16 Втр 12:02:49  889055
Пацантре, как работать с соц.сетью, который не выдает свое API? Вернее, выдает его только охуительным разработчикам и т.д., а для моего говно-софта для разного рода спама его не получить.
Какие варианты еще есть?
Аноним 06/12/16 Втр 12:08:25  889057
>>889055
> выдает его только охуительным разработчикам
это чо значит? типа надо купить/подписаться?

парсить страницы
Аноним 06/12/16 Втр 12:11:04  889059
>>889057
Типа надо быть разработчиком с идеей охуительного приложения и готового шаблона, дабы предоставить этим пидоразам на проверку, а далее получить доступ.

Благодарствую за ответ.
Но нет ли другого способа? Уточню пожалуй, что речь о instagram-е. Все же акцент хотелось бы сделать на эмуляцию действий с мобильного приложения, а не через их веб-калеку.
Аноним 06/12/16 Втр 12:15:01  889062
>>889059
хех, ну как вариант найти способ спарсить реквесты/респонзы инстаапп своего мобильника
Аноним 06/12/16 Втр 12:16:20  889064
>>889062
Еще раз благодарствую и посылаю нахуй эту идею, знания не дотягивают, увы...
Возможно вернусь через пару лет к этой идее.
Кстати, меня в целом интересует всякого рода спам и т.д.
Есть ли где-нибудь охуительная обучалка по POST/GET?
Аноним 06/12/16 Втр 12:23:29  889070
>>889064
не уверен, что понял вопрос. пост/гет - это протокол HTTP, REST-сервисы и вся эта затея
Аноним 06/12/16 Втр 12:28:07  889072
>>889070
Да, я и говорил о HTTPS запросах. Т.к. API мне не получить, а вся эта ебля с телефоном не для моего уровня, то можно для начала хотя бы попробовать реализовать через калека-браузерную версию.
Аноним 06/12/16 Втр 12:32:00  889074
>>889072
ну HTTPS - это HTTP + шифрование на уровне клиента
самое сложное (как мне кажется) - это как раз с телефона декодировать что/куда/кому направляется т.к. тебе понадобится сертификат которого у тебя нет. либо колдовать над wireshark и ему подобными. но я тебе тут вообще подсказать ничего не могу
благо, у браузеров есть Console/Network, где вся эта херня проходит без проблем. тут встанет вопрос, применим ли браузерный API к кему-нибудь, или придется парсить хтмл
Аноним 06/12/16 Втр 12:33:38  889075
>>889074
А как насчет этого?
Могу я попросить тебя пробежаться глазами мельком?
Только сейчас нашел.
https://github.com/mgp25/Instagram-API
Аноним 06/12/16 Втр 12:42:39  889085
>>889075
судя по всему - это как раз и есть имитация тыкания пользователем кнопочек в браузере. только мне сложно понять как оно распознает ответ сервера (ибо рнр), но не думаю, что там что-то революционно уникальное
Аноним 06/12/16 Втр 12:44:43  889087
>>889085
Для начала нужно переписать код с PHP на C#.
Сколько примерно будет стоить такой заказ? Т.к. в PHP у меня знания только на базовом уровне, на начально-базовом.
Аноним 06/12/16 Втр 12:45:16  889088
>>889087
я хз
Аноним 06/12/16 Втр 12:48:23  889092
>>889087
оче дораха, делай форк и развивай свои скилы на си решётке.
Аноним 06/12/16 Втр 12:48:51  889094
>>889088
Ладно, проехали, ты и так мне помог аноняша.
Накидай годных гайдов и т.д., дабы усилить свои знания именно для таких целей, разработка софтов онли для соцсетей и т.д.
Какие-то определенные библиотеки может изучать, ну или пути, ну и т.д. Просто недавно только подсел на C#, общее понятие о программирование есть, лет 5 назад сутками напролет кодил, сейчас решил вернуться, только вот всю эту хуйню подзабыл, да и сейчас нужны знания онли для такого рода целей, спам и прочая хуйня в соц.сетях.
Аноним 06/12/16 Втр 12:49:52  889098
>>889094
Тереби профильные форумы на технологии -> ищи аналоги на C#
Аноним 06/12/16 Втр 16:39:34  889238
Возможно ли в 2016 собрать проект на Xamarin.Android, используя линупс?
Аноним 06/12/16 Втр 17:55:03  889275
>>889238
В чем проблема?

Ставь MONO + Android SDK, собирай msbuild или xbuild
Аноним 06/12/16 Втр 18:21:01  889291
>>887100 (OP)
Не первый раз встречаю мнение, что МС забросили WPF. Насколько это правда?
Аноним 06/12/16 Втр 19:19:54  889339
>>889291
Нафиг тебе WPF, когда есть UAP?
Аноним 06/12/16 Втр 19:28:28  889345
>>889291
это неправда как и то, что ms забросили winforms. конечно, не сказать, что это приоритетная разработка или хотя бы где-то в топах, но тем не менее
Аноним 06/12/16 Втр 19:39:18  889356
>>889339
>UAP
Я же не плиточный пидор.
Аноним 06/12/16 Втр 19:47:18  889364
>>889356
>Я же не плиточный пидор.
А какой ты пидор?
Аноним 06/12/16 Втр 19:49:26  889366
>>889364
АХаха, как ловко ты попытался меня подловить. Прям как в школе в молодости. Я никакой не пидор.))))
Аноним 06/12/16 Втр 21:51:36  889473
Снимок.JPG (114Кб, 1513x873)
Друзья помогите пожалуйста новичку.
В плане хобби\кучи свободного времени на работе изучаю .NET
Хочу в итоге написать небольшое картографическое приложение для себя. Начал курить варианты настольных приложений - Windows Form, XAML. У меня вопрос, возможно некорректно поставленный, на какой технологии создано родное приложение "Карты"? В частности как реализованы вкладки и вот такого плана меню, как на скрине? Если можно подробней, материал по теме я сам найду. Вообще в чем имеет смысл из современных технологий приложений для десктопа разбираться?
Аноним 06/12/16 Втр 21:58:41  889482
>>889473
Очень похоже на: https://www.arcgis.com/features/index.html
Аноним 06/12/16 Втр 22:06:15  889491
>>889482
Приложение на скрине это
https://www.microsoft.com/ru-ru/store/p/maps-windows/9wzdncrdtbvb
Аноним 06/12/16 Втр 22:29:50  889504
>>889473
>на какой технологии создано родное приложение "Карты"?
UWP или WinRT, зависит от версии Windows.
Аноним 06/12/16 Втр 22:30:19  889506
>>889491
Это UWP
Аноним 06/12/16 Втр 22:30:46  889508
>>889504
Windows 10
Аноним 06/12/16 Втр 22:32:28  889511
>>889473
>В частности как реализованы вкладки и вот такого плана меню, как на скрине?
Не понимаю твою огромную желтую мазню. Могу попробовать ответить если ты разобьешь это на несколько отдельных вопросов с отдельными картинками.
Аноним 06/12/16 Втр 22:35:41  889512
>>889339
Странное сравнение. Это ж разные программные платформы(UWP = mobile в котором возможности обрезаны ради безопасности end user'a, WPF = необрезанный .NET 4.6.*,).
Аноним 06/12/16 Втр 22:42:46  889516
a1.JPG (76Кб, 1484x698)
a2.JPG (170Кб, 1494x747)
a3.JPG (44Кб, 479x554)
>>889511
Как в окне приложения реализованы вкладки?
В данном случае результат поиска "пик 1" отображается в новой вкладке "пик 2" + открывается информационная панель со списком объектов около этого адреса с возможностью ее свернуть либо перейти к информации о конкретном объекте "пик 3".
Мне интересно на основе какой технологии в приложении я могу реализовать возможность открытия и работы в нескольких вкладках (в идеале конечно еще возможность вкладку выводить в отдельное окно, как в Edge например), а также реализовать подобные скрывающиеся меню.
Аноним 06/12/16 Втр 23:07:16  889524
Screenshot (94).jpg (531Кб, 1920x1080)
>>889516
1 это не вкладки, а просто список(с горизонтальной ориентацией разве что, больше в нем ничего необычного не вижу).
2 это контейнер(какой-нибудь Grid или StackPanel) содержимое которого через binding привязано к выбранному элементу списка 1. Насчет того что он заменяет поиск: либо это просто 2 контрола размещены в одном месте и у них переключается видимость, либо сложный кастомный UI контрол с разными состояниями.
Аноним 06/12/16 Втр 23:09:15  889526
>>889524
Забыл еще кое-что, вся верхняя панель это AppBar.
Аноним 06/12/16 Втр 23:11:49  889529
>>889524
Спасибо
Интерфейс реализован на XAML? Тк это UWP приложение, то соответственно Windows Runtime XAML?
Аноним 06/12/16 Втр 23:17:47  889531
>>889529
Да, ты правильно понял.
Аноним 07/12/16 Срд 09:48:46  889689
Шарпач поясни,
есть необходимость подсчитать в коллекции кол-во элементов, удовлетворяющих условию. Как лучше всего сделать, через массив + счётчик или использовать метод Count от LINQ? Как вообще оценить нужность того или иного подхода?
Аноним 07/12/16 Срд 10:35:05  889712
>>889689
Это зависит от того, что тебе нужно. Функциональный стиль делает твой код более коротким, понятным и не оставляет шансов обосраться.

Сравни:
int goodItemsCount = yourCollection.Count(x => x.SomeField == 42);

С этим:
int goodItemsCount;
for(int i = 0; i < yourCollection.Length; i++)
if(yourCollection.SomeField == 42)
goodItemsCount++;

Однако, за всё хорошее нужно платить. В конечном счёте, это влияет на производительность. Использование LINQ будет менее производительным, в сравнении с простым массивов и циклом со счётчиком.

Но, стоит сказать, что в современном мире все дружно кладут хуй на производительность в пользу читаемости. Так что best practices считается - "Всё пишем на LINQ. Если приложение тормозит, то замеряем профайлером. Если проблема в коде с LINQ, то перепишем его."
Аноним 07/12/16 Срд 10:36:34  889715
>>889689
оценить через О(н) и другие асимптотические показатели, как и всю алгоритмическую сложность/эффективность кода

.Каунт(предикат) будет работать через получение энумератора и инкремент счетчика при удовлетворении условия, так что конкретно в данном месте ты ничего кроме времени не потеряешь
Аноним 07/12/16 Срд 10:37:27  889716
>>889712
>if(yourCollection.SomeField == 42)
Собственно, наглядная демонстрация того, как быстро можно обосраться с таким подходом. Я имел ввиду конечно же:
if(yourCollection.SomeField == 42)
Аноним 07/12/16 Срд 10:37:38  889717
>>889712
> Использование LINQ будет менее производительным, в сравнении с простым массивов и циклом со счётчиком.
это схуяли?
Аноним 07/12/16 Срд 10:38:40  889718
>>889716
>if(yourCollection.SomeField == 42)
Какого хуя? Двач квадраные скобки обрезает?
Аноним 07/12/16 Срд 10:40:36  889719
>>889689
>>889712
Кароч, сам потестил с помощью Stopwatch и пришёл к интересному выводу: чем массив больше, тем меньше разница ручного обхода с LINQ. Но обход ручками аж в 30 раз эффективнее на малых (кол-во элементов <1К) и всего в 2 раза на больших (>=100000).
Аноним 07/12/16 Срд 10:44:40  889720
>>889719
стопвотч в таких анализах не самое эффективное средство. вангую ты еще без прогрева дженнриков тратил,запуская линкью следом после итерации массива?
Аноним 07/12/16 Срд 10:47:56  889721
2016-12-0714-46[...].png (12Кб, 444x315)
>>889720
Сложна
FillArray заливает массив рандомными значениями.
Аноним 07/12/16 Срд 10:52:01  889725
>>889718
> Двач квадраные скобки обрезает?
Парсер тегов кривой, епты. Все это знают.
Аноним 07/12/16 Срд 10:55:37  889729
>>889721
хуйня этот твой тест, в массиве, состоящем из одного/двух элементов небось получишь разницу на джва порядка

в офисе буду - отвечу, если будет интересно
Аноним 07/12/16 Срд 11:42:43  889740
>>889729
во-первых, в первом случае ты захватываешь упаковку значения результата в Console.WriteLine, в подсчет времени выполнения

во-вторых, ты сравниваешь методы для int[] (который является фундаментальным типом) и IEnumerable<T> (который является а) хуй пойми чем для рантайма, б) является универсальным типом). и тут надо знать, как дженерики вообще работают: jit компилирует на ходу (если еще не сделал это) отдельный тип для всех ссылочных типов и по каждому на все значимые. следовательно, ты, вкупе со всем, загоняешь в подсчет времени выполнения еще интервал компиляции класса

отсюда напрашивается объяснение этому вот:
> чем массив больше, тем меньше разница ручного обхода с LINQ
если, условно говоря, компиляция типа и упаковка инта в кучу занимает 10 условных единиц времени, а обход массива из n элементов - n * 0.1, то, грубо говоря, на двухсотом элементе массива время выполнения обоих случаев выйдет в паритет

ну, и в-третьих - реализация IEnumerable<T>.Count(Func) выглядит так:

if (source == null) throw Error.ArgumentNull("source");
if (predicate == null) throw Error.ArgumentNull("predicate");
int count = 0;
foreach (TSource element in source) {
checked {
if (predicate(element)) count++;
}
}
return count;

тут мне сложно пока что давать этому оценку, бенчмарки for/foreach довольно сильно разнятся и говорить, что linq хуёв только из-за foreach, я бы не стал (а может быть и стал)
Аноним 07/12/16 Срд 11:47:23  889741
>>889740
Но хабрабляди пишут что foreach пиздец как оптимизирован и потому используется везде, где только можно.

Аноним 07/12/16 Срд 11:50:52  889744
>>889741
он поэтому и оптимизирован потомушто используется везде, где только можно
в основном бытует мнение, что foreach сиравно медленнее, чем for. но, даже если это и так, насколько медленнее? одна статья 13го года говорит, что в 0.000000000000000000000001 раз, другая, 14го, дает разницу в несколько раз. кому верить - непонятно никому, естественно
Аноним 07/12/16 Срд 21:38:08  890123
>>889740
какая нахуй сегодня разница в скорости foreach или for. Похуй на декларативность, foreach - тут тебе и рефлекция инклудет, и вся разная кошерность. Учитывая что в 99% на шарпе пишутся web решения, а значит и деплоятся на win сервах(кол-во решений на core умножаю на 0), вопрос о быстродействии отпадает сам по себе
Аноним 07/12/16 Срд 22:59:17  890165
Бля, аноны, я знаю, что у вас сейчас подгорит, но очень нужна ваша помощь.
Дело в том, что я просто пиздец как хочу выучить этот язык, я, блядь, просто обажаю шарп!
Но увы, синтаксисы я не знаю, общий подход также не знаком мне.
Поэтому няши, я вас прошу не кидать в меня говно и подкинуть идеи, как нормально выучить шарп с нуля. Я готов днем и ночью вникать и делать, только вот решить не могу, везде советуют разное.
Отдельная просьба, написать именно то, с чего вы начинали сами, ну или хотя бы лучшую книженцию для новичков по шарпу, можно и видео уроки, сайты и т.д.
Буду вам очень благодарен!
Аноним 07/12/16 Срд 23:05:58  890169
>>890165
>везде советуют разное
Я бы тебе посоветовал, но это для тебя будет лишь +1 способ выучить c#.
Аноним 07/12/16 Срд 23:08:26  890170
>>890165
Книженцию-хуюженцию. Пиздуй в скайп sergey.krivonos2
поясню азы тебе
Аноним 08/12/16 Чтв 00:00:58  890206
>>890165
>я обожаю шарп
>синтакис не знаю, общих подходов не знаю
>хочу нормально выучить.
Ты охуел тут на ноль делить?
А вообще ты странный, в шапке указан большой список литературы, рассортированной к тому же. Посмотри для начала шапку, а потом уже сам поймешь.
Аноним 08/12/16 Чтв 00:07:39  890210
>>890123
печально, но приходится работать с такими же гениями, как и ты. вас где-то в инкубаторе делают? откуда ж такой тотальный похуизм к тому, чем занимаешься
Аноним 08/12/16 Чтв 01:55:00  890259
>>889744
>в основном бытует мнение, что foreach сиравно медленнее, чем for. но, даже если это и так, насколько медленнее? одна статья 13го года говорит, что в 0.000000000000000000000001 раз, другая, 14го, дает разницу в несколько раз.
Это легко померить. В C# 2.0 разница точно была, по памяти примерно на 30% при проходе по массиву intов. Сейчас тот же код (у меня сохранился с тех лет) на C# 4.6 никакой разницы не показывает вообще.
Кстати раньше и тернарный оператор был на 20% медленнее чем if else.
Аноним 08/12/16 Чтв 05:32:57  890292
>>890165
П - практикуй, начни с лабораторок для студентиков.
И - импровизируй, решай задачи максимально разными способами, от очевидных до самых ебанутых. Если не знаешь последних - ищи в интернетике по ключевым словам задачи.
Толку от чтения книг без понимания зачем оно там всё так мутно расписано - нет. Решение задач создаст необходимость и возможно мотивацию при очевидном ощущении прогрессаю
Аноним 08/12/16 Чтв 11:22:00  890349
>>890259
Код в студию!
Аноним 08/12/16 Чтв 11:29:37  890353
>>890349
почитал ваш тред и утверждаю:
Ребят, вы какой-то хуйнёй занимаетесь.
Аноним 08/12/16 Чтв 11:38:37  890357
>>890353
Покажи нюфаням что не хуйня? В хаскеле на функционал теребить?
Аноним 08/12/16 Чтв 12:09:18  890372
>>890357
Да.
Аноним 08/12/16 Чтв 12:13:58  890374
>>890357
Не хуйня? Многопоточность например. Лучше бы ее дрочили а не foreach vs for.
Аноним 08/12/16 Чтв 12:29:26  890384
>>890374
просто ты вчера прочитал про потоки и решил, что вот это не хуйня, а все остальное хуйня?
тащемта все из мелочей складывается: идеально спроектировал синхронизацию потоков/данных, но проебал в работе с коллекцией/памятью - считай, зря время потратил
Аноним 08/12/16 Чтв 12:33:31  890386
>>890292
Понял, спасибо.

А есть охуенные документы по-типу autoit-овской?
Там на русском все так охуенно написано, подача легкая, примеры также легкие, очень легко освоить новичку.
Подобные доки для шарпа есть?

Вот пример autoit-овской документации: https://autoit-script.ru/autoit3_docs/functions/ControlListView.htm
Аноним 08/12/16 Чтв 12:37:11  890389
>>890386
msdn, другого не завезли
Аноним 08/12/16 Чтв 12:37:57  890390
>>890389
а как же давно мертвый rsdn?
Аноним 08/12/16 Чтв 12:39:27  890391
>>890390
OBSOLETE
Аноним 08/12/16 Чтв 12:40:25  890392
>>890389
Благодарен няша.

А ты как выучил сей замечательный язык?
Аноним 08/12/16 Чтв 12:47:52  890398
>>890392
Я не выучил, я его учу. Знал до него на среднем уровне Си - базовые навыки алгоритмов, дискретной математики, строения ПК и ОС имеются. В данный момент активно нарабатываю практику работы с LINQ + коллекции (оче удобно). Дальше планирую GUI(WPF) + сети (сокеты/хуекеты). Пидорю тестовые задания для джуниуров. 90% вопросов решаются правильным запросом в гугл и последующим переходом на англоязычный Stackoverflow.
По книгам могу посоветовать следующий порядок: Троелсон -> Альбахари -> Рихтер.
Учти, я говорю только про язык - навыку программирования можно научиться только пидоря код, читать паттерны/алгоритмику, искать схожие решение и снова и снова и снова пидорить код.
Аноним 08/12/16 Чтв 13:32:52  890424
>>890384
ты немного не понял.
Обосрался с потоками - обосрался с логикой.
Выбрал вместо foreach for - нихуя не помеянлось кроме байтоёбства

Многопоточность ведь не всегда про скорость выполнения.
Аноним 08/12/16 Чтв 13:34:01  890426
>>890384
В случаях оптимизации вопросов нету - ты прав. это я просто решил дополнить.
Я просто к тому что есть более важные вещи чем сравнение for и foreach
Аноним 08/12/16 Чтв 13:59:15  890439
>>890424
>>890426
ну можно поманяфантазировать и представить, что мы пишем кастомную коллекцию и соответствующий кастомный итератор, который оказался не структурой, а коллекцию перебирают по сто раз в наносекунду
не зная, чем является foreach, IEnumerable<> и вся эта хуйня, можно так же нехило обосраться с утечкой памяти, потере времени на сборку мусора (в итоге загоняя временные объекты во второе поколение) не хуже этих ваших потоков


> есть более важные вещи чем сравнение for и foreach
ну тут как посмотреть. вообще, субъективно для меня интереснее зарыться в, казалось бы такое примитивное и очевидное говно, как стукруры vs классы, реализация интерфейсов, перебор коллекций. нупотомушто какие вопросы с многопоточностью являются вот такими, грубо говоря, совершенно неожиданными вещами? ты либо знаешь, либо не знаешь. оно либо работает, либо не сработает потому, что ты еблан. либо new Thread().Start() ибо итак норм, либо более адекватные методы
Аноним 08/12/16 Чтв 14:17:15  890447
Господа, поясните вот что.

Загорелся желанием изучить Шарп, скачал видяхи ITVDN и начал смотреть лысого.
Так вот, первые уроки зашли на ура, но вот дальше началось байтоевство, которому мне на данный момент нахуй не нужно.
Поясните за байты, стоит ли все же вынудить себя выучить эту еблю, или можно смело менять обучение на другие уроки и книжки, где нет байтоебства?
Аноним 08/12/16 Чтв 14:34:02  890454
2016 12 08 code.png (20Кб, 1144x583)
>>890349
Пикрилейтед.

>>890353
Тебя забыли спросить.
Аноним 08/12/16 Чтв 14:42:11  890458
17921357.jpg (94Кб, 604x512)
>>890454
>button99_Click
>button101_Click
Аноним 08/12/16 Чтв 14:45:46  890460
>>890458
Почему-то у всех пригорает с этого.
Аноним 08/12/16 Чтв 15:41:13  890495
>>890454
а в чем прикол вложенного массива?
Аноним 08/12/16 Чтв 15:54:03  890515
>>890495
хотя, массив в тыщщу миллиардов элементов это вам не это. проще было бы уже один массив на 100 элементов прогнать четыре-пять раз дабы не допустить его попадание в LOH
Аноним 08/12/16 Чтв 19:00:48  890622
>>890454
> button99_Click
> richtextbox
> однотипные функции, наполовину состоящие из повторяющегося кода
Фу, блядь. И этот человек ещё рассуждает о внутреннем устройстве языке. Самому то не стыдно такое выкладывать?
Аноним 08/12/16 Чтв 19:10:55  890634
>>890495
Чтобы меньше памяти жрать и дольше выполнялось, для более высокой точности оценки, т.к. tickcount имеет минимальный шаг 16 мс.

>>890622
>Самому то не стыдно такое выкладывать?
Нет. Это отдельный проект который только и состоит из таких мелких функций, всё назначение которых это сделать один тест и получить результат и больше не его никогда использовать. Нет никакого смысла делать что-либо легкочитаемым, поддерживаемым и тому подобное, т.к. никакая поддержка и чтение вообще не подразумевается. Вы ребята слишком увлеклись быдлокодингом, и наверняка каждый тестовый код делаете с паттернами, осмысленными именами и прочей поебенью, и ставлю анус что в серьезном проекте несмотря на всё это обосретесь и сделаете его трудноподдерживаемым в итоге.
Аноним 08/12/16 Чтв 19:11:46  890635
>>890634
> больше его никогда не использовать
фикс
Аноним 08/12/16 Чтв 19:33:52  890649
Кстати там достаточно интересные тесты есть. Например int? работает в разы (если не десятки) раз медленнее чем int. Увеличение переменной в структуре из самой структуры работает быстрее чем увеличение из внешнего по отношению к структуре кода.
Аноним 08/12/16 Чтв 21:19:11  890724
>>890454
Скинь весь проект. Интересно посмотреть тесты.
Аноним 08/12/16 Чтв 21:42:43  890742
>>890724
Ты там ничего не разберешь. Даже я много чего не понимаю. Многие тесты сделаны для конкретных алгоритмов которые я писал когда-то, я уже даже забыл каких.
Аноним 08/12/16 Чтв 21:44:12  890743
кто пишет на .net core: какие кто. наличии адекватные средства для профилирования памяти? нашоль в гитхабах CoreProfiler, по-моему, но вот слабо разобрался, как его впердоливать в приложение. также мсдны говорят про интерфейс ICorProfiler, и, судя по всему, он также действует по принципу "интегрируй меня в приложение и пингуй время от времени". есть что-то чуть более френдли, а-ля дотмемори - запустил в стороне и смотри на графики?
Аноним 08/12/16 Чтв 21:44:48  890744
>>890742
Ну так ясен хуй он не разберет, они же рряя одноразовые вы проста быдло и нипанимаете что button1337_Click это удобно а я большие проекты пишу!
Аноним 08/12/16 Чтв 21:48:52  890749
>>890744
Да, так и есть.
Аноним 08/12/16 Чтв 21:51:18  890751
>>890749
> Да, ситуация говорит, что я обосрался. Что ж, сделаем вид, что все по плану и обосрались все вокруг.
Аноним 08/12/16 Чтв 22:04:55  890760
>>890751
У тебя багет что ли?
Аноним 08/12/16 Чтв 22:17:38  890772
>>890634
Паттерны же только уродуют код и делают его менее читаемым для стороннего разработчика. Вообще эта хуйня, зачастую идущая против принципов ООП, не понятно нахуй и откуда взялась.
Аноним 09/12/16 Птн 04:55:17  890946
>>890634
>минимальный шаг 16 мс
Не всегда, и у тебя сейчас скорее всего 1мс, а вообще можно вручную задать
Аноним 09/12/16 Птн 08:45:11  890985
14594851168510.png (13Кб, 302x437)
Поможите с wpf.

Создал textBox_logWindow который хочу использовать в качестве лога.
Создал файл класса LogWindow. В самом классе хочу определить методы для запист в лог, сохранения лога и т.д.
Думал что, поскольку общий namespace, для добавления нового текста в лог будет достаточно всего лишь
public static void WriteLog(string data)
{
textBox_logWindow.Text += data;
}
Но хер там был.
Пробовал класс LogWindow делать наследником MainWindow. Но один фиг - имею доступ к текстбоксу в MainWindow но не имею в своем классе.

Прошу учесть при критике и даче рекомендаций, что это вообще моя первая программа на C#.

Класс хотел сделать для того что бы в коде была возможность в одну строку LogWindow.WriteLog(data) выводить информацию о работе программы.

Пикрил мой бот для ла2 написанный на autoit, сейчас пилю другую программу, но хотел такой же лог замутить для наглядности работы.
Аноним 09/12/16 Птн 08:58:37  890991
>>890985
> 2016
> desktop
Но зачем?
Аноним 09/12/16 Птн 09:04:00  890992
>>890991
Чому нет? Не поднимать же микросервисы на каждый чих.
Аноним 09/12/16 Птн 09:07:46  890993
>>890991
А на чем еще писать десктоп? Или предлагаешь пилить всё в вебе?
Аноним 09/12/16 Птн 09:10:40  890994
>>890985
> Класс хотел сделать для того что бы в коде была возможность в одну строку LogWindow.WriteLog(data) выводить информацию о работе программы.

Сделай окно синглтоном и сделай в нём паблик метод WriteLog.
И будет что-то вроде LogWindow.Instance.WriteLog(data).
Аноним 09/12/16 Птн 11:17:24  891028
>>890985
ЛистБокс же
Аноним 09/12/16 Птн 11:55:09  891036
>>888661
Нет, это унылая хуйня для даунов.
Аноним 09/12/16 Птн 12:01:44  891039
>>888661
Там комментатор мягко говоря НЕОЧЕНЬ и слушать его просто невозможно, хотя получше индусов на ютубе с их виденьем на английский язык.
Аноним 09/12/16 Птн 18:30:38  891212
>>890985
Я в таких случаях делал так.
Класс лога статический и инициализируется в конструкторе главной формы с передачей ему объекта textBox_logWindow. Далее класс лога использует этот объект для вывода
бамп, пидоры Аноним 09/12/16 Птн 19:13:55  891226
>>890743
Аноним 09/12/16 Птн 19:48:03  891248
[HorribleSubs] [...].jpg (62Кб, 1280x720)
>>889689
Насчет производительности не скажу, но LINQ запрос читать удобнее чем пердолинг с for/foreach.
Аноним 09/12/16 Птн 23:01:29  891406
>>891212
Можно пример кода того что ты имеешь ввиду? Если не затруднит.
Вроде понял что ты имеешь ввиду, но по коду бы нагляднее было бы.
Аноним 09/12/16 Птн 23:20:27  891410
2016 12 09 Log [...].png (52Кб, 1150x1043)
>>891406
Только у меня тут webforms, но я думаю это вряд ли что-то меняет.
Аноним 09/12/16 Птн 23:47:39  891415
>>891410
Благодарю, попробую у себя прикрутить такой подход.
Аноним 10/12/16 Суб 11:31:32  891561
>>889291
Насколько это правда? На форуме разработчиков последний пост об обновлениях был вроде в 2012.
Ну и типа да, как сказал другой анон, WPF переродился в UWP
Аноним 10/12/16 Суб 13:48:49  891626
Untitled.png (3Кб, 457x196)
>>891410
Спасибо анон, я если честно и не думал что кто то подскажет чего внятного, какие то листобоксы, предложение вместо десктопа веб приложение и т.д.
>/pr
С одной стороны мне нравиться сисярп, ибо куча фич и наворотов, но блин - реализация лога на autoit у меня заняла минут 10, на то что бы разобраться как запилить точно такую же вешь сутки ушли(а до этого еще и основы и wpf не один день ковырял). Сложно блин. Особенно то что по сути одну и ту же задачу можно решить десятком способов и не понятно какой способ правилен, а какой говнокод и в будущем вылезет боком.
Аноним 10/12/16 Суб 14:34:28  891660
>>891626
передача визуального объекта в класс, отвечающий за диагностику, - говнокод
Аноним 10/12/16 Суб 14:37:18  891661
>>891660
Скажи как сделать лучше.
Аноним 10/12/16 Суб 17:12:42  891802
Теперь вы добавлены в Перекотер, так что вам нет нужды перекатывать треды вручную >>891794
Аноним 10/12/16 Суб 17:19:09  891811
>>891660
Я насколько понял не говнокодом будет использование data binding. Но блин - в текущий момент для меня это слишком сложно, пытался не раз, но каждый раз после того как весь день читаю гугл и не напишу не одной строчки кода понимаю что мне просто рано еще, надо дальше дрочить теорию и писать хоть что-то как умею. Ибо просто дрочить теорию и вообще ничего не писать только потому что не в состоянии написать как надо - такое себе.
Аноним 10/12/16 Суб 19:11:27  891866
>>891661
выделить у компонента интерфейс, добавляющий запись, и использовать этот тип в Log
Аноним 10/12/16 Суб 19:12:15  891869
>>891866
Это бы ничего принципиально не изменило.
Аноним 10/12/16 Суб 19:13:06  891870
>>891866
Алсо, это всегда легко сделать без изменения архитектуры.
Аноним 10/12/16 Суб 19:14:44  891871
Есть тут webapi дядьки? Просвятите меня как работать с калейдоскопом технологий и иструментов, что и как актуально в продакшене. А то я спал последние N лет. Интересуют Best Practices для bower/gulp/npm/owin/docker/angular/blablabla.

В первую очередь блядь мне надо поставить менеджер пакетов npm, которому нужен nodejs, на котором я никогда не буду писать. Нахрена эта зависимость? Ну ладно. Ставим bower с помощью npm (Один менеджер пакетов другим менеджером пакетов). Далее используем gulp, чтобы вытащить все актуальные файлы из bower_components в заинджектить html файл. При этом main файлы некоторых нужно перегрузить в bower.config. Пиздец. Всё теперь общается через owen, mvc не нужен вообще, да и докер. Пиздец короче.

Можете покидать ваши стеки/ворклоу с работы? Реально используете gulp&bower&npm? Для чего? А Докер? Как это всё работает с continuous integration?
Аноним 10/12/16 Суб 20:04:29  891915
>>891866
А можно пример в виде кода о чем речь?
Аноним 10/12/16 Суб 20:14:45  891938
>>891866
Алсо, на msdn вообще было написано что в wpf единственный комильфо вариант юзать data binding. Получение данных для интерфейса нужно сделать средствами xaml. Все остальное быдлокод если верить msdn.
>If you are getting started with WPF, you might wonder whether it is easier to avoid learning data binding, and instead just write code to do most of the data manipulation in your projects. While this may be a valid way to do it, I would suspect that you will grow to use, and perhaps even love, XAML-based data binding.
https://msdn.microsoft.com/en-us/library/aa480224.aspx
Но я слишком туп, сколько не пробовал - либо не компилится, либо не работает.
Аноним 10/12/16 Суб 21:38:56  892025
>>891802
Найс.
Аноним 11/12/16 Вск 01:05:26  892143
>>891938
прям весь мир клином на WPF сошелся?
в любом случае, если это будет биндинг, ты выделишь интерфейс не в Window, а ViewModel и будешь уже изменять её стейт
Аноним 11/12/16 Вск 08:54:04  892225
Всем привет!
Прошу подсказать как решить проблему или найти обходное решение. Возможно ли приведение из шаблонного делегата в типизированный?

Пример кода:

delegate void DoSmth<T>(object sender, T value);

class SmthClass<T> {
DoSmth<T> doSmth = ...;

void DO () {
OtherClass.Process(ref doSmth); // ТУТ ОШИБКА
}
}

static class OtherClass
{
static void ProcessIntegerDelegate (ref DoSmth<int> doSmth) {...}
}



Аноним 11/12/16 Вск 09:39:58  892237
Поправил пример:

delegate void DoSmth<T>(object sender, T value);

class SmthClass<T> {
DoSmth<T> doSmth = ...;

void DO () {
var type = typeof(T);
if (type == typeof(int))
OtherClass.ProcessIntegerDelegate(ref doSmth); // ошибка приведения из DoSmth<T> в DoSmth<int>
}
}

static class OtherClass
{
static public void ProcessIntegerDelegate (ref DoSmth<int> doSmth) {...}
}
Аноним 11/12/16 Вск 10:12:55  892256
>>892237
var intDo = doSmth as DoSmth<int>
Аноним 11/12/16 Вск 22:38:18  892714
Народ, тоже вопрос про дженерики. Можно ли как-то считывает из строки значение в зависимости от типа?
class GenericMatrix<Number>
{
Number[][] matrix;
GenericMatrixNumber(int cols, int rows)
{
for (int i = 0; i < cols; i++)
for (int j = 0; j < rows; j++)
matrix[j] = СчетатьХуйню();

}
}

Естесно Comsole.ReadLine не подходит. А как тогда?
Аноним 11/12/16 Вск 22:39:10  892716
>>892714
GenericMatrixNumber
Без Number
Аноним 11/12/16 Вск 23:02:25  892736
>>892714
Такой вариант подойдёт?
https://dotnetfiddle.net/2oEHQs
Аноним 11/12/16 Вск 23:04:37  892739
>>892736
Так и знал шо нада про делегаты сначала прочитать. Спасибо.
Аноним 12/12/16 Пнд 07:49:53  892865
Сап шарпач.
Как мне зашифровать информацию, с помощью пароля? То есть пользователь вводит любой пароль и он каким-то образом преобразовывается в ключ шифрования. Нагуглил PasswordDeriveBytes, но ему нужна соль и вектор инициализации, откуда мне их брать? Если рандомить, то в следующий раз пользователь не сможет расшифровать информацию этим же паролем. Как быть?
Аноним 12/12/16 Пнд 08:48:57  892873
>>892865
DPAPI, проще некуда.
Аноним 12/12/16 Пнд 09:39:08  892884
Шарпач, подскажи бесплатный/дешевый хостинг для базы данных, желательно MSSQL, но мускул тоже подойдёт. Azure выглядит шибко дорогим.
Аноним 12/12/16 Пнд 09:51:30  892888
>>892865
1. переводишь строку с паролем в массив байт:
var pbytes = Encoding.UTF8.GetBytes(password + "ОХУЕННАЯ_СОЛЬ");
2. хешируешь этот массив байт, превращая его в ключ шифрования:
var aesKey = SHA256Managed.Create().ComputeHash(pbytes);
3. шифруешь AESом с размером ключа = длине хеша и нулевым вектором инициализации:
var AES = new RijndaelManaged();
AES.Mode = CipherMode.CBC;
AES.KeySize = 256;
AES.BlockSize = 128;
AES.Padding = PaddingMode.PKCS7;
using (ICryptoTransform encryptor = AES.CreateEncryptor(aesKey, new byte[16]))
{
return encryptor.TransformFinalBlock(data, 0, data.Length);
}
Аноним 12/12/16 Пнд 10:20:54  892900
>>892865
хранить соль рядом с пользователем. после того, как юзерь что-то навводил сравнивать шифрованый пароль с результатом ПосчитатьХэш(инпуиЮзера, созраненныйСалт)
Аноним 12/12/16 Пнд 12:13:34  892935
>>892884
digital ocean или scaleway - берешь vps, поднимаешь в докере мускл
Аноним 12/12/16 Пнд 12:46:31  892951
Господа, подскажите как лучше всего передать набор объектов, заранее неизвестных но чётко структурируемых в другое приложение по сети?
Текущая мысль сформировалась, что подходит что-то типа JSON сервера, который отдает данные по запросу клиента. Есть ли решения лучше или это достаточно адекватно?
Аноним 12/12/16 Пнд 12:52:34  892954
>>892951
Сразу поправлюсь, планируемые клиенты (их возможно много) могут быть написаны на каком-угодно другом языке. Тут подумалось, а почему бы не отдавать XML?
Аноним 12/12/16 Пнд 12:52:35  892955
>>892935
> в докере
Иди нахуй со своими докерами

>>892884
Просто берешь самый дешевый дроплет на digitalocean, в один клик ставишь туда образ убунты для поднятия вебсервера. Всё это займет 2 минуты, и у тебя уже будет сразу готовый сервак со всеми нужными развернутыми сервисами, и выделенным IP. Дальше настраиваешь мускуль как тебе угодно и работаешь.
Аноним 12/12/16 Пнд 12:56:05  892957
>>892955
DO чот дораха, нашел у нас за 65р в месяц - выбор нищука.
Аноним 12/12/16 Пнд 12:56:29  892958
>>892951
>>892954
Если для твоих данных не предполагается редактирование человеком, то нахуй все эти форматы. Отдавай напрямую бинарные данные и всё. Сделай микропротокол с одним байтом на команду и всё. С сокетами и массивами байт работать можно в любом языке.
Аноним 12/12/16 Пнд 13:02:40  892964
>>892957
Зависит от твоих требований к стабильности серверов. Юзаю DO с начала 2014 года, десяток дроплетов у меня там есть. Ни разу никакой внештатной ситуации не было. Аптайм одного из дроплетов 100% с февраля 2014 года (другие я просто сам по разным причинам перезагружал или временно отключал). Пять баксов в таком случае за самый дешёвый дроплет не жалко.
Аноним 12/12/16 Пнд 14:20:22  893006
xaml[1].jpg (5Кб, 193x241)
Посоны, есть ли нормальная тулза для рисования 3D моделей для XAML чтобы в WPF приложении использовать, я ебал вручную указывать точки, нормали и т.д. чтобы нарисовать что-то простое, требуется часа 2. Есть ли инструмент для создание 3Д моделей чтобы выдавал код в XAML?
Аноним 12/12/16 Пнд 16:17:05  893067
Посоветуйте плз что почитать по потокам (и вообще системному программированию в с#) и вин формс.
мсдн не осилил.
Аноним 12/12/16 Пнд 16:26:47  893074
>>893006
expression blend?

>>893067
старые статьи на rsdn по сему поводу взлетают, если для начала
Аноним 12/12/16 Пнд 16:29:25  893075
>>893074
Спасибо.
Аноним 12/12/16 Пнд 19:14:09  893186
>>892951
Avro
Protobuf
Аноним 12/12/16 Пнд 19:25:47  893191
>>891226
бамп на бамп
Аноним 13/12/16 Втр 01:53:51  893377
Шарпач, ты-то мне и нужен. Как понять, что ты уже мидл? Если я могу написать дерево, сортировку, умею в синхронизацию потоков, веб-приложения, сериализацию - это уже мидл или нет?
Аноним 13/12/16 Втр 02:25:08  893390
>>893377
>Если я могу написать дерево, сортировку, умею в синхронизацию потоков, веб-приложения, сериализацию - это уже мидл или нет?
Это уже может быть стажер и ты можешь пытаться пройти собеседование на вакансию.
Аноним 13/12/16 Втр 04:12:23  893404
>>893377
Сеньор минимум.
Аноним 13/12/16 Втр 09:09:54  893470
>>893404
ты тролишь или серьезно. Что нужно знать чтобы повысили на мидла?
Аноним 13/12/16 Втр 09:23:54  893475
>>893470
Ну мидл это самое противоречивое, не рыба ни мясо. В общем случае это опыт фултайма от двух лет, все разнится от вакансии к вакансии, но если ты на той же работе проработал джуном 2 года - просись на мидла точно.
Аноним 13/12/16 Втр 09:32:06  893478
>>893377
Мне теперь интересно стало, что входит в знание сериализации?
>веб-приложения
JavaScript much?
Аноним 13/12/16 Втр 09:49:25  893485
universal[1].jpg (14Кб, 300x315)
Посоны, как организовать обмен данными между приложениями в реальном времени на C#.

Есть в общем такая ситуация. У меня есть приложение, которое коннектится с сервером, берет оттуда данные кладет это все в словарь(Dictonary) и обновляет значения в этом словаре каждые 200мс ну и соответственно активно использует этот словарь в работе. Возникла необходимость (у заказчика) сделать приблуды в 3Д красивые, быстро работающие, с возможностью покрутиться, "полетать". Решил для этих целей использовать Unity 3D, там тот же C#.

Сначала думал там использовать ту же библиотеку что используется в основном проекте, прочитал как подключать dll к юнити, все подключатся все нормально, а вот именно Interop библиотека для работы с сервером очень старая и не для C# а в общем для .NET 1.0 и при подключении к Unity выдает Marshall ексепшены и т.д.

В общем есть ли вариант в реальном времени получать этот словарь(Dictionary) из другого приложения(unity).

Думал насчет обмена с помощью базы данных, но будет ли это в реальном времени? С другой стороны в первом приложении данные обновляются долго(200мс) должно все успеваться.
Аноним 13/12/16 Втр 10:38:10  893504
>>893377
>написать дерево
class MyClass
{
List<MyClass> Childs;
}

>сортировка
myArray.OrderBy(x => x.Name);

>сериализация
JsonConvert.SerializeObject(myDto);

Я принят?? Когда подавать документы?
Аноним 13/12/16 Втр 10:53:35  893513
>>893504
Мы вам перезвоним!
Аноним 13/12/16 Втр 11:02:13  893519
>>893485
SignalR
Аноним 13/12/16 Втр 14:34:07  893595
>>893485
>В общем есть ли вариант в реальном времени получать этот словарь(Dictionary) из другого приложения(unity).
Самый быстрый способ - MemoryMappedFile
Аноним 13/12/16 Втр 14:45:59  893599
>>893485
а брокер сообщений как же?
Аноним 13/12/16 Втр 22:39:47  893854
Как лучше реализовывать (де)сериализатор своего формата данных (желательно в декларативном стиле, что бы нужные поля классов можно было помечть и т.п.)? Есть примеры?
Аноним 13/12/16 Втр 22:59:11  893866
>>893854
Поля помечаются атрибутами. Для каждого поля и типа можно указать атрибут и прочитать его функцией MemberInfo.GetCustomAttributes.
Берешь объект, читаешь его поля/свойства функцией
MemberInfo[] members = type.GetMembers(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
где, type - тип объекта получаемый функцией GetType объекта. Параметры можно использовать другие.

Дальше хуячишь всё это в кэш чтобы не читать многократно. Можешь не хуячить, тогда всё будет работать медленнее.
Значения полей при сериализации читаешь функцией FieldInfo.GetValue или PropertyInfo.GetValue. Пишутся поля функцией SetValue.
Аноним 14/12/16 Срд 09:13:31  894037
>>893854
Можешь исходники rest sharp глянуть на гитхабе, там есть минималистичный xml сериализатор десериализатор
Аноним 14/12/16 Срд 11:08:14  894073
>>893866

Можно без рефлексии (какие нибудь деревья выражений или типа того) определить последовательность ссылок на свойства или поля?

Аноним 14/12/16 Срд 11:11:21  894077
>>894073

Уточню почему так. Сам сериализуемый класс находится в другой сборке и недоступен для правок. Я хочу написать шаблон который на вход берет сериализуемый класс и добавляет определение порядака и состав сериализуемых членов. Хотелось бы сделать это делкаративно, но очевидно атрибуты тут не проканают.
Аноним 14/12/16 Срд 12:35:59  894132
Screenshot167.png (44Кб, 1112x294)
Прога читает цсв и конвертирует значения в даблы. Я ему даю -12.0 на вход для конвертации, а оно пишет, что неверный формат. Что я делаю не так?
Аноним 14/12/16 Срд 12:59:24  894142
Без имени 1.png (10Кб, 330x338)
Суп антоны, подскажите с архитектурой приложения:
имеется пул объектов(изменяемый) одного типа по которому нужно пройтись и обработать. Над всем этим прикручен гуи (тип я думаю пока не важен). Проблема в обработке что она может занять до 5 секунд.
Первый вариант который пришёл в лоб - это обрабатывать объекты в другом потоке вызывая асинхронную обработку. Не сосну ли я в таком случае? Порекомендуйте материал по множественным колбэкам в одном потоке, мой рунглишь не позволяет корректно сформировать поисковый запрос.
Накидал картинку для примерного понимания.
Аноним 14/12/16 Срд 14:27:32  894182
>>894132
скорее всего для CurrentCulture разделителем дробной части является запятая

>>894142
я не понял, какие требования накладываются на этот пул? где ты там собрался соснуть и почему 5 секунд на обработку в твоем случае это много?
множественные колбэки в одном потоке - это задачи с продолжениями (Tasks, Continuations)
Аноним 14/12/16 Срд 17:33:15  894279
При CRTP на C# какие операции применимы к аргументу генерика внутри генерика - только приведение this к нему?
Аноним 14/12/16 Срд 17:35:08  894281
>>894279
все, которые позволяют констрейнты генерика. как и без рекурсивного шаблона
Аноним 14/12/16 Срд 17:55:52  894302
>>894281

А, ну да.
Аноним 14/12/16 Срд 18:01:44  894306
>>894077
Тогда хер его знает.
Аноним 14/12/16 Срд 19:30:25  894357
>>894281
>>894281

Зачем ты пиздишь? Это на крестах так, а на шарпе констрен внутри генерика практически пустой.
Аноним 14/12/16 Срд 20:00:39  894362
>>894357
мая чет нипанимат где я напиздел
Аноним 14/12/16 Срд 20:21:11  894370
>>894362

Если рассматривать констрейн изолированно, то он вообще ничего об аргументе генерика не предполагает. Так что твоя фраза что можно все что позволяет констрейнт вообще ни о чем (с тем же усехом можно сказать пустое множество это множество которое ничего не содержит). А вопрос был явно в связи этого генерика с производным классом его юзающим.
Аноним 15/12/16 Чтв 05:27:06  894526
>>894132
Используй CultureInvariant при парсинге.
Аноним 15/12/16 Чтв 10:47:41  894566
>>894526

Не хочу.
Аноним 15/12/16 Чтв 10:58:28  894569
>>894566
Тогда не используй (:
Аноним 15/12/16 Чтв 11:17:41  894575
Есть поток, мне надо читать с него в разных местах, в произвольном порядке, при помощи разных BinaryReader'ов (например сначала 3 байта первым, потом 5 вторым, потом еще 10 байт первым, но что бы в главный поток уже стоял на курсоре 8 байт, и т.д.). Это будет работать или каждый ридер пашет по своему индексу независимо?
Аноним 15/12/16 Чтв 12:11:53  894596
>>894575
Это можно сделать, но не нужно. Зачем тебе куча разных ридеров? Какова твоя задача?
Аноним 15/12/16 Чтв 12:32:00  894601
>>894596

Да вся та же сериализация, это я писал выше. Хочу сериализовать внутри класса сримами, для рекурсивного вызова (если поле не простое а другой сериализуемый класс) нужно текущий стрим передать ему и что бы он с текущего места взял сколько ему надо, размазал по себе и вернул поток для дальнейшей сериализации.

Что не так в таком подходе?
Аноним 15/12/16 Чтв 12:55:21  894612
Есть кто из Москвы, работодатель нашел меня и предлагает 120k, писать десктоп на C#, Winforms, WPF. Это нормально для москвы или мало для NET - программиста? Сколько из этого за хату отдавать?
Аноним 15/12/16 Чтв 13:03:17  894615
>>894612
> 120k
> C#
> десктоп
> Winforms
> приглашают в ДС из пердей
Ну не ведись анон, такая жирная разводка, на самых лохов ориентирована.
Аноним 15/12/16 Чтв 13:14:28  894622
>>894612
Смотря где жить будешь. От 20к (это всё ебеня из которых добираться до Москвы 1.5-2 часа) до всей зарплаты соответственно. Все цифры и карта есть в интернете. По еде можно укладываться и в тыщу в месяц картофан + крупы, хотя таких целей у тебя вроде и нет.
Аноним 15/12/16 Чтв 13:44:19  894635
>>894612
мидл?
Аноним 15/12/16 Чтв 14:21:11  894657
>>893599
Подробнее
Аноним 15/12/16 Чтв 14:29:20  894663
>>894601
да, собственно говоря, все не так
стоит начать с вопроса: зачем тебе множество потоков для разбора одного объекта? вопрос снимается, конечно, если у тебя исходных данных на гигабайт. если ты думаешь, что распараллеливать такую задачу это очень эффективно, то я тебе отвечу - не в твоем случае
Аноним 15/12/16 Чтв 14:46:10  894671
>>894663

Поток один, это адаптеров над этим потоком несколько. А несколько их из-за рекурсивности сериализации вложенных членов. Т.е. метод Serialize каждого класса заводит свой адаптер типа BinaryWriter из BCL и сериализует члены, когда натыкается на непростой член пытается сериализовать его, а ему в свою очередь тоже придется поднять такой же райтер над потоком который ему дадут.

Я так и не понял что все не так? Если писать без потоков, то придётся ебаццо с индексами в массивах, что некрасиво.
Аноним 15/12/16 Чтв 15:23:38  894694
>>894671
ааа, блжад, потоки - это Stream, а не Thread
я думаю, что индексами было бы проще и легче, учитывая, что тебе не придется в каждом разе прошагивать данные от начала до N. даже попросту сдвигая позицию ридера
Аноним 15/12/16 Чтв 15:39:20  894701
>>894694

У меня была идея-фикс реализовать вообще без индексов, что бы всё было только в терминах потоков и адаптеров.
Аноним 15/12/16 Чтв 16:22:30  894721
>>894701
ну довай, похвастаешься потом
Аноним 15/12/16 Чтв 20:19:35  894896
>>894612
Какой уровень? Сеньор - маловато. Для мидла охуенно.
Аноним 15/12/16 Чтв 23:11:24  895022
>>894077
Посмотри вот этот пример, должно подойти
http://joshclose.github.io/CsvHelper/#mapping
Аноним 16/12/16 Птн 00:21:51  895061
class ResearchTeamCollection<TKey>
{
public ResearchTeamCollection(){ }
Dictionary<TKey, ResearchTeam> dictionary = new Dictionary<TKey, ResearchTeam>();
public void dictionaryAdd()
{
dictionary.Add(TKey, new ResearchTeam()); // как мне тут сделать ключ словаря независимым от типа?
}
}

Допустим, в другом классе я инициализирую так:
ResearchTeamCollection<string> coll = new ResearchTeamCollection<string>();
coll.dictionaryAdd();
Аноним 16/12/16 Птн 00:25:14  895062
>>895061
>coll.dictionaryAdd();
И что должно добавляться в словарь в качестве ключа по-твоему?
Аноним 16/12/16 Птн 00:37:15  895067
>>895062
Допустим, добавляю вот так:
coll.dictionaryAdd("First", new ResearchTeam());
Если бы был тип int, добавлял бы так:
coll.dictionaryAdd(1, new ResearchTeam());
Каким образом тогда мне записать функцию для всех типов?
Аноним 16/12/16 Птн 00:39:08  895069
>>895067
И что, ты будешь решать что именно добавить для данного типа через switch?
Аноним 16/12/16 Птн 00:40:11  895070
>>895067
Ладно уж, вот тебе решение.

public void dictionaryAdd(TKey key)
Аноним 16/12/16 Птн 00:56:24  895076
>>895070
>>895069
Работает, спасибо.
>>895069
Не, просто нужно было объявить для всех, а инициализировать для string. Задание такое.
Аноним 16/12/16 Птн 02:27:49  895104
ss1.PNG (11Кб, 643x252)
Так. Что я делаю не так? Что за метод, вычисляющий ключ для объекта? Или я должен написать его сам?
Аноним 16/12/16 Птн 02:28:10  895105
ss2.PNG (143Кб, 662x567)
>>895104
Отклеилось.
Аноним 16/12/16 Птн 02:55:08  895114
>>887274

metanit.com
Не благодари)
Аноним 16/12/16 Птн 08:39:48  895150
>>895104
сам, что-то вроде хэш-функции. чтобы было так:
Add(ResearchTeam rt)
{ dictionary.Add(KeyDelegate(rt), rt); }
Аноним 16/12/16 Птн 14:33:22  895280
Как из VS выложить существующий проект в репозиторий на github? Помоги, шарпач, я это в первый раз делаю и не понимаю, почему эта сука не работает. В VS подключился к своему аккаунту на гите, но не могу найти опцию захуярить в конкретный репозиторий весь проект. ЧЯДНТ?
Я понял, как создавать репозиторий из VS, как в него коммитить и запихивать изменения, но в упор не вижу функции залить уже существующий проект без изменений на github.
Аноним 16/12/16 Птн 14:42:37  895283
>>895280
ты из Team Explorer делаешь? там есть Sync, огромная кнопень
Аноним 16/12/16 Птн 14:44:48  895285
>>895280
А это, блядь, что такое?
Аноним 16/12/16 Птн 14:47:04  895286
>>895283
>>895285
Да всё уже, можно сказать разобрался.
Просто мне нужно несколько проектов закинуть на гит, получилось закинуть 2 из N, а с 1 я где то накосячил, и проебал кнопку паблиш, теперь хуй знает где её найти. Как отвязать проект от репозитория или как закинуть на новый?
Аноним 16/12/16 Птн 14:49:28  895288
>>895286
Мда, я первый проект захуярил в visual studio team services вместо git, и теперь ору на гитхаб "ЧО ТЫ СУКА МОЙ ПРОЕКТ НЕ ПОКАЗЫВАЕШ?!".
Как сменить VSTS на github в team explorer'е?
Аноним 16/12/16 Птн 14:53:48  895290
>>895288
Самый простой способ - удалить скрытую физическую папку репозитория в корне проекта. Ну или разобраться с окном Team Explorer. Или как нормальный программист, поставить TortoiseGit.
Аноним 16/12/16 Птн 14:57:31  895291
cc243a49-09a5-4[...].jpg (84Кб, 450x338)
>>895290
> нормальный программист
> TortoiseGit
Аноним 16/12/16 Птн 14:59:42  895294
>>895291
Предлагаешь мне с терминалом гита ебаться? У меня память не резиновая еще и матюки гита запоминать.
Аноним 16/12/16 Птн 15:05:34  895296
>>895294
Терминал гита хотя бы глючит не так часто, как тулзы для работы с гитом в vs. Когда работал с гитом через tfs, то частенько ошибки выскакивали, когда запушить невозможно или запулить какого-то хуя, когда в терминале все ок работало. Короче рекомендую перекатываться на командную строку - сначала плюешься, а потом охуеваешь как раньше без этого жил.
мимо-проходил
Аноним 16/12/16 Птн 15:17:09  895303
>тулзы для работы с гитом в vs
TortoiseGit не работает с VS, или я чего-то не знаю.

>рекомендую перекатываться на командную строку
Я и так некоторые извращенные команды выполняю через командную строку, потому что только через нее это можно сделать. Но для обычного сценария, например просмотр графа веток, с головой хватает TortoiseGit.
Аноним 16/12/16 Птн 16:14:54  895334
>>887100 (OP)
уже давно хочу вкатиться в .NET на апворк, парни, подскажите, это реально вообще? Если да, то что посоветуете, как начать?
Аноним 16/12/16 Птн 16:15:17  895335
>>895334
случайная сажа
Аноним 16/12/16 Птн 16:57:46  895375
>>895294
> матюки гита запоминать
git pull
git commit
git push
ебать тут много

> память не резиновая
ну, во-первых существует блокнот. и я ничего плохого не вижу записать что-то вроде <сохранить изменения git commit -m "comment message">
во-вторых, как же ты кодэ свой пишешь, если еще несколько литералов запомнить - это тяжкий труд? если у тебя сплошной if/else, мой вопрос снимается
Аноним 16/12/16 Птн 17:11:26  895392
Безымянный.png (37Кб, 988x691)
>>895375
>ебать тут много
Я часто еще переключаюсь между ветками, соединяю коммиты, откатываюсь до определенной версии, создаю и удаляю ветки, смотрю историю изменений определенного автора...

>существует блокнот
Есть у меня блокнот, там несколько МБ текста "важной" информации, которую надо не забыть, приблизительно в таком же формате.

>у тебя сплошной if/else
Угадал, пикрелейтед недавнего кода. Хотя я хорошо помню листинги нескольких программ на 1-3 миллиона строк кода.
Аноним 16/12/16 Птн 17:27:44  895411
>>895392
Это же F# на пике?
В чем разница между типами Statement и Block? Они же оба алгеброические типы?
мимо не шарю в фшарп
Аноним 16/12/16 Птн 17:30:13  895415
>>895411
>Это же F# на пике?
Да.

>В чем разница между типами Statement и Block?
Block содержит список Statement.

>Они же оба алгеброические типы?
Да.
Аноним 16/12/16 Птн 17:32:52  895416
>>895415
Хотя, если говорить более правильно, то:
Block - это record.
Statement - это discriminated union.
Аноним 16/12/16 Птн 17:38:07  895422
>>895416
>Block - это record.
>Statement - это discriminated union.
Что-то понятнее не стало, надо идти учить F#.

Вообще C# заебал своей топорностью, хочется укатиться на более гибкий-современный язык,
но блин как подумаю что все придется переписывать с функциональной парадигме - то сразу перехочиваетсяю
Аноним 16/12/16 Птн 17:39:05  895423
>>895422
что не так с гибкостью сишарпа, например?
Аноним 16/12/16 Птн 17:41:02  895425
>>895422
>Что-то понятнее не стало
https://fsharpforfunandprofit.com/posts/records/
https://fsharpforfunandprofit.com/posts/discriminated-unions/

>укатиться на более гибкий-современный язык
Так C# и есть гибкий и современный язык. F# его скорее дополняет, чем заменяет.
Аноним 16/12/16 Птн 18:04:32  895440
8ebbe8d89154ab7[...].png (38Кб, 548x415)
>>895423
>что не так с гибкостью сишарпа, например?
Это то что сходу вспомнил:
- Отсутвие type inference для полей и свойтв (private Diction<string, string> _field = new Dictionary<string, string>())
- Отсутсвие primary contructor. В каждом классе приходится писать пик1
- if/else switch try/cache (тут не уверен) - не выражения и не возвращают результат
- нет нормальных (не Func<>) функциональных типов и функций на топ-левеле (язык вроде бы мультипарадигменный, но для любителей функциональшины у нас static methods)
- Notification проперти из MVVM (без кодогенеровов типа Fody) это ебучие портянки кода, которые средствами языка нельзя абстрагировать
- Нельзя делать свои DSL средствами языки. Я бы давно отказался от Xaml и писал все в коде, но это получается слишком избыточно.
- Отсутвие защиты он Null ссылок
- Отсутствие оператор let/val (это как var, только нельзя изменять)

>>895425
>Так C# и есть гибкий и современный язык. F# его скорее дополняет, чем заменяет.
Надо признать что C# за 15 лет уже накопил свое легаси и для .NET он тоже что и Java для JVM (конечно C# уделывает Java) - рабочая лошадка для энтерпрайза .

Только в JVM я могу свалить на какую-нибудь Scala/Kotlin/Groovy и там будет большое комьюнити,
а в .NET из популярных альтернатив это VB лучше убейте и F#
Аноним 16/12/16 Птн 18:18:00  895450
>>895440
> Отсутвие type inference для полей и свойтв
вот тут мне тяжело представить преимущества этого вот, за исключением того, что "мне впадлу писать длинный тип". ибо в качестве свойств, по большому счету, используются интерфейсы/абстрактные типы. к тому же для библиотек, используемых в других солюшнах, при условии наличия публичного сеттера, это все покажется странным. может быть я что-то не видел в своей жизни.

> primary contructor
эту штуку обещают уже второй релиз. чтож, очередной сахар

> if/else switch try/cache
хех, для if-else есть тернарный оператор. как можно использовать switch в руби мне, например, тоже понравилось. но вот что из кетч ты хочешь получить? или ты имеешь ввиду что-то вроде return { try this.Calcuate(); } catch { null; }?

> нет нормальных (не Func<>) функциональных типов и функций на топ-левеле
я полный ноль в ФП, что это все значит?

> защиты он Null ссылок
чтобы не вылезал NRE? и где тут плюс?

> оператор let/val
ну тут не знаю, сомнительно. есть readonly, с другой стороны почему бы и нет. но тоже обходился без подобного и это не мешало мне
Аноним 16/12/16 Птн 18:28:22  895452
>>895450
>я полный ноль в ФП, что это все значит?
Если сильно упрощенно, есть что-то типа наследования из ООП, только в функциональном стиле. Когда можно переиспользовать ранее написанный код. Одна из таких особенностей называется каррирование:
Func<int, Func<int, int>> sum = x => y => x + y;
Переиспользовать можно например так:
Func<int, int> add1 = sum(1);
Вот только на C# это очень криво выглядит, а некоторые вещи и вовсе нельзя делать.

>чтобы не вылезал NRE? и где тут плюс?
В ООП NRE падает в рантайме, в функциональщине - во время компиляции. Нулевая вероятность попасть NRE на лив.
Аноним 16/12/16 Птн 18:30:04  895453
>>895452
> в функциональщине - во время компиляции
вангую потому, что понятия NULL в ФП отсутствует в принципе?
Аноним 16/12/16 Птн 18:32:49  895457
>>895453
> вангую потому, что понятия NULL в ФП отсутствует в принципе?
Те же яйца, только в профиль. По умолчанию все типы не могут принимать null, надо явно говорить что вот этот тип может быть null. А везде, где надо достать значение такой переменной, надо писать if, который должен обязательно покрывать все ветления, иначе ошибка компиляции. Такой тип называется чуть иначе, но суть та же. Но и никто не запрещает использовать null в том же F#.
Аноним 16/12/16 Птн 18:38:12  895460
>>895334
ну ребята
Аноним 16/12/16 Птн 18:39:03  895462
>>895460
изи гайд
1 выучить язык
2 выучить фреймворки
3 найти работу
Аноним 16/12/16 Птн 18:48:59  895466
>>895460
https://youtu.be/Z-tLCQ2fW7I
Длительность всего 6 минут.
Аноним 16/12/16 Птн 19:19:54  895481
Гуру впф и дата контекста, поможите понять.

У меня есть класс Log. Я в классе MainWindow пилю поле Log log = new Log.

После чего пилю в коде this.DataContext = log;
И могу использовать в xaml binding для получения полей из объекта log. Text="{Binding Data, Mode=OneWay}"
Вопрос - как использовать data binding из нескольких обеъктов. У меня например есть 2 текстбокса. Одному надо брать данные из объекта log, второй из объекта fonts.
В гугле везде примеры с использованием одного объекта, а как быть если тебе надо из нескольких в wpf отображать данные - вообще хз.

Я тут выше спрашивал совета по поводу написания класса Log, как мне порекомендовали смог сделать >>891410, но теперь пытаюсь сделать все более грамотно
Аноним 16/12/16 Птн 19:20:25  895482
Зачем сраный visual studio ставит 32 вонючих пакета, 30 из которых я при установке запретил ставить? При этом этого оказалось мало, пришлось еще и докачивать.
Это абсолютно идиотский подход к поддержке продукта.
Аноним 16/12/16 Птн 19:29:29  895487
>>895452
по поводу каррирования еще, есть же продолжения у задач. конечно, поднимать стейт-машины задля достижения такого стиля - тупость, но хоть так лол
Аноним 16/12/16 Птн 19:32:41  895490
>>895481
привязать логкомпонкнт к свойству пью модели, которое, в свою очередь, использовать в двух разных классах
или использовать конвертеры при биндинге
Аноним 16/12/16 Птн 19:36:14  895495
>>895490
Если не затруднит, покажи что ты иммешь ввиду на простейших примерах в коде. На словах вообще не понял.
Аноним 16/12/16 Птн 19:36:15  895496
>>895482
>Зачем сраный visual studio ставит 32 вонючих пакета
А нафиг тебе VS, попробуй VS Code.

Для лаб или новых проектов на CoreCLR хватает.
Аноним 16/12/16 Птн 19:40:14  895498
>>895495
показать что из двух вариантов?
с телефона, быстро не жди
Аноним 16/12/16 Птн 19:42:06  895500
>>895481
Пилишь вьюмодел. Делаешь два проперти для двух объектов.
Аноним 16/12/16 Птн 19:42:28  895501
>>895498
Оба было бы интересно посмотреть :3
Аноним 16/12/16 Птн 19:44:00  895502
>>895500
Вьюмодель это промежуточный класс, в котором будут все необходимые мне классы. Этот промежуточный класс я задаю в this.DataContext, после чего смогу через точку обращаться к классам, внутри класса из xaml?
Аноним 16/12/16 Птн 19:44:16  895503
>>895500
Можно еще у Window.cs создать два публичных свойства VM1 и VM2, а в XAML нужным элементам установить нужный VM.
Аноним 16/12/16 Птн 19:58:41  895510
>>895502
Как-то так пишу на коленке
public class ViewModel
{
Log log = new Log();
Font font = new Font();

public Log Log
{
get { return log}
set { log = value;}
}

public Font Font
{
get { return font}
set { font = value;}
}
}

в Window.cs
this.DataContext = new ViewModel()

в XAML
Text="{Binding Log.Data, Mode=OneWay}"
Text="{Binding Font.Data, Mode=OneWay}"
Аноним 16/12/16 Птн 20:08:42  895521
>>895510
Все, понял. Спасибо. У меня так часто бывает - когда читаю рекомендации где мне словами отвечают - вообще не вдупляю чего от меня хотят, но на код глянешь и с первого раза понимаешь все.
Еще раз спасибо, я с этими биндингами не один день пердолился пытаясь понять как их использовать и по тиху мозайка начинает складываться.
Аноним 16/12/16 Птн 20:11:01  895524
>>895510
Алсо. Если мне потребуется mode=TwoWay, делать все так же, или есть свои нюансы?
Аноним 16/12/16 Птн 20:20:14  895532
>>895524
Твои классы(те же Log и Font, например) придется переделать вот так: хотя я вообще макака, может есть и другой адекватный способ
http://metanit.com/sharp/wpf/11.2.php
Аноним 16/12/16 Птн 20:25:19  895534
>>895532
Хотя можно реализовать INotifyPropertyChanged только во ViewModel и писать проперти для данных объекта.
public string Data
{
get { return log.Data}
set { log.Data = value; OnPropertyChanged("Data"); }
}
Аноним 16/12/16 Птн 22:03:49  895586
>>895510
Вообще когда начал пробовать сам еще 1 вопрос возник.
Раньше я создавал объект класса лога, делал this.DataContext = log, а дальше спокойно проделывалыв манипуляции с объектом. Например вызывал log.Write(string) который делал log.Data += string + "\n", после чего все это дело попадало в textBox_log.
Сделал я класс ViewModel. Сделал я this.DataContext = new ViewModel(), и обнаружил что не знаю как мне вызвать метод Write() объекта log, для того что бы поместить мне в лог нужную инфую.

Можно конечно сделать ViewModel viewModel = new ViewModel();
this.DataContext = viewModel;
После чего делать так
viewModel.Log.Write("some text"); Но выглядит как то не очень(хотя я вообще хз, может это и норма, я вообще ньюфаня в ооп и в жизни не писал ничего сложнее скриптов для автоматизации небольших задач с пк).
Как правильно и граммотно поступать то?
Аноним 16/12/16 Птн 22:07:03  895590
>>895534
За ссылку спасибо. Сам учусь по этому сайту, очень доступно и просто объясняет, но своими бы силами очень долго искал ответ. Это то мне как раз и нужно. Я делаю программу, в процессе работы которой в лог выводится результат работы. Юзер выбрал опции, кликнул кнопку, выполнился код и в логе отобразилась информация о проделаном и результатах. Тут то мне INotifyPropertyChanged и понадобится.
Но для начала пытаюсь научится статичный текст выводить вот, от простого к сложному.
Аноним 16/12/16 Птн 22:23:29  895600
>>895586
Почитай про MVVM-паттерн, WPF заточен под него. Я так понял ты вызываешь метод из Window.cs(code-behind). Логику нужно выносить оттуда (Честно, я сам пока не до конца понимаю MVVM, все операции с данными и прочим я засовываю во тоже ViewModel).
Аноним 16/12/16 Птн 23:13:35  895622
>>895600
Благодарю, на том же метаните нашел годный материал по mvvm. Таки да, вся куча логики было в MainWindow.xaml.cs. Буду это все дело выносить оттуда.
Аноним 16/12/16 Птн 23:40:39  895636
>>895600
viewmodel не должна содержать логики
Аноним 17/12/16 Суб 01:36:22  895680
>>895636
Ты путаешь c MVC, в которой ViewModel называют plain-data объект для UI. Другое значение - роль в MVVM паттерне, и там код вполне себе будет, но не бизнес-логика, это да. ViewModel должен по идее следить за изменениями в модели и преобразовывать их во вью, а так же за пользовательским вводом(изменениями view) и форвардить их в Model. 2-way binding.

мимодил
Аноним 17/12/16 Суб 03:04:43  895724
>>895680
Интересно, а генерация FullName из FirstName и LastName - это бизнес-логика, но что она забыла в ViewModel?

мимоиздеваюсь
Аноним 17/12/16 Суб 09:21:19  895781
>>895724
да у тебя и Console.Write это бизнес-логика
Аноним 17/12/16 Суб 10:12:43  895789
>>895724
Ну я например понимаю что то что я пилю, можно сделать без применения всей этой еболы mvvm, wpf и т.д.
Можно было и на winform запилить спокойно и не ебать себе мозги, но у меня то целью являются не написание программы, а обучение. Программа как средство для изучения.
Аноним 17/12/16 Суб 12:32:46  895812
То есть модель может содержать не только данные, но и функции?
Аноним 17/12/16 Суб 13:46:10  895854
>>895812
Даже в мвс модель может содержать функции
oche new-fag vopros Аноним 17/12/16 Суб 14:12:36  895863
Как в студии сделать автоморматирование кода? Ну что бы нажал кнопку и все красиво стало.
Аноним 17/12/16 Суб 16:20:08  895934
>>895863
ctrl+k d
и
ctrl+k f
для всего документа и выделенного участка соответственно
Аноним 17/12/16 Суб 16:34:42  895942
Народ кто может дать ссылочки на статьи/книги как правильно строить базы данных (MS SQL) для ASP.NET.
Интересует архитектура.

И еще такое:
У нас есть инет магаз "ВасяПупкин".
Зачем нам отделать в отдельный проект взаимодействие с БД
Пример:
ВасяПупкин.Domain -> собственно само взаимодействие с БД
ВасяПупкин.UI -> ASP.MVC проект.

Если можно все сделать в одном проекте ASP.MVC, а связь с бд организовать в Models
Аноним 17/12/16 Суб 16:57:51  895956
>>895942
как строить базы данных для все вряд ли отличается от того, как проектировать таковую для руби или еще какого говна

ты можешь вообще делать все в одном проекте или одном методе. цель - изолировать юайные штуки от логики, логику - от бд
Аноним 17/12/16 Суб 17:14:51  895963
А здесь есть люди которые шарят в ASP.NET MVC или изучают его, можно было бы вместе поизучать его, если кому-то интересно)
Аноним 17/12/16 Суб 17:27:37  895966
>>895963
А ты няшный?
Аноним 17/12/16 Суб 17:28:50  895968
>>895966
Вот это сложный вопрос.

Я просто охуенен(нет)
Аноним 17/12/16 Суб 18:24:58  895995
Как сгенерировать рандомное число типа double из промежутка [m; n], чтобы n было ВКЛЮЧИТЕЛЬНО?
Аноним 17/12/16 Суб 18:41:07  896004
>>895995
new Random().Next(0, 1) == 1 ? n : (double)new Random().Next(m, n)
Аноним 17/12/16 Суб 19:27:36  896035
>>896004
oh
my
goooood
Аноним 17/12/16 Суб 19:29:08  896039
>>896035
Какие проблемы? Работает? Работает.
Аноним 17/12/16 Суб 20:04:27  896070
>>896039
Разве Random().Next когда-нибудь достигнет единицы?
Аноним 17/12/16 Суб 20:17:13  896080
>>896070
Тогда Next(0, 2)
Аноним 17/12/16 Суб 20:23:02  896082
Анон, выручай. Нужно запилить 2d игру с физикой в Windows Forms. Суть такова: есть машина, которая едет по поверхности(кривой) и может балансировать вперёд/назад. Что-то сродни gravity defied, но поверхность не ломаная линия. С чего начать и что курить? Буду рад любому совету.
Аноним 17/12/16 Суб 20:23:52  896083
>>896082
car game 2d sources download
Аноним 17/12/16 Суб 21:25:15  896132
Шарпач, поясни, как переносить проекты с .dll библиотеками на другие ПК, чтобы не? Недавно столкнулся с проблемой, что когда я запустил солюшн на другом кудахтере, у меня отпали кхуям все референсы, они, видите ли, абсолютную адресацию имеют, несмотря на то, что при добавлении .dll копируются в папку с .exe
Аноним 17/12/16 Суб 21:26:03  896133
>>896132
блят, чтобы не добавлять референсы повторно*
Аноним 17/12/16 Суб 21:38:12  896145
>>896132
Попробуй посмотреть здесь
http://metanit.com/sharp/tutorial/10.1.php

Еще у книжечках почитай на тему сборок, у Троелсена вроде неплохо написано.
Аноним 17/12/16 Суб 22:04:15  896165
Анончик, помоги дауну освоить автомаппер. Не могу понять, почему этот код не хочет работать:
https://gist.github.com/anonymous/cdd24c2db8d2d10058f853e409238987?ts=4

Хочу при переходе Entity<->DTO перегонять int[] в строку вида "2,3,4,5" и обратно. Но маппинг работает только в одну сторону.

Я понимаю, что можно дёргать конструктор напрямую, вместо ForMember, но я хочу использовать это в другом проекте, там в конструкторе примерно миллиард аргументов и только один из них нужно по хитрому конвертировать.
Аноним 18/12/16 Вск 04:40:19  896372
>>896004
Проблема в том, что это плохой рандом, ведь n будет в 50%
Аноним 18/12/16 Вск 11:22:23  896420
>>896082
>Windows Forms
Зачем тебе Windows Forms?
Аноним 18/12/16 Вск 14:10:35  896501
>>895963
Тоже есть желание поизучать ASP.NET. Не против изучать сообща.
Аноним 18/12/16 Вск 15:01:20  896531
Безымянный.jpg (116Кб, 1471x581)
142654369513925.jpg (212Кб, 1054x865)
Посоветуйте по рефлексии.
Сделал простой атрибут.
Запилил класс с несколькими атрибутированными переменными. Потом функцию, которая берёт всё поля и их атрибуты и отправляет в конструктор другого класса.
WTF?!?!?!??!??!!!!!11
Вместо функций подставлял стринги и оно их отправляло.
Что пошло не так?

Аноним 18/12/16 Вск 15:20:56  896547
>>896501
Надо сразу фулстак изучать. Я вот курсы на плюралсайте смотрю и мне норм. Вот здесь можно бесплатную подписку на 3 месяца получить:
https://www.reddit.com/r/dotnet/comments/54i6to/good_aspnet_core_and_angular_2_tutorial/d82nbxc/

>>891871-кун
Аноним 18/12/16 Вск 15:34:24  896552
>>896420
А в чём ещё? Изначально надо было в консоли делать.
Аноним 18/12/16 Вск 17:11:55  896610
>>896531
бросай все это дело, не твое это. ты ж даже вопрос понятно сформулировать не в состоянии
Аноним 18/12/16 Вск 17:22:37  896615
>>896610
>Не понял
@
повыёбываюсь
Аноним 18/12/16 Вск 17:32:13  896622
>>896610
Вместо траллинга мог бы пояснить по скрину.
Аноним 18/12/16 Вск 17:38:26  896626
>>896531
>Field_d
>DefAttr
>DefAttr.K
по твоему, мы тут экстрасенсы?
Аноним 18/12/16 Вск 17:55:29  896637
>>896626
Спасибо за отклик, тики отловил NULL и вроде работает. Такой момент, возможно ли имея имя поля в строке присвоить в экземпляр какое-либо значение?
Аноним 18/12/16 Вск 17:58:49  896639
>>896637
да, через рефлексию вообще все нах можно. вот только как делать я, естественно не помню. но помню, что все методы из .Reflection носят говорящие названия. ищи методы типа SetField() или SetValue()
Аноним 18/12/16 Вск 19:43:52  896709
Screenshot9.png (26Кб, 994x545)
Привет двач, возникла проблема с Visual Studion, а в частности с консолью NuGet. При запуске консоли выскакивает данное сообщение: An error occurred while creating the pipeline.
Гуглил - ничего.
Возможно ты анон сможешь помочь мне
Аноним 18/12/16 Вск 22:27:15  896792
Ананасы, кто-нибудь на фрилансе бабки зарабатывает шарпом? Единственное направление, где это возможно это asp.net, но полистав всякие апворки пришел к выыводу, что это не самая популярная тема. На asp.net фрилансом вообще норм можно зарабатывать нормально?
Аноним 19/12/16 Пнд 13:51:01  897023
>>896792
Если ты листал апворк, то видел достаточно индусов, которые вполне нормально гребут на asp.net. Он так то нужен как правило какому-нибудь энтерпрайзу, это же как джава, в идеале это не самый удачный стэк, но если ты его знаешь - то без работы офк не останешься.

мимо диванный, который внаглую перешёл на удалёнку вместо офиса
Аноним 19/12/16 Пнд 15:45:29  897073
>>896547
>курсы на плюралсайте
Какой конкретно курс?
Аноним 19/12/16 Пнд 20:11:09  897194
>>897073
начни с любого
Аноним 20/12/16 Втр 00:00:29  897282
>>897073
А там проще "путями" сразу учить
https://app.pluralsight.com/paths/skill/mvc5
https://app.pluralsight.com/paths/skill/javascript
Аноним 20/12/16 Втр 11:38:57  897438
А есть какая-то конфа или чатик анонов по C#?
Аноним 21/12/16 Срд 00:27:07  897902
Двощ, выручай! Пытаюсь подключиться к БД в MS SQL через
System.Data.SqlClient.SqlConnection используя User ID и password. Вот только я нихуя не въебал, User ID - это логин для входа в MS SQL сервер? Если да, то как мне сделать так, чтобы задачи из под этого соединения выполнялись пользователем, созданным от этого логина? Просто пользователь состоит обладает определенными ролями, которые мне нужны, и вот чё то я не догоняю, как работать из C# в MSSQL именно от имени определенного пользователя, а не логина.
Аноним 21/12/16 Срд 00:28:43  897903
>>897438
Есть унылый телеграма чат, где общаются 8 человек из 100 присутствующих.
Аноним 21/12/16 Срд 04:18:35  897950
>>897902
1. На сервере создаешь логин с нужным именем и паролем.
2. Даешь нужные права на нужную базу.
3. На сервере разрешаешь логин через маздай аутентификацию И sql аутентификацию.
4. В коннекшен стринге прописываешь путь к серверу, имя бд и креденшиалы созданного пользователя.
5. ???
6. Идешь нахуй
Аноним 21/12/16 Срд 04:22:45  897951
>>897950
>System.Data.SqlClient.SqlConnection
И там похуй на чем ты подключение делаешь, хоть на камне высекаешь.
Аноним 21/12/16 Срд 09:16:13  897973
>>897950
А разве можно дать какие-либо права на действия внутри БД логину? Я думал их можно дать только пользователям и ролям я совсем недавно в SQL
Аноним 21/12/16 Срд 10:14:45  897994
Суп шарпаны,
хочу плотно заняться десктопными приложениями на WPF, стоит ли мне изначально возиться с прямой реализацией патерная MVVM или лучше накатить тулкит и изучать через него?
Аноним 21/12/16 Срд 10:19:19  897995
>>897994
Лучше вообще не лезь в WPF и его десктоп, а изучай что нибудь более современное. Ну или если очень хочется в десктоп - c++ Qt
Аноним 21/12/16 Срд 10:25:58  897996
>>897995
Кт СЛОЖНА, а C# уже как никак использую но в консольном виде. Интересна только Win платформа, поэтому WPF тут логичен и очевиден.
Аноним 21/12/16 Срд 10:29:45  897998
>>897996
Ну тогда готовься к подводным камням при расширении базовых контролов, через хуй пойми что работающим ресурсам и прочим весёлостям WPF, который не поддерживается официальными разработчиками с 2012.

Не знаю, о каком именно тулките ты говоришь, и чем он тебе поможет в реализации MVVM, но я бы советовал ещё на берегу вкурить, что предполагает под собой следование принципам MVVM, и как он реализуется в WPF.
Аноним 21/12/16 Срд 10:33:12  897999
>>897903
А там именно дотнетчики сидят, или вообще все?
Аноним 21/12/16 Срд 10:36:25  898000
>>897998
Ты судишь по своему опыту или начитался статеек в этих ваших интернетах? Изучаю C# не так много времени и давно приглядывался к C++, но он жутко неудобен в том, что сделать в нём что-то неправильно как нехуй петь, а я не профессиональный программист и пишу в основном для своих нужд. Строгая типизация и управляемая память для меня значительное преимущество от которого не хочется отказываться.
Аноним 21/12/16 Срд 10:45:06  898001
>>898000
Из статеек вычитал только то, что WPF чуваки из microsoft не поддерживают с 2012.
По своему опыту высказал остальное. Из того, что больше всего рвало пердак, вспоминаются проблемы с комбинированием словарей ресурсов и стилей одновременно в одном контейнере ресурсов, черезжопное подключение обработчиков событий в словарях ресурсов к контролам внутри стилей, двойное срабатывание события DateChanged на DateControl'е или какой там стандартный, не помню уже при смене даты DatePicker, и одинарном при смене даты через текстовое поле на том же контроле из-за роутинга событий, кажется. исправляется костыльно, ну и прочие мелкие недоумения при использовании XAML'а, которые заключались в том, когда ты восклицаешь "да схуяли нельзя?!" там, где, казалось бы, всё должно работать. И то, что разочаровало меня более всего, в моей 600к мухосрани нет ни одной вакансии, ориентированной на WPF, да и вообще, как мне кажется, из за тенденции перехода на тонкие клиенты и мобильные приложения, десктоп умирает.
Аноним 21/12/16 Срд 10:50:05  898002
>разочаровало меня более всего
>нет ни одной вакансии
Мне не актуально, значит впринципе можно заморочиться.
Аноним 21/12/16 Срд 13:45:06  898052
>>897996
Мда. Сравнил хуй с пальцем. Васяноподелие qt на котором весь софт выглядит - привет 2000, либо wpf на котором запилена студия и офис.
Я конечно не хочу принижать заслуги qt в прошлом, но в данный момент это удел пердоликов. Прогрессивные люди выбирают c#.
Аноним 21/12/16 Срд 16:08:06  898139
>>898052
Последний Qt 5.6 очень даже няшный, но это не отменяет того факта что придётся учить целый новый язык.
Аноним 22/12/16 Чтв 01:48:26  898511
>>897994
Чо т я погуглил и люди действительно юзают WPF. Я думал, что майкрософт выкатят какую-то йобу вместе с .net core, но ничего не нашёл. UWP тоже не особо взлетел.
http://www.telerik.com/blogs/survey-report-the-dotnet-developer-of-2016

Если видишь вакансии - так то можно и изучить, но это всё такое.
Аноним 22/12/16 Чтв 02:24:02  898517
2016-12-2202-21[...].png (36Кб, 1630x558)
>>898052

Привет из будущего
Аноним 22/12/16 Чтв 05:23:55  898531
>>898517
>Черно-белые логотипы, цветов еще не изобрели
>Даже не черные - бледно-серые, краска в дефиците
>будущее
На хуй такое будущее
Аноним 22/12/16 Чтв 08:26:27  898546
>>898517
>ABB
>QT
Использую WPF.
Мимо ABB-кун
Аноним 22/12/16 Чтв 11:27:24  898641
>>898531
так ты даун, это стили такие применены - когда наводишь на лого картинка приобретает оригинальные цвета. короче яебу дивелапер
Аноним 22/12/16 Чтв 11:31:09  898644
12312144234234.png (26Кб, 996x352)
>>898641
Ну вот я навел на лого и нихуя ничего не приобрело, ты пиздабол и даун.
Аноним 22/12/16 Чтв 11:32:46  898645
>>898644
Бля курсор не отображается на принт скрине.
Аноним 22/12/16 Чтв 11:33:07  898646
>>898644
ну подумаешь подобосрался чутка, чо ты ругаешься, макакен
Аноним 22/12/16 Чтв 16:21:44  898852
Как правильно диспозить классы которые асинхронно захватывают ресурсы?
Аноним 22/12/16 Чтв 16:26:16  898853
>>898852
в коллбэке эсинхронной операции?
Аноним 22/12/16 Чтв 16:31:13  898854
>>898853

А в самом Dispose() чего делать, ждать пока завершиться или послать запрос отмены и идти дальше?
Аноним 22/12/16 Чтв 16:32:25  898855
>>898854
ну так ты не вызывай диспоуз пока не завершится асихнронная операция
Аноним 22/12/16 Чтв 16:34:52  898857
>>898855

В штатном выполении я и не собираюсь, но если юзер переходит на другю страницу например, тут так просто не отделаешься.
Аноним 22/12/16 Чтв 16:36:37  898859
>>898857
попроси не переходить
Аноним 22/12/16 Чтв 21:06:23  899038
Двач, PAMAGI. У меня проблемы с взаимодействием MSSQL и C#. В коде C# вызываю хранимую процедуру, которая выполняет select'ы. Результаты работы хранимой процедуры записываю в DataSet из ADO.NET через SqlDataAdapter. НО! Если у пользователя, чьи данные указаны в строке подключения, не хватает прав, то не генерируется никаких исключений. Следовательно, если у пользователя нет прав на выполнение процедуры, я даже никак ему об этом сообщить не могу, томушо исключение из MSSQL не подхватывается ни дата адаптером, ни SqlConnection'ом.
Как быть? Мб есть альтернативы DataAdapter'у?
Аноним 22/12/16 Чтв 21:25:27  899048
>>899038
А всё, отбой. У SqlConnection есть события, которые мне подходят.
Аноним 22/12/16 Чтв 21:48:30  899064
>>899038
>DataSet из ADO.NET через SqlDataAdapter
У тебя древнее говно к жопе прилипло! В ADO.NET нет DataSet, который из .NET Framework 2. Чего ж ты на первой версии не пишешь, некрофил?
Аноним 22/12/16 Чтв 21:53:03  899073
>>899064
Тише, тише. Я мимостудент, и нам не рассказывали про EF, а мне слишком впадлу им заниматься для моих нужд. И я думал, что DataSet он родом из ADO.NET а может и нет, я хуй его знает. Беру его из using System.Data. Это разве не ADO.net?
Аноним 22/12/16 Чтв 22:03:10  899079
>>899073
Если переводить на русский термины, есть "подключенные" и "отключенные" классы. Первые работают с базой данных, вторые работают не с базой данных и нахуй не нужны.
Так вот: первые - Connection, Command, DataReader, DataAdapter;
Тогда как вторые DataSet, DataTable, DataRow, DataColumn. Это пиздец какие ебанутые классы. Часть простых вещей без костылей не сделать.
Первые классы даже сейчас используются, например где важна скорость.
Вторым - есть много замен, или они вообще не применимы к задаче.
Аноним 23/12/16 Птн 17:05:38  899541
Как работает добавление кастомных структур в генерик List<>, они все будут как массив в стеке или в куче, а лист будет хранить только ссылки?
Аноним 23/12/16 Птн 18:11:49  899567
>>899541
List<T> будет вместе со всем прочим хранить ссылку на T[], который, в свою очередь, будет представлять собой сплошной ряд объектов в куче (это исключая случай, когда массив будет достаточно велик дабы попасть в LOH. в таком разе ряд будет не очень сплошным, но это уже совсем другая история)
Аноним 23/12/16 Птн 20:54:17  899675
>>899567
Физически list как массив в памяти представлен?
Все данные находятся последовательно, а при добавлении остальное сдвигается?
Аноним 23/12/16 Птн 21:08:14  899681
Есть желающие подработать? Заранее прошу особо говном не закидывать, знакомый который сам обычно всем с курсачами помогал слег в больницу и попросил найти в интернетах кого нибудь что бы курсач запилить, довольно простенький на asp.net. Черканите на мыло temp600600@mail.ru если кого заинтересует с предложениями по цене.
https://docs.google.com/document/d/1APjX_IMyCsODb2JFJFAype-8dj4xusR5hug0iG-A9Jo/edit?usp=sharing
Еще раз извините за оффтоп и не кидайтесь говном.
Аноним 23/12/16 Птн 21:23:03  899692
>>899675
тебе говорят, что List сам по себе не содержит объектов коллекций, но ты за свое блять
Аноним 24/12/16 Суб 00:35:57  899803
>>899692
Я не он, и у меня вопрос как физически представлен в памяти лист. Это же не линкедлист в котором каждый элемент хранит ссылку на предыдущий и следующий. Как он хранится в памяти?
Аноним 24/12/16 Суб 00:57:07  899820
>>898000
>Строгая типизация
C++ примерно так же строго типизирован как и шарпик. Гц удобная штука, да.
Аноним 24/12/16 Суб 00:57:34  899821
>>897995
Qt ещё жив?
Аноним 24/12/16 Суб 00:59:38  899823
>>899821
Например, steam.
Аноним 24/12/16 Суб 01:01:51  899826
>>899823
Лол и battle.net десктоп-прожка.
Аноним 24/12/16 Суб 01:37:08  899844
>>899803
как и любой другой ссылочный тип - имея под боком все значимые типы и интовые ссылки на ссылочные типы в куче в границах, обозначенных размером типа
Аноним 24/12/16 Суб 02:52:07  899887
>>899844
Тут нашел http://stackoverflow.com/questions/29898518/is-a-generic-list-stored-contiguously-in-memory
Что list содержит массив типа T
А при добавлении
If Count already equals Capacity, the capacity of the List<T> is increased by automatically reallocating the internal array, and the existing elements are copied to the new array before the new element is added.

If Count is less than Capacity, this method is an O(1) operation. If the capacity needs to be increased to accommodate the new element, this method becomes an O(n) operation, where n is Count.

Не совсем понятно что именно значит reallocating the internal array
Это выделение памяти под новый массив и копирование туда данных с новым добавленным элементом?
Тогда может для некоторых List заранее Capacity задвать если знаешь что List будет расти чтобы избежать лишних выделений памяти?
Аноним 24/12/16 Суб 04:30:17  899905
>>899887
Именно, задавая capacity избавляешься от ненужных реаллокаций
Аноним 24/12/16 Суб 09:11:48  899932
>>899887
>Что list содержит массив типа T
соу слоу, я это написал первым ответом, но зачем читать слова с первого раза
Аноним 24/12/16 Суб 15:24:17  900059
Ананасы, кто нибудь работал с PostgreSQL из под c#? Какой API/Framework посоветуете для вызова процедур в БД на PostgreSQL?
Аноним 24/12/16 Суб 19:25:34  900188
>>900059
EF?
Аноним 24/12/16 Суб 19:56:30  900211
>>900188
ef в целом так себе вариант
тем более для вызова фактически raw sql можно придумать и ченьть получше
Аноним 24/12/16 Суб 20:08:32  900217
>>900188
>>900211
Наткнулся на Npgsql.EntityFramework
Кто нибудь имел опыт работы с ним?
Аноним 24/12/16 Суб 22:00:25  900253
>>900217
Никто с ним не работал, потому что он не для людей. Если у тебя хранимки в БД - просто пиши sql запросики
Аноним 24/12/16 Суб 22:02:06  900256
>>900059
Можешь попробовать linq2db - в отличии от EF не такой тяжелый. Сам процедурки не вызывал, но поддержка всего этого есть.
Аноним 24/12/16 Суб 22:05:02  900257
Снимок.PNG (16Кб, 1028x155)
Что делать с сучарой с пикрелейтед? Чо он так много жрет?
Аноним 24/12/16 Суб 23:57:31  900295
>>900059
dapper
Аноним 25/12/16 Вск 12:01:04  900470
Что скажете про М.Фленов-"Библия С#"?
Начало можно дрожать, конечно-оно совсем ньюфажное.
Аноним 25/12/16 Вск 12:07:29  900475
>>900470
ты ж сам все сказал, че спрашивать-то?
Аноним 25/12/16 Вск 13:41:59  900507
>>900470
Если не можешь/не хочешь читать книги на английском - тебе в профессии делать нечего.
Аноним 25/12/16 Вск 13:51:48  900510
>>900507
Элитка, не рвись. Начинать можно и родного языка, рунглишь нужен для того, чтобы быть на острие технологий.
Аноним 25/12/16 Вск 14:02:21  900514
>>900510
Ух ты, самоподдув в 2016-то году.
Аноним 25/12/16 Вск 14:19:13  900518
f#meme.jpg (24Кб, 400x242)
>>887100 (OP)
>.NET THREAD #5 (C#/F#/VB)
>В шапке ни одного ресурса по F#

Шо за хуйня?

Дайте годных книг/ресурсов (кроме fsharpforfunandprofit.com)
Аноним 25/12/16 Вск 15:15:54  900544
>>900518
Его сейчас вообще кто-то использует? Вакансий по-моему особо нету нихуя вот и не нужен.
Аноним 25/12/16 Вск 15:21:23  900547
>>900544
много вакансий C#/F# девелоперов, шо ты рассказываешь тут
Аноним 25/12/16 Вск 16:40:29  900615
Как быстрее заполнить список структур: создавать через new прямо в аргументе или за пределами цикла создать локальную переменную-буфер, заполнять ее поля и уже ее передавать в Add?
Аноним 25/12/16 Вск 16:45:52  900623
>>900615

в коде:
1)
var l = new List<Struct>();
var s = new Struct();
for(int i =0; i < 1000; i++)
{
s.a = 3;
s.b = 1;
l.Add(s);
}

или

2)
var l = new List<Struct>();
for(int i =0; i < 1000; i++)
{
l.Add(new Struct() { a = 3, b = i});
}
Аноним 25/12/16 Вск 16:53:57  900631
Шарпаны, а где почитать про управление памятью в управшляемой кучи.
Те есть класс, в котором тоже ссылочные типы. Как их лучше всего создавать или нет никакой разницы? Созданные в методах ссылочные типы будут сохранять свою жизнеспособность на всем протяжении сохранения ссылки?
Аноним 25/12/16 Вск 16:53:58  900632
maxresdefaulted[...].jpg (157Кб, 955x1022)
>>900544
>Его сейчас вообще кто-то использует? Вакансий по-моему особо нету нихуя вот и не нужен.

> 2016
> учить язык только по востребованности на рынке
Чувак ты не шаришь.

Его надо выучить хотя бы что бы расширить свое сознание разных подходов проектирования.
После него даже твой C# код станет лучше и чище.

Да и вообще, ты что безработный школьник или не в состояние два язык запомнить?
Аноним 25/12/16 Вск 16:56:04  900633
>>900507
Петуха забыли спросить.
Спокойно читаю документацию на иглише, вся системы и весь софт на инглише. Но при этом - если есть вменяемая ру альтернатива документации или книги буду читать на русском. Ибо мозг раз в 10 меньше будет уставать. Для того что бы изучать английский, есть курсы, спец книги и спец сайты, документацию я читаю совсем для другого, и на русском языке я куда быстрее и куда больше смогу усвоить.
Аноним 25/12/16 Вск 16:58:23  900636
>>900632
>После него
Тебя перестанут брать на работу.
Аноним 25/12/16 Вск 17:02:08  900638
>>900632
Я в первую очередь учу язык из соображения его востребованности. Для меня это всего лишь способ заработка. Оставь свои мантры для красноглазиков.
Аноним 25/12/16 Вск 17:09:34  900642
e29ab9ad9985e66[...].png (95Кб, 954x904)
>>900636
С работой как раз все ОК. Пишу тырпрайз на c#, для себя учу f#.

Ты только глянь как охуенно выглядит "качалка webm и картинок с двачей"
язык учу пару дней
Аноним 25/12/16 Вск 17:10:26  900643
1394300926709.jpg (11Кб, 196x200)
>>900638
>Для меня это всего лишь способ заработка
Вся суть codemonkey.
Аноним 25/12/16 Вск 17:11:05  900646
>>900643
Как-будто что-то плохое.
Аноним 25/12/16 Вск 17:55:13  900675
>>900623
быстрее инициализировать список можно только указав Capacity в конструкторе. то, шо ты привел тут будет однозначно одинаково по скорости ибо для Add() значение структуры будет копироваться

>>900631
> где
троелсен, рихтер, msdn
> Как их лучше всего создавать или нет никакой разницы
что значит как? или кого "их"?
> Созданные в методах ссылочные типы будут сохранять свою жизнеспособность на всем протяжении сохранения ссылки?
в случае, если это локальная переменная онли и никуда не пойдет дальше, до первого сбора мусора. в противном случае это зависит от времени жизни объекта, в котором он используется, и его поведения

>>900642
это решарпер подсвечивает typename1 -> typename2? или 2015 студия?
Аноним 25/12/16 Вск 18:07:31  900684
>>900675

А разве не будет так, что в первом случае он один раз выделит перменную в стеке, из которых на каждом Add будет копировать значение, во втором случае на каждом Add сначала будет создан временный объект (в стеке?) и уже из него производиться копирование?
Аноним 25/12/16 Вск 18:26:39  900702
>>900675
>это решарпер подсвечивает typename1 -> typename2? или 2015 студия?
Это Visual Studio Code с установленным расширением для F# (и кстати core clr приложение)

2015 студия вроде этого делать пока не умеет,
а решарпер вроде и не собирается F# поддерживать.
Аноним 25/12/16 Вск 19:05:09  900727
>Стек на основе односвязного списка. Операции протолкнуть и вытолкнуть.

Подскажите, куда хоть капать-то? Лаба немного на волоске уже, а это совсем никак не могу понятьосвоить.
Аноним 25/12/16 Вск 19:18:35  900741
>>900684
не, ну так-то будет, но это не сказать шобэ оптимизация, даже микро
http://pastebin.com/MdTbgJWY
начало тела цикла во втором случае - это IL_0013. конечно пришлось добавить еще пару строк, где происходит первая инициализация Struct. не то, чтобы я сильно знал MSIL, но очевидно, что фактическая разница - в двух инструкциях. учитывая то, что выделение памяти это просто наращивание указателя, выигрыша ты тут не получишь.

>>900727
> протолкнуть
копать в структуры данных, а именно - в стек и в связный список. еси знаешь шо это такое и зачем нужно, то проблем не должно быть
а если нет, то полистай Essential Algorythms
Аноним 25/12/16 Вск 19:20:39  900743
>>900741
Придётся осиливать и заниматься быстрым самообучением, эх. Спасибо!
Аноним 25/12/16 Вск 19:20:40  900744
>>900727
push() - сохраняет элемент в начале списка
pop() - возвращает значение из первого элемента списка и удаляет его
Аноним 25/12/16 Вск 19:22:43  900747
>>900743
в той книге на псевдомове программирования разобран пример построения стека на основе связного списка. не думаю, что ты сильно туп дабы не осилить это со второго раза. а если да, то ничем тебе не могу помочь
Аноним 25/12/16 Вск 19:35:35  900752
Как в вижуал студио включить отображение адреса переменной?
Аноним 25/12/16 Вск 20:42:53  900812
>>900752
а так можно?
Аноним 25/12/16 Вск 20:45:10  900818
Шалом сишарперы
Завтра нужно сдавать курсач и гуглится моя проблема как-то не так
суть в чем, есть пикчебокс
pictureBox6.Image = Image.FromFile(@"C:\Users\User\Desktop\History Test\History Test\History Test\bin\Debug\test\vopr\vopr" + numq + ".jpg");
как можно переделать путь к, чтобы он был относительно папки с самой программой? без вот этих дисков, юзеров и.т.д
а то прога не то что с флешки, с другого пользователя на пеке не запускается))))))
Аноним 25/12/16 Вск 20:48:24  900825
>>900818
"папканейм/файлнейм"
будет гуглить файл относительно директории запуска приложения. в твоем случае это с:/всяхуйня/бин/дебаг
Аноним 25/12/16 Вск 20:51:27  900831
>>900825
Он прям сам загуглит? Класс
Ща попробую, спасибо
Аноним 25/12/16 Вск 22:04:11  900908
>>900741

wow, ты ради меня декомпиляцию проводил.
Аноним 25/12/16 Вск 22:11:27  900910
>>900741
>>900744
>2 омежки помогают быдлу
Хорошие мальчики, послушные. Сейчас будете между пальцев ног лизать.
Аноним 25/12/16 Вск 22:16:58  900911
>>900910
Как что-то плохое :3
Аноним 25/12/16 Вск 22:17:55  900912
>>900908
та мне чот самому интересно стало, будет ли разница

>>900910
ебанат штоле?
Аноним 26/12/16 Пнд 01:05:02  901019
Шарпаны, что после The C# Player's Guide, чтобы в веб вкатиться читать?
Аноним 26/12/16 Пнд 10:15:31  901116
>>900741

Это дебажная сборка? Может оптимизатор вообще без временного объекта обойдётся?
Аноним 26/12/16 Пнд 10:28:01  901118
>>901116
да, дебаг. я хотел еще с optimze скомпилить, но суть-то была в поиске разницы
Аноним 26/12/16 Пнд 10:29:48  901119
>>900912
Ебанат здесь ты и безграмотная моча-пидорок, которая посты трет. Конечно, неприятно ощущать себя безграмотным дебилом, надо пост потереть.
(Автор этого поста был забанен. Помянем.)
Аноним 26/12/16 Пнд 18:47:14  901407
Сишарперы.
Нужно копировать файлы определенных расширений из одной папки в другую (7 разных типов файлов).
GetFiles() принимает только одну маску.
Как лучше получить сразу все типы файлов?

http://pastebin.com/wR6u9vN5
Аноним 26/12/16 Пнд 18:51:07  901410
>>901407
Написать функцию, принимающую массив масок? И вызывавать GetFiles для каждой?
Аноним 26/12/16 Пнд 18:57:15  901416
>>901407
> GetFiles() принимает только одну маску
разве?
по-моему, у них делимитер - это символ |
Аноним 26/12/16 Пнд 19:00:18  901417
>>901416
таки нет, не для этого случая
интернеты говорят по-разному - от конкатенации результатов до фильтрации всех файлов в директории
Аноним 26/12/16 Пнд 19:56:44  901446
>>901417
Таки что лучше использовать? Файлов очень много. Что будет менее затратно?

http://pastebin.com/ZmvV5v3p
Аноним 26/12/16 Пнд 20:38:35  901484
>>901446
а v2 и v3 чем-то отличаются лол?
еси ты явно указываешь IEnumerable<FI>, как в версии2, то лучше использовать метод EnumerateFiles. вообще, смотря
> Файлов очень много
что ты подразумеваешь. если файлов много, а под один фильтр попадет, в лучшем случае 5-10%, то лучше вариант номер раз. если же бОльшая часть общего контента окажется в результирующей выборке, то тащи из DirectoryInfo все. универсального рецепта нет в этом случае
Аноним 26/12/16 Пнд 21:39:34  901525
>>901446
Лучше вместо GetFiles() использовать EnumerateFiles() + Where().
Аноним 26/12/16 Пнд 21:47:53  901531
>>901525
и вместо string[] HashSet<string>, хотя если всего 2 расширения, не знаю даст ли это хоть сколько заметный прирост.
Аноним 26/12/16 Пнд 23:46:08  901607
>>890447
Слушай Лысого сука и будешь С# богом.
Аноним 26/12/16 Пнд 23:47:11  901608
>>890993
Почему бы и нет?
Аноним 26/12/16 Пнд 23:49:12  901609
>>894612
Копейки.
Аноним 27/12/16 Втр 01:04:24  901644
Компадрес, никто не сталкивался недавно с проблемой с NuGet в VS2015? У меня вот пикрелейтед уже весь день выскакивает.
На данный момент пробовал:
1. в настройках фаервола создал правило для devenv.exe на все входящие/исходящие подключения
2. удалил/устанавливал повторно NuGet
3. Пробовал использовать адрес NuGet'овского CDN для VS2013
ничего не помогает. Гугол тоже молчит. Раньше NuGet работал (не помню, когда в последний раз использовал, но я помню, что работал).
Аноним 27/12/16 Втр 01:04:44  901645
Снимок.PNG (32Кб, 1032x611)
>>901644
пикрелейтед проебал
Аноним 27/12/16 Втр 01:09:22  901647
>>901019
Bump
Аноним 27/12/16 Втр 01:49:58  901664
control.PNG (13Кб, 646x384)
Насколько сложно забацать в WinForms контрол по типу пикрелейтед? По сути это помесь TreeView и CheckedlistBox, за исключением того, что детки разворачиваются не полностью на весь тривью, а в листбоксе. Ну и мне достаточно одного уровня вложенности.
Аноним 27/12/16 Втр 02:55:41  901683
blob (24Кб, 740x161)
>>901664
Аноним 27/12/16 Втр 08:56:11  901747
>>898644
Господа, поясните за локатор в MVVM Light, как его использовать и зачем? не могу найти руководство для совсем дибилов а описания для понимания не хватает.
Аноним 27/12/16 Втр 13:35:47  901937
Вопросы по оптимизации.
Знаю что система автоматически выносит объявление переменной за цикл. Такой вопрос, если у меня есть в цикле вызов метода, будет ли она также выносить объявления конст/обычных переменных за рамки данного цикла, или нет?
транслируй в MSIL и смотри сам
Аноним 27/12/16 Втр 18:54:32  902072
>>901937
> выносит объявление переменной за цикл
ты про i в цикле (for var i = 0...)?

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

> выносить объявления конст
константы находятся в метаданных, вангую, что такая же ситуация характерна и для методов (но не уверен)

> обычных переменных за рамки данного цикла
чуть выше я ildasm-ом для другой ситуации приводил листинг. так там никакого выноса переменной, что создавалась внутри цикла, не было
Аноним 27/12/16 Втр 19:22:20  902091
>>902072
Сейчас разверну что я имел ввиду.
Есть такой например код цикла:
for(...) {
var variable = 333;
...
}

После трансляции, он будет таким(по смыслу):
var variable = 333;
for(...) {
...
}
Не то, чтобы переменная variable поменяет свою область видимости, а в плане что инициализация будет происходить единоразово.

А затупил я над следующей ситуацией:

for(...) {
someMethod();
...
}

... someMethod(){
var variable = 333;
...
}
Дак вот какого будет поведения переменной variable, вынесется ли её инициализация до цикла или нет.
Аноним 27/12/16 Втр 19:36:16  902103
>>902091
> вот какого
какое*

Будь это плюсы, я бы переопределил оператор присвоения и посмотрел как оно работает. Но в шарпике нельзя трогать данные операторы. Точно знаю что даже старые компиляторы плюсов, оптимизируют первую ситуацию, для системных типов. На счет второй уже не помню.
Аноним 27/12/16 Втр 19:41:39  902109
>>902103
Сук, не дописал.
Я вообще не бум бум за дотнетовский байткод, чтобы в нем посмотреть результат трансляции простого примера, думал может знает кто. Если нет, то к выходным может сам осилю. Прочекать поведение для базовых системных типов и пользовательских соответственно.
Аноним 27/12/16 Втр 19:42:43  902110
>>901644
>>901645
Б А М П
   А
      М
         П
Аноним 27/12/16 Втр 19:46:44  902114
>>902110
Я сейчас конечно адово шуткану, но попробуй запустить студию из под администратора.
Мимо SharpDevelop-холоп с вопросами трансляции.
Аноним 27/12/16 Втр 19:46:50  902115
>>901644
>>901645

      М П         
   А               Б       П
Б               Б А М П Б А
А                  М       А
   М            М П Б А М П
      ПБ           Б      П
Аноним 27/12/16 Втр 19:47:17  902116
>>902114
Запускал. Nyet, всё то же самое.
Аноним 27/12/16 Втр 19:48:53  902118
>>902109
первая ситуация - это не более чем оптимизация статического конпелятора.
нащщот второй от ситуации и того, как метод будет использоваться и какова будет статистика метода/цикла - может включиться встраивание метола, может повторное использование кадра стека, может еще чота. я однозначного ответа на это не могу дать, но можно попробовать поэкспериментировать
Аноним 27/12/16 Втр 20:02:02  902124
>>902116
Идея нумер два. Вместо https вкорячь http. Основы гугл-Fu https://github.com/NuGet/Home/issues/2880

>>902118
Принято. Я реанимирую свои познания по программированию, и вот при работе со строками задумался над оптимальными реализациями своих методов. Будет ли он строки выносить, или нет. Ведь строки это не совсем простой тип. Опять таки все строки в шарпике это константы же, для констант свое поведения прописано. Короче, не понятно мне. К выходным может проверю какие оптимизации происходят при компиляции
Аноним 27/12/16 Втр 20:09:44  902127
>>902124
Nyet. Та же самая ошибка, только порт указан 80 вместо 443
Аноним 27/12/16 Втр 20:28:49  902134
>>901484
Общее количество файлов 11566. В выборку попадает 7014. Получается в моём случае лучше использовать версию 2, так как в выборку попадет более 60%?

>>901484
>>901525
>явно указываешь IEnumerable<FI>, то лучше использовать метод EnumerateFiles
>Лучше вместо GetFiles() использовать EnumerateFiles() + Where().
Я как понял, EnumerateFiles() это lazy-вариант GetFiles().
Есть ли разница, с чем использовать EnumerateFiles() с FileInfo[] или IEnumerable<FileInfo>?
Какие подводные камни, если использовать EnumerateFiles() с FileInfo[]?

>>901531
>хотя если всего 2 расширения
Не 2. 7 различных типов файлов.
Аноним 27/12/16 Втр 20:44:55  902140
Есть семейство наследников генерика:
public class G<T> where T:Base
{
public T Prop {get;set}
}

Как правильно работать с разными классами этого семейства (т.е. T принимает разные значения) в обобщенном стиле? Я ввёл интерфейс c cвойством базового типа:

public interface IGBase
{
Base PropBase {get;set}
}

и добавил реализацию свойства в исходный генерик:

public base PropBase
{
get { return Prop; }
set { Prop = (T)value; }
}

Всё правильно сделал? Оно работает, но есть ощущение говнокода и нарушения высших принципов проектирования.
Аноним 27/12/16 Втр 21:18:14  902161
Вечер в хату. Понимаю что есть раздел GD. Но стало интересно есть тут unity-шарписты? Которые пояснят примерно на пальцах, в чем именно заключается программач играча в юнити? Что именно используется из языка? Как разделяется клиент-сервер? Сам я яву ковыряю про структуры данных. Интересен минимум знаний нужный чтобы запилить с готовым набором моделей, анимации и прочего. 2д вид сверху мультиплеерный шутер =)
Аноним 27/12/16 Втр 21:23:43  902163
>>902134
> файлов 11566
> в выборку попадет более 60%
не то шобы чуть более, чем половина - это какой-то вменяемый критерий. наоборот, середина - самая жидкая граница, ни туда ни сюда

> EnumerateFiles() это lazy-вариант GetFiles()
ох, если бы
EnumerateFiles() - это:
return FileSystemEnumerableFactory.CreateFileInfoIterator(FullPath, OriginalPath, searchPattern, searchOption);

GetFiles() - это:
IEnumerable<FileInfo> enble = FileSystemEnumerableFactory.CreateFileInfoIterator(FullPath, OriginalPath, searchPattern, searchOption);
List<FileInfo> fileList = new List<FileInfo>(enble);
return fileList.ToArray();

субъективно мое мнение - для 12к файлов использовать несколько EnumerateFiles() с последующей конкатенацией. если расширений будет добавляться, тогда пичаль, надо будет сравнивать бенчмарки

>>902124
> Будет ли он строки выносить, или нет
ну все зависит от использования этих строк. не value/reference type влияет на такие вещи

> Ведь строки это не совсем простой тип. Опять таки все строки в шарпике это константы же
как-то сильно по-школьному. строки - это массив чаров, правильнее говоря - char*. вроде бы как через unsafe они вполне себе изменяемы. дело в том, что нет безопасных прямых средств для работы со строкой как с изменяемым объектом. следовательно,
> для констант свое поведения прописано
тут не канает

>>902140
есть интерфейс, работающий изначально с Base. есть дженерик-класс, работающий от конкретной реализации Base в отдельно взятой ситуации. т.е. если:

public class Impl : Base {}

и ты используешь оба варианта:

((IGBase) someobj).PropBase = new Impl()
и
new G<Impl>().Prop = new Impl(),

то в первом случае потребитель интерфейса нихуя не шарит в том, Impl это либо другая реализация, в то время, как G<> четко знает, что работа производится с нужной реализацией. соответственно, тебе в первом случае нужно будет явно кастить и потенциально обсираться с InvalidCastException.

но в чем вопрос, я не понял. и нахуя делать отдельно интерфейс и абстракцию, причем по-разному
Аноним 27/12/16 Втр 21:29:13  902167
>>902163
не дописал

CreateFileInfoIterator делает соме маджик. на косой взгял на реализацию, там нечто вроде state-machine как для yield блоков. если это действительно так, я бы советовал по возможности юзать этот вариант. а если нет и при первом обращении итератора формируется конечная коллекция, то хуй знает
Аноним 27/12/16 Втр 21:31:24  902170
>>901683
Это я знаю, что можно тривью с чекбоксами сделать. Я не хочу что бы ветка тривью раскрывалась в километровую простыню, так как сабайтомов может быть более 1000. А так бы я отображал в листбоксе, присобачил бы туда виртуализацию и все было бы чики бамбони Пока сделал открытие сабайтемов в отдельном окне с чекедлиствью.
Аноним 27/12/16 Втр 22:01:44  902184
>>902163

То что я назвал Base это иерархия классов модели, там лежат данных и я эти классы не контролирую, не могу ничего поменять. Мне надо к каждому такому классу прикрутить сериализацию, что бы потом гонять их по разным каналам. Идея была в том, что бы создать базовый генерик с параметром класса наследника Base, там будет общая инфраструктура, каждй наследник генерика будет имплементировать сериализацию. Было все хорошо, сами генерики выглядят красиво, но понадобились функции работы с наборами разных наследников этого генерика, так что пришлось выделять интерфейс. Например требуется записать список наследников Base, я по ним получаю из фабрики набор соответсвующих генериков-обёрток приведенных к интерфейсу, но их свой свойство Prop только что из фабрики ещё чистое, его нужно заполнить исходным Base переданным клиентом. Вот тут и возникает необходимость апкаста. Я так понял это неустранимо, в моем решении нравится что апкаст только один и изолирован в одном местею. Но в целом всё кажется каким-то кривым.
бамп отчаяния Аноним 28/12/16 Срд 10:21:18  902381
>>890743
Аноним 28/12/16 Срд 10:32:45  902392
>>902381
Сам напиши, это просто.
Аноним 28/12/16 Срд 10:39:51  902398
2016-12-2814-38[...].png (18Кб, 545x254)
2016-12-2814-39[...].png (22Кб, 484x570)
2016-12-2814-39[...].png (13Кб, 350x425)
Шарпаны, не прикручивается датаконтекст, что может быть неправильно?
Аноним 28/12/16 Срд 10:49:12  902407
>>902398
Если ты хочешь DataContext в XAML'е заводить, то нужно в ресурсах не раньше grid'а объявить объект твоего VM с ключом, и потом самому гриду DataContext присваивать через
...DataContext="{StaticResource myVM}" />
А так он у тебя нихуя не увидит, ты ведь даже не объект какой то привязываешь, а просто название класса.
Аноним 28/12/16 Срд 10:51:32  902408
>>902407
Сук, так вот почему у меня конструктор VM не вызывался. А как правильнее всего сделать?
Аноним 28/12/16 Срд 11:18:09  902446
>>902392
и все-таки https://msdn.microsoft.com/en-us/library/ms230818.aspx эти колбэки использовать?
других стандартных средств профилирования Core я вообще не видел
Аноним 28/12/16 Срд 11:20:20  902450
Так, нашел два рабочих варианта. Может кто пояснить за каждый из них? Второй выглядит намного проще и логичнее.
Аноним 28/12/16 Срд 11:21:02  902452
>>902408
Ну, формально, в WPF предполагается как можно больше кода, связанного с View и ViewModel оставлять в XAML'е. Однако, довольно проблематично объявлять VM в кзамле, если у тебя конструктор с параметрами. я вот ващпе не парюсь и в c# коде объявляю.
одна строчка роли особой не играет.
Аноним 28/12/16 Срд 12:40:12  902489
Поясните за разницу между объектом и инстансом. Смотрел в одном видосике, что для шарпа объект это статические мемберы в хипе, он появляется при создании первого инстанса класса и остается один(а инстансов может быть много). Но посоны из падика пояснили, что объект это всегда и везде инстанс класса. Кому верить, видосику или посонам? На мсдн очень расплывчато написано, на стаковерфлоу есть темы про разницу, но там представлены обе точки зрения.

Видосик 1:02:17 https://www.youtube.com/watch?v=x0udrpe_gZE

Запрос в гугл What is the difference between objects and classes in C#?
Аноним 28/12/16 Срд 12:41:12  902490
>>902489
>between objects and instance
Аноним 28/12/16 Срд 12:49:44  902493
>>902489
как правило, если ты говоришь instance, ты подразумеваешь, что это некий член некого конкретного типа, имеющий место в адресном пространстве (куча/стек/регистры/etc), если ты говоришь object, то это: a) инстанс System.Object, б) некая абстрактная нёх, назначение которой зависит от контекста

> для шарпа объект это статические мемберы в хипе, он появляется при создании первого инстанса класса и остается один(а инстансов может быть много)
судя по всему, описывается тип, а это
> появляется при создании первого инстанса класса
вообще безграмотная хуйня какая-то
при первом обращении к типу вызывается статический конструктор онли, но он не порождает объект и не создает нихуя физического
рантайм узнает о типе после инициализации (компиляции) его JIT-компилятором, но эта компиляция происходит не совсем в "момент первого обращения" или "первого создания"
Аноним 28/12/16 Срд 12:56:32  902495
>>902493
Короче, видос хуйня? Или ты не смотрел, просто написал? Мне бы пруф из какого-то источника именно про С#, если есть.
Аноним 28/12/16 Срд 13:00:08  902496
>>902495
clr via c#
Аноним 28/12/16 Срд 13:01:13  902497
>>902495
я прокомментировал твою цитату, естессно, я не смотрел и ничего по поводу видео не написал и не буду это вот час смотреть ради рецензии

> Мне бы пруф из какого-то источника именно про С#, если есть
это исключительно вопрос внутреннего понимания собеседников
"документация" https://msdn.microsoft.com/en-us/library/ms173110.aspx говорит:
> An object is basically a block of memory that has been allocated and configured according to the blueprint. A program may create many objects of the same class. Objects are also called instances, and they can be stored in either a named variable or in an array or collection.
PEREKOT Perekoter !JLHGEtxGTk 28/12/16 Срд 13:04:31  902501
ПЕРЕКОТ в тред >>902499 (OP)
Аноним 28/12/16 Срд 15:59:13  902627
>>902381
Тут варианты проскакивали http://razbor-poletov.com/2016/11/episode-121.html

Если ты такой отбитый, можешь прослушать 2 часа.
Аноним 28/12/16 Срд 22:07:14  902785
>>887274
ЛОЛ ты угораешь? То что он рассказывает обязан каждый школьник знать не то что программист. Если ты не осилил что в 1 байте 8 бит то о чем вообще говорить, Лысый как раз хороший вариант если ты тупой, но хотите вкатиться

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 503 | 39 | 165
Назад Вверх Каталог Обновить

Топ тредов
Избранное