SSDS strongly-typed DataSets
i got curious this evening and threw together a simple SSDS example that uses strongly-typed DataSets. it's a very simple example, but at least it shows that DataSets and SSDS get along just fine.
i created a valid XSD schema document for my Task entity. I then used XSD.exe to generate a CS class that defines a strongly-typed DataSet. finally, i added this class to a console project and wrote a short bit of code to pull the live list of entities from my SSDS data store, load them into the DataSet, and enumerate them to the console. not bad at all.
-- DOS batch sample
@echo off
rem 2008-10-13 (mca) : make typed datasets from SSDS entity
set d=..\entity-binding
xsd task.xsd sitka.xsd /dataset /n:Amundsen.SSDS.Binding /o:%d%set d=
rem eof
-- C# console sample
static void Main(string[] args)
{
HttpClient c = new HttpClient();
NewDataSet ds = new NewDataSet();
string xml = string.Empty;
int x = 0;
try
{
// get data from SSDS (this URL doesn't require SSDS auth)
xml = c.Execute("http://amundsen.com/ssds/tasks/");
// load the data into the strongly-typed dataset
using (MemoryStream ms = new MemoryStream(Encoding.ASCII.GetBytes(xml)))
{
ds.ReadXml(ms);
ms.Close();
}
// enumerate the task table
Console.WriteLine(ds.task.TableName);
foreach (NewDataSet.taskRow r in ds.task)
{
Console.WriteLine(string.Format("{0}: {1}, {2}, {3}, {4}",
++x, r.Id, r.name, r._is_completed, r.Version));
}
}
catch (Exception ex)
{
Console.WriteLine(string.Format("ERROR: {0}",ex.Message));
}
// wait for user to mash the keyboard
Console.ReadLine();
}
more cool stuff you can do w/ this sample includes:
- use this to bind to a WinForms DataGrid
- work up code to handle add, update, and delete events in the DataSet
- use the filter, sort, and other View options for the DataSet
you can download the sample code from my Codeplex or Google code sites. you can also see more example of my SSDS demos at my SSDS page.