SQL Server CE برای اولین بار جهت استفاده در SmartPhones طراحی شد؛ جزو خانوادهی Embedded databases قرار میگیرد و این مزایا را دارد:
- نیازی به نصب ندارد و از چند DLL تشکیل شده است (برای مثال جهت استفاده در کارهای تک کاربرهی قابل حمل ایدهآل است).
- رایگان است (جهت استفاده در کارهای تجاری و غیرتجاری).
- حجم کمی دارد (جمعا کمتر از دو مگابایت).
- پروایدر ADO.NET آن موجود است (توسط فضای نام System.Data.SqlServerCe که به کمک اسمبلی System.Data.SqlServerCe.dll قرار گرفته در مسیر C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Desktop ارائه میشود).
- با کمک ORM هایی مانند Entity framework و یا NHibernate نیز میتوان با آن کار کرد.
- نسخهی 4 نهایی آن که قرار است در زمان ارائهی SP1 مربوط به VS.NET 2010 ارائه شود، جهت استفاده در برنامههای ASP.NET (برنامههای چند کاربره) ایی که تعداد کاربر کمی دارند، بهینه سازی شده و این مورد یک مزیت مهم نسبت به SQLite است که اساسا با تردهای همزمان جهت کار با بانک اطلاعاتی مشکل دارد.
- امکان گذاشتن کلمهی عبور بر روی بانک اطلاعاتی آن وجود دارد که سبب رمزنگاری خودکار آن نیز خواهد شد (این مورد به صورت پیش فرض در SQLite پیش بینی نشده و جزو مواردی که است که باید برای آن هزینه کرد). الگوریتم رمزنگاری آن به صورت رسمی معرفی نشده، ولی به احتمال زیاد AES میباشد.
- از ADO.NET Sync Framework پشتیبانی میکند.
ملاحظات:
- به آن میتوان به صورت نسخهی تعدیل شدهی SQL Server 2000 با تواناییهای کاهش یافته نگاه کرد. در آن خبری از رویههای ذخیره شده، View ها ، Full text search ، CLR Procs، CLR Triggers و غیره نیست (سطح توقع را باید در حد همان 2 مگابایت پایین نگه داشت!). لیست کامل : (+)
- Management studio مربوط به SQL Server 2005 به هیچ عنوان از آن پشتیبانی نمیکند و تنها نسخهی 2008 است که نگارش 3 و نیم آنرا پشتیبانی میکند آن هم نه با تواناییهایی که جهت کار با SQL Server اصلی وجود دارد. مثلا امکان rename یک فیلد را ندارد و باید برای اینکار کوئری نوشت. خوشبختانه یک سری پروژهی رایگان در سایت CodePlex این نقایص را پوشش دادهاند؛ برای مثال : ExportSqlCe
- از آنجائیکه DLL های SQL CE از نوع Native هستند، باید دقت داشت که حین استفاده از آنها در دات نت فریم ورک اگر platform target قسمت build برنامه بر روی ALL CPU تنظیم شده باشد، برنامه به احتمال زیاد در سیستمهای 64 بیتی کرش خواهد کرد (اگر در حین توسعه برنامه از DLLهای بومی 32 بیتی آن استفاده شده باشد). بنابراین نیاز است DLL های 64 بیتی را به صورت جداگانه جهت سیستمهای 64 بیتی ارائه داد. اطلاعات بیشتر: (+) و (+) و (+)
- Entity framework یک سری از قابلیتهای این بانک اطلاعاتی را پشتیبانی نمیکند. برای مثال اگر یک primary key از نوع identity را تعریف کردید، برنامه کار نخواهد کرد! لیست مواردی را که پشتیبانی نمیشوند، در این آدرس میتوان مشاهده کرد.
و اخبار مرتبط با SQL CE را در این بلاگ میتوانید دنبال کنید.