What do people want in a permanent .NET dictionary?

I implement generic, persistent .NET collections based on the top of the ESENT database engine (using the ManagedEsent level of interaction). So far I have focused on classes that accurately mimic their System.Collections.Generic mappings, except that they take the path in a constructor indicating where the database should go. Such code works:

using Microsoft.Isam.Esent.Collections.Generic; static void Main(string[] args) { var dictionary = new PersistentDictionary<string, string>("Names"); Console.WriteLine("What is your first name?"); string firstName = Console.ReadLine(); if (dictionary.ContainsKey(firstName)) { Console.WriteLine("Welcome back {0} {1}", firstName, dictionary[firstName]); } else { Console.WriteLine("I don't know you, {0}. What is your last name?", firstName); dictionary[firstName] = Console.ReadLine(); } } 

My questions:

  • Besides compatibility with Stack, Queue, and Dictionary, what features do people want / need stored collections?
  • Should I require version 2.0 or version 3.5 of the .NET platform?
  • The types of keys and values ​​are limited to the basic types of .NET (bool, byte, [all integers], float, double, Guid, DateTime, and string). I can add support for values ​​that are serializable structures. Is this type restriction too painful?
  • What performance tests do people want to see?
  • In which applications do people want to use PersistedDictionary for?

Next week I will have my first release, but I want to make sure that I'm building the right thing.

+6
dictionary c # database persistence
source share
2 answers

I published PersistentDictionary on Codeplex. This only supports serialization of structures, but I will work with another data structure that supports storing and retrieving arbitrary objects.

http://managedesent.codeplex.com/

+4
source share

A type restriction may be acceptable for keys, but by values ​​I expect everything that [Serializable] will work. Otherwise, what's the point? Simple cases like Dictionary<int, string> considered in textbooks much more often than in the real world.

+3
source share

All Articles