الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عمل نحديث للبرامج مركزيا عن طريق SQL SERVER

بدأه hythamzero في 3 نوفمبر 2010 · 8 رد · 982 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله وبركاته

تخيل مع في يوم قومت بتصميم برنامج وهذا البرنامج يخدم عددة افرع للشركه وكل فرع في مكان مختلف في العالم

واثناء عملية تشتغيل البرنامج ظهرت خطا ما او طلب منك تعديل في البرنامج

وانت قمت بتصحيح الخطا او عمل التعديل

مهتك الان اعادة تنزيل البرنامج في الافرع المخلتفه او ارسال التعديل في ايميل وكل IT في كل موقع يقوم باعادة تنزبل البرنامج

هل هذا معقول في هذا العصر وتخيل معي انه لا يوجد IT في اي فرع من فروع الشركه فما هو الحل

يوجد حلول كثيره منها استخدام برتوكول FTP او استخدام برمجه Socket ....

اما الحل الاخير عن طريق SQL SERVER

قمت بعمل قاعده بيانات SQL SERVER

وكذلك كلاس لعمل التعديل

اولا قاعد البيانات

الشرح في المرفقات

لو الموضوع عجبكم ان شاء الله اكمل شرح الكود وارفقات مثال كامل

عمل نحديث للبرامج مركزيا عن طريق SQL SERVER.rar

تم تعديل هذه المشاركة بواسطة hythamzero في 3 نوفمبر 2010 في 21:03

#2

أو يمكنك استخدام تقنية ClickOnce الموجودة مع الدوت نت منذ الإصدار 2. بهذه التقنية تضع آخر نسخة من البرنامج في سيرفر مركزي. والبرامج الموجودة لدى العملاء تقوم دورياً بالتأكد من أنها آخر نسخة، واذا اتضح أنها ليست كذلك تقوم بتحميل آخر نسخة آلياً وتثبته على الجهاز بدلاً من النسخة القديمة.

http://visualbasic.about.com/od/usingvbnet/a/clkone01.htm

#3

كلام الأخ System Down صحيح و أنا أستخدم هذه التقنية منذ سنتين و أثبتت جدارتها بشكل ممتاز.

و لكن مشكلتها أنها لا تعمل إلا مع تكنولوجيا .NET لذلك يعتريني الفضول لمعرفة باقي تفاصيل مشروعك في حال عملنا في يوم من الأيام على تكنولوجيا مختلفة.

جزاك الله خيراً.

#4

كلام الأخوة System Down و Adel Khayata صحيح عندما يكون لدينا اتصال بالانترنت على كل جهاز من الاجهزة ولكن في حال كان السيرفر فقط لديه اتصال بالانترنت وفيه قاعدة بيانات سيكول ماذا سنفعل وفي حال كان نقل البيانات بين الفروع عن طريق Replication بهذه الحالة يمكن ان يكون لدينا سيرفر مركزي او لا ..

ارجو فتح باب النقاش فأغلب الشركات الان تمتلك عدة فروع بعضها يستخدم شبكان VPN وهذا اسهل ما يكون عليك ويمكنك استخدام معه Click One ولكن اذا كانت الفروع كما ذكرت سابقا كيف سيتم الحل ؟؟

1338031614581.png

" اللهــم إنّا مغلــوبــون فانتصــــر "

(اللهم سبحانك لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم)

#5

بالنسبة لشركتي, فنحن نقوم بنقل البيانات بين الفروع عن طريق ال Replication و لكن تحديث إصدارات البرنامج يتم عن طريق ClickOnce حيث يتم وضع الاصدارة الجديدة على موقع على الانترنيت خاص بشركتنا و جميع الفروع تقوم بالتحديث من هذه النقطة المركزية, طبعاً كل الفروع فيها انترنيت وهي موصولة مع المكتب الرئيسي عن طريق VPN من أجل SQL Server Replication و لكنها تحدث البرنامج عن طريق الانترنيت ( طبعاً نحن فقط نفتح الموقع الخاص بشركتنا للتصفح في الفروع).

#6
Adel Khayata كتب:

