منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] درس انشاء تحديث للمشروع الخاص بك شرح مصور. - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم دورات VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=187)
+--- الموضوع : [VB.NET] درس انشاء تحديث للمشروع الخاص بك شرح مصور. (/showthread.php?tid=25411)

الصفحات: 1 2


درس انشاء تحديث للمشروع الخاص بك شرح مصور. - elgokr - 17-06-18

السلام عليكم ورحمة الله

اخوتى واحبابى اعضاء وزوار 
موقع فيجوال بيسك لكل العرب

التحية الطيبة وخالص التهانى بعيد الفطر

فى البداية اسف لان الشرح صورة + اكواد بدلاً من الشرح فيديو

لكن باذن الله سيكون الشرح بسيط وملخص كل تسائلات 
من يريد عمل تحديث للمشروع الخاص به بكل بساطة

نبداء اولاً بذكر الله والصلاه على الحبيب المصطفى صلى الله عليه وسلم

1- قم بانشاء المشروع الاول كما فى الصورة وقم بتسميته كما تشاء



2- قم بعد ذلك بتصميم الفورم بما تريد انا قمت بعل الشكل التالى


لكن قم بالتركيز على عمل خصائص الفور على هذه الاعدادات
كود :
MaximizeBox = False
MinimizeBox  = False

MaximumSize = [الارقام التى تتواجد فى Size]
MinimumSize  = [الارقام التى تتواجد فى Size]

ShowIcon = False
ShowIn Taskbar = False
StartPosition = CenterScreen

كما فى الصورة التالية...


3- اضافة حقل فى Setting من خلال التالى
الضغط المزدوج بالمؤشر على كلمة (My Project)


من ثم تطبيق كما هو موجود بالصورة....


الى هنا تم الانتهاء من تصميم الهيكل للمشروع 
ندخل بعد ذلك فى كتابة الاكواد التى سيتم استخدامها

الكود المستخدم كاملاً:
كود :
Imports System.Net

Public Class Form1

   Dim WEB_ As New WebClient
   Dim Process_() As Process = Process.GetProcessesByName("File") ' Name file your program
   Dim VProject As Integer = WEB_.DownloadString("D:\v.txt") ' You can use link Example: http://www.mysite.com/file.txt  (Link Direct...)

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Button1.Visible = False

       If VProject > My.Settings.VProject Then
           Label3.Text = "Download the new version"
           Button1.Visible = True
       End If

   End Sub

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       If VProject > My.Settings.VProject Then
           If Process_.Count > 0 Then
               For Each MyProject_ In Process_
                   MyProject_.Kill()              ' Close Your Project.
               Next
               GoTo GoDownlod_
           Else
GoDownlod_:
               WEB_.DownloadFileAsync(New Uri("D:\File.exe"), Application.StartupPath & "\File.exe", True) ' You can use link Example: http://www.mysite.com/File.exe  (Link Direct...)
               My.Settings.VProject = VProject
               My.Settings.Save()
               MsgBox("تم تحديث البرنامج.")
               Process.Start(Application.StartupPath & "\File.exe") ' Open Your Project After Finish Update.
               Application.Exit()
           End If
       End If
   End Sub

End Class

لحد الان انهينا مشروع التحديث 
ليصبح شكل المشروع فى النهاية 
لا يوجد تحديث يظهر بهذا الشكل


وعند توفر تحديث من خلال تغيير قيمة ملف V.Txt بزيادة رقم 
بمعنى لو كان الملف يحتوى على رقم 1 يصبح الرقم 2 ثم يتم الحفظ
حتى يظهر الشاشة بعد ذلك لهذا الشكل


ناتى للخطوة التالية
وهو عمل المشروع الرئيسي الخاص بك..

لم اقوم باعادة شرح انشاء مشروع جديد راجع الصور 1 و 2

بعد انشاء المشروع الخاص الذى سيعمل عند العميل
سيكون وليكن الشكل كما يلى كمثال


نقوم بعد ذلك بتطبيق الخطوة التالية كما فى المشروع التحديث
اضافة حقل فى Setting ستجد بالاعلى عند البند رقم 3
طبق كل ما اتى بالشرح لاضافة الحقل

ناتى بعد ذلك للكود المستخدم كاملاً

الكود المستخدم كاملاً:
كود :
Imports System.Net

