<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>The EntitySpaces Team Blog</title>
    <link>http://www.entityspaces.net/blog/</link>
    <description>Persistence Layer and Business Objects for Microsoft .NET </description>
    <image><link>http://www.entityspaces.net</link><url>http://www.entityspaces.net/images/es.png</url><title>EntitySpaces</title></image>
    <language>en-us</language>
    <copyright>EntitySpaces, LLC</copyright>
    <lastBuildDate>Sat, 04 Jul 2009 16:06:11 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>support@entityspaces.net</managingEditor>
    <webMaster>support@entityspaces.net</webMaster>
    <geo:lat>40.050109</geo:lat><geo:long>-85.998151</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/entityspaces" type="application/rss+xml" /><feedburner:emailServiceId>entityspaces</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <trackback:ping>http://www.entityspaces.net/blog/Trackback.aspx?guid=ca514fbe-1f30-4c06-8a42-96d7896b041c</trackback:ping>
      <pingback:server>http://www.entityspaces.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.entityspaces.net/blog/PermaLink,guid,ca514fbe-1f30-4c06-8a42-96d7896b041c.aspx</pingback:target>
      <dc:creator>David Parsons</dc:creator>
      
      <title>DynamicQuery Enhancements</title>
      <guid isPermaLink="false">http://www.entityspaces.net/blog/PermaLink,guid,ca514fbe-1f30-4c06-8a42-96d7896b041c.aspx</guid>
      <link>http://feedproxy.google.com/~r/entityspaces/~3/bKy7_J38UKY/DynamicQuery+Enhancements.aspx</link>
      <pubDate>Sat, 04 Jul 2009 16:06:11 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
We have greatly improved the power of our DynamicQuery API, and there is still much&#xD;
more coming before our next official release goes into production. This is just a&#xD;
quick blog post to show some of the upcoming enhancements.&lt;br&gt;&lt;/p&gt;&#xD;
        &lt;h2&gt;Full Expressions in OrderBy and GroupBy &#xD;
&lt;/h2&gt;&#xD;
        &lt;p&gt;&#xD;
This query doesn’t really make sense, but we wanted to show you what will be possible&#xD;
in the next release.&#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
EmployeesQuery q = new EmployeesQuery(); &#xD;
&lt;br&gt;&#xD;
q.Select(q.LastName.Substring(2, 4).ToLower()); &#xD;
&lt;br&gt;&lt;em&gt;&lt;font color="#0080ff"&gt;q.&lt;strong&gt;OrderBy&lt;/strong&gt;(q.LastName.Substring(2, 4).ToLower().Descending); &#xD;
&lt;br&gt;&#xD;
q.&lt;strong&gt;GroupBy&lt;/strong&gt;(q.LastName.Substring(2, 4).ToLower());&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
EmployeesCollection coll = new EmployeesCollection(); &#xD;
&lt;br&gt;&#xD;
if (coll.Load(q)) &#xD;
&lt;br&gt;&#xD;
{ &#xD;
&lt;br&gt;&#xD;
   string s = q.es.LastQuery; &#xD;
&lt;br&gt;&#xD;
} &#xD;
&lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
The SQL Generated is as follows (and works)&#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;br&gt;&#xD;
SELECT SUBSTRING(LOWER([LastName]),2,4) AS 'LastName' &#xD;
&lt;br&gt;&#xD;
FROM [Employees] &#xD;
&lt;br&gt;&lt;em&gt;&lt;font color="#0080ff"&gt;&lt;strong&gt;GROUP BY&lt;/strong&gt; SUBSTRING(LOWER([LastName]),2,4) &#xD;
&lt;br&gt;&lt;strong&gt;ORDER BY&lt;/strong&gt; SUBSTRING(LOWER([LastName]),2,4) DESC &lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
In the current production release 2009.1.0209.0, you can only use a “Column Name”&#xD;
in the OrderBy and GroupBy statements. In the upcoming release, you will be able use&#xD;
full expressions, just as you can now do in the Select statement. &#xD;
&lt;br&gt;&lt;/p&gt;&#xD;
        &lt;h2&gt;Raw SQL Injection Everywhere&#xD;
&lt;/h2&gt;&#xD;
        &lt;p&gt;&#xD;
There may be times when you need to access some SQL feature that is not supported&#xD;
by our DynamicQuery API. But, now having used and fallen in love with DynamicQuery,&#xD;
the last thing you want to do is stop and go write a stored procedure or create a&#xD;
view. We have always supported the raw injection feature in our Select statement,&#xD;
but it will soon be available almost everywhere. The way it works is you pass in raw&#xD;
SQL in the form of a string surrounded by &amp;lt; &amp;gt; angle brackets. That indicates&#xD;
to the EntitySpaces dataproviders that you want the raw SQL passed directly to the&#xD;
database engine “as is”. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Here is an example query. You would never write a query like this in reality. EntitySpaces&#xD;
supports this simple query without having to use &amp;lt; &amp;gt; angle brackets. This is&#xD;
just to show all of the places that can accept the raw SQL injection technique:&#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
EmployeesQuery q = new EmployeesQuery();&lt;br&gt;&#xD;
q.Select(&lt;font color="#ff0000"&gt;"&amp;lt;FirstName&amp;gt;",&lt;/font&gt; q.HireDate);&lt;br&gt;&#xD;
q.Where(&lt;font color="#ff0000"&gt;"&amp;lt;EmployeeID = 1&amp;gt;"&lt;/font&gt;);&lt;br&gt;&#xD;
q.GroupBy(&lt;font color="#ff0000"&gt;"&amp;lt;FirstName&amp;gt;"&lt;/font&gt;, q.HireDate);&lt;br&gt;&#xD;
q.OrderBy(&lt;font color="#ff0000"&gt;"&amp;lt;FirstName ASC&amp;gt;"&lt;/font&gt;);  &#xD;
&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
EmployeesCollection coll = new EmployeesCollection();&lt;br&gt;&#xD;
if (coll.Load(q))&lt;br&gt;&#xD;
{&lt;br&gt;&#xD;
    string s = q.es.LastQuery;&lt;br&gt;&#xD;
}&#xD;
&lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
The SQL Generated is as follows (and works)&#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
SELECT FirstName,[HireDate] AS 'HireDate'  &#xD;
&lt;br&gt;&#xD;
FROM [Employees] WHERE (EmployeeID = 1) &#xD;
&lt;br&gt;&#xD;
GROUP BY FirstName,[HireDate] &#xD;
&lt;br&gt;&#xD;
ORDER BY FirstName ASC&#xD;
&lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
Of course, you could easily write the above query without injection, but you get the&#xD;
idea. The escape hatch will be available to you almost everywhere ….&#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
EmployeesQuery q = new EmployeesQuery();&lt;br&gt;&#xD;
q.Select(q.FirstName);&lt;br&gt;&#xD;
q.Where(q.EmployeeID == 1);&lt;br&gt;&#xD;
q.OrderBy(q.FirstName.Ascending);&lt;br&gt;&#xD;
q.GroupBy(q.FirstName, q.HireDate);&#xD;
&lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
Using the raw SQL injection techniques above will allow you to invoke SQL functions&#xD;
that we don’t support, including database vender specific SQL, and so on. Hopefully,&#xD;
you will almost never have to resort to writing a custom load method to invoke a stored&#xD;
procedure or an entirely hand written SQL statement. Of course, you can use our native&#xD;
API everywhere and just inject the raw SQL on the GroupBy for instance. You can mix&#xD;
and match to get the desired SQL.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
There’s much more to come in this release …  Just last night we were serializing&#xD;
DynamicQuery’s from a Silverlight application and sending them to a WCF server to&#xD;
fetch the data… very slick. Watch for an upcoming blog post on our Silverlight demo&#xD;
very soon.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.entityspaces.net/blog/ct.ashx?id=038f06f1-26c1-401c-8e8b-50d4e5eb4ce0&amp;amp;url=http%3a%2f%2fwww.entityspaces.net%2fblog%2fct.ashx%3fid%3de7740cd5-f5b1-4914-997b-d37ec7426772%26url%3dhttp%253a%252f%252fwww.entityspaces.net%252fblog%252fct.ashx%253fid%253d2676e564-5b8c-4378-ac7e-7e56431e64b7%2526url%253dhttp%25253a%25252f%25252fwww.entityspaces.net%25252fblog%25252fct.ashx%25253fid%25253dd5be1367-24f9-4b7b-9cea-52485f6b01d0%252526url%25253dhttp%2525253a%2525252f%2525252fwww.entityspaces.net%2525252fblog%2525252fct.ashx%2525253fid%2525253d915037c7-923f-4590-bee1-6286854f199f%25252526url%2525253dhttp%252525253a%252525252f%252525252fwww.entityspaces.net%252525252fblog%252525252fct.ashx%252525253fid%252525253d77f66dd3-0e04-4e94-8ad8-dfac8e2b2921%2525252526url%252525253dhttp%25252525253a%25252525252f%25252525252fwww.entityspaces.net%25252525252fblog%25252525252fct.ashx%25252525253fid%25252525253d04570b37-56c1-4a64-b64f-544c252b1b06%252525252526url%25252525253dhttp%2525252525253a%2525252525252f%2525252525252fwww.entityspaces.net%2525252525252f"&gt;&#xD;
            &lt;img border="0" alt="EntitySpaces" src="http://www.entityspaces.net/images/es.png"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
From &lt;strong&gt;Mobile Devices&lt;/strong&gt; to large scale enterprise solutions in need of&#xD;
serious transaction support, EntitySpaces can meet your needs. Whether you’re writing&#xD;
an ASP.NET application with &lt;strong&gt;Medium Trust&lt;/strong&gt; requirements, a &lt;strong&gt;Mono&lt;/strong&gt; application,&#xD;
or a Windows.Forms application, the EntitySpaces architecture is there for you. EntitySpaces&#xD;
is provider independent, which means that you can run the same binary code against&#xD;
any of the supported databases. EntitySpaces is available in both C# and VB.NET. EntitySpaces&#xD;
uses no reflection, no XML files, and sports a tiny foot print of less than 200k.&#xD;
Pound for pound, EntitySpaces is one tough, dependable .NET architecture. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
EntitySpaces LLC&lt;br&gt;&lt;strong&gt;Persistence Layer and Business Objects for Microsoft .NET&lt;br&gt;&lt;/strong&gt;&lt;a href="http://www.entityspaces.net"&gt;http://www.entityspaces.net&lt;/a&gt;&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=bKy7_J38UKY:JWQyH3e39XI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=bKy7_J38UKY:JWQyH3e39XI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=bKy7_J38UKY:JWQyH3e39XI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=bKy7_J38UKY:JWQyH3e39XI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=bKy7_J38UKY:JWQyH3e39XI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?i=bKy7_J38UKY:JWQyH3e39XI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=bKy7_J38UKY:JWQyH3e39XI:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entityspaces/~4/bKy7_J38UKY" height="1" width="1"/&gt;</description>
      <category>DynamicQuery</category>
      <category>EntitySpaces</category>
    <feedburner:origLink>http://www.entityspaces.net/blog/2009/07/04/DynamicQuery+Enhancements.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.entityspaces.net/blog/Trackback.aspx?guid=4e0d2669-25d1-4063-b08d-160157384b55</trackback:ping>
      <pingback:server>http://www.entityspaces.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.entityspaces.net/blog/PermaLink,guid,4e0d2669-25d1-4063-b08d-160157384b55.aspx</pingback:target>
      <dc:creator>Mike Griffin</dc:creator>
      
      <title>EntitySpaces 2009.1.0629.0 Alpha Release</title>
      <guid isPermaLink="false">http://www.entityspaces.net/blog/PermaLink,guid,4e0d2669-25d1-4063-b08d-160157384b55.aspx</guid>
      <link>http://feedproxy.google.com/~r/entityspaces/~3/ohYGPXKjieE/EntitySpaces+2009106290+Alpha+Release.aspx</link>
      <pubDate>Mon, 29 Jun 2009 01:32:51 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
