الصقر العربي
يشرف الاعضاء والمشرفين ان تكون عضو معنا



يمكنك التسجيل او الدخول من اسفل
الصقر العربي
يشرف الاعضاء والمشرفين ان تكون عضو معنا



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

الصقر العربي

لسنا وحدنا ولاكننا المتميزين
 
الرئيسيةالبوابةأحدث الصورالتسجيلدخول
بحـث
 
 

نتائج البحث
 
Rechercher بحث متقدم
التبادل الاعلاني
احداث منتدى مجاني
pubarab
ازرار التصفُّح
 البوابة
 الصفحة الرئيسية
 قائمة الاعضاء
 البيانات الشخصية
 س .و .ج
 ابحـث
تسجيل صفحاتك المفضلة في مواقع خارجية
تسجيل صفحاتك المفضلة في مواقع خارجية reddit      

قم بحفض و مشاطرة الرابط علاء الافضل دائما على موقع حفض الصفحات

قم بحفض و مشاطرة الرابط الصقر العربي على موقع حفض الصفحات

 

 Smart Update Wizard الجزء الاول

اذهب الى الأسفل 
كاتب الموضوعرسالة
علاء
Admin
Admin
علاء


عدد الرسائل : 167
العمر : 30
الموقع : *******
نقاط : 5949
السٌّمعَة : 4
تاريخ التسجيل : 19/11/2008

Smart Update Wizard الجزء الاول Empty
مُساهمةموضوع: Smart Update Wizard الجزء الاول   Smart Update Wizard الجزء الاول Icon_minitimeالخميس أبريل 30, 2009 6:57 pm

بسم الله الرحمن الرحيم

من اهم الاشياء التي يجب ان تتوافر في اي تطبيق ناجح هو وجود قناة اتصال بين مستخدم البرنامج user و مطور البرنامج develper ..... من خلال هذا الاتصال يمكنك ان تقوم بايصال اي شي ال مستخدم البرنامج .وهذة الاتصال يمكن ان يتوافر من خلال برنامج Update Wizard .

تخيل معي ان برنامج Symantic Norton Antivirus لا يحتوي على LIve Update الخاص بة ... ماذا سوف يحدث ؟؟؟؟؟؟ ستحتاج الى ازالة النسخة القديمة و تثبيت النسخة الجديدة كل يوم تقريبا لمجرد تثبيت تعريفات الفيروسات ............... وخاصة ان الفيروسات تجدد باستمرار.

تخيل ان الويندوز لا يحتوى Windows Update ماذا سوف يحدث ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ مئات الاخطاء لن يتم اصلاحها , مئات الثغرات الامنية التي لن يتم سدها.......

اقدم لكم برنامجي Smart Update Wizard (V1.0.0 Beta 1)

يمكنك Smart Update Wizard من انشاء اتصال مباشر بين جهاز المستخدم client و سيرفر الشركة server من خلال شبكة الانترنت , ويمكن من خلال Smart Update Wizard ان يقوم المستخدم بتحديث نسخة البرنامج المثبتة على جهازة دون الحاجة الى ازالة النسخة القديمة و تثبيت النسخة الاحدث.. وهذا يعتمد ايضا على البرنامج و مكوناتة و مرونتة .

من خلالSmart Update Wizard يمكنك ان تقوم بايصال العديد من الاشياء الى مستخدم البرنامج:

(1) اصلاح اخطاء bug fixs

2 - مزايا جديدة New features

3 - اضافات جديدة Add-ons

4 - مقابس برمجية Plug-ins

5 - ملفات مساعدة Help Files

وغير ذلك من الاشياء و هذا يعتمد على طبيعة البرنامج و خصائصة....

================================================== =

قبل ان نقوم ببناء تطبيق لعمل التحديثات للبرنامج لابد ان يتوافر لك الاتي:

(1) اتصال بالنترنت - يفضل DSL-