Public Class Form1

   Dim WEB_ As New WebClient
   Dim VProject As Integer = WEB_.DownloadString("D:\v.txt") ' You can use link Example: http://www.mysite.com/file.txt  (Link Direct...)

   Private Sub AboutToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AboutToolStripMenuItem.Click

       If VProject > My.Settings.VProject Then

           Dim MSG_ As Integer = MessageBox.Show("هل تريد اتمام تحديث البرنامج للاصدار الجديد؟", "تنبيه بوجود تحديد", MessageBoxButtons.YesNo)

           If MSG_ = DialogResult.Yes Then
               Process.Start(Application.StartupPath & "\CheckUpdate.exe")
               My.Settings.VProject = VProject
               My.Settings.Save()
               Application.Exit()
           Else
               ' FormAbout.show()
               MsgBox("شكراً لك.")
           End If

       End If

   End Sub

End Class

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

كل ما عليك نسخ ملف CheckUpdate.exe
بنفس مجلد المشروع الخاص بك ليصبح كلاهما معاً بنفس المجلد

لتجربة التحديث قم بنسخ كل من الملفين الخاص بـ CheckUpdate
والاخر الخاص بالمشروع الخاص بك فى مجلد واحد من ثم
يوجد مثال مرفق بمجلد Pro Test

قم بنسخ المجلد فى اى مكان بالجهاز وليكن على سطح المكتب
ثم قم بعمل اى تعدل على مشروعك الرئيسيى وليكن اضافة زر او كلمة
ومن ثم باستخراج ملف المشروع ونسخه الى درايف D او خلال موقع وجلب رابط مباشر
حسب ما قمت انت به بالتعديل على مسارات التحديث فى الاكواد

ويمكنك ان تجرب الان ....

ناتى الان الى الشرح النظرى وهاااااااااام جداً

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

الشرح الاول لهذا السطر:
كود :
Dim Process_() As Process = Process.GetProcessesByName("File")

المقصود بكلمة File
هو اسم المشروع الرئيسي لك عند استخراجه
يعنى بمعنى اذا كان الملف للمشروع عند استخراجه بهذا الاسم
ahmed.exe
فهنا ناخد اسم ahmed ونضعه بدلاً من File

الشرح الثانى لهذا السطر:
كود :
Dim VProject As Integer = WEB_.DownloadString("D:\v.txt")

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

يجب بالنهاية ان يصبح هذا المسار 
PHP كود :
D:\v.txt 

ان يكون رابط موقع الكتروني برابط مباشر 

للوصول الى الملف ليصبح بهذا الشكل
PHP كود :
http://www.mysite.com/namefile.txt 

الشرح الثالث لهذا السطر :
كود :
WEB_.DownloadFileAsync(New Uri("D:\File.exe"), Application.StartupPath & "\File.exe", True)

بخصوص
PHP كود :
D:\File.exe 

نفس الوضع لما تم شرحه فى الشرح الثانى

لكن ماذا يعنى هذا الملف ؟؟
هذا الملف الخاص بالمشروع الرئيسيى بعد التحديث ورفعه على الموقع
حتى يقوم الطرف الثانى من تمكينه من تحميل التحديث حتى يعمل لديه بدلاً من القديم

وكلمة File يتم تطبيق الاسم كما تم شرحه فى الشرح الاول بالاعلى

وينطبق ذلك ايضاً على هذا السطر
كود :
Process.Start(Application.StartupPath & "\File.exe")


والى هنا يتم الانتهاء من الدرس
ويارب ان ينال الشرح للجميع

وان يكون الشرح مبسط ولا يوجد به اى مشكلة

الاكواد المستخدمة قليلة وبسيطة
ويمكنك الاستفادة من هذا الدرس وتطويره كما تريد

وفى النهاية اسال الله المغفرة والرحمة وان يتوب على من الاخطاء والنسيان

وراحة البال والكرم والرزق من حيث لا اعلم

وشكراً للجميع



اسئلة قد يتم طرحها من بعض الاعضاء ومن زوار الموضوع...

1- لماذا قمت باستخدام For Each لاغلاق البرنامج بدلاً من وضع سطر اغلاق البرنامج مباشراً؟
ج: السبب هو ان البعض يعمل على مشروع وقد يقوم المستخدم فتح البرنامج اكثر من مرة فى وقت واحد لذلك تجنباً لهذا تم عمل ذلك.

