<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Sean Grimaldi WebLog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/seangrimaldi/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/seangrimaldi/feed.xml</link>
    <description>Sean Grimaldi Longhorn book</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:53:02 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Entity versus an Object</title>
      <link>https://docs.microsoft.com/archive/blogs/seangrimaldi/entity-versus-an-object</link>
      <pubDate>Tue, 16 Nov 2004 09:39:00 GMT</pubDate>
      <dc:creator><![CDATA[SeanGrimaldi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/seangrimaldi/2004/11/16/entity-versus-an-object/</guid>
      <description><![CDATA[I have been writing examples with WinFS this week.  Although you don't have to know about databases...]]></description>
      <content:encoded><![CDATA[<p>I have been writing examples with WinFS this week. </p> <p>Although you don't have to know about databases to use WinFS, databases are interesting. In the database world the term entity is pretty common, but it might be foreign to most OOP programmers.&nbsp;Will users understand&nbsp;objects of the type entity?</p>]]></content:encoded>
    </item>
    <item>
      <title>Understanding WinFS by Exploring the WinFS Type System</title>
      <link>https://docs.microsoft.com/archive/blogs/seangrimaldi/understanding-winfs-by-exploring-the-winfs-type-system</link>
      <pubDate>Mon, 26 Jul 2004 15:18:00 GMT</pubDate>
      <dc:creator><![CDATA[SeanGrimaldi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/seangrimaldi/2004/07/26/understanding-winfs-by-exploring-the-winfs-type-system/</guid>
      <description><![CDATA[I co-authored an article on MSDN.Understanding WinFS by Exploring the WinFS Type Systemby Thomas...]]></description>
      <content:encoded><![CDATA[<P>I co-authored an article on MSDN.<BR><STRONG>Understanding WinFS by Exploring the WinFS Type System</STRONG><BR>by Thomas Rizzo and Sean Grimaldi<BR>Microsoft Corporation</P>
<P><A href="https://msdn.microsoft.com/Longhorn/understanding/pillars/WinFS/default.aspx?pull=/library/en-us/dnwinfs/html/winfs07142004.asp">https://msdn.microsoft.com/Longhorn/understanding/pillars/WinFS/default.aspx?pull=/library/en-us/dnwinfs/html/winfs07142004.asp</A></P>
<P>Quite a few people seemed to like the article and gave it one of the highest ratings I have ever recieved on MSDN (8 out of 9 with 95 voters). </P>
<P>I am currently writing a new article with Thomas about querying WinFS. If there is anything you want to know about querying WinFS, or WinFS OPath, please let me know. </P>]]></content:encoded>
    </item>
    <item>
      <title>WinFS namespaces</title>
      <link>https://docs.microsoft.com/archive/blogs/seangrimaldi/winfs-namespaces</link>
      <pubDate>Fri, 28 May 2004 00:13:00 GMT</pubDate>
      <dc:creator><![CDATA[SeanGrimaldi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/seangrimaldi/2004/05/28/winfs-namespaces/</guid>
      <description><![CDATA[https://wesnerm.blogs.com/net_undocumented/2004/05/winfs_namespace.html&nbsp;y...]]></description>
      <content:encoded><![CDATA[<P><A href="https://wesnerm.blogs.com/net_undocumented/2004/05/winfs_namespace.html"><FONT face=Verdana size=2>https://wesnerm.blogs.com/net_undocumented/2004/05/winfs_namespace.html</FONT></A><FONT face=Verdana size=2>&nbsp;y </FONT><A href="https://www.typepad.com/t/trackback/747685"><FONT face=Verdana size=2>https://www.typepad.com/t/trackback/747685</FONT></A></P>
<P><FONT face=Verdana size=2>Wesner Moise's comments on WinFS namespaces. &#8220;WinFS creates a number of names spaces for each type of item it recognizes such as WinFS.Storage.Contacts, WinFS.Storage.Annotations, and so on. Each of these namespaces seem to have around two classes. &#8220;</FONT></P>
<P><FONT face=Verdana size=2>Last time I looked System.Storage.Contacts had 43 types with&nbsp;hundreds of members&nbsp;in this one namespace. </FONT></P>
<P><FONT face=Verdana size=2>The more interesting question, IMHO, is why is there an Interop namespace and a Store namespace for many of the WinFS namespaces?</FONT></P>
<P><FONT face=Verdana size=2>The answer is:</FONT></P>
<P><FONT face=Verdana size=2>The Interop namespaces were required until the version of Whidbey that WinFS uses supported Nullability for WinFS scalar types.Once this occurs MC++ and IJW are the way to go.</FONT></P>
<P><FONT face=Verdana size=2>The Store namespace are for the store API and should generally be avoided unless you know what you are getting into.</FONT></P>
<P><FONT face=Verdana size=2>Again &#8220;AS IS&#8221; and I am not the authority, just someone with an opinion.</FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>Why WinFS schema are not XSD schema , IMHO.</title>
      <link>https://docs.microsoft.com/archive/blogs/seangrimaldi/why-winfs-schema-are-not-xsd-schema-imho</link>
      <pubDate>Tue, 27 Apr 2004 15:57:00 GMT</pubDate>
      <dc:creator><![CDATA[SeanGrimaldi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/seangrimaldi/2004/04/27/why-winfs-schema-are-not-xsd-schema-imho/</guid>
      <description><![CDATA[After Dare set me straight with XML, I have been&nbsp;browsing his posts, where I came across this:...]]></description>
      <content:encoded><![CDATA[<P><FONT face=Verdana size=2>After Dare set me straight with XML, I have been&nbsp;browsing his posts, where I came across this: <A href="https://www.25hoursaday.com/weblog/PermaLink.aspx?guid=d0b398f5-9343-4f91-8e1c-340c5a6669e2">https://www.25hoursaday.com/weblog/PermaLink.aspx?guid=d0b398f5-9343-4f91-8e1c-340c5a6669e2</A>&nbsp;. I was especially interested in this post because it involved WinFS schema in the Longhorn SDK, which is a topic I have explored in some depth.</FONT></P>
<P><FONT face=Verdana size=2>WinFS defines a unique XML grammar for describing its schema. WinFS schemas are not equivalent to the widely accepted W3C standards body&#8217;s XML Schema (XSD).</FONT></P>
<P><FONT face=Verdana size=2>There seem to be a few reasons for this that mostly mirror Dare's post:</FONT></P>
<OL style="MARGIN-TOP: 0in; MARGIN-BOTTOM: 0in" type=1>
<LI><FONT face=Verdana size=2>XSD&#8217;s scalar type set is not easily mapped to the SQL and CLR scalar type set used in WinFS. For example:</FONT> </LI></OL>
<TABLE height=81 width=256 border=0>
<TBODY>
<TR>
<TD width=108 height=20><B><I><FONT face=Verdana size=2>WinFS Scalars</FONT></I></B></TD>
<TD width=132 height=20><B><I><FONT face=Verdana size=2>XSD Scalars</FONT></I></B></TD></TR>
<TR>
<TD width=108 height=23><FONT face=Verdana size=2>Boolean </FONT></TD>
<TD width=132 height=23><FONT face=Verdana size=2>boolean </FONT></TD></TR>
<TR>
<TD width=108 height=20><FONT face=Verdana size=2>String </FONT></TD>
<TD width=132 height=20><FONT face=Verdana size=2>string </FONT></TD></TR>
<TR>
<TD width=108 height=20><FONT face=Verdana size=2>Binary </FONT></TD>
<TD width=132 height=20><FONT face=Verdana size=2>decimal </FONT></TD></TR>
<TR>
<TD width=108 height=20><FONT face=Verdana size=2>Byte </FONT></TD>
<TD width=132 height=20><FONT face=Verdana size=2>float </FONT></TD></TR>
<TR>
<TD width=108 height=20><FONT face=Verdana size=2>Int16 </FONT></TD>
<TD width=132 height=20><FONT face=Verdana size=2>double </FONT></TD></TR>
<TR>
<TD width=108 height=20><FONT face=Verdana size=2>Int32 </FONT></TD>
<TD width=132 height=20><FONT face=Verdana size=2>duration </FONT></TD></TR>
<TR>
<TD width=108 height=20><FONT face=Verdana size=2>Int64 </FONT></TD>
<TD width=132 height=20><FONT face=Verdana size=2>dateTime </FONT></TD></TR>
<TR>
<TD width=108 height=20><FONT face=Verdana size=2>Single </FONT></TD>
<TD width=132 height=20><FONT face=Verdana size=2>time </FONT></TD></TR>
<TR>
<TD width=108 height=20><FONT face=Verdana size=2>Double </FONT></TD>
<TD width=132 height=20><FONT face=Verdana size=2>date </FONT></TD></TR>
<TR>
<TD width=108 height=20><FONT face=Verdana size=2>Decimal </FONT></TD>
<TD width=132 height=20><FONT face=Verdana size=2>gYearMonth </FONT></TD></TR>
<TR>
<TD width=108 height=20><FONT face=Verdana size=2>DateTime </FONT></TD>
<TD width=132 height=20><FONT face=Verdana size=2>gYear </FONT></TD></TR>
<TR>
<TD width=108 height=20><FONT face=Verdana size=2>Guid </FONT></TD>
<TD width=132 height=20><FONT face=Verdana size=2>gMonthDay </FONT></TD></TR>
<TR>
<TD width=108 height=20><FONT face=Verdana size=2>Xml </FONT></TD>
<TD width=132 height=20><FONT face=Verdana size=2>gDay </FONT></TD></TR>
<TR>
<TD width=108 height=20>&nbsp;</TD>
<TD width=132 height=20><FONT face=Verdana size=2>gMonth </FONT></TD></TR>
<TR>
<TD width=108 height=20>&nbsp;</TD>
<TD width=132 height=20><FONT face=Verdana size=2>hexBinary </FONT></TD></TR>
<TR>
<TD width=108 height=20>&nbsp;</TD>
<TD width=132 height=20><FONT face=Verdana size=2>base64Binary </FONT></TD></TR>
<TR>
<TD width=108 height=20>&nbsp;</TD>
<TD width=132 height=20><FONT face=Verdana size=2>anyURI </FONT></TD></TR>
<TR>
<TD width=108 height=20>&nbsp;</TD>
<TD width=132 height=20><FONT face=Verdana size=2>QName </FONT></TD></TR>
<TR>
<TD width=108 height=20>&nbsp;</TD>
<TD width=132 height=20><FONT face=Verdana size=2>NOTATION </FONT></TD></TR></TBODY></TABLE>
<P style="MARGIN-LEFT: 0.25in"><FONT face=Verdana size=2>A problem arises at the very beginning when you try to map the WinFS Boolean to the XSD boolean. A WinFS Boolean can be nullable, while a XSD boolean can only be true or false.</FONT></P>
<OL style="MARGIN-TOP: 0in; MARGIN-BOTTOM: 0in" type=1 start=2>
<LI><FONT face=Verdana size=2>There are a number of XSD constructs which have no equivalent in WinFS, such as global element declarations. </FONT>
<LI><FONT face=Verdana size=2>There are a number of WinFS constructs which have no equivalent in XSD. WinFS relationships, for example, cannot be expressed in XSD.</FONT> </LI></OL>
<P><FONT face=Verdana size=2>Note that you can describe WinFS Schema using XSD and WinFS can store XML documents and fragments (as can SQL Server Yukon Beta1). It seems that you gain a grammar capable of expressing WinFS schema, but loose some tool support, since current tools only supports XSD.</FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>What makes a database a database and not just a data store?</title>
      <link>https://docs.microsoft.com/archive/blogs/seangrimaldi/what-makes-a-database-a-database-and-not-just-a-data-store</link>
      <pubDate>Sun, 11 Apr 2004 20:52:00 GMT</pubDate>
      <dc:creator><![CDATA[SeanGrimaldi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/seangrimaldi/2004/04/11/what-makes-a-database-a-database-and-not-just-a-data-store/</guid>
      <description><![CDATA[I am sitting in the ridiculously nice Seattle weather sipping a local brew watching The Patriot, get...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">I am sitting in the ridiculously nice Seattle weather sipping a local brew watching <EM>The Patriot</EM>, get this a decent movie starring Mel Gibson,&nbsp;and started thinking about databases and data stores in&nbsp;a gereral high level of abstraction that encompasses&nbsp;Sybase, Oracle, Yukon, and WinFS. <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">I disappointingly could not abstract much above the standard relational database stuff that came out of the 70s with the competition between IBM's System R and <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><st1:City w:st="on"><st1:place w:st="on">Berkeley</st1:place></st1:City>'s Ingres. (Is <st1:City w:st="on"><st1:place w:st="on">Berkeley</st1:place></st1:City> the best CS school in the world, or what?). All I could think of was Chris Date's explanation that a database is a computer based record keeping system.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">OK here's my initial straw man list:<o:p></o:p></SPAN></P>
<UL>
<LI>
<DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">Data identified by unique keys. <o:p></o:p></SPAN></DIV></LI>
<LI>
<DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">Relationships expressed through matching keys. <o:p></o:p></SPAN></DIV></LI>
<LI>
<DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">The ability to retrieve information based on mathematical set algebra-calc<o:p></o:p></SPAN></DIV></LI></UL>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">There are somewhat implementaiton details that happen to be common amongst most RDBMS and might not be what I am really looking for though.&nbsp;So here is the big question, <STRONG>what makes a database a database and not just a data store</STRONG>? Don't worry, this is going somewhere (in my follow up posts).</SPAN></P>
<P>
<P>&nbsp;</P></P>]]></content:encoded>
    </item>
  </channel>
</rss>