Server CE Database Development with .NET
This book comprises 10 Chapters in just under 450 pages, including the indexes and usual book stuff. Since CE supports ASNI Sql, there are a few chapters that discuss using SQL to manipulate databases, which are probably not necessary for most database programmers. Chapters 4-8 are dedicated to DDL (data definition language), DML (data manipulation language), and taking advantage of metadata. It's a good discussion of these subjects, and I guess an author must include them to be thorough, but if you aren't that familiar with SQL, you probably have some learning to do before diving into data-driven PDA apps.
Enough about the background, though. The book really excels in two areas, one of which I think is probably useful to any developer, even if you don't use the Compact Framework or Microsoft Products. That area is security.
Far too many developers blow off security concerns, or claim to care but do little or nothing about actually increasing security. Let's face it: no matter how secure your OS is, no matter how killer your firewall is, today there are a lot of people trying to break your app and they aren't always outside of your company. Tiffany points to a GIGA Information Group article criticizing the industry for ignoring security on mobile devices.
A lot of what he says is focused on security issues that are 'common sense,' and yet ones that people ignore all the time. It's kind of a shame that a writer needs to explain the benefits of using 'Strong Passwords,' but let's face it, no matter how well you write your app, it won't be secure if you leave the front door open.
In no way am I saying that the author's discussion of security is limited to such elementary topics, but he does a great job of bringing many issues into focus and suggesting ways to deal with them.
The other area that this book really excels in is getting you through replication. This is not a fun topic if you don't know what you are doing and there isn't a lot of literature out there to help you get through PUSH/PULL subscriptions and the like. Pragmatically speaking, of the topics this book covers, Tiffany's coverage of replication is probably going to benefit people the most, because if you can't sync your PDA with your server, you are effectively out of gas. If you aren't a Sql CE user you won't appreciate the value of this chapter, but love MS or hate them, the newsgroups and forums are filled with folks with the same sorts of problems that the author works diligently to get you through.
It's hard to know what will and won't work yet on the Compact Framework and CE. It's quite helpful to have a list of common functions that are supported listed in depth -- another thing I liked about this book.
What else? Well, the text was well written, very similar to his last book on Pocket Access (Pocket PC Database Development with eMbedded Visual Basic) and easy to read. If you are a total newbie to CE, you can use this book and hit the ground running. Everything that you need to write professional apps is included, and I can't find anything that Tiffany omitted.
I really appreciate the fact that the author wrote an entire book on such a niche subject. Many areas, particularly the Compact Framework, don't have a lot of literature on them and if you are writing SQL Server CE, you are on your own...until now.
If you develop in CE, or plan to, this book is a Must Have.
You can purchase SQL Server CE Database Development with the .NET Compact Framework from bn.com. Slashdot welcomes readers' book reviews -- to submit a review for consideration, read the book review guidelines, then visit the submission page.
MSSQL CE, that's what.
no, really, i can't. bashing things out of ignorance is fun and easy.
This doesn't seem to be a huge area with many developers. I guess he just liked the subject?
Amazon and Bookpool.
I have over 70 freaks, do you?
does this work with Mono? That's what .NET really needs to gain acceptance!
HOW'S MY POSTING? CALL 1-800-POSTING
regardless of microsofts ability(or inability, whichever) to produce good software, it is never small. how can "compact" and "microsoft" be in teh same sentence...
okay, perhaps, "microsoft's focus on security is compact."
before you flamebait me all to hell, its a joke and i use windows almost exclusively because it runs the software i need to run.
tofu is made of little baby seals
This book tells me how to run an enterprise DB on my PDA? I had no idea they were that powerful now.
Geez -- a crippled db platform if there ever was one. Calling it "SQL Server" is really a major misnomer -- the two are not even remotely similar in even basic features. Obviously, this would be expected to some extent -- but the name tends to mislead. I had the misfortune of working for an employer who wanted the same application working on both SQL Server and a handheld version on CE. They expected significant code to be shared between the two, and ultimately got a nasty surprise when this proved infeasable, given the alotted dev time frame.
Roving Web-Teleoperated Robot
I think I'll pass
Now we've got SQL Server CE!
No bloat there, I'm sure (*cough* MSDE *cough*).
Do we really need more technologies in their infancy? Is it not one of the biggest problem in this industry that we keep inventing new ways of doing the same stuff, throwing out entire generations of products and developers each time?
We need ways to make existing good code last longer, not new frameworks to waste time on.
But... sigh... I don't expect that kind of attitude from Microsoft. One more reason to avoid such platforms like the pest.
Ceci n'est pas une signature
While I haven't been interested in shelling out the $$$ for Microsoft's server product (getting data back to the desktop database is important to me) I can say that I haven't found any database solution that operates as quickly as MySql on a PDA.
My Zaurus is running as a full fledged server and its rock solid. Even the desktop ODBC connector is able to pull data into my windows apps at a surprisingly fast rate of speed. In a word it's simply awesome. I just wish my PHP skills were better.
For the mortals Microsoft offers an Access compatible format (pocketAccess) that's horribly limited and slow. There are some great PocketPC database apps that are crippled by this horrific database solution that could be killer apps with a free backend.
www.lonseidman.com
Ummm, MySQL or Postgres on a handheld? Seems a bit overkill. I'm still holding out for Oracle 10i Compact Edtion, aka Oracle/iCE. As long as it has SQL*Plus, quite possibly the most robust command line SQL tool ever made, I'll be happy!
Well if all the information is in RAM then think of how fast transaction time will be with no disk reads, then realize the power of SQL server on a PDA.
How's stupid enough to run their database server on Windows CE anyway?
Don't think this is a huge focus for Microsoft, they're practising their tried and true method of "throw enough shit against the wall and some of it will stick" marketting. Assuming this product gets a decent foothold then you'll see them really push it.
Trolling is a art,
Does SQL Server CE support items like stored procedures and triggers? Not much good if it does not.
CMDRTACO CHECK YOUR EMAIL!
It will be secure if you leave the front door open, but have a tiger pit cleverly disguised just inside the doorway.
Thieves tend to go to the path of least resistance, and unless they see one of their criminal compatriots plummeting into the tiger pit, or hear the horrible screams that follow, this is their most likely point of attack.
Or was that just a metaphor?
The very high quality embeddable SQLite database has several ports to .NET -- see the web site.
Comment removed based on user account deletion
If you have a database with 32 MB of data then you don't really need SQL server to make use of it.
After all, unless you are simply playing games on the PDA, it probably needs to interact with a database somewhere and I can assure you, just about every common task that you may encounter is discussed in depth. The show you how to bind controls to data, retrieve it from a Web Service, retrieve it from a SQL Server on a local network, use SQL CE to take advantage of replication and using XML as a Data Access technology.
So, if I'm reading this right, the way this is supposed to work is:
1) You bind your GUI controls to a SQL server database using the SQL CE library installed on your PDA.
2) When a GUI control needs to update the data, or refresh it's view of the data, it performs a query using SQL CE.
3) SQL CE then transforms that request into an XML document, sends it over a (presumably) wireless network connection, to SQL Server.
4) SQL Server then processes the request, generates an XML response, and then the whole thing runs in reverse until the response gets back to the control, which can then update itself with the new information.
Is this really the way this thing is supposed to work? Please somebody tell me that I'm reading this wrong.
SQL statements are great when you're trying to optimize for query efficency, but they're awful when you're trying to optimize for network latency/bandwidth. This is because SQL is based on the idea that you perform operations over a persistant connection, because establishing that connection and performing the query is usually the bottleneck.
But any wireless developer will tell you that latency/bandwidth is the major bottleneck in a mobile application. When you're sending data over CDMA/GSM networks, the best data rate you can hope for is 192kbps, and forget about low latency. This means you have to package your requests in a big bundle and do them all at once. Which means you need something a little more coarse-grained than SQL.
I suppose if you assume that your application will always have 802.11 access, this could be a good model. But otherwise you're going to be waiting 5-10 seconds every time you click a button, change a setting, or scroll down through a list. Which means nobody is going to actually use your application because it's a grand waste of time.
I've used the .NET CF for a project, and let me tell you, the last thing we wanted to do was add a mini SQL server to our application.
:0
If your handheld app isn't doing heavy lifting, why not a web service? Send the records you need on the fly.
That's a lot easier than going through the rigamraole of synching your MSSQL Lite to a real sql server, and it doesn't expose your SQL server port (which might be a big deal if you don't trust MS patches to work correctly the first time.
Technology Consulting & Free Downloads
to store the english alphabet. :)
Performance was good unless you wanted the results sorted
I've seen some alternatives to the Microsoft approach. One involved a database that was written in Javascript-so the database code and the data itself were both stored in the browser cache.
So far many of the comments seem to be along the lines of, "SQL Server for a PDA?! WHY?!" Well, why not? Think about where PDA's could be headed. Why not have the PDA be the server for your Personal Area Network?
PDA's these days are getting more and more powerful. They're already as powerful as what was on the desktop less than a decade ago, and they're catching up fast. It's not unreal that in 5 years we'll have PDA's capable of running Half Life 2 and Doom 3. I mean, today's PDA's can already run Quake 1 and 2.
So back to SQL Server. Why is it bad that they are developing a version of SQL Server running for this kind of platform? It seems the perfect starting point for some really powerful mobile apps.
He's a witch! Burn him!
Cheers
-b
If I wanted a sig I would have filled in that stupid box.
There are already wireless devices for field force applications, which have a database on the device. And guess what, they don't use Sql server. All of the ones I know of are custom database written with assembly to make sure the thing is fast, efficient and takes the least amount of memory. Until wireless service becomes dramatically more reliable, real-time sync between a server and a wireless device is a pipe dream.
We agree that progress is good. No-one regrets the passing of days when we hand-coded interface languages because XML had not been invented.
But you make the mistake of many people, namely to assume that change is equal to progress.
Change is only part of the cycle. The other part of the cycle is the refinement of techniques and maturation of knowledge that lets you exploit change to the fullest.
Imagine if every three years we had to discard languages like HTML and XML and start with new, incompatible concepts. The market would never get into a state where mature concepts could be built: it takes 2-3 years at the least before businesses understand and trust technical platforms well enough to use them effectively.
Yet this is the basic premise of Microsoft's marketing strategy: saturate the market with new development platforms, capture the pioneer developers and keep the customer base forever unstable and tottering in Microsoft's direction.
Agreed that many vendors try this: "if you're going to base your business critical application on an untested platform, at least use ours". But Microsoft's scale and marketing push make it a much more serious issue.
Change is not progress. Change mixed with periods of maturation can be progress.
Ceci n'est pas une signature
And yet they are as powerful as computers 10 years ago. What is the problem? Basic operating system, simple database, tight, efficient programming language... all these things exist and do not require more new platforms.
I do not accept that the resolution of the screen or the size of the device requires a new development platform (especially at the database level).
Ceci n'est pas une signature
This is pure and simple FUD.
Not ONE of these technologies listed is obsolete or not used any more.
Bash MS all you want, when you can back it up.
When you bash MS and don't back it up, it kinda null and voids all of your other arguments.
No Comment.
you know what? maybe is he a moron, but at least he has the nerve not to post anonymously.. but you YOU ARE TEH TRUE GHAY.. go suck the dick of your master bill gates motherfucker!
This is not like a simple recompile of the beast that is MS SQL server. It is a new product designed for PDAs. However, it still seems rather silly.
"Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
.NET.
Compact.
(pause)
Bwahahahahaha!!!!! BWAHAHAHA!!!
There are many, many types of mobile applications that require a small local database. For example, UPS drivers might have a handheld computer with a database of delivery orders. These are usually synced with with the "main" database server at some point. There are other choices, but if you are working with the .NET compact framework Microsoft provides additional tools for working with and synching SQL Server
This is "informative"? /. cliche joke?
"uncle's brother's neice's sister"?
Are we witnessing the birth of another
+1 Informative
Build your application as a web app using ASP.NET/PHP or whatever. Use whatever SQL backend you want and have it run on a REAL server that is meant to do that work.
On the PDA, throw a 802.11b card in when at the office and some sort of cellular card for when you are out and about. The only software you need on the PDA is a good web browser. Bandwidth is much less of a issue because all you are transfering back and forth is simple HTML.
when you know what it is, is just fun and easy :o)
.net). For instance, .net CE is J2ME ;-)
For those who do not know, it is more or less a rip off of Java platform (only J2EE got not complete real equivalent on
Sorry guy !
It took 10 chapters and 450 pages! Damn I can do it in 4 words: Do NOT do that. Yup, MSSQL a ten's of megabytes application, let's dumb it down and use it manage a few hundred megabytes of compact flash on a handheld or embedded device, yup that's a plan. I guess it's like the man said: when all you have is a hammer, everything looks like a nail. I guess Microsoft needs a bigger data management toolbox.
MS SQL Server CE only synchronizes to SQL Server databases. To synchronize to the cheaper all-in-one tool, MS Access, you have to use a third party database and redesign everything except the tables.
Once again Microsoft proves it's only interested in a higher margin tops-down approach instead of a bottoms-up approach where the individual worker can make a creative difference.
...why separate the database engine from the development tool on a palmtop, where efficiency is paramount? Do they expect people to use a palmtop as a db server or something?
Something like Foxpro or Access, with integrated database support, would make a helluva lot more sense. The latest version of Foxpro for the PC has a smaller runtime than what they are cramming on there for SQL CE for chrissakes! It's fuggin silly. What gets IN to those people?
10 years ago, I was putting the entire foxpro for dos development environment on 1 meg HP xxLX palmtops, and it worked really well. Full portability between desktop and palmtop, good performance, and good stability. Why have we taken such a giant step backwards that despite the hardware being 100 times better, we can no longer build decent software to run on it?
Everything MS does anymore should be accompanied by clown music.
I am truly starting to believe that MS is going to be a niche player like Apple in 10 years...an idea I would have laughed at a few years back. I don't LIKE this idea...it means I have to spend a lot of time retraining...but the writing is on the wall.
MS does it again. Take some stale code, throw it in the blender with a healthy handful of Marketing Krystals and, shazaam, another exciting "technology" is ready for astroturfing in the trade press!
Does anybody ever bother to look at the durability of these reconstituted code products, or for that matter how many billions of hours are wasted every year by developers training up on silly, useless "technologies" dreamed up by marketing executives?
I've developed a couple of data driven apps on Palm OS that interact with backend databases using jdbc, I've used these with both Oracle and MySQL. The MS approach sounds rather heavy wieght, you can use Waba on the client side, and you can serialize the data which allows the data transactions to be very fast and efficient. XML seems a poor choice for the PDA environment being how it requires much nore band width and CPU cycles than Object serialization .NET seems to heavy and clunky for even the PC environment, much less the PDA environment. The M$ dumbed down heavy weight solution seems a poor choice for devices with limited resources. Of course you can compile Waba - Java jdbc apps for CE, so why one would use a proprietary solution, seems lees than obviuos. Just a rant, but as a PDA developer it really doesn't make sense to use a proprietary solution that only runs on CE which has less than a 20% market share for PDAs anyway.
MM
A friend of mine wrote an application in VB, some years ago, on Windows 3.1.
A nice application, complex and sophisticated. It used numerous components (VBXs) and he spent about 4 months solid working on it.
He sold this for a year or so, then VB4 came out. He started on an upgrade, found that several of his VBX vendors had vanished, stayed with the old code.
Then VB5 came out. Completely incompatible.
He stopped maintaining the product, and swore to never use Microsoft's tool again.
Now: it may have the same name (VB) but it is at least 3 totally incompatible products. No real application written for an old version of VB can run on a new one.
It's not a small problem, but it's one easily ignored.
MS goes through hoops to get them to work together.
Oh, yes, indeed. But wait two years and then see where your hoops have you. Compatability is not only between different products, it is also (and this was the point of my original comment) with future versions of the same products.
But I suspect your views are bought and paid for, eh? No point in this discussion.
Ceci n'est pas une signature
No-one minds upgrading to a new platform when there is a crying need for it.
No-one should pay to upgrade to a new platform because the vendor decides it's timely.
Every responsible OO project starts by defining standards that will last years, decades (look at OOorg's document formats). Every responsible OO project sweats blood and tears to ensure that new releases are compatible with old ones.
How many versions of PHP have been incompatible with previous ones?
How many versions of Perl? Of Apache?
Now think back to the history of one single Microsoft product, VisualBasic, and see how many different incompatible versions there were...
Ceci n'est pas une signature
Now, wait. I'm confused...
You are talking about the browser, right?
Perhaps someone can port Softfocus' BTree/ISAM to CE. Now, that was a small, fast way to handle data.
There have been several comments that SQL Server CE is NOT the same as the desktop or server version. I have been using SQL Anywhere for some time and I have found it quite good. There are a couple of cool things for CE developers. Database files are binary compatible with other platforms. I can simply copy my database file from Linux down to the CE device, and it just works. The other cool thing is that the CE database software is really a server. I connect to it from my linux box over IP.
However what I have noticed is that since SQLServerCE supports such a vast majority of the interfaces in the OleDB specification, (in someways it is more conformant than SQLServer 2000) I suspect that the engine is derived from the MS Access codebase. While it is just speculation, they either wrote it from scratch or based it on an early MS Access version.
Isn't it amazing how seriously slashot readers really don't take .NET?
.NET as well.
60 posts talking about a Microsoft fledgling technology here says so much more than 300 slashbots flaming each other on the other "Microsoft's New Core OS Team Learning from Linux" thread.
Microsoft is a smart company. No really, they must be. If you have shed loads of money, you can pay lots of smart people enough money to make them work hard enough to roll out products which will do something "acceptably well" at worst, "reasonably well" at best. That can't be denied because of the number of users Microsoft has. Yes, there's smart people who use Microsoft technology too.
Microsoft has recognised our strengths so I think it's time to acknowledge what Microsoft does well. The opening flames on the Server CE technology could be turned another way - isn't the MSSQL Server code ripe for an overhaul like someone going at it like a hatchet to make it run on embedded/compact devices?
The zealots don't do us any good. It slows Linux adoption and makes us look like nutters. And there are quite a few smart Linux people who like
"It's not your information. It's information about you" - John Ford, Vice President, Equifax
they're practising their tried and true method of "throw enough shit against the wall and some of it will stick"
Like the fucking tablet PC.
What a joke.
$30 Off All Plans: Use code TRIPLESAWBUCK
I just can't quite adapt to the idea of putting the client and the server on the same machine. What is the benefit of separation?
No, SQL Server CE isn't the same as running the big SQL Server 2000 product on your iPAQ. It's a completely different product that takes only 1 MB of RAM to work. The Compact Framework only takes another 1.5 MB of RAM. Stop spreading misinformation by telling people this stuff takes 8 MB of RAM to run. Believe me, I've done PersonalJava/Personal Profile development on a handheld with an all-Java database that performed horribly and took over 15 MB of memory to run. Microsoft has created the state of the art runtime for Pocket PCs and Smartphones that blows away J2ME or Brew.
Hi, dude.
I'm not trying to discourage you from writing reviews. I can tell you enjoyed this book, but your writing style distracts from your message. Please omit phrases that take up space without adding meaning.
Do you work for the Department of Redundancy Department? How many times did you say "let's face it" in this article? Once is too many.Here's an excerpt from the Economist Style Guide:
Here's another grammar flame, you might find the links of value.PS - good luck with your writing.
You're talking out of your ass regarding market share. Put the frying pan down and take a nap.
Additional reviews for this book are at this site.