|
В то время, когда Microsoft вершит революции и эпохальные решения в SOA (это я в книжке про WCF прочитал недавно), на отдельно взятом проекте встала необходимость зафигачить distributed приложение. Пришлось изучать, что есть в этом духе у монстра сервисов. А есть в принципе не плохая штука под названием SQL Server Compact Edition. Сейчас актуальная версия -- 3.5. Адаптер под нее весит около 3 метров и ставиться в течении минуты. Суть SqlCe (ключевое слово для поиска, кстати): лежит файл где-то и для работы с ним нужно прописать это где-то в Data Source и Password если надо в конекшнстринге и все. Эта вещь позиционируется как локальная БД для мобильных устройств, но вполне катит и для компов. Как минимум в качестве хранилища справочника. Задача вообщем такая. Был pdf файл, я его когда-то перегнал в doc. Там есть таблица 3 000 на 20, которая и составляет основную состовляющую ДОПОГ: там данные, а что с этими данными делать описано в остальных полутора томах. Для удобства работы я ее в xls перегнал (сначала в xml, потом попарсил чуть-чуть, и в экселе довел до ума). И вот с этого момента я какбы подписался на эти опасные грузы. Сперва я хотел в sql скрипты загнать, но все таки пробежаться по 2876 строкам 20 раз меня не хватило. В итоге я их xls сделал сериализованый датасет, подшаманил его как надо и вот... Вроде как настало время тестирования. Ставить SQL сервер и прочее на машины тестеров невозможно в виду политик безопасности (они пользователи тупо). Сначала попытался их к себе подсоединить, но LINQ to SQL чего-то брыкнулся. И пришлось решать целевую задачу: как эту таблицу распростронять теперь. Оставить в xml нехорошо -- весит много и попортить легко (а как никак там дело подсудное). Ну вот значит и пришел к sqf. 1. С точки зрения ADO.NET работа ничем не отличается. Разве что придется подцеипить System.Data.SqlCeServer; 2. SQL Managment Studio в принципе работает с файлом прекрасно и даже дает выполнять скрипты. Но! На созданый в SQL 2005 ругалась 10-я Студия -- предлагает его апдейтить до 3.5 -- а с 3.5 не хотел работать SQL 2005. Посомтреть что будет с SQL 2008 вчера так и не сумел. 3. В Студии файл создается в плане визарда для создания датасета или EM. Можно тупо нажать отмену сразу -- файл останется. Работать с ним также легко и просто как в Access. Даже еще проще: ручные скрипты не запускает, только select с наглядной генерацией картики. Пришлось создавать таблицы мышью вручную и копировать кодом мои 37 таблиц (благо они пока у меня по структуре похожи). Редактирование, кстати, ущербно очень: система "удали этот столбец и создай такой же с новыми параметрами". Косяк главный вообщем. 4. nvarchar(max) нет. есть nvarchar(4000). 5. В Студии на основе sdf dbml не генерится. Самое то выучить работу с SqlMetal. 6. Работает хреновенько конечно. Лага выбора всех данных очень заметна, даже пришлось очистку колекции после выбора пользователя убрать. А то когда назад возвращается, такое ощущение, что он со шпаргалок списывает половину таблицы.
Вобщем: достойная вещь, родственная технологиям MS. Если достать (написать) хороший инструмент для работы с файлом, то для select задач покатит. При insert/update/delete думаю дешевле будет добиться наличия интернета или какого-нибудь стека операций, чем заморачиваться с синхронизацией. Но это я только неделю с ним вожусь. Деплой сегодня прокатил на ура.
|