Uwe Klappert. Coding For Fun mit C#

Größe: px
Ab Seite anzeigen:

Download "Uwe Klappert. Coding For Fun mit C#"

Transkript

1

2 Uwe Klappert Coding For Fun mit C#

3 Liebe Leserin, lieber Leser, ich freue mich, dass Sie sich für dieses Coding for Fun-Buch entschieden haben. Sie sind Programmierer aus Berufung und Ihnen macht es Spaß, Aufgaben programmierend zu lösen? Dann sind Sie hier genau richtig! Dieses Buch bietet Ihnen sechs ungewöhnliche Programmierprojekte an, die Sie (Programmiererfahrung vorausgesetzt) ganz einfach nachvollziehen können. Die Projekte haben nur das eine Ziel: Sie zu unterhalten und zum Knobeln und Ausprobieren anzuregen. Wir versprechen Ihnen keine schlanken Lösungen, keine Snippets, die sie beruflich verwenden könnten, sondern reinen Programmierspaß. Dabei sind die Projekte so unterschiedlich und abwechslungsreich wie Aprilwetter: Eine Poker-Runde gefällig? Abendstimmung mit Sternenhimmel oder lieber Wecker-Tool? Oder wollten Sie schon immer den DAX manipulieren? Legen Sie einfach los. Die aktuelle und für die Beispiele benötigte Visual Studio Express Edition 2010 und der Beispielcode liegen auf der Buch-DVD für Sie bereit. Noch eine Anmerkung in eigener Sache: Dieses Buch wurde mit großer Sorgfalt geschrieben, begutachtet, lektoriert und produziert. Doch kein Buch ist perfekt. Sollte also etwas nicht so funktionieren, wie Sie es erwarten, dann scheuen Sie sich nicht, sich mit mir in Kontakt zu setzen. Ihre freundlichen Fragen und Anmerkungen sind jederzeit willkommen. Viel Freude beim Lesen und Programmieren wünscht Judith Stevens-Lemoine Lektorat Galileo Computing Galileo Press Rheinwerkallee Bonn

4 Auf einen Blick 1 Einleitung Die Sache mit.net Ausgeschlafen das Wecker-Tool Alles Täuschung oder was? Herr Hermann und sein Gitter Mit Argusaugen der nächtliche Sternenhimmel Garantiert ungefährlich Manipulationen am DAX Im Labyrinth des Minotaurus Pokern A Visual C# 2010 Express

5 Der Name Galileo Press geht auf den italienischen Mathematiker und Philosophen Galileo Galilei ( ) zurück. Er gilt als Gründungsfigur der neuzeitlichen Wissenschaft und wurde berühmt als Verfechter des modernen, heliozentrischen Weltbilds. Legendär ist sein Ausspruch Eppur se muove (Und sie bewegt sich doch). Das Emblem von Galileo Press ist der Jupiter, umkreist von den vier Galileischen Monden. Galilei entdeckte die nach ihm benannten Monde Gerne stehen wir Ihnen mit Rat und Tat zur Seite: bei Fragen und Anmerkungen zum Inhalt des Buches für versandkostenfreie Bestellungen und Reklamationen für Rezensions- und Schulungsexemplare Lektorat Judith Stevens-Lemoine Fachgutachten Thomas Theis, Monschau Korrektorat Friederike Daenecke, Zülpich Cover Barbara Thoben, Köln Coverillustration Graham Geary, Boston Typografie und Layout Vera Brauner Herstellung Frauke Kaiser Satz Typographie & Computer, Krefeld Druck und Bindung Bercker Graphischer Betrieb, Kevelaer Dieses Buch wurde gesetzt aus der Linotype Syntax Serif (9,25/13,25 pt) in FrameMaker. Gedruckt wurde es auf chlorfrei gebleichtem Offsetpapier. Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über abrufbar. ISBN Galileo Press, Bonn Auflage 2010 Das vorliegende Werk ist in all seinen Teilen urheberrechtlich geschützt. Alle Rechte vorbehalten, insbesondere das Recht der Übersetzung, des Vortrags, der Reproduktion, der Vervielfältigung auf fotomechanischem oder anderen Wegen und der Speicherung in elektronischen Medien. Ungeachtet der Sorgfalt, die auf die Erstellung von Text, Abbildungen und Programmen verwendet wurde, können weder Verlag noch Autor, Herausgeber oder Übersetzer für mögliche Fehler und deren Folgen eine juristische Verantwortung oder irgendeine Haftung übernehmen. Die in diesem Werk wiedergegebenen Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. können auch ohne besondere Kennzeichnung Marken sein und als solche den gesetzlichen Bestimmungen unterliegen.

6 Inhalt 1 Einleitung Grundlegendes zu diesem Buch Abseits von Klassen und Methoden Eine notwendige Frage: Die Zielgruppe? Die Sache mit.net Intelligent, aber nicht unergründlich das.net-framework Sprachgewaltig: die Laufzeitumgebung Ein Meer von Klassen die Base Class Library (BCL) Zwischengeschoben der IL-Code Kein Fabelwesen der Jitter Ein Raum ohne Tür der Namensraum Ein Wort wie ein Kosename Assembly Die»digitale Müllabfuhr«der Garbage Collector Das Salz in der Suppe Steuerelemente NET und kein Ende? Aus der Art geschlagen die Sprache C# Musik im Namen Ein Kessel Buntes die Ursprünge der.net-sprache C# Ein heikler Punkt Pointer Ein geheimnisvoller Verein Delegates Ereignisbehandlung Ausgeschlafen das Wecker-Tool Als der Computer die Zeit entdeckte Die Entwicklung der Bedienoberfläche Anlegen eines neuen Projekts Die benötigten Steuerelemente Ein EventHandler für das Beenden der Anwendung Implementierung und Test der Zeitanzeige Von der Zeitanzeige zur Implementierung einer Uhr Zahlen für das»numericupdown«-control Mehr Lärm als Melodie»tada«und»ir« In einem Aufwasch Einstellen der Weckzeit und Auslösen des Wecktons Stop and Go das Beenden des Wecktons Hätten Sie s gewusst?

7 Inhalt 4 Alles Täuschung oder was? Herr Hermann und sein Gitter Die Entdeckung der geheimnisvollen Punkte Kaffeestunde beim Optiker woher die Punkte kommen Entwicklung der Benutzeroberfläche Was beabsichtigt ist Die beteiligten Controls Entwicklung der Programmierlogik Viel Aufwand für den Hintergrund Zeichnung und Positionierung der Gitterquadrate Der Schalter für das Hermann-Gitter Ganz schön blass geworden die Regelung des Alpha-Werts Aus groß mach klein Skalierung der Quadrate durch ein TrackBar-Steuerelement Die Verhältnisse auf den Kopf gestellt Umkehrung der Farben Hätten Sie s gewusst? Mit Argusaugen der nächtliche Sternenhimmel Wie alles begann Stippvisite in Padua Subtil und verspielt wo wir hin wollen Weitere Anforderungen an die Anwendung Entwicklung der Benutzeroberfläche Entwicklung der Programmierlogik Ein Klasse mit Ambitionen Creating Zurück zur Klasse»Form1« Sterne der 1. Kategorie Sterne der 2. Kategorie Zu guter Letzt ein Stern der 3. Kategorie Verzögertes Schließen der Anwendung Aufgehoben ist nicht aufgeschoben die Klasse»DelayTime« Hätten Sie s gewusst? Garantiert ungefährlich Manipulationen am DAX Im Schmelztiegel des großen Geldes Xetra das elektronische Hirn der Börse Am Puls der Wirtschaft der DAX

8 Inhalt 6.2 Was angedacht ist Entwicklung der Benutzeroberflächen Das Fenster»Data« Das Fenster»DAX« Entwicklung der Programmierlogik Das große Zeichnen die Klasse»Chart« Hätten Sie s gewusst? Im Labyrinth des Minotaurus Und dann kam Dijkstra Ein Quäntchen Graphentheorie Dijkstra in Worten Listenplätze »Verworrene«Absichten »Schwaches Knotenkriterium« Nullsummenspiel Wie es weiter geht Entwicklung der Benutzeroberfläche Ein Fall für sich das»tablelayoutpanel« Labels am laufenden Band Drei Buttons und ein Textfeld Entwicklung der Programmierlogik Gute Eigenschaften Definition der Knoten im EventHandler»button1_Click()« Ausblenden der Knoten im EventHandler»button2_Click()« Die Schaltfläche zum kürzesten Weg Hätten Sie s gewusst? Pokern Die Hand am Colt Five Card Draw Die Regeln beim Five Card Draw Gewichtete Hände Draw Poker Light unser Spiel Die Wahl des Gegners Erzwungener Tausch Die Frage des Geldes Entwicklung der Benutzeroberfläche Vom Ordner zur Bedienoberfläche