We are pleased to make this new release available to current customers, there is no&#xD;
trial version available at this point. This release provides our DynamicQuery API&#xD;
built into the Client Side Proxy Stubs. The new serializable DynamicQuery’s should&#xD;
be Silverlight compliant as well. This release is for those who are using WebServices,&#xD;
Silverlight, or WCF and would like to explore our new DynamicQuery serialization feature.&#xD;
We will be making the source code available for our source code customers for this&#xD;
Alpha release as well. &lt;strong&gt;The release notes along with some breaking changes&#xD;
are at the end of this blog post (READ BEFORE INSTALLING)&lt;/strong&gt;. An upcoming Beta&#xD;
release will consist of much of what was requested in the Q2 Wish List forum. Just&#xD;
a reminder the current production release is version 2009.1.0209.0. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
For more information on our new Serializable DynamicQuery’s see these two posts:&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://www.entityspaces.net/blog/2009/06/17/EntitySpaces+DynamicQuery+Serialization+Part+II+WCF+And+Silverlight.aspx" target="_blank"&gt;EntitySpaces&#xD;
DynamicQuery Serialization Part II (WCF and Silverlight)&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://www.entityspaces.net/blog/2009/06/14/EntitySpaces+Ndash+WCF+DynamicQuery+Serialization.aspx" target="_blank"&gt;EntitySpaces&#xD;
– WCF DynamicQuery Serialization&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
Because the two blog posts above are only in C# here is a VB.NET sample (without the&#xD;
proper cleanup code on the streams and such) &#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;em&gt;Private Sub QuerySerializerForm_Load(ByVal sender As System.Object, ByVal e As&#xD;
System.EventArgs) Handles MyBase.Load &lt;/em&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;em&gt;&#xD;
              &lt;strong&gt;    Dim o As New Proxies.OrdersQueryProxyStub("o")&lt;br&gt;&#xD;
    Dim q As New Proxies.EmployeesQueryProxyStub("emp")&lt;br&gt;&#xD;
    q.SelectAll()&lt;br&gt;&#xD;
    q.Select(q.LastName.ToLower().Substring(2, 4), o.Freight, (q.FirstName&#xD;
+ "," + q.Address).As("Mike"))&lt;br&gt;&#xD;
    q.LeftJoin(o).On(q.EmployeeID = o.EmployeeID)&lt;br&gt;&#xD;
    q.Where(q.EmployeeID &amp;gt; 30)&lt;br&gt;&#xD;
    q.OrderBy(q.LastName.Descending)&lt;br&gt;&#xD;
    q.es.Top = 50&lt;/strong&gt;&#xD;
            &lt;/em&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;em&gt;    Dim xml As String = &lt;strong&gt;q.Serializer&lt;/strong&gt;.ToXml() &lt;/em&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;em&gt;    Dim memoryStream As New MemoryStream(Encoding.Unicode.GetBytes(xml)) &lt;/em&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;em&gt;    Dim reader As XmlDictionaryReader&lt;br&gt;&#xD;
    reader = XmlDictionaryReader.CreateTextReader(memoryStream, Encoding.Unicode,&#xD;
New XmlDictionaryReaderQuotas(), Nothing) &lt;/em&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;em&gt;    Dim types As New List(Of System.Type)&lt;br&gt;&#xD;
    types.Add(GetType(EmployeesQuery))&lt;br&gt;&#xD;
    types.Add(GetType(OrdersQuery)) &lt;/em&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;em&gt;    Dim emp As New EmployeesQuery()&lt;br&gt;&#xD;
    Dim dcs As DataContractSerializer&lt;br&gt;&#xD;
    dcs = &lt;strong&gt;emp.Serializer.GetSerializer&lt;/strong&gt;(types) &lt;/em&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;em&gt;    emp = CType(dcs.ReadObject(reader), EmployeesQuery) &lt;/em&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;em&gt;    Dim coll1 As New EmployeesCollection()&lt;br&gt;&#xD;
    coll1.Load(emp) &lt;/em&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;em&gt;End Sub&lt;/em&gt;&#xD;
          &lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
Now, in reality you shouldn’t have to do any of the manual serialization we are doing&#xD;
here, but of course you can if you want to. You will want to use the [KnownTypes]&#xD;
attribute if you are using WCF on the Server Side. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
  &#xD;
&lt;/p&gt;&#xD;
        &lt;h2 align="left"&gt;            &#xD;
RELEASE NOTES&lt;br&gt;&lt;/h2&gt;&#xD;
        &lt;p&gt;&#xD;
               &#xD;
EntitySpaces 2009.1.0629.0 Alpha Release&lt;br&gt;&#xD;
                           &#xD;
June 29th, 2009&lt;br&gt;&#xD;
================================================================================== &#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
This release will not run side by side with your current ES2009 installation, it will&#xD;
overwrite the installation even if you choose another folder. You should uninstall&#xD;
any prior release before installing the Alpha version. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
The new Serializable DynamicQuery functionality requires .NET 3.5 SP1. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
The Silverlight version of the EntitySpaces.DynamicQuery.dll is in the “&lt;em&gt;C:\Program&#xD;
Files\EntitySpaces 2009\Runtimes\.NET 3.5\Silverlight&lt;/em&gt;” folder &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
There is a new checkbox on the "Advanced" tab of the "Generated Master" template named&#xD;
"Serializable Queries (requires .NET 3.5 SP1)" that you must check in order to use&#xD;
the new serializable queries. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
When you generate your client side proxies via the "Client Side Proxy/Stub" template&#xD;
you will now have a client side DynamicQuery class. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
The only data provider in this Alpha - EntitySpaces.SqlClientProvider.dll &#xD;
&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;strong&gt;NOTE&lt;/strong&gt;: The breaking changes listed below should generate compile time&#xD;
errors, not runtime errors. Adding a reference to Entityspaces.DynamicQuery.dll to&#xD;
your project, and adding a "using EntitySpaces.DynamicQuery;" line to each file that&#xD;
has a "using EntitySpaces.Interfaces;" line should clear most of the compile errors.&#xD;
("Imports EntitySpaces.DynamicQuery" for VB users.)&#xD;
&lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
Breaking change - There is a new assembly named EntitySpaces.DynamicQuery.dll which&#xD;
is now a required assembly reference for all applications. This assembly should be&#xD;
Silverlight compliant and is the only EntitySpaces assembly needed to use the DynamicQuery's&#xD;
under Silverlight. The inheritance is different for the full blown server side DynamicQuery's&#xD;
versus the client side queries.&lt;br&gt;&lt;br&gt;&#xD;
   &lt;em&gt;Server Side DynamicQuery&lt;/em&gt;&lt;br&gt;&lt;br&gt;&#xD;
      &lt;strong&gt;EmployeesQuery -&amp;gt; esEmployeesQuery -&amp;gt;&#xD;
esDynamicQuery –&amp;gt; esDynamicQuerySerializable&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&#xD;
   &lt;em&gt;Client Side Proxy DynamicQuery&lt;br&gt;&lt;/em&gt;&lt;br&gt;&#xD;
      &lt;strong&gt;EmployeesQueryProxyStub -&amp;gt; esDynamicQuerySerializable&lt;/strong&gt;&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;strong&gt;NOTE&lt;/strong&gt;: The esDynamicQuery class lives in EntitySpaces.Interfaces.dll&#xD;
just as always, however, most of the logic behind the DynamicQuery now lives in the&#xD;
new esDynamicQuerySerializable class which lives in EntitySpaces.DynamicQuery.dll.&#xD;
&lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
Breaking change - There is a minor change in the DynamicQuery API with the ".es" property.&#xD;
This is only for the DynamicQuery class, the Entity and Collection classes have no&#xD;
change in this area. &#xD;
&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
   Before the Alpha you could do this: &#xD;
&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
     &lt;em&gt;EmployeesQuery query = new EmployeesQuery();&lt;br&gt;&#xD;
     query.es.Connection.Name = "SomeName";&lt;/em&gt;&lt;br&gt;&lt;br&gt;&#xD;
   Now the connection is accessible this way ...&lt;br&gt;&lt;br&gt;&#xD;
     &lt;em&gt;EmployeesQuery query = new EmployeesQuery();&lt;br&gt;&#xD;
     query.es2.Connection.Name = "SomeName";&lt;/em&gt;&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
     ** Notice we use "es2" however all of the other properties&#xD;
are still available under the ".es" property. &#xD;
&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
   There is also a new helper when using the DynamicQuery features: &#xD;
&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
     &lt;em&gt;EmployeesQuery query = new EmployeesQuery();&lt;br&gt;&#xD;
     query.es.Serializer.[helper methods]&lt;/em&gt;&lt;br&gt;&lt;br&gt;&#xD;
   which can be used if necessary to serialize. &#xD;
&lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
Breaking change - Many Enums that used to be in EntitySpaces.Interfaces are now in&#xD;
EntitySpaces.DynamicQuery &#xD;
&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
    These included: &#xD;
&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
    esQueryType&lt;br&gt;&#xD;
    esQuerySubOperatorType&lt;br&gt;&#xD;
    esOrderByDirection&lt;br&gt;&#xD;
    esConjunction&lt;br&gt;&#xD;
    esSystemType&lt;br&gt;&lt;br&gt;&#xD;
    As well as some other internal enums. &#xD;
&lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
Breaking change - esWhereItem was renamed to esComparison and now lives in EntitySpaces.DynamicQuery.dll.&#xD;
Unless you are manually creating this class which is rare you will not be affected.&lt;br&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Breaking change - esSelectItem was renamed to esExpression and now lives in EntitySpaces.DynamicQuery.dll.&#xD;
Unless you are manually creating this class which is rare you will not be affected.&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
We hope to have an entirely new Silverlight / WCF Demo available to coincide with&#xD;
and built from the upcoming Alpha release. Of course we will do a blog post on that&#xD;
as well. When you see it in action you will be amazed how easy it is. We still have&#xD;
a few issues to work out but things are moving very rapidly now. Imagine having what&#xD;
appears to be the full EntitySpaces API available to you on a client somewhere and&#xD;
only needing to have a single 52k assembly present, and it is fully Silverlight compliant&#xD;
as well. This is just one thing our upcoming release will provide. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.entityspaces.net/blog/ct.ashx?id=038f06f1-26c1-401c-8e8b-50d4e5eb4ce0&amp;amp;url=http%3a%2f%2fwww.entityspaces.net%2fblog%2fct.ashx%3fid%3de7740cd5-f5b1-4914-997b-d37ec7426772%26url%3dhttp%253a%252f%252fwww.entityspaces.net%252fblog%252fct.ashx%253fid%253d2676e564-5b8c-4378-ac7e-7e56431e64b7%2526url%253dhttp%25253a%25252f%25252fwww.entityspaces.net%25252fblog%25252fct.ashx%25253fid%25253dd5be1367-24f9-4b7b-9cea-52485f6b01d0%252526url%25253dhttp%2525253a%2525252f%2525252fwww.entityspaces.net%2525252fblog%2525252fct.ashx%2525253fid%2525253d915037c7-923f-4590-bee1-6286854f199f%25252526url%2525253dhttp%252525253a%252525252f%252525252fwww.entityspaces.net%252525252fblog%252525252fct.ashx%252525253fid%252525253d77f66dd3-0e04-4e94-8ad8-dfac8e2b2921%2525252526url%252525253dhttp%25252525253a%25252525252f%25252525252fwww.entityspaces.net%25252525252fblog%25252525252fct.ashx%25252525253fid%25252525253d04570b37-56c1-4a64-b64f-544c252b1b06%252525252526url%25252525253dhttp%2525252525253a%2525252525252f%2525252525252fwww.entityspaces.net%2525252525252f"&gt;&#xD;
            &lt;img border="0" alt="EntitySpaces" src="http://www.entityspaces.net/images/es.png"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