2 - موقع على الانترنت WEBSITE لكي ترفع علية ملفات التحديث وغيرها من الملفات الازمة

حيث لابد لاي مطور محترف ان يمتلك موقع على الانترنت وهناك العديد من مواقع الاستضافة المجانية...... مثل BraveNet .

================================================== ===
ملحوظة:

Smart Update Wizard قمت بتطويرة بواسطة VB2008 تحت .Net frame work 3.5

Smart Update Wizard هو جزء Smart Data Guard project
================================================== ===

المشروع يتكون من 4 Form و 3 Modules

FrmUpdate وهي الفورم الرئيسية والتي يمكنك من خلالها من تحميل التحديثات

http://vb4arab.com/vb/uploaded/28777/01213847216.png

FrmInstall وهي الفورم التي يمكنك من خلالها تثبيت التحديثات .....

FrmMassage و هي فورم تستخدم في عرض رسائل للمستخدم لانني فضلت ان اقوم بتصميم شكل الرسالة بنفسي ( اذا اردت ان تستخدم الدالة MsgBox فلا مانع و عندها استغني عن FrmMassage)

FrmInfo وهي فورم تستخدم في عرض نبذة عن التحديثات حتى يقرر المستخدم اذا كان يريد ان يقوم بتحميل التحديثات ام لا ؟

==============

اما بالنسبة لل Modules

Config.vb تستخدم في جلب الاعدادت من ملف الاعدادات settings file وهذة الاعدادات مثل رابط تحميل ملف التحديثات , رابط تحميل ملف التحقق من نسخة التحديثات Version file , المكان
الذي سوف يتم فية حفظ الملفات المؤقتة Temp files .

================================================== =======
ملحوظة: في Smart Data Guard يتم جلب الاعدادات من ملفات PCF (Protected configurations files) والتي من خلالها يمكن حماية الاعدادات من التعديل الخارجي لا تحدث اخظاء في برنامج , ويتم قرائتها بواسطة PCF Reader , ولكن لضيق الوقت لن اتكلم عنها و افترض ان الاعدادات مخزنة في ملف txt عادي. لذلك سوف اقوم بازالة الكود الخاص بذلك
================================================== ======

Animation.vb وهذة الموديول تستخدم في عمل animation جميل على سطح الفورم حتى تعطي مظهر جمالي رائع بواسطة Timer

PreUpdate.vb ومعنى PreUpdate هو (قبل التحديث) و قد اسميتها بهذا الاسم لانها تحتوي على مجموعة من الاجرائات التي يتم استدعائها قبل الشروع في عملية التحديث
مثل التاكد من وجود الاتصال بالانترنت , التاكد من وجود اتصال فعلي , معرفة اصدار التحديثات عن طريق تحميل الملف Update.ver , تحميل الملف Updateinfo.rtf الذي يحتوي على معلومات عن التحديثات


http://vb4arab.com/vb/uploaded/28777/01213846888.png

==================================================

ملحوظة:
استخدمت مكتبة ThemeKit لعمل واجهة Smart Update Wizard ويمكنك تحميل المكتبة من موقع Codeplex.com

ان شاء الله سوف اقسم الشرح على جزءين لسبب خارج عن ارادتي و ذلك بسبب ان المنتدى يقبل في كتابة المواضيع الجديدة الى 15,000 حرف فقط وانا قد تجاوزت ذلك بكثير.....

وفي الجزء الثاني سوف اقوم بنشر السورس كود بالكامل.....

================================================== ====

بسم الله

الموديول Config.vb

Config.vb تستخدم في جلب الاعدادت من ملف الاعدادات settings file لل Smart Update Wizard وهذة الاعدادات مثل رابط تحميل ملف التحديثات Update_URL , رابط تحميل ملف التحقق من نسخة التحديثات Version_URL , المكان الذي سوف يتم فية حفظ الملفات المؤقتة Temp_Dir
ورقم اصدار البرنامج الحالي Version_Num و رابط تحميل ملف المعلومات الخاص بالتحديثات Info_URL

