• Как уничтожаются объекты значимых типов?

    Nipheris
    @Nipheris Куратор тега C#
    1. В теории реализация не обязана использовать стек для хранения локальных объектов value-типов (см. https://blogs.msdn.microsoft.com/ericlippert/2009/... ).
    2. Тем не менее, в текущих реализациях используется именно стек, поэтому всё как и в остальных языках: https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B5%D... .
    3. Помните, что значения value-типов иногда (не всегда) хранятся на стеке. Все значения value-типов, являющиеся частью объекта ссылочного типа (например, int-поле в классе или элементы массива double) рождаются и умирают вместе с этим объектом.

    Итого:
    • время жизни локальных объектов value-типов связывается с фреймом стека;
    • время жизни объектов value-типов, находящихся в составе объектов reference-типов, связывается с временем жизни объемлющего объекта;

    Более экзотические ситуации рассматривать не будем. И вообще, как говорит Липперт (см. ссылку), лучше не думать в терминах стека, т.к. это деталь реализации. Лучше говорить о времени жизни относительно вызываемых функций и относительно других объектов.
    Ответ написан
    1 комментарий
  • Нужны ли разработчики .Net?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 - просто что то делайте, это лучше чем ни чего. если делаете за деньги - вы уже растете. но в любом случае, постоянно что то делайте )).. и лучше разное ))

    2 - смотрите статистику вакансий по языка/платформам. .Net разработчики нужны точно. мало того, конкурирует обычно только java. но вроде, недавно, на хабре, пролетал обзор, что в США, спрос на .Net/C# уже начал перевешивать
    Ответ написан
    Комментировать
  • Нужны ли разработчики .Net?

    GavriKos
    @GavriKos
    Дабы что-то представлять что-то из себя, придя на собеседование.

    Открываете вакансии и читаете, что требуется от кандидата. Все просто.
    Ответ написан
    Комментировать
  • Верно ли понимаю TPL и асинхронность?

    Nipheris
    @Nipheris Куратор тега C#
    1. Да, задача может исполниться где угодно. Более того, вы не поверите, но некоторые таски вообще могут нигде не исполняться, т.к. исполнять нечего (см. п. 5). Таск - это прежде всего абстракция значения, которое будет получено в будущем, и для получения которого возможно нужно что-то посчитать или просто подождать. См. futures and promises.
    2. Ну не обязательно в новом потоке, может быть выполнится и в существующем потоке если в пуле потоков есть свободный.
    3. Асинхронные операции ввода-вывода называются так потому, что выполняются через асинхронное API операционной системы. Нет никакого смысла использовать асинхронную операцию, но делать это в отдельном потоке созданном специально для этой операции. Потоки нужны прежде всего для того, чтобы эффективно нагружать исполнителей, т.е. процессоры (в том числе разные их ядра).
    4. Можно в новом, можно в потоке из пула. Так или иначе, если операция предполагает именно расчёты, а не ожидание ввода/вывода, то безусловно это тот случай, когда имеет смысл переложить нагрузку на другой поток.
    5. Если представлять таск как одну из сторон "трубы", по которой прилетит результат асинхронной операции, то Task - это принимающая сторона, а TaskCompletiotionSource - передающая (производящая результат) сторона. Когда вы создаёте таск из кода который нужно выполнить, этот код становится передающей стороной. Но Task абстрагирует любую асинхронную операцию, не только ту где нужно долго что-то считать. Возможно вам нужно дождаться одного байтика из сети, и операция будет считаться завершенной. Во всех тех случаях, когда вы хотите самостоятельно "произвести" результат для какого-то таска (а сам таск отдать "наружу" другому коду, например вернуть из функции), вы можете использовать TaskCompletionSource.
    (Кстати, в C++ принимающая сторона называется future, а передающая (производящая) - promise. В JS принимающая сторона называется Promise, а передатчиком является функтор).
    Ответ написан
    1 комментарий
  • Как развиваться .NET разработчику?

    искать интересные проекты на фрилансе и в opensource
    Ответ написан
    Комментировать
  • Почему в большинстве университетов C# стал заменять Java?

    Sanes
    @Sanes
    Потому что Microsoft.
    Ответ написан
    Комментировать
  • Почему в большинстве университетов C# стал заменять Java?

    arxont
    @arxont
    C# программист
    Чем лобби Microsoft хуже, чем лобби Oracle? А по факту сейчас C# более развитый язык с гораздо большим количеством синтаксического сахара и проще "во вхождении".
    Ответ написан
    23 комментария
  • Почему в большинстве университетов C# стал заменять Java?

    longclaps
    @longclaps
    Как действующий профессор многих университетов отвечаю:
    таковы мои личные предпочтения.
    зы и что за дурацкое противопоставление: разумный выбор vs Microsoft?
    Ответ написан
    1 комментарий
  • Насколько бесплатна разработка на ASP.NET для новичка?

    @kttotto
    пофиг на чем писать
    Это абсолютно бесплатный фреймворк. Можете на нем хоть простой, хоть средней, хоть большой руки делать сайты и платить за него не нужно. Если говорить о стеке, то не обязательно использовать mssql, можно и mysql, и postgres и т.д., он отлично работает с разными бд. Тоже самое касается и IIS, есть селфхост, есть кестрел.
    Ответ написан
    2 комментария
  • Какой есть эффективный и разумный способ парсинга JSON?

    MrMureno
    @MrMureno
    VR for all
    у себя обычно использовали https://lbv.github.io/litjson/
    не сказать что самый быстрый и эффективный. но достаточно хорош, и у нас в Unity3D проектах важно что под iOS с её AOT компиляцией отлично все прокатывало))

    ах да и конечно же всегда есть еще
    https://www.newtonsoft.com/json
    если нужно поновее и чтоб умело прям почти все что угодно в json переварить) да и вроде как один из самых популярных.
    Ответ написан
    Комментировать
  • C# 5.0 и 7.0 большая ли разница?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Без разницы, синтаксический сахар освоите позже.
    Ответ написан
    Комментировать
  • Кодировка на выходе. Как наладить?

    Kubatai
    @Kubatai
    Техник-программист
    Возможно вам поможет метод HttpUtility.HtmlDecode из пространства имён System.Web.
    Ответ написан
    2 комментария
  • Что такое enterprise приложения?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Enterprise - значит корпоративное, приложение используемое крупными компаниями для зарабатывания денег. У таких приложений есть три основных качества:
    1. Большая и сложная кодовая база;
    2. Высокие требования по надёжности и производительности;
    3. Длительный срок эксплуатации.

    Поэтому разрабатываться они должны на языках со строгой статической типизацией. Приложение на динамическом PHP в несколько миллионов строк кода, у которого на протяжении десяти лет сменится сотня разработчиков, будет иметь в себе такое количество трудноуловимых багов, что его поддержка будет обходиться дороже, чем будет приносить его эксплуатация.
    Ответ написан
    3 комментария
  • Почему говорят, что C# не подходит для WEB?

    Griboks
    @Griboks Куратор тега C#
    Отлично подходит, если руки из того места растут.
    Ответ написан
    Комментировать
  • Можно ли выделить наиболее оптимальный язык для работы с движком Unity?

    GavriKos
    @GavriKos Куратор тега Unity
    Гуглите прям по тостеру.
    Совсем в кратце - джаваскрипта в юнити нет, есть на его основе диалект. C# лучше и рекомендован самими юнитехами.
    Ответ написан
    Комментировать
  • Можно ли выделить наиболее оптимальный язык для работы с движком Unity?

    @S0HardCore
    C#. Больше документации, уроков и возможностей.
    Ответ написан
    Комментировать
  • Почему не подгружается спрайт мотодом Resources.Load?

    Читайте хоть немного документации...
    Спрайт должен лежать в папке "Resources", т.е. полный путь до него должен быть "Assets/Resources/back.png" тогда он загрузится.
    Ответ написан
    Комментировать
  • Насколько пригоден ASP.NET Core для стартового проекта?

    @MherArsh
    Привет!
    Я уже года полтора сижу с .NET на линуксе )) с начала был MONO с HyperFastGCI но когда вышел .Net Core наступило счастье. Стабильность и производительность норм, единственное что сейчас неудобно это то что надо билдить проект для каждой платформы, но это очень просто (во второй версии которая привю этот вопрос решили, теперь одна сборака на все) , проект запускается как самостоятельный сервис которой хостируется по Nginx, других вариантов не советую использовать, Nginx крутая штука! Единственное что сейчас отсутствует в .Net Core это oauth2, и во второй версии ее нет, есть библиотека под виндоу но о кроссплатформенности в этом случаи можно забыть. Я сам в читаном виде .Net Core не использую, до нее были разные интерфейсы для контролеров АПИ и сайта, сейчас все объединили, но много подводных камней, на рынке есть очень хорошие решения, я сам использую ServiceStack, есть еще Nancy, настоятельно рекомендую посмотреть на первый вариант, достаточно зрелый продукт который с коробки заводится под .net и имеет много готовых решений.
    Ответ написан
    Комментировать
  • Насколько пригоден ASP.NET Core для стартового проекта?

    @kttotto
    пофиг на чем писать
    На днях сдаем достаточно крупный проект на asp.net core, который не только на тестах, но и уже в бою отработал. Причем это не первый сданный проект на core. Все замечательно работает. Каких то особых проблем, что это именно core, не возникало.
    Ответ написан
    3 комментария
  • Насколько пригоден ASP.NET Core для стартового проекта?

    @denismaster
    Добрый день! Поднимали уже два проекта на asp.net core, остались довольны. В целом технология готова, многое что еще не допилили - допиливают активно, работает стабильно.
    По вашим вопросам:
    • Реализация BCL в целом почти полная, все что нужно в 90% случаев уже давно есть, обработка данных, криптография и рефлексия поддерживается.
    • Возможно запустить asp.net core поверх полного дотнета, можно и так. Проблем в целом нет, без каких либо проблем тот же код, если не использует что-то специфичное, запускается и на других платформах.
    • PInvoke не применяли, но в интернете довольно много успешных историй его применения, в частности, фреймворк Avalonia его успешно применяет вроде как.
    • Kestrel отлично справляется в связке с nginx, да и сам по себе годен. Работает быстро.

    Как по мне, будущее за .NET Core. Использовать его уже реально.
    Ответ написан
    1 комментарий