From &lt;strong&gt;Mobile Devices&lt;/strong&gt; to large scale enterprise solutions in need of&#xD;
serious transaction support, EntitySpaces can meet your needs. Whether you’re writing&#xD;
an ASP.NET application with &lt;strong&gt;Medium Trust&lt;/strong&gt; requirements, a &lt;strong&gt;Mono&lt;/strong&gt; application,&#xD;
or a Windows.Forms application, the EntitySpaces architecture is there for you. EntitySpaces&#xD;
is provider independent, which means that you can run the same binary code against&#xD;
any of the supported databases. EntitySpaces is available in both C# and VB.NET. EntitySpaces&#xD;
uses no reflection, no XML files, and sports a tiny foot print of less than 200k.&#xD;
Pound for pound, EntitySpaces is one tough, dependable .NET architecture. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
EntitySpaces LLC&lt;br&gt;&lt;strong&gt;Persistence Layer and Business Objects for Microsoft .NET&lt;br&gt;&lt;/strong&gt;&lt;a href="http://www.entityspaces.net"&gt;http://www.entityspaces.net&lt;/a&gt;&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=ohYGPXKjieE:SHF9TuZnDUc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=ohYGPXKjieE:SHF9TuZnDUc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=ohYGPXKjieE:SHF9TuZnDUc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=ohYGPXKjieE:SHF9TuZnDUc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=ohYGPXKjieE:SHF9TuZnDUc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?i=ohYGPXKjieE:SHF9TuZnDUc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=ohYGPXKjieE:SHF9TuZnDUc:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entityspaces/~4/ohYGPXKjieE" height="1" width="1"/&gt;</description>
      <category>DynamicQuery</category>
      <category>Silverlight</category>
      <category>WCF</category>
      <category>Webservices</category>
    <feedburner:origLink>http://www.entityspaces.net/blog/2009/06/29/EntitySpaces+2009106290+Alpha+Release.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.entityspaces.net/blog/Trackback.aspx?guid=c41518b3-ec4a-48dc-bfb6-39c420b35558</trackback:ping>
      <pingback:server>http://www.entityspaces.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.entityspaces.net/blog/PermaLink,guid,c41518b3-ec4a-48dc-bfb6-39c420b35558.aspx</pingback:target>
      <dc:creator>Mike Griffin</dc:creator>
      
      <title>EntitySpaces DynamicQuery Serialization Part II (WCF and Silverlight)</title>
      <guid isPermaLink="false">http://www.entityspaces.net/blog/PermaLink,guid,c41518b3-ec4a-48dc-bfb6-39c420b35558.aspx</guid>
      <link>http://feedproxy.google.com/~r/entityspaces/~3/O2qcWL_R0Pc/EntitySpaces+DynamicQuery+Serialization+Part+II+WCF+And+Silverlight.aspx</link>
      <pubDate>Wed, 17 Jun 2009 03:40:36 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
This stuff is hot guys and gals. We are asking Jon Davis to write an entirely new&#xD;
Silverlight demo that will showcase our DynamicQuery feature running under Silverlight&#xD;
inside the browser and hitting a WCF service on the server. We cannot wait, this is&#xD;
so slick … Here’s another sneak peak post.&lt;br&gt;&lt;/p&gt;&#xD;
        &lt;h3&gt;First the Client Code&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
Notice here we are using new “QueryProxyStub” classes that are available in through&#xD;
our proxy template (in addition to the existing single object and collection). &#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;font color="#0080ff"&gt;&#xD;
              &lt;strong&gt;Proxies&lt;/strong&gt;.OrdersQueryProxyStub o = new &lt;strong&gt;Proxies&lt;/strong&gt;.OrdersQueryProxyStub("o");&lt;br&gt;&lt;strong&gt;Proxies&lt;/strong&gt;.EmployeesQueryProxyStub q = new &lt;strong&gt;Proxies&lt;/strong&gt;.EmployeesQueryProxyStub("emp");&lt;br&gt;&#xD;
q.Select(q.LastName.ToLower().Substring(2, 4), o.Freight, (q.FirstName + "," + q.Address).As("Mike"));&lt;br&gt;&#xD;
q.LeftJoin(o).On(q.EmployeeID == o.EmployeeID);&lt;br&gt;&#xD;
q.Where(q.EmployeeID &amp;gt; 30);&lt;br&gt;&#xD;
q.es.Top = 50; &lt;/font&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;font color="#0080ff"&gt;// Manually convert it (you won’t need to do this)&lt;br&gt;&lt;/font&gt;&#xD;
            &lt;font color="#0080ff"&gt;string xml = q.&lt;strong&gt;Serializer&lt;/strong&gt;.ToXml();&lt;/font&gt;&#xD;
          &lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
Their is a new property on the Query called Serializer than can help with certain&#xD;
serialization issues, for the most part however you shouldn’t have to use it. But&#xD;
it’s nice to have around, above we serialize our query to XML via the WCF DataContractSerializer&#xD;
(the entire object graph) via the ToXml() method.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;h3&gt;Now the Server Code Deserializing (Simulated)&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
Notice below that we deserialize the XML from our QueryProxyStub classes into our&#xD;
full blown server side Query classes so that we can execute them. In reality the code&#xD;
that you will write on the server will be much simpler than the code shown below.&#xD;
You will use the KnownTypeAttribute on your WCF Service methods. We will have a full&#xD;
sample showing how this works, don’t let the code below scare you, it’s so easy. This&#xD;
is just test harness code but it works just fine.&#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;font color="#0080ff"&gt;using (MemoryStream memoryStream = new MemoryStream(Encoding.Unicode.GetBytes(xml)))&lt;br&gt;&#xD;
{&lt;br&gt;&#xD;
    using (XmlDictionaryReader reader = &#xD;
&lt;br&gt;&#xD;
        XmlDictionaryReader.CreateTextReader(memoryStream,&#xD;
Encoding.Unicode, &#xD;
&lt;br&gt;&#xD;
        new XmlDictionaryReaderQuotas(), null))&lt;br&gt;&#xD;
    {&lt;br&gt;&#xD;
        types = new List&amp;lt;Type&amp;gt;();&lt;br&gt;&#xD;
        types.Add(typeof(&lt;strong&gt;EmployeesQuery&lt;/strong&gt;));&lt;br&gt;&#xD;
        types.Add(typeof(&lt;strong&gt;OrdersQuery&lt;/strong&gt;)); &lt;/font&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;font color="#0080ff"&gt;        EmployeesQuery emp&#xD;
= new EmployeesQuery();&lt;br&gt;&#xD;
        DataContractSerializer dcs = emp.&lt;strong&gt;Serializer&lt;/strong&gt;.GetSerializer(types); &lt;/font&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;font color="#0080ff"&gt;        // Deserialize&lt;br&gt;&#xD;
        emp = dcs.ReadObject(reader) as EmployeesQuery; &lt;/font&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;font color="#0080ff"&gt;        EmployeesCollection&#xD;
coll1 = new EmployeesCollection();&lt;br&gt;&#xD;
        if (coll1.Load(emp))&lt;br&gt;&#xD;
        {&lt;br&gt;&#xD;
            &lt;em&gt;&lt;strong&gt;//&#xD;
It worked&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;&#xD;
        }&lt;br&gt;&#xD;
    }&lt;br&gt;&#xD;
}&lt;/font&gt;&#xD;
          &lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;font color="#0080ff"&gt;&#xD;
            &lt;font color="#000000"&gt;At this point we could return the newly&#xD;
loaded collection back to the client and it would implicitly be returned as a ProxyCollection.&lt;/font&gt;&#xD;
          &lt;/font&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;h3&gt;The Demo&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
We hope to have an entirely new Silverlight / WCF Demo available to coincide with&#xD;
and built from the upcoming Alpha release. Of course will we do a blog post on that&#xD;
as well. When you see it in action you will be amazed how easy it is. We still have&#xD;
a few issues to work out but things are moving very rapidly now. Imagine having what&#xD;
appears to be the full EntitySpaces API available to you on a client somewhere and&#xD;
only needing to have a single 52k assembly present, and it is fully Silverlight compliant&#xD;
as well. This is just one thing our upcoming release will provide.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.entityspaces.net/blog/ct.ashx?id=038f06f1-26c1-401c-8e8b-50d4e5eb4ce0&amp;amp;url=http%3a%2f%2fwww.entityspaces.net%2fblog%2fct.ashx%3fid%3de7740cd5-f5b1-4914-997b-d37ec7426772%26url%3dhttp%253a%252f%252fwww.entityspaces.net%252fblog%252fct.ashx%253fid%253d2676e564-5b8c-4378-ac7e-7e56431e64b7%2526url%253dhttp%25253a%25252f%25252fwww.entityspaces.net%25252fblog%25252fct.ashx%25253fid%25253dd5be1367-24f9-4b7b-9cea-52485f6b01d0%252526url%25253dhttp%2525253a%2525252f%2525252fwww.entityspaces.net%2525252fblog%2525252fct.ashx%2525253fid%2525253d915037c7-923f-4590-bee1-6286854f199f%25252526url%2525253dhttp%252525253a%252525252f%252525252fwww.entityspaces.net%252525252fblog%252525252fct.ashx%252525253fid%252525253d77f66dd3-0e04-4e94-8ad8-dfac8e2b2921%2525252526url%252525253dhttp%25252525253a%25252525252f%25252525252fwww.entityspaces.net%25252525252fblog%25252525252fct.ashx%25252525253fid%25252525253d04570b37-56c1-4a64-b64f-544c252b1b06%252525252526url%25252525253dhttp%2525252525253a%2525252525252f%2525252525252fwww.entityspaces.net%2525252525252f"&gt;&#xD;
            &lt;img border="0" alt="EntitySpaces" src="http://www.entityspaces.net/images/es.png"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
From &lt;strong&gt;Mobile Devices&lt;/strong&gt; to large scale enterprise solutions in need of&#xD;
serious transaction support, EntitySpaces can meet your needs. Whether you’re writing&#xD;
an ASP.NET application with &lt;strong&gt;Medium Trust&lt;/strong&gt; requirements, a &lt;strong&gt;Mono&lt;/strong&gt; application,&#xD;
or a Windows.Forms application, the EntitySpaces architecture is there for you. EntitySpaces&#xD;
is provider independent, which means that you can run the same binary code against&#xD;
any of the supported databases. EntitySpaces is available in both C# and VB.NET. EntitySpaces&#xD;
uses no reflection, no XML files, and sports a tiny foot print of less than 200k.&#xD;
Pound for pound, EntitySpaces is one tough, dependable .NET architecture. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
EntitySpaces LLC&lt;br&gt;&lt;strong&gt;Persistence Layer and Business Objects for Microsoft .NET&lt;br&gt;&lt;/strong&gt;&lt;a href="http://www.entityspaces.net"&gt;http://www.entityspaces.net&lt;/a&gt;&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=O2qcWL_R0Pc:4wZcm1JrkYw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=O2qcWL_R0Pc:4wZcm1JrkYw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=O2qcWL_R0Pc:4wZcm1JrkYw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=O2qcWL_R0Pc:4wZcm1JrkYw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=O2qcWL_R0Pc:4wZcm1JrkYw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?i=O2qcWL_R0Pc:4wZcm1JrkYw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=O2qcWL_R0Pc:4wZcm1JrkYw:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entityspaces/~4/O2qcWL_R0Pc" height="1" width="1"/&gt;</description>
      <category>EntitySpaces</category>
      <category>Silverlight</category>
      <category>WCF</category>
      <category>Webservices</category>
    <feedburner:origLink>http://www.entityspaces.net/blog/2009/06/17/EntitySpaces+DynamicQuery+Serialization+Part+II+WCF+And+Silverlight.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.entityspaces.net/blog/Trackback.aspx?guid=dbdfe058-0e9b-484d-a602-da02af01810a</trackback:ping>
      <pingback:server>http://www.entityspaces.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.entityspaces.net/blog/PermaLink,guid,dbdfe058-0e9b-484d-a602-da02af01810a.aspx</pingback:target>
      <dc:creator>David Parsons</dc:creator>
      
      <title>EntitySpaces &amp;ndash; WCF DynamicQuery Serialization</title>
      <guid isPermaLink="false">http://www.entityspaces.net/blog/PermaLink,guid,dbdfe058-0e9b-484d-a602-da02af01810a.aspx</guid>
      <link>http://feedproxy.google.com/~r/entityspaces/~3/LhSrLgOIkfQ/EntitySpaces+Ndash+WCF+DynamicQuery+Serialization.aspx</link>
      <pubDate>Sun, 14 Jun 2009 03:44:40 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.entityspaces.net%2fblog%2f2009%2f06%2f14%2fEntitySpaces%2bNdash%2bWCF%2bDynamicQuery%2bSerialization.aspx"&gt;&#xD;
          &lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.entityspaces.net%2fblog%2f2009%2f06%2f14%2fEntitySpaces%2bNdash%2bWCF%2bDynamicQuery%2bSerialization.aspx"&gt;&lt;/img&gt;&#xD;
        &lt;/a&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;p&gt;&#xD;
