<?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:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" 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>VistaDB .Net Database Blog</title>
    <description>Embedded SQL Database Engine for .Net</description>
    <link>http://www.vistadb.net/blog/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.5.13.0</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://www.vistadb.net/blog/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.vistadb.net/blog/syndication.axd</blogChannel:blink>
    <dc:creator>VistaDB Software</dc:creator>
    <dc:title>VistaDB .Net Database Blog</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Vistadb" type="application/rss+xml" /><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/Vistadb" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FVistadb" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FVistadb" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:browserFriendly>Visit the VistaDB.Net forums for more discussions about database and dot net technology.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>Programming is more and more about how to find information</title>
      <description>&lt;p&gt;Do you have the complete .Net framework memorized and know every class from the back of your hand?&amp;nbsp; (Wow, impressive if you do)&amp;nbsp; Most people cannot remember that much information.&amp;nbsp; Back when all we had was the paltry C runtime library I knew guys who reveled in their esoteric knowledge of functions and overloads.&amp;nbsp; Yes, this was back in the days before we had the fancy Intellisense in our IDEs&amp;hellip;&amp;nbsp; I am sure many of you remember.&lt;/p&gt;
&lt;h3&gt;Never memorize a process or procedure&lt;/h3&gt;
&lt;p&gt;I learned this the hard way when I was in the military.&amp;nbsp; You should never memorize a process or procedure &amp;ndash; the documentation on it could have changed since the last time you did that operation.&amp;nbsp; You always had to go get the book and follow the steps.&amp;nbsp; In this case the books were a hefty series of volumes on UH-1H (Huey) maintenance.&amp;nbsp; The books totaled about twenty 5 inch binders, that each weighed about 15 lbs.&amp;nbsp; No one wanted to go look up the process each time &amp;ndash; took too long and the darn books were too heavy.&lt;/p&gt;
&lt;p&gt;I was a young 19 year old (yea, it&amp;rsquo;s been a while) that ran off one day to do a test.&amp;nbsp; I had to pull a transmission filter suspected of metal contaminants' and replace it.&amp;nbsp; Then turn in the old one for inspection.&amp;nbsp;&amp;nbsp; Easy stuff, I was thinking.&amp;nbsp; I had done this task a dozen times before in training sessions &amp;ndash; &lt;strong&gt;I didn&amp;rsquo;t NEED the book&lt;/strong&gt;.&amp;nbsp; Got my tools, ran out to the flight line and did the procedure in about ten minutes time.&lt;/p&gt;
&lt;p&gt;Got back to the TI (Technical Inspector) and turned in my paperwork.&amp;nbsp; He immediately asked me what the last revision was on the manual I used for the procedure (each book has a revision number in the front to tell you when it was last updated and what the minor changes were).&amp;nbsp; I rattled off the number I had seen yesterday on the book.&amp;nbsp; He looked at me for a long time (first clue you really screwed up), then sent me off to the lead instructor.&amp;nbsp; I then ran about 5 miles around the flight line while wondering what I had messed up.&lt;/p&gt;
&lt;h3&gt;Did you read the manual?&lt;/h3&gt;
&lt;p&gt;When I returned from my little &amp;ldquo;thinking time&amp;rdquo; run the Chief Warrant Office asked me, &amp;ldquo;Did you read the manual?&amp;rdquo;&amp;nbsp; No point lying at this point, &amp;ldquo;No Sir!&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;If I had read the manual (that day) I would have known that the procedure had changed last night.&amp;nbsp; A new manual &amp;ldquo;patch&amp;rdquo; had come in the previous day and been applied that night.&amp;nbsp; The process had been changed to include a new step for swapping a gear while you had it all apart to get further insight into the gear wear pattern.&amp;nbsp; By skipping that step I had just invalidated the entire process, all my results on the metal analysis would be wrong.&amp;nbsp; You don&amp;rsquo;t fail a military test like this though.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I got to think about it, and then present a series of &amp;ldquo;remedial&amp;rdquo; lectures to my fellow soldiers about the virtues of always reading the book. And about the dangers of thinking you know the answer before you start a task.&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Needless to say the lesson did stick in my head&lt;/h3&gt;
&lt;p&gt;To this day when I go to assemble something I read the instructions first.&amp;nbsp; I go through them to make sure there is nothing unexpected.&amp;nbsp; When I get a new piece of software I always look at the release notes to see if something I was expecting might have changed.&lt;/p&gt;
&lt;p&gt;And I never assume that an object is going to do something without actually reading the current information to ensure it still does what I am expecting.&amp;nbsp; This is a lot easier today with Intellisense, you can get the quick information on the function directly while writing code.&amp;nbsp; Make sure what you think it does is actually still there.&lt;/p&gt;
&lt;h3&gt;Don&amp;rsquo;t memorize, but know how to find the information&lt;/h3&gt;
&lt;p&gt;In a recent job interview with an intern I asked him some arcane information that most people will not have memorized.&amp;nbsp; He told me that he didn&amp;rsquo;t know the answer, but he knew how to look it up and find out.&amp;nbsp; That is what I was looking for, a man not afraid to say he doesn&amp;rsquo;t know; but does know how to find it.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;Make yourself a better programmer&lt;/h3&gt;
&lt;p&gt;Every programmer can make themselves better by learning how to read auto gen style documentation (frequently called the MSDN style docs).&amp;nbsp; No, it does not give you pretty code snippets you can copy and paste all the time. That is not the point.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The point is that it gives you the objects, hierarchy, methods, etc that you need to see how to use the object.&amp;nbsp; If you don&amp;rsquo;t understand how the object works a code snippet is worse than useless &amp;ndash; it misleads you into thinking that the snippet is the correct way to use the object.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There have been so many documented cases of MSDN docs having worst practices, or snippets that don&amp;rsquo;t show every possible use.&amp;nbsp; I don&amp;rsquo;t think they need to, programmers need to learn to read to MSDN docs, explore through the object and it&amp;rsquo;s parents, etc.&amp;nbsp; That is how you learn more deeply the ways things work.&amp;nbsp; But don&amp;rsquo;t attempt to memorize it all, just learn how to look it back up again when you need it.&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Look at your objects from the outside&lt;/h3&gt;
&lt;p&gt;Another very useful way to learn is to inspect your own objects from the outside.&amp;nbsp; Don&amp;rsquo;t look at the code.&amp;nbsp; Does the method name imply what it actually does?&amp;nbsp; Do the parameters make sense without knowing exactly how they will be used?&amp;nbsp; Does the return value cover the logic states you expect coming out of the object?&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=Q_-16c2LPj8:T0XOrqo2K0c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=Q_-16c2LPj8:T0XOrqo2K0c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=Q_-16c2LPj8:T0XOrqo2K0c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=Q_-16c2LPj8:T0XOrqo2K0c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=Q_-16c2LPj8:T0XOrqo2K0c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=Q_-16c2LPj8:T0XOrqo2K0c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Vistadb/~4/Q_-16c2LPj8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Vistadb/~3/Q_-16c2LPj8/post.aspx</link>
      <author>js_vistadb</author>
      <comments>http://www.vistadb.net/blog/post/2009/11/07/Programming-is-more-and-more-about-how-to-find-information.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vistadb.net/blog/post.aspx?id=569d6b7a-43fa-493f-978c-11b69ce94f9d</guid>
      <pubDate>Sat, 07 Nov 2009 14:50:00 -0400</pubDate>
      <category>Articles</category>
      <dc:publisher>js_vistadb</dc:publisher>
      <pingback:server>http://www.vistadb.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vistadb.net/blog/post.aspx?id=569d6b7a-43fa-493f-978c-11b69ce94f9d</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.vistadb.net/blog/trackback.axd?id=569d6b7a-43fa-493f-978c-11b69ce94f9d</trackback:ping>
      <wfw:comment>http://www.vistadb.net/blog/post/2009/11/07/Programming-is-more-and-more-about-how-to-find-information.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vistadb.net/blog/syndication.axd?post=569d6b7a-43fa-493f-978c-11b69ce94f9d</wfw:commentRss>
    <feedburner:origLink>http://www.vistadb.net/blog/post.aspx?id=569d6b7a-43fa-493f-978c-11b69ce94f9d</feedburner:origLink></item>
    <item>
      <title>ADO.NET Data Services with VistaDB for quick client server applications</title>
      <description>&lt;p&gt;We get questions from users asking how they can build client server solutions using VistaDB, or more often just how they can avoid having to share drive letters to share a database.&amp;#160; My traditional answer in the past has been to build a simple data access layer (DAL) and expose it over SOAP or WCF.&amp;#160; Now with ADO.NET Data Services and our Entity Framework (EF) provider you have another choice.&lt;/p&gt;  &lt;h3&gt;ADO.NET Data Services (Astoria)&amp;#160; &lt;/h3&gt;  &lt;p&gt;Not familiar with the codename?&amp;#160; “Project Astoria” was released with .Net 3.5 SP1 under the moniker &lt;a href="http://msdn.microsoft.com/en-us/data/bb931106.aspx"&gt;ADO.NET Data Services&lt;/a&gt;.&amp;#160; This&amp;#160; services on the surface appears to be about putting generic objects in front of your data and letting it handle protocols for you.&amp;#160; The fact that you can take any EF model (VistaDB included) and put an ADO.Net Data Service around it in a controlled manner is fantastic.&amp;#160; No more need needing to handle the shared drive scenario.&amp;#160; You connect to a service hub, and that hub then applies all the changes and takes care of the ugly handling of edge cases.&amp;#160; This is similar to a feature that allowed direct from within SQL Server, but I think too many DBA’s didn’t want to expose their actual SQL Server.&amp;#160; Push all that exposure out to IIS and you have the same basic functions.&lt;/p&gt;  &lt;h3&gt;When is it available?&lt;/h3&gt;  &lt;p&gt;ADO.NET Data Services is .Net 3.5 SP1 technology and is considered production code.&amp;#160; Today you can easily create a service that runs on one local machine and all clients point to it for their data.&amp;#160; This single server allows all others to make queries against it without concern for direct access to the database. &lt;/p&gt;  &lt;h3&gt;What if the service is unavailable?&lt;/h3&gt;  &lt;p&gt;ADO.NET Data Services requires online access to the service.&amp;#160; If the service goes down, the clients can’t do much.&amp;#160; There is an offline version of Astoria in the works from Microsoft to allow a local client proxy to build up and sync to the service endpoint.&amp;#160; I have watched a few PDC demos on it and it looks impressive, but it is still in the Alpha stages at the time of this writing.&amp;#160; I tried to play around with it a little and it was almost all still hard coded to SQL Server and SQL CE.&lt;/p&gt;  &lt;p&gt;Even without the offline version of Astoria I think you could build a highly reliable system using just the ADO.NET Data Services.&amp;#160; Your client would have to be intelligent enough to know what to do in a failure to connect scenario, but this is no different than a client server database application today.&amp;#160; The client still has to handle what happens when the server goes away.&lt;/p&gt;  &lt;h3&gt;Take an intranet site and add a client component&lt;/h3&gt;  &lt;p&gt;A sample scenario we just recently deployed on the intranet could expand to work over the internet.&amp;#160; We could easily build a client timesheet app (copy local or click once) that knows how to get data through the service rather than direct from the database, and perform the data presentation within that client. &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="EF Timesheet Model" border="0" alt="EF Timesheet Model" align="right" src="http://www.vistadb.net/blog/image.axd?picture=clip_image002.jpg" width="459" height="313" /&gt;&lt;/p&gt;  &lt;h3&gt;Sample Scenario &lt;/h3&gt;  &lt;p&gt;We have an existing website that users use to input their time spent daily, and weekly submit the timesheet.&amp;#160; At the end of time period someone needs to collect the timesheets, approve and pay the correct employees. &lt;/p&gt;  &lt;h3&gt;ASP.NET Intranet Site&lt;/h3&gt;  &lt;p&gt;We already have a system that does this all through ASP.Net for the intranet users.&amp;#160; But what if one user needed to work remotely?&amp;#160; We could enable the intranet to be accessed remotely, or we could just expose the service and implement security to prevent unauthorized access.&amp;#160; Using a click once application for the user approving the timesheets would enable her to work in the office or at home when approving and paying the timesheets without her having to know the difference.&lt;/p&gt;  &lt;h3&gt;Multiple Ways to get at your data &lt;/h3&gt;  &lt;p&gt;For this particular scenario we decided to leave the intranet alone for the employees.&amp;#160; It works and they know how to use it.&amp;#160; But the person approving the timesheets right now has to come into the office in order to approve them.&amp;#160; She is not very technical and setting up a VPN would be serious overkill for this simple application.&lt;/p&gt;  &lt;h3&gt;Works with VistaDB today!&lt;/h3&gt;  &lt;p&gt;Yes, ADO.NET Data Services work with VistaDB 4 today through the EF provider.&amp;#160; We don’t have any samples built specifically around this technology though (hence why this post).&lt;/p&gt;  &lt;h3&gt;Good sample?&lt;/h3&gt;  &lt;p&gt;Would this be a sample you would be interested in seeing built?&amp;#160;&amp;#160; Would you be interested in seeing how to build and deploy an ADO.NET Data Service using VistaDB?&lt;/p&gt;  &lt;p&gt;We have the current Timesheet sample that is a simplified version of our timesheet system.&amp;#160; I thought if we were going to build this local and remote application for our accountant that others might like to see how it is done as well.&amp;#160; I think it makes a very easy scenario to get access to VistaDB database remotely without a lot of custom programming on the developers end.&amp;#160; There is not a lot to know about the communications layer, but it could surely be customized for many deployment scenarios.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=9Cw3tIOi7A0:JAH0y_L47AU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=9Cw3tIOi7A0:JAH0y_L47AU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=9Cw3tIOi7A0:JAH0y_L47AU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=9Cw3tIOi7A0:JAH0y_L47AU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=9Cw3tIOi7A0:JAH0y_L47AU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=9Cw3tIOi7A0:JAH0y_L47AU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Vistadb/~4/9Cw3tIOi7A0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Vistadb/~3/9Cw3tIOi7A0/post.aspx</link>
      <author>js_vistadb</author>
      <comments>http://www.vistadb.net/blog/post/2009/11/03/ADONET-Data-Services-with-VistaDB-for-quick-client-server-applications.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vistadb.net/blog/post.aspx?id=f117b9fb-ee06-4099-b6f1-eb9e88755c12</guid>
      <pubDate>Tue, 03 Nov 2009 16:08:31 -0400</pubDate>
      <category>Tutorials</category>
      <dc:publisher>js_vistadb</dc:publisher>
      <pingback:server>http://www.vistadb.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vistadb.net/blog/post.aspx?id=f117b9fb-ee06-4099-b6f1-eb9e88755c12</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.vistadb.net/blog/trackback.axd?id=f117b9fb-ee06-4099-b6f1-eb9e88755c12</trackback:ping>
      <wfw:comment>http://www.vistadb.net/blog/post/2009/11/03/ADONET-Data-Services-with-VistaDB-for-quick-client-server-applications.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vistadb.net/blog/syndication.axd?post=f117b9fb-ee06-4099-b6f1-eb9e88755c12</wfw:commentRss>
    <feedburner:origLink>http://www.vistadb.net/blog/post.aspx?id=f117b9fb-ee06-4099-b6f1-eb9e88755c12</feedburner:origLink></item>
    <item>
      <title>VistaDB 4 Build 9 with Visual Studio 2010 Beta 2 support</title>
      <description>&lt;p align="right"&gt;Build #9&lt;/p&gt;  &lt;h3&gt;Visual Studio 2010 Beta 2&lt;/h3&gt;  &lt;p&gt;Fixed issues in the installer if Visual Studio 2010 Beta 2 was installed on the machine it would prevent installation of the Visual Studio 2008 designer.&amp;#160; One of the Visual Studio 2008 interfaces is being promoted to .Net 4 automatically in beta 2 for some reason.&amp;#160; We have worked around the issue for now.&amp;#160; We also had to work around other issues in Beta 2 for DDEX providers that were not present in Beta 1. &lt;/p&gt;  &lt;p&gt;Visual Studio 2010 Beta 2 support should be considered, um... &lt;strong&gt;Beta&lt;/strong&gt;.&amp;#160; We have it installing, and have done some initial tests.&amp;#160; VS 2010 B2 just came out, if you are using it then you hopefully understand that it is not a final release of Visual Studio.&amp;#160; &lt;/p&gt;  &lt;h3&gt;Same bugs still in VS 2010&lt;/h3&gt;  &lt;p&gt;We already have verified many of the exact same bugs in VS 2008 are still in VS 2010 (like the checkbox for updating an auto increment value after insert still only works for Microsoft providers, but doesn't gray out for third parties).&amp;#160; We will start opening tickets with Microsoft on these for VS 2010 (like we did for VS 2008), but I don't hold out a lot of hope of Microsoft fixing these issues since they have been around since the Visual Studio since 2005 days. &lt;/p&gt;  &lt;h3&gt;Customer Experience Improvement Program &lt;/h3&gt;  &lt;p&gt;There is an optional download for Professional subscribers to get a CEIP (Customer Experience Improvement Program) enabled version of VistaDB.&amp;#160; This is a separate download, and at install time you have to check the box for the Customer Experience application to be installed.&amp;#160; If you install the CEIP version of the engine and enable the tray app logs about your Data Builder, Visual Studio Designer, License Manager, etc will be sent to VistaDB.&amp;#160; This does not include anything in the actual runtime engine.&amp;#160; There is a special VistaDB.Logged.4.dll that you have to reference in your application if you want logs from the engine.&amp;#160; Shutting down the tray app will also prevent any logs from being transmitted to us.&lt;/p&gt;  &lt;p&gt;This is something we are experimenting with to provide better support, trapping errors on your machine rather than you having to send us a sample, and to understand better the customer usage of features and components.&amp;#160; &lt;/p&gt;  &lt;p&gt;I have a separate (much longer and verbose) blog post about the CEIP program, how we are building it, why, and more.&amp;#160; Look for that in a few days.&lt;/p&gt;  &lt;h3&gt;New Sample – RSS Aggregator&lt;/h3&gt;  &lt;p&gt;Added the RSS Aggregator sample project.&amp;#160; This project loads feeds from RSS sources and stores them in a VistaDB database.&amp;#160; All database activity is done through the ADO.NET provider factories.&amp;#160; The tray app also alerts the user when new activity has occurred. &lt;/p&gt;  &lt;p&gt;Some of the other samples have continued to have work done on them and have been updated. &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h3&gt;Contains Fixes&lt;/h3&gt;  &lt;p&gt;The Contains SQL parse had a few bugs in the code from an experimental test that were not intended to go live.&amp;#160; This was causing some words with keywords (and, or, not) within the word to run part of code for phrase matching that is not currently in the production code.&amp;#160; This has been corrected.&amp;#160; Yes, we do still intend to bring phrase matches and word combinations to FTS, they are under development.&lt;/p&gt;  &lt;h3&gt;Cast and Convert changes&lt;/h3&gt;  &lt;p&gt;Added more logic to the automatic conversion of chars or nchars to double and decimal to handle special cases from SQL Server. &lt;/p&gt;  &lt;p&gt;You do things like this in SQL Server: &lt;/p&gt; &lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;style type="text/css"&gt;


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}

