Как свернуть приложение в трей панели задач в WinForms

Иконка Трей

Панель задач Windows — очень удобная и полезная особенность этой системы. Еще лучше ее делает трей — место куда сворачиваются приложения, работающие в фоне. В этой статье я расскажу как свернуть приложение WinForms в трей, а также, как фоновому приложению дать о себе знать с помощью всплывающих подсказок.

Читать далее

Как получить физический размер файла на диске в C#

Размер файла

Чтобы получить логический размер файла в C# можно воспользоваться хорошо известным свойством Length класса FileInfo. Но это свойство возвращает логический а не физический размер на диске. Когда вам нужен именно физический размер, то можно воспользоваться способом представленным в этой заметке.

Читать далее

Выбор контрола для вывода данных в ASP.NET WebForms

ASP.NET

В ASP.NET WebForms есть много разных контролов для вывода данных, таких как Repeater, ListView, DataList, DataGrid или GridView. Если вы не знаете какой именно выбрать в вашем случае, то эта заметка для вас. Я вкратце изложу особенности каждого из них, а в конце сделаю общий вывод.

Читать далее

XSLT: Добавление элемента только в случае если исходный тег содержит число

Иконка XSLT

Бывают случаи, когда при XSLT трансформации, в исходном XML некоторые теги могут содержать как число, так и строку. При этом мы хотим что бы в результирующем XML тег добавлялся только в том случае, когда исходный тег содержит число.

Читать далее

Автоматическая прокрутка в конец TextBox при добавлении текста

Прокрутка

В этой маленькой заметке я покажу как в WinForms реализовать автопрокрутку  в конец текста элемента TextBox . Пригодиться это может, например, при перенаправлении вывода консоли в TextBox.

Читать далее

Как перенаправить вывод консоли в TextBox в C#

Консоль

В этой заметке рассказано как перенаправить вывод консоли в TextBox. Тоесть, например, инструкция Console.WriteLine("Какая то строка"); приведет к добавлению новой строки в заданный TextBox.

Читать далее

Microsoft SQL Server Management Studio: ошибка «Saving changes is not permitted…» при изменении структуры таблицы.

SQL-Management-Studio

Часто в процессе работы с базами данных MS SQL нам нужно внести изменения в структуру ранее созданной таблицы, например, тип колонки таблицы. Если вы используете SQL Server Management Studio, то при выполнении данной задачи могут возникнуть некоторые трудности связанные  с ошибкой «Saving changes is not permitted…». В этой статье я расскажу как легко решить эту проблему.

Читать далее

Дебаг ошибки «The agent process was stopped while the test was running»

Дебаг

Недавно я пару раз столкнулся с бесполезным результатом ошибки MSTest «The agent process was stopped while the test was running», и подумал что надо поделиться несколькими моими открытиями и подходами к дебагу юнит тестов которые ее вызывают.

Читать далее

Как спрятать контрол DataPager когда есть только одна страница данных

icon-item-level-pagination

Когда вы разбиваете данные на страницы в контроле ListView используя DataPager, по умолчанию DataPager будет показан даже если есть только одна страница данных. Например, если вы используете NumericPagerField, то в итоге на вашей странице получите текст показывающий 1. В таких случаях лучше спрятать контрол DataPager.

Читать далее

Использование NuGet без коммита пакетов в систему контроля версий

nuget

Оригинальный рабочий процесс NuGet предполагал коммит папки Packages в систему контроля версий. Причиной этого является то, что разработчики обычно делают когда у них нет NuGet: они создают папку Lib или ExternalDependencies, сохраняют там бинарники и коммитят их в систему контроля версий, позволяя другим сбилдиться.

Хотя это было приемлемо для некоторых пользователей, оказалось что многие не хотят коммитить пакеты в систему контроля версий.  Когда используется DVCS такая как Mercurial или Git, то коммит бинарников может очень сильно увеличить размер репозитория, делая клонирование все более и более мучительным. Фактически, это был один из самых топовых запросов на issue трекере NuGet.

Хорошей новостью является то, что теперь NuGet предлагает рабочий процесс, который позволяет решить эту проблему, и его очень легко настроить. Вот как это сделать:

Читать далее