We have decided to use the WCF DataContract approach when serializing our enhanced&#xD;
DynamicQuery’s. In our upcoming alpha release, our DynamicQuery classes now live in&#xD;
a separate assembly that can execute on the client side along with your EntitySpaces&#xD;
proxies without requiring either the EntitySpaces.Core or the EntitySpaces.Interfaces&#xD;
assemblies. The EntitySpaces.DynamicQuery assembly (only 52k in size) is also compatible&#xD;
with Silverlight and can run down inside of the browser. The older .NET 2.0 serialization&#xD;
techniques aren’t supported under Silverlight and having this feature work under Silverlight&#xD;
is important to us. At this moment, the Alpha will require .NET 3.5 SP1 (if you want&#xD;
to use these advanced new features) as it provides the ability to serialize object&#xD;
graphs having circular references. Currently, our DynamicQuery API does have circular&#xD;
references. For instance, SelectColumns have a reference to their parent DynamicQuery&#xD;
object. There is a &lt;em&gt;very good summary of this feature in .NET 3.5 SP1&lt;/em&gt; &lt;a href="http://www.zamd.net/2008/05/20/DataContractSerializerAndIsReferenceProperty.aspx" target="_blank"&gt;&lt;strong&gt;HERE&lt;/strong&gt;&lt;/a&gt; and&#xD;
you might want to take a look at it. More on this later however.&lt;br&gt;&lt;br&gt;&#xD;
Take a look at this very simple query. The example code below shows a query that will&#xD;
ultimately do a join and is selecting columns from both the Employees and Products&#xD;
tables. We also call ToLower, Substring, and Sum.&#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;font color="#0080ff"&gt;ProductsQuery prod = new ProductsQuery(); &lt;/font&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;font color="#0080ff"&gt;EmployeesQuery emp = new EmployeesQuery();&lt;br&gt;&#xD;
emp.Select(emp.LastName.&lt;strong&gt;ToLower&lt;/strong&gt;().&lt;strong&gt;Substring&lt;/strong&gt;(2, 4),&#xD;
prod.QuantityPerUnit.&lt;strong&gt;Sum&lt;/strong&gt;().As("Qty"), emp.FirstName);&lt;/font&gt;&#xD;
          &lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
Here is an example of what one of the internal classes in our DynamicQuery API looks&#xD;
like. It’s ugly because we have to use #if #else #endif syntax, but just be glad you&#xD;
guys never have to write such code. We need to make sure the old and the new serialization&#xD;
both work. Notice the DataContract and DataMember attributes. Again, these are on&#xD;
our internal DynamicQuery API classes. Also, don’t let the WCF term scare you, these&#xD;
features can be used in non WCF scenarios as well.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.entityspaces.net/blog/content/binary/WindowsLiveWriter/EntitySpacesWCFDynamicQuerySerialization_13EFD/WCFClass.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; margin: 5px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WCFClass" border="0" alt="WCFClass" src="http://www.entityspaces.net/blog/content/binary/WindowsLiveWriter/EntitySpacesWCFDynamicQuerySerialization_13EFD/WCFClass_thumb.png" width="722" height="906"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Below is some test code that we use to &lt;strong&gt;manually&lt;/strong&gt; invoke the DataContractSerializer.&#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;font color="#0080ff"&gt;List&amp;lt;System.Type&amp;gt; types = new List&amp;lt;System.Type&amp;gt;();&lt;br&gt;&#xD;
types.Add(typeof(&lt;strong&gt;ProductsQuery&lt;/strong&gt;)); &lt;/font&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;font color="#0080ff"&gt;&#xD;
              &lt;strong&gt;DataContractSerializer&lt;/strong&gt; dcs = new &lt;strong&gt;DataContractSerializer&lt;/strong&gt;(typeof(&lt;strong&gt;EmployeesQuery&lt;/strong&gt;),&#xD;
"Query", "es", types);&lt;br&gt;&#xD;
var ms = new MemoryStream();&lt;br&gt;&#xD;
dcs.WriteObject(ms, q);&lt;br&gt;&#xD;
ms.Seek(0, SeekOrigin.Begin); &lt;/font&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;font color="#0080ff"&gt;StreamReader sr = new StreamReader(ms);&lt;br&gt;&#xD;
string xml = sr.ReadToEnd();&lt;/font&gt;&#xD;
          &lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
Now, if you want to see what the resulting XML looks like click on this &lt;a href="http://www.entityspaces.net/blog/query.xml" target="_blank"&gt;&lt;strong&gt;LINK&lt;/strong&gt;&lt;/a&gt;.&#xD;
Admittedly, the XML is pretty funky because it creates what are essentially pointers&#xD;
to objects that appear in the XML graph multiple times. However, this saves a ton&#xD;
of space and of course prevents an endless loop when trying to serialize circular&#xD;
references. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Our development test harness for this is shown below:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.entityspaces.net/blog/content/binary/WindowsLiveWriter/EntitySpacesWCFDynamicQuerySerialization_13EFD/WCFTestHarness_1.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WCFTestHarness" border="0" alt="WCFTestHarness" src="http://www.entityspaces.net/blog/content/binary/WindowsLiveWriter/EntitySpacesWCFDynamicQuerySerialization_13EFD/WCFTestHarness_thumb_1.png" width="745" height="756"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Of course, when serializing and sending queries in XML over the wire, you are probably&#xD;
going to want to be using HTTPS so that sensitive data cannot be seen or tampered&#xD;
with.&lt;br&gt;&lt;/p&gt;&#xD;
        &lt;h2&gt;What does this all mean?&#xD;
&lt;/h2&gt;&#xD;
        &lt;p&gt;&#xD;
Well, this means that our DynamicQuery’s can optionally be built into your proxy objects&#xD;
and used from the client side just as you would on the server side, only you will&#xD;
send your query over to the server and it will return either a proxy entity or proxy&#xD;
collection. Using our proxies with built in queries will feel like full blown EntitySpaces&#xD;
on the client side. And this will all run under Silverlight as well. Couple that with&#xD;
the massive improvements coming in our DynamicQuery API and that is some very cool&#xD;
functionality. Even if you aren’t interested in all this client side serialization&#xD;
stuff, you will love the enhancements coming in the DynamicQuery API. And remember,&#xD;
this will all work for web services too.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Before we release to production, we might be able to eliminate the circular references&#xD;
in our DynamicQuery object graph, however, this is not an easy thing to do. We do&#xD;
have a working solution via the enhancements in the .NET 3.5 SP1 release with the&#xD;
circular references in place.&#xD;
&lt;/p&gt;&#xD;
        &lt;h2&gt;Breaking Changes?&#xD;
&lt;/h2&gt;&#xD;
        &lt;p&gt;&#xD;
We are renaming quite a few internal classes. Some of them are public. For instance,&#xD;
esWhereItem is now called esComparison and esSelectItem is now called esExpression.&#xD;
Our queries are basically made up of esExpressions which are then combined with operators&#xD;
such as != or == to form esComparisons. The reason we needed to change these names&#xD;
is that they were too specific. We are going to allow you to use complex syntaxes&#xD;
in OrderBy, GroupBy and many other areas within the query syntax itself. Therefore,&#xD;
esWhereItem and esSelectItem just weren’t appropriate names. Most of you never really&#xD;
manually create these objects so it wont impact you at all. However, if you do, you&#xD;
will have to do a find/replace on these if you are manually creating them in code&#xD;
(which is rare).&#xD;
&lt;/p&gt;&#xD;
        &lt;h2&gt;Where are we at?&#xD;
&lt;/h2&gt;&#xD;
        &lt;p&gt;&#xD;
We are pushing very hard for our Alpha release to be released by the end of this month.&#xD;
Right now the carburetor is lying on the floor and we’re all absolutely covered in&#xD;
grease. However, we know how to put this back together again and when we do it’s going&#xD;
to be awesome. We are really excited about this release and the Q2 Wish List Forum&#xD;
will play, and is playing, heavily into what we deliver.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.entityspaces.net/blog/ct.ashx?id=038f06f1-26c1-401c-8e8b-50d4e5eb4ce0&amp;amp;url=http%3a%2f%2fwww.entityspaces.net%2fblog%2fct.ashx%3fid%3de7740cd5-f5b1-4914-997b-d37ec7426772%26url%3dhttp%253a%252f%252fwww.entityspaces.net%252fblog%252fct.ashx%253fid%253d2676e564-5b8c-4378-ac7e-7e56431e64b7%2526url%253dhttp%25253a%25252f%25252fwww.entityspaces.net%25252fblog%25252fct.ashx%25253fid%25253dd5be1367-24f9-4b7b-9cea-52485f6b01d0%252526url%25253dhttp%2525253a%2525252f%2525252fwww.entityspaces.net%2525252fblog%2525252fct.ashx%2525253fid%2525253d915037c7-923f-4590-bee1-6286854f199f%25252526url%2525253dhttp%252525253a%252525252f%252525252fwww.entityspaces.net%252525252fblog%252525252fct.ashx%252525253fid%252525253d77f66dd3-0e04-4e94-8ad8-dfac8e2b2921%2525252526url%252525253dhttp%25252525253a%25252525252f%25252525252fwww.entityspaces.net%25252525252fblog%25252525252fct.ashx%25252525253fid%25252525253d04570b37-56c1-4a64-b64f-544c252b1b06%252525252526url%25252525253dhttp%2525252525253a%2525252525252f%2525252525252fwww.entityspaces.net%2525252525252f"&gt;&#xD;
            &lt;img border="0" alt="EntitySpaces" src="http://www.entityspaces.net/images/es.png"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
From &lt;strong&gt;Mobile Devices&lt;/strong&gt; to large scale enterprise solutions in need of&#xD;
serious transaction support, EntitySpaces can meet your needs. Whether you’re writing&#xD;
an ASP.NET application with &lt;strong&gt;Medium Trust&lt;/strong&gt; requirements, a &lt;strong&gt;Mono&lt;/strong&gt; application,&#xD;
or a Windows.Forms application, the EntitySpaces architecture is there for you. EntitySpaces&#xD;
is provider independent, which means that you can run the same binary code against&#xD;
any of the supported databases. EntitySpaces is available in both C# and VB.NET. EntitySpaces&#xD;
uses no reflection, no XML files, and sports a tiny foot print of less than 200k.&#xD;
Pound for pound, EntitySpaces is one tough, dependable .NET architecture. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
EntitySpaces LLC&lt;br&gt;&lt;strong&gt;Persistence Layer and Business Objects for Microsoft .NET&lt;br&gt;&lt;/strong&gt;&lt;a href="http://www.entityspaces.net"&gt;http://www.entityspaces.net&lt;/a&gt;&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=LhSrLgOIkfQ:WtGK2Vj3heI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=LhSrLgOIkfQ:WtGK2Vj3heI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=LhSrLgOIkfQ:WtGK2Vj3heI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=LhSrLgOIkfQ:WtGK2Vj3heI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=LhSrLgOIkfQ:WtGK2Vj3heI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?i=LhSrLgOIkfQ:WtGK2Vj3heI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=LhSrLgOIkfQ:WtGK2Vj3heI:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entityspaces/~4/LhSrLgOIkfQ" height="1" width="1"/&gt;</description>
      <category>DynamicQuery</category>
      <category>Silverlight</category>
      <category>WCF</category>
      <category>Webservices</category>
    <feedburner:origLink>http://www.entityspaces.net/blog/2009/06/14/EntitySpaces+Ndash+WCF+DynamicQuery+Serialization.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.entityspaces.net/blog/Trackback.aspx?guid=07687d6f-91e9-41c1-8679-291a3bce01ea</trackback:ping>
      <pingback:server>http://www.entityspaces.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.entityspaces.net/blog/PermaLink,guid,07687d6f-91e9-41c1-8679-291a3bce01ea.aspx</pingback:target>
      <dc:creator>Mike Griffin</dc:creator>
      
      <title>A Major Reworking of the EntitySpaces DynamicQuery</title>
      <guid isPermaLink="false">http://www.entityspaces.net/blog/PermaLink,guid,07687d6f-91e9-41c1-8679-291a3bce01ea.aspx</guid>
      <link>http://feedproxy.google.com/~r/entityspaces/~3/GFSF26W-BaI/A+Major+Reworking+Of+The+EntitySpaces+DynamicQuery.aspx</link>
      <pubDate>Thu, 11 Jun 2009 12:39:53 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
