Sync Services for ADO.NET (OCS) CTP Now Available


Today we launched the public CTP of the Sync Services for ADO.NET.  This is the current name of features we’ve been referring to as Occasionally Connected Systems (OCS). 


The SQL Server Compact Edition and Sync Platform teams have been working feverishly to get these bits available.  For those following my blog, you know the SQLce team has been busy shipping SQLce 3.1.  The number of requests for the private CTP exceeded our expectations, so for those that didn’t receive the private CTP, we apologize, we just didn’t have enough bandwidth to support the number of requests. With the public forum, we’re now in a better position to support everyone.


Runtime Only
This is a CTP of the runtime experience.  For aprox 2mb, you can download the bits and run them on your Visual Studio / .NET FX 2.0 machine.  The Visual Studio Orcas CTP’s will include SQLce 3.5, the sync runtime, along with the Sync Designer.  At this point the Feb CTP of Orcas will be the first public release of the sync designer.  I’ll post a screencast of the designer soon.  But realize the Orcas downloads are quite large.  We’d love your feedback on the runtime, and it’s just slightly larger than a floppy 🙂


Packaging
For this release, we’re packaging the Sync Services with SQL Server Compact Edition v3.5.  This should not be confused with the recent release of SQL Server Compact Edition 3.1.  SQLce 3.1 and 3.5 are side by side, so installing this CTP should not affect your 3.1 installations.  If it does, we’d certainly like to know.


Some useful links:



Feedback: Please use the Sync Services forum as this is the best way for us to consolidate all the feedback.  Seeing feedback from others, will also help.  The SQLce and Sync product teams will be using this as the channel to gather and respond to feedback.


Thanks, and let the feedback begin,


Steve