.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; &lt;span class="kwrd"&gt;cast&lt;/span&gt;(&lt;span class="str"&gt;' '&lt;/span&gt; &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;); 
&lt;span class="kwrd"&gt;select&lt;/span&gt; &lt;span class="kwrd"&gt;cast&lt;/span&gt;(&lt;span class="str"&gt;''&lt;/span&gt; &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;); 
&lt;span class="kwrd"&gt;select&lt;/span&gt; &lt;span class="kwrd"&gt;cast&lt;/span&gt;(&lt;span class="str"&gt;'2.0077E1  '&lt;/span&gt; &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;); &lt;/pre&gt;

&lt;p&gt;But the following does not work: &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}

.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; &lt;span class="kwrd"&gt;cast&lt;/span&gt;(&lt;span class="str"&gt;' '&lt;/span&gt; &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;decimal&lt;/span&gt;); 
&lt;span class="kwrd"&gt;select&lt;/span&gt; &lt;span class="kwrd"&gt;cast&lt;/span&gt;(&lt;span class="str"&gt;''&lt;/span&gt; &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;decimal&lt;/span&gt;); 
&lt;span class="kwrd"&gt;select&lt;/span&gt; &lt;span class="kwrd"&gt;cast&lt;/span&gt;(&lt;span class="str"&gt;'2.0077E1  '&lt;/span&gt; &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;decimal&lt;/span&gt;);&lt;/pre&gt;

&lt;p&gt;You can do those conversions for float, but not for decimal. We have changed these cases to match SQL Server rules. &lt;/p&gt;

&lt;h3&gt;Pack and Repair Operations&lt;/h3&gt;

&lt;p&gt;Packing or repairing a database from ADO.NET functions only work if the database was not originally opened in DDA.&amp;#160; If the database is open in DDA then the DDA operations must be used instead.&amp;#160; A new exception has been added to these routines when an attempt is made in these circumstances. &lt;/p&gt;

&lt;h3&gt;Clustered Index and Alter Index&lt;/h3&gt;

&lt;p&gt;Clustered indexes are not support as we do not store rows on disk the same as SQL Server.&amp;#160; We do not reorder the tables on disk for the index to be a &amp;quot;natural&amp;quot; order on disk.&amp;#160; Clustering an index in SQL Server reorders the entire table and new insertions are sorted based upon that index as well (which can lead to fragmentation of the index, and the pages on disk as each new insert can cascade into multiple updates to disk).&amp;#160; We do not support this concept, but we were parsing the clustered index create syntax from the sql parser.&amp;#160; This will now generate an exception as it is not supported. &lt;/p&gt;

&lt;p&gt;Alter index is another command that the sql parser was allowing, even though it did not perform as expected.&amp;#160; You cannot alter an index, or rebuild an index (packing automatically rebuilds indexes).&amp;#160; The only way to rename an index is to drop it and build a new one.&amp;#160; Attempting the syntax will now throw an exception rather than silently failing.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=HOB-FDKxziE:tOOYitIUYgs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=HOB-FDKxziE:tOOYitIUYgs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=HOB-FDKxziE:tOOYitIUYgs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=HOB-FDKxziE:tOOYitIUYgs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=HOB-FDKxziE:tOOYitIUYgs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=HOB-FDKxziE:tOOYitIUYgs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Vistadb/~4/HOB-FDKxziE" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Vistadb/~3/HOB-FDKxziE/post.aspx</link>
      <author>js_vistadb</author>
      <comments>http://www.vistadb.net/blog/post/2009/10/31/VistaDB-4-Build-9-with-Visual-Studio-2010-Beta-2-support.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vistadb.net/blog/post.aspx?id=a33033fb-b675-4443-94ed-e291adbf8d9b</guid>
      <pubDate>Sat, 31 Oct 2009 17:13:11 -0400</pubDate>
      <category>Builds</category>
      <dc:publisher>js_vistadb</dc:publisher>
      <pingback:server>http://www.vistadb.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vistadb.net/blog/post.aspx?id=a33033fb-b675-4443-94ed-e291adbf8d9b</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.vistadb.net/blog/trackback.axd?id=a33033fb-b675-4443-94ed-e291adbf8d9b</trackback:ping>
      <wfw:comment>http://www.vistadb.net/blog/post/2009/10/31/VistaDB-4-Build-9-with-Visual-Studio-2010-Beta-2-support.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vistadb.net/blog/syndication.axd?post=a33033fb-b675-4443-94ed-e291adbf8d9b</wfw:commentRss>
    <feedburner:origLink>http://www.vistadb.net/blog/post.aspx?id=a33033fb-b675-4443-94ed-e291adbf8d9b</feedburner:origLink></item>
    <item>
      <title>VistaDB 4 Entity Framework Quick Start Video</title>
      <description>&lt;p&gt;The Entity Framework makes it really easy to generate models within Visual Studio 2008.&amp;#160; You must have Visual Studio 2008 SP1 with .Net 3.5 SP1 installed.&amp;#160; You also need VistaDB 4 Build 8 or higher for this video.&lt;/p&gt;  &lt;p&gt;I just posted a quick video showing VistaDB 4.0 Build 8 generating an Entity Framework model and adding the model to a console application.&lt;/p&gt;  &lt;h3&gt;Generate the model &lt;/h3&gt;  &lt;p&gt;Generating the model is the main point of this video, and it is really quite easy.&amp;#160; Once the model has been generated you need to use it, that is a little more complicated.&lt;/p&gt;  &lt;h3&gt;Entity Framework Video Tutorial&lt;/h3&gt;  &lt;p&gt;You can watch the video here, or jump over to YouTube if you want to watch it in HD.&amp;#160; The &lt;a href="http://www.youtube.com/watch?v=2e859AzBgos" target="_blank"&gt;Entity Framework quick start video&lt;/a&gt; is available from the &lt;a href="http://www.youtube.com/user/vistadbtraining" target="_blank"&gt;VistaDB Training page on YouTube&lt;/a&gt;.&lt;/p&gt; &lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/2e859AzBgos&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/2e859AzBgos&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;  &lt;h3&gt;License your Application&lt;/h3&gt;  &lt;p&gt;After the model is built I show how to add a licenses.licx file to the application (this same step works for any type of application).&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h3&gt;Using the Model&lt;/h3&gt;  &lt;p&gt;Using the model is outside the scope of this quick start, but I show how to use the new TicketEntities in an application, get back a query and loop through some results.&lt;/p&gt;  &lt;p&gt;I will add more videos later showing how to use the model in more detail.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=ukjytvQcHAY:LlpJawcBtRo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=ukjytvQcHAY:LlpJawcBtRo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=ukjytvQcHAY:LlpJawcBtRo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=ukjytvQcHAY:LlpJawcBtRo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=ukjytvQcHAY:LlpJawcBtRo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=ukjytvQcHAY:LlpJawcBtRo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Vistadb/~4/ukjytvQcHAY" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Vistadb/~3/ukjytvQcHAY/post.aspx</link>
      <author>js_vistadb</author>
      <comments>http://www.vistadb.net/blog/post/2009/10/25/VistaDB-4-Entity-Framework-Quick-Start-Video.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vistadb.net/blog/post.aspx?id=aeeae1ab-1b68-4ec6-b371-1797e7fcc55e</guid>
      <pubDate>Sun, 25 Oct 2009 01:59:25 -0400</pubDate>
      <category>Tutorials</category>
      <dc:publisher>js_vistadb</dc:publisher>
      <pingback:server>http://www.vistadb.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vistadb.net/blog/post.aspx?id=aeeae1ab-1b68-4ec6-b371-1797e7fcc55e</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.vistadb.net/blog/trackback.axd?id=aeeae1ab-1b68-4ec6-b371-1797e7fcc55e</trackback:ping>
      <wfw:comment>http://www.vistadb.net/blog/post/2009/10/25/VistaDB-4-Entity-Framework-Quick-Start-Video.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vistadb.net/blog/syndication.axd?post=aeeae1ab-1b68-4ec6-b371-1797e7fcc55e</wfw:commentRss>
    <feedburner:origLink>http://www.vistadb.net/blog/post.aspx?id=aeeae1ab-1b68-4ec6-b371-1797e7fcc55e</feedburner:origLink></item>
    <item>
      <title>VistaDB 4.0 Build 8</title>
      <description>&lt;p align="right"&gt;Build #8&lt;/p&gt;  &lt;h3&gt;Setup changes &lt;/h3&gt;  &lt;p&gt;The Data Migration Wizard initial release is included in the setup now. &lt;/p&gt;  &lt;p&gt;New samples included and linked through samples folders in the start menu.&amp;#160; These include links to the solutions, readme files, and databases used.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Help Search FTS&lt;/strong&gt; - The HelpSearch sample was created to demonstrate a small search application for help files and forum solutions using ASP.NET and Full Text Search with a VistaDB4 Database. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NTier TODO Sample&lt;/strong&gt; - Example system using NTier communications through a WCF service that exposes a Data Access Layer (DAL). Includes WPF, Silverlight, and asp.net presentation layers. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Ticket System Sample&lt;/strong&gt; - Sample ticket system for a small business to respond to customer trouble tickets. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Employee Timesheet Sample&lt;/strong&gt; - Example website for tracking employee time spent on projects. &lt;/p&gt;  &lt;p&gt;Preparing for the Customer Experience changes coming soon.&amp;#160; The setup now has the ability to optionally install the Customer Experience tray app for users and set it for startup.&amp;#160; This is not enabled in this build, but the work has been done and it is ready. &lt;/p&gt;  &lt;h3&gt;General Notes&lt;/h3&gt;  &lt;p&gt;Lots of changes to the help file around User Defined Functions, SQL Server compatibility, group by, aggregates, order by, new examples, etc. The &lt;a href="http://www.vistadb.net/onlinehelp" target="_blank"&gt;online help&lt;/a&gt; has also been updated with the current topics.&lt;/p&gt;  &lt;p&gt;Corrected issue in triggers that would case a semi-recursive trigger to fail. New tests are needed for CLR Triggers.&lt;/p&gt;  &lt;h3&gt;Entity Framework Updates &lt;/h3&gt;  &lt;p&gt;Lots of changes under the hood to how we generate the ESQL, and the procs used by EF to pull their data.&amp;#160; We were using TSQL Procs to pull the data, but the overhead is really high.&amp;#160; We now have written CLR Functions (embedded in the EF Provider) to do the work, and only use the TSQL to select the rows from the CLR Functions.&amp;#160; This results in a lot faster gen time and less overhead. &lt;/p&gt;  &lt;p&gt;This should result in a better model gen experience for developers. &lt;/p&gt;  &lt;p&gt;This version DOES correctly generate relational models (as long as you have packed your database recently so you don't have duplicate names).&amp;#160; There are a few known issues still, but we are working through them as quickly as possible.&amp;#160; &lt;/p&gt;  &lt;p&gt;Right now VIEWS do not generate correctly in some circumstances.&amp;#160; And in one instance just having a broken view in the database caused a model not to gen correctly (make sure your views are correct if you get this error). &lt;/p&gt;  &lt;h3&gt;New Error Messages &lt;/h3&gt;  &lt;p&gt;Added new error messages for attempting to implicitly convert between types or when attempting automatic conversion on behalf of the user. &lt;/p&gt;  &lt;p&gt;As an example, attempting the following SQL would result in an unable to convert from BigInt to DateTime without a callstack. &lt;strong&gt;&lt;/strong&gt;&lt;/p&gt; &lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}

