<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Πρώτα Βήματα - Desktop Applications</title><link>https://www.dotnetzone.gr:443/cs/forums/80/ShowForum.aspx</link><description>Θέματα για όσους φτιάχνουν τα πρώτα τους Desktop Applications σε .NET Framework</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: 'Options' Menu!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45300.aspx</link><pubDate>Thu, 09 Oct 2008 19:27:51 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45300</guid><dc:creator>Johnnyxp64</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45300.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=45300</wfw:commentRss><description>&lt;P&gt;καλη ιστορια.... &lt;/P&gt;&lt;P&gt;ευχαριστω για τις διευκ/σεις και παλι guys. πρεπει να δουλεψουμε τωρα..."&lt;STRONG&gt;program fil.... εεεμμμμ &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-43.gif" alt="Confused" /&gt; application data ηθελα να πω, Σου ρχομαι!!!!!!!&lt;/STRONG&gt;"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;καλη σας μερα&lt;/P&gt;</description></item><item><title>Απ: 'Options' Menu!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45296.aspx</link><pubDate>Thu, 09 Oct 2008 17:57:16 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45296</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45296.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=45296</wfw:commentRss><description>&lt;P&gt;&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;Ο Μάνος απάντησε και στο πως να βγάλει τα settings του στο stick αυτός που δεν έχει ιδέα πως να τα αντιγράψει. Δεν το κάνει αυτός, το κάνεις εσύ γι αυτόν με κώδικα. Εξάλλου, ο άσχετος χρήστης είναι πολύ πιθανότερο να έχει πρόβλημα επειδή π.χ. του ζήτησες να ανοίξει όλα τα permissions στο Program Files παρά ο πιο σχετικός. Γι αυτό και δημιουργήθηκε το App Data, τα profiles και τα restrictions που υπάρχουν σε όλα αυτά τα folders. Είναι πολύ λίγοι πλέον οι πελάτες οι οποίοι δουλεύουν σε ένα PC το οποίο δεν συνδέεται πουθενά. Αν θέλεις να φτιάξεις εφαρμογές οι οποίες πρέπει να δουλέψουν σωστά σε περιβάλλον δικτύου, πρέπει να μάθεις πως δουλεύουν τα διάφορα folders στα Windows. &lt;/P&gt;
&lt;P&gt;Εξάλλου, και στα Vista, αν δεν κάνεις "κακά" πράγματα, δεν εμφανίζονται message boxes. Άσε που ο πελάτης, ακόμα και ο άσχετος, κάποια στιγμή θα καταλάβει ότι το πρόγραμμα κάποιου ανταγωνιστή δεν βγάζει message boxes. Και είτε θα απαιτήσει να του λύσεις το πρόβλημα, ή απλά θα σε σουτάρει χωρίς να σε πάρει και τηλέφωνο.&lt;/P&gt;
&lt;P&gt;Νομίζω ότι μία πρόσφατη ιστορία είναι χρήσιμη. &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;&amp;nbsp;Η "&lt;STRONG&gt;Τρία Κιλά Κώδικα&lt;/STRONG&gt;" είχε φτιάξει ένα πρόγραμμα για τράπεζα το οποίο είχε κάπου ξεχασμένο κώδικα ο οποίος πείραζε αρχεία στο Program Files. Όχι ότι ο &lt;STRONG&gt;Ζαχαρίας&lt;/STRONG&gt; δεν ήξερε ότι αυτό ήταν λάθος, όχι ότι δεν ήθελε να αποφύγει τις φασαρίες και τα τηλεφωνήματα, αλλά όταν έχεις να διορθώσεις 5 τόνους κώδικα από αυτόν που έγραφε η &lt;STRONG&gt;Τούλα Ασχετούλα&lt;/STRONG&gt; πριν αλλάξει επάγγελμα, κάποια πράγματα θα ξεφύγουν.&lt;/P&gt;
&lt;P&gt;Το πρόγραμμα στέλνεται στην τράπεζα για εγκατάσταση και το τμήμα του IT Operations ετοιμάζεται να το ετοιμάσει για εγκατάσταση σε 500 PC. Αυτά φυσικά δεν τα κάνουν με το χέρι, βάζουν ένα agent να κάνει μαζικά τις εγκαταστάσεις. Φαντάσου λοιπόν τη χαρά του Operations όταν την επόμενη μέρα αρχίσανε τα τηλεφωνήματα από 500 εκνευρισμένους χρήστες οι οποίοι δεν μπορούσαν να δουλέψουν, γιατί δεν μπορούσε η εφαρμογή να γράψει στο Program Files. Και καλά ο κόσμος στα καταστήματα, απλά χάθηκαν χρήματα με τις καθυστερήσεις. Έλα όμως που την εφαρμογή χρησιμοποιούσε και &lt;STRONG&gt;η γραμματέας του προέδρου? &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Ευτυχώς, έτυχε να είμαι εκεί και πρόλαβα να πάρω τηλέφωνο το Ζαχαρία για να ετοιμάσουν νέο build πρωτού το IT Operations στείλει τους ... special operators του Security (όχι το Windows Security) να κάνουν μία επίσκεψη στο Ζαχαρία. Κυριολεκτικά στην πόρτα τους προλάβαμε. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;ΚΑΙ ΟΠΟΙΟΣ ΝΟΜΙΖΕΙ ΟΤΙ Η ΠΑΡΑΠΑΝΩ ΙΣΤΟΡΙΑ ΕΙΝΑΙ ΕΝΤΕΛΩΣ ΦΑΝΤΑΣΤΙΚΗ &lt;/STRONG&gt;ας ρωτήσει το Ζαχαρία. &lt;/P&gt;</description></item><item><title>Απ: 'Options' Menu!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45292.aspx</link><pubDate>Thu, 09 Oct 2008 16:59:41 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45292</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45292.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=45292</wfw:commentRss><description>&lt;P&gt;Ναι, χρειάζεται να κάνεις Add Reference στο System.Configuration assembly.&lt;/P&gt;
&lt;P&gt;Ως προς το μακρυνάρι, είπαμε μπαίνει αυτόματα για λόγους security αλλά με τον κώδικα που παρέθεσα μπορείς να βρεις το path και μετά μέσω κώδικα να κάνεις copy τα settings σε κάποιο usb stick ή από κάποιο stick προς τον φάκελο.&lt;/P&gt;</description></item><item><title>Απ: 'Options' Menu!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45285.aspx</link><pubDate>Thu, 09 Oct 2008 08:35:41 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45285</guid><dc:creator>Johnnyxp64</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45285.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=45285</wfw:commentRss><description>&lt;P&gt;&lt;STRONG&gt;KelMan&lt;/STRONG&gt;: σε ευχαριστω για τις καθαρες διευκρ/σεις &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-21.gif" alt="Yes" /&gt;απολυτα κατανοητος εκτος απο το οτi to Directory της εφαρμογης περνει οναμα εκεινο το "μακριναρι" δεν ειδα να μου εξιγεις η δεν το καταλαβα αν το αναφερεις που ειναι.&lt;/P&gt;&lt;P&gt;Το "προβλημα ειναι" γιατι μεσα εκει η εφαρμoγη μου κανει εναν φακελο αλλα αντι να ειναι Μονο το ονομα της εχει και αυτο το "24+χαρακτηρων μακριναρει" τι ειναι αυτο, δεν ξερω και πως μπορω να το εξαφανισω?&lt;/P&gt;&lt;P&gt;εφτιαξα πριν λιγο ενα παραδηγμα στο vs2008, και με το που το ετρεξα μεσα στο app data directory, ενω την εφαρμoγη μου την ειπα DemoApplication.exe ο φακελος που δημιουργηθηκε ειναι DemoApplication.exe_2jdfh75bksvlsdf84hn498shdke  κτλ.... αυτο ειναι που αναρωτιεμαι τι ειναι και γιατι το κανει? σε αλλες εφαρμογες μου δεν το κανει.....&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-43.gif" alt="Confused" /&gt;&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-42.gif" alt="Confused" /&gt;&lt;/P&gt;&lt;P&gt;αλλη ερωτηση, που αρεσει το reset στις default values που εχεις δωσει αλλα δεν βλεπω να μπορεις να κανεις reset per setting που εχεις φτιαξει, αλλα μονο ολα μαζι!???&lt;/P&gt;&lt;P&gt;τελος στο παραδειγμα σου πρεπει να εχω κανα import? γιατι λεει δεν αναγνωριζει τι ειναι το &lt;SPAN style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/SPAN&gt; config &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;as&lt;/SPAN&gt; &lt;U&gt;Configuration&lt;/U&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;U&gt;επλιζω να μην σε ζαλισα στις ερωτησεις &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-10.gif" alt="Embarrassed" /&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Panagioti&lt;/STRONG&gt;: το app.data  εγω το ξερω χρονια το θεμα ειναι αν εχεις πελατη στο τηλεφωνο και θες να τον οδηγησεις εκει ψιλο χανονται αυτοι. και δεν πρεπει να ειναι ολοι οι πελατες μας IT centers, υπαρχουν και μικρο επειχηρησεις που θελω να περνω παραδειγμα το αρχειο αυτο σε ενα memmory stick που ειναι μονημα πανω, μπορω? Ειμαι απο Θεσσαλια και δουλευα χρονια εκει πριν ανεβω Θεσ/νικη το τι πελατες εχω που δεν ξερουν να κανουν αντιγραφη ενα αρχειο δεν λεγεται! τι να κανω ομως που πληρωναν και ζητουσαν αυτοι να κανουν βλακιες κι εσυ να εχεις τις ρυθμισεις και τα αρχεια του Παντα καπου αποθηκευμενα και ασφαλη!?&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-40.gif" alt="Hmm" /&gt;&lt;/P&gt;&lt;P&gt;καλα για sVista δεν το σχολιαζω καθολου, ασε εκει θες δε θες δεν σε "περνει" να "γραψεις" οπου θελεις ως προγραμματιστης, γιατι αρχιζουν τα msboxes να πεταγονται βροχη!!!! &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-14.gif" alt="Devil" /&gt;&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;&lt;/P&gt;&lt;P&gt;θυμασται αυτο το σποτακι απο τα ωραια της apple? &lt;A href="http://"&gt;http://www.youtube.com/watch?v=MyhJZMxGf5U&lt;/A&gt;&lt;/P&gt;</description></item><item><title>Απ: 'Options' Menu!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45283.aspx</link><pubDate>Thu, 09 Oct 2008 08:15:40 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45283</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45283.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=45283</wfw:commentRss><description>&lt;P&gt;Johnny, να το πω κάπως αλλιώς. Αν πας να εγκαταστήσεις σε μεσαία ή μεγάλη εταιρεία software και τους πεις ότι θέλεις ντε και καλά να γράψεις στο Program Files, θα σε πετάξουν από το παράθυρο πρωτού προλάβεις να πεις κύμινο. Εσύ μπορεί να θέλεις να πειράζεις το μηχάνημα στο σπίτι σου, όσοι όμως δουλεύουν σε IT τμήματα τα οποία πρέπει να υποστηρίξουν εκατοντάδες χρήστες ΔΕΝ θέλουν οι απλοί χρήστες να πειράζουν ή να έχουν administrator δικαιώματα.&lt;/P&gt;
&lt;P&gt;Το App Data είναι ένα σαφώς ορισμένο directory, το οποίο γνωρίζουν όλα τα προγράμματα backup και το παίρνουν κανονικά backup. Αν εσύ θέλεις να χρησιμοποιήσεις άλλο directory θα πρέπει να ρυθμίσεις το οποιοδήποτε πρόγραμμα backup τρέχει σε αυτούς τους 100+ χρήστες για να καλύψει και τη δική σου εφαρμογή.&lt;/P&gt;
&lt;P&gt;Επειδή αυτό τον καιρό πηγαινοέρχομαι σε IT τμήμα τράπεζας, μπορώ να σου πω ότι ο κόσμος εκεί έχει πολύ σαφείς και αποκρυσταλλωμένες απόψεις για το πως θα πρέπει να αντιμετωπίζονται οι προμηθευτές οι οποίοι θέλουν να πειράζουν τα default locations, όπως είναι το App Data .... &lt;/P&gt;</description></item><item><title>Απ: 'Options' Menu!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45281.aspx</link><pubDate>Thu, 09 Oct 2008 07:40:36 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45281</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45281.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=45281</wfw:commentRss><description>&lt;P&gt;To μεγάλο πλεονέκτημα των settings είναι ότι είναι type safe μηχανισμός, μπορείς δηλαδή να πεις κάτι σαν το παρακάτω:&lt;/P&gt;
&lt;P&gt;SomeControl.BackColor = My.Settings.ControlBackColor&lt;/P&gt;
&lt;P&gt;γλυτώνεις δηλαδή από το να περνάς και να κάνεις parse strings.&lt;/P&gt;
&lt;P&gt;Μπορείς εύκολα να βρεις την τοποθεσία που βρίσκονται τα user&amp;nbsp;settings με κώδικα σαν τον παρακάτω:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Dim config as Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal)&lt;BR&gt;Console.WriteLine("Local user config path: {0}", config.FilePath)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Η περίεργη αυτή οργάνωση που αναφέρεις υπάρχει για λόγους security καθώς και για να εξυπηρετείται το ClickOnce με τα updates του, κλπ. Από εκεί και πέρα, η όλη διαδικασία ελέγχεται από έναν SettingsProvider ο οποίος στην συγκεκριμένη περίπτωση είναι ένας &lt;A href="http://msdn.microsoft.com/en-us/library/system.configuration.localfilesettingsprovider.aspx"&gt;LocalFileSettingsProvider&lt;/A&gt;. Αυτό σημαίνει ότι μπορείς να γράψεις τον δικό σου provider που θα έχει το functionality που θες ενώ παράλληλα θα έχεις την ίδια ευκολία χρήσης (βλ. type safety) κατά το development. Μπορείς να βρεις samples στο MSDN ωστόσο θα το σκεφτόμουν πολύ για να κάνω κάτι τέτοιο. Για παράδειγμα ο default application/user settings μηχανισμός δεν&amp;nbsp;δημιουργεί κανένα πρόβλημα κατά την&amp;nbsp;εγκατάσταση&amp;nbsp;μιας&amp;nbsp;εφαρμογής στα Vista καθώς ο SettingsProvider συμμορφώνεται με τις επιταγές του λειτουργικού ως προς το που μπορεί να γράψει και που όχι.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;</description></item><item><title>Απ: 'Options' Menu!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45278.aspx</link><pubDate>Thu, 09 Oct 2008 06:17:56 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45278</guid><dc:creator>Johnnyxp64</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45278.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=45278</wfw:commentRss><description>&lt;P&gt;δηλαδη ενα xml ειναι apla γραφεις και διαβαζεις πανευκολα σαν μεταβλητες.&lt;/P&gt;&lt;P&gt;εμενα παλι δεν μου καθεται καλα, με ενοχλει να περνει αποφασεις το .ΝΕΤ που θα κρυβει γιατι τα κρυβει sto Appl Data και κοσμος δεν το ξερει να παρει backup και &lt;/P&gt;&lt;P&gt;δεν ειναι και καθολου ευκολο να καθεσαι να ανοιγεις 50 folders μεχρι να βρεις κατι που πρεπει να αλλαξεις απο 'εξω' manual.&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-6.gif" alt="Sad" /&gt;&lt;/P&gt;&lt;P&gt;ναι ναι ξερω εκει ειναι το "προβλεπομενο" λεει η microsoft και καλα λεει αλλα εγω θελω να το αλλαξω αυτο μπορω?&lt;/P&gt;&lt;P&gt;αμ το αλλο σε καθε εφαρμογη δεν κανει μονο το ονομα της αλλα παραγει folder και ενα 24φηφιο και χαρατηρες νομιζω που δεν ειναι σταθερος κατι σαν myApplication..exe_Url_4b0wq2eehuknobobzezqlt5qlalxohg3&lt;/P&gt;&lt;P&gt;τι ακριβως ειναι αυτο βρε παιδια???&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-42.gif" alt="Confused" /&gt; δεν ξερω και θα ηθελα να μαθω ωστε να το εκμεταλeυτω  κι εγω καλητερα το my.settings και πως να του πω οτι το default directory θα ειναι Αλλο απο το ..\...\...\...\Application Data\...\...???&lt;/P&gt;&lt;P&gt;εψαξα λιγο την save αλλα δεν νομιζω οτι μπορει να αντιγραφει το user.config οπου θελω εγω...μπορει? να κανω κατι σαν backup διαδηκασια να προλαβαινω χαζομαρες ρυθμισεις-αλλαγες χρηστων.....&lt;/P&gt;&lt;P&gt;παντος ειναι ποιο ευκολο&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-21.gif" alt="Yes" /&gt;, ειναι ομως παραμετροποιησημο?&lt;/P&gt;&lt;P&gt;τnx&lt;/P&gt;</description></item><item><title>Απ: 'Options' Menu!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45268.aspx</link><pubDate>Wed, 08 Oct 2008 23:09:11 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45268</guid><dc:creator>Τάσκος Γιώργος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45268.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=45268</wfw:commentRss><description>Ναι, παίζει μια χαρά και μπορείς και αλλάζεις ότι θέλεις πολύ εύκολα, ήταν αυτό που ήθελα :)&lt;br&gt;Σύνδεσα την φόρμα Options με Properties που παίρνουν τιμές απο Properties.Settings.Default...&lt;br&gt;και όλα μια χαρά.&lt;br&gt;&lt;br&gt;Ευχαριστώ ;)&lt;br&gt;</description></item><item><title>Απ: 'Options' Menu!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45267.aspx</link><pubDate>Wed, 08 Oct 2008 22:51:52 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45267</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45267.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=45267</wfw:commentRss><description>&lt;P&gt;Θα συμφωνήσω με το Μάνο. Τα settings απαγορεύεται να αποθηκεύονται οπουδήποτε. Για παράδειγμα, για να αποθηκεύσει κάποιος οτιδήποτε στο Program Files πρέπει να είναι administrator του μηχανήματος, κάτι που δημιουργεί προβλήματα ασφάλειας. Και όταν λέμε απαγορεύεται, εννοούμε να αρνηθούν οι πελάτες&amp;nbsp; να εγκαταστήσουν την εφαρμογή. &lt;/P&gt;
&lt;P&gt;Ένας χρήστης όμως έχει δικαίωμα να γράψει οτιδήποτε στο \Documents and Settings\UserName\AppData. Το σωστό σημείο για να σώσει μία εφαρμογή τα settings είναι σε ένα δικό της folder κάτω από το AppData. Κάτι αντίστοιχο συμβαίνει και με το registry, όπου ο χρήστης έχει πρόσβαση μόνο στο HKEY_CURRENT_USER και θα πρέπει εκεί να βάλει ότι θέλει.&lt;/P&gt;
&lt;P&gt;Τα .NET settings σε απαλλάσσει από το να σκέφτεσαι πού να βάλεις το κάθε setting και πως να το διαβάσεις. Το .NET αυτόματα τοποθετεί τα user settings στο σωστό σημείο για το χρήστη και την εφαρμογή σου και τα φορτώνει χωρίς εσύ να πρέπει να ξέρεις που βρίσκονται αυτά.&lt;/P&gt;</description></item><item><title>Απ: 'Options' Menu!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45260.aspx</link><pubDate>Wed, 08 Oct 2008 21:29:43 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45260</guid><dc:creator>Τάσκος Γιώργος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45260.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=45260</wfw:commentRss><description>Πολύ καλύτερα με τα Settings :)&lt;br&gt;</description></item><item><title>Απ: 'Options' Menu!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45254.aspx</link><pubDate>Wed, 08 Oct 2008 15:40:54 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45254</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45254.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=45254</wfw:commentRss><description>&lt;P&gt;Για τέτοιου είδους πληροφορίες, το καλύτερο μέρος για να αποθηκευτούν είναι τα Application/User Settings. Όλες οι υπόλοιπες λύσεις έχουν διάφορα μειονεκτήματα με κυριότερα την ευχρηστία και τα δικαιώματα που απαιτούνται για να γράψεις/διαβάσεις&amp;nbsp;σε &amp;nbsp;"ευαίσθητες" περιοχές του συστήματος όπως το Registry ή ο φάκελος Program Files, κλπ. Με τα Application/User Settings δεν χρειάζεται να σκοτίζεσαι για το που αποθηκεύονται οι πληροφορίες και επιπρόσθετα είναι πολύ εύκολο το να διαβάσεις και να γράψεις: &lt;/P&gt;
&lt;P&gt;My.Settings.ABCConnectionString = "..." και γράφεις&lt;BR&gt;dbConStr = My.Settings.ABCConnectionString&amp;nbsp; και διαβάζεις&lt;/P&gt;
&lt;P&gt;Τα settings μπορείς να τα ορίσεις και να δώσεις αρχικές τιμές μέσω των project properties, στο tab "Settings".&lt;/P&gt;</description></item><item><title>Απ: 'Options' Menu!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45249.aspx</link><pubDate>Wed, 08 Oct 2008 10:00:47 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45249</guid><dc:creator>Τάσκος Γιώργος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45249.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=45249</wfw:commentRss><description>Συγγνώμη που σε παίδεψα johnny:) μου απάντησες, αυτή ήταν η ερώτηση, με ποιους τρόπους&lt;br&gt;μπορώ να υλοποιήσω αυτό το σκεπτικό.&lt;br&gt;&lt;br&gt;Ευχαριστώ.&lt;br&gt;</description></item><item><title>Απ: 'Options' Menu!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45248.aspx</link><pubDate>Wed, 08 Oct 2008 08:28:23 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45248</guid><dc:creator>Johnnyxp64</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45248.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=45248</wfw:commentRss><description>&lt;P&gt;αρα ρωτας που να αποθηκευοντε αυτοι οι παραμετροι?&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-42.gif" alt="Confused" /&gt;&lt;/P&gt;&lt;P&gt;διαλεξε και παρε, απο το .config της εφαρμογης, σε ενα τχτ, στην registry, ή το καλητερο μου σε ενα δικο μου XML. Η ακομα κανεις μια δευτερη μικρη βαση πες την π.χ settings.mdb και κανε ενα πινακα που θα αποθηκευεις τις ρυθμισεις σου. αυτη η βαση μετα θα πρεπει Παντα να ξεκινα με το formload και απο εκει και περα, θα διαβαζεις τις ρυθμισεις και θα τις εφαρμοζεις. ευκολο.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;η ερωτηση ποια ειναι τωρα ακριβως? με μπερδεψες &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-7.gif" alt="Tongue Tied" /&gt;&lt;/P&gt;</description></item><item><title>Απ: 'Options' Menu!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45247.aspx</link><pubDate>Wed, 08 Oct 2008 07:32:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45247</guid><dc:creator>Τάσκος Γιώργος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45247.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=45247</wfw:commentRss><description>Ας πούμε ότι η βάση θα έχει μόνιμη δομή.&lt;br&gt;&lt;br&gt;Αυτό που εννοώ είναι ότι φαντάσου ένα οποιοδήποτε πρόγραμμα που έχει Options Menu,&lt;br&gt;υποτίθεται πως κάπου πρέπει να σώζονται, και ΑΝ θέλεις ποτέ να αλλάξεις κάτι απο εκεί,&lt;br&gt;π.χ το Connection String, η το όνομα της βάσης (εννοείται ότι τον κώδικα τον φροντίζεις ανάλογα).&lt;br&gt;Φαντάζομαι ότι θα πρέπει να φορτώνει αυτές τις παραμέτρους OnLoad κτλ.&lt;br&gt;</description></item><item><title>Απ: 'Options' Menu!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45222.aspx</link><pubDate>Tue, 07 Oct 2008 23:00:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45222</guid><dc:creator>Johnnyxp64</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45222.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=45222</wfw:commentRss><description>&lt;P&gt;γεια σου φιλε,&lt;/P&gt;&lt;P&gt;πως λες να παιξεις, με datatables και κωδικα or TableAdapters και λιγο drag+drop?&lt;/P&gt;&lt;P&gt;η βασh θα εχει μονιμη δομη η μπορει να αλλαζει? για δωσε λιγο info, γιατι αν η βαση δεν ειναι σταθερη και μεσα της πινακες και πεδια αλλαζουν (οχι εγγραφες αυτο ειναι φυσιολογικο)&lt;BR&gt;τοτε παμε αλλου, αν ομως ειναι κατι σταθερο και θες να το μανατζαρεις, καταρχας βεβαιωσου οτι ελεγχεις το ConnectionString!&lt;BR&gt;&lt;/P&gt;&lt;P&gt;πως?&lt;/P&gt;&lt;P&gt;να ενα παραδειγμα connection string για access.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;connectionString=&lt;SPAN style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Users.mdb"&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;εσυ πρεπει να εχει ενα OpenFileDialog που θα επιλεγει ο user που ειναι η βαση του!&lt;BR&gt;θα περνει το selectedpath και θα το "κολας" σε μια μεταβλητη που χεις ετοιμη και με βαση αυτη θα ξεκινησεις να κανεις connection στην Βαση μετα παμε σε datatables κτλ.&lt;BR&gt;&lt;/P&gt;&lt;P&gt;θα εγραφα κι αλλο αλλα δεν ξερω καν πως θελεις να δουλεψεις και δεν γνωριζω 2-3 πεδια και πινακες απο την βαση σου για να ειναι ποιο καλο το παραδειγμα.&lt;/P&gt;&lt;P&gt;ξεκινας παντος απο εδω και μετα προχωρας, διαβασε για DataTables πως φτιαχνοντε και πως τα "κουμπωνεις" με τους πινακες που θες και πως μπορεις να εκτελεις sql σε αυτα&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;για να δουλεψει το παρακατω ενοειτε ριχνεις σε μια φορμα ενα κουμπι με το ονομα button1 και ενα OpenFileDialog control. φανταζομαι τα ξερεις.&lt;/P&gt;&lt;P&gt;παντος ετσι μπορεις ευκολα να επιλεγεις αλλη βαση. αρκη πρωτα αν εχεις ανοιχτο καποιο connection na το κλεινεις και μετα να κανεις αλλαγες στο connection stiring αλλιως θα crashareiw. &lt;/P&gt;&lt;P&gt;ελπιζω να ειναι κοντα σε αυτο που ζητας goodluck!&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/P&gt;&lt;P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="100%" style="background-color:#f2f2f2;border:solid 1px #e5e5e5;"&gt;&lt;TR style="vertical-align:top;line-height:normal;"&gt;&lt;TD style="width:40px;text-align:right;"&gt;&lt;PRE style="font-family:courier new;font-size:11px;color:gray;margin:0px;padding:2px;border-right:solid 1px #e7e7e7;"&gt;1&lt;BR&gt;2&lt;BR&gt;3&lt;BR&gt;4&lt;BR&gt;5&lt;BR&gt;6&lt;BR&gt;7&lt;BR&gt;8&lt;BR&gt;9&lt;BR&gt; &lt;/PRE&gt;&lt;/TD&gt;&lt;TD&gt;&lt;PRE style="margin:0px;padding:2px;padding-left:8px;"&gt;&lt;SPAN style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;    &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Private&lt;/SPAN&gt; &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Sub&lt;/SPAN&gt; Button1_Click(&lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/SPAN&gt; System.&lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Object&lt;/SPAN&gt;, &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/SPAN&gt; System.EventArgs) &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Handles&lt;/SPAN&gt; Button1.Click&lt;BR&gt;&lt;BR&gt;        &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;If&lt;/SPAN&gt; OpenFileDialog1.ShowDialog &lt;SPAN style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/SPAN&gt; Windows.Forms.DialogResult.OK &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Then&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;            &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/SPAN&gt; MyConnString &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;String&lt;/SPAN&gt; &lt;SPAN style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"connectionString=""Provider=Microsoft.Jet.OLEDB.4.0;Data Source="""&lt;/SPAN&gt; &amp;amp; OpenFileDialog1.FileName &amp;amp; &lt;SPAN style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;""""&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;        &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;If&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;    &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Sub&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/P&gt;</description></item></channel></rss>