Comments (25)

  1. Microsoft today released the first public CTP of Syncroniation Services for ADO.Net. I haven’t…

  2. Rajesh says:

    Hi Steve

    Had a quick question for you on the Sync feature.

    We have a health care application (windows based) being developed using .Net 2.0 and 3.0 combination.

    The front end is on .Net 2.0 and the services are developed using WCF (.Net 3.0)

    Now we would need to provide this application to doctors working on remote location (field doctors).

    What would be the best approach which I could take whith out changing the technology used for development.

    I have come across couple of options : SQL Server merge replication and SCOAP.

    I then happened to come across your video on OCS Sync Framework.

    That seems to be a good proposition for adoption.

    Do you have the sample code/project which is sjown in the project and a writeup which can guide us as to how to adopt the OCS framework.

    Awaiting your respose at the earliest

  3. Messiaz says:

    Do you know how to use UDF from SQL 2005 into ADO.NET??

    It will become quite easy and fast to operate a system.

    Regards,

    Messias

  4. Steve Lasker says:

    Hi Messias,

    I’m not sure if you meant to post this question here, as it doesn’t appear you’re asking if UDF’s will work in OCS or SQLce, but rather how to use them through ADO.NET.  To get the ADO.NET team, you can reach them at their blog: http://blogs.msdn.com/adonet/

    Steve

  5. Steve Lasker says:

    Hi Rajesh,

    I’m not familiar with SCOAP, but the Sync Services are meant to address the flexibility required for service based sync of relational data.  Merge is a great solution, in production today, and while it’s very feature rich, can be difficult to manage for large scale, public facing systems where developers need to drill into components of the sync process.  Of course, Sync Services, (OCS) isn’t in production today, as Merge is, but if you’re in development, Sync Services are targeted at what you’ve summarized.  There’s screen casts and overviews, but I need to check on the samples.  Due to our doc process, the docs are a little more complex, so we decided to get the bits out before the docs, but without samples, I recognize this will be a challenge.  I need to make sure my samples are in sync with this CTP.  I’ll post info on my blog, as well as the Sync Services forum.

    For now, if you watch the screen cast, you should get what you need to get started.

    Steve

  6. Steve Lasker has announced that the first CTP of the Microsoft Sync Services has been released. A new

  7. Hi Steve,

    I am confused on how pricing will work for this.  Let’s say I had to sync to Oracle for a customer and I wanted to use Sync Services for ADO.NET.  If I was using SQL Server Compact Edition on the remote it seems as though this should all work.  However, since there would be no SQL Server in the picture I am not sure how you would license this.  Would you charge a Client Access License (CAL)in this case?  If so, how much do you expect it will be?

  8. Rajesh says:

    Hi Steve

    Thanks for the info.

    I did download the ado.net sync services from the link below

    http://www.microsoft.com/downloads/details.aspx?FamilyId=75FEF59F-1B5E-49BC-A21A-9EF4F34DE6FC&displaylang=en

    Will surely try to go through the webcast again and try reproducing a sample.

    But I am not sure how successful I would be.

    But as mentioned bgy you is there any sample available for the above bits which is released.

    Steve, my plan is to come out with the sync feature as part of the product by end of March 07, would this be a good time by when the actual release for the sync component and the manuals and sample would happen. Cause I don’t want to rush up and adopt the merge/replication now and then try moving on to Sync Services, i would rather adop sync services as a final solution.

    What is the link for the Sync Services forum.?

  9. RajeshPR says:

    Hi Steve

    I have downloaded the initial bits for ado.net sync service from the link below

    http://www.microsoft.com/downloads/details.aspx?FamilyId=75FEF59F-1B5E-49BC-A21A-9EF4F34DE6FC&displaylang=en

    I hope this is the correct one.

    Steve, I am planning to start development for the Sync feature as part of the product we are developing by end of March 07.

    Would be a good time by when the actual release for the ado.net sync service would happen along with the docs and manual.Cause, I dont want to rush up and start the development using sql merge/replication and then move to using syns service as the next solution. I hope it would be better to wait and start off with the syn service.

    I would also like to know if there are any samples available for the above ctp/bits which I have downloaded, of if some other sample is available as part of another ctp, i can try converting it to the ctp release which I have downloaded.

    Steve, also what is the link for the Sync Sevices forum.

  10. Rajesh, I think you need to consider the architecture of your application.  Although it would appear from a 10,000foot view that there are now 2 sync options (3 if you include RDA), the reality is that they address completely different scenarios and will dramatically affect the way that you deploy your application.  For example with Sync Services you need to define everything in code, whereas Merge allows you to administer the publication.  Just this simple difference will lead to a completely different model for installation, support and maintenance for an application.  Just my 2 cents worth.

    Nick

  11. RajeshPR says:

    Hi Steve

    Some more queries which just came across my mind today:

    1. We also have to support for availability of documents/images on the filed unit for doctors on the move. These could be for example medical history documents and images could be Diagnosis Images/X-Rays, etc..(big in size), Now the doctors can also make changes to the documents and if possible could do annotations to the images while on remote location and when they get back to the practice these also needs to be synchronised to the db server. So what could be the best way to accom;ish this, Do you suggest storing docs/images on the db server and making it available through sync or if its on a physical network location, how can I perform sync operations seamlessly on them.

    2. What would be the typical back-end db server requirement for using the sync services. Is SQL Server 2005 a must or would any flavor or SQL Server be supported.

    3. I am making use of SQL Ev as my client side database, is this a good option or can I make use of any other flavor of client side SQL DB.

  12. RajeshPR says:

    Hi Nick

    Thanks for the usefull tips

    I actually want to get away with the burden of admistering publish/subscribe services which I feel is required for merge replication appraoch.

    I feel in that case going ahead with ADO.Net sync service would be a better approach, but is this ready to be used technology for now.

    Also, can I use any form of sql server on the back end while making use of ADO.Net sync services like can I make use of SQL Express.

    And on the client end I am planning to use SQL Everywhere, should that be ok too.

  13. Rajesh – I’m glad the comments were useful.

    If you are interested in an extension to the samples provided across on the Synchronizer blog you might want to check out the Configuration Sample available here (http://softteq.com/sqlserverce/blogs/ssfaq/archive/2007/02/05/configuration-sample.aspx).

  14. jamome says:

    Steve – Whatever happened to the upcoming perf results you talked about weeks back?  And, do you have a performance comparison between Jet and SQLCE (i.e   simples INSERTs, UPDATEs, DELETEs per sec).

    Thanks in advance.

  15. beth massi says:

    They released <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=02989F70-49AA-43D7-81B8-A651120F8D65&displaylang=en#filelist">documentation and C# samples</a> but I’m looking for VB samples. Let me know when/where I can get them. Thanks Steve!

  16. Steve Lasker says:

    Hi Mobile City Tours

    There are no license fees for SQLce.  So connecting to Oracle with the Sync Services (OCS) components will not require any CAL for SQL Server.  I would assume it would require an equivalent CAL to Oracle.  The point is SQLce is free, and the Sync Services are free as part of our developer and SQL Server client platform.  

    Steve

  17. Steve Lasker says:

    Hi Rajesh,

    Merge, Sync Services and RDA:

    Nick is right.  Merge is very much a DBA focused synchronization technology. It’s very feature rich, but limited to SQL Server and doesn’t expose as many knobs as Sync Services.  In its most simplistic terms, Sync Services are a componentized model of merge replication that can be utilized with any ADO.NET data provider.  As one would expect, we’ll have the best support with SQL Server as we do know a bit more about it than other databases.  Best means we’ll have performance enhancements within SQL Server Katmai that will know how to be efficient about tracking changes.  This will work for Merge replication as well BTW.  We’ll also have a Sync Designer in Visual Studio Orcas to configure SQL Server.  We’re not going to try and do the same for Oracle, or other vendors.

    Sync Services are geared towards developers, putting the configuration and in the hands of the developer with minimal to no schema impact on the server.  You may want to get your DBA involved, but only to evaluate the queries that are being executed against the server to get the “changes”

    One of the distinct advantages of Sync Services is its lot less limited to scalability issues.  Sync Services does all the change tracking on the client, where Merge tracks each clients changes on the server.  Other advantages are because Sync Services are componentized, you can use WCF, Web Services, or Jelly Beans as the transport.  No, I don’t have a Jelly Beans sample, but would be happy to link to it if someone writes one.

    RDA is a very simplistic sync technology that doesn’t require any server side schema changes.  It also doesn’t offer very many features.  We are not investing in RDA, and would expect it to go away in the future at some point.  We actually used RDA as the model for simplicity and developer productivity.  Sync Services essentially replaces the RDA scenarios.  If you’re using RDA today, don’t worry, it will be there for a while.  If you’re building a new app that will ship towards the end of 07, definitely look at the Sync Services features.  If you were ok with RDA, you’ll love Sync Services.

    Files:

    In Sync Services 1.0, we don’t directly support files.  Sure, you could put them in a blob column of the database and Sync Services would sync the changes.  In future versions of the sync runtime, we will be incorporating files.  We already have builds working on this, but nothing more to share at this point.  

    Back end requirements:

    The beauty of Sync Services is we base the sync layer on standard T-SQL queries.  The back end requirements are less database specific, but rather schema related.  Can you write a query to get the inserted, updated or deleted rows?  Typically, there’s a “timestamp” like column on each table to track when rows were created and updated, and a “tombstone” table to track deletes.  Note that “timestamp” may very well likely be a DateTime column, but remember to use the GetUTCDateTime() function to avoid timezone issues.

    We will be making enhancements to SQL Server Katmai (the next major release of SQL Server) to be even better with Sync Services, but we will always support any ADO.NET data provider, so you can use SQL 2000, 2005, or other relational databases, including SQL Express for the server side.

    Client Databases

    Today, we only have support for SQL Server Compact Edition as the client.  We don’t yet have a timeline on when we’ll support SQL Express as the client to sync services.  Our focus for the desktop/client database is SQL Server Compact Edition.  That being said, you can write a custom provider, including one for Express.  We may eventually even ship a sample, but I don’t want to commit to that just yet.  

    Steve

  18. Steve Lasker says:

    Hi Beth,

    I know I promised some samples in VB, and I will get those posted.  Rafik has been doing such a great job, it fell lower on my priority list.

    If any of you haven’t checked out Rafik blog, I’d definitely recommend it.

    http://blogs.msdn.com/synchronizer/  Rafik is our uber dev for OCS.  He’s been working on it from the start, and knows all there is to know as he’s either written, or worked on all the code.  Rafik has been absolutely instrumental in making sure we’re shipping the right scenarios and has been heavily engaged with the forums.  Based on your feedback, and Rafik pushing so hard, we’re going to work to get batching scenarios enabled in the Orcas release.  So, if you want to get it “from the horses mouth”, that’s Rafik.  He also maintains http://www.syncguru.com/

    Steve

  19. rogerj says:

    Re "The Visual Studio Orcas CTP’s will include SQLce 3.5, the sync runtime, along with the Sync Designer.  At this point the Feb CTP of Orcas will be the first public release of the sync designer.  I’ll post a screencast of the designer soon."

    Did the Sync Designer make it into the Orcas March CTP that was posted today?

    Roger Jennings

  20. Stephen says:

    Hi Steve,

     Does the current SQL Server Compact edition release have a provider for LINQ to SQL (formerly DLINQ)? From what I’ve dug up so far the answer would be no, but I wanted to verify. Thanks.

    Stephen

  21. Steve Lasker says:

    We don’t yet have a LINQ to SQL (DLINQ), but we do have ADO.NET V3 Entities working over SQLce.  If you install the Sync Services CTP, you’ll see we install a Entity dll for SQLce as well.  This CTP isn’t directly compatible with the Orcas Feb CTP, so don’t expect to do anything with it just yet.  It’s possible the Feb CTP that was just released would enable Entities over SQLce, but I have to check to see what made it into that build.

    Steve

  22. Steve Lasker says:

    The Feb CTP does have the Sync Designer in it.  There are some known issues, such as the download option of snapshot doesn’t work in this CTP, and you’ll occasionally get an “invalid path” for the SQLce connection string.  These have both been fixed in later builds.

    As always, we’d love to get your feedback in the forums: http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1225&SiteID=1

    We’ve already incorporated a number of things.  Rafik has been coding all sorts of great enhancements, including batching…  Something that we thought we’d have to postpone.

    Steve

  23. Rajesh says:

    Hello Steve !!

    I m into a project where v are planning to have smart client which is occassionally connected.

    1. we are having wcf services running at the server which is mean to access the server database.

    2. to have sql express at the client which is free.

    there is scenerio where v need to synchronize the client db with the server.. this is only download only. Since there are some static data at the server.

    i m planning to use sync services for ado.net

    if u can point me to a link which has sample using sync services with wcf services and sql express at the client .

    v are using sql 2000 for the server database

    Regards

    Rajesh

    meh.rajesh@gmail.com

  24. Steve Lasker says:

    Hi Rajesh,

    We do hear requests for using Express on the client.  Unfortunately at this time, we don’t have a sample or release date for if/when we’ll ship an Express provider.  We do plan to ship an Express sample, but I don’t have any dates on that as of yet.  

    You can post to the Sync Forum: http://forums.microsoft.com/sync/ShowForum.aspx?ForumID=1913&SiteID=75 and take a look for when we’ll be making the Express sample available.  I know Liam is working on this.

    Steve

  25. Atiq says:

    How can we use Microsoft Synchronization Services for ADO.NET with oracle or access database (with our sql server?)

    Is there any sample code?