.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; DATEADD(dd, 0, DATEDIFF(dd, 0, &lt;span class="str"&gt;'2009-01-01'&lt;/span&gt;)) &lt;span class="kwrd"&gt;as&lt;/span&gt; SaleYear &lt;/pre&gt;

&lt;p&gt;Now the error message tells you that SaleYear was the attempted assignment column, and the line number in the sql.&amp;#160; This makes it much easier to diagnose casting issues in large sql scripts. &lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VistaDB.Diagnostic.Errors.sql_NumericParameterRequired 
    &lt;br /&gt;&lt;/strong&gt;Error 661: A Numeric data type is required in function: [FUNCTION] 

  &lt;br /&gt;The following call would result in an input error, but you would not have known the function or the line of code. &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}

.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;SQL&lt;/span&gt;: &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; ROUND(&lt;span class="str"&gt;'abc'&lt;/span&gt;, 2); -- &lt;span class="kwrd"&gt;NOT&lt;/span&gt; LEGAL MUST BE &lt;span class="kwrd"&gt;NUMERIC&lt;/span&gt; INPUT&lt;/pre&gt;

&lt;p&gt;Result:&amp;#160; 'Input string was not in a correct format.' &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VistaDB.Diagnostic.Errors.sql_UnableToImplicitCastType&lt;/strong&gt; 

  &lt;br /&gt;Error 662: Unable to perform the requested implicit cast operation.&amp;#160; Try CAST() to the desired type instead. Output Target: [COLUMN] &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VistaDB.Diagnostic.Errors.sql_IncorrectTypeProvided&lt;/strong&gt; 

  &lt;br /&gt;Error 663: Data Conversion failed, unable to convert input to correct datatype. &lt;/p&gt;

&lt;p&gt;In some situations VistaDB does attempt to convert on behalf of the user.&amp;#160; As an example you may pass in a string that contains a number to a function, and we will attempt to convert it to an integer or whatever the correct type is for the function.&amp;#160; If the Convert.ToInt() (for example) fails we will now return the Error 663 message above.&amp;#160; We tried, but the underlying .Net routines didn't know how to convert the type for you. &lt;/p&gt;

&lt;p&gt;Spelling correction in the error dda_DatatypeConverion to dda_DatatypeConversion.&amp;#160; No change was made to the throw, or the errorid, just the spelling.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=_uLDgbQJ5lI:WX72hkd-KpE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=_uLDgbQJ5lI:WX72hkd-KpE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=_uLDgbQJ5lI:WX72hkd-KpE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=_uLDgbQJ5lI:WX72hkd-KpE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=_uLDgbQJ5lI:WX72hkd-KpE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=_uLDgbQJ5lI:WX72hkd-KpE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Vistadb/~4/_uLDgbQJ5lI" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Vistadb/~3/_uLDgbQJ5lI/post.aspx</link>
      <author>js_vistadb</author>
      <comments>http://www.vistadb.net/blog/post/2009/10/24/VistaDB-40-Build-8.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vistadb.net/blog/post.aspx?id=ee5c9872-89ad-4e07-b6d4-e4c94e21f3ec</guid>
      <pubDate>Sat, 24 Oct 2009 00:40:29 -0400</pubDate>
      <category>Builds</category>
      <dc:publisher>js_vistadb</dc:publisher>
      <pingback:server>http://www.vistadb.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vistadb.net/blog/post.aspx?id=ee5c9872-89ad-4e07-b6d4-e4c94e21f3ec</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.vistadb.net/blog/trackback.axd?id=ee5c9872-89ad-4e07-b6d4-e4c94e21f3ec</trackback:ping>
      <wfw:comment>http://www.vistadb.net/blog/post/2009/10/24/VistaDB-40-Build-8.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vistadb.net/blog/syndication.axd?post=ee5c9872-89ad-4e07-b6d4-e4c94e21f3ec</wfw:commentRss>
    <feedburner:origLink>http://www.vistadb.net/blog/post.aspx?id=ee5c9872-89ad-4e07-b6d4-e4c94e21f3ec</feedburner:origLink></item>
    <item>
      <title>Visual Studio 2010 Beta 2</title>
      <description>&lt;p&gt;Yep, BETA 2 is now up.&amp;#160; Read the full post from &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/10/19/vs-2010-and-net-4-0-beta-2.aspx"&gt;ScottGU’s blog post about VS 2010 and .Net 4&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;Download VS 2010 Beta 2&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=151797"&gt;Visit the site to download&lt;/a&gt; – MSDN available Oct 21&lt;/p&gt;  &lt;h3&gt;Ultimate, Professional, etc&lt;/h3&gt;  &lt;p&gt;Yep, they are now going to ship Visual Studio with naming like the Operating System.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Visual Studio Express:&lt;/strong&gt; Free Express SKUs for Web, VB, C#, and C++ &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Visual Studio 2010 Professional with MSDN&lt;/b&gt;: Professional development tools as you are used to today with the addition of source control integration, bug tracking, build automation, and more. It also includes 50 hours/month of Azure cloud computing. &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Visual Studio 2010 Premium with MSDN&lt;/b&gt;: Premium has everything in Professional plus advanced development tools (including richer profiling and debugging, code coverage, code analysis and testing prioritization), advanced database support, UI testing, and more.&amp;#160; Rather than buying multiple “Team” SKUs like you would with VS 2008, you can now get this combination of features in one box with VS 2010. It also includes 100 hours/month of Azure cloud computing. &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Visual Studio 2010 Ultimate with MSDN&lt;/b&gt;: Ultimate has everything in Premium plus additional advanced features for developers, testers, and architects including features like Intellitrace (formerly Historical Debugging), the new architecture tools (UML, discovery), test lab management, etc.&amp;#160; It also includes 250 hours/month of Azure cloud computing. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h3&gt;Side by Side Supported&lt;/h3&gt;  &lt;p&gt;This beta now includes side by side support with VS 2008 (makes our life a LOT easier).&lt;/p&gt;  &lt;h3&gt;Go live license!?!&lt;/h3&gt;  &lt;p&gt;You CAN, but should you?&amp;#160; You can now ship .Net 4 and VS 2010 Beta 2 projects are production code… But should you really be putting a BETA of the .Net framework on a user machine?&amp;#160; I don’t think I would do that.&amp;#160; Maybe for a situation where you are writing developer tools and they already have to be installed (like us – the VS 2010 plugin would require you already have VS 2010 installed).&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=aKtvRrWhay4:1gSRBIxrAFA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=aKtvRrWhay4:1gSRBIxrAFA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=aKtvRrWhay4:1gSRBIxrAFA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=aKtvRrWhay4:1gSRBIxrAFA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=aKtvRrWhay4:1gSRBIxrAFA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=aKtvRrWhay4:1gSRBIxrAFA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Vistadb/~4/aKtvRrWhay4" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Vistadb/~3/aKtvRrWhay4/post.aspx</link>
      <author>js_vistadb</author>
      <comments>http://www.vistadb.net/blog/post/2009/10/20/Visual-Studio-2010-Beta-2.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vistadb.net/blog/post.aspx?id=b479aa6a-8117-41cc-a63d-0bf04b4d2753</guid>
      <pubDate>Tue, 20 Oct 2009 19:03:11 -0400</pubDate>
      <category>Industry News</category>
      <dc:publisher>js_vistadb</dc:publisher>
      <pingback:server>http://www.vistadb.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vistadb.net/blog/post.aspx?id=b479aa6a-8117-41cc-a63d-0bf04b4d2753</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.vistadb.net/blog/trackback.axd?id=b479aa6a-8117-41cc-a63d-0bf04b4d2753</trackback:ping>
      <wfw:comment>http://www.vistadb.net/blog/post/2009/10/20/Visual-Studio-2010-Beta-2.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vistadb.net/blog/syndication.axd?post=b479aa6a-8117-41cc-a63d-0bf04b4d2753</wfw:commentRss>
    <feedburner:origLink>http://www.vistadb.net/blog/post.aspx?id=b479aa6a-8117-41cc-a63d-0bf04b4d2753</feedburner:origLink></item>
    <item>
      <title>VistaDB 4 Data Migration Wizard initial release</title>
      <description>&lt;p&gt;&lt;span style="font-size: 12px; font-weight: bold;"&gt;BETA Level Release&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This initial release has some warts and problems that we wanted to address before releasing a DMW for 4, but I am putting this out there so people can convert basic databases to VistaDB 4 in the meantime.&amp;nbsp; We plan to make several changes to the tool before it is declared complete.&lt;/p&gt;