We are implementing some major changes under the hood of our DynamicQuery API engine.&#xD;
We are reworking the internals while preserving the API in such a way that you will&#xD;
be able to use the full query syntax in OrderBy’s, GroupBy’s, in the On() statement&#xD;
of a join and so on. We are also making the DynamicQuery Serializable. It’s really&#xD;
too bad there isn’t an attribute that can make private data members serializable by&#xD;
the XML serialization system(s). What a major shorting coming of the .NET Framework&#xD;
(unless we are overlooking something). &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
So, basically, we are tearing the DynamicQuery apart, and when we put it back together&#xD;
it should be exponentially more powerful and be ready for additional features like&#xD;
the Having Clause and others. Like the ES2009 release, this next release should prove&#xD;
to be a major step forward and provide you with the additional horse power you have&#xD;
been asking for. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.entityspaces.net/blog/ct.ashx?id=038f06f1-26c1-401c-8e8b-50d4e5eb4ce0&amp;amp;url=http%3a%2f%2fwww.entityspaces.net%2fblog%2fct.ashx%3fid%3de7740cd5-f5b1-4914-997b-d37ec7426772%26url%3dhttp%253a%252f%252fwww.entityspaces.net%252fblog%252fct.ashx%253fid%253d2676e564-5b8c-4378-ac7e-7e56431e64b7%2526url%253dhttp%25253a%25252f%25252fwww.entityspaces.net%25252fblog%25252fct.ashx%25253fid%25253dd5be1367-24f9-4b7b-9cea-52485f6b01d0%252526url%25253dhttp%2525253a%2525252f%2525252fwww.entityspaces.net%2525252fblog%2525252fct.ashx%2525253fid%2525253d915037c7-923f-4590-bee1-6286854f199f%25252526url%2525253dhttp%252525253a%252525252f%252525252fwww.entityspaces.net%252525252fblog%252525252fct.ashx%252525253fid%252525253d77f66dd3-0e04-4e94-8ad8-dfac8e2b2921%2525252526url%252525253dhttp%25252525253a%25252525252f%25252525252fwww.entityspaces.net%25252525252fblog%25252525252fct.ashx%25252525253fid%25252525253d04570b37-56c1-4a64-b64f-544c252b1b06%252525252526url%25252525253dhttp%2525252525253a%2525252525252f%2525252525252fwww.entityspaces.net%2525252525252f"&gt;&#xD;
            &lt;img border="0" alt="EntitySpaces" src="http://www.entityspaces.net/images/es.png"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
From &lt;strong&gt;Mobile Devices&lt;/strong&gt; to large scale enterprise solutions in need of&#xD;
serious transaction support, EntitySpaces can meet your needs. Whether you’re writing&#xD;
an ASP.NET application with &lt;strong&gt;Medium Trust&lt;/strong&gt; requirements, a &lt;strong&gt;Mono&lt;/strong&gt; application,&#xD;
or a Windows.Forms application, the EntitySpaces architecture is there for you. EntitySpaces&#xD;
is provider independent, which means that you can run the same binary code against&#xD;
any of the supported databases. EntitySpaces is available in both C# and VB.NET. EntitySpaces&#xD;
uses no reflection, no XML files, and sports a tiny foot print of less than 200k.&#xD;
Pound for pound, EntitySpaces is one tough, dependable .NET architecture. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
EntitySpaces LLC&lt;br&gt;&lt;strong&gt;Persistence Layer and Business Objects for Microsoft .NET&lt;br&gt;&lt;/strong&gt;&lt;a href="http://www.entityspaces.net"&gt;http://www.entityspaces.net&lt;/a&gt;&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=GFSF26W-BaI:xyjiQkWDH34:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=GFSF26W-BaI:xyjiQkWDH34:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=GFSF26W-BaI:xyjiQkWDH34:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=GFSF26W-BaI:xyjiQkWDH34:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=GFSF26W-BaI:xyjiQkWDH34:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?i=GFSF26W-BaI:xyjiQkWDH34:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=GFSF26W-BaI:xyjiQkWDH34:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entityspaces/~4/GFSF26W-BaI" height="1" width="1"/&gt;</description>
      <category>DynamicQuery</category>
    <feedburner:origLink>http://www.entityspaces.net/blog/2009/06/11/A+Major+Reworking+Of+The+EntitySpaces+DynamicQuery.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.entityspaces.net/blog/Trackback.aspx?guid=4d9755f9-f2ed-42ae-b8f6-dffa28b6f3bc</trackback:ping>
      <pingback:server>http://www.entityspaces.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.entityspaces.net/blog/PermaLink,guid,4d9755f9-f2ed-42ae-b8f6-dffa28b6f3bc.aspx</pingback:target>
      <dc:creator>David Parsons</dc:creator>
      
      <title>Expect an ES2009 Q3 Alpha on June 29th, 2009</title>
      <guid isPermaLink="false">http://www.entityspaces.net/blog/PermaLink,guid,4d9755f9-f2ed-42ae-b8f6-dffa28b6f3bc.aspx</guid>
      <link>http://feedproxy.google.com/~r/entityspaces/~3/-_IyBMlqon8/Expect+An+ES2009+Q3+Alpha+On+June+29th+2009.aspx</link>
      <pubDate>Fri, 29 May 2009 03:36:06 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
We wanted to update you on our plans for our next ES2009 Release. On June 29th we&#xD;
plan to make available an Alpha version of what will eventually be our ES2009 Q3 release,&#xD;
it’s too late to call it our Q2 release however things are underway. We had a very&#xD;
productive team meeting tonight. Our Alpha will have these features:&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
A new assembly called EntitySpaces.DynamicQuery which will contain the base classes&#xD;
and support for our DynamicQuery API. This new assembly does not reference System.Data&#xD;
so it will be able to run under Silverlight inside of the browser itself. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
The ES2009 Q3 DynamicQueries will be fully serializable and will not require EntitySpaces.Core&#xD;
or EntitySpaces.Interfaces on the client. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
The ES2009 Q3 DynamicQueries can optionally be built into your Proxy/Stub classes&#xD;
by merely checking a checkbox which means you can send your query to the server and&#xD;
get back an entity or collection.&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
Those are the main features that will be in the Alpha. However, we have already made&#xD;
many fixes suggested in our Q2 Wish List Forum and will be drawing from those suggestions&#xD;
heavily, including major DynamicQuery API enhancements. In the ES2009 Q3 Alpha version&#xD;
only SQL Server will be supported. We want to make sure we have the changes right&#xD;
before we replicate the changes across all of our providers as we have a lot of them&#xD;
to maintain. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
We will be doing a weekly blog post that will outline our progress and let you know&#xD;
what enhancements have been made and what bugs have been fixed. Our goal is to greatly&#xD;
expand the reach of EntitySpaces making sure it can go where ever you need to go,&#xD;
including greatly enhancing our DynamicQuery API. Of course, fixing any existing bugs&#xD;
too will be a priority.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.entityspaces.net/blog/ct.ashx?id=038f06f1-26c1-401c-8e8b-50d4e5eb4ce0&amp;amp;url=http%3a%2f%2fwww.entityspaces.net%2fblog%2fct.ashx%3fid%3de7740cd5-f5b1-4914-997b-d37ec7426772%26url%3dhttp%253a%252f%252fwww.entityspaces.net%252fblog%252fct.ashx%253fid%253d2676e564-5b8c-4378-ac7e-7e56431e64b7%2526url%253dhttp%25253a%25252f%25252fwww.entityspaces.net%25252fblog%25252fct.ashx%25253fid%25253dd5be1367-24f9-4b7b-9cea-52485f6b01d0%252526url%25253dhttp%2525253a%2525252f%2525252fwww.entityspaces.net%2525252fblog%2525252fct.ashx%2525253fid%2525253d915037c7-923f-4590-bee1-6286854f199f%25252526url%2525253dhttp%252525253a%252525252f%252525252fwww.entityspaces.net%252525252fblog%252525252fct.ashx%252525253fid%252525253d77f66dd3-0e04-4e94-8ad8-dfac8e2b2921%2525252526url%252525253dhttp%25252525253a%25252525252f%25252525252fwww.entityspaces.net%25252525252fblog%25252525252fct.ashx%25252525253fid%25252525253d04570b37-56c1-4a64-b64f-544c252b1b06%252525252526url%25252525253dhttp%2525252525253a%2525252525252f%2525252525252fwww.entityspaces.net%2525252525252f"&gt;&#xD;
            &lt;img border="0" alt="EntitySpaces" src="http://www.entityspaces.net/images/es.png"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
From &lt;strong&gt;Mobile Devices&lt;/strong&gt; to large scale enterprise solutions in need of&#xD;
serious transaction support, EntitySpaces can meet your needs. Whether you’re writing&#xD;
an ASP.NET application with &lt;strong&gt;Medium Trust&lt;/strong&gt; requirements, a &lt;strong&gt;Mono&lt;/strong&gt; application,&#xD;
or a Windows.Forms application, the EntitySpaces architecture is there for you. EntitySpaces&#xD;
is provider independent, which means that you can run the same binary code against&#xD;
any of the supported databases. EntitySpaces is available in both C# and VB.NET. EntitySpaces&#xD;
uses no reflection, no XML files, and sports a tiny foot print of less than 200k.&#xD;
Pound for pound, EntitySpaces is one tough, dependable .NET architecture. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
EntitySpaces LLC&lt;br&gt;&lt;strong&gt;Persistence Layer and Business Objects for Microsoft .NET&lt;br&gt;&lt;/strong&gt;&lt;a href="http://www.entityspaces.net"&gt;http://www.entityspaces.net&lt;/a&gt;&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=-_IyBMlqon8:dIv3esfhlFw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=-_IyBMlqon8:dIv3esfhlFw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=-_IyBMlqon8:dIv3esfhlFw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=-_IyBMlqon8:dIv3esfhlFw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=-_IyBMlqon8:dIv3esfhlFw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?i=-_IyBMlqon8:dIv3esfhlFw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=-_IyBMlqon8:dIv3esfhlFw:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entityspaces/~4/-_IyBMlqon8" height="1" width="1"/&gt;</description>
      <category>DynamicQuery</category>
      <category>Silverlight</category>
    <feedburner:origLink>http://www.entityspaces.net/blog/2009/05/29/Expect+An+ES2009+Q3+Alpha+On+June+29th+2009.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.entityspaces.net/blog/Trackback.aspx?guid=4ea4a3ab-6327-498e-9206-f5756805f418</trackback:ping>
      <pingback:server>http://www.entityspaces.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.entityspaces.net/blog/PermaLink,guid,4ea4a3ab-6327-498e-9206-f5756805f418.aspx</pingback:target>
      <dc:creator>Mike Griffin</dc:creator>
      
      <title>Coming Off a Much Needed Break</title>
      <guid isPermaLink="false">http://www.entityspaces.net/blog/PermaLink,guid,4ea4a3ab-6327-498e-9206-f5756805f418.aspx</guid>
      <link>http://feedproxy.google.com/~r/entityspaces/~3/IXXLG0YCw7k/Coming+Off+A+Much+Needed+Break.aspx</link>
      <pubDate>Mon, 11 May 2009 11:23:59 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