2- لماذا قمت باستخدام Button لتحميل المشروع بدلاً من تنفيذ التحديث مباشراً؟
ج: لاسباب عديدة واهم ما خطر فى بالى هم اصحاب مشاريع التى تعتمد على الادخالات مثل الفواتير
فتخيل اذا كان المستخدم يقوم بادخال بيانات فاتورة وله الكثير من الوقت يعمل على ذلك ولكن بالخطاء
قام بعرض شاشة التحديث لك ان تتخيل ردة فعله وقتها عندما يعلم ان كل ما كان يقوم بتسجيله ولم يحفظ بعد
وانه سيقوم باعادة العمل عليه مجدداً واعادة ادخال بيانات الفاتورة من جديد وتخيل ردة فعله بالدعاء لبعض الاشخاص ....
نصيحة لتكون مبرمج يجب عليك اولاً ان تكون مكان المستخدم للبرنامج لذلك ضع نفسك مكان المستخدم اولاً حتى تتمكن من تفادى الاخطاء.

3- هل يمكن تطوير فكرة هذا التحديث واستخدام شخصى ؟
ج: نعم فقمت بعمل هذا الدرس هنا ليس ليكون عليه حقوق بال هو درس عامة ليعم الفائدة للجميع فلك حرية الاستخدام 
لكن تذكر ان تستخدمه فقط فى ما يرضي الله فانا غير مسؤل عن غير ذلك.

4- لماذا لم تقم بعمل الدرس من خلال شرح عن طريق الفيديو؟
ج: اولاً انا لست من اصحاب من يريد الربح من خلال الفيديوهات ثانياً والاهم هو الملاحظة الكثير ومنها
قد يكون الاغلب لم يعد يفضل القراءة فاصبحنا فى هذا الزمن يكره الكثير القراءة وفقط يعتمد على ما يراه
للاسف هذا خطأ كبير جداً لان ما تراه وتشاهده ليس دائماً الصح ولا يعتمد الذاكرة لديك على ما تشاهده
عكس ما تعتمد الذاكرة على ما تقوم بقراءته حتى لو مر عليه السنين ستتذكر انك فى يوم كان فى شئ مثل ذلك
لهذا السبب افضل الشرح كتابتاً مع بعض الصور للتوضح الفكرة لان الهدف الاهم لى هو جعلك تكون متطور داخلياً عن
ان تكون اسم مطور او مبرمج وتاتى فى يوم تحت اختبار بدون استخدام الانترنت لتعمل كود ولا تعلم حتى كيف تكتب الكود



تحياتى لكم
وتمنياتى للجميع التوفيق



RE: درس انشاء تحديث للمشروع الخاص بك شرح مصور. - sendbad100 - 17-06-18

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

عيد سعيد على الجميع 

بارك الله فيك  وجزاك خير الجزاء 

ابدعت  



RE: درس انشاء تحديث للمشروع الخاص بك شرح مصور. - ابو روضة - 17-06-18

جزاك الله كل خير اخى الكريم ماشاء الله شرح ولا فى الأحلام



RE: درس انشاء تحديث للمشروع الخاص بك شرح مصور. - elgokr - 17-06-18

(17-06-18, 08:07 AM)sendbad100 كتب :
وعليكم السلام ورحمة الله وبركاتة 

عيد سعيد على الجميع 

بارك الله فيك  وجزاك خير الجزاء 

ابدعت  

(17-06-18, 08:12 AM)ابو روضة كتب :
جزاك الله كل خير اخى الكريم ماشاء الله شرح ولا فى الأحلام


شكراً لك اخى sendbad100

شكراً لك اخى ابو روضة

ولعل يفيد الشرح للجميع

تحياتى لكم



RE: درس انشاء تحديث للمشروع الخاص بك شرح مصور. - عبد العزيز البسكري - 17-06-18

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

عيد فطر مبارك .. كل سنة و أنت بمليون خير .. كل سنة و أنت و كل الأسرة الكريمة إلى الله أقرب

بارك الله فيك و لك على الموضوع الرّائع و المفيد و الشّرح البسيط المفهوم

تحياتي



RE: درس انشاء تحديث للمشروع الخاص بك شرح مصور. - elgokr - 17-06-18