بالنسبة لشركتي, فنحن نقوم بنقل البيانات بين الفروع عن طريق ال Replication و لكن تحديث إصدارات البرنامج يتم عن طريق ClickOnce حيث يتم وضع الاصدارة الجديدة على موقع على الانترنيت خاص بشركتنا و جميع الفروع تقوم بالتحديث من هذه النقطة المركزية, طبعاً كل الفروع فيها انترنيت وهي موصولة مع المكتب الرئيسي عن طريق VPN من أجل SQL Server Replication و لكنها تحدث البرنامج عن طريق الانترنيت ( طبعاً نحن فقط نفتح الموقع الخاص بشركتنا للتصفح في الفروع).

نعم هذا الكلام صحيح كما قلت اذا كان جميع الاجهزة متصلة بالنت ولكن في حال كان كل فرع فقط السيرفر متصل بالنت كيف سيتم تحديث البرنامج

وبالنسبة لل Replication ليس من الضرورري ان تكون الشبكة من نوع VPN لتنفيذ ذلك ولكن يكفي ان يكون هناك اتصال بالنت بين الفروع ولدى كل فرع Static IP على حسب معلوماتي

اذا ما زلنا ننتظر طريقة تحديث البرنامج في حال لم يوجد اتصال بالنت مع جميع الاجهزة ؟؟؟

1338031614581.png

" اللهــم إنّا مغلــوبــون فانتصــــر "

(اللهم سبحانك لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم)

#7
was_hal كتب:

نعم هذا الكلام صحيح كما قلت اذا كان جميع الاجهزة متصلة بالنت ولكن في حال كان كل فرع فقط السيرفر متصل بالنت كيف سيتم تحديث البرنامج

يمكن أن يتم وضع نسخة موقع ClickOnce محلياً في كل فرع بحيث يتم تحديث البرنامج في كل فرع من موقع ClickOnce الخاص بهم ( و لكن هذا يزيد من عمل ال I.T في حال كان عدد الفروع كبيراً )

و يمكن أيضاً تصميم نظام شبيه بأنظمة الحماية من الفيروسات ( Anti Virus ) مثل الكاسبرسكي المخصص للشبكات, حيث يتم تنزيل الملفات الجديدة مرة واحدة من سيرفر الشركة الأم إلى سيرفر مخصص على الشبكة و جميع الكومبيوترات ال Client الموجودة على الشبكة يتم توجيهها إلى السيرفر المحلي من أجل أخذ تحديثاتها و بالتالي فهي لا تحتاج إلى وجود إنترنيت فيها. و هذه الطريقة تشبه من حيث المبدأ الفكرة التي طرحها صاحب الموضوع: الأخ هيثم, حيث فكرته تقوم على نسخ الملفات من مكان مركزي و نحن بحاجة إلى تطوير الفكرة بحيث يمكن عمل شجرة للسيرفرات بحيث يمكن أن يتم نسخ الملفات من السيرفر المركزي إلى السيرفرات الموجودة في كل فرع و من ثم يتم تحديث البرامج الموجودة في كل فرع عن طريق السيرفر الفرعي.

was_hal كتب:

وبالنسبة لل Replication ليس من الضرورري ان تكون الشبكة من نوع VPN لتنفيذ ذلك ولكن يكفي ان يكون هناك اتصال بالنت بين الفروع ولدى كل فرع Static IP على حسب معلوماتي

هذا صحيح و هو الأفضل و لكن التكلفة لخدمة Static IP ليست قليلة :P

تم تعديل هذه المشاركة بواسطة Adel Khayata في 7 نوفمبر 2010 في 20:04

#8
Adel Khayata كتب:

يمكن أن يتم وضع نسخة موقع ClickOnce محلياً في كل فرع بحيث يتم تحديث البرنامج في كل فرع من موقع ClickOnce الخاص بهم ( و لكن هذا يزيد من عمل ال I.T في حال كان عدد الفروع كبيراً )

و يمكن أيضاً تصميم نظام شبيه بأنظمة الحماية من الفيروسات ( Anti Virus ) مثل الكاسبرسكي المخصص للشبكات, حيث يتم تنزيل الملفات الجديدة مرة واحدة من سيرفر الشركة الأم إلى سيرفر مخصص على الشبكة و جميع الكومبيوترات ال Client الموجودة على الشبكة يتم توجيهها إلى السيرفر المحلي من أجل أخذ تحديثاتها و بالتالي فهي لا تحتاج إلى وجود إنترنيت فيها. و هذه الطريقة تشبه من حيث المبدأ الفكرة التي طرحها صاحب الموضوع: الأخ هيثم, حيث فكرته تقوم على نسخ الملفات من مكان مركزي و نحن بحاجة إلى تطوير الفكرة بحيث يمكن عمل شجرة للسيرفرات بحيث يمكن أن يتم نسخ الملفات من السيرفر المركزي إلى السيرفرات الموجودة في كل فرع و من ثم يتم تحديث البرامج الموجودة في كل فرع عن طريق السيرفر الفرعي.

