Sync Framework 2.0 – first look
Я думаю, Вы помните приложение на прошлых techdays, которое позволяет поиграться с sync framewok.
Приложение позволяет синхронизировать списки строк вида ключ:значение. Можно вводить разные строки и понимать как ведет себя sync framework в случае конфликтов, etc.
Я немного переписал приложение.
Основная вещь, которую я добавил, это поддержка Simple Providers, про которые я немного рассказывал в сегодняшнем вебкасте https://www.microsoft.com/rus/events/detail.mspx?eventid=1032403993 .
Итак, что же нужно для использования SimpleProviders?
шаг 0) создаем потомок класса FullEnumerationSimpleSyncProvider
шаг 1) создаём метод get MetadataSchema, описываем структуру нашего хранилища.
public const uint CUSTOM_FIELD_ID = 0;
public const uint CUSTOM_FIELD_LMT = 1;
public override ItemMetadataSchema MetadataSchema
{
get
{
CustomFieldDefinition[] customFields = new CustomFieldDefinition[]
{
new CustomFieldDefinition(CUSTOM_FIELD_ID,typeof (string),256),
new CustomFieldDefinition(CUSTOM_FIELD_LMT,typeof (UInt64))
};
IdentityRule[] identityRule = new IdentityRule[] {
new IdentityRule(new uint[] {CUSTOM_FIELD_ID})
};
return new ItemMetadataSchema(customFields, identityRule);
}
}
шаг 2) создаем метод EnumerateItems
public override IEnumerable<ItemFieldDictionary> EnumerateItems(FullEnumerationContext context) {
List<ItemFieldDictionary> items = new List<ItemFieldDictionary>();
foreach (var s in localParsedList)
{
items.Add(
ConstructDictionary(
s.Key,
s.Value.LWT));
}
return items;
}
шаг 3) определяем какой обьект будет ходить по сети и описывать изменения в обьекте, реализуем метод LoadChangeData
шаг 4) создаем операции Crate, Update, Delete
пример приложения можно скачать тут
Comments
Anonymous
February 04, 2009
PingBack from http://blogs.gotdotnet.ru/personal/trukhinyuri/PermaLink.aspx?guid=1c9f16a6-f3d7-4dfb-bf41-be5a3619bc4aAnonymous
February 04, 2009
Я думаю, Вы помните приложение на прошлых techdays, которое позволяет поигратьсяAnonymous
February 05, 2009
PingBack from http://www.clickandsolve.com/?p=3785Anonymous
February 05, 2009
PingBack from http://www.anith.com/?p=5926