بعد أن كتبت "اختر بين SQL Server Express Edition وCompact Edition"، تساءل بعض الأصدقاء في الحديقة عما إذا كان SQL Server Compact Edition (sqlce) يدعم ASP.NET؟ لم أكن متأكدًا في ذلك الوقت، لقد اختبرت ذلك بنفسي وبالتأكيد لم ينجح، لكنني اعتقدت أنه غريب وليس هناك سبب لعدم دعمه!
لقد قرأت مدونة ستيف لاسكر اليوم واكتشفت الأمر أخيرًا!
نظرًا لأن sqlce لا يدعم ASP.NET افتراضيًا، فقد قدم العديد من المستخدمين طلبات إلى MS، واشتكوا باستمرار، بل وهددوا (إذا لم تسمح له بدعمه، فسأستخدم منتجات XX). أخيرًا لم يتمكن Steve Lasker من الجلوس ساكنًا وخرج لتوضيح كل هذا.
في الواقع، فإن وضع sqlce في السوق واضح جدًا، وذلك بشكل أساسي لحل مشكلات تخزين البيانات والمزامنة في وضع عدم الاتصال للعملاء الأذكياء. تم توضيح ذلك أيضًا في "الاختيار بين SQL Server Express Edition والإصدار المضغوط". لذلك، لم تقم Microsoft بتحسين سيناريو استخدام sqlce كقاعدة بيانات لموقع الويب. في بيئة الوصول متعدد المستخدمين إلى موقع الويب وتزامن البيانات، فإن أداء sqlce ليس مثاليًا ولا يمكن مقارنته بـ SQL Server Express. ولذلك، فمن المستحسن أن يستمر موقع الويب في استخدام قاعدة بيانات SQL Server Express أو SQL Server. يجب أن تعلم أن sqlce هو محرك قاعدة بيانات مضمن، وأن SQL Server Express عبارة عن خدمة قاعدة بيانات. الآن يمكن لمجموعة أدوات الاستضافة SQL Server التي أطلقها فريق تطوير SQL Server مؤخرًا مساعدتك في نشر SQL Server Express على خادم الويب الخاص بك.
فهل يمكن لـ ASP.NET استخدام sqlce كمخزن للبيانات؟ يستطيع!
افتراضيًا، سيتم حظر sqlce عند فتح اتصال قاعدة بيانات sqlce في العملية المنفذة لـ ASP.NET. يمكنك إزالة هذا القيد من خلال التعليمات البرمجية التالية. سوف يتغير هذا السطر من التعليمات البرمجية في إصدار RTM لأنه تمت إعادة تسمية sqlce ولم يعد يسمى SQL Server Everywhere:
AppDomain.CurrentDomain.SetData("SQLServerEverywhereUnderWebHosting"، true)
تجدر الإشارة إلى أنه لا يمكن استخدام وظيفة مزامنة البيانات الخاصة بـ sqlce في ASP.NET.
باختصار، بغض النظر عن حجم الأحذية، ومدى حجم القدم، يجب ألا تستخدم sqlce في ASP.NET، إذا كنت تصر على استخدامه، فيرجى الانتباه إلى العواقب!
المرجع:
SQL Server Compact Edition ضمن ASP.net وIIS
فئة SqlCeConnection (System.Data.SqlServerCe)