Sunday, July 24, 2005
a VB.NET 2003 Hall of Shame which is now fixed in 2005
A new Solution for Another Hall Of Shame
in SQL Server CE v 2.0 . i always get this question more and more and more . "is there any way to work online with SQL CE v 2.0 ?"
unfotunately we cannot use the ADOCE from .NET CF 1.1 since the .NET CF 1.1 doesnt have a COM INTEROP, so the only solution is to use of course the ADO.NET . but what do microsoft enforces us to use an offline behaviour in an online solution . i dont need to work with ADO.NET on .NET CF coz we have a huge number of disadvantages ( HUGE HUGE):
1- Loading a Dataset in Memory is eating the memory and i always get "OutofMemory exception"
2- going to the DataReader is like leaving one problem to a larger one. DataReaders are readonly .
3- i cannot design my DB on the Desktop(unless by a third party tools like SQL CE console) , and this is driving alot of developers to madness.it is very difficult to create a DB and Schema on the Device itself .
4- the SQL CE v 2.0 is very Weak . it doesnt support anything except just plain tables. i cannot have views . i cannot have anything.
and alot more...............................
unfortunately some enterprise solutions i have seen myself is totally built on XML instead of SQL Server CE v 2.0 . i asked the develoeprs there "why?" they said we have alot of functionality beyond that in the SQL CE.
Honestly , the only good things i see in SQL CE v.20 are :
1- Seek method . i have built a solution with a 350,000 records in one table and the seek method has just taken 1 second for returning a specific row in the worst case.
2- compact DB.
and now the real fun begin :
1- Supports ResultSets so we can now (AT LAST) work online , instead of loading all the Dataset in memory.
the SQL Mobile :
2- Multiple connections on the same DB . this was one of the most annoying thing for me .
3- you can design your complete solution and test it on the desktop and then deploy it to the device.