Estoy implementando colecciones .NET genéricas y persistentes basadas en el motor de la base de datos ESENT (utilizando la capa de interoperabilidad ManagedEsent). Hasta ahora me he centrado en las clases que imitan exactamente sus contrapartidas System.Collections.Generic, excepto que toman una ruta en el constructor que indica dónde debe ir la base de datos. Código como este está funcionando:¿Qué quiere la gente en un diccionario .NET persistente?
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();
}
}
Mis preguntas son:
- Aparte de la compatibilidad con la pila, cola y Diccionario qué características queremos que la gente/necesidad en colecciones persistió?
- ¿Debo solicitar la versión 2.0 o la versión 3.5 del .NET Framework?
- Los tipos de clave y valor están restringidos a los tipos .NET básicos (bool, byte, [todos los enteros], float, double, Guid, DateTime y string). Podría agregar soporte para valores que son estructuras serializables. ¿Es este tipo de restricción demasiado dolorosa?
- ¿Qué tipo de puntos de referencia de rendimiento desea ver la gente?
- ¿Para qué tipo de aplicaciones la gente quiere usar un PersistedDictionary?
Voy a tener el primer lanzamiento listo la próxima semana, pero quiero asegurarme de que estoy construyendo lo correcto.
Por cierto, 'System.Decimal' es también un tipo básico en algún sentido (no en lo que se refiere a CLR, pero sin duda por lo que cualquier desarrollador de C# o VB se refiere). –
¿No debería ser esta la wiki de la comunidad? –
['PersistentDictionary'] (http://izlooite.blogspot.com/2011/04/persistent-dictionary.html) –