Есть компьютер с чистой копией Windows, без доступа в интернет и без каких‑либо установленных средств разработки. Только одна чистая пользовательская «венда». Не поверите, но даже в таких спартанских условиях возможно написать и запустить полноценную программу. И сейчас я расскажу как.
Рубрика «c#.net»
Сказка про Branch prediction
2023-06-13 в 5:01, admin, рубрики: .net, .net core, C#, c#.net, optimization, performance, performance optimization, Блог компании Контур, высокая производительность, ПрограммированиеВ предыдущих сериях
Микрооптимизации:
-
Сказка про Method as Parameter #dotnet #methods #gc
-
Инструменты анализа эффективности работы приложения. PerfView #performance_analysis #trace #perfview
-
Пародия на замыкания #dotnet #methods #gc
-
yield return #dotnet #il-code
Про тредпул:
-
ThreadPool.Intro #dotnet #threadpool
Reciprocal throughput
2023-05-30 в 6:11, admin, рубрики: .net, C#, c#.net, optimization, performance, performance optimization, Блог компании Контур, высокая производительность, ПрограммированиеВ предыдущих сериях
ThreadPool. async/await #dotnet #threadpool #il_code
yield return #dotnet #il-code
Пародия на замыкания #dotnet #methods #gc
ThreadPool.Intro #dotnet #threadpool
Инструменты анализа эффективности работы приложения. PerfView #performance_analysis #trace #perfview
Сказка про Method as Parameter #dotnet #methods #gc
yield return
2023-05-03 в 10:51, admin, рубрики: .net, .net core, C#, c#.net, performance, performance optimization, Блог компании Контур, высокая производительность, ПрограммированиеВ предыдущих сериях
Пародия на замыкания #dotnet #methods #gc
ThreadPool.Intro #dotnet #threadpool
Инструменты анализа эффективности работы приложения. PerfView #performance_analysis #trace #perfview
Сказка про Method as Parameter #dotnet #methods #gc
Сказка про Guid.NewGuid() #os_specific #dotnet #microoptimization
А вы никогда не задумывались, что yield return
Читать полностью »
Диапазоны (Ranges) в C# 8
2022-02-12 в 20:40, admin, рубрики: .net, .net core, C#, c#.net, c#8, range, Visual StudioПусть в нашей программе есть массив целых чисел numbers
:
static void Main()
{
var numbers = new int[] { 5, 1, 4, 2, 3, 7 };
}
Перед нами стоит задача: получить новый массив, вырезав из массива numbers
элементы от индекса 2
до индекса 4
включительно, то есть должен получится массив [4, 2, 3]
.
Решение 1
Самое первое и простое решение, которое приходит в голову — это решение в лоб:
-
Создадим результирующий массив целых чисел
result
размером3
:static void Main() { var numbers = new int[] { 5, 1, 4, 2, 3, 7 }; var result = new int[3]; }
-
Пройдемся циклом по нужным индексам массива
numbers
Читать полностью »
Как LINQ, только быстрый и без аллокаций
2022-01-30 в 10:03, admin, рубрики: .net, C#, c#.net, generics, linq, performance, производительностьКому не нравится LINQ в C#? Встроенная и уже достаточно старая фича языка C# и рантайма .NET.
Но можем ли мы сделать более эффективную версию этой фичи?
TL;DR (спойлер)
Можем сделать более эффективную, но намного менее универсальную. Github проекта.
Читать полностью »
Конвертация xls в xlsx и xml на C#
2020-03-07 в 23:47, admin, рубрики: .net, C#, c#.net, Excel, interop, npoi, office, xls, xlsx, Разработка для Office 365В этой статье я постараюсь рассказать об одном из возможных путей конвертации документов формата xls в xml.
Непосредственно моя задача выглядела примерно так:
Дано:
- 1-2 дня времени на поиск и реализацию решения
- Найденное решение должно быть на столько бесплатным, на сколько это возможно
- Известна примерная структура, размер и содержание файла, которые должны быть обработаны, что снимает необходимость читать графики, диаграммы и иные медианные из документа.
- Использовать Interop, равно как и иные библиотеки, которые требуют установки Office нельзя, так как это создает лишнюю нагрузку на сервер и требует дополнительной установки офисного пакета.Читать полностью »
Конвертация rtf в xml на С#
2020-03-04 в 20:13, admin, рубрики: .net, c#.net, html, rtf, XML, конвертация, Разработка для Office 365В продолжении серии постов о конвертации текстовых файлов в xml с использованием С# предлагаю перейти к конвертации файлов формата rtf.
Казалось бы, данный формат довольно древний, причем весьма распространенный и, если для него и нет какой-то библиотеки для преобразования всех данных в формат xml путем вызова одного метода, то уж какое-то решение от Microsoft точно должно быть, хотя бы аналогичное OpenXML. Однако, если бы было оно так, то данная статья не была бы написана.
Конвертация текстовых документов в xml на С#
2020-03-04 в 16:34, admin, рубрики: .net, C#, c#.net, docx, openxml, openxml sdk, xlsx, XML, конвертация, текстНедавно мне пришлось столкнуться с необходимостью достать текст из офисных документов (docx, xlsx, rtf, doc, xls, odt и ods). Задача осложнялась требованием представить текст в формате xml без мусора с максимально удобной для дальнейшего парсинга структурой.
Решение использовать Interop сразу отпало по причине его громоздкости, во многом избыточности, а также необходимости устанавливать на сервер MS Office. В результате, решение было найдено и воплощено на внутреннем проекте. Однако, поиск оказался настолько сложен и не тривиален в силу отсутствия каких-либо общедоступных мануалов, что мной было принято решение написать в свободное от работы время библиотеку, которая решала бы указанную задачу, а также создать написать что-то вроде инструкции, чтобы разработчики прочитав ее смогли, хотя бы поверхностно, разобраться в вопросе.
Прежде, чем перейти к описанию найденного решения, предлагаю ознакомиться с некоторыми выводами, которые были сделаны в результате моих изысканий:
- Для платформы .Net не существует какого-либо готового решения для работы со всеми перечисленными форматами, что заставит нас местами кастылизовывать наш солюшн.
- Не пытайтесь в сети найти хороший мануал по работе с Microsoft OpenXML: чтобы разобраться с этой библиотекой придется изрядно покрасноглазить, покурить StackOverflow и поиграться с отладчиком.
- Да, мне все таки, удалось приручить дракона.
Сразу оговорюсь, что в настоящий момент библиотека еще не готова, но она активно пишется (на столько, на сколько это позволяет свободное время). Предполагается, что будут написаны отдельные посты для каждого формата и параллельно, вместе с их публикацией, будет обновляться репозиторий на гитхабе, откуда можно будет получить исходники.
Работа с xlsx и docx
«Я слежу за тобой» или как из CADa сделать SCADA (MultiCAD.NET API)
2017-12-03 в 19:22, admin, рубрики: .net, api, C#, c#.net, CAD/CAM, nanoCAD, scada, новичкам, сапрСразу честно признаюсь, у этой статьи просто — «броский многообещающий» заголовок :)
Но на самом деле, на этой неделе у меня было мало свободного времени и поэтому в этот раз заметка будет короткой и совсем уж концептуальной. Поэтому до настоящей SCADA естественно дело не дойдет.
В прошлой статье мы разбирались как сделать свой пользовательский объект в отечественной САПР NanoCAD с помощью MultiCAD.NET API (как для платной, так и для бесплатной версии программы), в этот раз мы воспользуемся ранее разработанным объектом (дверью) и научим его отслеживать состояние текстового файла.
Зачем нам это надо? Милости прошу под кат.
Читать полностью »