База SQLite. Работа в многопоточном приложении .NET

Ваш отзыв
sqlite db

Добрый вечер! Сегодня многие десктопные приложения так или иначе хранят свои данные в базе. Самые известные примеры: база SQLite для Skype, база собранных ключевиков для программы «Магадан». В процессе работы с SQLite обострилась проблема доступа к базе из различных потоков. Вот тут ждал интересный сюрприз, который с одной стороны много где описан в интернетах, как явление, но мало где дается решение. Если мы создадим многопоточное приложение и «в лоб» будем из одного потока что-то читать, а из другого писать, мы с высокой долей вероятности однажды получим ошибку «database is locked», и ничего не будет работать.


Читать далее...

Технология ClickOnce — использовать или забыть?

2 комментария
ClickOnce установка

Технология ClickOnce — это технология быстрого развертывания приложений с возможностью их автообновления. Разработчики приложений должны обеспечить удобное средство для установки и обновления собственных приложений. В ClickOnce это делается, что называется, «тремя кликами мыши». Все, что нужно разработчику — только вовремя выкладывать обновления в нужную папку, все уже сделано за него. Замечательно, не так ли? Но все ли так радужно?


Читать далее...

NVarChar в MS SQL

Ваш отзыв
varchar nvarchar

Представим на минуточку, что у Вас уже есть некая база данных MS SQL, в которой есть набор уже заполненных таблиц какими-то Вашими данными. Также предположим, что у Вас в одной из таблиц есть колонка OrgName, куда записываются наименования компаний. Все идет как по маслу, данные изо дня в день пишутся, никаких проблем не наблюдается. Среди компаний попадаются как российские, так и зарубежные. И вот в один прекрасный день Вы заводите компанию и вместо ее названия, например, «ТОО «Темір жол күзет»» видите «ТОО «Темір жол к?зет».


Читать далее...

SQLite на Windows

2 комментария

SQLite — популярная СУБД для многих программ, включая Skype. Программой SQLite Expert Вы можете легко просмотреть чужую чужую переписку . И никакие пароли тут не работают. Продемонстрируем, как может ничего не работать, если мы не внимательно прочитали предупреждение сайта или даже если и читали, но не знали, что тестовая система окажется настолько старенькой.


Читать далее...

Импорт контактов из Gmail в Nokia e72

11 комментариев

Раньше можно было синхронизироваться через Mail for Exchange, и все, кто ухватился за эту возможность до 2013 года, до сих пор ей успешно пользуются, на сколько мне известно. У всех, кто спохватился позже, скорее всего ничего не будет работать. Однако, попробуем хоть как-то синхронизировать контакты Google с нашими контактами, предположив, что у нас нет доступа к телефону на Android.


Читать далее...

Загрузка CLR в процесс. Подробности.

Ваш отзыв

В известной книге Джеффри Рихтера «CLR via C#» достаточно подробно описан процесс загрузки CLR в процесс, создание хоста, затронуты вопросы его тонкой настройки. Но в процессе работы возник вопрос: а что же происходит между созданием процесса в Windows и тем, когда приложение начнет работу?


Читать далее...

Cookieless Session. Мусор в URL приложения ASP.NET MVC

1 отзыв

При определенных настройках приложения MVC оно перестает использовать cookies браузера, всю информацию для связывания пользователя и его сессии записывая в URL. При этом URL становится явно замусоренным.


Читать далее...

Отложенное выполнение. Метод Where в C#

1 отзыв

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


Читать далее...

Как определить, что ячейка таблицы Word объединена при помощи C# ?

1 отзыв

Использование библиотеки Microsoft.Office.Interop.Word.dll значительно упрощает жизнь при программировании. Однако, чтобы добиться нужного результата, иногда приходится прибегать к хитрым решениям. Например, нет метода или свойства, который бы нам говорил о том, является ли данная ячейка объединенной или нет.


Читать далее...