وعليكم السلام ورحمة الله

عيدك سعيد اخى عبد العزيز البسكري
لك ولكل من تحب وكل عام وانت بخير

تحياتى لك
وتمنياتى لك التوفيق



RE: درس انشاء تحديث للمشروع الخاص بك شرح مصور. - YousefOkasha - 20-06-18

شرح مفيد ..
لكن عدل في آخر الموضوع و قم بإضافة هذا الرابط لإفادة الاشخاص الذين لم يفهمو هذا الموضوع ..
http://vb4arb.com/vb/showthread.php?tid=25320


RE: درس انشاء تحديث للمشروع الخاص بك شرح مصور. - elgokr - 20-06-18

(20-06-18, 01:54 AM)YousefOkasha كتب : شرح مفيد ..
لكن عدل في آخر الموضوع و قم بإضافة هذا الرابط لإفادة الاشخاص الذين لم يفهمو هذا الموضوع ..
http://vb4arb.com/vb/showthread.php?tid=25320


شكراً لك



بخصوص الرابط يكفى بالرد الخاص بك
وكما تم التوضيح فى الموضوع لا احبب الشروحات بالفيديو
فكلما اطلع والمستخدم واقترح من اسئلة افضل بكثير من النسخ واللصق

فكلما تعامل يدوياً بما يقوم بقراءته افضل 200% من رؤية فيديو وتطبق ما به
وهو طبقاً للمثل (التكرار يعلم الشطار)..

تحياتى لك
وتمنياتى لك التوفيق



RE: درس انشاء تحديث للمشروع الخاص بك شرح مصور. - ScreamVoice - 03-10-18

شكرا يا هندسه علي مجهودك 
انا كنت محتاج تعديل بسيط لو سمحت

دا الكود بتاعي 

كود :
Imports System.Net
Public Class ScreamUPdate

    Dim WEB_ As New WebClient
    Dim Process_() As Process = Process.GetProcessesByName("ScreamSport1") ' Name file your program
    Dim VProject As Integer = WEB_.DownloadString("E:\Programs\Scream Sport\v.txt") ' You can use link Example: http://www.mysite.com/file.txt  (Link Direct...)

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        PictureBox1.Visible = False

            If VProject > My.Settings.VProject Then
            Label1.Text = "Download The New Version"
            PictureBox1.Visible = True
            End If

    End Sub

    Private Sub PictureBox1_Click(sender As Object, e As EventArgs)
        If VProject > My.Settings.VProject Then
            If Process_.Count > 0 Then
                For Each MyProject_ In Process_
                    MyProject_.Kill()              ' Close Your Project.
                Next
                GoTo GoDownlod_
            Else
GoDownlod_:
                WEB_.DownloadFileAsync(New Uri("E:\Programs\Scream Sport\ScreamSport1.exe"), Application.StartupPath & "\ScreamSport1.exe", True) ' You can use link Example: http://www.mysite.com/File.exe  (Link Direct...)
                My.Settings.VProject = VProject
                My.Settings.Save()
                MsgBox("تم تحديث البرنامج.")
                Process.Start(Application.StartupPath & "\ScreamSport1.exe") ' Open Your Project After Finish Update.
                Application.Exit()
            End If
        End If
    End Sub

    
End Class

محتاج اضيف فيه

ان لو مفيش تحديث يعرض ليا تلقائي فورم
ScreamAct

وعايز برده اخفي Label1 لما ميكنش فيه تحديث


RE: درس انشاء تحديث للمشروع الخاص بك شرح مصور. - elgokr - 04-10-18

مرحباً اخى ScreamVoice

كل ما عليك تعديل بسيط فى الكود المدرج فى ردك
كل ما عليك فعله فى الكود التالى
كود :
           If VProject > My.Settings.VProject Then
           Label1.Text = "Download The New Version"
           PictureBox1.Visible = True
           End If

اجعله بهذ الشكل
كود :
           If VProject > My.Settings.VProject Then
           Label1.Text = "Download The New Version"
           PictureBox1.Visible = True
           else
           ScreamAct.show()
           End If

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

ويمكنك عمل اغلاق للشاشة خاصة التحديث التى تحتوى على كود ايضاً فى اسفل سطر
كود :
           ScreamAct.show()


تحياتى لك
وتمنياتى لك التوفيق