Die SQL Data Services bieten ja Stand heute zwei Zugriffsmöglichkeiten. Zum einen hat man die SOAP Schnittstelle, zum anderen die Möglichkeit über ein REST Interface zuzugreifen. Letzteres ist für mich eigentlich mittlerweile interessanter geworden da man zum Beispiel Blobs nicht über die SOAP Schnittstelle erstellen kann.
Ich habe nun angefangen einen SDS Proxy für das REST Interface zu schreiben. Ziel ist es ein einfach zu Handhabendes Objektmodell zu haben, um mit den SQL Data Services zu kommunizieren.
Ich bin noch am Anfang, trotzdem möchte ich jetzt schon ein wenig Einblick in die Benutzung des Modells geben. Natürlich mit dem Interesse früh Feedback zu bekommen.
AuthorityReference authorityReference = new AuthorityReference( "nummereins" ); ContainerReference containerReference = authorityReference.GetContainerByName( "meincontainer" ); if ( containerReference.IsValid ) { Person p = new Person(); p.Lastname = "Test"; p.Birthday = DateTime.Now; p.Age = 12; EntityReference reference = containerReference.StoreEntity( p ); if ( reference.IsValid ) { Console.WriteLine( reference.Id ); Console.WriteLine( reference.Kind ); Console.WriteLine( reference.Version ); Console.WriteLine( reference.Uri ); } EntityReference r2 = containerReference.GetEntityReferenceById( p.Id.ToString() ); if ( r2.IsValid ) { Console.WriteLine( r2.XmlPayload ); Person p2 = r2.CreateConcreteObjectFromPayload< Person >(); } }
Die Idee die ich momentan verfolge ist das ACE Konzept einfach als Serialisierbare Referenzen mit zu führen. So kann man diese auch in beliebigen Stores ablegen und wiederverwenden. Die Funktionalität ist noch rudimentär, ich versuche allerdings schnellstmöglichst das ganze auf Codeplex zu laden um es dort zur Verfügung zu stellen.
Anregungen?