Toss Me a Bone Honey....
I have been told by a friend that my use of this expression is getting kinda old. So I will have to give it up. (I am sure that I will pick up something new in Tunisia or Spain.) Before I do that, I am going to use it one last time.
So my company has a Pocket PC (SDE/CF) application that uses a local SQL Server CE on the device with Merge Replication back with an enterprise SQL Server Publication. I have lots of experience making this work, and it works well. I wont bash the Microsoft SQL Server CE, .NET CF, SDE teams at all.
My problem is that at the office I have this all set up properly. We have a dedicated SQL Server production box and a dedicated IIS box. Life is good. Where things go bad is that I hired a developer who knows nothing about SQL Server CE, SDE, CF, etc, so I am setting up a local sandbox for him to play with while I am in Tunisia and Spain. My goal is to give him the TechEd lab demos created by Kevin Collins, myself and others over the years. Setting up merge replication with a backend SQL Server to a device is pretty easy. The steps are as follows:
- Install the SQL Server CE Server Tools on a IIS and SQL Server Machine(s)
- Install the SQL Server CE Developer Tools on a Developer Workstation
- Install Active Sync 3.5 or higher on the Developer Workstation
- Install Visual Studio 2003 (make sure the SDE option is checked in VB & C#) on the Developer Workstation
- Create a New Publication of your database via Enterprise Manager-make sure that this publication is for SQL Server CE and is set up for merge replication
- Run the SQL Server CE Server Tools to configure a Virtual Directory on IIS for the Pocket PC Client to talk to via code
- You do have to make sure that the proper security is set up fro the IUSER_MachineName account, a great security white paper is here.
- Create a new Smart Device Application in VS 2003
- Programmatically create a database on the device and then sync it back to the backend publication like so:
Dim ceRep As New SqlCeReplication
.Publisher = "KILIMANJARO"
.PublisherDatabase = "BYA_Data"
.PublisherLogin = "sa"
.PublisherPassword = ""
.Publication = "BYA_Data_CE"
.Subscriber = "SQLCENETCFLab"
.SubscriberConnectionString = _ "Provider=Microsoft.SQLServer.OLEDB.CE.2.0;Data Source=\my documents\mycooldatabase.sdf"
.InternetUrl = "http://KILIMANJARO/SSCE_DLL/sscesa20.dll"
'Bring down initial subscription
So I have done this a zillion times, install Visual Studio on the development machine along with the SQL Server CE development tools and I am off to the races. This part of course went smooth, except for the fact that I want to sandbox the machine and run everything off it all at once. So I have to make sure IIS 5.0 and SQL Server standard or enterprise is running. Simple you say, just install the SQL Server CE server tools as well on the same machine. The problem is that it took me about two hours to set this up (I have done this a hundred times in less than 15 minutes) because of SERVICE PACK HELL. Basically the server tools would not install since the IIS and SQL Server service packs were too current for the installer on my machine. I did not have to roll back the SPs (that is good!), but I had to dig around and find new installs from Microsoft.
So Microsoft, please TOSS ME A FRIGGIN BONE here. Get rid of all of the old install drops and just require SQL Server SP3 to install anything-or create a better error message! I am not asking for much. This is such great technology, I dont want people to be discouraged from using it due to poor locations of downloads.