Всем привет. Хотелось бы поделиться примером использования StructLayout для чего-то более интересного, чем примеры с байтами, интами и прочими цифрами, в которых все происходит чуть более, чем ожидаемо.
Читать полностью »
Рубрика «C#» - 53
Не уважаю инкапсуляцию, или использование таблицы методов другого типа для быстрого вызова приватных методов
2018-09-18 в 12:09, admin, рубрики: .net, C#, inside, memory, method table, structlayout, высокая производительность, ненормальное программирование, оопJob system и поиск пути
2018-09-17 в 18:41, admin, рубрики: 2d games, C#, job system, pathfinding, unity3d, разработка игрКарта
В предыдущей статье я разобрал, что из себя представляет новая система задач Job system, как она работает, как создавать задачи, наполнять их данными и выполнять многопоточные вычисления и лишь в двух словах объяснил где можно использовать эту систему. В этой статье я попробую разобрать конкретный пример того где можно использовать эту систему, чтобы получить большую производительность.
Читать полностью »
Struct и readonly: как избежать падения производительности
2018-09-17 в 7:00, admin, рубрики: .net, C#, c++, dotnet, microsoft, Readonly, struct, Блог компании Microsoft, ПрограммированиеИспользование типа Struct и модификатора readonly иногда может порождать падения производительности. Сегодня мы расскажем о том, как этого избегать, используя один Open Source анализатор кода — ErrorProne.NET.
IndieVisible — онлайн-сообщество инди-разработчиков, построенное на платформе с открытым исходным кодом
2018-09-16 в 8:49, admin, рубрики: ASP, C#, геймдев, геймджем, игрофикация, инди, инди-разработка, Разработка веб-сайтов, разработка игр, система голосования, сообщество, Социальные сети и сообщества
Не так давно в тематической группе инди-разработчиков игр я встретил интересное сообщение:
Ладно, ребята, у меня есть идея… И нет, Я НЕ ИДЕЯ-ПАРЕНЬ… Большинство из вас используют разный набор информационных ресурсов, таких как Ludum Dare, Gamedev.net, Indie Game Developers (и другие группы Facebook), Unity Connect, IndieDb, Itch.io, Game Jolt и т.д. Что, если бы мы могли объединиться, чтобы создать централизованное место, где вы могли бы остаться, чтобы обмениваться информацией о геймдеве или быть перенаправленным на внешний ресурс, упомянутый выше?
НЕТ, я не хочу по типу 50-на-50, а вы делаете всю работу. Я уже делаю это! Совершенно точно! С вами или без вас, ребята. Я мог бы лишь использовать некоторую помощь сообщества разработчиков игр.
Так в чем же суть IndieVisible?
Модификация ajax js для ajax Asp .net mvc
2018-09-15 в 11:47, admin, рубрики: .net, ajax, ASP, asp.net mvc, C#, javascriptМногие начинающие программисты C# ASP .NET MVC (далее mvc) сталкиваются с задачей отправки данных с помощью Ajax. Вот только на практике эта задача оказывается не такой легкой.
На своей работе я пытаюсь придерживаться определённых принципов разработки программного обеспечения. Одним из них является минимизация написания кода и создание универсальный классов и функций. Именно этот принцип предполагал использование jquery.unobtrusive-ajax.js и класс Ajax для mvc.
Читать полностью »
UniSharping: конвертирование кода C# в Java и Python
2018-09-12 в 12:56, admin, рубрики: C#, java, python, конвертер C# в Java, конвертер C# в Python, Промышленное программированиеВведение
С 70-х годов развивается Simplified English, цель которого — определение подмножества языка, понятного широкому кругу неносителей языка. Рекомендуется, например, для технической документации. Автоматические переводчики на таком подмножестве будут работать заведомо корректнее, в идеале генерируя текст, не требующий ручной корректуры.
Если применить этот подход к C# для задачи автоматической конвертации кода в другие языки программирования, то можно выделить подмножество конструкций языка, системных библиотек и технологий, которые потенциально могут транслироваться в широкий круг других языков. Причём конвертации не однократной (миграция), а постоянной для расширения интеграционных возможностей проекта на C# — чтобы в любой момент можно было получить рабочий код на другом языке без необходимости какой-либо его правки.
Позвольте представить: UniSharping
Ограничение C#.NET для решения этой задачи мы назвали U# (Universal Sharp), а процесс конвертации и его инструмент — UniSharping. Исполняемые модули, настройки и документация выложены на GitHub, система бесплатна для некоммерческого использования (Non-Commercial Freeware).
Распараллеливание задач с зависимостями — пример на .NET
2018-09-07 в 8:02, admin, рубрики: .net, C#, F#, Блог компании Издательский дом «Питер», книги, многопоточное программирование, параллельное программирование, Профессиональная литератураЗдравствуйте, коллеги!
На этой неделе мы отдали в перевод амбициозную по своей сложности книгу "Concurrency in .NET" издательства Manning:
Автор любезно выложил на сайте Medium отрывок из 13-й главы, который мы и предлагаем оценить задолго до премьеры.
Приятного чтения!
Читать полностью »
«Высокий уровень самодисциплины». Джеффри Рихтер о том, как кодить, писать книги и создавать свои компании
2018-09-04 в 13:34, admin, рубрики: .net, C#, c++, dotnext, dotnext2018moscow, javascript, Блог компании JUG.ru GroupСегодня в нашей виртуальной студии один из самых известных дотнетчиков — Джеффри Рихтер.
В данный момент он — Partner Software Architect в Microsoft, работающий по направлению Distributed Cloud Apps & Storage. Иначе говоря, человек, который знает об Azure Storage всё.
F.A.Q. |
---|
Слишком много текста. О чём это всё?
Чтобы вам было веселей читать, для этой статьи мы придумали более интересную вёрстку. Слева будут говорящие головы, а справа — текст. Если вам уныло листать до интересующей части, то в оглавлении есть анкерные ссылки. В ролях:
Евгений phillennium Трифонов (нетехнические вопросы)
Олег olegchir Чирухин (технические вопросы)
Почему эта статья попала в хаб JavaScript?
Только для тех, кому интересно мнение архитектора Azure относительно JS и его позиция в холиваре о типобезопасности. Этот холивар перетекает у нас из интервью в интервью, и конца ему не видно.
Почему эта статья попала в хаб С++?
Изначально Рихтер писал книги про C++. Только для тех, кому интересно мнение архитектора Azure относительно будущего и применимости C++
|
Джефф стал известен еще в начале 90-х, когда написал книгу о том, как программировать Windows 3.1. Его книга «Programming Applications for Microsoft Windows» стала классикой, позже выпускалась как «Windows via C/C++» и выдержала несколько изданий.
С появлением .NET он написал «CLR via C#» — тоже получилась классика, тоже несколько изданий. В то время он был одним из основателей компании Wintellect и, формально не будучи частью Microsoft, оказался более свободен в оценках. Чем и заработал репутацию крупного независимого эксперта по Windows. Это человек-легенда уровня Чарльза Петцольда и Дона Бокса.
Подводный «GPS» на двух приемопередатчиках
2018-09-03 в 3:03, admin, рубрики: C#, Nelder-Mead, NMEA, Алгоритмы, Беспроводные технологии, будущее здесь, гаджеты, гидроакустика, гидроакустический модем, оптимизация, подводная навигация, позиционирование, Разработка систем связиПривет дорогой хабрачитатель!
Нашему подводному GPS на днях исполнилось три года. За это время система стала серийной, мы вывели на рынок еще несколько систем и устройств, но все это время меня не покидала навязчивая идея принести гидроакустику в широкие массы, сделать ее доступной простым любителям, моделистам, представителям такого направления, как городские сумасшедшие citizen science и прочим интересующимся.
И сегодня, в честь нашего скромного юбилея, я подробно и на пальцах объясню, как определять географическое положение подводного объекта при помощи всего двух приемопередатчиков: с исходным кодом, веселыми картинками, графиками и результатами экспериментов.
Всех заинтересованных прошу к нам на байдарку, в чистые и теплые воды Волгоградского Водохранилища!
Читать полностью »
Проблематика совы и глобуса: подключение двух сборок с идентичными пространствами имен и названиями классов
2018-08-30 в 22:26, admin, рубрики: .net, .net core, C#, как интегрировать глобус в сову, ненормальное программирование
Сегодня вечером, с gelas завели разговор о том, как работают пакетные менеджеры на разных платформах. В ходе беседы, дошли до обсуждения ситуации, когда в проект на .NET Core необходимо подключить две библиотеки, которые содержат классы с одинаковым названием в одинаковых пространствах имен. Поскольку .NET Core я занимаюсь достаточно плотно, я захотел проверить, как можно решить подобную проблему. Что из этого вышло описано дальше