&lt;p&gt;This is a port of the 3.x DMW with almost no changes just to get something up quick.&amp;nbsp; It does not know anything about UAC (you had better run it as Admin), it does not know anything about the Windows 7 Libraries of VistaDB 4, etc.&amp;nbsp; Basic port to get new users up and running.&lt;/p&gt;
&lt;h3&gt;Data Migration Wizard 4&lt;/h3&gt;
&lt;p&gt;This is a beta level release.&amp;nbsp; It is posted on the &lt;a href="http://accounts.vistadb.net/trial/publicdownloads.aspx"&gt;public downloads area&lt;/a&gt; of our account manager website.&amp;nbsp; You can&amp;rsquo;t install or use it unless you have a valid VistaDB license on your machine.&lt;/p&gt;
&lt;h3&gt;Start Menu Shortcut&lt;/h3&gt;
&lt;p&gt;Launch the tool from the VistaDB 4 Data Migration Wizard folder in your start menu and you will see the familiar starting screen.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="2009-10-17_0038" src="http://www.vistadb.net/blog/image.axd?picture=2009-10-17_0038.png" border="0" alt="2009-10-17_0038" width="446" height="265" /&gt;&lt;/p&gt;
&lt;p&gt;Yes, there is a typo where it still says VistaDB 3 on the initial dialog.&amp;nbsp; It does not work with 3.x at all.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;Databases Supported&lt;/h3&gt;
&lt;p&gt;You can convert &lt;strong&gt;SQL Server 2005/2008 databases using SQLClient, SQL CE 3.5 SP1, and Access MDB and ACCDB database formats&lt;/strong&gt;.&amp;nbsp; Although Access conversion is rough, and does not validate things like views at all (don&amp;rsquo;t convert them).&lt;/p&gt;
&lt;h3&gt;Converting a Database from SQL Server&lt;/h3&gt;
&lt;p&gt;Fill out the connection information like normal, but make sure the VistaDB 4 destination database is a writable location (UAC counts here).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.vistadb.net/blog/image.axd?picture=2009-10-17_0041TFSSite.png" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="2009-10-17_0041TFSSite" src="http://www.vistadb.net/blog/image.axd?picture=2009-10-17_0041TFSSite_thumb.png" border="0" alt="2009-10-17_0041TFSSite" width="614" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Choose the tables and other information&lt;/h3&gt;
&lt;p&gt;Select the tables, indexes, foreign keys, etc that you want to bring over to VistaDB.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.vistadb.net/blog/image.axd?picture=2009-10-17_0043TFSLIst.png" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="2009-10-17_0043TFSLIst" src="http://www.vistadb.net/blog/image.axd?picture=2009-10-17_0043TFSLIst_thumb.png" border="0" alt="2009-10-17_0043TFSLIst" width="614" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Convert Away!&lt;/h3&gt;
&lt;p&gt;Then hit next and watch the window scroll by.&amp;nbsp; Each table schema is created one at a time, including any keys, indexes, etc and then the data is filled in as well.&lt;/p&gt;
&lt;h3&gt;Saving the scripts&lt;/h3&gt;
&lt;p&gt;After you complete the migration you can save the scripts to re-run it at anytime in the future.&amp;nbsp; The database should now be loaded and packed.&amp;nbsp; You can also play with the pagesize to see what the minimum is for your database.&amp;nbsp; The DMW just sets it to the max allowed right now.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="2009-10-17_0046" src="http://www.vistadb.net/blog/image.axd?picture=2009-10-17_0046.png" border="0" alt="2009-10-17_0046" width="417" height="333" /&gt;&lt;/p&gt;
&lt;p&gt;Click the Open Database to launch Data Builder with the database.&lt;/p&gt;
&lt;h2&gt;Source Version&lt;/h2&gt;
&lt;p&gt;The source for the DMW is included with the Professional and higher editions of VistaDB. &amp;nbsp;You can customize and build your own special version from the source as needed.&lt;/p&gt;
&lt;p&gt;Lite and Personal users will be able to purchase the Data Migration Wizard and source from the online store for an additional fee.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=LY9eOQOR6Vs:zKhT5TvULlw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=LY9eOQOR6Vs:zKhT5TvULlw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=LY9eOQOR6Vs:zKhT5TvULlw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=LY9eOQOR6Vs:zKhT5TvULlw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=LY9eOQOR6Vs:zKhT5TvULlw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=LY9eOQOR6Vs:zKhT5TvULlw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Vistadb/~4/LY9eOQOR6Vs" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Vistadb/~3/LY9eOQOR6Vs/post.aspx</link>
      <author>js_vistadb</author>
      <comments>http://www.vistadb.net/blog/post/2009/10/17/VistaDB-4-Data-Migration-Wizard-initial-release.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vistadb.net/blog/post.aspx?id=9dff503c-1b0a-4931-800c-c16e02ff3d9b</guid>
      <pubDate>Sat, 17 Oct 2009 01:49:00 -0400</pubDate>
      <category>VistaDB News</category>
      <dc:publisher>js_vistadb</dc:publisher>
      <pingback:server>http://www.vistadb.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vistadb.net/blog/post.aspx?id=9dff503c-1b0a-4931-800c-c16e02ff3d9b</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.vistadb.net/blog/trackback.axd?id=9dff503c-1b0a-4931-800c-c16e02ff3d9b</trackback:ping>
      <wfw:comment>http://www.vistadb.net/blog/post/2009/10/17/VistaDB-4-Data-Migration-Wizard-initial-release.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vistadb.net/blog/syndication.axd?post=9dff503c-1b0a-4931-800c-c16e02ff3d9b</wfw:commentRss>
    <feedburner:origLink>http://www.vistadb.net/blog/post.aspx?id=9dff503c-1b0a-4931-800c-c16e02ff3d9b</feedburner:origLink></item>
    <item>
      <title>Getting a DATETIME without the time</title>
      <description>&lt;p&gt;We get this question so often in tech support, that I wanted to post a quick tip that hopefully people will find useful.&lt;/p&gt;  &lt;h3&gt;Remove the time part &lt;/h3&gt;  &lt;p&gt;To remove the time part from a datetime you can do it the following ways in both SQL Server and VistaDB. &lt;/p&gt; &lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;style type="text/css"&gt;




.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}

.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;-- SET SOME DATE WITHOUT A TIME (doesn't matter what it is)&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;declare&lt;/span&gt; @somedateonly datetime;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;set&lt;/span&gt; @somedateonly = &lt;span class="str"&gt;'2000-01-01 00:00:00'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; DATEADD(dd, DATEDIFF(dd, @somedateonly, GETDATE() ), @somedateonly );&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;You could also do it in a single statement like this.&amp;#160; The date doesn’t matter, just that it does not have a TIME component.&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}

.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; DATEADD(dd, DATEDIFF(dd, &lt;span class="str"&gt;'2000-01-01 00:00:00'&lt;/span&gt;, GETDATE() ), &lt;span class="str"&gt;'2000-01-01 00:00:00'&lt;/span&gt; );&lt;/pre&gt;
&lt;/div&gt;

&lt;h3&gt;How does this work?&lt;/h3&gt;

&lt;p&gt;The calls are really subtracting the number of days from the GETDATE() call and the entered date. Then it adds the difference to the entered date (which contained no time). The end result is that you have the date without a time being set.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;h3&gt;.NET does not cast 0 to a DateTime&lt;/h3&gt;

&lt;p&gt;In SQL Server you could just pass 0 as the datetime. In .Net a 0 does not cast to a DateTime. So why can’t you use the same syntax in VistaDB?&amp;#160; We are 100% managed code, that means we use the .Net 2 runtime engine.&amp;#160; There is no way to cast a 0 to a DateTime in .Net.&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;style type="text/css"&gt;


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}

.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;DateTime targetdateonly = (DateTime)0; &lt;span class="rem"&gt;// Does not work&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;DateTime targetdateonly = Convert.ToDateTime(0); // Does not work&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;That means you can’t just pass in a 0 to the datetime part of the DATEADD function in VistaDB.&amp;#160; We don’t have a way to convert it to a DateTime in .Net.&amp;#160; And remember that the minimum date in SQL Server is WAY different than .Net anyway.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=BSOBsyctirA:P9yYIdrCCCA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=BSOBsyctirA:P9yYIdrCCCA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=BSOBsyctirA:P9yYIdrCCCA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=BSOBsyctirA:P9yYIdrCCCA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=BSOBsyctirA:P9yYIdrCCCA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=BSOBsyctirA:P9yYIdrCCCA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Vistadb/~4/BSOBsyctirA" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Vistadb/~3/BSOBsyctirA/post.aspx</link>
      <author>js_vistadb</author>
      <comments>http://www.vistadb.net/blog/post/2009/10/17/Getting-a-DATETIME-without-the-time.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vistadb.net/blog/post.aspx?id=07767f76-bfd6-4282-9b06-4604fce85fec</guid>
      <pubDate>Sat, 17 Oct 2009 00:24:16 -0400</pubDate>
      <category>Articles</category>
      <dc:publisher>js_vistadb</dc:publisher>
      <pingback:server>http://www.vistadb.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vistadb.net/blog/post.aspx?id=07767f76-bfd6-4282-9b06-4604fce85fec</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.vistadb.net/blog/trackback.axd?id=07767f76-bfd6-4282-9b06-4604fce85fec</trackback:ping>
      <wfw:comment>http://www.vistadb.net/blog/post/2009/10/17/Getting-a-DATETIME-without-the-time.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vistadb.net/blog/syndication.axd?post=07767f76-bfd6-4282-9b06-4604fce85fec</wfw:commentRss>
    <feedburner:origLink>http://www.vistadb.net/blog/post.aspx?id=07767f76-bfd6-4282-9b06-4604fce85fec</feedburner:origLink></item>
    <item>
      <title>Entity Framework Code Only (not)</title>
      <description>&lt;p&gt;Microsoft&amp;rsquo;s Entity Framework (EF) team have released a &lt;a href="http://blogs.msdn.com/efdesign/archive/2009/10/12/code-only-further-enhancements.aspx"&gt;new blog updating their Code Only&lt;/a&gt; mode (see &lt;a href="http://blogs.msdn.com/efdesign/archive/2009/08/03/code-only-enhancements.aspx"&gt;original blog article&lt;/a&gt; as well).&amp;nbsp; For those not familiar with this concept, the Entity Framework is currently built to work only from a Model (conceptual representation of your database).&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Without a database?&lt;/h3&gt;
&lt;p&gt;Yes, sometimes you need to be able to build an EF model without a database.&amp;nbsp; Maybe you are working from a logical concept that the database doesn&amp;rsquo;t map to, or maybe you are just working from the model and want to derive the database later.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;One thing you cannot do with the current Entity Framework is add facets (think of them like properties of the model) at runtime very easily.&amp;nbsp; Something like adding a new property and then saying it is an identity.&amp;nbsp; Those things pretty much have to be done at model generation today, but what if you don&amp;rsquo;t know the exact database yet?&amp;nbsp; This is a common scenario for us in our Data Builder tool, we can&amp;rsquo;t pre-generate a model of your databases.&amp;nbsp; Every one is different.&lt;/p&gt;
&lt;h3&gt;Vaporware 2.0&lt;/h3&gt;
&lt;p&gt;I find it discouraging that Microsoft continues to pump out blog posts of things like this; &lt;em&gt;things that will one day be cool&lt;/em&gt;.&amp;nbsp; But not today, or even the initial release, maybe sometime.&amp;nbsp; Can you imagine if we here at VistaDB wrote our posts on things we want to one day do?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-family: Arial; font-size: large;"&gt;WOW, we could do anything, because we wouldn&amp;rsquo;t have to actually write the code! &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Just write about what you want to have happen, and see what type of reaction you get in the community.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;People used to call this type of application Vaporware.&amp;nbsp; I think this is Vaporware 2.0.&amp;nbsp; You not only don&amp;rsquo;t talk about what you are shipping today, you don&amp;rsquo;t write about the next release either.&amp;nbsp; You get to write about the mysterious &amp;ldquo;patch&amp;rdquo; release that will happen post the next release.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;Never Mind, please ignore this post&lt;/h3&gt;
&lt;p&gt;Hmm, the biggest part of this blog from Microsoft (to me) is that the code only changes will not be in .Net 4.&amp;nbsp; They are going to roll it out after 4 is released.&amp;nbsp; This is starting to sound familiar&amp;hellip;&amp;nbsp; Oh yea, sort of how EF didn&amp;rsquo;t make it into 3.5, but was a &amp;ldquo;service pack&amp;rdquo; to 3.5 SP1.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I fail to see how something this large can be skipped from .Net 4 and then later applied as a service pack.&amp;nbsp; There are provider writer changes, DDL changes, lots of interface work, a service pack?&amp;nbsp; &lt;strong&gt;Come on! &lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Me, Harsh?&lt;/h3&gt;
&lt;p&gt;I can already see the email in my inbox from some users accusing me of being too harsh.&amp;nbsp; All I can say is that I call them like I see &amp;lsquo;em.&amp;nbsp; Don&amp;rsquo;t talk about things 18+ months away as coming soon, especially when the next two releases come before this alleged feature.&lt;/p&gt;
&lt;p&gt;This post was picked up on Visual Studio magazines weekly email blast as a new feature in EF.&amp;nbsp; Not so, not even the next major release.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=KLRcx-P0sLg:OCH--X1X2Sg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=KLRcx-P0sLg:OCH--X1X2Sg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=KLRcx-P0sLg:OCH--X1X2Sg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=KLRcx-P0sLg:OCH--X1X2Sg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=KLRcx-P0sLg:OCH--X1X2Sg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=KLRcx-P0sLg:OCH--X1X2Sg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Vistadb/~4/KLRcx-P0sLg" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Vistadb/~3/KLRcx-P0sLg/post.aspx</link>
      <author>js_vistadb</author>
      <comments>http://www.vistadb.net/blog/post/2009/10/15/Entity-Framework-Code-Only-(not).aspx#comment</comments>
      <guid isPermaLink="false">http://www.vistadb.net/blog/post.aspx?id=539fc99c-0022-4260-add3-dd26df22458d</guid>
      <pubDate>Thu, 15 Oct 2009 13:00:00 -0400</pubDate>
      <category>Industry News</category>
      <dc:publisher>js_vistadb</dc:publisher>
      <pingback:server>http://www.vistadb.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vistadb.net/blog/post.aspx?id=539fc99c-0022-4260-add3-dd26df22458d</pingback:target>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://www.vistadb.net/blog/trackback.axd?id=539fc99c-0022-4260-add3-dd26df22458d</trackback:ping>
      <wfw:comment>http://www.vistadb.net/blog/post/2009/10/15/Entity-Framework-Code-Only-(not).aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vistadb.net/blog/syndication.axd?post=539fc99c-0022-4260-add3-dd26df22458d</wfw:commentRss>
    <feedburner:origLink>http://www.vistadb.net/blog/post.aspx?id=539fc99c-0022-4260-add3-dd26df22458d</feedburner:origLink></item>
    <item>
      <title>VistaDB 4 Lite Edition Released</title>
      <description>&lt;p&gt;The first release of &lt;strong&gt;VistaDB 4 Lite &lt;/strong&gt;(Build 7) is now available on the account manager site!&lt;/p&gt;