Code
====

الرمز PHP:
Imports System.IO

Module Config

Public Temp_Dir As String
Public Version_URL As String
Public Version_Num As String
Public Info_URL As String
Public Update_URL As String
Public Config_File As String = (Application.StartupPath & "\\Config\\Update.txt")

Sub Reading_Config()

If
File.Exists(Config_File) = True Then

Try
Dim objReader As New StreamReader(Config_File)
Dim config_Reader As String = objReader.ReadToEnd
objReader
.Close()

Dim Ary_Config() As String = config_Reader.Split("!")
UBound(Ary_Config)

Temp_Dir = Ary_Config(3)
Version_Num = Ary_Config(2)
Version_URL = Ary_Config(4)
Info_URL = Ary_Config(5)
Update_URL = Ary_Config(6)

Catch
ex As Exception

MsgBox
("error reading configurations")

Application.Exit()

End Try

ElseIf
File.Exists(Config_File) = False Then

MsgBox
("Configurations file not found")

Application.Exit()

End If

End Sub

End Module
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://aliaabo.yoo7.com
علاء
Admin
Admin
علاء


عدد الرسائل : 167
العمر : 30
الموقع : *******
نقاط : 5949
السٌّمعَة : 4
تاريخ التسجيل : 19/11/2008

Smart Update Wizard الجزء الاول Empty
مُساهمةموضوع: رد: Smart Update Wizard الجزء الاول   Smart Update Wizard الجزء الاول Icon_minitimeالخميس أبريل 30, 2009 7:00 pm

