Zum Inhalt springen

Whiz-zarD

Mitglieder
  • Gesamte Inhalte

    2076
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    50

Alle Inhalte von Whiz-zarD

  1. Du hast doch nur die zwei Möglichkeiten: Entweder du sorgst für eine Ausfallsicherheit (wie sie auch immer aussehen mag) und du hast die Daten redundant oder du sorgst dafür, dass der Abgleich der Datenbanken nicht stattfinden kann, wenn Datenbank B nicht zur Verfügung steht. Man kann ja nicht zaubern und ein Abgleich implementieren, der auf eine Datenbank zugreift, die nicht da ist.
  2. Man könnte es auch so machen, dass man von der View eine Tabelle auf Datenbank A erstellt und dann mit dieser Tabelle arbeitet. Wenn Datenbank B erreichbar ist, wird dann die Tabelle neu erstellt und wenn die dann nicht erreichbar ist, hat man weiterhin den Stand.
  3. Mocking-frameworks machen auch schon bei simplen Dingen Sinn, da der overhead sehr gering gehalten wird. Du musst einfach keine Klassen erstellen, in der vielleicht ein oder zwei Methoden implementiert sind, sondern du schreibst nur drei Zeilen Code.
  4. Wenn du das nicht weißt, wer dann? Wenn der Server zwei mal im Monat für eine gewisse Zeit offline ist, dann ist er ja für, sagen wir mal, 95% der Zeit online und da sollte man sich auch fragen, ob für die restlichen 5% überhaupt sich der Aufwand lohnt, irgendwas zu machen, wenn die Daten sich sowieso kaum ändern. Vor allem in der Zeit, wo er offline ist, die Daten sich sowieso nicht ändern.
  5. Wenn die Datenbank nicht erreichbar ist (was ich schon sehr merkwürdig finde), dann kannst du ja schlecht die Daten abrufen. Also muss eine Ausfallsicherheit geschaffen werden, z.B. einen weiteren Benutzer, wo die Daten redundant gespeichert werden.
  6. Was meinst du mit komplex? Bild-dateien könntest du mit Base64 kodieren und als ein CDATA-abschnitt in die XML-datei packen. Wenn die Texte mehrsprachig sein müssen, kannst du auch nur einen identifier in die XML-datei packen und dann für die Sprachen eine Ressourcen-datei anlegen oder du legst für jede Sprache ein eigenes Element in der XML-datei an. Wenn ich mich noch recht erinnere, dann müsste in Android auch SQLite integriert sein. Vielleicht ist das ein Stück eleganter. Es gibt hier nun mal keine einfache klicki-bunti-lösung. Da muss man dann selbst ran.
  7. Das ist dann mein Fehler in dem anderen Thread. Bei der Methode Show() wird die Form aus dem Speicher gelöscht, wenn sie geschlossen wird. Die richtige Methode wäre ShowDialog(). Hier wird die Form dann nur unsichtbar geschaltet, wenn sie geschlossen wird und besitzt dann ein DialogResult.
  8. Welche Gründe sprechen denn dagegen? Der initiale Aufwand? Wurde auch berücksichtigt, dass die App sich nicht alleine deployed? Jedes Mal eine neue App in den Store laden, wenn eine Erweiterung hinzugefügt wurde, halte ich für nicht zielführend. Schon mal davon ausgehen muss, dass nicht jeder die aktuelle App-Version besitzt und somit nicht alle Erweiterungen sieht. Eine REST-Schnittstelle zu implementieren ist jetzt auch nicht die Welt. Man braucht jetzt auch keine Datenbank aufsetzen. Eine XML- oder SQLite-Datei würde auch schon reichen. Alternativ lädt man nur die XML-Datei runter. Ein Apache-Server ist binnen wenigen Minuten aufgesetzt und ein HTTP-Request ist mittels Java auch ein Ein-Zeiler. Über die Zeit gesehen ist dieser Aufwand geringer, als immer eine neue App in den Store zu laden.
  9. Naja, es werden doch mal weitere Erweiterungen hinzukommen, oder nicht? Daher ist so etwas ja nicht unbedingt statisch und sollte auch nicht in der App hinterlegt werden, sondern sollte über eine REST-Schnittstelle abgerufen werden. Ansonsten müsste man bei jeder neuen Erweiterung eine neue Version der App ausliefern. Ich könnte mir da sowas wie OData vorstellen.
  10. Das Problem ist, du rufst die Konstruktoren immer wieder neu auf. Du hast hier ein Zirkelschluss produziert. Wenn du Settings instanziierst, wird im Konstruktor Form1 instanziiert und Form1 instanziiert wiederrum Settings, usw. usw. Ich nehme mal an, dass Form1 dein Hauptfenster ist und in Form1 Settings aufgerufen werden soll. Settings darf von Form1 nichts wissen. Wozu auch? Und wenn Settings unbedingt Form1 kennen muss, dann musst du Form1 als Abhängigkeit reinreichen. public Settings(Form mainForm) { InitializeComponent(); this.mainForm = mainForm iniText = form1.GetIniText(); } Aber selbst das würde ich nicht tun. Ich würde beim Aufruf von Settings den iniText reinreichen: public Settings() { InitializeComponent(); } public string IniText { get { return this.iniTextTextBox.Text; } set { this.iniTextTextBox.Text = value; } } Dann würde ich Settings so aufrufen: Settings settings = new Settings(); settings.IniText = "foo bar"; settings.Show(); Damit ist Settings nicht von Form1 abhängig.. Dies ist jetzt nur eine abgespeckte Version, um das Prinzip etwas zu verdeutlichen. Wenn du es wirklich elegant lösen willst, dann informiere dich über MVP (Model-View-Presenter).
  11. Dann musst du mal erklären, was du unter "Set" verstehst und was du damit machen möchtest. Natürlich kannst du dir auch eine XML-Datei schreiben und diese dann Parsen. Unter Java kannst du auch JAXB oder XMLBeans verwenden. Das sind Frameworks, mit der du XML-Elemente direkt mit Java-Klassen binden kannst. Das hat den Vorteil, dass du die Eigenschaften anpassen kannst, ohne gleich neu kompilieren zu müssen. Ansonsten musst du das Parsen selbst übernehmen; z.B. mit SAX. So oder so entspräche dies eher dem Open-Closed-Prinzip.
  12. Ja, ein Mocking-Framework nimmt dir dort viel Arbeit ab. Das erfordert aber, dass du für jede Abhängigkeit immer ein Interface bereitstellst. Dann kannst du ein Mocking-Framework benutzen und über das Framework bestimmen, wie die einzelnen Methoden reagieren sollen. Welches Framework unter Java empfehlenswert ist, weiß ich leider nicht aber offenbar wird häufig JMockit oder Mockito verwendet.
  13. Da liegst du richtig, dass man es so nicht macht. Ich schreibe hier gerade vom Smartphone aus, deswegen kann ich gerade kein Beispiel schreiben, aber das was zu suchst, nennt sich unter Java HashMap. Kannst ja mal danach suchen.
  14. Ich denke dann mal wohl, dass die Bearbeitung per Hand erfolgt und deshalb die XML-Dateien sortiert haben möchte, damit man sich besser orientieren kann. Das ist also mehr ein organisatorisches Problem und kein technisches.
  15. Ein Shopsystem, was mit XML-Dateien rumhantiert und über die XML-Datei werden die Produkte sortiert, wie sie dann in der Oberfläche angezeigt werden? O_o Klingt sehr abenteuerlich. Schon mal ich dafür wohl nicht XML nehmen würde, sondern JSON, weil das Format kompakter ist.
  16. Wozu muss eine XML-Datei sortiert werden?
  17. Vielleicht wäre es angebracht, dass du dich erst mal mit C# beschäftigst (Bücher, Tutorials, etc.), denn offenbar scheitert es schon am Verständnis dieser Sprache bzw. am Verständnis der Objektorientierung.
  18. Mehr fällt mir dazu nicht mehr ein ... Kannst du es auch mal mit ordentlichen und vernünftigen Worten schreiben, was du überhaupt wissen möchtest? Wenn ich mir aber den wüst an Spaghetticode anschaue, dann denke ich mal, dass du es nicht kannst.
  19. Auch wenn sich das erledigt haben sollte, ist die Tabelle Anwalt_1 unnötig, da alle Informationen schon in der anwalt-tabelle stecken. Außerdem sind die ganzen Präfixe unnötig, da sie zu viel Schreibarbeit benötigen. Wenn man die Tabellen joinen und dann auseinander halten möchte, so gibt es schon in der SQL-abfrage dafür Möglichkeiten.
  20. Whiz-zarD

    Geld

  21. Und was möchtest du jetzt wissen? Darüber hinaus kommt mir die Aufgabe sehr bekannt vor. Es ist die selbe, die ich damals im Studium in der C-Übung machen musste. Keine Ahnung, wie es hier aussieht, wenn man ganze Aufgaben von anderen Leuten gelöst haben möchte. In anderen Foren wird der Thread geschlossen.
  22. Warum willst du überhaupt FIAE lernen, wenn du mit deinen 27 Jahren nicht mal ansatzweise mit Softwareentwicklung in Berührung kamst? Was versprichst du dir dadurch? Wie stellst du dir den Beruf überhaupt vor? Attraktiv machst du dich nicht mit der Sprache, mit der du entwickelst, sondern wie du mit der Sprache umgehst, denn man kann vieles falsch machen. Ich habe hier auch einige Arbeitskollegen, die zwar deutlich mehr Berufserfahrung haben als ich aber denen ich gerne die Tastatur wegnehmen würde, weil da hauptsächlich nur unwartbarer Spaghetticode rauskommt. In meinen Augen sind das einfach keine guten Entwickler, auch wenn sie schon seit 15 Jahren als Entwickler arbeiten. Neben der Sprache sollte man sich also auch kontinuierlich weiterentwickeln, was die Softwarequalität angeht, z.B. In der objektorientierten Welt haben sich die SOLID-Prinzipien sehr gut bewährt und die sollte man dann auch einhalten. Auch Unittests sollte man immer im Auge halten und diese auch schreiben. Dazu gibt es dann ja auch Techniken, die einen zwingen, Unittests zu schreiben, wie z.B. TDD (Test-driven Development). Wie man aber mit einer Sprache umgeht, lernt man aber nicht aus Büchern, sondern hier ist Erfahrung wichtig. Erfahrung, die du aber nicht hast. Es gibt zwar Bücher über Clean Code, SOLID und Softwarequalität aber die können nicht für jede Situation das passende Beispiel bringen.
  23. 30 der 40 Bewerbungen sind nur unterer Durchschnitt. Als ich damals ein Ausbildungsplatz gesucht habe, hatte ich bei 100 aufgehört, die Bewerbungen durchzunummerieren. Ich denke mal, dein Problem ist, dass im Lebenslauf kein roter Faden zu sehen ist. Das ist heutzutage sehr wichtig. Im Lebenslauf muss erkennbar sein, in welche Richtung du dich entwickeln möchtest, aber den sieht man hier nicht. Vor allem nicht für einen FIAEler. Erst ein abgebrochenes Soziologie-Studium, dann Job im Call-Center und dann noch ein abgebrochenes Lehramtsstudium in Wirtschaft/Politik, Geschichte. Hier gibt es nichts, was mit Informatik im entferntesten zu tun hat. Du magst dich vielleicht für Videospiele interessieren und hast auch mal ein CMS aufgesetzt und bastelst Rechner zusammen aber das reicht heute nicht mehr aus, denn das können auch schon 14-jährige, die sich für diese Themen interessieren. Die können sogar noch vieles mehr. Schaue dir z.B. mal die Projekte bei Jugend hackt an. Du kannst offenbar auch nichts in Richtung Softwareentwicklung vorweisen, was dich von den anderen hervorhebt. Du hast wohl auch noch nie ein Stück Software selbstentwickelt. Warum sollte man dich dann nehmen wollen? Wenn ich als Arbeitgeber deine Bewerbung lesen würde, würde ich mich schon fragen, ob du die Ausbildung überhaupt durchziehst? Auch wenn es hart klingen mag aber du hast bis jetzt nichts beenden können. Ob es dafür gute Gründe gibt, sei mal dahingestellt. An deiner Stelle würde ich eher schauen, ob du nicht ein Studienplatz finden könntest, denn ich denke dort hättest du mehr Erfolg. Vielleicht kann man dort auch von deinen vorherigen Studium was anrechnen lassen. Mit einem abgeschlossenen Informatik-Studium wäre zumindest eine Tür offen.
  24. Mit dem Buch bist du schon sehr gut unterwegs, auch wenn das Buch mehr C#-lastig ist. Das war auch meine Lektüre zu diesem Thema und wird auch von vielen empfohlen. Im Buch wird das Dependency Injection Muster erläutert. Beim Dependency Injection werden Abhängigkeiten in die Klasse reingereicht. Man schreibt also z.B. nicht public Class PersonRepository implements IRepository { private final IDatabase database; public PersonRepository { this.database = new Database(); } ... } sondern public Class PersonRepository implements IRepository { private final IDatabase database; public PersonRepository(IDatabase database) { this.database = database; } ... } Man kehrt also die Abhängigkeiten um, indem die Klasse gar nicht die konkrete Implementierung der Abhängigkeiten kennt, sondern nur gegen Interfaces arbeitet und die konkrete Implementierung reinreicht. Man spricht dabei auch vom Dependency-Inversion-Prinzip und das macht das Testen der PersonRepository-Klasse viel einfacher, weil man jetzt in diesem Fall tatsächlich die Datenbank mocken kann. In der richtigen Anwendung reicht man vielleicht die Klasse MySqlDatabase rein und im Test MockedDatabase, die nichts anderes tut, als Textausgaben auf der Konsole zu machen, die der Unittest dann testet. Andere Tests wiederrum testen die MySqlDatabase-Klasse, indem sie schauen, dass z.B. die richtigen Tabellen angelegt worden sind. Fürs Dependency Injection Muster gibt es auch diverse Frameworks (sog. IoC Container (IoC = Inversion of control)), die einem das Leben erleichtern. Mit Hilfe eines Bootstraping-Verfahrens wird dann beim Starten der Anwendung die Abhängigkeiten der einzelnen Klassen aufgelöst und das Framework instanziiert und initialisiert die Klassen mit allen ihren Abhängigkeiten. Die Java-Welt ist nicht so ganz meine Welt, daher kenne ich mich dort mit den Frameworks nicht so gut aus, aber dort gibt es ja z.B. Spring, Pico Container oder Guice.
  25. CSS ist ja keine Programmiersprache sondern nur eine Auszeichnungssprache. Welche Eigenschaft für was ist, lernt man in laufe der Zeit. LESS ist ja nur ein Prä-Prozessor für CSS, der einem das Entwicklerleben ein wenig vereinfacht, indem u.a. Variablen möglich sind. So kann man z.B. für bestimmte Farben variablen hinterlegen. Aus dem LESS-Code wird nachher die CSS-Datei generiert. Man kann die CSS-Datei aber auch per Hand schreiben. Von C# nach PHP zu wechseln ist auch ein herber Rückschritt. PHP ist eine der grauenvollsten Sprachen, die ich jemals gesehen habe. Die Sprache hat keine Struktur und Ordnung. Strukturierte-, und objektorientierte Programmierung wird bunt gemischt. Man hat immer das Gefühl, man hackt irgendwas zusammen und es fühlt sich nicht richtig rund an. Die Syntax sollte dir aber kaum Probleme bereiten, da beide Sprachen ihren Ursprung bei C haben. Ich würde dir eher empfehlen, mal ein Tutorial durchzuarbeiten, was dir die Eigenheiten von PHP erklärt und dann von einem Mitarbeiter die Architektur erklären lassen, die sie einsetzen und sich dann so nach und nach rantasten.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...