The EntitySpaces team has been on a grueling schedule for over 3 years and we are&#xD;
just coming off a much needed break. Our last blog post was on March 1st which is&#xD;
admittedly two months ago, and that’s far too long. We are well rested and ramping&#xD;
up for what is going to be a great release. You will begin to see the heightened activity&#xD;
around here you are used to seeing and that is a good thing. We are really going after&#xD;
full Silverlight support via our DynamicQuery API and more and will have more news&#xD;
on that soon. Our team meetings are on Thursdays and we will be talking about two&#xD;
things on our next meeting, the Q2 release and the roadmap. So watch for another post&#xD;
soon that will provide you with much of the information you have been requesting. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.entityspaces.net/blog/ct.ashx?id=038f06f1-26c1-401c-8e8b-50d4e5eb4ce0&amp;amp;url=http%3a%2f%2fwww.entityspaces.net%2fblog%2fct.ashx%3fid%3de7740cd5-f5b1-4914-997b-d37ec7426772%26url%3dhttp%253a%252f%252fwww.entityspaces.net%252fblog%252fct.ashx%253fid%253d2676e564-5b8c-4378-ac7e-7e56431e64b7%2526url%253dhttp%25253a%25252f%25252fwww.entityspaces.net%25252fblog%25252fct.ashx%25253fid%25253dd5be1367-24f9-4b7b-9cea-52485f6b01d0%252526url%25253dhttp%2525253a%2525252f%2525252fwww.entityspaces.net%2525252fblog%2525252fct.ashx%2525253fid%2525253d915037c7-923f-4590-bee1-6286854f199f%25252526url%2525253dhttp%252525253a%252525252f%252525252fwww.entityspaces.net%252525252fblog%252525252fct.ashx%252525253fid%252525253d77f66dd3-0e04-4e94-8ad8-dfac8e2b2921%2525252526url%252525253dhttp%25252525253a%25252525252f%25252525252fwww.entityspaces.net%25252525252fblog%25252525252fct.ashx%25252525253fid%25252525253d04570b37-56c1-4a64-b64f-544c252b1b06%252525252526url%25252525253dhttp%2525252525253a%2525252525252f%2525252525252fwww.entityspaces.net%2525252525252f"&gt;&#xD;
            &lt;img alt="EntitySpaces" src="http://www.entityspaces.net/images/es.png" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
From &lt;strong&gt;Mobile Devices&lt;/strong&gt; to large scale enterprise solutions in need of&#xD;
serious transaction support, EntitySpaces can meet your needs. Whether you’re writing&#xD;
an ASP.NET application with &lt;strong&gt;Medium Trust&lt;/strong&gt; requirements, a &lt;strong&gt;Mono&lt;/strong&gt; application,&#xD;
or a Windows.Forms application, the EntitySpaces architecture is there for you. EntitySpaces&#xD;
is provider independent, which means that you can run the same binary code against&#xD;
any of the supported databases. EntitySpaces is available in both C# and VB.NET. EntitySpaces&#xD;
uses no reflection, no XML files, and sports a tiny foot print of less than 200k.&#xD;
Pound for pound, EntitySpaces is one tough, dependable .NET architecture. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
EntitySpaces LLC&lt;br&gt;&lt;strong&gt;Persistence Layer and Business Objects for Microsoft .NET&lt;br&gt;&lt;/strong&gt;&lt;a href="http://www.entityspaces.net"&gt;http://www.entityspaces.net&lt;/a&gt;&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=IXXLG0YCw7k:INP9xh-Mu5Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=IXXLG0YCw7k:INP9xh-Mu5Q:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=IXXLG0YCw7k:INP9xh-Mu5Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=IXXLG0YCw7k:INP9xh-Mu5Q:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=IXXLG0YCw7k:INP9xh-Mu5Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?i=IXXLG0YCw7k:INP9xh-Mu5Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entityspaces/~4/IXXLG0YCw7k" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://www.entityspaces.net/blog/2009/05/11/Coming+Off+A+Much+Needed+Break.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.entityspaces.net/blog/Trackback.aspx?guid=4c6e381e-a9ad-4ae4-9fbd-628668eb3b94</trackback:ping>
      <pingback:server>http://www.entityspaces.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.entityspaces.net/blog/PermaLink,guid,4c6e381e-a9ad-4ae4-9fbd-628668eb3b94.aspx</pingback:target>
      <dc:creator>Mike Griffin</dc:creator>
      
      <title>EntitySpaces 2009 Q2 - Can you Query me Now?</title>
      <guid isPermaLink="false">http://www.entityspaces.net/blog/PermaLink,guid,4c6e381e-a9ad-4ae4-9fbd-628668eb3b94.aspx</guid>
      <link>http://feedproxy.google.com/~r/entityspaces/~3/2u1Pd4UCru4/EntitySpaces+2009+Q2+Can+You+Query+Me+Now.aspx</link>
      <pubDate>Sun, 01 Mar 2009 18:31:36 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.entityspaces.net%2fblog%2f2009%2f03%2f01%2fEntitySpaces%2b2009%2bQ2%2bCan%2bYou%2bQuery%2bMe%2bNow.aspx"&gt;&#xD;
          &lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.entityspaces.net%2fblog%2f2009%2f03%2f01%2fEntitySpaces%2b2009%2bQ2%2bCan%2bYou%2bQuery%2bMe%2bNow.aspx" border="0" alt="kick it on DotNetKicks.com"&gt;&lt;/img&gt;&#xD;
        &lt;/a&gt;     &lt;a rev="vote-for" href="http://dotnetshoutout.com/Can-you-Query-me-now"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http%3A%2F%2Fwww.entityspaces.net%2Fblog%2F2009%2F03%2F01%2FEntitySpaces%2B2009%2BQ2%2BCan%2BYou%2BQuery%2BMe%2BNow.aspx" style="border:0px"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br&gt;&lt;h2&gt;Can you Query me now?&lt;a href="http://www.entityspaces.net/blog/content/binary/WindowsLiveWriter/d20e613c55c2_881E/mobile_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="128" alt="mobile" src="http://www.entityspaces.net/blog/content/binary/WindowsLiveWriter/d20e613c55c2_881E/mobile_thumb.png" width="128" align="right" border="0"&gt;&lt;/img&gt;&lt;/a&gt; (Silverlight,&#xD;
WCF, Webservices, and Mobile)&#xD;
&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&#xD;
EntitySpaces 2009 Q2 is going to &lt;strong&gt;revolutionize your ability to use the EntitySpaces&#xD;
2009 architecture on the client side of any two-way conversation&lt;/strong&gt;, &lt;strong&gt;whether&#xD;
it be a &lt;font color="#0000ff"&gt;&lt;u&gt;Silverlight&lt;/u&gt;&lt;/font&gt;, &lt;font color="#0000ff"&gt;WCF&lt;/font&gt;,&#xD;
or a &lt;font color="#0000ff"&gt;webservices&lt;/font&gt; conversation&lt;/strong&gt;. In fact, &lt;em&gt;you&#xD;
will be able to work on the client side as if the full EntitySpaces architecture was&#xD;
at your disposal &lt;/em&gt;but without actually requiring the EntitySpaces architecture&#xD;
be present on the client. "&lt;em&gt;&lt;strong&gt;But how can that be?"&lt;/strong&gt;&lt;/em&gt; you wonder.&#xD;
Continue reading and we will explain. &#xD;
&lt;br&gt;&lt;br&gt;&#xD;
EntitySpaces has always had good support for mobile applications via our Compact Framework&#xD;
support. We even generate "smarter" proxies than the ones generated by Visual Studio&#xD;
for WCF or webservices scenarios. Our proxies maintain row state such as (inserted,&#xD;
updated, and deleted) such that all that is required is that you send the data back&#xD;
to the server and commit it.  But this client side proxy support is about to&#xD;
become much, much more powerful and can be used for non-mobile scenarios such as Silverlight,&#xD;
WCF, and webservices. With our enhanced proxies (especially for mobile applications&#xD;
where space is limited) this can prove to be a very powerful way to use EntitySpaces.&#xD;
We like to think of this as a sort of "&lt;strong&gt;Virtual EntitySpaces Mode&lt;/strong&gt;"&#xD;
as it feels just like EntitySpaces only it really doesn't require the full architecture&#xD;
on the client side. So, let's dive into this and see how it works starting with a&#xD;
review of our current proxy support.&lt;br&gt;&#xD;
 &#xD;
