Skip to Content

Наблюдение за базами данных MS SQL Server в приложениях .NET

В этой статье описан способ слежения за изменениями, происходящими в БД под управлением MS SQL Server, в приложениях .NET.

Рассмотрим один из примеров ситуации, когда слежение за изменениями в БД необходимо. Пусть существуют два независимых модуля программы. Первый из них — планировщик задач, который запускает различные задачи по расписанию, которое в некотором виде хранится в БД. Второй модуль — подпрограмма, реализующая пользовательский интерфейс; она имеет возможность вносить изменения в расписание, которым руководствуется первый из описанных модулей. Важно: ни один из модулей явно не связан с другим, поэтому планировщик задач может получить информацию о том, что расписание изменилось, только посредством обращения к таблице (таблицам) БД, где это расписание хранится.

Один из вариантов решения задачи слежения за изменениями в таблицах БД — это использование механизма Service Broker в MS SQL Server совместно с объектом SqlDependency из фреймворка .NET.

Читать далее

Отладка собственных задач для MSBuild

Для начала создадим простейшую задачу для MSBuild. Для этого в Visual Studio создайте проект типа Class Library и подключите к нему сборки Microsoft.Build.Framework и Microsoft.Build.Utilities.v.4.0 (версия может отличаться в зависимости от целевой платформы). Для создания простейшей задачи необходимо создать класс, унаследованный от Microsoft.Build.Utilities.Task и переопределить его метод Execute как показано ниже:

Читать далее

Преобразование чисел к прописной форме

Введение

При разработке различных приложений, особенно связанных с бухгалтерскими и экономическими задачами, довольно часто возникает задача представления числа в форме прописи. Например, число «255» прописью будет выглядеть как «Двести пятьдесят пять».

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

Хотелось бы иметь библиотеку для .NET, в которой были бы реализованы данные функции, и подключать ее при необходимости в различных проектах.

Читать далее

Ешь. Молись. Строй запросы.

Вступление

В какой-то момент каждый человек на планете сталкивается с одной серьезной проблемой. Это — лень и нежелание тратить время на написание sql-запросов вручную.

Итак, способы решения:

  1. ORM: плюсы и минусы такого подхода очевидны: очень быстрая разработка но отсутствие контроля кода получившихся запросов и, в большинстве, медленная скорость работы.
  2. Собственно, писать запросы руками: медленно и непереносимо. Из плюсов — полный контроль кода.
  3. Собственный строитель запросов, зависящий от входных параметров. Например, требуется сортировка одной и той же сущности по дате создания и дате изменения. Придется писать логику построения строки руками, что также не очень хорошо. В плане переносимости — лучше, чем писать запросы руками, но, все же, недостаточно хорошо.
  4. Использовать какой-либо из существующих билдеров. Об этом и поговорим

Статья, собственно, о моей разработке TsSoft.Dapper.QueryBuilder. Как можно понять из названия — это строитель запросов для microORM Dapper.

Читать далее

Расчет нарастающего итога на основе данных, запрошенных из базы

В отчетах, формируемых на основе данных, хранящихся в базе, иногда требуется рассчитать накопительный итог. В нашем случае он представляет собой разность ста процентов и суммы значений столбца в процентах для всех строк, расположенных выше данной. Накопительный итог для первой строки в упорядоченном наборе будет равен 100%.

Существуют различные способы, позволяющие рассчитать сумму значений из предыдущих строк. Однако здесь важное значение имеют используемые для формирования отчетов технологии, СУБД, ее версия.

Читать далее