ApplicationSettings σε όλη βιβλιοθήκες




Προσπαθώ να αφηρημένες από όλες τις κώδικα της βάσης δεδομένων σε μια ξεχωριστή βιβλιοθήκη και στη συνέχεια να χρησιμοποιήσετε αυτήν τη βιβλιοθήκη σε όλες κωδικό μου. Όλες οι συνδέσεις βάσης δεδομένων γίνεται με τη χρήση πληκτρολογήσει TableAdapters που έχω δημιουργήσει με μεταφορά και απόθεση σε σύνολα δεδομένων σε VS2005, χρησιμοποιώντας μια σειρά σύνδεση από τις appSettings.


Το πρόβλημα που δεν ήταν σε θέση να λύσει είναι ότι .Net δεν διαδίδουν τις βιβλιοθήκες appSettings στον άλλο πρόγραμμα που το χρησιμοποιεί.


Εν ολίγοις, έχω μια βιβλιοθήκη επίπεδο της βάσης δεδομένων, MyProgram.DbLayer, το οποίο χρησιμοποιείται από άλλα έργα, όπως MyProgram.Client κ.λπ. Όταν είχα όλα τα σύνολα δεδομένων στην .Client η ConnectionString ήταν MyProgram.Client.exe.config έτσι ώστε θα μπορούσα να το αλλάξετε μετά την κατασκευή. Όταν μεταφέρθηκε στο MyProgram.DbLayer ότι η ρύθμιση δεν Διαθέσιμες για μένα αφού είχα χτίσει τα δυαδικά αρχεία.


EDIT: Αυτό φαίνεται να είναι ένα γενικότερο θέμα με ApplicationSettings.


Αυτό που παρατήρησα ήταν ότι αν το χέρι προσθέσετε μια ρύθμιση που χρησιμοποιείται μόνο σε μια βιβλιοθήκη θα διαβάσει σωστά. Το μόνο πράγμα που χρειάζεται τώρα είναι η ρύθμιση που θα συμπεριληφθεί αυτόματα στο αρχείο .config, καθώς και.
AppSettings / ConnectionStrings θα είναι πάντα να διαβαστούν από τον τρέχοντα πισίνα app.


Με αυτό εννοώ:


Αν έχω `A.exe`οποία έχει μια τάξη `DAL.cs`. DAL.cs διαβάζει ένα string σύνδεση από config, και επιστρέφει `"abc"`με τον αναμενόμενο τρόπο.


Στη συνέχεια μετακινήστε DAL.cs στο δικό του έργου του, και ως εκ τούτου, τη δική του συνέλευση. Μπορώ ακόμα να το έχουν καλέσει τη συμβολοσειρά σύνδεσης από app.config, όμως, **θα πρέπει να «φιλοξενούν» το συγκρότημα σε μια εφαρμογή που εκτελείται, και προσθέστε τη συμβολοσειρά σύνδεσης του εν λόγω αιτήσεις εφαρμογή ρυθμίσεων** . Έτσι, μπορώ να δημιουργήσω ένα νέο app.config και να καθορίσετε τη συμβολοσειρά σύνδεσης `"xyz"`σε αυτό, όταν τρέχει, τρέχει όπως αναμενόταν.


Τώρα, αν μπορώ να αλλάξω την αναφορά στο `A.exe`έργο να χρησιμοποιήσει το νέο `DAL.dll`, string ποια σχέση πιστεύεις ότι θα έχει; `"xyz"`; Οχι! Θα χρησιμοποιήσετε το `"abc"`όπως έκανε πριν, διότι αυτό εξακολουθεί να διαμορφώνεται στο αρχείο ρύθμισης παραμέτρων εφαρμογής για `A.exe`.


Ξέρω ότι αυτό λειτουργεί, επειδή χρησιμοποιείται από κοινού κωδικό DAL σε πολλές των Windows **και** τις εφαρμογές Web.


Εάν οποιαδήποτε από αυτό είναι ασαφείς, ή δεν βοηθά το πρόβλημά σας, παρακαλώ ενημερώστε με σχολιάζοντας αυτήν την απάντηση.


 Ενημέρωση παρακάτω σχόλιο από Ε.Π.


Με τον όρο «υποδοχής» Θέλω να πω μια εφαρμογή που καλεί το κοινό κώδικα. Αυτό μπορεί να είναι έναν υπολογιστή με Windows ή μια εφαρμογή Web, ουσιαστικά είναι το πλαίσιο εφαρμογής.