9 Inhalt 8.4 Entwicklung der Programmierlogik Addition und Subtraktion der Ereignisbehandler»numericUpDown1_ValueChanged()« PictureBoxen aufgelistet die Methode»pictureboxList()« Einsatz des Kartengebers Basisarbeit die Klasse»kartenListe« Zurück in der Klassendatei»Poker.js« Tauschgeschäfte 1 EventHandling für fünf PictureBoxen Tauschgeschäfte 2 die Klasse»tauscheKarten« Tauschgeschäfte 3 das finale Ereignis Reduzierte Menge die Klasse»kartenKombinationen« Wie viel auf dem Spiel steht die Struktur»wertigkeitHand« Schnelles Plätzetauschen die Klasse»permutKarten« Gewonnen oder verloren die Klasse»evaluiereHand« Letzte Schritte im EventHandler»tauschen_Click()« Die»Konditionierung«des Spiels Mit»this«und»Close()«zum geschlossenen Fenster Hätten Sie s gewusst? Zum guten Schluss A Visual C# 2010 Express A.1 Anwendungen, die mit Visual C# 2010 Express erstellt werden können A.2 Reduzierter Funktionsumfang A.3 Neues bei Visual C# 2010 Express A.4 Der Weg zu Visual C# 2010 Express A.4.1 Was ist ein ISO-Image? A.4.2 Brennen einer Visual C# 2010 Express-CD A.4.3 Die Alternative virtuelle Festplatte A.5 Installation von Visual C# 2010 Express A.6 Das Prinzip der integrierten Entwicklungsumgebung A.6.1 Projekte mit System A.6.2 Quell- versus Entwurfsmodus A.6.3 Unverzichtbar das»eigenschaften«-fenster A.7 Veröffentlichung einer Anwendung Index

10 Wenn Baumeister Gebäude bauten, so wie Programmierer Programme schreiben, dann würde der erste Specht, der vorbeikommt, die Zivilisation zerstören. (Verfasser unbekannt) 1 Einleitung»Coding for Fun mit C#«kann Sie, liebe Leserinnen und Leser, leider nicht in die Situation versetzen, ein Programm zu entwickeln, das New Yorks riesige Ampelschar koordiniert. Auch werden Sie am Ende der Lektüre nicht befähigt sein, Klassen, Methoden und Eigenschaften zu entwickeln, die im sinnvollen Zusammenspiel das erste Vorhandensein Ihres Geburtsjahrs im Nachkommabereich der unendlichen, weil irrationalen Zahl Pi ermitteln. Und auch die immerhin Zeilen lange, jedoch keineswegs fehlerfreie Flugsoftware des betagten Space Shuttle (die in HAL, einer FORTRAN-ähnlichen Sprache implementiert ist) werden Sie nach dem Durcharbeiten der Lektüre nicht so ohne Weiteres auf C# portieren können. Das alles ist auch nicht unbedingt Ihre Erwartung? Gut so, denn das angenehm Knifflige eines programmiertechnischen Problems wächst nicht zwangsläufig mit der Dimension der definierten Aufgabe. Natürlich verfällt dieses Buch auch nicht ins Gegenteil. Aus dem zerstörerischen Specht wird nicht klammheimlich eine Biene werden. Die Mauern der Zivilisation stürzen nicht ein, weil Sie womöglich genötigt werden, wild darauflos zu programmieren. Ihr Wohlergehen ist demnach nicht gefährdet. Und vielleicht, ja vielleicht empfinden Sie nach sorgfältigem Durcharbeiten eines, mehrerer oder gleich aller Beispiele erst recht ein gewisses Unverständnis gegenüber dem sicherlich übertriebenen Zitat zu Beginn dieses Vorworts. Der kleine Anleser dürfte Sie darüber hinaus eher an die Zeiten bester»spaghetti-codierung«erinnern, als das Objekt der gesamte Quellcode und alles irgendwie eine zumindest aus heutiger Sicht schmunzelwürdige Klasse für sich war. Bei uns wird es beträchtlich strukturierter zugehen, was sich allein schon aus der Sprache ergibt, die zum Einsatz kommt: C#. 9

11 1 Einleitung 1.1 Grundlegendes zu diesem Buch Praxisorientierte IT-Literatur folgt im Wesentlichen zwei Richtungen. Die eine mündet im Entwicklungsprozess eines ausführlichen Praxisbeispiels, die andere in mehreren, thematisch voneinander abgegrenzten Programmen. Beide Ansätze haben sowohl ihre didaktische Berechtigung als auch nicht zu unterschätzende Vorteile.»Coding for Fun mit C#«verwirklicht das zweite Konzept. Inhaltlich wohlunterscheidbare, vollkommen unabhängige Praxisbeispiele geben Ihnen die Möglichkeit, sich entweder erfolgreich auf gleich mehreren oder auf ausgesuchten Feldern zu versuchen. Terra incognita bleibt da nichts, wenn Sie das nicht wollen. Ganz gleich, ob Sie gern ein Wecker-Tool entwickeln, das angenäherte Abbild des abendlichen Sternenhimmels implementieren oder sich auf dem Bildschirm Punkte ansehen möchten, die Ihnen das Auge (selbst das fehlerfreie) vorgaukelt; diesbezüglich und darüber hinaus bleibt Ihre Suche nach Interessantem nicht erfolglos. Und schließlich: Ein wenig Fantasie, gepaart mit der Fähigkeit zur Extrapolation, vorausgesetzt, kann jedes der Praxisbeispiele auf eigene Szenarien übertragen werden. Sie müssen keine DAX-Kurve mögen. Irgendetwas wird sich aber sicher finden, das Sie gerne als Chart dargestellt sähen. Vielleicht können Sie sogar auf diese Weise darstellen, wie oft Sie bei jedem Kapitel gedacht haben:»das hätte ich aber anders gemacht.«es stimmt ja auch! Doch bitte: Viele Wege führen nach Rom auch Programmierwege. Ferner wurden die Beispiele mit dem Anspruch gewählt, dass die Codierung möglichst einfach nachvollziehbar sein soll. Dass dieser Anspruch zuweilen auf Kosten dessen geht, was man als Programmierästhetik bezeichnen könnte, räume ich an dieser Stelle (mit der Bitte um Nachsicht) ein. In dem Zusammenhang erinnere ich mich jedoch gerne an die Bemerkung eines Kommilitonen, nach der nicht für jede Addition eine eigene Klasse entwickelt werden muss. Er hatte recht, obgleich ich ihm damals nicht so ohne Weiteres beipflichten mochte. 1.2 Abseits von Klassen und Methoden Ihr literarischer Neuerwerb ist kein Fachbuch. Wenigstens keines im klassischen Sinne. Alles Wissensnotwendige erfahren Sie natürlich dennoch, eingeleitet durch kurzweilig gehaltene Informationen, die das jeweilige Programmiervorhaben einleiten. So schadet es nicht, wenn Sie beispielsweise etwas von der lange zurückliegenden Existenz eines computerähnlichen Geräts erfahren, das in einer ganz eigenen Beziehung zur Zeit stand. Auch wenn technische Welten Ihren und meinen Computer von jenem Exponat der Frühzeit trennen, so ist der Abstand 10

12 Eine notwendige Frage: Die Zielgruppe? 1.3 zwischen den am Abendhimmel sichtbaren Fixsternen und Ihren Augen noch viel größer. Wie sich Galileo den vermeintlich unendlichen Weiten näherte selbst darüber erfahren Sie mehr. 1.3 Eine notwendige Frage: Die Zielgruppe? Die Zielgruppe des Buches sind vor allem Sie. Warum? Weil Sie ein grundlegendes Interesse an den sogenannten.net-sprachen (über den Begriff wird noch zu schreiben sein) im Allgemeinen und der.net-sprache C# im Speziellen haben. Weil Sie bereits mit dem Besuch einer einführenden Vorlesung, eines Seminars oder/und durch literaturgestütztes Selbststudium einen Schritt weitergegangen sind. Gefolgt von einem weiteren Schritt, indem Sie einfach angefangen haben zu programmieren. On the fly! Weil Ihnen das Prinzip der objektorientierten Programmierung im Zusammenhang mit C# aus unerfindlichen Gründen reizvoll erscheint. Durch Letzteres wird Ihnen natürlich (und sicher zu Recht) unterschwellig unterstellt, mehr über objektorientiertes Programmieren zu wissen, als einführende Beispiele zur Beschreibung einer Klasse in der Regel vermitteln. Die zum Objekt verkommene Katze werden Sie demnach in diesem Buch ebenso vergebens suchen wie die in private oder öffentliche Methoden gebannten Gewohnheiten des schnurrenden Vierbeiners. Über Derartiges sind Sie zwar nicht erhaben, gleichwohl fachlich weit hinaus. Es ist also an der Zeit, die Katze aus dem Sack zu lassen. 11