&lt;/p&gt;&lt;h2&gt;Our Current Client Side Proxy Functionality&#xD;
&lt;/h2&gt;&lt;p&gt;&#xD;
The EntitySpaces Client Side proxies offer the ability to easily work with EntitySpaces&#xD;
on the client side of a two way conversation without requiring any of the EntitySpaces&#xD;
assemblies. Our proxies also track the dirty state for you so that when you send data&#xD;
back to the server EntitySpaces automatically knows whether to insert, update, or&#xD;
delete the data. This functionality is already built into the currently shipping ES2009&#xD;
Q1 release. The template that you use to create the Client Side proxies is highlighted&#xD;
below.&#xD;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.entityspaces.net/blog/content/binary/WindowsLiveWriter/d20e613c55c2_881E/ProxyStubTemplate_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="398" alt="ProxyStubTemplate" src="http://www.entityspaces.net/blog/content/binary/WindowsLiveWriter/d20e613c55c2_881E/ProxyStubTemplate_thumb_2.png" width="362" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&#xD;
When you execute the "Client Side Proxy/Stub" template there are currently two classes&#xD;
generated for you, the Collection and Entity class. Shown below are the proxy stub&#xD;
classes that were generated by the "Client Side Proxy/Stub" template for the Microsoft&#xD;
Northwind Suppliers table. Notice that the classes do not inherit from any base classes&#xD;
nor do they require any of the EntitySpaces assemblies. Also, in the SuppliersProxyStub&#xD;
(entity) class notice the &lt;strong&gt;esRowState&lt;/strong&gt; property. This is the property&#xD;
that EntitySpaces uses to determine the state of the entity (inserted, updated, or&#xD;
deleted) and the proxy is smart enough to set this property for you based on the actions&#xD;
you take (you do not have to worry about setting it). These two classes are extremely&#xD;
small and lightweight in size.&#xD;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.entityspaces.net/blog/content/binary/WindowsLiveWriter/d20e613c55c2_881E/proxystub1_1.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 10px 0px; border-right-width: 0px" height="506" alt="proxystub1" src="http://www.entityspaces.net/blog/content/binary/WindowsLiveWriter/d20e613c55c2_881E/proxystub1_thumb_1.png" width="264" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&#xD;
With these two classes you work with data on the client side of a conversation without&#xD;
EntitySpaces being present, but something is missing, a feature that hooks most EntitySpaces&#xD;
developer once they start using it.&#xD;
&lt;/p&gt;&lt;h2&gt;New Functionality Coming in ES2009 Q2&#xD;
&lt;/h2&gt;&lt;p&gt;&#xD;
In our ES2009 Q2 release the Client Side template will now generate a new, optional,&#xD;
third class, the "QueryProxyStub" class. Yes, you guessed it, the full EntitySpaces&#xD;
DynamicQuery API now available on the client side of a two-way conversation. Take&#xD;
a look at the SuppliesQueryProxyStub class below. This class is just like the DynamicQuery&#xD;
classes you are accustomed to using already only it inherits from a new class named&#xD;
esDynamicQuerySerializable. If you take a close look at the methods in the esDynamicQuerySerializable&#xD;
class you will notice that there are no methods to load or execute the query itself&#xD;
(more on this later). This query can only be created, defined, and then serialized&#xD;
back to the server (a very cool way to write a Silverlight application). If you have&#xD;
never seen how powerful our DynamicQuery API is check out our &lt;strong&gt;&lt;em&gt;Showcase&lt;/em&gt;&lt;/strong&gt; post &lt;a title="Dynamic Query Showcase" href="http://www.entityspaces.net/blog/2008/03/03/EntitySpaces+2008+Dynamic+SubQuery+Showcase.aspx" target="_blank"&gt;&lt;strong&gt;HERE&lt;/strong&gt;&lt;/a&gt;.&#xD;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.entityspaces.net/blog/content/binary/WindowsLiveWriter/d20e613c55c2_881E/proxystub2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="427" alt="proxystub2" src="http://www.entityspaces.net/blog/content/binary/WindowsLiveWriter/d20e613c55c2_881E/proxystub2_thumb.png" width="660" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&#xD;
Now, imagine that you're on the client side of a WCF conversation or even &lt;strong&gt;running&#xD;
down inside the browser in a Silverlight application&lt;/strong&gt; and you need to query&#xD;
your Supplier table for data. No problem, here is how you would accomplish that task&#xD;
with the new proxy query class. &#xD;
&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;font color="#0080ff"&gt;&lt;strong&gt;SuppliersQueryProxyStub&lt;/strong&gt;&lt;/font&gt; sQuery = new &lt;font color="#0080ff"&gt;&lt;strong&gt;SuppliersQueryProxyStub&lt;/strong&gt;&lt;/font&gt; ();&lt;br&gt;&#xD;
sQuery.&lt;font color="#0000ff"&gt;&lt;strong&gt;Select&lt;/strong&gt;&lt;/font&gt;(sQuery.SupplierID, sQuery.Region);&lt;br&gt;&#xD;
sQuery.&lt;font color="#0000ff"&gt;&lt;strong&gt;Where&lt;/strong&gt;&lt;/font&gt;(sQuery.Country == "Spain");&#xD;
&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&#xD;
Notice that we do not call sQuery.Load(). This is because the esDynamicQuerySerializable&#xD;
has no way to actually load data, it represents the query only, the ability to load&#xD;
it (or execute it) exists on the server side of the conversation. Also, the full join&#xD;
syntax is available although it is not shown above in the query. The proxy queries&#xD;
are fully serializable which is the key to how it works. At a very high level this&#xD;
is how you would fetch data from the server, imagine a method like this:&#xD;
&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&#xD;
public &lt;font color="#0080ff"&gt;&lt;strong&gt;SuppliersCollectionProxyStub&lt;/strong&gt;&lt;/font&gt; FetchSupplers(&lt;font color="#0080ff"&gt;&lt;strong&gt;SuppliersQueryProxyStub&lt;/strong&gt;&lt;/font&gt; query)&#xD;
&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&#xD;
You would transmit the proxy stub query to the server, where it will be deserialized,&#xD;
assigned to a full server query object, executed, and then the resulting proxy stub&#xD;
collection would be returned. The code will look very much like this.&#xD;
&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&#xD;
public SuppliersCollectionProxyStub FetchSupplers(SuppliersQueryProxyStub query)&lt;br&gt;&#xD;
{&lt;br&gt;&#xD;
    SuppliersCollection coll = new SuppliersCollection();&lt;br&gt;&#xD;
    &lt;strong&gt;&lt;em&gt;&lt;font color="#0080ff"&gt;coll.Query = query as esDynamicQuerySerializable&lt;/font&gt;;&lt;br&gt;&lt;/em&gt;&lt;/strong&gt;    coll.Query.Load(); &#xD;
&lt;/p&gt;&lt;p&gt;&#xD;
    // more code below ...&lt;br&gt;&#xD;
}&#xD;
&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&#xD;
Notice how we are able to merely assign our SuppliersQueryProxyStub object to the&#xD;
full blown SuppliersCollection's query object and then execute it. Could it be any&#xD;
easier?&#xD;
&lt;/p&gt;&lt;h2&gt;EntitiySpaces.DynamicQuery - A New Assembly&#xD;
&lt;/h2&gt;&lt;p&gt;&#xD;
Just where does this esDynamicQuerySerializable class that our SuppliersQueryProxyStub&#xD;
inhertis from live? The answer is a new assembly that will ship with ES2009 Q2 named&#xD;
EntitySpaces.DynamicQuery.dll. This is very tiny (less that 50k) assembly that only&#xD;
references System.Core and System.XML and is fully Silverlight 2.0 compliant. It &lt;strong&gt;does&#xD;
not&lt;/strong&gt; link with EntitySpaces.Core or EntitySpaces.Interfaces. However, even&#xD;
better we are not maintaining two separate DynamicQuery API's. This new assembly and&#xD;
class is used on the server side as well, which means this new assembly is required&#xD;
now for EntitySpaces applications. Look at the diagram below which shows the hierarchy&#xD;
of a normal DynamicQuery class as generated by the ES2009 Q2 Generated Master template.&#xD;
This preserves your current API.&#xD;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.entityspaces.net/blog/content/binary/WindowsLiveWriter/d20e613c55c2_881E/proxystub3.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="987" alt="proxystub3" src="http://www.entityspaces.net/blog/content/binary/WindowsLiveWriter/d20e613c55c2_881E/proxystub3_thumb.png" width="619" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&#xD;
Notice the the original base class esDynamicQuery is still there, however, it now&#xD;
inherits from the esDynamicQuerySerializable class. In order to run under Silverlight&#xD;
our client side DynamicQuery assembly could not reference the System.Data namespace,&#xD;
so we have separated the original esDynamicQuery into the two classes you see above. &#xD;
&lt;/p&gt;&lt;h2&gt;What Does it All Mean?&#xD;
&lt;/h2&gt;&lt;p&gt;&#xD;
Our new enhanced client side proxies will allow you to have a "Virtual EntitySpaces&#xD;
Architecture" running almost anywhere including mobile devices, Silverlight applications,&#xD;
WCF scenarios, and webservices. It will act and feel just like EntitySpaces Of course,&#xD;
we can already run in all of these environments but with ES2009 Q2 and the addition&#xD;
of the DynamicQuery proxy and the massive DynamicQuery API enhancements that are also&#xD;
coming you will truly be blown away by the productivity and reach of the EntitySpaces&#xD;
Architecture. The only thing that is required on the client to make this all possible&#xD;
is the tiny EntitySpaces.DynamicQuery assembly (less than 50k) which is completely&#xD;
Silverlight compliant. There are other enhancements that will be made to the proxies&#xD;
but we will keep them small and lightweight. &#xD;
&lt;/p&gt;&lt;p&gt;&#xD;
There are also a few technical issues we must solve yet, though most have been worked&#xD;
out. For example, where do the extra properties go when you bring them back via a&#xD;
join? In the full server side classes this is handled gracefully, and we make those&#xD;
properties appear as if there are in your strongly typed entities via sophisticated&#xD;
binding support. How do we do this on the client side? These are a few of the issues&#xD;
we must solve yet. &#xD;
&lt;/p&gt;&lt;p&gt;&#xD;
We find this new support terribly exciting and it presents almost boundless usage&#xD;
scenarios. Especially when you factor in the enhancements we are making to DynamicQuery&#xD;
API itself, but that is the topic for another post. And keep those comments coming&#xD;
in our ES2009 Wish List forum, we are listening and will implement a lot of your requested&#xD;
features. &#xD;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.entityspaces.net/blog/ct.ashx?id=038f06f1-26c1-401c-8e8b-50d4e5eb4ce0&amp;amp;url=http%3a%2f%2fwww.entityspaces.net%2fblog%2fct.ashx%3fid%3de7740cd5-f5b1-4914-997b-d37ec7426772%26url%3dhttp%253a%252f%252fwww.entityspaces.net%252fblog%252fct.ashx%253fid%253d2676e564-5b8c-4378-ac7e-7e56431e64b7%2526url%253dhttp%25253a%25252f%25252fwww.entityspaces.net%25252fblog%25252fct.ashx%25253fid%25253dd5be1367-24f9-4b7b-9cea-52485f6b01d0%252526url%25253dhttp%2525253a%2525252f%2525252fwww.entityspaces.net%2525252fblog%2525252fct.ashx%2525253fid%2525253d915037c7-923f-4590-bee1-6286854f199f%25252526url%2525253dhttp%252525253a%252525252f%252525252fwww.entityspaces.net%252525252fblog%252525252fct.ashx%252525253fid%252525253d77f66dd3-0e04-4e94-8ad8-dfac8e2b2921%2525252526url%252525253dhttp%25252525253a%25252525252f%25252525252fwww.entityspaces.net%25252525252fblog%25252525252fct.ashx%25252525253fid%25252525253d04570b37-56c1-4a64-b64f-544c252b1b06%252525252526url%25252525253dhttp%2525252525253a%2525252525252f%2525252525252fwww.entityspaces.net%2525252525252f"&gt;&lt;img alt="EntitySpaces" src="http://www.entityspaces.net/images/es.png" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&#xD;
From &lt;strong&gt;Mobile Devices&lt;/strong&gt; to large scale enterprise solutions in need of&#xD;
serious transaction support, EntitySpaces can meet your needs. Whether you’re writing&#xD;
an ASP.NET application with &lt;strong&gt;Medium Trust&lt;/strong&gt; requirements, a &lt;strong&gt;Mono&lt;/strong&gt; application,&#xD;
or a Windows.Forms application, the EntitySpaces architecture is there for you. EntitySpaces&#xD;
is provider independent, which means that you can run the same binary code against&#xD;
any of the supported databases. EntitySpaces is available in both C# and VB.NET. EntitySpaces&#xD;
uses no reflection, no XML files, and sports a tiny foot print of less than 200k.&#xD;
Pound for pound, EntitySpaces is one tough, dependable .NET architecture. &#xD;
&lt;/p&gt;&lt;p&gt;&#xD;
EntitySpaces LLC&lt;br&gt;&lt;strong&gt;Persistence Layer and Business Objects for Microsoft .NET&lt;br&gt;&lt;/strong&gt;&lt;a href="http://www.entityspaces.net"&gt;http://www.entityspaces.net&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=2u1Pd4UCru4:jGJXzJYW2Bs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=2u1Pd4UCru4:jGJXzJYW2Bs:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=2u1Pd4UCru4:jGJXzJYW2Bs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=2u1Pd4UCru4:jGJXzJYW2Bs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=2u1Pd4UCru4:jGJXzJYW2Bs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?i=2u1Pd4UCru4:jGJXzJYW2Bs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entityspaces/~4/2u1Pd4UCru4" height="1" width="1"/&gt;</description>
      <category>Compact Framework</category>
      <category>DynamicQuery</category>
      <category>EntitySpaces</category>
      <category>Silverlight</category>
      <category>WCF</category>
      <category>Webservices</category>
    <feedburner:origLink>http://www.entityspaces.net/blog/2009/03/01/EntitySpaces+2009+Q2+Can+You+Query+Me+Now.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.entityspaces.net/blog/Trackback.aspx?guid=6e0fb18a-39d3-4a75-9c8a-8957e05caa5b</trackback:ping>
      <pingback:server>http://www.entityspaces.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.entityspaces.net/blog/PermaLink,guid,6e0fb18a-39d3-4a75-9c8a-8957e05caa5b.aspx</pingback:target>
      <dc:creator>Mike Griffin</dc:creator>
      
      <title>EntitySpaces 2009 Announces Support for Sybase SQL Anywhere</title>
      <guid isPermaLink="false">http://www.entityspaces.net/blog/PermaLink,guid,6e0fb18a-39d3-4a75-9c8a-8957e05caa5b.aspx</guid>
      <link>http://feedproxy.google.com/~r/entityspaces/~3/PWJda3A6Cns/EntitySpaces+2009+Announces+Support+For+Sybase+SQL+Anywhere.aspx</link>
      <pubDate>Wed, 25 Feb 2009 03:46:20 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.entityspaces.net%2fblog%2f2009%2f02%2f25%2fEntitySpaces%2b2009%2bAnnounces%2bSupport%2bFor%2bSybase%2bSQL%2bAnywhere.aspx"&gt;&#xD;
          &lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.entityspaces.net%2fblog%2f2009%2f02%2f25%2fEntitySpaces%2b2009%2bAnnounces%2bSupport%2bFor%2bSybase%2bSQL%2bAnywhere.aspx" border="0" alt="kick it on DotNetKicks.com"&gt;&lt;/img&gt;&#xD;
        &lt;/a&gt;     &lt;a rev="vote-for" href="http://dotnetshoutout.com/EntitySpaces-2009-Announces-Support-for-Sybase-SQL-Anywhere"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http%3A%2F%2Fwww.entityspaces.net%2Fblog%2F2009%2F02%2F25%2FEntitySpaces%2B2009%2BAnnounces%2BSupport%2BFor%2BSybase%2BSQL%2BAnywhere.aspx" style="border:0px"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;&#xD;