&lt;p&gt;VistaDB Lite is a very low cost embedded SQL database engine that includes many of the features only found in large server systems like Microsoft SQL Server.&amp;nbsp; VistaDB Lite users can utilize the power of CLR Procedures and Triggers to expand the functionality of the default database engine.&lt;/p&gt;
&lt;p&gt;The VistaDB Lite edition is intended for hobbyists, students, teachers, anyone who needs a small footprint xcopy deployable database for a very low cost.&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Overview of Editions&lt;/h3&gt;
&lt;p&gt;Visit the &lt;a href="http://www.vistadb.net/vistadb/vistadb-editions.aspx"&gt;VistaDB Editions Overview&lt;/a&gt; page for information about the differences between VistaDB Lite and other editions.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Lite editions are &lt;a href="http://www.vistadb.net/technical/vdb4-specs.aspx#pagesize"&gt;limited to a 1Kb pagesize&lt;/a&gt;, which does limit the number of columns, indexes, etc available on a database.&amp;nbsp; But we feel that the Lite edition has the ability to cover most learning and hobbyist scenarios without breaking the bank.&amp;nbsp; ASP.NET support is included with the Lite Edition, so even small data driven websites are possible.&lt;/p&gt;
&lt;h3&gt;Use CLR Procedures&lt;/h3&gt;
&lt;p&gt;T-SQL Procs are not supported in Lite, but CLR Procedures are included.&amp;nbsp; We want to encourage the adoption of CLR Procedures with developers.&amp;nbsp; We feel that in most cases T-SQL Procs should only be used for legacy applications, new applications should embrace CLR Procs and unleash their database code!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;Not free?&lt;/h3&gt;
&lt;p&gt;Sorry, we had to discontinue the free edition of VistaDB due to the support demands, and the number of companies who were using it for commercial purposes.&amp;nbsp; We have to put food on the table and feed our families just like anyone else, this was the free as in beer problem (it cost us a lot to build and support, but people used it to make money and not pay us).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We have tried as hard as possible to make VistaDB Lite affordable for hobbyists and students (it is ~$50 right now).&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Commercial Use is Ok&lt;/h3&gt;
&lt;p&gt;Another change from VistaDB Express to &lt;strong&gt;VistaDB Lite &lt;/strong&gt;is that now it is OK to use it in commercial applications.&amp;nbsp; If you are building a small desktop utility, something for shareware / freeware, you can use VistaDB Lite for that purpose.&amp;nbsp; The runtime is royalty free.&lt;/p&gt;
&lt;h3&gt;What is not present?&lt;/h3&gt;
&lt;p&gt;Entity Framework and Visual Studio plugins are not supported.&amp;nbsp; You will have to write your Data Access Layer (DAL) using either ADO.NET or Direct Data Access (DDA) methods.&amp;nbsp; Both are supported.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=9cnCjAm8nV0:EyStyNapm-A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=9cnCjAm8nV0:EyStyNapm-A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=9cnCjAm8nV0:EyStyNapm-A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=9cnCjAm8nV0:EyStyNapm-A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=9cnCjAm8nV0:EyStyNapm-A:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=9cnCjAm8nV0:EyStyNapm-A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Vistadb/~4/9cnCjAm8nV0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Vistadb/~3/9cnCjAm8nV0/post.aspx</link>
      <author>js_vistadb</author>
      <comments>http://www.vistadb.net/blog/post/2009/10/14/VistaDB-4-Lite-Edition-Released.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vistadb.net/blog/post.aspx?id=dc406195-71f4-4434-971f-c7c36e2bd591</guid>
      <pubDate>Wed, 14 Oct 2009 21:46:00 -0400</pubDate>
      <category>Builds</category>
      <dc:publisher>js_vistadb</dc:publisher>
      <pingback:server>http://www.vistadb.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vistadb.net/blog/post.aspx?id=dc406195-71f4-4434-971f-c7c36e2bd591</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.vistadb.net/blog/trackback.axd?id=dc406195-71f4-4434-971f-c7c36e2bd591</trackback:ping>
      <wfw:comment>http://www.vistadb.net/blog/post/2009/10/14/VistaDB-4-Lite-Edition-Released.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vistadb.net/blog/syndication.axd?post=dc406195-71f4-4434-971f-c7c36e2bd591</wfw:commentRss>
    <feedburner:origLink>http://www.vistadb.net/blog/post.aspx?id=dc406195-71f4-4434-971f-c7c36e2bd591</feedburner:origLink></item>
    <item>
      <title>The SQL Server natural order query myth</title>
      <description>&lt;p&gt;There is this myth among developers and DBAs that SQL Server has a natural order that is logical and predictable (and can therefore be relied on).&amp;nbsp; Not so!&amp;nbsp; I wanted to take a few moment to explain and debunk the myth, explain how VistaDB is different, and share something I learned along the way.&lt;/p&gt;