13

14 Künstliche Intelligenz ist gar nichts verglichen mit natürlicher Dummheit. (Verfasser unbekannt) 2 Die Sache mit.net Auch nach über sieben Jahren ist.net (zum Zeitpunkt der Niederschrift dieses Textes war Version 4.0 aktuell) oder, um es korrekt zu formulieren, die.net- Technologie, ein kleines Mysterium geblieben. Doch leider ist ohne.net nicht gut mit C-Sharp (C#) programmieren, und ohne einen Fundus an Grundwissen braust Ihr sicher vorhandener Elan an den Möglichkeiten des mächtigen Frameworks vorbei. Framework? Damit ist natürlich das.net-framework gemeint, und was es damit auf sich hat, darum werden wir uns im Folgenden kümmern. Stiefmütterlich behandelt werden dagegen Webservices sowie der.net Enterprise Server. Beide spielen für die Entwicklung der Sie erwartenden Praxisbeispiele nämlich keine Rolle und somit auch nicht für Ihren literarischen Neuerwerb. Abgesehen davon ist das.net-framework primärer Bestandteil von.net, und so betrachtet, kann es nicht falsch sein, mit.net zunächst das.net-framework zu verbinden oder die beiden Begriffe sogar synonym zu verwenden. In der Zusammenfassung noch einmal: Bestandteile der viel gepriesenen.net- Technologie sind:.net-framework Webservices.NET Enterprise Server Für uns ist, wie ich bereits erwähnt habe, lediglich das.net-framework von Belang. Würden wir Webservices und.net Enterprise Server mit ins Boot nehmen, hielten Sie ein praxisorientiertes Buch über die.net-technologie in den Händen. Trösten Sie sich: Das.NET-Framework allein füllt mühelos die Seiten kiloschwerer, mitunter schwer verdaulicher Fachbücher. Dasselbe komplexe Thema betreffend, begnügen wir uns mit vergleichweise wenigen Seiten, denn weniger ist manchmal (allerdings nicht immer) mehr. Vor allem dann, wenn die Intention des Buches eine etwas andere ist. 13

15 2 Die Sache mit.net Trivial wird es auf den folgenden Seiten gleichwohl nicht. Es geht nicht anders! Denn Sie sollten zumindest im Groben wissen, auf welcher softwaretechnischen Grundlage die Praxisbeispiele aufgesetzt sind. Schließlich unternehmen Sie mit Ihrem hypothetischen Wunschauto auch keine Probefahrt, ohne sich für die Raffinessen des vierrädrigen Objekts zu interessieren (und gegebenenfalls zu begeistern). Alles werden wir gleichwohl nicht besprechen können. Einige der wichtigsten Konzepte dagegen schon. 2.1 Intelligent, aber nicht unergründlich das.net-framework Die Frage, was unter dem.net-framework primär zu verstehen ist, führt beinahe zwangsläufig zu anderen, nicht immer tauglichen Begriffen: konzeptionelle Plattform Softwareplattform Klassenbibliothek Programmiermodell All das haben Sie mit Sicherheit schon irgendwo gelesen. Und nichts von dem ist selbstredend falsch (schlechtestenfalls ist es unvollständig). Fragen wir deshalb anders: Was ist der springende Punkt beim.net-framework? Oder gibt es sogar mehrere? Sprachgewaltig: die Laufzeitumgebung Das.NET-Framework ist bedeutend mehr als eine Klassenbibliothek (und sei diese auch noch so groß). Im Wort Framework steckt schließlich neben Frame auch das Wort Work. Hier arbeitet notwendigerweise etwas, nämlich die Laufzeitumgebung (englisch Runtime Environment), genauer gesagt eine programmiersprachenunabhängige Laufzeitumgebung, die als Common Language Runtime oder kurz CLR bezeichnet wird. Die können Sie sich getrost als Computer im Computer (eine Art virtuelle Maschine also) vorstellen. Abbildung 2.1 zeigt schematisch den Aufbau der CLR. 14

16 Intelligent, aber nicht unergründlich das.net-framework 2.1 Base Class Library (BCL-Support) COM Marshaler Thread Support Type Checker Exeption Manager Debug Engine Security Engine IL to Native Computer Code Manager Garbage Collector Class Loader Abbildung 2.1 Vereinfachter schematischer Aufbau der Common Language Runtime (CLR) Ein Meer von Klassen die Base Class Library (BCL) Ganz oben in Abbildung 2.1entdecken Sie die Base Class Library (BCL). So oft der Name auch in allen möglichen und schematischen Darstellungen zu finden ist, so wenig aktuell ist er in Wahrheit. Microsoft selbst spricht lieber von der.net Framework Class Library (FCL), was sogleich die Frage aufwirft, wo in der Abkürzung das.net abgeblieben ist. NFCL wäre genauer, allein schon deshalb, weil es neben dem.net-framework auch andere Frameworks gibt, nicht zuletzt den ewigen Konkurrenten Java mit seinem etablierten Runtime Environment (JRE). Anscheinend steckt jedoch mehr hinter der namentlichen Verwirrung, gibt es doch im Hause Microsoft an der Entwicklung des.net-frameworks beteiligte Programmierer (auf einen werden wir noch zurückkommen), die die BCL als Teil der FCL betrachten. Demnach wird also zwischen BCL und FCL unterschieden. Und wenn wir schon mal dabei sind, Konfusion zu erzeugen: Bei Ihrer Beschäftigung mit.net wird Ihnen auch die Abkürzung CL begegnen, womit nichts anderes als die BCL gemeint ist. Schließen wir Frieden mit dem Namen- und Abkürzungswirrwarr, denn ändern lässt es sich gerade in einer wissenschaftlich-technischen Umgebung nicht, die von Anglizismen und Abkürzungen nur so wimmelt. 15

17 2 Die Sache mit.net Ganz gleich, ob Sie Windows-, Webanwendungen oder Webservices entwickeln möchten, an der Klassenbibliothek des.net-framework ist nur schwer vorbeizukommen. Nach was, glauben Sie, werden Sie im Installationsverzeichnis des.net-frameworks (in der Regel C:\WINDOWS\Microsoft.NET\Framework\) im Falle der, sagen wir, BCL suchen müssen? Nach einem oder gar mehreren Ordnern, gefüllt mit zahlreichen, unzusammenhängenden Klassendateien, in womöglich noch alphabetischer Reihenfolge? So wird es vielleicht irgendwann angefangen haben, als sich zur Laufzeit eines Programms im Wesentlichen nichts anderes vollzog als der Lauf des Programms. Klassenbibliotheken können (und das ist in der Regel der Fall) auch zur Laufzeit eingebunden werden (vereinzelt spricht man auch, und nicht frei von unfriedlichen Assoziationen, vom Nachladen der Bibliothek), womit wir es dann mit einer Dynamic Link Library (DLL) zu tun hätten, die Sie an der gleichlautenden, wenngleich zumeist kleingeschriebenen Dateiendung (.dll) erkennen. Statisch oder dynamisch? Faustischen Ursprungs ist die Frage zwar nicht, allerdings auch nicht unbedeutend. Programme, die auf DLLs zurückgreifen, sind zumeist kleiner als jene, die sich mit einer statischen Bibliothek begnügen (solche Programme werden tatsächlich noch geschrieben) einfach weil der Code auf mehrere Dateien verteilt werden kann. Dagegen erfolgt das Hinzubinden einer statischen Bibliothek zum Programm zur Übersetzungszeit, mit der leicht zu erahnenden Konsequenz, dass die ausführbare Datei (.exe) vergrößert wird. Dafür wird nichts nachgeladen. Im Kontext der BCL sind zwei Dateien (und aus mehr Files besteht die Base Class Library erstaunlicherweise nicht) mit der Endung.dll von einiger Bedeutung: system.dll mscorlib.dll Beide Dateien sind mit im Mittel 3,5 MB wahrlich keine Leichtgewichte, was bei der Anzahl der in ihnen enthaltenen Klassen auch nicht verwundert. Gezählt habe ich sie nicht. Es werden einige Tausend sein, deren Aufgaben sich gleichwohl gut gruppieren lassen. Die beiden Dateien system.dll und mscorlib.dll enthalten: Basisdatentypen IO-Funktionen (Input/Output) Netzwerkfunktionen Reflection-API 16

18 Zwischengeschoben der IL-Code 2.2 COM-Interoperabilität Remoting Sicherheitskonfiguration Threading Zugriff auf Teile des Windows-Systems 2.2 Zwischengeschoben der IL-Code Die Unterstützung der Base Class Library (siehe Abbildung 2.1) ist Teil der Laufzeitumgebung (CLR), ohne die es schwierig wird, den in einer beliebigen Programmiersprache entwickelten Code auszuführen. Früher war mit dem Wechsel der Programmiersprache zwangsläufig ein Wechsel der Laufzeitumgebung verbunden, woran sich im Grunde nichts geändert hat bis auf die erfolgreiche Sache mit.net, wo eine Laufzeitumgebung gleich mehrere Sprachen bedient (nämlich die sogenannten.net-sprachen, u. a. auch das von uns gewählte C#). Ein intelligentes Konzept, fürwahr, nur: Warum funktioniert es so gut? Es hilft nichts, wir müssen noch weiter ins Kellergewölbe des.net-frameworks vordringen. Verstaubtes erwartet Sie dort nicht, wohl aber eine weitere, softwaretechnische Raffinesse. Eine stattliche Hürde Das Problem ist schlicht, einen in C# entwickelten Programmcode gleichermaßen für die Laufzeitumgebung des.net-frameworks verständlich zu machen, wie die potenziell in Visual Basic.NET oder einer anderen.net-sprache (z. B. C++.NET) entwickelten Sourcen. Die CLR spricht nur eine Sprache,.NET-Sprachen dagegen gibt es gleich mehrere. Zum Glück! Was es leider auch gibt, ist ein Problem. Um zu verhindern, dass sich die Laufzeitumgebung an der Mehrsprachigkeit des.net-frameworks nachhaltig»verschluckt«, wird der Runtime Environment ein Zwischencode serviert, der IL- oder MSIL-Code genannt wird. (IL steht für Intermediate Language, MSIL für Microsoft Intermediate Language.) Anders formuliert: Die CLR weiß nichts vom relativen Sprachreichtum der Codierung, die ausgeführt werden soll. Die Laufzeitumgebung befasst sich lediglich mit dem IL- Code. Bleibt die Frage zu klären, was der ominöse IL-Code eigentlich ist. Kurze Antwort: Es ist Bytecode. Und der besteht aus nichts anderem als aus Befehlen für eine virtuelle Maschine. Das Schöne am Bytecode (der auch P-Code genannt wird) ist die Unabhängigkeit vom Prozessor, was so formuliert ein wenig geschönt ist, verhält es sich doch eher so, dass der Bytecode vom physischen Prozessor nicht verstanden werden kann. Prozessorunabhängigkeit? So kann man es 17

19 2 Die Sache mit.net also auch nennen. Was die CPU Ihres und meines Computers versteht, sind Maschinenbefehle (man spricht auch von Native Code), die wiederum vom Typ des Prozessors abhängig sind. Dennoch ist das Thema Zwischencode damit nicht abgehandelt, denn nur wenig ist so einfach, wie es dem Titel dieses Buches geschuldet beschrieben werden sollte. Kurz mal verschnaufen, und dann folgt ein vermeintlich überflüssiger Satz: Die Übersetzung einer C#-Anweisung in den IL-Code (Zwischencode) übernimmt der Compiler. Im Falle der Sprache C# verbirgt sich der Compiler in der Datei csc.exe, die Sie, abhängig vom Ort der Installation, irgendwo in den unergründlichen Tiefen des.net-frameworks finden. Wenn es aber mehrere.net-sprachen, einen Zwischencode und eine Laufzeitumgebung gibt, muss es notwendigerweise auch mehrere Compiler geben, genau für jede der.net-sprachen einen. Dem ist auch so. Metadaten Neben dem IL-Code generieren die Compiler spezielle Informationsdaten. Diese sogenannten Metadaten beinhalten Informationen über Typen, Elemente oder Verweise, die für das C#-Programm auf die ein oder andere Art wichtig sind. Schließlich muss die Laufzeitumgebung beispielsweise wissen, wann eine Klasse oder ein anderes Programmelement geladen werden soll. Metadaten werden zur Laufzeit des Programms ausgelesen. Dazu bedarf es spezieller Klassen, die unter dem Namen Reflection API bekannt sind. Selbst wenn es keine Metadaten gäbe: Fühlen Sie sich nicht zu sehr an Ihre Beschäftigung mit dem klassischen, in Native Code übersetzenden Compiler erinnert! Denn die hier angesprochenen»compiler«kompilieren nicht in den Maschinencode, sondern in den IL-Code, P-Code, Bytecode oder welchen Namen Sie auch immer dem begabten Kind geben mögen. Auf alle Fälle ist der Zwischencode eben nicht für einen physikalischen Prozessor bestimmt Kein Fabelwesen der Jitter Die Weiterverarbeitung des IL-Codes könnte durchaus eine Art Interpreter erledigen, der den Code einliest, analysiert und schlussendlich ausführt. Der Nachteil eines Interpreters? Die Geschwindigkeit. Der Vorteil des interpretierten Codes: die weitgehende Unabhängigkeit von der Architektur des Rechners (zumindest dann, wenn der Interpreter selbst in C oder einem C-Dialekt geschrieben ist). Als Alternative käme der Einsatz eines klassischen Compilers in Betracht. Der Vorteil der Kompilierung: eine höhere Geschwindigkeit, denn Native Code ist nicht langsam. Der Nachteil? Tja, überlegen Sie! Maschinencode ist prozessorabhängig, somit erführe das.net-framework einen merklichen Ruck in Richtung 18

20 Zwischengeschoben der IL-Code 2.2 Plattformabhängigkeit. Genau die gilt es zu vermeiden, mehr noch als eine langsame Ausführungsgeschwindigkeit. Eine Software, für die erst das Motherboard und/oder der Prozessor ausgetauscht werden müssen, wird nur schwerlich den Weg aus den Regalen des Herstellers finden. (Bei Computerspielen sieht das schon anders aus: Das nächste Weihnachtsfest kommt bestimmt.) Was bleibt, ist die Vereinigung der Vorteile von Interpreter und Compiler. Was dabei herausgekommen ist, wird umgangssprachlich Jitter genannt. Großzügig betrachtet, leitet sich der Begriff aus dem sperrig klingenden Just-In-Time-Compiler (kurz JIT-Compiler) ab. Wenn Sie sich den als Flasche vorstellen, ist in dieser allerdings beträchtlich mehr Compiler als Interpreter vorhanden. Drehen Sie das Behältnis um, um die Geister herauszulassen, tritt auch sogleich der Compiler in Aktion, genauer betrachtet allerdings nur dann, wenn Ihr Programm tatsächlich ausgeführt wird. Das Just-In-Time geht allerdings noch weiter: Ein Programm besteht (auch im weiteren Sinne) aus Modulen. Wird lediglich das Modul A verwendet, ist die Übersetzung des Moduls B (zunächst) überflüssig. Demnach ist nur das aktuell Benötigte zu kompilieren zur Laufzeit und gerade noch rechtzeitig. Eben just in time. Quellcode (Sourcecode) Compiler (z.b. csc.exe) IL-Code zuzüglich Metadaten JIT-Compiler Native Code Abbildung 2.2 Vom Quellcode zum Native Code die Schritte bis zur Ausführung eines C#-Programms 19

Konzepte von Betriebssystem-Komponenten

Konzepte von Betriebssystem-Komponenten Konzepte von Betriebssystem-Komponenten Wilhelm.Haas@informatik.stud.uni-erlangen.de 11. Januar 2005 1 Einleitung Im Jahre 1998 lies Microsoft verlauten, dass sie mit der Entwicklung einer neuen Version

Mehr

Die ersten C#- Programme erstellen

Die ersten C#- Programme erstellen Zusatzkapitel zu Kapitel 3: Die ersten C#- Programme erstellen I - Erste Schritte Richtig einsteigen: Programmieren lernen mit Visual C# 2005 Website zum Buch: www.vsxpress.de Auf den folgenden Seiten

Mehr

Praxiswissen Online-Marketing

Praxiswissen Online-Marketing Praxiswissen Online-Marketing Affiliate- und E-Mail-Marketing, Suchmaschinenmarketing, Online-Werbung, Social Media, Facebook-Werbung 6. Auflage Praxiswissen Online-Marketing Praxiswissen Online-Marketing

Mehr

Microsoft.NET. InfoPoint 8. Juni 2005 Stefan Bühler

Microsoft.NET. InfoPoint 8. Juni 2005 Stefan Bühler Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler Inhalt Was ist.net Was steckt dahinter Warum ist.net so wie es ist Die Säulen von.net.net Framework 2.0 / VisualStudio 2005 Beispiel Referenzen & Links

Mehr

Gradle. Ein kompakter Einstieg in modernes Build-Management. Joachim Baumann. Joachim Baumann, Gradle, dpunkt.verlag, ISBN

Gradle. Ein kompakter Einstieg in modernes Build-Management. Joachim Baumann. Joachim Baumann, Gradle, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm Joachim Baumann Gradle Ein kompakter Einstieg in modernes Build-Management Joachim Baumann joachim.baumann@codecentric.de Lektorat: René Schönfeldt Copy Editing: Sandra Gottmann, Münster-Nienberge

Mehr

Universität Karlsruhe (TH) Moderne Programmiersysteme am Beispiel von.net

Universität Karlsruhe (TH) Moderne Programmiersysteme am Beispiel von.net Moderne Programmiersysteme am Beispiel von.net Prof. Walter F. Tichy Was ist.net? Hannes Preishuber auf devtrain.de: (http://www.devtrain.de/artikel_823.aspx) Wenn man Hundert Menschen befragt,.net in

Mehr

.NET Framework. 3. Das.NET Framework

.NET Framework. 3. Das.NET Framework 3. Das.NET Framework.NET Framework 3.1 Übersicht - 2002 von Microsoft bereitgestellt - Ziel: Entwicklung von Anwendungen (Windows, Web, Embedded,..) bequemer und sicherer zu machen und bestehenden Code

Mehr

Vergleich von Webtechnologien zur Erstellung einer Rich Internet Applicationam Beispiel der Kundenverwaltungssoftware VDMS

Vergleich von Webtechnologien zur Erstellung einer Rich Internet Applicationam Beispiel der Kundenverwaltungssoftware VDMS Stephan Püngel Vergleich von Webtechnologien zur Erstellung einer Rich Internet Applicationam Beispiel der Kundenverwaltungssoftware sübersicht Einstieg Vorstellung als Rich Internet Application Technologie

Mehr

Picking the winners - Dienstleistungsorientierte Bestandspflegeund Ansiedlungspolitik

Picking the winners - Dienstleistungsorientierte Bestandspflegeund Ansiedlungspolitik Geographie Bernd Steinbrecher Picking the winners - Dienstleistungsorientierte Bestandspflegeund Ansiedlungspolitik Dienstleistungsunternehmen in der Regionalentwicklung am Beispiel der Region Aachen Diplomarbeit

Mehr

Yoga - die Kunst, Körper, Geist und Seele zu formen

Yoga - die Kunst, Körper, Geist und Seele zu formen Sport Carla Vieira Yoga - die Kunst, Körper, Geist und Seele zu formen Diplomarbeit Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische Information der Deutschen Nationalbibliothek:

Mehr

Das Internet als Instrument der Unternehmenskommunikation unter besonderer Berücksichtigung der Investor Relations

Das Internet als Instrument der Unternehmenskommunikation unter besonderer Berücksichtigung der Investor Relations Wirtschaft Jörn Krüger Das Internet als Instrument der Unternehmenskommunikation unter besonderer Berücksichtigung der Investor Relations Eine theoretische und empirische Analyse Diplomarbeit Bibliografische

Mehr

360.NET. Jan Schenk Developer Evangelist Web/Live Microsoft Deutschland

360.NET. Jan Schenk Developer Evangelist Web/Live Microsoft Deutschland 360.NET Jan Schenk Developer Evangelist Web/Live Microsoft Deutschland Was ist.net? Eine Strategie Eine Plattform Eine Laufzeitumgebung Eine Software-Sammlung Ein Set von Services Warum so ein Framework?

Mehr

IDE-Visual Studio 2010 C#

IDE-Visual Studio 2010 C# IDE-Visual Studio 2010 C# Konzept von C#.NET Framework Visual Studio 2010 C# C# Der Name ist rein Zufällig entstanden und ist auch keine Abkürzung. C# C# ist ursprünglich ein Symbol für den in der Musik

Mehr

Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt WS 2006/2007

Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt WS 2006/2007 Programmieren II Dr. Klaus Höppner Hochschule Darmstadt WS 2006/2007 1 / 15 Einführung: Grafische Benutzeroberflächen 2 / 15 Einführung: GUI Fast alle Programme besitzen mittlerweile eine grafische Benutzeroberfläche

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Vorlesung AFCW, Microsoft.NET Wintersemester 2002/03. Völlig neue Systemstruktur als Antwort auf Java

Vorlesung AFCW, Microsoft.NET Wintersemester 2002/03. Völlig neue Systemstruktur als Antwort auf Java .NET Vorlesung Application Frameworks and Componentware Peter Sturm Universität Trier.NET Völlig neue Systemstruktur als Antwort auf Java Assembly = Komponente Zwischensprache (IL = Intermediate Language)

Mehr

Android DER SCHNELLE UND EINFACHE EINSTIEG IN DIE PROGRAMMIERUNG UND ENTWICKLUNGSUMGEBUNG. EXTRA: E-Book inside. dirk LOUIS peter MÜLLER. 2.

Android DER SCHNELLE UND EINFACHE EINSTIEG IN DIE PROGRAMMIERUNG UND ENTWICKLUNGSUMGEBUNG. EXTRA: E-Book inside. dirk LOUIS peter MÜLLER. 2. dirk LOUIS peter MÜLLER 2. Auflage Android DER SCHNELLE UND EINFACHE EINSTIEG IN DIE PROGRAMMIERUNG UND ENTWICKLUNGSUMGEBUNG EXTRA: E-Book inside Im Internet: Beispiele, Tutorials, JRE und Android-Bundle

Mehr

Konzeption eines Sportmagazins für Randsportarten

Konzeption eines Sportmagazins für Randsportarten Medien Claudio Cosentino Konzeption eines Sportmagazins für Randsportarten Sport und Lifestylemagazin für Frauen Diplomarbeit Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische

Mehr

8a. Exkurs.NET. 8a.1.NET Architektur

8a. Exkurs.NET. 8a.1.NET Architektur 8a. Exkurs.NET Inhalt: 8a.1.NET Architektur 8a.2 Kooperation von Anwendungen über ADO -.NET 8a.3 Unterschiede gegenüber gewöhnlicher WIN32- Programmierung 1 8a.1.NET Architektur Bislang wurden die C/C++

Mehr

Übergewichtige Kinder und Jugendliche in Deutschland

Übergewichtige Kinder und Jugendliche in Deutschland Geisteswissenschaft Axel Jäckel Übergewichtige Kinder und Jugendliche in Deutschland Ein Fall für die soziale Arbeit?! Diplomarbeit Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische

Mehr

Software entwickeln mit Verstand

Software entwickeln mit Verstand D3kjd3Di38lk323nnm Jörg Dirbach Markus Flückiger Steffen Lentz Software entwickeln mit Verstand Was Sie über Wissensarbeit wissen müssen, um Projekte produktiver zu machen Jörg Dirbach jdi@zuehlke.com

Mehr

NET.Compact Framework

NET.Compact Framework FRANZIS PROFESSIONAL SERIES Robert Panther Programmieren mit dem NET.Compact Framework Pocket PC - Smartphone - Handheld Mit 178 Abbildungen FRANZIS Vorwort 9 Einleitung 11 1.1 Warum dieses Buch? 11 1.2

Mehr

C++ mit. Microsoft Visual C++ 2008. Richard Kaiser. Einführung in Standard-C++-, C++/CLI und die objektorientierte Windows.

C++ mit. Microsoft Visual C++ 2008. Richard Kaiser. Einführung in Standard-C++-, C++/CLI und die objektorientierte Windows. Richard Kaiser C++ mit Microsoft Visual C++ 2008 Einführung in Standard-C++-, C++/CLI und die objektorientierte Windows.NET-Programmierung Mit CD-ROM Geleitwort Wenn man heute nach Literatur über Programmiersprachen

Mehr

Mobbing am Arbeitsplatz

Mobbing am Arbeitsplatz Wirtschaft Nicole Busch Mobbing am Arbeitsplatz Das Leiden der Opfer im Kontext von Führungsstilen und Konfliktmanagement Diplomarbeit Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische

Mehr

ios-apps programmieren mit Swift

ios-apps programmieren mit Swift Christian Bleske ios-apps programmieren mit Swift Der leichte Einstieg in die Entwicklung für iphone, ipad und Co. inkl. Apple Watch und Apple TV 2., aktualisierte und erweiterte Auflage Christian Bleske

Mehr

Bettina Heberer. Grüne Gentechnik. Hintergründe, Chancen und Risiken

Bettina Heberer. Grüne Gentechnik. Hintergründe, Chancen und Risiken essentials Essentials liefern aktuelles Wissen in konzentrierter Form. Die Essenz dessen, worauf es als State-of-the-Art in der gegenwärtigen Fachdiskussion oder in der Praxis ankommt. Essentials informieren

Mehr

Windows 8 Apps entwickeln

Windows 8 Apps entwickeln Windows 8 Apps entwickeln Apps für die neue Oberfläche von Windows 8 Entwickeln mit HTML5, JavaScript, XAML und C# Von den Grundlagen der Programmiersprachen bis zur fertigen App Windows 8 Apps entwickeln

Mehr

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

Dipl.-Inform. Arno Becker Dipl.-Inform. Marcus Pant

Dipl.-Inform. Arno Becker Dipl.-Inform. Marcus Pant Dipl.-Inform. Arno Becker ist bei der visionera GmbH verantwortlich für den Bereich»Mobile Lösungen«. Nach langjähriger Erfahrung mit Java ME beschäftigte er sich von Beginn an intensiv mit Android. Als

Mehr

Klientenzentrierte Gesprächsführung in der Physiotherapie:

Klientenzentrierte Gesprächsführung in der Physiotherapie: Medizin Heike Hoos-Leistner Klientenzentrierte Gesprächsführung in der Physiotherapie: Entwicklung einer Unterrichtskonzeption zum Klientenzentrierten Ansatz nach Carl Rogers Diplomarbeit Bibliografische

Mehr

Objektorientiertes Programmieren mit Visual Basic DOT Net (VB.NET)

Objektorientiertes Programmieren mit Visual Basic DOT Net (VB.NET) Workshop Objektorientiertes Programmieren mit Visual Basic DOT Net (VB.NET) Mario Eschrich Kooperative Gesamtschule W.v.Humboldt Halle (Saale) m_eschrich@gmx.de VBDOTNET ist eine moderne objektorientierte

Mehr

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage C# CLR CIL MCS ECMA-335 Linux.Ne t Was ist.net? Microsoft Homepage:.NET is the Microsoft Web services strategy to connect information, people, systems and devices through software. Mono Handbuch:.Net besteht

Mehr

Die Big Five und ihre Auswirkungen auf das Gründungsverhalten

Die Big Five und ihre Auswirkungen auf das Gründungsverhalten Nadine Schlabes Die Big Five und ihre Auswirkungen auf das Gründungsverhalten Eine konzeptionelle Studie Bachelorarbeit Schlabes, Nadine: Die Big Five und ihre Auswirkungen auf das Gründungsverhalten.

Mehr

Bewegliche Ziele Entwicklungsumgebungen für Pocket PCs und Smartphones

Bewegliche Ziele Entwicklungsumgebungen für Pocket PCs und Smartphones Seite 1 von 5 Bewegliche Ziele Entwicklungsumgebungen für Pocket PCs und Smartphones von Robert Panther Mobile Devices auf Basis von Windows CE haben sich inzwischen fest am Markt etabliert. Nach dem Siegeszug

Mehr

Office und das.net Framework

Office und das.net Framework Kapitel 1 Office und das.net Framework In diesem Kapitel: Wie alles anfing 26 Das.NET Framework in zehn Minuten 27 Wie passen Office und das.net Framework zusammen? 32 Wie bringt man Office 2003 und das.net

Mehr

Vergleich CLR von.net mit JVM:

Vergleich CLR von.net mit JVM: Vergleich CLR von.net mit JVM: Art und Martin Ahke, Marco Fiedler und Lars Schittly, Institut für Informatik 30.11.05 Basic mit JVM Applet Designer: - Generiert Javaquell- und Bytecode aus Visual Basic

Mehr

Für die Erstellung von Javaprogrammen sind eventuell zwei Komponenten nötig. 1. Das Java-Develepment-Kit (JDK) und die 2. Java Runtime Engine (JRE)

Für die Erstellung von Javaprogrammen sind eventuell zwei Komponenten nötig. 1. Das Java-Develepment-Kit (JDK) und die 2. Java Runtime Engine (JRE) Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Für die Erstellung von Javaprogrammen sind eventuell zwei Komponenten nötig. 1. Das Java-Develepment-Kit (JDK) und die 2. Java

Mehr

Anforderungen von Crossmedia-Kampagnen

Anforderungen von Crossmedia-Kampagnen Medien Christian Regner Anforderungen von Crossmedia-Kampagnen Eine Untersuchung am Beispiel einer Casting-Show Diplomarbeit Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische

Mehr

Innovative Preismodelle für hybride Produkte

Innovative Preismodelle für hybride Produkte Wirtschaft Christoph Da-Cruz Innovative Preismodelle für hybride Produkte Diplomarbeit Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische Information der Deutschen Nationalbibliothek:

Mehr

Workshop-Buch Windows 7

Workshop-Buch Windows 7 Workshop-Buch Christian Immler -Know-how: Alle wichtigen Windows-Funktionen und -Programme im Griff. 125 Praxis-Workshops So nutzen Sie den vollen Funktionsumfang von und sparen Zeit, Nerven und Geld.

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing 2 Ziele Geschichte der OO-Programmiersprachen Warum Java als Programmiersprache verwenden? Ein einfaches Java-Programm erstellen, übersetzen und

Mehr

Grundlagen der Programmentwicklung

Grundlagen der Programmentwicklung Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Über C++ Über C++ C++ ist eine in der Industrie

Mehr

Ralf-Stefan Lossack Wissenschaftstheoretische Grundlagen für die rechnerunterstützte Konstruktion

Ralf-Stefan Lossack Wissenschaftstheoretische Grundlagen für die rechnerunterstützte Konstruktion Ralf-Stefan Lossack Wissenschaftstheoretische Grundlagen für die rechnerunterstützte Konstruktion Ralf-Stefan Lossack Wissenschaftstheoretische Grundlagen für die rechnerunterstützte Konstruktion Mit 106

Mehr

4. Objektorientierte Programmierung mit C++

4. Objektorientierte Programmierung mit C++ 4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung/ Sprachfamilie Nicht objektorientierte Erweiterungen von C Grundlagen des Typkonzepts von C++ Ziele der Objektorientierung Objekt

Mehr

HTML Spielend gelingt die Website

HTML Spielend gelingt die Website HTML HTML Spielend gelingt die Website TOBIAS HAUSER CHRISTIAN WENZ Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen

Mehr

Ideengeschichte der Physik

Ideengeschichte der Physik Ideengeschichte der Physik Eine Analyse der Entwicklung der Physik im historischen Kontext 2. Auflage Ideengeschichte der Physik Ideengeschichte der Physik Eine Analyse der Entwicklung der Physik im historischen

Mehr

O Reillys Taschenbibliothek. DNS & BIND im IPv6. kurz & gut. Cricket Liu O REILLY. Deutsche Übersetzung von Kathrin Lichtenberg

O Reillys Taschenbibliothek. DNS & BIND im IPv6. kurz & gut. Cricket Liu O REILLY. Deutsche Übersetzung von Kathrin Lichtenberg O Reillys Taschenbibliothek DNS & BIND im IPv6 kurz & gut O REILLY Cricket Liu Deutsche Übersetzung von Kathrin Lichtenberg DNS und BIND im IPv6 kurz & gut Cricket Liu Deutsche Übersetzung von Kathrin

Mehr

Java Entwicklung für Embedded Devices Best & Worst Practices!

Java Entwicklung für Embedded Devices Best & Worst Practices! Java Entwicklung für Embedded Devices! George Mesesan Microdoc GmbH Natürlich können wir dieses neue log4j Bundle auch auf dem Device verwenden. Ist doch alles Java. Java Micro Edition (ME) Java Standard

Mehr

Irmtraut Meister / Lukas Salzburger AVR- Mikrocontroller-Kochbuch Entwurf und Programmierung praktischer Anwendungen

Irmtraut Meister / Lukas Salzburger AVR- Mikrocontroller-Kochbuch Entwurf und Programmierung praktischer Anwendungen PC & ELEKTRONIK Irmtraut Meister / Lukas Salzburger AVR- Mikrocontroller-Kochbuch Entwurf und Programmierung praktischer Anwendungen Irmtraut Meister / Lukas Salzburger AVR-Mikrocontroller-Kochbuch PC

Mehr

Grid-Systeme. Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit. 07.06.2002 Grid Systeme 1

Grid-Systeme. Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit. 07.06.2002 Grid Systeme 1 Grid-Systeme Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit 07.06.2002 Grid Systeme 1 Gliederung Vorstellung verschiedener Plattformen Globus

Mehr

Wirtschaft. Tom Keller

Wirtschaft. Tom Keller Wirtschaft Tom Keller Die realitätsnähere Bewertung der Schadenrückstellungen des Versicherers im Rahmen des Steuerentlastungsgesetzes (StEntlG) 1999/2000/2002 und ausgewählte Konsequenzen für die Handels-

Mehr

Reihe Nachhaltigkeit. Energiepolitik: Rahmenbedingungen für die Entwicklung von fossilen Brennstoffen zu erneuerbaren Energien.

Reihe Nachhaltigkeit. Energiepolitik: Rahmenbedingungen für die Entwicklung von fossilen Brennstoffen zu erneuerbaren Energien. Simon Reimer Energiepolitik: Rahmenbedingungen für die Entwicklung von fossilen Brennstoffen zu erneuerbaren Energien Ökonomische Realität im Konflikt zu energiepolitischen Ambitionen? Reihe Nachhaltigkeit

Mehr

Hilfsangebote für Kinder und Jugendliche ohne eigenen Wohnsitz

Hilfsangebote für Kinder und Jugendliche ohne eigenen Wohnsitz Marie Schröter Hilfsangebote für Kinder und Jugendliche ohne eigenen Wohnsitz Ein Vergleich zwischen Deutschland und Russland Bachelorarbeit Schröter, Marie: Hilfsangebote für Kinder und Jugendliche ohne

Mehr

Zentrale Benutzerverwaltung für heterogene Netzwerkumgebungen mit LDAP und Samba

Zentrale Benutzerverwaltung für heterogene Netzwerkumgebungen mit LDAP und Samba Informatik Markus Wischnewski Zentrale Benutzerverwaltung für heterogene Netzwerkumgebungen mit LDAP und Samba Diplomarbeit Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische

Mehr

Immobilien als Mittel der privaten Altersvorsorge

Immobilien als Mittel der privaten Altersvorsorge Wirtschaft Andreas Vorbauer Immobilien als Mittel der privaten Altersvorsorge Diplomarbeit Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische Information der Deutschen Nationalbibliothek:

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Bibliografische Information der Deutschen Nationalbibliothek:

Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;

Mehr

Peter tom Suden. Die elektronische Rechnung in Handels- und Steuerrecht

Peter tom Suden. Die elektronische Rechnung in Handels- und Steuerrecht Peter tom Suden Die elektronische Rechnung in Handels- und Steuerrecht Peter tom Suden Die elektronische Rechnung in Handels- und Steuerrecht Einführung, Signatur, Dokumentation Bibliografische Information

Mehr

Einführung in Microsoft.NET

Einführung in Microsoft.NET Einführung in Microsoft.NET Martin Saternus Martin Saternus Technical Student Consultant Microsoft Academic Program Microsoft Deutschland GmbH i-martsa@microsoft.com In diesem Vortrag Der Weg zu Microsoft.NET

Mehr

Die Bedeutung der Geburtenregistrierung. für die Verwirklichung der UN-Kinderrechte

Die Bedeutung der Geburtenregistrierung. für die Verwirklichung der UN-Kinderrechte Mareen Schöndube Die Bedeutung der Geburtenregistrierung für die Verwirklichung der UN-Kinderrechte Der Artikel Sieben: Recht auf Geburtsregister, Name und Staatszugehörigkeit Diplomica Verlag Mareen Schöndube

Mehr

Das Anatomie-Booklet

Das Anatomie-Booklet Schädel, ZNS und Sinnesorgane Das Anatomie-Booklet Schädel, ZNS und Sinnesorgane präsentiert von 3B Scientific & MEDI-LEARN 1 Das Anatomie-Booklet Herausgeber: MEDI-LEARN Elisabethstraße 9, 35037 Marburg/Lahn

Mehr

Microsoft Visual C#.NET Programmier-Rezepte

Microsoft Visual C#.NET Programmier-Rezepte Programmierrezepte Microsoft Visual C#.NET Programmier-Rezepte von Allen Jones 1. Auflage Microsoft Visual C#.NET Programmier-Rezepte Jones schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Grundkurs Programmieren in Visual C#

Grundkurs Programmieren in Visual C# Grundkurs Programmieren in Visual C# von 1. Auflage Hanser München 2010 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 42223 0 schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG

Mehr

.NET und wieder eine Middleware Architektur?

.NET und wieder eine Middleware Architektur? .NET und wieder eine Middleware Architektur? Volker Birk CCC ERFA Ulm vb@ebios.de Volker Birk, vb@ebios.de 1 .NET na und?.net soll die Architektur im Internet werden meint Microsoft. Genau so wie Windows?.NET

Mehr

Anja Schüler. Arbeit für alle?! Berufliche Teilhabe von Menschen mit geistiger Behinderung in Deutschland und den USA.

Anja Schüler. Arbeit für alle?! Berufliche Teilhabe von Menschen mit geistiger Behinderung in Deutschland und den USA. Anja Schüler Arbeit für alle?! Berufliche Teilhabe von Menschen mit geistiger Behinderung in Deutschland und den USA Bachelorarbeit BACHELOR + MASTER Publishing Schüler, Anja: Arbeit für alle?! Berufliche

Mehr

Die Entwicklung der Rechtsprechung hinsichtlich der Rechtsstellung der Gesellschaft bürgerlichen Rechts und ihrer Gesellschafter im Rechtsverkehr

Die Entwicklung der Rechtsprechung hinsichtlich der Rechtsstellung der Gesellschaft bürgerlichen Rechts und ihrer Gesellschafter im Rechtsverkehr Wirtschaft Gordon Matthes Die Entwicklung der Rechtsprechung hinsichtlich der Rechtsstellung der Gesellschaft bürgerlichen Rechts und ihrer Gesellschafter im Rechtsverkehr Diplomarbeit Bibliografische

Mehr

Vorwort. Walter Doberenz, Thomas Gewinnus. Visual Basic Kochbuch. ISBN (Buch): ISBN (E-Book):

Vorwort. Walter Doberenz, Thomas Gewinnus. Visual Basic Kochbuch. ISBN (Buch): ISBN (E-Book): Vorwort Walter Doberenz, Thomas Gewinnus Visual Basic 2012 - Kochbuch ISBN (Buch): 978-3-446-43430-1 ISBN (E-Book): 978-3-446-43563-6 Weitere Informationen oder Bestellungen unter http://www.hanser-fachbuch.de/978-3-446-43430-1

Mehr

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente Dr. Beatrice Amrhein Überblick Die Architektur WPF Projekt erstellen Steuerelemente einfügen Eigenschaften von Steuerelementen ändern Nach

Mehr

Das Fuji X100 Handbuch

Das Fuji X100 Handbuch Michael Diechtierow Das Fuji X100 Handbuch Fotografieren mit der Fujifilm FinePix X100 Dr. Michael Diechtierow michi@dpunkt.de Lektorat: Gerhard Rossbach, Rudolf Krahm Technische Redaktion: Rudolf Krahm

Mehr

Jochen Bartlau. List & Label. schnell + kompakt

Jochen Bartlau. List & Label. schnell + kompakt Jochen Bartlau List & Label Jochen Bartlau List & Label ISBN 978-3-939084-68-6 2007 entwickler.press, ein Imprint der Software & Support Verlag GmbH 1. Auflage, 2007 http://www.entwickler-press.de http://www.software-support.biz

Mehr

C# Tutorial Part 1. Inhalt Part 1. Einleitung. Vorbereitung. Eagle Eye Studios. Einleitung Vorbereitung Das erste Projekt

C# Tutorial Part 1. Inhalt Part 1. Einleitung. Vorbereitung. Eagle Eye Studios. Einleitung Vorbereitung Das erste Projekt Eagle Eye Studios C# Tutorial Part 1 Inhalt Part 1 Einleitung Vorbereitung Das erste Projekt Einleitung Wer sich mit dem Programmieren schon einigermaßen auskennt, kann diesen Abschnitt überspringen. Programmieren,

Mehr

Visual C# 2015. Grundlagen Programmierung. Ralph Steyer. 1. Ausgabe, Oktober 2015 VCSPNET2015 ISBN 978-3-86249-452-1

Visual C# 2015. Grundlagen Programmierung. Ralph Steyer. 1. Ausgabe, Oktober 2015 VCSPNET2015 ISBN 978-3-86249-452-1 Visual C# 2015 Ralph Steyer Grundlagen Programmierung 1. Ausgabe, Oktober 2015 VCSPNET2015 ISBN 978-3-86249-452-1 2 Visual C# 2015 Grundlagen Programmierung 2 Visual C# und.net In diesem Kapitel erfahren

Mehr

Whitepaper. Produkt: List & Label. Thema: Eine Übersicht der Einbindungsmöglichkeiten. combit GmbH Untere Laube Konstanz

Whitepaper. Produkt: List & Label. Thema: Eine Übersicht der Einbindungsmöglichkeiten. combit GmbH Untere Laube Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: List & Label Thema: Eine Übersicht der Einbindungsmöglichkeiten Thema: Eine Übersicht der Einbindungsmöglichkeiten - 2 - Inhalt Einleitung

Mehr

Führungsstile im Vergleich. Kritische Betrachtung der Auswirkungen auf die Mitarbeitermotivation

Führungsstile im Vergleich. Kritische Betrachtung der Auswirkungen auf die Mitarbeitermotivation Wirtschaft Stefanie Pipus Führungsstile im Vergleich. Kritische Betrachtung der Auswirkungen auf die Mitarbeitermotivation Masterarbeit Bibliografische Information der Deutschen Nationalbibliothek: Die

Mehr

Volkskrankheit Depression

Volkskrankheit Depression Natalia Schütz Volkskrankheit Depression Selbsthilfegruppen als Unterstützung in der Krankheitsbewältigung Diplomica Verlag Natalia Schütz Volkskrankheit Depression: Selbsthilfegruppen als Unterstützung

Mehr

SAP Business One Adapter

SAP Business One Adapter H A N D B U C H SAP Business One Adapter Intrexx 7 Inhaltsverzeichnis 1. Installation... 4 1.1. Anpassen der portal.wcf... 4 1.2. SAP Business One Verbindung einrichten... 4 2. Problemlösung... 7 UNITED

Mehr

Mit freundlichen Empfehlungen KARL STORZ

Mit freundlichen Empfehlungen KARL STORZ Frauenärztliche Taschenbücher Herausgeber: Thomas Römer, Andreas D. Ebert, Wolfgang Straube Mit freundlichen Empfehlungen KARL STORZ Man sieht nur mit dem Herzen gut. Das Wesentliche ist für die Augen

Mehr

C# - Einführung in die Programmiersprache. Leibniz Universität IT Services Anja Aue

C# - Einführung in die Programmiersprache. Leibniz Universität IT Services Anja Aue C# - Einführung in die Programmiersprache Leibniz Universität IT Services Anja Aue Bücher und Weblinks Bücher: RRZN-Handbuch: C# - Einführung Richtig einsteigen: Programmieren lernen mit Visual C# 2010;

Mehr

Whittaker, Holtermann, Hänni / Einführung in die griechische Sprache

Whittaker, Holtermann, Hänni / Einführung in die griechische Sprache $ 8. Auflage Vandenhoeck & Ruprecht Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte

Mehr

Microsoft.NET und SunONE

Microsoft.NET und SunONE Microsoft.NET und SunONE, Plattformen und Application Service Providing Agenda Einordnung.NET und SunONE Kurzvorstellung Gegenüberstellung Zusammenfassung ASP (Application( Service Providing) ) und Ausblick

Mehr

Versuch 8 Gerätesteuerung mit SICL und VISA in C Widerstandskennlinie

Versuch 8 Gerätesteuerung mit SICL und VISA in C Widerstandskennlinie Fachhochschule Merseburg FB Informatik und Angewandte Naturwissenschaften Praktikum Messtechnik Versuch 8 Gerätesteuerung mit SICL und VISA in C Widerstandskennlinie Agilent IO Libraries - SICL und VISA

Mehr

Entwicklung eines Marknagels für den Humerus

Entwicklung eines Marknagels für den Humerus Medizin Eric Bartsch Entwicklung eines Marknagels für den Humerus Diplomarbeit Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische Information der Deutschen Nationalbibliothek:

Mehr

Berufseinstieg für Ingenieure

Berufseinstieg für Ingenieure Berufseinstieg für Ingenieure Elke Pohl Bernd Fiehöfer Berufseinstieg für Ingenieure Elke Pohl Bernd Fiehöfer Berlin, Deutschland ISBN 978-3-658-05073-3 DOI 10.1007/978-3-658-05074-0 ISBN 978-3-658-05074-0

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

dpunkt.lehrbuch Bücher und Teachware für die moderne Informatikausbildung

dpunkt.lehrbuch Bücher und Teachware für die moderne Informatikausbildung Hanspeter Mössenböck ist Professor für Informatik an der Universität Linz und Leiter des Instituts für Systemsoftware. Er beschäftigt sich vor allem mit Programmiersprachen, Compilern und Systemsoftware.

Mehr

Microsoft.NET Framework

Microsoft.NET Framework Microsoft.NET Framework Anita Sosnecki Universität Bonn Institut für Informatik Seminar Softwaretechnologie WS 2003 Übersicht Einleitung Was ist.net?.net Framework.NET Komponenten Assemblies Deployment

Mehr

Anleitung zum Archive Reader. ab Version 2029 WWW.REDDOXX.COM

Anleitung zum Archive Reader. ab Version 2029 WWW.REDDOXX.COM Anleitung zum Archive Reader ab Version 2029 WWW.REDDOXX.COM Inhaltsverzeichnis 1. Einführung...4 1.1. Ziel dieses Dokumentes...4 1.2. Zielgruppe für wen ist dieses Dokument bestimmt...4 1.3. Hauptpunkte...4

Mehr

Robuste Handkonturerkennung

Robuste Handkonturerkennung Informatik Oliver Jorkisch Robuste Handkonturerkennung Initialisierung eines Handtrackingverfahrens Diplomarbeit Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische Information

Mehr

Für diese Anleitung benötigen Sie: Generelles zu OpenCV (Intel's Open Computer Vision C/C++ Bibliothek) Einrichten der Entwicklungsumgebung

Für diese Anleitung benötigen Sie: Generelles zu OpenCV (Intel's Open Computer Vision C/C++ Bibliothek) Einrichten der Entwicklungsumgebung 27.04.2008 Windows (XP), Microsoft Visual C++ Express 2008 und OpenCV Kurzanleitung zum Einrichten einer Entwicklungsumgebung für die Bildverarbeitung Für diese Anleitung benötigen Sie: Einen Windows PC

Mehr

Die deutsch-französischen Beziehungen von der Wiedervereinigung zum Maastrichter Vertrag

Die deutsch-französischen Beziehungen von der Wiedervereinigung zum Maastrichter Vertrag Bachelorarbeit Johannes Müller Die deutsch-französischen Beziehungen von der Wiedervereinigung zum Maastrichter Vertrag Die Rolle Helmut Kohls und François Mitterrands Bachelor + Master Publishing Müller,

Mehr

IT-Controlling für die Praxis

IT-Controlling für die Praxis Martin Kütz IT-Controlling für die Praxis Konzeption und Methoden 2., überarbeitete und erweiterte Auflage Martin Kütz kuetz.martin@tesycon.de Lektorat: Christa Preisendanz & Vanessa Wittmer Copy-Editing:

Mehr

Überblick. Exkurs: Organisation des Quellcodes (1)

Überblick. Exkurs: Organisation des Quellcodes (1) Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 3. Grundlagen des Typkonzepts von C++ 4. Ziele der Objektorientierung 5. Objekt und Klasse, Elementfunktionen

Mehr

Übung Softwareentwicklung 1, WS0910 Gemeinsame Einführung

Übung Softwareentwicklung 1, WS0910 Gemeinsame Einführung Übung Softwareentwicklung 1, WS0910 Gemeinsame Einführung Informatik, Informationselektronik, Wirtschaftsinformatik, Lehramt Informatik, Chemie, etc. Dipl.-Ing. Institute for Pervasive Computing Johannes

Mehr

Moderne Entwicklungsumgebungen am Beispiel von.net

Moderne Entwicklungsumgebungen am Beispiel von.net Moderne Entwicklungsumgebungen am Beispiel von.net Prof. Dr. Walter F. Tichy Dipl.-Inform. Philip Pfaffe IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH

Mehr

Jörg Pacher. Game. Play. Story? Computerspiele zwischen Simulationsraum und Transmedialität

Jörg Pacher. Game. Play. Story? Computerspiele zwischen Simulationsraum und Transmedialität 3 Jörg Pacher Game. Play. Story? Computerspiele zwischen Simulationsraum und Transmedialität J. Pacher: Game. Play. Story? Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 21. Oktober 2015 Entstehung von Java 1991 entwickeln Mike Sheridan, James

Mehr

Janina Spieß. Die Beziehung zu Kindern in der Krippe gestalten. Gebärden und Gesten als pädagogische Hilfsmittel. Diplomica Verlag

Janina Spieß. Die Beziehung zu Kindern in der Krippe gestalten. Gebärden und Gesten als pädagogische Hilfsmittel. Diplomica Verlag Janina Spieß Die Beziehung zu Kindern in der Krippe gestalten Gebärden und Gesten als pädagogische Hilfsmittel Diplomica Verlag Janina Spieß Die Beziehung zu Kindern in der Krippe gestalten: Gebärden und

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

09.10.2015. 02.10.2015 + 07.10.2015 Seite 1. 02.10.2015 + 07.10.2015 Seite 2

09.10.2015. 02.10.2015 + 07.10.2015 Seite 1. 02.10.2015 + 07.10.2015 Seite 2 02.10.2015 + 07.10.2015 Seite 1 02.10.2015 + 07.10.2015 Seite 2 1 Anzahl der Klassenarbeiten: Mindestens zwei Klassenarbeiten pro Halbjahr (= 4 KA pro Jahr) Im ersten Ausbildungsjahr gibt es jedoch kein

Mehr