هذا صحيح و هو الأفضل و لكن التكلفة لخدمة Static IP ليست قليلة :P

نعم اخي عادل كلامك نظريا صحيح بالنسبة لشجرة السيرفرات وتحديث البرنامج عن طريق السيرفر الفرعي في كل فرع ولكن كيف سيتم تطبيق ذلك عمليا...

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

الأن لو فرضنا ان لدينا سيرفر فيه قاعدة بيانات مركزية وكان في كل فرع سيرفر فيه قاعدة بيانات ويتم تحديث البيانات بين الفروع عن طريق Replication وهنا كيف سيتم تحديث البرنامج

عندي اقتراح:

لدينا IT واحد فقط يتعامل مع السيرفر المركز وفي قاعدة البيانات المركزية جدول يحوي اخر تحديث للبرنامج مع تاريخ النسخة..

الان عند وجود تحديث جديد يقوم IT بتحميل النسخة الجديدة وحفظها بقاعدة البيانات ,,

وبعملية Replication سيتم توزيع النسخة الجديدة على جميع الفروع ..

ولدينا برنامج صغير موجود في كل سيرفر فرعي مهمته التحقق من تاريخ اخر نسخة ..وتوزيع هذه النسخ على الحواسب المتصلة الاخرى

ولكن كيف سيعرف ما هي الحواسب المتصلة التي عليها البرنامج و كيف سيتم تحديثه؟

هنا يكون لدينا برنامج اخر متصل مع البرنامج الموجود في السيرفر عن طريق Socket أو WebService أو WCF وطبعا هذين البرنامجين يعملان في الخلفية لانها Service .

وهنا ياتي دور البرنامج الصغير الموجود على كل جهاز موجود عليه البرنامج المطلوب تحديثه حيث يقوم بالاتصال مع البرنامج الموجود على السيرفر ونقل النسخة الاخيرة منه واعادة تنصيب البرنامج بعد التحديث..

اعتقد ان هذه الطريقة تشبه الطريقة المتبعة في Anti virus ..

هذه كانت فكرتي اعطوني اقتراحاتكم لتطويرها .. :P

تم تعديل هذه المشاركة بواسطة was_hal في 8 نوفمبر 2010 في 11:05

1338031614581.png

" اللهــم إنّا مغلــوبــون فانتصــــر "

(اللهم سبحانك لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم)

#9

السلام عليكم ورحمه الله وبركاته

كل سنة وانتم طيبين

الجز الثاني من الفكره

1- برنامج يقوم برفع اخر تحديث للبرنامج علي sql sever في قاعدة البيانات سبق شرحها

ويضاف الي هذه الملفات الجديده ملف اسمه data updates.hsmx يحتوي علي اسماء الملفات الجديده ومسار حفظ حفظ الملف وكذلك ما اذا كان الملف يحتاج الي تسجيل regstrion

2- يضاف class الي المشروع للاستعلام عن الاصدار الجديد عن طريق الملف رقم id للملف data updates.hsmx

في حالة وجود اصدار جديد تقوم class بغلق البرنامج واستعداء برنامج التحديث

يقو م برنامج التحديث بتنزيل الملف وحفظ الملفات في الاماكن الصحيحة وذلك من خلال المعلومات من الملف data updates.hsmx وبعد الانتهاء من التطبيق تنزيل الملفات وحفظها يقوم هذا البرنامج بحفظ id الخاص بالملف data updates.hsmx لعمل استعلام عليه مره اخري في حاله وجود تحديث اخر

تم تجريه هذه الفكره علي 17 فرع من خلال المقر الرئيسي بدون ادني مشكله

هذه الطريقه لا تحتاج الي Static IP الي واحد فقط في المقر الرئيسي وهو بالفعل موجود....

سوف اقوم برفع الاكواد بعد 3 ايام

وجزاكم الله كل الخبر

تم تعديل هذه المشاركة بواسطة hythamzero في 9 نوفمبر 2010 في 20:42

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…