السلام عليكــم ورحمـة الله وبركاتــه
منذ بدأت البرمجة وانا استخدم قواعد بيانات Access في برامجي الصغيرة فهي الملاذ السهل والامن لكثير منا رغم النواقص العديدة بها مقارنة ب SQL Server ولكنها كانت المفضلة لدي عندما أريد قاعدة بيانات محلية لمستخدم واحد Local DB . ولكن منذ أن تعرفت على SQL Server Compact Edition 3.5 المدمجة مع Visual Studio 2008 قلت وداعا لصديقي القديم Access . وأنصح جميع من يريد استخدام قاعدة بيانات Access لبرنامجه استبدالها فورا ب SQL Server CE 3.5 .
اما الأسباب فسأذكر خصائصها باختصار ولمن يريد التوسع فليبحر في MSDN .
- جميع أدوات انشاء قاعدة البيانات وتصميمها موجودة في Visual Studio فلا داعي لأي برنامج اضافي ولاداعي للتنقل بين البرامج .
- ملف واحد ( امتدادها الأصلي sdf. ) مثل الاكسس يمكن نسخه بسهولة وارفاقه مع حزمة التثبيت .
- متطلبات تشغيلها بسيطة عبارة عنة حزمة ملفات runtime لايتجاوز حجمها 2ميغا بايت و يقوم برنامج الاعداد بتجهيزها نيابة عنك .
- يمكن أن يصل حجم ملف قاعدة البيانات حتى 4 جيجا ... واعتقد انه حجم أكثر من كافي للتطبيقات المحلية.
- من المزايا المهمة التي تنفرد فيها عن Access دعمها القويADO.NET Entity وبالتالي دعم تعبيرات LINQ (البديل المفضل لدي للتعامل مع البيانات ) حيث يتم عمل فئاتها بسهولة عن طريق اداة SQLMetal ( لايمكن عمل الفئات عن طريق O/R Designer )
- ميزة أخرى مهمة امكانية التعامل معها مباشرة من .NET Framework حيث يوجد النطاق System.Data.SqlServerCe وبه جميع الكائنات اللازمة ( SqlCeConnection,SqlCeCommand,SqlCeDataAdapter ...الخ )
- عند التشغيل فانها تستخدم نفس ال thread للبرنامج وليس كخدمة محلية أو خارجية Service مما يعطيها أفضلية بالاداء متفوقة على بقية قواعد البيانات المحلية وطبعا الخارجية .
- لمستخدمي SQL Server يمكن استخدام بيئة التطويرنفسها لتعديل كائنات SQL SERVER CE .
- تعمل مع .Net Framework Compact Edition المخصص لأجهزة الموبايل والأجهزة الكفية .
- الكائن الجديد SqlCeResultSet وهو حل وسط بين DataSet و DataReader وينفع ك DataSource لكائنات البيانات .
- تدعم Transactions ولكن لا تدعم المتداخلة منها Nested .
عيوبها :
- لاتدعم Stored Procedure ولا Views
- كما ذكرت هي قاعدة بيانات محلية فلا يوجد بها دعم قوي لتعدد المستخدمين مع انه متاح بها حاليا
- لاتقبل بيئة O/R Designer من اجل فئات LINQ TO SQL .
لم اجد عيوب أخرى فهي مثالية كقاعدة بيانات محلية وحسب MSDN فهي قاعدة البيانات المفضلة للبيانات المحلية واقتبس :
اقتباسThe preferred local database for client applications is SQL Server Compact 3.5
هذه خلاصة لما لمسته خلال تعاملي مع SQL Server CE و ربما هناك مزايا أو عيوب أخرى لم اتنبه اليها .
وسأذكر في مواضيع أخرى الجانب العملي للتعامل مع SQL Server CE .