&lt;h3&gt;The Myth(s)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;SQL Server stores entries in a natural order based upon the first column. &lt;/li&gt;
&lt;li&gt;SQL Server always appends inserted rows at the end of the current table. &lt;/li&gt;
&lt;li&gt;Unindexed data is always available in the order it was inserted. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Have you heard those as well?&amp;nbsp; In most databases an insert is always appended to the end of the current table, this is for ease of insertion and for multi threading where you want to lazy write to the database after the insert (of course servers can get away with that, but we can&amp;rsquo;t because we don&amp;rsquo;t know when your application will go away and kill us).&lt;/p&gt;
&lt;p&gt;You can&amp;rsquo;t actually count on ANY of those from SQL Server.&lt;/p&gt;
&lt;h3&gt;Select * always returns the same order&lt;/h3&gt;
&lt;p&gt;Many times developers pull a SELECT * from the database in SQL Server and think the order will not change &amp;ndash; &lt;strong&gt;IT CAN CHANGE&lt;/strong&gt;.&amp;nbsp; If you do not explicitly put an order by clause on your select you have no guarantee of ordering in SQL Server.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;&lt;em&gt;EDIT&lt;/em&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can read the full explanation why this happens over at the &lt;a href="http://sqlserverpedia.com/blog/sql-server-bloggers/its-the-natural-order-of-things-not/"&gt;SQL Serverpedia blog entry on natural order&lt;/a&gt;. &amp;nbsp; I am not sure if this was the original or a repost from Brad's blog, but I wanted to give credit to where I originally read it. &amp;nbsp;The article at SQL Serverpedia was emailed to me from a user asking about how VistaDB works in this same situation. &amp;nbsp;I then got the same article from 2 other users in the same week... &amp;nbsp;Sounded like a good time to do a blog about it.&lt;/p&gt;
&lt;p&gt;As was pointed out in the comments below, the original article came from another blog. &amp;nbsp;Brad Schulz did the original article on this topic and you can &lt;a href="http://bradsruminations.blogspot.com/2009/07/its-natural-order-of-things-not.html"&gt;read his blog for the complete details&lt;/a&gt;. &amp;nbsp;Trust me if you love SQL technology you will love that article.&amp;nbsp; It is very well laid out and explains everything in depth that only a true SQL geek can love (like me!).&lt;/p&gt;
&lt;p&gt;Take a look at this SQL:&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;p&gt;&lt;!-- .csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ }  .csharpcode pre { margin: 0em; }  .csharpcode .rem { color: #008000; }  .csharpcode .kwrd { color: #0000ff; }  .csharpcode .str { color: #006080; }  .csharpcode .op { color: #0000c0; }  .csharpcode .preproc { color: #cc6633; }  .csharpcode .asp { background-color: #ffff00; }  .csharpcode .html { color: #800000; }  .csharpcode .attr { color: #ff0000; }  .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; }  .csharpcode .lnum { color: #606060; } --&gt;&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;create&lt;/span&gt; &lt;span class="kwrd"&gt;table&lt;/span&gt; ordertest 
(
  col1 &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(900) &lt;span class="kwrd"&gt;not&lt;/span&gt; &lt;span class="kwrd"&gt;null&lt;/span&gt;
 ,col2 &lt;span class="kwrd"&gt;char&lt;/span&gt;(1) &lt;span class="kwrd"&gt;not&lt;/span&gt; &lt;span class="kwrd"&gt;null&lt;/span&gt;
);

&lt;span class="rem"&gt;-- STEP 1 insert some data&lt;/span&gt;
&lt;span class="kwrd"&gt;insert&lt;/span&gt; ordertest &lt;span class="kwrd"&gt;values&lt;/span&gt; (&lt;span class="str"&gt;'B'&lt;/span&gt;+replicate(&lt;span class="str"&gt;'.'&lt;/span&gt;,899),&lt;span class="str"&gt;'N'&lt;/span&gt;);
&lt;span class="kwrd"&gt;insert&lt;/span&gt; ordertest &lt;span class="kwrd"&gt;values&lt;/span&gt; (&lt;span class="str"&gt;'R'&lt;/span&gt;+replicate(&lt;span class="str"&gt;'.'&lt;/span&gt;,899),&lt;span class="str"&gt;'A'&lt;/span&gt;);
&lt;span class="kwrd"&gt;insert&lt;/span&gt; ordertest &lt;span class="kwrd"&gt;values&lt;/span&gt; (&lt;span class="str"&gt;'A'&lt;/span&gt;+replicate(&lt;span class="str"&gt;'.'&lt;/span&gt;,899),&lt;span class="str"&gt;'T'&lt;/span&gt;);
&lt;span class="kwrd"&gt;insert&lt;/span&gt; ordertest &lt;span class="kwrd"&gt;values&lt;/span&gt; (&lt;span class="str"&gt;'D'&lt;/span&gt;+replicate(&lt;span class="str"&gt;'.'&lt;/span&gt;,899),&lt;span class="str"&gt;'U'&lt;/span&gt;);
&lt;span class="kwrd"&gt;insert&lt;/span&gt; ordertest &lt;span class="kwrd"&gt;values&lt;/span&gt; (&lt;span class="str"&gt;'S'&lt;/span&gt;+replicate(&lt;span class="str"&gt;'.'&lt;/span&gt;,899),&lt;span class="str"&gt;'R'&lt;/span&gt;);
&lt;span class="kwrd"&gt;insert&lt;/span&gt; ordertest &lt;span class="kwrd"&gt;values&lt;/span&gt; (&lt;span class="str"&gt;'C'&lt;/span&gt;+replicate(&lt;span class="str"&gt;'.'&lt;/span&gt;,899),&lt;span class="str"&gt;'A'&lt;/span&gt;);
&lt;span class="kwrd"&gt;insert&lt;/span&gt; ordertest &lt;span class="kwrd"&gt;values&lt;/span&gt; (&lt;span class="str"&gt;'H'&lt;/span&gt;+replicate(&lt;span class="str"&gt;'.'&lt;/span&gt;,899),&lt;span class="str"&gt;'L'&lt;/span&gt;);
&lt;span class="kwrd"&gt;insert&lt;/span&gt; ordertest &lt;span class="kwrd"&gt;values&lt;/span&gt; (&lt;span class="str"&gt;'U'&lt;/span&gt;+replicate(&lt;span class="str"&gt;'.'&lt;/span&gt;,899),&lt;span class="str"&gt;'O'&lt;/span&gt;);
&lt;span class="kwrd"&gt;insert&lt;/span&gt; ordertest &lt;span class="kwrd"&gt;values&lt;/span&gt; (&lt;span class="str"&gt;'L'&lt;/span&gt;+replicate(&lt;span class="str"&gt;'.'&lt;/span&gt;,899),&lt;span class="str"&gt;'R'&lt;/span&gt;);
&lt;span class="kwrd"&gt;insert&lt;/span&gt; ordertest &lt;span class="kwrd"&gt;values&lt;/span&gt; (&lt;span class="str"&gt;'Z'&lt;/span&gt;+replicate(&lt;span class="str"&gt;'.'&lt;/span&gt;,899),&lt;span class="str"&gt;'D'&lt;/span&gt;);
&lt;span class="kwrd"&gt;select&lt;/span&gt; * &lt;span class="kwrd"&gt;from&lt;/span&gt; ordertest;

&lt;span class="rem"&gt;-- STEP 2 insert two more values&lt;/span&gt;
&lt;span class="kwrd"&gt;insert&lt;/span&gt; ordertest &lt;span class="kwrd"&gt;values&lt;/span&gt; (&lt;span class="str"&gt;'X'&lt;/span&gt;,&lt;span class="str"&gt;'X'&lt;/span&gt;);
&lt;span class="kwrd"&gt;insert&lt;/span&gt; ordertest &lt;span class="kwrd"&gt;values&lt;/span&gt; (&lt;span class="str"&gt;'Y'&lt;/span&gt;,&lt;span class="str"&gt;'Y'&lt;/span&gt;);
&lt;span class="kwrd"&gt;select&lt;/span&gt; * &lt;span class="kwrd"&gt;from&lt;/span&gt; ordertest;&lt;/pre&gt;
&lt;p&gt;What do you think the first and second select statements look like?&amp;nbsp; The first is probably what you expected, the second probably is not!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;First Select statement:&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;p&gt;&lt;!-- .csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ }  .csharpcode pre { margin: 0em; }  .csharpcode .rem { color: #008000; }  .csharpcode .kwrd { color: #0000ff; }  .csharpcode .str { color: #006080; }  .csharpcode .op { color: #0000c0; }  .csharpcode .preproc { color: #cc6633; }  .csharpcode .asp { background-color: #ffff00; }  .csharpcode .html { color: #800000; }  .csharpcode .attr { color: #ff0000; }  .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; }  .csharpcode .lnum { color: #606060; } --&gt;&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;col1      col2&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;-------&lt;span class="rem"&gt;-- ----&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;B........ N&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;R........ A&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;A........ T&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;D........ U&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;S........ R&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;C........ A&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;H........ L&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;U........ O&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;L........ R&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;Z........ D&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Second select statement:&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;p&gt;&lt;!-- .csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ }  .csharpcode pre { margin: 0em; }  .csharpcode .rem { color: #008000; }  .csharpcode .kwrd { color: #0000ff; }  .csharpcode .str { color: #006080; }  .csharpcode .op { color: #0000c0; }  .csharpcode .preproc { color: #cc6633; }  .csharpcode .asp { background-color: #ffff00; }  .csharpcode .html { color: #800000; }  .csharpcode .attr { color: #ff0000; }  .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; }  .csharpcode .lnum { color: #606060; } --&gt;&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;col1      col2&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;-------&lt;span class="rem"&gt;-- ----&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;B........ N&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;R........ A&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;A........ T&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;D........ U&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;S........ R&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;C........ A&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;H........ L&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;U........ O&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;X         X&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;Y         Y&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;L........ R&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;Z........ D&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Did you see that one coming?&amp;nbsp; Records 11 and 12 got inserted apparently out of order in SQL Server.&amp;nbsp; But really there is a perfectly logical reason why.&amp;nbsp; SQL Server uses 8 Kb pages, this results in 8060 bytes available in the page for row data.&amp;nbsp; Since the 901 bytes per record took up 7208 bytes, there is 852 bytes left in the first page.&amp;nbsp; Not enough for the next entry, but enough for the two smaller entries.&lt;/p&gt;
&lt;p&gt;The col1 + col2 overflowed what could be fit on the page after the 10th record, so the next two inserts went to the next page.&amp;nbsp; When the second set of inserts was run they first looked at the first page of the database and saw there was free space left, so they used it.&amp;nbsp; This makes SQL Server inserts non deterministic (unless you happen to know how many pages are in use and how much free space is available).&amp;nbsp; You can read the full &lt;a href="http://msdn.microsoft.com/en-us/library/ms190969.aspx"&gt;SQL Server books online entry here&lt;/a&gt;.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;And if you really want to understand the internals of SQL Server there is a fantastic MS Press book on &lt;a href="http://www.amazon.com/Microsoft%C2%AE-SQL-Server%C2%AE-2008-Internals/dp/0735626243/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1255130881&amp;amp;sr=8-1"&gt;Microsoft SQL Server 2008 Internals&lt;/a&gt;.&amp;nbsp; We have multiple copies of it and I have read my copy cover to cover more than once (probably only person on planet to have done so).&lt;/p&gt;
&lt;h3&gt;VistaDB is deterministic for inserts&lt;/h3&gt;
&lt;p&gt;Now what about in VistaDB?&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;p&gt;&lt;!-- .csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ }  .csharpcode pre { margin: 0em; }  .csharpcode .rem { color: #008000; }  .csharpcode .kwrd { color: #0000ff; }  .csharpcode .str { color: #006080; }  .csharpcode .op { color: #0000c0; }  .csharpcode .preproc { color: #cc6633; }  .csharpcode .asp { background-color: #ffff00; }  .csharpcode .html { color: #800000; }  .csharpcode .attr { color: #ff0000; }  .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; }  .csharpcode .lnum { color: #606060; } --&gt;&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;col1      col2&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;-------&lt;span class="rem"&gt;-- ----&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;B........ N&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;R........ A&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;A........ T&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;D........ U&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;S........ R&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;C........ A&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;H........ L&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;U........ O&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;L........ R&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;Z........ D&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;X         X&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;Y         Y&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;So how does VistaDB insert rows?&amp;nbsp; VistaDB does always append rows at the end of the table.&amp;nbsp; This is for a couple of reasons.&amp;nbsp; The major reason is because we want to leave a little extra space per page, because of the way we update rows.&amp;nbsp; In order to be &lt;a href="http://en.wikipedia.org/wiki/ACID"&gt;ACID compliant&lt;/a&gt; we don&amp;rsquo;t edit the actual row, we create a new row and then unlink the old row.&amp;nbsp; So we do attempt to do edits in row, but if they don&amp;rsquo;t fit off they go to the end of the natural order.&lt;/p&gt;
&lt;h3&gt;Clustered Indexes to the (SQL Server) rescue&lt;/h3&gt;
&lt;p&gt;Now the normal &amp;ldquo;fix&amp;rdquo; in SQL Server is to add a clustered index to the table.&amp;nbsp; This will ensure that the inserts are actually stored on disk in the order of the clustered index, and therefore your select *&amp;rsquo;s will always be deterministic in ordering.&amp;nbsp; The reality is that building the clustered index actually reorders the data on disk, VistaDB does not support clustered indexes for this reason.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We cannot reorder the data at a per insert basis.&amp;nbsp; It would be terrible performance to have to split pages every insert to ensure they are all kept in order.&amp;nbsp; SQL Server does this through a lazy write and reorder ability that we simply do not have being in process with your application.&lt;/p&gt;
&lt;h3&gt;I learned something today (a good thing)&lt;/h3&gt;
&lt;p&gt;I thought that creating a primary key index made it the default for all natural order select statements (I think SQL Server uses this behavior if the PK is clustered; which it is by default).&amp;nbsp; VistaDB does not use the primary key index by default, I think this may be a behavior that needs to be changed.&lt;/p&gt;
&lt;p&gt;You can create an index (and make it a primary key if you want) on the rows, and we will then keep the index in the order you desire, but there is no natural use of that index through SQL.&amp;nbsp; In DDA you could set the active index to the newly created index and you would in effect walk the records in that index order, but this is because DDA is really a scrollable cursor that ADO.NET does not support.&amp;nbsp; You have to apply an order by clause in the select in order to use the created index rather than the natural order.&lt;/p&gt;
&lt;p&gt;This actually leads to me to believe that some of the optimizer code may be less efficient than I originally thought.&amp;nbsp; I think some of the assumptions in the optimizer are that a Primary Key being present means we don&amp;rsquo;t have to explicitly use the index, it is the natural one.&amp;nbsp; But this is clearly not the case in my testing today.&amp;nbsp; I will work on some usage scenarios for it over the weekend and see what I can come up with for the usage.&lt;/p&gt;
&lt;h3&gt;Using the Primary Key index as the natural order when present&lt;/h3&gt;
&lt;p&gt;This may or may not turn out to be a good idea.&amp;nbsp; I need to think through the ramifications of doing so, as it is subtle in the changes it will result in through things like joins.&amp;nbsp; At the minimum I know we need to make that select * with a Primary Key order by applied faster, it has to be fast because so many operations rely on the primary key.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=OzcHZzYhwPE:UHfi3RPWwi4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=OzcHZzYhwPE:UHfi3RPWwi4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=OzcHZzYhwPE:UHfi3RPWwi4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=OzcHZzYhwPE:UHfi3RPWwi4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=OzcHZzYhwPE:UHfi3RPWwi4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=OzcHZzYhwPE:UHfi3RPWwi4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Vistadb/~4/OzcHZzYhwPE" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Vistadb/~3/OzcHZzYhwPE/post.aspx</link>
      <author>js_vistadb</author>
      <comments>http://www.vistadb.net/blog/post/2009/10/09/The-SQL-Server-natural-order-query-myth.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vistadb.net/blog/post.aspx?id=70ea715d-b511-4ea5-a1e3-a6b07044bacf</guid>
      <pubDate>Fri, 09 Oct 2009 20:48:00 -0400</pubDate>
      <category>Articles</category>
      <dc:publisher>js_vistadb</dc:publisher>
      <pingback:server>http://www.vistadb.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vistadb.net/blog/post.aspx?id=70ea715d-b511-4ea5-a1e3-a6b07044bacf</pingback:target>
      <slash:comments>6</slash:comments>
      <trackback:ping>http://www.vistadb.net/blog/trackback.axd?id=70ea715d-b511-4ea5-a1e3-a6b07044bacf</trackback:ping>
      <wfw:comment>http://www.vistadb.net/blog/post/2009/10/09/The-SQL-Server-natural-order-query-myth.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vistadb.net/blog/syndication.axd?post=70ea715d-b511-4ea5-a1e3-a6b07044bacf</wfw:commentRss>
    <feedburner:origLink>http://www.vistadb.net/blog/post.aspx?id=70ea715d-b511-4ea5-a1e3-a6b07044bacf</feedburner:origLink></item>
    <item>
      <title>Learn .Net Programming Resources</title>
      <description>&lt;p&gt;There are a lot of areas to learn in .Net programming.&amp;nbsp; I don&amp;rsquo;t know any programmer who actually knows all of them, the namespace is just too big and complex.&amp;nbsp; I know programmers who specialize only in one small area of the .Net framework and still tell me they learn new things all the time.&lt;/p&gt;
&lt;p&gt;Now imagine the range of questions we get here at VistaDB.&amp;nbsp; How do I attach x to a y using z namespace?&amp;nbsp; Quite often we have no idea.&amp;nbsp; We know how Ado.net works inside and out, we understand a lot of things, but that does not mean we know how to do exactly what you are attempting.&amp;nbsp; And as much as I really enjoy teaching and learning we don&amp;rsquo;t have the time to go do research for people and give them a one on one training session for their specific need.&lt;/p&gt;
&lt;p&gt;I wanted to list a few resources that I find invaluable in my day to day programming, and a few sites for those just getting started or just moving to a new area of .Net.&lt;/p&gt;
&lt;h2&gt;Just Getting Started, or want to dig deeper?&lt;/h2&gt;
&lt;h3&gt;ASP.Net&lt;/h3&gt;
&lt;p&gt;For Asp.net developers take a look at the official &lt;a href="http://www.asp.net"&gt;Microsoft site dedicated to Asp.net&lt;/a&gt;.&amp;nbsp; There is a whole section on &lt;a href="http://www.asp.net/learn/"&gt;Asp.net Tutorials&lt;/a&gt; that includes excellent video segments, walk throughs, and much more.&lt;/p&gt;
&lt;h3&gt;Winforms and Windows Presentation Foundation (WPF)&lt;/h3&gt;
&lt;p&gt;Desktop application typically use Winforms for their user interface, but the newer WPF is catching on with developers.&amp;nbsp; Microsoft has a &lt;a href="http://windowsclient.net/"&gt;WindowsClient.net&lt;/a&gt; site dedicated to all things Winform.&amp;nbsp; There is again an entire &lt;a href="http://windowsclient.net/learn/"&gt;Winform help and tutorials&lt;/a&gt; area with videos and walk throughs.&lt;/p&gt;
&lt;h3&gt;Silverlight&lt;/h3&gt;
&lt;p&gt;Even though you cannot load VistaDB into a Silverlight client side, you can certainly use VistaDB on the server side and communicate to it using Silverlight (we even have a Todo sample showing how to do that).&amp;nbsp; Microsoft again provides a great &lt;a href="http://www.silverlight.net/"&gt;Silverlight website&lt;/a&gt; with a &lt;a href="http://www.silverlight.net/learn/"&gt;Learning Silverlight area&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;Need more advanced help?&lt;/h2&gt;
&lt;h3&gt;StackOverflow is your friend&lt;/h3&gt;
&lt;p&gt;Seriously, since &lt;a href="http://stackoverflow.com/"&gt;StackOverflow&lt;/a&gt; was introduced I rarely bother asking questions anywhere else.&amp;nbsp;&amp;nbsp; If I have a programming problem I usually go here first looking for someone else who has already asked the question.&lt;/p&gt;
&lt;p&gt;Stackoverflow is unique in that anyone can ask questions, and anyone can respond (you get to give back to others).&amp;nbsp; This is a great practice and I often spend a few hours a week trying to help others (yea, in my copious amounts of free time).&amp;nbsp; You can also vote on questions and responses, so there is a very social aspect to the site as well.&lt;/p&gt;
&lt;h3&gt;LearnVisualStudio.Net&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.learnvisualstudio.net/"&gt;LearnVisualStudio.Net&lt;/a&gt; is a great resource for learning about specific technologies.&amp;nbsp; The format is entirely video based, but includes fantastic in depth tutorials on specific technologies.&amp;nbsp; When I was first learning Visual Studio this was the best site for me.&amp;nbsp; It does cost a small amount per year to maintain your subscription, but I have always found it to be well worth the small investment.&lt;/p&gt;
&lt;h3&gt;VistaDB Community Forums&lt;/h3&gt;
&lt;p&gt;Our own &lt;a href="http://forums.vistadb.net/"&gt;VistaDB Community Forums&lt;/a&gt; also is a great resource for asking questions of fellow programmers.&amp;nbsp; Many of the development staff also read and respond here regularly.&amp;nbsp; Many of the community have been using VistaDB for several years and are extremely helpful in SQL and programming tips.&amp;nbsp; It is a fantastic resource for everyone who uses VistaDB.&lt;/p&gt;
&lt;h3&gt;Looking specifically for Windows 7 features?&lt;/h3&gt;
&lt;p&gt;MSDev.com has a great series of &lt;a href="http://www.msdev.com/Directory/SeriesDescription.aspx?CourseId=130"&gt;videos and tutorials that help managed programmers&lt;/a&gt;&amp;nbsp;take advantage of new features in Windows 7. &amp;nbsp;This is obviously a little more than just getting started with .Net development, but Windows 7 may be a big deal for your application.&lt;/p&gt;
&lt;h2&gt;Just the beginning&amp;hellip;&lt;/h2&gt;
&lt;p&gt;This list is literally the tip of the iceberg for learning things in Visual Studio, but hopefully it will help get you started or to continue your learning.&amp;nbsp; Every programmer gets stuck and needs help from time to time.&amp;nbsp; Hopefully these resources will help!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=ulYDK1i8GBo:R7CwK-mmh5Y:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=ulYDK1i8GBo:R7CwK-mmh5Y:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=ulYDK1i8GBo:R7CwK-mmh5Y:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=ulYDK1i8GBo:R7CwK-mmh5Y:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=ulYDK1i8GBo:R7CwK-mmh5Y:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=ulYDK1i8GBo:R7CwK-mmh5Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Vistadb/~4/ulYDK1i8GBo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Vistadb/~3/ulYDK1i8GBo/post.aspx</link>
      <author>js_vistadb</author>
      <comments>http://www.vistadb.net/blog/post/2009/10/09/Learn-Net-Programming-Resources.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vistadb.net/blog/post.aspx?id=76d11371-17c8-4b7c-810c-e8baa973f8a4</guid>
      <pubDate>Fri, 09 Oct 2009 13:31:00 -0400</pubDate>
      <category>Articles</category>
      <category>Tutorials</category>
      <dc:publisher>js_vistadb</dc:publisher>
      <pingback:server>http://www.vistadb.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vistadb.net/blog/post.aspx?id=76d11371-17c8-4b7c-810c-e8baa973f8a4</pingback:target>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://www.vistadb.net/blog/trackback.axd?id=76d11371-17c8-4b7c-810c-e8baa973f8a4</trackback:ping>
      <wfw:comment>http://www.vistadb.net/blog/post/2009/10/09/Learn-Net-Programming-Resources.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vistadb.net/blog/syndication.axd?post=76d11371-17c8-4b7c-810c-e8baa973f8a4</wfw:commentRss>
    <feedburner:origLink>http://www.vistadb.net/blog/post.aspx?id=76d11371-17c8-4b7c-810c-e8baa973f8a4</feedburner:origLink></item>
    <item>
      <title>VistaDB 4 Trial now Available</title>
      <description>&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="VistaDB Trial Page" src="http://www.vistadb.net/blog/image.axd?picture=2009-10-06_2353.png" border="0" alt="VistaDB Trial Page" width="244" height="187" align="right" /&gt;The first VistaDB 4 trial is now available.&amp;nbsp; You have to provide a valid email address in order to receive the trial.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Request Trial Email&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://accounts.vistadb.net/trial/"&gt;Signup for the trial online&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Professional Limits on all Trials&lt;/h3&gt;
&lt;p&gt;All trials are of the &lt;a href="http://www.vistadb.net/vistadb/vistadb-editions.aspx"&gt;VistaDB Professional license&lt;/a&gt;.&amp;nbsp; Once you download the trial you enter the same email address you used for the trial signup in order to get your temporary license.&amp;nbsp; If your email bounces or is from a temp email service the trial will be blocked.&lt;/p&gt;
&lt;p&gt;Also keep in mind that the limits of the Professional are not the same as all other licenses.&amp;nbsp; See the online comparison page for &lt;a href="http://www.vistadb.net/technical/vdb4-specs.aspx#pagesize"&gt;pagesize limits&lt;/a&gt; for more information.&amp;nbsp; If you plan on using VistaDB Lite, don&amp;rsquo;t use the Visual Studio tools or build with pagesizes larger than 1kb.&lt;/p&gt;
&lt;h3&gt;Unlimited Installs for single trial email&lt;/h3&gt;
&lt;p&gt;You may install the trial on as many machines as you need from a single email address.&amp;nbsp; Keep in mind this is not how it works with a full license, each developer machine must be licensed to compile applications that use VistaDB.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;30 day trial limits&lt;/h3&gt;
&lt;p&gt;The 30 day trial will stop running 30 days after the initial installation.&amp;nbsp; All &lt;strong&gt;applications built with the trial will also stop&lt;/strong&gt; running at the same time.&amp;nbsp; These limits are not present in normal full licenses.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Your VistaDB applications do not &lt;strong&gt;ever expire&lt;/strong&gt; when built with a full license. The only expiration is on support and maintenance updates.&amp;nbsp; You are free to continue using whatever versions you have on your current machine if your support contract expires.&amp;nbsp; There is no such thing as your application expiring at 3 am, unless you are running the trial.&lt;/p&gt;
&lt;p&gt;The number of trial days remaining is displayed in the Data Builder about box, and the main screen when it first loads. &amp;nbsp;In addition the Visual Studio tools also display a dialog once per day reminding you about trial status.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=KpDXtstxMeo:hpFLZnngC2g:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=KpDXtstxMeo:hpFLZnngC2g:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=KpDXtstxMeo:hpFLZnngC2g:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=KpDXtstxMeo:hpFLZnngC2g:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=KpDXtstxMeo:hpFLZnngC2g:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=KpDXtstxMeo:hpFLZnngC2g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Vistadb/~4/KpDXtstxMeo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Vistadb/~3/KpDXtstxMeo/post.aspx</link>
      <author>js_vistadb</author>
      <comments>http://www.vistadb.net/blog/post/2009/10/07/VistaDB-4-Trial-now-Available.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vistadb.net/blog/post.aspx?id=1f528ae2-2c7d-49d0-9727-5fb1d8b772f2</guid>
      <pubDate>Wed, 07 Oct 2009 00:59:00 -0400</pubDate>
      <category>VistaDB News</category>
      <dc:publisher>js_vistadb</dc:publisher>
      <pingback:server>http://www.vistadb.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vistadb.net/blog/post.aspx?id=1f528ae2-2c7d-49d0-9727-5fb1d8b772f2</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.vistadb.net/blog/trackback.axd?id=1f528ae2-2c7d-49d0-9727-5fb1d8b772f2</trackback:ping>
      <wfw:comment>http://www.vistadb.net/blog/post/2009/10/07/VistaDB-4-Trial-now-Available.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vistadb.net/blog/syndication.axd?post=1f528ae2-2c7d-49d0-9727-5fb1d8b772f2</wfw:commentRss>
    <feedburner:origLink>http://www.vistadb.net/blog/post.aspx?id=1f528ae2-2c7d-49d0-9727-5fb1d8b772f2</feedburner:origLink></item>
    <item>
      <title>Getting to know VistaDB 4</title>
      <description>&lt;p&gt;VistaDB 4 includes a number of improvements to SQL syntax, engine enhancements, and many API changes.&amp;#160; &lt;/p&gt;  &lt;p&gt;The &lt;a href="http://www.vistadb.net/vistadb/vistadb-editions.aspx"&gt;VistaDB Edition Differences&lt;/a&gt; page should help explain most of the changes in the versions of VistaDB that are available.&lt;/p&gt;  &lt;h3&gt;Data Builder 4 includes syntax highlighting&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://www.vistadb.net/blog/image.axd?picture=DataBuilder4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="VistaDB Data Builder 4" border="0" alt="VistaDB Data Builder 4" align="right" src="http://www.vistadb.net/blog/image.axd?picture=DataBuilder4_thumb.png" width="244" height="160" /&gt;&lt;/a&gt;Data Builder now uses the fantastic &lt;a href="http://www.actiprosoftware.com/"&gt;Actipro Software&lt;/a&gt; ActiPro SyntaxEditor control for syntax and colorhighting in the SQL Editor dialog (and some others).&amp;#160; &lt;/p&gt;  &lt;p&gt;This change provides a much more user friendly SQL Editor with support for collapsible regions, find and replace, goto line, block comment and uncomment, and many more features.&lt;/p&gt;  &lt;p&gt;Our customization of the syntax editor includes colors to match closely what users are already familiar with in SQL Management Studio, and includes new hot key support for things like ctrl-e for execution.&lt;/p&gt;  &lt;h3&gt;Works with Windows 7&lt;/h3&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="windows7logo" border="0" alt="windows7logo" align="right" src="http://www.vistadb.net/blog/image.axd?picture=windows7logo.png" width="151" height="27" /&gt;VistaDB 4 has passed all the Windows 7 compatibility tests from Microsoft!&amp;#160; SQL Scripts are now kept beside the target database by default (same directory), but you can override this directory as well.&amp;#160; The default for all scripts now uses the Public Document Library in Windows 7 to avoid UAC issues for users.&amp;#160; &lt;/p&gt;  &lt;p&gt;We currently run Windows 7 64 bit internally on most developer workstations, and test the 32 bit version in Virtual Machines.&amp;#160; We have found that Windows 7 performs very well with VistaDB 4.&lt;/p&gt;  &lt;h3&gt;AssemblyVersion vs FileVersion &lt;/h3&gt;  &lt;p&gt;VistaDB 4 uses a new schema for versioning the numbers of the assemblies similar to how Microsoft versions the system assemblies for .Net.&amp;#160; The AssemblyVersion attribute will stay 4.0.0.0 for all builds that implement the interfaces to be compatible with 4.0.&amp;#160; The individual builds have a FileVersion attribute set that includes their specific build (4.0.6.1).&lt;a href="http://www.vistadb.net/blog/image.axd?picture=2009-10-05_1604.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="VistaDB.4 version information from GAC" border="0" alt="VistaDB.4 version information from GAC" align="right" src="http://www.vistadb.net/blog/image.axd?picture=2009-10-05_1604_thumb.png" width="213" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.vistadb.net/blog/image.axd?picture=2009-10-05_1606.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="List of VistaDB Assemblies in the GAC" border="0" alt="List of VistaDB Assemblies in the GAC" src="http://www.vistadb.net/blog/image.axd?picture=2009-10-05_1606_thumb.png" width="526" height="165" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The list of VistaDB Assemblies in the GAC shows that the 3.x line included the build number.&amp;#160; This would often cause problems with applications built against one version, but that now need to run under another (ORM and other third party tools).&lt;/p&gt;  &lt;p&gt;Looking in the GAC you will find an entry for VistaDB.4 that shows 4.0.0.0.&amp;#160; That is to avoid the whole binding redirect problem of the 3.x line.&amp;#160; This also means you can only have a single 4.0 assembly in your GAC at a time (avoiding build binding problems).&amp;#160; If you want to see the specific FileVersion of the assembly you can right click the entry, select properties and then view the Version tab.&amp;#160; It should look something like the entry shown.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h3&gt;Entity Framework Supported&lt;/h3&gt;  &lt;p&gt;VistaDB 4 introduces support for the Entity Framework (EF).&amp;#160; The Entity Framework can greatly simplify writing Data Access Layers (DALs) for your managed applications.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;By using the EF you also gain the ability to use LINQ to Entities to query your VistaDB database.&amp;#160; The LINQ syntax is an incredibly powerful way to write queries against a database in your .Net language of choice.&amp;#160; &lt;/p&gt;  &lt;p&gt;The initial release of our EF provider is definitely nascent technology – it is still under development. We plan to continue to improve the support and features of the EF provider over the lifetime of the VistaDB 4 product.&lt;/p&gt;  &lt;h3&gt;SQL Server Compatibility Changes for CLR Procs and Functions&lt;/h3&gt;  &lt;p&gt;We have added a new VistaDB.Compatibility class to make it easier to transition SQL Server CLR Procs to VistaDB (and back again).&amp;#160; We have renamed the enumeration members and contexts to match SQL Server naming more closely.&lt;/p&gt;  &lt;p&gt;Now through only changing the using statements at the top of your CLR Proc you should be able to run in both database engines.&lt;/p&gt;  &lt;p&gt;ClrProcedures now use the [SqlProcedure] and [SqlFunction] attributes exactly like SQL Server.&amp;#160; The one change that many will need to make is to use the System types in their clr procs rather than the SQL Data types.&amp;#160; Using the system types (string, int, etc) ensure that the code is more portable.&amp;#160; &lt;/p&gt;  &lt;h3&gt;Better Medium Trust support&lt;/h3&gt;  &lt;p&gt;VIstaDB 4 includes a number of enhancements for websites running under Medium Trust.&amp;#160; Medium Trust compliance is a very difficult objective for something like a relational database.&amp;#160; We have managed to allow all of our features (including temp tables, Sql procs, and Clr Procs) to run under Medium Trust.&amp;#160; Users can even pack their database directly from Medium Trust in order to perform database maintenance without first needing to download the database.&lt;/p&gt;  &lt;h3&gt;New Installer based on Tarma&lt;/h3&gt;  &lt;p&gt;We have updated our installer to use the &lt;a href="http://www.tarma.com/"&gt;Tarma Installer&lt;/a&gt;.&amp;#160; The installer is very easy to use, can be automated from command options, and provides us with great customization abilities for running things like the EF install system.&lt;/p&gt;  &lt;p&gt;Tarma has been great to work with from a company standpoint as well.&amp;#160; I have opened a few tickets during our migration from the previous installer and they have always been very responsive.&amp;#160; Updates from Tarma are also often and painless to install.&amp;#160; The product tells you that an upgrade is available and you can choose to download it.&lt;/p&gt;  &lt;h2&gt;Breaking Changes from 3.x&lt;/h2&gt;  &lt;p&gt;We have a revision philosophy that should minimize breaking changes within customer applications as much as possible between revisions.&lt;/p&gt;  &lt;p&gt;VistaDB 4 is a major release because we had to make a number of breaking changes to the interfaces.&amp;#160; Anytime you revise an interface it should be a major change in your product version.&amp;#160; &lt;/p&gt;  &lt;p&gt;We strive very hard to make sure minor versions are small changes in behavior or features.&amp;#160; Any product built against a 4.0 should expect to run on all of the builds for that major.minor.&amp;#160; When VistaDB 4.1 comes out you should expect some minor breaking changes, perhaps additional interfaces or overloads.&amp;#160; We should not break any of the interfaces though until we release a 5.0.&amp;#160; &lt;/p&gt;  &lt;p&gt;This allows you to be confident that any build for 4.0 should be compatible within your application.&lt;/p&gt;  &lt;h3&gt;Upgrading from VistaDB 3&lt;/h3&gt;  &lt;p&gt;First, remember that you can run 3 and 4 in side by side mode.&amp;#160; There is no reason to remove 3 in order to install 4.&amp;#160; You can use the Visual Studio Designers for both without conflict.&amp;#160; Visual Studio 2008 and higher are the only ones supported in 4.x, you can load the assemblies in Visual Studio 2005 if you don’t need any design time support and are working on a .Net 2 SP1 project.&lt;/p&gt;  &lt;p&gt;Upgrading from VistaDB 3 to 4 should be considered a complete retest and revalidation of your product.&amp;#160; It is, after all, a major change.&amp;#160; Some of the interfaces have changed behaviors.&amp;#160; The largest changes are in Direct Data Access (DDA) interfaces.&amp;#160; We have encapsulated more of these interfaces to ensure that users cannot manipulate the internals of the objects.&amp;#160; There are users who were forward casting the interfaces to their underlying types and modifying their contents, this should always result in an exception as it was not the intended design of the class.&amp;#160; If you think you need access to the internals of an object there should always be a way to get that information through other means, not manipulating the object directly.&amp;#160; In some cases this would lead to bad application behavior, and in others it would lead to database corruption (since the objects were not intended to be used that way).&lt;/p&gt;  &lt;h3&gt;License Changes&lt;/h3&gt;  &lt;p&gt;Make sure your application has a licenses. licx in the executable.&amp;#160; The entire license system has changed in 4, so you may want to read through the help section on “VistaDB Licensing” to see how your project is effected.&amp;#160; &lt;strong&gt;Every developer&lt;/strong&gt; who compiles any part of the application must have a valid developer license on their machine.&amp;#160; This was not enforced in 3.x, but it is now in 4.&amp;#160; There is no such edition where only the “database guy” needed a license.&amp;#160; The license is built into the executable on the machine it was built, so machines without licenses cannot build.&amp;#160; &lt;/p&gt;  &lt;p&gt;We will be offering build machine licenses for things like MSBUILD, or continuous integration machines at a reduced price.&amp;#160; But they will not be able to be used on full developer machines – they are intended for automated compiles only.&lt;/p&gt;  &lt;h3&gt;ADO.NET is easiest transition&lt;/h3&gt;  &lt;p&gt;ADO.NET code should be the easiest to migrate from 3 to 4 as the interfaces are well defined.&amp;#160; We have added new overloads in some cases, and updated some behaviors, but the majority of code should run unchanged.&lt;/p&gt;  &lt;h3&gt;Pagesize limits&lt;/h3&gt;  &lt;p&gt;See the &lt;a href="http://www.vistadb.net/blog/post/2009/08/30/Upgrading-VDB3-files-to-VDB4.aspx"&gt;blog post on upgrading VDB3 files&lt;/a&gt; for detailed information on migrating a VDB3 database to VDB4.&amp;#160; The database may need to be changed as a result of the pagesize enforcement changes in VistaDB 4.&amp;#160; You can view a &lt;a href="http://www.vistadb.net/technical/vdb4-specs.aspx#pagesize"&gt;list of the pagesize limits&lt;/a&gt; on the website.&amp;#160; &lt;/p&gt;  &lt;p&gt;Applications were being submitted to us all the time with complex requirements, but their pagesize set to 1.&amp;#160; This led to a lot of wasted tech support time trying to discover problems that were due to incorrect structure of the data.&amp;#160; In VistaDB 4 we have implemented these hard limits to help avoid those designs being implemented before the problems arise at runtime.&lt;/p&gt;  &lt;p&gt;If you are attempting to upgrade a database and it fails, the most likely cause is that your pagesize is 1 and you have more entries than the limits allow.&amp;#160; The other most likely cause is that you have invalid defaults for columns (DATE is a datatype now, not a function to get the current date – GETDATE() is that function in SQL Server).&lt;/p&gt;  &lt;h3&gt;DDA Interfaces changed&lt;/h3&gt;  &lt;p&gt;Many of the DDA interfaces had a property to let you get a list of the tables, indexes, etc.&amp;#160; Those were not the actual tables, but a copy of the table list to be enumerated (not modified).&amp;#160; Many of the interfaces were returning classes that could be forward cast to concrete implementations that were intended for internal use only.&amp;#160; &lt;/p&gt;  &lt;p&gt;As an example the list of default values are always contained in a IVistaDBDefaultValueInformation object that only exposes a few properties (ColumnName, Expression, UseInUpdate).&amp;#160; Each of these are now read only in order to ensure the user knows that it is a read only collection of the values.&amp;#160; Enumerating the list of default values is done from the IVistaDBDefaultValueCollection (which contains read only IVistaDBDefaultValueInformation objects).&lt;/p&gt;  &lt;p&gt;You will see this pattern many times in the DDA interfaces, a collection of some objects that are information objects. This allows you to enumerate over the collections for each object, but many times you cannot modify them at that location.&amp;#160; Look to the parent of the object.&amp;#160; If you are modifying constraints, the table is probably the level that holds the routines to modify them.&amp;#160; If you are adding columns, the TableSchema is the location to look.&amp;#160; &lt;/p&gt;  &lt;p&gt;Most of the changes in 3.x code should be fairly minor, unless your code was relying on bad behavior (like forward casting).&lt;/p&gt;  &lt;h3&gt;Read the changes through the blog&lt;/h3&gt;  &lt;p&gt;The complete history of the changes can be read by following through the &lt;a href="http://www.vistadb.net/blog/archive.aspx#Builds"&gt;BUILDS category on the blog&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;Online Help files Updated&lt;/h3&gt;  &lt;p&gt;The &lt;a href="http://www.vistadb.net/onlinehelp/"&gt;VistaDB 4 Online Help Files&lt;/a&gt; have been updated to include the final shipping version of VistaDB 4.&amp;#160; The entire VistaDB.net website has been updated to include the information for VistaDB 4.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=tt2f27PIJlg:SC2UieFrqvE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=tt2f27PIJlg:SC2UieFrqvE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=tt2f27PIJlg:SC2UieFrqvE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=tt2f27PIJlg:SC2UieFrqvE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=tt2f27PIJlg:SC2UieFrqvE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=tt2f27PIJlg:SC2UieFrqvE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Vistadb/~4/tt2f27PIJlg" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Vistadb/~3/tt2f27PIJlg/post.aspx</link>
      <author>js_vistadb</author>
      <comments>http://www.vistadb.net/blog/post/2009/10/05/Getting-to-know-VistaDB-4.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vistadb.net/blog/post.aspx?id=8b8fb7e3-7fac-42ca-bc5e-de006fbe2b41</guid>
      <pubDate>Mon, 05 Oct 2009 20:23:32 -0400</pubDate>
      <category>VistaDB News</category>
      <dc:publisher>js_vistadb</dc:publisher>
      <pingback:server>http://www.vistadb.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vistadb.net/blog/post.aspx?id=8b8fb7e3-7fac-42ca-bc5e-de006fbe2b41</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.vistadb.net/blog/trackback.axd?id=8b8fb7e3-7fac-42ca-bc5e-de006fbe2b41</trackback:ping>
      <wfw:comment>http://www.vistadb.net/blog/post/2009/10/05/Getting-to-know-VistaDB-4.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vistadb.net/blog/syndication.axd?post=8b8fb7e3-7fac-42ca-bc5e-de006fbe2b41</wfw:commentRss>
    <feedburner:origLink>http://www.vistadb.net/blog/post.aspx?id=8b8fb7e3-7fac-42ca-bc5e-de006fbe2b41</feedburner:origLink></item>
    <item>
      <title>VistaDB 4.0 Ships with Build 6</title>
      <description>&lt;p align="right"&gt;Build #6&lt;/p&gt;
&lt;p&gt;VistaDB 4.0 shipped October 2, 2009 as Build 6 with only minor changes from the previous release candidate.&lt;/p&gt;
&lt;p&gt;See the detailed &lt;a href="http://www.vistadb.net/blog/post/2009/10/05/Getting-to-know-VistaDB-4.aspx"&gt;Getting to know VistaDB 4 post&lt;/a&gt; for more information on what has changed and is new in VistaDB 4.&lt;/p&gt;
&lt;h3&gt;New TODO Sample&lt;/h3&gt;
&lt;p&gt;Added TODO Sample N-TIER Application.&amp;nbsp; The sample includes a simple TODO list application, with the presentations being totally abstracted from the actual data storage. The purpose of this sample is to demonstrate a well structured 3 tier application that uses a range of presentation technologies to the same underlying foundation using VistaDB as an embedded database.&lt;/p&gt;
&lt;p&gt;Inside the sample you will find a WCF service, Business Logic Layer (BLL), Data Access Layer (DAL), and 3 different presentation layers (ASP.NET, WPF, and Silverlight 3).&amp;nbsp;&amp;nbsp;&amp;nbsp; This sample is a much larger and more complex sample than we have presented previously.&amp;nbsp; It demonstrates writing a well structured 3 tier application with VistaDB as the common data storage across multiple types of .Net applications.&lt;/p&gt;
&lt;p&gt;ASP.NET, WPF, and Silverlight 3 are used as presentation layers (WPF and Silverlight require additional downloads as noted in the TODO Help file).&amp;nbsp;&amp;nbsp; Each of the presentation layers is represented in a separate solution with the other projects linked in from the common directory path.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;Medium Trust&lt;/h3&gt;
&lt;p&gt;Fixed an issue with Web Applications, medium trust, and VistaDB running from the GAC.&lt;/p&gt;
&lt;h3&gt;Pack Database overload&lt;/h3&gt;
&lt;p&gt;Fixed an issue with pack called on a VistaDBConnection that was wrapped around a database opened via DDA. This is now an error since the VistaDBConnection does not know enough about the underlying database to pack. Pack should be called from DDA when the open was performed from DDA.&lt;/p&gt;
&lt;h3&gt;Trial Version will follow soon&lt;/h3&gt;
&lt;p&gt;The VistaDB 4 trial version is almost ready to ship, we are internally testing it right now. &amp;nbsp;We also have to update the trial signup pages and followup emails to discuss the 4 version of the product.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=lDGO_Xc-3k8:Bi90fFzcBJc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=lDGO_Xc-3k8:Bi90fFzcBJc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=lDGO_Xc-3k8:Bi90fFzcBJc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?i=lDGO_Xc-3k8:Bi90fFzcBJc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=lDGO_Xc-3k8:Bi90fFzcBJc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Vistadb?a=lDGO_Xc-3k8:Bi90fFzcBJc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Vistadb?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Vistadb/~4/lDGO_Xc-3k8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Vistadb/~3/lDGO_Xc-3k8/post.aspx</link>
      <author>js_vistadb</author>
      <comments>http://www.vistadb.net/blog/post/2009/10/05/VistaDB-40-Ships-with-Build-6.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vistadb.net/blog/post.aspx?id=602fcd28-8ec8-4303-9380-916e16b4a8b5</guid>
      <pubDate>Mon, 05 Oct 2009 19:47:00 -0400</pubDate>
      <category>Builds</category>
      <dc:publisher>js_vistadb</dc:publisher>
      <pingback:server>http://www.vistadb.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vistadb.net/blog/post.aspx?id=602fcd28-8ec8-4303-9380-916e16b4a8b5</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.vistadb.net/blog/trackback.axd?id=602fcd28-8ec8-4303-9380-916e16b4a8b5</trackback:ping>
      <wfw:comment>http://www.vistadb.net/blog/post/2009/10/05/VistaDB-40-Ships-with-Build-6.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vistadb.net/blog/syndication.axd?post=602fcd28-8ec8-4303-9380-916e16b4a8b5</wfw:commentRss>
    <feedburner:origLink>http://www.vistadb.net/blog/post.aspx?id=602fcd28-8ec8-4303-9380-916e16b4a8b5</feedburner:origLink></item>
  </channel>
</rss>