Θα χρειαστεί να δημιουργήσετε καταχωρήσεις στα αρχεία ρυθμίσεων για κάθε εφαρμογή που χρησιμοποιεί το κοινό κώδικα. Αν κατάλαβα καλά το αρχικό σας ερώτημα (απολύτως εφικτό, αυτό είναι μια μεγάλη μέρα!) Και θέλετε να συγκεντρώνει τη διαμόρφωση, καθώς, τότε θα πρέπει να:


* Δημιουργήστε κάποια μορφή κεντρικής αποθήκευσης (είτε πρόκειται για XML, η DB, οτιδήποτε).
* Βελτιώστε την κοινή κωδικό σας για να έχετε προκαθορισμένες τιμές ώστε να μπορεί να συνδεθεί με την κεντρική αποθήκευση.
* Από εκεί, ο κώδικας μπορεί στη συνέχεια να ρυθμίσετε τον εαυτό της, με βάση τις πληροφορίες στο κατάστημα διαμόρφωση.


Η ελπίδα αυτό βοηθά :)
ευχαριστώ για τις απαντήσεις και τις προτάσεις.

επειδή δε μπόρεσα να στήσω το windowappmenu όπως ήθελα, συνέχισα να παιδεύομαι με το default application panel και τελικά κατάφερα να το φτιάξω.

ήταν απλό τελικά…

αφού πατήσεις δεξί κλικ στο desktop και κάνεις “add panel > application menu bar”, το … <p><strong>παρακαλούμε ακολουθήστε τα παρακάτω βήματα για να το λειτουργήσετε (το έχω δοκιμάσει μέχρι το android studio 2.2)</strong></p><p>ας πούμε ότι έχετε κρατήσει aar αρχείο στο φάκελο libs. (υποθέστε ότι το όνομα του αρχείου είναι <code>cards.aar</code>)</p><p>στη συνέχεια, στην εφαρμογή <code>build.gradle</code> καθορίστε το ακόλουθο και κάντε κλικ στο έργο συγχρονισμού με τα αρχεία gradle. ανοίξτε το επίπεδο ανάπτυξης του έργου και προσθέστε το <code>flatdir{dirs 'libs'}</code> όπως παρακάτω</p><pre><code>allprojects { repositories { jcenter() flatdir { dirs 'libs' } } } </code></pre><p>και τώρα ανοίξτε το αρχείο εφαρμογής build.grdle και προσθέστε το αρχείο <code>.aar</code></p><pre><code> dependencies { compile(name:'cards', ext:'aar') } </code></pre><p>αν όλα πάνε καλά θα δείτε ότι η είσοδος της βιβλιοθήκης γίνεται στο build -&gt; exploded-aar</p><p>επίσης, σημειώστε ότι αν εισάγετε ένα αρχείο .aar από άλλο έργο που έχει εξαρτήσεις, θα πρέπει να το συμπεριλάβετε και στο build.gradle.</p> **Για την «ορθογραφία λάθος» μέρος (Μήπως εννοείτε)**


* Θα μπορούσατε να κάνετε κάποια `LIKE`ερωτήματα στο db π.χ. `LIKE %j%e%a%n%s%`, αλλά αν θέλετε να το κάνετε καλά, θα πρέπει να χρησιμοποιήσετε μια βιβλιοθήκη αναζήτησης όπως αυτό:


	+ <https://github.com/TomLingham/Laravel-Searchy>
	+ <http://tnt.studio/blog/did-you-mean-functionality-with-laravel-scout>



> 
> Μπορείτε να δημοσιεύσετε το αρχείο ρυθμίσεων στον κατάλογο της εφαρμογής σας και να παρακάμψετε τις ρυθμίσεις, εκτελώντας php τεχνίτη πωλητή: δημοσιεύει για να αντιγράψετε τις ρυθμίσεις στο φάκελο config σας όπως searchy.php
> 
> 
> Μπορείτε να ορίσετε το προεπιλεγμένο πρόγραμμα οδήγησης που θα χρησιμοποιηθεί για τις αναζητήσεις στο αρχείο ρυθμίσεων. Οι επιλογές σας (στην παρούσα φάση) είναι: ασαφή, απλό και Levenshtein.
> 
> 
> Μπορείτε επίσης να παρακάμψετε αυτές τις μεθόδους, χρησιμοποιώντας την ακόλουθη σύνταξη κατά την εκτέλεση μιας αναζήτησης:
> 
> 
> 


