المتابعون للمدونة

الجمعة، 28 أكتوبر 2016

حفظ نص الاتصال في إعدادات البرنامج


حفظ نص الاتصال في إعدادات البرنامج Settings:
عند كتابة برنامج يتعامل مع قواعد البرنامج، يلجأ المبرمج في معظم الأحول إلى إنشاء قاعدة البيانات على جهازه، أو ينسخ جزءا من قاعدة البيانات من الخادم إلى جهازه، ليجعلها تعمل على الخادم المحلي، ومن ثم يتصل بها من برنامجه.. هذا يجعل كتابة واختبار الكود وتصحيحه أسرع من التعامل مع خادم حقيقي عبر شبكة الإنترنت، كما أنه يضمن عدم تخريب قاعدة البيانات الرئيسية عند إضافة أو حذف السجلات للاختبار.
وبعد الانتهاء من البرنامج، يتم رفع قاعدة البيانات إلى الخادم (إن لم تكن موجودة عليه)، وتصحيح نصوص الاتصال لتشير إلى الخادم الحقيقي بدلا من الخادم المحلي، لكي يبدأ البرنامج عمله في صورته النهائية.
ونظرا لأن البرامج العملية قد تتعامل مع أكثر من قاعدة بيانات، كما أن عنوان قاعدة البيانات قد يتغير في أي لحظة لو تم نقلها من خادم إلى آخر على الإنترنت، يصير من غير العملي كتابة نص الاتصال في الكود، لأن البحث عنه وتغييره في كل المواضع أمر مرهق وعرضة للخطأ، كما أنه من غير العملي إصدار نسخة جديدة من البرنامج وتوزيعها على المستخدمين كلما تغير عنوان قاعدة البيانات!.. لهذا من الأفضل كتابة نصوص الاتصال في ملف خارج البرنامج، مع استخدام إحدى طرق التشفير لحماية التفاصيل المكتوبة به (كاسم المستخدم وكلمة السر).. ويمكن فعل هذا يدويا، أو باستخدام إحدى الطرق الجاهزة التي تمنحها دوت نت، كالإعدادات Settings التي تعرفنا عليها بالتفصيل الممل في مرجع "من الصفر إلى الاحتراف: برمجة نماذج الويندوز"، وقلنا هناك إن دوت نت تقدم رعاية خاصة لنصوص الاتصال، فقد خصصت لها مقطعا خاصا في ملف الإعدادات، ومنحتنا فئة تتعامل معه، هي الفئة ConnectionStringsSection.

لإضافة نص اتصال إلى الإعدادات بطريقة مرئية اتبع الخطوات التالية:
- افتح متصفح المشاريع Solution Explorer، وانقر مرتين بالفأرة فوق العنصر My Project.. سيؤدي هذا إلى فتح نافذة خصائص المشروع.
- اضغط العنصر Settings من الهامش الأيسر لفتح صفحة مصمم الإعدادات كما تعلمنا من قبل.
- في العمود Name اكتب اسم خاصية الإعداد، ولتكن BooksConStr.
- في العمود Type اضغط زر الإسدال، ومن القائمة المنسدلة اختر العنصر الخاص (Connection String).. هذا سيغير نطاق خاصية الإعداد Scope ليصير على مستوى التطبيق Application.
- اضغط الزر الموجود في خانة القيمة Value.. سيعرض لك هذا مربع حوار خصائص الاتصال الذي استخدمناه من قبل لإنشاء اتصال من متصفح الخوادم Server Explorer.. هذا يتيح لك تكوين نص الاتصال بطريقة مرئية سهلة.. حدد مزود البيانات وقاعدة البيانات واختيارات الحماية.. ولو أردت استخدام المزيد من مفاتيح نص الاتصال، فاضغط الزر Advanced.. ستظهر نافذة تعرض خصائص نص الاتصال، وهي نفس الخصائص التي شرحناها في الفئة SqlConnectionStringBuilder.. ويمكنك تغيير القيم الافتراضية لهذه الخصائص، وكل خاصية ستغيرها ستظهر في نص الاتصال الذي سيتم تكوينه.
اضغط OK لإغلاق النافذتين.. سيظهر نص الاتصال الذي تم تكوينه في الخانة Value.
وإذا كنت تحتاج إلى هذا، يمكنك إضافة نصوص اتصال أخرى إلى الإعدادات، بالكتابة في الصفوف التالية، وبهذا تجمع في مكان واحد، كل نصوص الاتصال اللازمة للتعامل مع كل قواعد البيانات والخوادم التي تحتاجها في برنامجك، ما يسهل عليك تعديلها في أي لحظة.
اضغط زر الحفظ من شريط الأدوات لحفظ هذه التغييرات في ملف إعدادات المشروع.
الآن، تم توليد خاصية اسمها BooksConStr في فئة الإعدادات Settings في النطاق My، وتستطيع قراءة قيمتها في أي وقت بمنتهى البساطة.. جرب مثلا:
MsgBox(My.Settings.BooksConStr)
لاحظ أنك لا تستطيع تغيير قيمة الخاصية BooksConStr لأنها معرفة للقراءة فقط، لكن ما زال بوسعك فتح مصمم الإعدادات في أي لحظة لتغيير قيمة نص الاتصال، أو فتح الملف app.config من متصفح المشاريع Solution Explorer، وتحرير قيمة الخاصية BooksConStr التي ستجدها تحت المقطع <connectionStrings>، دون الحاجة إلى تغيير أي كود في برنامجك.

ملحوظة:
يجب عليك حماية نص الاتصال بتشفيره، لأن ملف الإعدادات يتم توزيعه مع البرنامج، ما يجعل المستخدمين قادرين على قراءته وأخذ كلمات المرور منه.
ويمكنك تشفير مقطع نصوص الاتصال في ملف الإعدادات، بنفس الطريقة التي شرحناها في كتاب "من الصفر إلى الاحتراف: برمجة نماذج الويندوز"، واستخدمناها في البرنامج AddAppSettings المرفق بذلك الكتاب.

 ويمكنك استخدام فئة مقطع نصوص الاتصال ConnectionStringsSection Class لقراءة كل نصوص الاتصال الموجودة في ملف الإعدادات.


من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.

صفحة الشاعر