
Whiz-zarD
Mitglieder-
Gesamte Inhalte
2076 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
50
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von Whiz-zarD
-
Tabellen in Html bzw. css
Whiz-zarD antwortete auf Britanny's Thema in Skript- und Webserverprogrammierung
Du erstellt mit HTML ein Tabelle und mit CSS passt du die mit deinem Designstil an. CSS ist eine Stylesheet-Sprache, mit der man das Erscheinungsbild von Elementen anpasst. Mehr ist CSS nicht. Kannst ja z.B. hier mal reinschauen, wie sie die Tabellen gestaltet haben -
Tabellen in Html bzw. css
Whiz-zarD antwortete auf Britanny's Thema in Skript- und Webserverprogrammierung
Mit CSS erstellst du keine Tabellen. Was genau hast du denn vor? -
C# OOP - Eure Meinung
Whiz-zarD antwortete auf Tician's Frage in Anwendungsentwickler und Programmierer
Dein Problem mit dem '\r' ist folgendes: Du hast ein String, der aus mehreren Zeilen besteht. Das Zeilenende unter Windows wird standardgemäß mit "\r\n" dargestellt. Das sind nicht-druckbare Steuerzeichen. Das \r steht für "cariage return" und das \n für "new line". Reguläre Ausdrücke werden aber standardgemäß pro Zeile ausgewertet und das eine Zeile wirklich beendet ist, leitet nur das \n ein. Somit bleibt \r stehen. Wenn du es unbedingt mit einen regulären Ausdruck ermitteln möchtest, dann musst du es so schreiben: Regex rsource = new Regex("(?<=Source\\=)[^\r]+"); Aber reguläre Ausdrücke würde ich persönlich vermeiden. Die versteht doch kein Schwein. Ich würde durch jede Zeile der Ini-Datei iterieren und jede Zeile per Split() mit dem '='-Zeichen teilen. So habe ich den Schlüssel und den Wert getrennt und kann damit arbeiten. Versuche aber mal die Settings und das Laden der Settings zu trennen. Also dass du eine Klasse Settings hast: public class Settings { public string source { get; set; } public string Destination { get; set; } } Und eine Klasse z.B. mit dem Namen SettingsLoader, die eine Methode bereitstellt, die die Settings aus der Ini-Datei lädt und dir eine Instanz vom Typ Settings zurückliefert. Also z.B: public class SettingsLoader { public Settings Load(string fileName) { ... } } So trennst du die Datenstruktur von der Logik. Angenommen, du hast neben der Ini-Datei als Quelle für die Einstellungen jetzt noch eine Datenbank. Dann müsstest du ja die Settings-Klasse um weitere Methoden aufblähen, die die Daten aus der Datenbank lesen und dann kommt vielleicht die dritte (z.B. aus Textboxen einer WinForms-Anwendung), vierte und fünfte Quelle. Dann wird die Klasse sehr riesig und unübersichtlich. Das möchte man aber nicht. Man sollte das Ziel verfolgen, eine Klasse so klein wie möglich zu halten. Einige sagen, eine Klasse darf nicht mehr als 200 Zeilen besitzen aber ich finde so dogmatisch sollte man es nicht halten, aber man sollte sich daran orientieren. Um also mehrere Quellen abzugrasen sollte man pro Quelle eine Klasse schreiben, die die Einstellungen einliest und zurückgibt. -
Festfahren in Details beim programmieren
Whiz-zarD antwortete auf Britanny's Thema in Coffeehouse's Themen
Schiffbruch ist für mich noch was anderes. Schiffbruch ist, wenn das Produkt schon beim Kunden ist und es beim Kunden nicht erwartungsgemäß läuft. Vielleicht verstehe ich den TE auch nur falsch. Ich habe es so verstanden, dass der TE nicht mehr weiß, wo vorne und hinten ist. Also mit so vielen Spitzfindigkeiten beschäftigt ist, sodass kein stabiler Zustand erreicht werden kann. Jede Änderung provoziert dann den nächsten Fehler. -
Festfahren in Details beim programmieren
Whiz-zarD antwortete auf Britanny's Thema in Coffeehouse's Themen
Ich sehe eigentlich keinen Grund, ein Fehlerfall nicht zu überprüfen. Wenn ein Fehler auftreten kann, so selten wie er auch sein mag, sollte man ihn auch abfangen. Man verrennt sich eigentlich nicht aufgrund der Menge der Fehler, die auftreten können, sondern aufgrund der Komplexität des Codes und die Komplexität erhöht sich wegen ganz anderen Dingen. -
Festfahren in Details beim programmieren
Whiz-zarD antwortete auf Britanny's Thema in Coffeehouse's Themen
Wie wahrscheinlich ein Fehler auftritt, kann man häufig auch gar nicht beurteilen. Ich habs auch schon erlebt, dass ein gesamtes Entwicklerteam der Meinung ist, dass bestimmte Konstellationen selten bis gar nicht auftreten und schwupps hatte schon die ersten Kunden diese Konstellation. Viele Fehler lassen sich schon damit abfangen, wenn man Programmierregeln aufstellt.z.B. dass Listen niemals Null sein dürfen oder dass Null kein gültiger Rückgabewert ist. Auch hilft Praktiken, wie TDD schon sehr gut, sich kurz zu halten. Fehler, die auftreten könnten, können auch somit leichter getestet werden. Wer kleine Schritt macht, der kann dann auch zwischenzeitlich sein Code refaktorisieren und kann dabei alle Testfälle immer wieder laufen lassen. -
Festfahren in Details beim programmieren
Whiz-zarD antwortete auf Britanny's Thema in Coffeehouse's Themen
Wenn man zu sehr in den Details feststeckt, dann sollte man sich überlegen, ob die Lösung überhaupt die richtige ist? Zu viele Details bedeutet oftmals auch zu viel Code, der auch instabil ist. Man will wohl zu viel auf einmal erledigen. Daher wäre es wohl ratsam, hier ein Schlussstrich runterzusetzen und noch mal die Aufgabe überdenken. Evtl. müssen die Teilschritte noch mal unterteilt werden. Ratsam wäre auch mit einem Kollegen über die Aufgabe zu sprechen. Oftmals kommen da Ideen, an die man nicht gedacht hat. Pair-Programming kann in solchen Situationen auch hilfreich sein. -
Wirtschaftsinformatik Ausbildung und dann FiAE?
Whiz-zarD antwortete auf wisdomsoz's Thema in Ausbildung im IT-Bereich
Und was soll daran schlecht sein? Behaupten kann man vieles aber gibt es dafür auch konkrete Gründe? Für die praktische Erfahrung muss man eh noch Praktika absolvieren. Ja, einige meiner damaligen Kommilitonen, die die Schule nach dem zweiten Semester abgebrochen haben, fanden die Schule auch schlecht. Das lag aber auch nur daran, weil sie nicht mitkamen und nicht gleich angefangen wird, Klicki-Bunti-Anwendungen zu schreiben. -
Wirtschaftsinformatik Ausbildung und dann FiAE?
Whiz-zarD antwortete auf wisdomsoz's Thema in Ausbildung im IT-Bereich
Wenn die Schule gut ist, ist dies gar nicht so unseriös. Zugegeben, der Kurvenverlauf ist wohl ein wenig zu steil aber das ist dennoch realistisch und würde sich auch mit meinen Erfahrungen decken. Vielfach habe ich das Gefühl, dass in Berufsschulen versucht wird, den letzten Deppen mitzunehmen, sodass man im Stoff gar nicht vorankommt, während in schulischen Ausbildungen der Unterricht straff getacktet ist und man weniger Rücksicht auf Schwächere nimmt. So kommt man im Stoff viel schneller voran und kann auch mehr Stoff einbringen. Meine Ausbildung dauerte 2 1/2 Jahre (5 Semester), wobei ich noch ein Semester rangehängt habe, um für die Abschlussprüfung genug Zeit zu haben. Ich habe im sechsten Semester also nichts anderes gemacht, außer Praktika und die Abschlussprüfung. In den 2 1/2 Jahren habe ich weitaus mehr gelernt, als viele FIAEler in den 3 Jahren. Das Entscheidene ist der Überblick, den man bekommt. Ein Azubi lernt in der Firma nur das, was die Firma auch einsetzt. Also ist die Qualität von der Firma abhängig und das schwankt sehr stark. Wenn eine Firma aber nur z.B. PHP und MySQL einsetzt, dann lernt der Azubi auch nur PHP und SQL. In meiner Assistenten-Ausbildung habe ich aber mehrere Sprachen gelernt: Pascal, Delphi, C, Java, PHP und SQL. Dann noch HTML, CSS und JavaScript nur rudimentär mit jQuery. Wir haben z.B. als Übung ein 2D Pacman und ein 3D Sokoban in C und OpenGL entwickelt. Mit PHP haben wir als Übung einen kleinen Bücher-Shop gebastelt. Als Seminar-Aufgabe musste ich in C ein Tool schreiben, was Bilder manipuliert (spiegeln, drehen, Graustufen bzw. Schwarz-weiß und skalieren). Die Algorithmen sollten wir selber dazu schreiben. Als weitere Aufgabe sollte ich das Spiel Carcasonne, mit grafischer Oberfläche (mit Delphi) programmieren. Darüber hinaus hat man uns noch Bildbearbeitung und Videoschnitt beigebracht (Die Adobe Produktpalette). Dazu zählte auch die Theorie, wie Bilder und Videos komprimiert werden. Es war ein großer Rundumschlag zum Thema "Medieninformatik" und vielen anderen Themen (z.B. Rechnernetze, Datenschutz, Marketing und Medienrecht) und das bietet keine betriebliche Ausbildung. Sehe ich genauso. -
Wirtschaftsinformatik Ausbildung und dann FiAE?
Whiz-zarD antwortete auf wisdomsoz's Thema in Ausbildung im IT-Bereich
Leider gibt es nicht viele Informationen auf der Webseite aber sie klingt erst mal nicht schlecht und ich denke, nach der Schule ist eine zusätzliche Ausbildung nicht notwendig und ich halte das dann auch für schwendete Zeit. Wenn, dann würde ich eher nach einem Studium ausschau halten, wenn du meinst, dass es nicht reicht. -
Wirtschaftsinformatik Ausbildung und dann FiAE?
Whiz-zarD antwortete auf wisdomsoz's Thema in Ausbildung im IT-Bereich
Erst mal habe ich zuvor eine betriebliche Ausbildung als Mechatroniker hinter mir. Ich kenne also das Leben als Azubi. Zweitens hatte ich im Laufe der Zeit schon einige Gesprächen mit so manchen FIAE-Azubis gehalten und irgendwie berichtet jeder von den selben Problemen. Drittens hatte ich mich mal in diesem Forum angemeldet, weil ich Informationen über die Ausbildung sammeln wollte, da ich vor habe, die Ausbildereignungsprüfung abzulegen aber in diesem Forum werden immer wieder die Dinge bestätigt, die auch zuvor die Azubis berichtet haben, mit denen ich gesprochen habe und das erschüttert mich doch sehr. Das mag vielleicht sein. Das kann ich so nicht beurteilen. Ich selber war auf einer Schule in Schleswig-Holstein und diese Schule genießt in Norddeutschland einen sehr guten Ruf und die Leute, die auf dieser Schule einen Abschluss gemacht haben, werden eher genommen, als jemand mit einer betrieblichen Ausbildung. -
Wirtschaftsinformatik Ausbildung und dann FiAE?
Whiz-zarD antwortete auf wisdomsoz's Thema in Ausbildung im IT-Bereich
Du frage ist, wie die tatsächliche Bezeichnung heißt? Es gibt die "staatlich geprüften Assistenten für Wirtschaftsinformatik" und umgangssprachlich werden sie auch Wirtschaftsinformatiker bezeichnet. So eine Ausbildung ist auch mit einer Fachinformatiker-Ausbildung gleichrangig. Je nach Schule im Lehrstoff sogar höherwertiger. Ich bin staatlich geprüfter Assistent für Medieninformatik und habe diese Entscheidung nie bereut. Im Gegenteil. Ich bin sogar eher froh darüber, diesen Weg gewählt zu haben, anstatt eine betriebliche Ausbildung. -
Wirtschaftsinformatik Ausbildung und dann FiAE?
Whiz-zarD antwortete auf wisdomsoz's Thema in Ausbildung im IT-Bereich
Wozu dann noch eine FIAE Ausbildung, wenn du später Wirtschaftsinformatiker bist? Das halte ich für Verschwendung. Darf ich fragen, welche schule du in Auge gefasst hast? Ich habe auch eine schulische Ausbildung abgeschlossen und würde diese Ausbildung einer betrieblichen Ausbildung immer wieder bevorzugen. -
Es wäre besser, wenn du immer den kompletten Code hier reinschreiben würdest. Mit Schnipseln, die sogar noch unvollständig sind, kann keiner was anfangen. Auch solltest du auf die Formatierung achten. Der Code kann noch so gut sein aber wenn dieser schlecht formatiert ist, ist er quasi unlesbar. Was mir aber ins Auge sticht, ist die Methode GetSource(). Die hat kein Rückgabewert, obwohl sie mit "Get" anfängt. Das spricht gegen die Erwartungshaltung der Methode. Get deutet immer auf eine Methode hin, die irgendwas zurückliefert aber das tut sie hier nicht.
-
Die zweite Variante würde ich nicht empfehlen, weil die Methode TuEtwas() zwei Dinge macht: Sie tut etwas und setzt die Eigenschaft. Sie besitzt also einen Seiteneffekt. Das Verhalten der Klasse hätte was "magisches". Beispiel: A a = new A(); Console.WriteLine(a.Nummer); // würde 0 ausgeben a.Nummer = 10; Console.WriteLine(a.Nummer); // würde 10 ausgeben a.TuEtwas(15); Console.WriteLine(a.Nummer); // würde plötzlich 15 ausgeben Jemand, der die Klasse A nur verwendet und nicht weiß, wie sie intern aufgebaut ist, fragt sich, wieso Nummer plötzlich 15 ist. Außerdem wird es ja einen Grund haben, wieso du die Eigenschaft definiert hast. Sie ist ja offenbar eine Konfiguration für diese Klasse, die von außen beeinflussbar ist. Methoden in Klasse A sollten daher den Wert nicht überschreiben, damit eben nicht dieser "magische Effekt" entsteht. Wenn der Parameter hingegen nur in der Methode TuEtwas() benötigt wird, dann kannst du die Eigenschaft ja auch weglassen, und die nummer, wie im zweiten Beispiel, in die Methode reinreichen.
-
Synchronisation einer Oracle DB mit einer MySQL DB
Whiz-zarD antwortete auf gluexxpirat's Thema in Abschlussprojekte
Ich nehme mal an, es handelt sich um eine FIAE-Ausbildung. Wieso bildet die Firma FIAEler aus, wenn keiner programmieren kann? Was lernst du in der Firma? Vor allem von wem? -
Synchronisation einer Oracle DB mit einer MySQL DB
Whiz-zarD antwortete auf gluexxpirat's Thema in Abschlussprojekte
Die Datenbank ist doch egal. Heutzutage unterstützen die meisten Anwendungen alle möglichen Datenbanken oder bringen die Datenbank selbst mit und wenn du schon in die Zukunft schaust, würde ich nicht auf mysql setzen, da die Zukunft um mysql ungewiss ist. Inzwischen geht der Trend weg von mysql. Wenn, dann solltest du lieber auf MariaDB oder PostgreSQL setzen. -
Synchronisation einer Oracle DB mit einer MySQL DB
Whiz-zarD antwortete auf gluexxpirat's Thema in Abschlussprojekte
Ich verstehe trotzdem das Problem nicht. Wenn sich die OracleDB ändern sollte, z.B. aufgrund eines softwareupdates, dann muss sich auch der sog. ETL-Prozess und ggf. auch die mysql Datenbank angepasst werden. Du hast hier so oder so aufwände. Es gibt auch Tools, mit denen man den ETL-Prozess konfigurieren und steuern kann. Z.B. Talend. Wenn ich noch richtig in Erinnerung habe, bietet talend auch eine Echtzeit Funktionalität. Vielleicht ist das ja das, was du suchst. Auch wäre es nicht schlecht, wenn du dich mal mit der rechtevergabe unter Oracle auseinandersetzt. Ich glaube, deine Befürchtung liegt eher darin, dass du Angst hast, jemand könnte die Daten manipulieren aber unter Oracle kannst du sehr feingranular die rechte vergeben. Du kannst auch einen read-only Nutzer anlegen, der nur lesezugriff auf bestimmte Tabellen bekommt. -
Synchronisation einer Oracle DB mit einer MySQL DB
Whiz-zarD antwortete auf gluexxpirat's Thema in Abschlussprojekte
Warum den Umweg über mysql? Warum greifst du nicht direkt die Daten von der Oracle Datenbank ab? -
Vorstellungsgespräch wegen Wetterlage verschoben - negatives Bild?
Whiz-zarD antwortete auf wisdomsoz's Thema in Ausbildung im IT-Bereich
Termine können immer kurzfristig platzen. Egal von welcher Seite aus. Ich denke mal, jeder wird es mal erlebt haben, dass eine Person aus der Firma, die eigentlich am Gespräch teilnehmen wollte, nicht konnte. So ist es nun mal und ich finde es auch nicht schlimm, wenn man rechtzeitig bescheid sagt. Bei Bewerbern um einen Ausbildungsplatz muss man eben damit rechnen, dass sie noch recht jung sind und keinen Führerschein besitzen und daher auf öffentliche Verkehrsmittel angewiesen sind. That's life ... -
Ist doch ganz gleichgültig, ob es ein Aushilfslehrer ist, oder nicht. Er soll die Schüler vernünftig unterrichten. Auch handelt es sich hier nicht um eine 7. Klasse, wo es scheißegal ist, ob sie Objektorientierung verstehen oder nicht, sondern es geht um Azubis, dies dies in ihrem Berufsleben brauchen. Der Lehrer springt aber von den Klassen zu Arrays, ohne überhaupt mal zu erklären, wozu überhaupt Klassen gedacht sind. Er verschiebt den Code nur von einer Klasse zur nächsten ... Ja, wow. Dafür brauche ich kein C#, sondern kann dafür auch eine prozedurale Sprache, wie z.B. Pascal, nehmen. Es hat doch keinen Sinn, eine Objektorientierte Sprache zu wählen, wenn man den Azubis nicht mal erklärt, was Objektorientierung überhaupt ist. Er springt auch mit den Themen kreuz und quer ohne einen roten Faden zu besitzen. z.B. von den erwähnten Klassen zu Arrays oder von der for-Schleife zu Modulo und von Modulo zur Random-Klasse. Was ist mit den anderen Arten von Schleifen? Von WinForms zu Boolesche Algebra. Was ist das denn für ein Unterricht? Man sieht ja, was dabei rauskommt, nämlich nichts ... Wenn man aber bei den Themen von Pontius zu Pilatus springt, nimmt man die schwachen Schüler nicht mit. Im Gegenteil. Sie verlieren schneller den Überblick, weil sie den Themen einfach nicht folgen können. Im Unterricht sollte ein roter Faden zu sehen sein und der fehlt hier komplett. Es wird irgendwie alles nur kurz angerissen ohne näher darauf einzugehen. Sorry, aber mit so einem Wissensstand kann man noch keine Programme mit C# schreiben, da einfach das komplette Wissen über Objektorientierung fehlt. Wenn man schon die Objektorientierung weglassen möchte, was bei Anfängern vielleicht durchaus verständlich ist, dann sollte man auch meiner Meinung nicht mit einer OO-Sprache anfangen, weil es sonst für Verwirrung sorgt. Bei meiner Assistenten-Ausbildung wurde auch mit Pascal anfangen aber Pascal ist heute wohl nicht mehr "fancy" genug. Meine damalige Ausbildung habe ich 2008 begonnen und 2011 abgeschlossen. Das Problem sieht man schon in diesem Video von ihm. Er beschreibt den Konstruktor falsch. Er implementiert einen Konstruktor, nur weil er Quelltext sparen möchte. Das ist aber nicht der Sinn und Zweck eines Konstruktors. Der Konstruktor ist dafür da, um ein Objekt zu initialisieren. Parameter reicht man dann in ein Konstruktor rein, wenn das Objekt Daten von außerhalb benötigt. Zwar hat er genau das vor aber er erwähnt es nicht. Seine Intention ist nur, dass er zwei Zeilen Code weniger schreiben möchte. Dies ist einfach unbrauchbar und sorgt auch nicht für ein besseres Verständnis, sondern für mehr Verwirrung. Je mehr ich mir die Unterlagen anschaue, desto mehr wird mir auch die Probleme von @Tician klar. Der Lehrer versucht zwar die Basics einer imperativen Programmiersprache zu zeigen, versucht aber gleichzeitig prozedural in einer reinen objektorientierten Sprache zu entwickeln. Das kann einfach nicht klappen, ohne dass es verwirrend wird. Da kommen wir wieder zu dem Problem, was ich oben erwähnte. Wenn man einfach nicht die Zeit hat, die Objektorientierung zu erklären, dann sollte man auch nicht mit einer objektorientierten Sprache anfangen, sondern mit einer rein prozeduralen Sprache. Auch das wichtigste Werkzeug eines Entwicklers, wird nicht mal besprochen: Der Debugger. Ohne den Debugger könnte kein Entwickler überleben aber nirgends wird mal der Debugger erwähnt und das Problem sieht man hier doch auch: Der TE ist nicht in der Lage, seinen eigenen Code zu debuggen. Taucht ein Fehler auf, ist der TE sofort aufgeschmissen. Mag sein, aber das Problem sieht man doch hier überdeutlich: Der TE hat zwar Interesse nach mehr und möchte in der Firma ein eigenes Programm schreiben aber eckt überall an, weil er/sie überhaupt kein Verständnis für die Objektorientierung oder für C# besitzt. Man kann nicht einfach eine rein objektorientierte Sprache nehmen und die Objektorientierung weglassen.
-
Die Folien sind aus meiner Sicht totale Grütze ... Die kann man vielleicht in der 7. Klasse verwenden, damit die Schüler ein bisschen Spaß haben können aber für Azubis sollte da schon mehr Niveau sein. Wo ist Vererbung? Polymorphie? Generics? Sorry, aber ihr lernt nicht mal Ansatzweise Objektorientierung. Geschweige denn richtig mit C# umzugehen. Auch wenn er aus der Java-Welt kommen sollte, hat er dennoch nicht das Zeug dazu, echt das richtig beizubringen. Java unterscheidet sich von C# nicht so sonderlich viel. Meiner Meinung nach ist das Bullshit. Wenn man die Syntax richtig erklären würde, dann würde man auch das Konzept hinter der Syntax verstehen und dann lösen sich Syntax-Fehler von alleine. Man braucht da nicht irgendwelche Regeln auswendig lernen. Die kommen von alleine, wenn man einmal die Syntax verstanden hat... Aber Gut zum Thema: Ja, das ist richtig. C# verfolgt aber das Ziel Daten grundsätzlich mit einem Zuweisungsoperator zu manipulieren, während Methoden eine Aufgabe darstellt, die mit den Daten arbeitet. Wenn man, wie in der Java-Welt, Getter- und Setter-Methoden schreiben würde, würde man die Manipulation von Daten und Methoden vermischen und somit hätte man kein gleichmäßiges Bild mehr. Darum abstrahiert C# die Getter- und Setter-Methoden.
-
Das explizite Schreiben von Getter- und Setter-Methoden ist in C# unüblich. Das macht man in der Java-Welt. Im Allgemeinen finde ich dieses pdf-Dokument sehr schlecht. Ein Variablenname sollte nicht den Datentypen beinhalten. Das schränkt zu sehr ein. Angenommen, du musst aufgrund von Änderungen den Datentypen ändern. Dann musst du auch über den Variablennamen ändern. Den Datentyp im Variablennamen stammt noch aus der Zeit, als es noch keine gescheiten IDEs gab und der Entwickler Hilfskonstrukte benötigte. Außerdem geht man gar nicht darauf ein, wieso die Semikolons falsch sind. Es ist zwar nur eine Wiederholung aber wenn man die Schüler erklären würde, dass ein Semikolon das Ende einer Anweisung darstellt, dann sollte sich das von selbst erübrigen.
-
Genau. Der Entwickler benutzt es wie Members. Der Kompiler macht daraus später Methodenaufrufe. WriteLine besitzt weitere Signaturen. Darunter auch eine Signatur, die der String.Format()-Methode entspricht. Die {0} ist ein Platzhalter und wird gegen den ersten parameter - also value - ausgetauscht. Strings zu konkatenieren (mit dem +-Operator zusammenfügen) sollte man vermeiden, Das liegt an der Eigenheit der Strings. Strings sind immutable. D.h. unveränderbar. Der +-Operator nimmt die Werte und baut daraus einen neuen String. In diesem Fall macht es wenig Probleme aber stelle dir mal vor, du führst dies mehrere Tausend mal hintereinander aus. Dann wird das irgendwann sehr langsam, weil jedes Mal ein neuer String gebaut wird. Darum gibt es z.B. die String.Format()-Methode und die StringBuilder-Klasse, um Strings zu generieren, ohne dass jedes Mal zwischendurch ein neuer String gebaut werden muss. Mit dem neuen C# 6.0 gibt es inzwischen auch eine weitere lesbarere Variante: Console.WriteLine($"Nummer gesetzt auf {value}"); Diese Variante nennt sich String Interpolation. Die String Interpolation beginnt mit einem $-Zeichen. Danach werden die Variablen, die ausgewiesen werden sollen, in geschweifte Klammern gesetzt.
-
Mag sein, dass die Prüfer da nicht ganz so streng draufschauen, aber ich finde den Antrag sehr fragwürdig. Auf der einen Seite wird die Software als riesiges, komplexes Konstrukt dargestellt aber auf der anderen Seite wird gar nicht auf die komplexität eingegangen. Als erstes die Projektbeschreibung: Sie wird dargestellt als würde die Software komplexe Strukturen der Projekt-Phasen in unterschiedlichen Firmen abbilden, kontrollieren und steuern können. Die Aufgabe des Azubis ist die Implementierung der Basisfunktionalität. Gut, lassen wir es einmal so wirken. Bis jetzt liest sich wie ein PR-Text eines Vertrieblers, der den Wunschzustand erwähnt aber wünschen kann man sich ja vieles. Zur Nutzen/Kostenberechnung sage ich mal nichts. Das würde jetzt den Rahmen sprengen. Punkt 2: Hier wird es mal etwas konkreter, was die Software können soll: Projekte anlegen Projekte verwalten (auf welche Weise auch immer?) Projekte tabellarisch oder als Ganttdiagramm darstellen Das wars? Wo ist die erwähnte Steuerung und Kontrollierung der Projekte? Und das soll dann verkauft werden? Okay, vielleicht ist das auch nur die Basisfunktionalität. Wer weiß? Punkt 3.1: Du erwähnst, dass das Projekt mittels dem Entwicklungsmodel des Wasserfallmodell und der agilen Entwicklung entwickelt werden soll. Beides schließt sich aber gegenseitig aus. Das Wasserfallmodel beruht auf sehr starren Phasen, während die agile Entwicklung bestmöglich gar nicht aus Phasen besteht. Agile Entwicklung beruht auf vier Grundsätze: Menschen und Interaktionen stehen über Prozessen und Werkzeugen Funktionierende Software steht über einer umfassenden Dokumentation Zusammenarbeit mit dem Kunden steht über der Vertragsverhandlung Reagieren auf Veränderung steht über dem Befolgen eines Plans Das Wasserfallmodell verstößt schon gegen drei der vier Grundsätze. Ich nehme mal an, du meinst eher das V-Modell. Punkt 3.2: Wieso wird so oft MySQL erwähnt? Mag ja sein, dass ihr MySQL verwendet aber ihr wollt die Software verkaufen, also muss sie auch mit anderen Datenbanken zurecht kommen. Angenommen, ein Kunde hat MSSQL oder OracleDB im Einsatz. Was dann? Punkt 3.3: In der Implementierungsphase wird mit vier Sätzen ein generisches Login-System beschrieben. Das Gantt-Diagramm muss mit einem Satz auskommen. Wie wird das Diagramm überhaupt generiert? Ist das eine HTML-Tabelle? Eine Grafik? Schreibst du die Bibliothek dafür selber? Wird da was fertiges verwendet? Die eigentliche Aufgabe der Software wird hier gar nicht beschrieben. Ist das generieren des Gantt-Diagramms überhaupt deine Aufgabe oder implementierst du nur das Login-System? Punkt 4: In der "Entwurf"-Phase designst du 9 Stunden lang Datenbank-Tabellen. Wozu? In der Phase "Implementierung" lässt du diese Tabellen mit dem Entity Framework generieren. Auch designst du in der "Entwurf"-Phase noch Views. Wozu? Weshalb? Welchen Grund haben die Views? Willst du die komplette Business-Logik als Views abbilden? Das halte ich für fatal. Ihr habt doch das mächtige Entity Framework und bitte sag mir jetzt nicht, dass ihr das Framework nicht richtig einsetzt und nur stumpf SQL-Queries mit der ExecuteQuery()-Methode ausführt. Fazit: In der gesamten Projektbeschreibung wird aus meiner Sicht überhaupt nicht klar, was du machen möchtest. Es wird eine angeblich riesige Software vorgestellt, die aber in Wirklichkeit nur sehr klein ist und auf deine Aufgabe gehst du nicht mal ein. Der Hauptaugenmerk liegt irgendwie beim Login-System aber das kann doch nicht deine einzige Aufgabe sein. Ansonsten das noch, was @stefan.macke schrieb.