Git - Version Control System Εγκατάσταση Κατεβάστε το GitExtensions228SetupComplete.msi (GitExtensions228 πακέτο) από την σελίδα: https://sites.google.com/site/it4701teithegr/files Εκτελέστε το GitExtensions228SetupComplete.msi ακολουθώντας τα default options ΕΚΤΟΣ την θετική επιλογή σας να εγκατασταθούν τα:ιnstall MsysGit, Ιnstall KDiff στην 3 η οθόνη (βλέπε λεπτομερείς οδηγίες εγκατάστασης την σελίδα: https://sites.google.com/site/it4701teithegr/files/enkatastase-gitextensions ) Θα εγκατασταθούν έτσι το KDiff3,το Git και τo GitExtensions Χρήση GIT στο Visual Studio Θα δηµιουργήσουµε ένα project για να χρησιµοποιήσουµε το GIT στο VisualStudio µε όνοµα TestLocalGit και θα παρακολουθήσουµε µε την βοήθεια του Git τις σταδιακές αλλαγές του δηλαδή: (διαβάστε λεπτοµέρειες στο https://sites.google.com/site/it4701teithegr/files/git-local ) 1. Αρχικά µια άδεια φόρµα (Form1) (branch master) 2. Προσθήκη στην Form1 ενός button (branch master) 3. Προσθήκη στην Form1 ενός combobox (branch BranchCombo) 4. Προσθήκη στην Form1 δεύτερου button (branch master) ηµιουργία τοπικού Git Repository Aνοίγοντας λοιπόν ένα νέο Windows Forms Application project στο VisualStudio (µε όνοµαtestlocalgit) θα εµφανιστούν το Git Menu και το Τοοlbar του Git Eπιλέγοντας από το Toolbar του git "Browse Repository" Ανοίγει η οθόνη Settings (αν θέλετε κάνετε configure το emails σας) Και πατώντας ΟΚ στα Settings θα εµφανιστεί το παρακάτω [1]
Κλικ Ιnitialize repository Directory :το dir του prοject Τύπος: personal κλικ Initialize και ΟΚ στο µήνυµα µε τίτλο Initialize new repository Εµφανίζεται το Κλικ "Εdit.gitignore" (στο config αυτό, ορίζονται τα αρχεία που δεν θα µπαίνουν στο Repository) Κλικ "Add default ignores" μετά Save και τέλος Commit στο Git Extensions 1 ο ΣΤΑΔΙΟ ΑΔΕΙΑ ΦΟΡΜΑ Στην οθόνη Commit to Master που θα εµφανιστεί, καταγράφονται τα 12 αρχεία που µπήκαν στο Repo: [2]
Eδώ πριν κάνουµε Commit θα καταχωρήσουμε κάποιο σχόλιο και Στο µήνυµα δεν υπάρχει κάποιο (νέο στάδιο).. all unstaged files? «.. There are no staged for this commit. Stage and commit all unstaged files απαντάµε YES και εµφανίζεται η οθόνη Process που μας δείχνει τα 12 αρχεία που μπήκαν Με κλικ «ΟΚ» στη οθόνη Process, εµφανίζεται η βασική οθόνη του Git Extensions ΤestLocalGit (master) µε το µενού της, η οποία και παραµένει ανοικτή για να µπορούµε να βρούµε οποιαδήποτε πληροφορία επιθυµούµε. 2 ο ΣΤΑΔΙΟ ΒUTTON ΣΤΗΝ ΦΟΡΜΑ Θα κάνουµε µια αλλαγή στην φόρµα µας π.χ. θα βάλουµε ένα Button και θα κάνουµε COMMIT τις αλλαγές Eπιλέγουµε από το Toolbar του git "Commit changes Στην οθόνη Commit to Master που θα εµφανιστεί, καταγράφονται οι αλλαγές µε πράσινη επισήµανση: Θα καταχωρήσουµε ΝΕΟ σχόλιο π.χ. Κουµπί στην φόρµα και Commit και «Yes» στο µήνυµα δεν υπάρχει κάποιο (νέο στάδιο).. all unstaged files? Εµφανίζεται η οθόνη Process µε σύνοψη των τροποποιήσεων που έγιναν. Κλικ ΟΚ Θα δώσουµε και ένα φιλικό όνοµα (tag) στην νέα έκδοση: Από την βασική οθόνη του Git Extensions ΤestLocalGit (master) επιλέγουµε Commands/Create tag ίνουµε tag όνοµα FButton & κλικ στο Create tag 3 ο ΣΤΑΔΙΟ COMBO BOX ΣΤΗΝ ΦΟΡΜΑ σε ΝΕΟ BRANCH Πριν βάλουμε το combobox στην φόρμα Θα φτιάξουμε ένα νέο branch [3]
Από την βασική οθόνη του Git Extensions ΤestLocalGit (master) επιλέγουµε Commands/Create Branch ίνουµε branch όνοµα BranchCombo & κλικ στο Create Branch Εµφανίζεται η οθόνη Process µε µήνυµα Switched to a new branch BranchCombo. Κλικ ΟΚ Βάζουµε τώρα το combobox στην φόρµα και θα κάνουµε COMMIT τις αλλαγές Eπιλέγουµε πάλι από το Toolbar του git "Commit changes Στην οθόνη Commit to Master που θα εµφανιστεί, καταγράφονται οι αλλαγές µε πράσινη επισήµανση: Θα καταχωρήσουµε ΝΕΟ σχόλιο π.χ. 2 ο Κουµπί στην φόρµα και Commit και «Yes» στο µήνυµα Εµφανίζεται η οθόνη Process µε µήνυµα αλλαγών [Master..] 2o κουμπί στην φόρμα. Κλικ ΟΚ Στην βασική οθόνη του Git Extensions ΤestLocalGit (BranchCombo) επιλέγουµε File/Refresh Με κόκκινα γράµµατα δείχνει ότι βρισκόµαστε στο branch BranchCombo 4 ο ΣΤΑΔΙΟ ΔΕΥΤΕΡΟ BUTTON ΣΤΗΝ ΦΟΡΜΑ και ΑΛΛΑΓΗ BRANCH (από το νέο στο αρχικό) Το αρχικό branch ονομάζεται αυτόματα "master". Είµαστε στο branch BranchCombo. Μπορούμε να επιλέξουμε να πάμε σε άλλο branch πχ να πάμε στο master (και τότε όλα τα τοπικά αρχεία θα αντικατασταθούν). Στην βασική οθόνη του Git Extensions ΤestLocalGit (BranchCombo) αλλάζουµε το branch Εµφανίζεται η οθόνη Process µε µήνυµα Switched to branch master. Κλικ ΟΚ [4]
Όταν Επιστρέψουµε στην φόρµα µας (VS) θα εµφανιστεί µήνυµα που θα ζητήσει επιβεβαίωση για reload των αρχείων. Kλικ "Yes to All" ( θα αναγνωριστούν οι αλλαγές στα αρχεία που έγιναν εκτός VS). Εµφανίζεται η ΦΟΡΜΑ µας µε µόνο ΕΝΑ ΚΟΥΜΠΙ (χωρίς το COMBO). Θα κάνουµε νέα αλλαγή στην φόρµα µας π.χ. θα βάλουµε 2 ο Button και θα κάνουµε COMMIT..από το Toolbar του git "Commit changes..θα καταγραφούν οι αλλαγές µε πράσινη επισήµανση.. Θα καταχωρήσουµε ΝΕΟ σχόλιο π.χ. 2 ο Κουµπί στην φόρµα και Commit και «Yes» στο µήνυµα δεν υπάρχει κάποιο (νέο στάδιο).. all unstaged files? Εµφανίζεται η οθόνη Process µε µήνυµα αλλαγών [master..] 2 ο Κουμπί στην φόρμα. Κλικ ΟΚ και στο ΤestLocalGit (master) επιλέξτε File/Refresh Το branch BranchCombo είναι ένα παρακλάδι (Φτιάχνω και ένα tag µε όνοµα SButton) ΜERGE BRANCH Θα ενώσουµε τις δυο εκδόσεις δηλ. το master Branch (φόρµα µε 2 κουµπιά) και το branch BranchCombo (φόρµα 1 κουµπί και combo) Επιλέγουµε από το Repository Commands/Merge branches Μας δείχνει current είναι το master Branch και επιλέγω να το κάνω Μerge with BranchCombo. Κλικ Μerge Aν η διαδικασία Μerge αποτύχει όπως δείχνει η παρακάτω εικόνα τότε [5]
Επιλέγουμε Yes στο μήνυμα solve conflicts now? για να το επιλύσουμε επεμβαίνοντας στον κώδικα και χρησιµοποιώντας το kdiff3 Κλικ στο Open in kdiff3 Στο κάτω τµήµα (παράθυρο) που περιέχεται η τελική έκδοση του αρχείου αποφασίζουµε τι πρέπει να αλλάξει ώστε τελικά να συγχωνευτούν οι δυο εκδόσεις. A B C Στο κάτω παράθυρο µπορούµε µε διπλό κλικ να επιλέξουµε γραµµές από τα 3 πάνω παράθυρα (Α,Β,C) Aν τα κάνουµε όλα ΟΚ (και η συγχώνευση επιτύχει) κάνουµε Save και απαντάµε µε YES στην ερώτηση «Do you want to commit now. Με COMMIT το branch BranchCombo από παρακλάδι που ήταν ΣΥΓΧΩΝΕΥΤΗΚΕ [6]
The Project Properties ιπλό κλικ στο MyProject για να καθορίσεις τις properties του project που είναι χωρισµένες ανά κατηγορίες Αpplication : εµφάνιση και συµπεριφορά της εφαρµογής Compile : κατάσταση / χτίσιµο του project release or debug, (active, all configurations) Debug : debugging της εφαρµογής References : λίστα των components που αναφέρονται στην εφαρµογή (system,system.data..) Resources : λίστα των strings, εικόνων,icons,audio αρχείων που χρησιµοποιούνται Settings : ιδιότητες ορισµένες από τον χρήστη για το runtime της εφαρµογής (δυναµικά) (namespace My) Application Properties Assembly Name : το όνοµα της compiled εφαρµογής (*.exe ή *.dll library ) Root Namespace : το κύριο namespace (τα namespaces τα χρησιµοποιείς για να οργανώνεις τις κλάσεις π.χ. όλες οι φόρµες (1 φόρµα-1 κλάση) ανήκουν στο System.Windows.Forms namespace) [7]
Ιcon : *.ico file (συνδέεται µε το *.exe ή το *.dll file) StartupForm Assemply Information Aυτές οι πληροφορίες αποθηκεύονται στο AssemblyInfo.vb file (Eρώτηµα 2.1) Windows applications framework properties Η SPLASH SCREEN οθόνη ορίζεται εδώ στο Splash Screen (όχι στο Startup Form) και εµφανίζεται πριν την Αρχική Φόρµα του έργου για κάποιο ορισµένο διάστηµα. [8]
Splash Screen: Add / Windows Forms /Splash Screen (έτοιµο template, Eρώτηµα 2.2) H κλάση Windows applications framework properties περιέχει µεθόδους και events της τρέχουσας εφαρµογής (που µπορούµε να προγραµµατίσουµε στο ApplicationEvents.vb) Startup (Τι γίνεται πριν ξεκινήσει η εφαρµογή, αρχικοποίηση µεταβλητών..) Shutdown (Τι γίνεται πριν τελειώσει η εφαρµογή, σώσιµο µεταβλητών, resources..) StartNextInstance NetworkAvailabilityChanged UnhandledException Compilation Properties Configuration : κατάσταση / χτίσιµο του project release or debug, (active, all configurations) Μπορείς π.χ. να θέλεις κάποιο κοµµάτι κώδικα να εκτελείται µόνο όταν φτιάχνεις την εφαρµογή σου, (conditional compilation) αλλά αυτό το κοµµάτι δεν το θέλεις όταν θα είναι η τελική εφαρµογή (Eρώτηµα 2.3). [9]
Advanced Compile Options Conditional compilation Build output path: που θα δηµιουργηθεί το output (bin\debug ή bin/release) Compile Options (Eρώτηµα 2.4). Explicit ON : πρέπει υποχρεωτικά να δηλωθούν οι τύποι των μεταβλητών που θα χρησιμοποιηθούν π.χ. Dim i As Integer Strict OFF : αν είναι ΟΝ δεν γίνονται μετατροπές των μεταβλητών π.χ. Dim i As Integer =7 Dim p As Integer=0.5 Dim r As Integer =i*p - αν είναι ΟF την αντικαθιστά με : Dim r As Integer =CInt(i*p) Ιnfer ON : δεν υποχρεώνει να δηλωθούν οι τύποι των μεταβλητών που θα χρησιμοποιηθούν και αφήνει την Basic να καθορίζει αυτόματα τον τύπο: Dim i=5. Compiler Error and Warnings Ο Compiler ενηµερώνει σε περίπτωση λαθών πχ ορίστηκε µια µεταβλητή αλλά δεν χρησιµοποιήθηκε (Unused local variable). Μπορείς να τα κάνεις όλα τα warning disable (none) ή να τα θεωρήσεις όλα σαν λάθη(error) (Eρώτηµα 2.5 ). [10]
Unused local variables/none, Warning, Error. Aν ζητήσω να εµφανίζεται µήνυµα λάθους Error, µπορώ να σβύσω όλα τα άχρηστα που πιάνουν χώρο. Βuild Events Τι γίνεται πριν και µετά το στήσιµο του project. Π.χ.να γίνεται backup κάθε φορά που το κάνεις build. References Unused references & References Path (Eρώτηµα 2.6 ). Βιβλιοθήκες Imports TimeLibrary Dim clock as New Time Teller MessageBox.Show(String.Format( It is {0:t} on {0:dddd},clock.GetTime,clock.GetDate)) [11]
Publishing an Application Το setup µιας εφαρµογής δηµοσιεύεται στο Internet χάρις στο ClickOnce. Μια ClickOnce εφαρµογή µπορεί να δηµοσιευθεί σε ένα WebSite, FTP server, σε ένα δίκτυο ή τοπικά στον Η/Υ µας. (ClickOnce is a Microsoft technology that enables the user to install and run a Windows application by clicking a link in a web page. (Such applications are known as Smart clients.) ClickOnce is a component of Microsoft.NET Framework 2.0 and later) Η εφαρµογή κατόπιν µπορεί να εγκατασταθεί: από ένα WebSite από ένα δίκτυο τοπικά στον Η/Υ ή από CD/DVD Tρόποι δηµιουργίας του published setup - Publish Wizard (Build/Publish) - Publish page (Project properties/publish tab) LOCAL IIS WEB SITES A local Internet Information Services (IIS) Web site is an IIS Web application on your computer. Visual Web Developer communicates with the Web site by using the HTTP protocol. Creating or opening a local IIS Web site is useful in the following situations: You want to test your Web site using IIS, which closely emulates how the Web site will run on a production server. This can have advantages over working with file system Web sites that run using the ASP.NET Development Server, because paths are resolved as they will be on a production server. You already have a set of Web site files in a folder and you want to test the Web site with IIS. In this case, you can create a virtual directory in your local version of IIS. Your local computer is also your Web server. [12]
RUNNING LOCAL IIS WEB SITES By default, when you run a local IIS Web site to test it, Visual Web Developer launches a browser and runs the Web site using the server name localhost. For example, if you have created the Web site ExampleSite, when you test it in Visual Web Developer, the browser will request the test page from this URL: http://localhost/examplesite/page Η εφαρµογή κατόπιν µπορεί να εγκατασταθεί είτε Online (χωρίς shortcut ) Offline (µε shortcut στο Start menu) Τα αρχεία που δηµιουργούνται στo publish location είναι: Deployment Web page (αρχείο publish.htm) Ιnstallation bootstrapper (αρχείο setup.exe) Deployment manifest (xml αρχείο projectname.application) Τα αρχεία που δηµιουργούνται στo installation location είναι: Application manifest (xml αρχείο projectname.exe.manifest Application executable (αρχείο projectname.exe.deploy) Πρόσθετα αρχεία (databases,dlls, icons..) [13]
[14]