Με τον καθορισμό [Levenshtein απόσταση](https://en.wikipedia.org/wiki/Levenshtein_distance) μπορείτε να finetune πόσο μακριά μια λέξη μπορεί να είναι.


* Αν χρειάζεστε καλύτερη απόδοση θα πρέπει να εξετάσει κάτι σαν `solr`ή `elasticsearch`για το έργο αυτό.


<https://wiki.apache.org/solr/SpellCheckComponent>
<https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html>


**Για το τμήμα μετάφρασης**


Απλά θα πρέπει να έχει ένα λεξικό έτοιμο σε βάση δεδομένων ή εντοπισμό των αρχείων σας και εκτελέστε το χαμηλότερο σημείο εισόδου και αυτό. Αναμείνετε υψηλή φορές υπολογιστών τόσο για τη διόρθωση ορθογραφίας και της μετάφρασης στον κώδικά σας. <p>το .net 4.0 επιτρέπει στα πρωτεύοντα σύνολα interop (ή μάλλον, τα bits που χρειάζεστε) να ενσωματωθούν στη συνέλευση σας, ώστε να μην χρειάζεται να τα αναπτύξετε παράλληλα με την εφαρμογή σας.</p><p>για οποιονδήποτε λόγο, αυτή η συνέλευση δεν μπορεί να ενσωματωθεί - αλλά αυτό ακούγεται σαν να μην είναι πρόβλημα για εσάς. ανοίξτε την καρτέλα ιδιότητες για τη συνέλευση στο visual studio 2010 και ορίστε "ενσωμάτωση τύπων interop" σε "false".</p><p>edit: δείτε επίσης την <a href="https://stackoverflow.com/a/4553402/641833">απάντηση</a> του michael gustus, καταργώντας το επίθημα <code>class</code> από τους τύπους που χρησιμοποιείτε.</p> Προσθέστε οδηγός σας σε JMeter / lib φάκελο


Στη συνέχεια, προσθέστε μια [Διαμόρφωση JDBC σύνδεσης](https://jmeter.apache.org/usermanual/component_reference.html#JDBC_Request%20%20http://jmeter.apache.org/usermanual/component_reference.html#JDBC_Connection_Configuration) και συμπληρώστε:


* URL Βάση Δεδομένων: <https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html>
* JDBC Driver κατηγορία: com.mysql.jdbc.Driver
* σύνδεσης και τον κωδικό πρόσβασης
* Όνομα μεταβλητής θα εντοπίσει τη σύνδεση


Στη συνέχεια, προσθέστε μια [Αίτηση JDBC](https://jmeter.apache.org/usermanual/component_reference.html#JDBC_Request) κάτω από ένα [νήμα Ομάδα](https://jmeter.apache.org/usermanual/component_reference.html#Thread_Group)


και συμπληρώστε:


* Μεταβλητή Όνομα: ίδια τιμή με εκείνη στο JDBC Διαμόρφωση σύνδεσης
* Οι άλλοι τομείς που εξαρτώνται από το τι θέλετε να κάνετε


Διαβάστε αυτό το σεμινάριο:


* [http://jmeter.apache.org/usermanual/build-db-test-plan.html](https://jmeter.apache.org/usermanual/build-db-test-plan.html) Θα πρέπει να δώσετε περισσότερες πληροφορίες σχετικά με το περιβάλλον ανάπτυξής σας για να πάρετε μια συγκεκριμένη απάντηση.


Για παράδειγμα, με ένα C # έργο στο Visual Studio, μπορείτε να κάνετε δεξί κλικ στα Project-> Ιδιότητες και, στη συνέχεια, να συμπληρώσετε το πεδίο «Εντολή επιχειρήματα γραμμή» στην καρτέλα «Debug». Έχεις ενεργοποιήσει όλες τις σχετικές ρυθμίσεις στο προφίλ σου; <https://www.duolingo.com/settings/account> το πρόβλημα λύθηκε.

επειδή είχαν κολλήσει και οι ρυθμίσεις συστήματος και το xournal έψαξα στο internet και βρήκα

ότι για να ξεκολλήσουν οι ρυθμίσεις συστήματος να χρησιμοποιηθεί η εντολή

systemsettings5 --style=breeze

άλλαξα το global theme και όλα λειτουργούν κανονικά το βρήκα. είχα εγκαταστήσει την έκδοση 19.08.3 μέσω flathub.

την ξήλωσα και εγκατέστησα την 1.3.3 (?) από το αποθετήριο

και είναι οκ. εγώ που είναι ένα ανάλογο πρόβλημα στο arch (δεν έκλεινε το συρτάρι αν το άνοιγα) το διόρθωσα ως εξής:

έκανα αντίγραφο του αρχείου

60-cdrom\_id.rules

πιο συγκεκριμένα

sudo cp /usr/lib/udev/rules.d/60-cdrom\_id.rules /etc/udev/rules.d/

άνοιξε το με τον editor της αρεσκείας σου και βρες τη γραμμή

e…