شرح الكود
======
السطر الاول قمنا باستدعاء system.io namespace حتى يمكننا استخدام StreamReader لقرائة الملفات النصية txt files
الاسطر من 3 - 8 قمنا بالاعلان عن عدد من المتغيرات النصية والتي سوف يتم فيها تخزين الاعدات التي تم قرائتها من ملف الاعدادات و هم كالتالي
Temp_Dir ( مكان تخزين الملفات المؤقتة)
Version_URL (رابط تحميل ملف رقم اصدار التحديثات)
Version_Num ( رقم اصدار البرنامج الحالي)
Info_URL ( رابط تحميل ملف المعلومات الخاص بالتحديثات)
Update_URL (رابط تحميل التحديثات)
Config_File (مكان ملف الاعدادات) و هو كالتالي Debug\\\\Config\\\\Update.txt
بعد ذلك قمت بانشاء اجراء اسميتة Read_Config
اول سطر في الاجراء Read_Config استخدمنا فية File.Exists للتحقق من وجود ملف الاعداد
فاذا كان الملف موجود في المكان الافتراضي ينتقل المترجم الى السطر الذي يلية حيث استخدمنا
Try...Catch في محاولة لقرائة ملف الاعداد
اعلنا عن متغير اسمة ObjReader من نوع StreamReader و اعطيناة مسار ملف الاعدادات
ثم اعلنا عن متغير نصي Config_Reader وهو يحتوي على المعلومات الموجودة في ملف الاعدادات وذلك من خلال objReader.ReadToEnd
بعد ذلك استخدمنا objReader.Close() لغلق الملف بعد قرائتة لتحرير مصادر النظام
قبل ان نكمل مع السطر التالي سترى ما هية طريقة التي قمت بابتداعها لكتابة ملف الاعداد
http://vb4arab.com/vb/uploaded/28777/01213852206.png
اعتقد انك بسهولة استطعت ان تفهم الاعدادات لانها اعتقد انها طريقة مرنة في فهم الاعدادات و قرائتها من قبل البرنامج كما سترى بعد قليل
نستكمل شرح الكود
اعلنا عن متغير نصي Ary_Config و جعلنا يقوم بتقطيع ملف الاعداد الى مجموعة من الاسطر المتتالية كل سطر لة رقم معين وذلك على حسب وجود العلامة "!" حيث ان وجود العلامة "!" دليل على انتهاء السطر دون ان يقرا العلامة "!"
انظر الى الطريقة التي سوف يقوم فيها البرنامج بقرائة الملف و قارنها بالطريقة التي كتبنا بها الملف
http://vb4arab.com/vb/uploaded/28777/11213852206.png
الان حان الوقت لتصنيف المعلومات من ملف الاعدادات ووضع كل اعداد في المتغير الخاص بة مثلا نضع رابط تحميل ملف التحديثات داخل المتغير Update_URL والذي اعلنا عنة في اول Module وهو من نوع public حتى نستخدمة داخل FrmUpdate و بمثل لباقي المتغيرات
سوف يتم تصنيف الاعدادات على حسب رقم السطر فمثلا في الصورة السابقة ماهو رقم السطر الخاص بمسار المجلد الحاوي للملفات المؤقتة ستجد انة رقم 3
3 ؟ كيف يا ماجيك سورد اعتقد انة 4
بل 3 لان السطر الاول ياخذ الرقم 0
سيبك من الرياضيات لانني ماليش فيها , نستكمل الكود
سوف نضع لكل متغير رقم السطر الذي يحتوي على الاعداد الخاص بة مثلا
Temp_Dir = Ary_Config(3)
يعني ان الاعداد الخاص بمسار المجلد الذي سوف يحتوي على الملفات المؤقتة هو السطر رقم 3
و بالتالي سوف يتم وضع هذا الاعداد داخل النتغير Temp_Dir و بالمثل لباقي المتغيرات...
بعد كل ذلك نكون قد انتهينا من قرائة ملف الاعدادات و تصنيف الاعدادات ووضع كل منها على حدة في متغير خاص بها لاننا سوف نستخدمهم في FrmUpdate
في حالة كتابتك للملف بشكل خاطئ او قيام بتعديل الملف بطريقة غير صحيحة سوف يظهر البرنامج رسالة خطأ Runtime error
لذلك استخدمت Try.... catch لتوقع الخطأ حيث يظهر البرنامج رسالة تفيد بعدم القدرة على قرائة الملف بعد ذلك يغلق البرنامج...
في حالة عدم وجود الملف في مسارة الافتراضي نتيجة للحذف او النقل سوف يظهر البرنامج تفيد ان ملف الاعدادات غير موجود وبعد ذلك يغلق البرنامج.....
================================================== ======
الموديول PreUpdate
تحتوي على مجموعة من الاجرائات التي يتم استدعائها قبل الشروع في عملية التحديث
مثل التاكد من وجود الاتصال بالانترنت , التاكد من وجود اتصال فعلي , معرفة اصدار التحديثات عن طريق تحميل الملف Update.ver , تحميل الملف Updateinfo.rtf الذي يحتوي على معلومات عن التحديثات , تنظيف الملفات المؤقتة القديمة
Code
===
الرمز PHP:
Imports System.Net
Imports System
.Threading
Module PreUpdate
Sub Cleaning_Temp
()
On Error Resume Next
IO
.File.Delete(Temp_Dir & "[url=https://aliaabo.yoo7.com/file://\\\\Update.ver"\\\\Update.ver"[color:540d=#007700[/url]])
IO.File.Delete(Temp_Dir & "[url=https://aliaabo.yoo7.com/file://\\\\UpdateInfo.rtf"\\\\UpdateInfo.rtf"[color:540d=#007700[/url]])
IO.File.Delete(Application.StartupPath & "[url=https://aliaabo.yoo7.com/file://\\\\Guard.exe"\\\\Guard.exe"[color:540d=#007700[/url]])
Dim Checking_Connection_Thread As New System.Threading.Thread(AddressOf Checking_Connection)
Checking_Connection_Thread.Start()
End Sub
Function Checking_Connection() As Boolean
Checking_Connection
= My.Computer.Network.IsAvailable
If Checking_Connection = True Then

Dim Checking_Version_Thread
As New Threading.Thread(AddressOf Checking_Version)
Checking_Version_Thread.Priority = ThreadPriority.AboveNormal
Checking_Version_Thread
.Start()
ElseIf
Checking_Connection = False Then
MsgBox
("No connection")
Exit Function
End If
End Function
Sub Checking_Version()
Try
My.Computer.Network.DownloadFile(Version_URL, (Temp_Dir & "[url=https://aliaabo.yoo7.com/file://\\\\update.ver"\\\\update.ver"[color:540d=#007700[/url]]))
Catch ex As Exception
MsgBox
("Could not download update.ver")
Exit
Sub
End
Try
Dim objReader As New System.IO.StreamReader(Temp_Dir & "[url=https://aliaabo.yoo7.com/file://\\\\update.ver"\\\\update.ver"[color:540d=#007700[/url]])
Dim Update_Version As String = objReader.ReadToEnd
objReader
.Close()
If
Val(Update_Version) > Val(Version_Num) Then
My
.Computer.Network.DownloadFile(Info_URL, (Temp_Dir & "updateInfo.rtf"))
MsgBox("New Updates")
ElseIf
Val(Update_Version) = Val(Version_Num) Then
Msg
("No new updates")
Exit
Sub
End
If
End Sub
End Module

شرح الكود
=======
السطرين 1 ,2
نقوم فيهم باستدعاء system.net لاستخدام مجموعة من الوظائف الخاصة بالانترنت
و system.thread لعمل threads للبرنامج والذي سوف يزيد سرعة البرنامج ويوفر لة الثبات و الاستقرار
================================================== ===
اول اجراء قمنا ببناءة هو Clean_Temp وواضح من اسمة انة يقوم بازالة الملفات المؤقتة القديمة حتى لا يحدث تعارض بين الملفات القديمة و الحديثة
استخدمنا On Error Resume Next لتلافي خطأ ان الملفات المؤقتة غير موجود ربما المستخدم قان بازالتها يدويا او انة المستخدم قام بتغير مسار الملفات المؤقتة Temp_Dir
استخدمنا IO.File.Delete لحذف ثلاثة ملفات مؤقتة وهم
Update.ver وهو الملف الذي يقوم Smart Update Wizard بتحميلة قبل البدء في التحديث و هو الذي يحتوى على رقم اصدار ملف التحديثات , ويوجد داخل المجلد المؤقت temp_dir
UpdateInfo.rtf وهو الملف الذي يقوم Smart Update Wizard بتحميلة قبل البدء في التحديث
والذي يحتوي على نبذة مختصرة عن اهمية التحديثات حتى يقرر المستخدم اذا يريد تحميل التحديثات ام لا ؟ ,ويوجد داخل المجلد المؤقت temp_dir
Guard.exe هو ملف التحديثات القديم وهذا داخل في نفس مسار الملف التنفيذي
بعد ان يقوم Clean_Temp بازالة الملفات القديمة والمؤقتة يقوم بعمل thread اسمها Checking_Connection_Thread ويقوم بعمل start لها في السطر التالي ويتم في هذة thread استدعاء وظيفة Checking_Connection
================================================== ==
وظيفة Checking_Connection
الهدف من Checking_Connection هو التحقق من وجود بالانترنت حتى لا يحدث خطأ في البرنامج عند بدا التحميل
لذلك استخدمنا My.Computer.Network.IsAvailable للتحقق من وجود الانترنت
في حالة وجود اتصال تكون قيمة checking_connection = true فسوف يتم بناء thread جديد و استدعاء اجراء Check_Version
اما في عدم وجود اتصال تكون checking_connection= false وعندها تظهر رسالة تفيد بعدم وجود
الانترنت والخروج من الوظيفة
================================================== ======
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://aliaabo.yoo7.com
 
Smart Update Wizard الجزء الاول
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
الصقر العربي :: البرامج :: منتديال الفيجو والبسك-
انتقل الى: