Archive for June, 2009

For those who havnt noticed – Firefox 3.5 has been Released

Tuesday, June 30th, 2009

It can be downloaded at the normal location – www.getfirefox.com. On the surface it looks visually pretty much the same, but has some nice features, and a couple of core add-ons  that are not compatible with 3.5. For the new stuff:

  • Private browsing mode
  • Faster JavaScript execution
  • Can drag tabs into new windows
  • “Forget this site” as a finer tuned scalpel for removing remnants of specific sites.
  • Improved offline browsing
  • New features that we need to wait for web sites to catch up on:

So the good news is that WordPress 2.8 works without a hitch (at least so far :-) ). Google Gears however is currently disabled as it is not compatible. The interesting part is that HTML 5 supports local storage and so is somewhat competitive to Gears, so it will be interesting to see what Google does to Gears when it runs inside a HTML5 browser. I’m hoping I dont have to wait for Gears for too long :-)

For me I’ve not encountered any problems. So to sum up – I dont see anything particularly broken about this release. Which is always nice and reassuring when a release comes out and you dont need to back it out 1 hour after installing it!

Gareth

SQLite for C# – Part 4 – So how does SQLite stack up against other DB’s?

Tuesday, June 30th, 2009

Well I would actually advocate the question/title of this topic is misplaced. This is really the question I would have asked probably 4 months ago, and in all likelihood dismissed SQLite after hearing the answers! So bear with me, its worth the read! The key question that really should be asked is not how it stacks up, but what are its strengths and in what circumstances should I use it. In essence what problems is SQLite designed to solve rather than academic bullet point comparisons.

However back to the question – How does it stack up?

Question SQLite SQL Server SQL CE
Support multiple clients Y (not in client server mode, but shared file access) Y N
Requires Server process N Y N
Support views Y Y N
Support Stored Procedures N Y N
Trigger Support Y Y N
Foreign Key Constraints N – Can be achieved via triggers Y Y
Multiple processes read/write to DB Y Y N
Natively Support Microsoft Replication N Y Y
Max DB size Big (max pages=1073741823 * max page size=32768) Too big to matter! 4 Gb
Max CPUs All All 1
Max CPUs All All 1
#Files to distribute 1 100′s 2-7
Run Windows Mobile Devices Y N Y
Run Non Windows Mobile Devices Y N N
Support in MONO Y N N

As you can see SQL Server definitely has the most features, in fact as far as features go its a slam dunk. However often feature count just isn’t everything. The major drawback for SQL Server is that it requires a Server process to run, and that then means maintenance, probably a DBA and all of a sudden things have got complicated (and expensive)! So we come back to the question “What are we looking to do with the database?”. If the answer is heavy duty processing that requires stored procedures, cubes and large amount of concurrent remote access by users – SQL Server is definitely your answer. However I have to think that you are reading this because SQL Server is too heavy weight for your needs. So on to the other candidates.

SQL CE is a Microsoft database that started in the mobile space and moved up to the PC platform. Overall is has reasonable features but is known to be slower and heavier than SQLite. It definitely has some strengths in the SQL Server ==> SQL CE replication, but outside of that its largely even or less featured that SQLite. If you are looking for replication definitely checkout SQL CE, but I would also say the Microsoft Synch framework is evolving and we may see a native SQLite provider (or determine that the ADO.NET is sufficient) in this area.

SQLite is a lightweight add-on to C# (System.Data.SQLite.DLL ~ 850Kb). You may note this is heavier than the often referenced SQLite runtimes take “200Kb”, but in this 850Kb (457Kb Zipped) is the SQL DLL, ADO.NET SQLite provider and the magic glue to bring these two worlds together. If you are using .Net you can assume you have to assume your package size will go up by 457Kb, and the runtime size on disk will be ~850Kb. Performance of SQLite ranks it above SQL CE for insert tests, and it has a lower file size – and the database can be assessed on a massive number of operating systems!

Before you jump whole heartedly on the SQLite bandwagon, it is only fair to also point out SQLite has some quirks (SQLite folks call these ‘features’ – I’m not going to argue, but its approach is different in a couple of cases). I’m going to cover these in the next blog entry “Part 5″. These are things that you definitely need to be aware of rather than discover!

The key question that the article should be asking is “What type of application features benefits from SQLite?”. The best way I can describe SQLite is that is is an “Application Data Store” that you then have ANSI-92 SQL access to. This removes the needs of rolling your own indexing into files, creating convoluted file system ‘databases’ etc. If you can wrap your head around how you can use SQLite to your advantage I think you will be pleasantly surprised.

Related Links:

Mono in the news again! 2.4.2 released with MVC support, and Stallman against Mono…

Monday, June 29th, 2009

Firstly and most importantly Mono 2.4.2 release is now available. Major highlights include:

In addition to bug fixes, this release includes the following major changes from 2.4.0:

  • We now ship Microsoft’s ASP.NET MVC (http://www.asp.net/mvc) stack and ASP.NET MVC applications can run with Mono.
  • xbuild has been updated
  • Removed non-free amqp0-8.xml documentation.

More detailed information can be found “http://www.mono-project.com/Release_Notes_Mono_2.4.2“. I have to say the MVC part is really exciting for me, again for cloud and cross OS capabilities this seems a winner!

Now on to the other side of the news – I almost blogged about this earlier, but it seems good prudence as we now can have the good news of the new release with the less good of people saying don’t use it!

Richard Stallman is recommending against using C# as a platform for free software in his “Why free software shouldn’t depend on Mono or C#“. This obviously got a big slashdot following at http://news.slashdot.org/story/09/06/27/1759255/Richard-Stallman-Says-No-To-Mono. While I understand his sentiments I dont believe that his thoughts on Microsoft pulling C# support using patents is any more of a threat than any other language (aka everything has patent exposure – its not language specific). Actually I’ve been very impressed with Microsoft recently on their move towards interoperability and their more open support of open systems. Adding fanning the flames was this Here we go again – why Mono doesn’t suck. Ah I had forgotten about the joys of how much can be written about a emotive topic in such a short period of time :-)

Gareth

Morning C# news – and more

Monday, June 29th, 2009

This one has just been reported, but if you havnt seen it – it is very exciting!

  • Mono on the iPhone…. To say this is exciting is an understatement. Unfortunately I’m a little afraid that Apple wont like it too much (read allow it in their TOS).

    “3.3.2 An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise. No interpreted code may be downloaded and used in an Application except for code that is interpreted and run by Apple’s Published APIs and built-in interpreter(s)”

    .Mono is normally an interpreted language very similar to Java and the TOS explictly disallows running byte code on the machine.  So this could be VERY interesting, or it could be a nice concept and not never to hit the Apple store. Definitely watch this space!Otherwise we will end up with a compiler than generates Object C code :-(

  • Firefox 3.5 should be out tomorrow.
  • Another EDW appliance comes into the fold with Aster Data.
  • Simple problems highlighted with “SQL Server 2005 reporting in management studio“.

Gareth