EntitySpaces is pleased to announce support for the &lt;a href="http://www.sybase.com/products/databasemanagement/sqlanywhere" target="_blank"&gt;Sybase&#xD;
SQL Anywhere Database Management System&lt;/a&gt;. Our plan is to support iAnywhere for&#xD;
both high end server applications as well as on the Compact Framework for mobile applications&#xD;
which will further strengthen EntitySpaces' mobile abilities (we already support Microsoft&#xD;
SQL CE and VistaDB for mobile applications). If there is demand we will consider supporting&#xD;
the Sybase SQL Anywhere UltraLite version as well.&#xD;
&lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;&lt;p&gt;&lt;br&gt;&#xD;
SQL Anywhere provides data management and exchange technologies designed for database-powered&#xD;
applications that operate in frontline environments without onsite IT support. It&#xD;
offers enterprise-caliber features in a database that is easily embedded and widely&#xD;
deployed in server, desktop, remote office and mobile applications. Sybase iAnywhere&#xD;
has been named number one in the worldwide mobile device management enterprise software&#xD;
market for the seventh consecutive year.&#xD;
&lt;/p&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;a href="http://www.entityspaces.net/blog/content/binary/WindowsLiveWriter/EntitySpaces2009AnnouncesSupportforSybas_13DB4/sybase_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="557" alt="sybase" src="http://www.entityspaces.net/blog/content/binary/WindowsLiveWriter/EntitySpaces2009AnnouncesSupportforSybas_13DB4/sybase_thumb_1.png" width="626" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&#xD;
The image above shows EntitySpaces 2009 walking the SQL Anywhere Demo Database metadata.&#xD;
We have already generated a full EntitySpaces set of classes complete with our hierarchical&#xD;
object model against the Sybase demo database and have created an EntitySpaces.SybaseSqlAnywhereProvider.dll&#xD;
DataProvider that can successfully query Sybase using our DynamicQuery API. For instance,&#xD;
we are able to execute queries like this just fine.&lt;br&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;font color="#0080ff"&gt;EmployeesCollection coll = new EmployeesCollection();&lt;br&gt;&#xD;
coll.Query.Select(coll.Query.DepartmentID, coll.Query.City);&lt;br&gt;&#xD;
coll.Query.Where(coll.Query.City.Like("%F%"));&lt;br&gt;&#xD;
coll.Query.Load();&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&#xD;
Of course, our Sybase support will have to fully pass our massive NUnit test suite&#xD;
before being released which won't actually happen until our ES2009 Q2 release. But&#xD;
we have made enough progress now that we can safely announce our support for Sybase.&#xD;
We would also like to thank the folks at Sybase for working with us and making themselves&#xD;
available to us. We are extremely impressed by their support and dedication to customer&#xD;
satisfaction, something rarely seen today from large companies, so a big thumbs up&#xD;
to the folks at Sybase. &#xD;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.entityspaces.net/blog/ct.ashx?id=038f06f1-26c1-401c-8e8b-50d4e5eb4ce0&amp;amp;url=http%3a%2f%2fwww.entityspaces.net%2fblog%2fct.ashx%3fid%3de7740cd5-f5b1-4914-997b-d37ec7426772%26url%3dhttp%253a%252f%252fwww.entityspaces.net%252fblog%252fct.ashx%253fid%253d2676e564-5b8c-4378-ac7e-7e56431e64b7%2526url%253dhttp%25253a%25252f%25252fwww.entityspaces.net%25252fblog%25252fct.ashx%25253fid%25253dd5be1367-24f9-4b7b-9cea-52485f6b01d0%252526url%25253dhttp%2525253a%2525252f%2525252fwww.entityspaces.net%2525252fblog%2525252fct.ashx%2525253fid%2525253d915037c7-923f-4590-bee1-6286854f199f%25252526url%2525253dhttp%252525253a%252525252f%252525252fwww.entityspaces.net%252525252fblog%252525252fct.ashx%252525253fid%252525253d77f66dd3-0e04-4e94-8ad8-dfac8e2b2921%2525252526url%252525253dhttp%25252525253a%25252525252f%25252525252fwww.entityspaces.net%25252525252fblog%25252525252fct.ashx%25252525253fid%25252525253d04570b37-56c1-4a64-b64f-544c252b1b06%252525252526url%25252525253dhttp%2525252525253a%2525252525252f%2525252525252fwww.entityspaces.net%2525252525252f"&gt;&lt;img alt="EntitySpaces" src="http://www.entityspaces.net/images/es.png" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&#xD;
From &lt;strong&gt;Mobile Devices&lt;/strong&gt; to large scale enterprise solutions in need of&#xD;
serious transaction support, EntitySpaces can meet your needs. Whether you’re writing&#xD;
an ASP.NET application with &lt;strong&gt;Medium Trust&lt;/strong&gt; requirements, a &lt;strong&gt;Mono&lt;/strong&gt; application,&#xD;
or a Windows.Forms application, the EntitySpaces architecture is there for you. EntitySpaces&#xD;
is provider independent, which means that you can run the same binary code against&#xD;
any of the supported databases. EntitySpaces is available in both C# and VB.NET. EntitySpaces&#xD;
uses no reflection, no XML files, and sports a tiny foot print of less than 200k.&#xD;
Pound for pound, EntitySpaces is one tough, dependable .NET architecture. &#xD;
&lt;br&gt;&lt;/p&gt;&lt;p&gt;&#xD;
EntitySpaces LLC&lt;br&gt;&lt;strong&gt;Persistence Layer and Business Objects for Microsoft .NET&lt;br&gt;&lt;/strong&gt;&lt;a href="http://www.entityspaces.net"&gt;http://www.entityspaces.net&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=PWJda3A6Cns:8RHoACiqDdc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=PWJda3A6Cns:8RHoACiqDdc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=PWJda3A6Cns:8RHoACiqDdc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=PWJda3A6Cns:8RHoACiqDdc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=PWJda3A6Cns:8RHoACiqDdc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?i=PWJda3A6Cns:8RHoACiqDdc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entityspaces/~4/PWJda3A6Cns" height="1" width="1"/&gt;</description>
      <category>Compact Framework</category>
      <category>EntitySpaces</category>
      <category>Sybase</category>
    <feedburner:origLink>http://www.entityspaces.net/blog/2009/02/25/EntitySpaces+2009+Announces+Support+For+Sybase+SQL+Anywhere.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.entityspaces.net/blog/Trackback.aspx?guid=f03c361d-44fe-4eab-a4a0-8b3e3c1a5f8f</trackback:ping>
      <pingback:server>http://www.entityspaces.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.entityspaces.net/blog/PermaLink,guid,f03c361d-44fe-4eab-a4a0-8b3e3c1a5f8f.aspx</pingback:target>
      <dc:creator>Mike Griffin</dc:creator>
      
      <title>Using External Tools to Generate an EntitySpaces Project</title>
      <guid isPermaLink="false">http://www.entityspaces.net/blog/PermaLink,guid,f03c361d-44fe-4eab-a4a0-8b3e3c1a5f8f.aspx</guid>
      <link>http://feedproxy.google.com/~r/entityspaces/~3/2Hg6wMpsxyg/Using+External+Tools+To+Generate+An+EntitySpaces+Project.aspx</link>
      <pubDate>Thu, 19 Feb 2009 00:52:12 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Nick Dunham, an EntitySpaces user, created a very nice PDF and sent it to us. We thought&#xD;
it was great and decided to share it on our blog. Here is a snippet from the document&#xD;
...&lt;br&gt;&lt;em&gt;&lt;font color="#0080ff"&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;em&gt;&#xD;
              &lt;font color="#0080ff"&gt;EntitySpaces 2009 (ES) works great for setting up and running&#xD;
projects from within Visual Studio (VS). Once I have a project set up, I can execute&#xD;
it by opening “Tools | EntitySpaces”, load my project, and go. As a companion to this,&#xD;
I started using &lt;strong&gt;&lt;u&gt;the new command line version of EntitySpaces&lt;/u&gt;&lt;/strong&gt; so&#xD;
I could skip the basic steps (once I configured my project with the tool). The setup&#xD;
instructions below allow me to execute an ES project using the External Tools features&#xD;
of VS ...&lt;/font&gt;&#xD;
            &lt;/em&gt;&#xD;
          &lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;p&gt;&#xD;
Checkout the &lt;strong&gt;PDF&lt;/strong&gt; file &lt;a href="http://developer.entityspaces.net/downloads/esGenerateVisualStudio.pdf" target="_blank"&gt;&lt;strong&gt;HERE&lt;/strong&gt;&lt;/a&gt; or&#xD;
a &lt;strong&gt;ZIP&lt;/strong&gt; file &lt;a href="http://developer.entityspaces.net/downloads/esGenerateVisualStudio.zip" target="_blank"&gt;&lt;strong&gt;HERE&lt;/strong&gt;&lt;/a&gt;.&#xD;
It's best viewed when zoomed to around 150% to 175% depending on your monitor size.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Nick W. Dunham, &lt;a href="http://www.ufl.edu/" target="_blank"&gt;University of Florida&lt;/a&gt;&lt;br&gt;&#xD;
Office of Research, Director of Information Services &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;br&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.entityspaces.net/blog/ct.ashx?id=038f06f1-26c1-401c-8e8b-50d4e5eb4ce0&amp;amp;url=http%3a%2f%2fwww.entityspaces.net%2fblog%2fct.ashx%3fid%3de7740cd5-f5b1-4914-997b-d37ec7426772%26url%3dhttp%253a%252f%252fwww.entityspaces.net%252fblog%252fct.ashx%253fid%253d2676e564-5b8c-4378-ac7e-7e56431e64b7%2526url%253dhttp%25253a%25252f%25252fwww.entityspaces.net%25252fblog%25252fct.ashx%25253fid%25253dd5be1367-24f9-4b7b-9cea-52485f6b01d0%252526url%25253dhttp%2525253a%2525252f%2525252fwww.entityspaces.net%2525252fblog%2525252fct.ashx%2525253fid%2525253d915037c7-923f-4590-bee1-6286854f199f%25252526url%2525253dhttp%252525253a%252525252f%252525252fwww.entityspaces.net%252525252fblog%252525252fct.ashx%252525253fid%252525253d77f66dd3-0e04-4e94-8ad8-dfac8e2b2921%2525252526url%252525253dhttp%25252525253a%25252525252f%25252525252fwww.entityspaces.net%25252525252fblog%25252525252fct.ashx%25252525253fid%25252525253d04570b37-56c1-4a64-b64f-544c252b1b06%252525252526url%25252525253dhttp%2525252525253a%2525252525252f%2525252525252fwww.entityspaces.net%2525252525252f"&gt;&#xD;
            &lt;img alt="EntitySpaces" src="http://www.entityspaces.net/images/es.png" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;br&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
From &lt;strong&gt;Mobile Devices&lt;/strong&gt; to large scale enterprise solutions in need of&#xD;
serious transaction support, EntitySpaces can meet your needs. Whether you’re writing&#xD;
an ASP.NET application with &lt;strong&gt;Medium Trust&lt;/strong&gt; requirements, a &lt;strong&gt;Mono&lt;/strong&gt; application,&#xD;
or a Windows.Forms application, the EntitySpaces architecture is there for you. EntitySpaces&#xD;
is provider independent, which means that you can run the same binary code against&#xD;
any of the supported databases. EntitySpaces is available in both C# and VB.NET. EntitySpaces&#xD;
uses no reflection, no XML files, and sports a tiny foot print of less than 200k.&#xD;
Pound for pound, EntitySpaces is one tough, dependable .NET architecture. &#xD;
&lt;br&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
EntitySpaces LLC&lt;br&gt;&lt;strong&gt;Persistence Layer and Business Objects for Microsoft .NET&lt;br&gt;&lt;/strong&gt;&lt;a href="http://www.entityspaces.net"&gt;http://www.entityspaces.net&lt;/a&gt;&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=2Hg6wMpsxyg:qxnrUqCj7cA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=2Hg6wMpsxyg:qxnrUqCj7cA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=2Hg6wMpsxyg:qxnrUqCj7cA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=2Hg6wMpsxyg:qxnrUqCj7cA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/entityspaces?a=2Hg6wMpsxyg:qxnrUqCj7cA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/entityspaces?i=2Hg6wMpsxyg:qxnrUqCj7cA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entityspaces/~4/2Hg6wMpsxyg" height="1" width="1"/&gt;</description>
      <category>CommandLine</category>
      <category>EntitySpaces</category>
    <feedburner:origLink>http://www.entityspaces.net/blog/2009/02/19/Using+External+Tools+To+Generate+An+EntitySpaces+Project.aspx</feedburner:origLink></item>
  </channel>
</rss>
