Ответы пользователя по тегу C#
  • Где будет располагаться структура?

    ayazer
    @ayazer
    Sr. Software Engineer
    если коротко то маленькая - в стеке, а большая - в куче. а new как-раз и инициализирует выделение памяти.

    если сложно - "а хрен его знает, уж очень много от чего зависит" (с) кто-то с разработчиков оптимизатора
    Ответ написан
  • Как поправить программу - змейка?

    ayazer
    @ayazer
    Sr. Software Engineer
    1) статический метод не может изменять локальную переменную. переменная тогда тоже должна быть статической
    2)
    dir = LEFT;
    ->
    dir = eDirection .LEFT;
    Ответ написан
  • Как транслировать потокое видео с экрана компьютера на веб-страницу?

    ayazer
    @ayazer
    Sr. Software Engineer
    вы переизобрели MJPEG. он используется во всяких системах видеонаблюдения т.к. из-за минимального кол-ва сжатия дает хорошие стопкадры. главный недостаток - по той-же причине потребляет огромное кол-во трафика (реально огромное, видео на 5-10 минут с фпс 20+ в этом формате будет занимать пару гб). Выше в комментариях советовали использвать вебртс. Так вот, на всякий случай - он тут нахрен не нужен. Но обратить внимание на H.264 который там используется можно. Что видео в mjpeg, что h.264 можно просто и без лишних телодвижений открыть в браузере как стрим. А нативная поддержка видеокодека в браузере будет работать быстрее чем рендер кадров джаваскриптом.
    Ответ написан
    4 комментария
  • Какие дипломы/сертификаты по C#, VisualStudio, ASP.MVC, web - можно получить?

    ayazer
    @ayazer
    Sr. Software Engineer
    MCSA: Web Applications (70-480/70-483 + 70-486)
    MCSD: App Builder = MCSA + 70-532/70-535/70-487/еще парочка менее интересных

    статус MCP получается навсегда, сертификации MCSD надо подтверждать раз в 3 (или 4?) года. но подтверждать проще, там надо будет только 1 сертификацию проходить (по крайней мере так было года 3-4 назад).

    сертификации на самом деле достаточно простые (хотя бывают достаточно спорные вопросы), но лучше дождатся акции когда в 80$ входит еще 1 попытка перездачи.

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

    все остальные сертификации - либо лютый треш на уровне "вспомните какие параметры в каком порядке надо передать в <название библиотеки>" / найдите пропущенную запятую в листинге в 50 строчек без какой-либо подсветки, либо проходятся не особо отвлекаясь от просмотра ютуба.
    Ответ написан
    Комментировать
  • Можно ли начинать разработку проекта на ASP.NET Core?

    ayazer
    @ayazer
    Sr. Software Engineer
    В принципе использовать можно, надо надо быть готовым что иногда вылазят проблемы которых ты не ожидал бы работая с .нет фреймворком. Для того-же серверлесса на амазоновских лямбдах можно пока использовать только .нет кор 1.1, а он под линуксом в некоторых ситуациях дико течет. в 2.0 проблему пофиксили, но официальный ответ амазоновского суппорта по поводу миграции на 2.0 - "в роад мапе нету, ничем не можем пока помочь". Причем докер контейнера с окружением который крутится в амазоновской лямбде нету только под .нет кор, для остальных языков можно спокойно его скачать и потестировать у себя локально. В итоге ждем ре:инвент в декабре, есть надежда что таки будет анонс. Опять таки, анализ дампов .нет кор приложения которое работает на линуксе - gdb/lldb в зубы и вперед. Никаких привычных инструментов.
    Ответ написан
    Комментировать
  • Наследование об базового класса Object в c#?

    ayazer
    @ayazer
    Sr. Software Engineer
    если мы ничего явно не указываем - мы наследуем базовый Object. Если мы указываем какой-то класс - мы наследуем именно его (а он уже в свою очередь наследует базовый Object)
    Ответ написан
  • Поширить переменную по классам?

    ayazer
    @ayazer
    Sr. Software Engineer
    для этого есть Dependency Injections. Раз тег c#, то можно посмотреть на какой-то Ninject/autofac

    https://autofac.org/
    www.ninject.org
    Ответ написан
    1 комментарий
  • Как сделать выборку, (многие ко многим)?

    ayazer
    @ayazer
    Sr. Software Engineer
    не нужно тут выполнять 2 отдельных запроса, все можно достать одним же

    var products = from p in context.Products 
                                   join o in context.Orders on p.Order_Id equals o.Id
                                   where o.Id == <НОМЕР ЗАКАЗА>
                                   select p;


    АПД:
    LINQ запросы ленивые. Этот код просто построит запрос, но не будет выполнять его до момента пока на самом деле не понадобяться данные. Если нужно их передать в другой контекст - можно сразу сделать что-то типа .AsEnumerable() чтоб загрузить все данные в память.
    Ответ написан
    Комментировать
  • .NET неоправдано сжирает память?

    ayazer
    @ayazer
    Sr. Software Engineer
    1) алгоритмы сжатия изпользуют доп. память для генерации словарей. Размер словаря будет зависеть как от алгоритма сжатия, так и от данных которые надо сжать.
    2) для того чтоб освободить память от кучи хлама - можно сделать GC.Collect для инициализации сборщика мусора. В данном случае прийдеться делать GC.Collect(2), что достаточно дорогая операция.

    кроме того, следует помнить про нюансы сборки мусора для LOH. В отличии от SOH, для LOH не будет проводиться дефрагментация данных в памяти, а CLR будет просто пытаться переиспользовать освободившиеся куски. Потому вполне возможна ситуация когда память в куче вроде как есть, но CLR продолжает ее выделять для новых обьектов.
    Ответ написан