Pull to refresh
1
0
Антон Шапеткин @ANTPro

Программист

Send message

Ликвидатор велосипедов: часть 1

Reading time3 min
Views15K
imageЭтим постом я начинаю серию статей, которые должны помочь каждому разработчику избавиться от велосипедов в своих последующих и текущих проектах. Усилить код и увеличить функционал. Каждый из нас хочет внести в свою программу нечто, что сделает ее богаче, но зачастую решение либо не находится, либо лень тратить время на поиски… Либо внутри сидит глупая уверенность что это можно реализовать быстро и не менее функционально. В любом случае я хочу чтобы каждый пробежался глазами по спискам библиотек, которые я вам предоставлю на суд, и чтобы у каждого эти библиотеки отложились в памяти. И когда их функционал пригодится в будущем, я очень надеюсь что вы вспомните этот пост и поищите эти библиотеки вместо того чтобы писать все новые и новые велосипеды, полные палок в колесах.
Начну я с оконных менеджеров.
Читать дальше →
Total votes 119: ↑101 and ↓18+83
Comments52

Вызов native кода из C#. Маршалинг структур

Reading time3 min
Views16K

Все чаще перед разработчиками стала вставать задача вызова native методов из managed кода. В большинстве случаев — вызов сделать достаточно просто, но иногда встречаются неприятные случаи, такие как метод, который содержит структуру с динамическим массивом структур, содержащих динамический массив структур.
Опытом такого маршалинга хочу поделиться.
Total votes 40: ↑31 and ↓9+22
Comments13

Создание документации в .NET

Reading time12 min
Views56K
Open notebookКачественная документация – неотъемлемая часть успешного программного продукта. Создание полного и понятного описания всех функций и возможностей программы и программного компонента требует немало сил и терпения. В данной статье я рассмотрю некоторые практические аспекты создания документации для .NET компонентов.

Предположим, что у нас готова или почти готова некоторая .NET библиотека для разработчиков (они же конечные пользователи). API библиотеки безупречен, количество багов впечатляюще мало, да и вообще это не библиотека, а просто кладезь совершенного кода. Дело за малым – объяснить пользователям, как работать с этим замечательным продуктом.

Есть разные подходы к написанию документации. Некоторые команды предпочитают начинать создание документации в момент начала создания продукта. Другие откладывают написание мануалов на окончание работ. В некоторых командах документацию пишут специальные люди, которые ходят от разработчика к разработчику и от менеджера к менеджеру, аккумулируя знания о продукте. Во многих небольших командах таких специальных людей нет, а потому документацию часто пишет разработчик или разработчики. Кто-то использует сторонние средства вроде Help & Manual, в которых, как в заправском текстовом редакторе, можно создавать очень сложную верстку и на выходе получать документацию в многообразии форматов. Многие используют другой подход, широко пропагандируемый в последнее время – написание документации прямо в коде программы/библиотеки.

Читать дальше →
Total votes 95: ↑82 and ↓13+69
Comments29

Как надо и как не стоит автоматизировать торговлю

Reading time11 min
Views17K
Сердце кровью обливается, когда читаю статью и уж тем более — комментарии к ней. Одно упоминание о магнатах среды 1С в качестве решения для автоматизации деятельности аптечной сети чего стоит. Уважаемые хабратоварищи, 1С Управление Торговлей В ПРИНЦИПЕ не приспособлена для торговли в фармбизнесе! А заслуживающие внимания потуги любимой дочки 1С на поприще адаптации Розницы все так же не решают до конца главных проблем этой системы. А при этом условии это решение не имеет права стоить таких денег, за которые оно продается.
Мое мнение — это всего лишь мнение, накопленное в процессе многолетней работы в среде фармацевтических торговых предприятий, как розничных, так и оптовых. Но раз уж я упомянул ту статью, то знакомому с ней станет понятно, что речь пойдет все-таки о розничной части.
Итак, попробую пояснить, почему обливается кровью мое сердце. В некотором смысле этот пост задумывается как набор рекомендаций автору статьи, пока не потрачены впустую совершенно неоправданные деньги.
Кому интересно — добро пожаловать под кат. Предупреждаю: ни одной картинки и много букв.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments32

Профилирование приложений в Visual Studio 2010

Reading time6 min
Views47K
Сегодня мы будем замерять производительность нашего приложения с помощью Visual Studio Profiling Tool.

Visual Studio Profiling Tool позволяет разработчикам измерять, оценивать производительность приложения и кода. Эти инструменты полностью встроены в IDE, чтобы предоставить разработчику беспрерывный контроль.
В этом руководстве мы по шагам профилируем приложение PeopleTrax используя Sampling и Instrumentation методы профилирования, чтобы выявить проблемы в производительности приложения.

image

Много картинок.
Читать дальше →
Total votes 63: ↑48 and ↓15+33
Comments24

PropertyGrid в Visual Studio: отображение полей, связанных с коллекциями объектов

Reading time21 min
Views18K
PropertyGrid позволяет отображать разнообразные структуры классов в удобном для редактирования виде и для этого достаточно связать с ним объект вашего класса. Однако, не все конструкции можно сразу отобразить без написания дополнительного кода. В этой статье я хочу рассказать о своем опыте использования PropertyGrid в контексте:
1. Отображение выпадающего списка записей, который собой представляет коллекцию объектов.

image

2. Отображение поля, связанного с коллекцией объектов, вызывающего редактор коллекции.

image

В качестве примера я взял задачу для реализации управления информацией о сотруднике, которую реализует класс Employee.Класс содержит два свойства. Первое — свойство типа JobTitle (должность сотрудника для выпадающего списка), второе – свойство типа JobTitleCollection (коллекция должностей сотрудников для редактора коллекции). Задачей является отображение объекта класса Employee в PropertyGrid так, как показано на двух рисунках в начале статьи, а именно:1. Отобразить поле, в котором пользователь сможет выбрать одну из должностей сотрудника с помощью выпадающего списка как в элементе ComboBox.2. Отобразить поле, которое позволит вызвать редактор связанной коллекции должностей, а после завершения изменения коллекции отобразить должности в PropertyGrid в виде списка.
Рассмотрим подробнее.
Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments7

Слабые события в C#

Reading time11 min
Views79K

От переводчика


Недавно в проекте, где я работаю, мы столкнулись с проблемой утечки памяти. Прочитав множество статей — от рассказов по управлению памятью в .NET до практических рекомендаций по правильному освобождению ресурсов, я в том числе наткнулся на статью, в которой рассказывается, как корректно использовать события. Ее перевод я и хочу вам представить.
Это топик из песочницы, с которым я попал сюда на Хабр.

Читать дальше →
Total votes 93: ↑76 and ↓17+59
Comments18

Усилитель за 500 рублей. Сделай сам

Reading time2 min
Views102K
Давно это было, решил написать только сейчас.

Были в наличии колонки S-30B.
Захотел сделать домашнюю акустику к компу. Не хватало усилителя.

Пошел по магазинам. Нижняя цена усилителей/ресиверов небольшой мощности (30 ватт колонки в пике) около 6000 руб.
Решил сделать сам.

Начнем.
Читать дальше →
Total votes 117: ↑99 and ↓18+81
Comments92
12 ...
19

Information

Rating
Does not participate
Location
Сыктывкар, Коми, Россия
Date of birth
Registered
Activity

Specialization

Software Developer, Backend Developer
Middle
C#
.NET
Docker
CI/CD