finished ADO

This commit is contained in:
Ace 2021-03-10 22:29:20 +01:00
parent 1a6a08e3ef
commit ca962ced6e
1 changed files with 169 additions and 2 deletions

171
readme.md
View File

@ -6,28 +6,33 @@ Theorie:
1. Welche Bedeutung hatte die Einführung grafischer Benutzeroberflächen für die Verbreitung von PCs?
→ Die PCs wurden damit für die Massen eifach zu benutzen und verbreiteten sich deshalb sehr gut seit es GUIs gibt.
2. Nennen Sie drei Merkmale von Windowsprogrammen!
→ Oft mit .NET, C++, C# programmiert
→ Benutzen die WindowsAPI
→ Alle Benutzereingaben werden zuerst von Windows abgefangen und dann an das Programm gesendet für das es bestimmt war
3. Erläutern Sie den Unterschied zwischen einem Programm und einem Prozess!
-> Ein Prozess kann bestandteil eines Programms sein, es ist die bestimmte Aufgabe die ausgeführt wird
-> Ein Programm ist eine Passive Entität, z.b. eine Ausführbare Datei
-> Ein Programm ist eine Bündelung vieler Prozesse um Funktionalität zu bieten
4. Was versteht man unter einer „Instanz eines Programms“?
-> Ein Programm das gerade ausgeführt wird, wenn sie dassselbe Programm nochmal öffnen (in einem neuen Fenster) dann ist dies eine zweite Instanz desselben Programmes.
5. Beschreiben Sie die Aufgaben des Windows Betriebssystems, wenn eine neue Anwendung gestartet wird!
-> zuerst wird in WinMain eine Fensterklasse während der Initialisierung erstellt
-> Fensterklasse (als Structure vordefiniert) muss mit Infos zum Fenster und zu der Fensterfunktion gefüllt werden
-> Fenster wird mit CreateWindow() erzeugt und mit ShowWindow() angezeigt
-> UpdateWindow() updatet die anzeige
6. Beschreiben Sie die Aufgaben des Windows Betriebssystems, wenn eine Anwendung geschlossen wird!
-> Benutzereingabe bekommt einen Eintrag in der Application-Queue
-> Message Loop verarbeitet die Eingabe
@ -40,15 +45,18 @@ Theorie:
-> Weil jeder Prozess seinen eigenen „Speicherraum“ besitzt und nicht auf Speicher eines Anderen Prozesses zugreifen kann (Sandbox)
8. Welche Vorteile bieten multithreadingfähige Systeme?
-> Abarbeitung mehrer Prozesse „gleichzeitig“
-> „schneller“ (Effektiver Einsatz der CPU)
-> Schnelle (low-latency) Kommunikation zwischen mehreren Prozessen eines Programms
--> https://docs.oracle.com/cd/E19455-01/806-3461/6jck06gqj/index.html
--> https://zone.ni.com/reference/de-XX/help/371361R-0113/lvconcepts/benefits_multi_apps/
9. Unterschied zwischen kooperativem und Preemptivem Multitasking?
Kooperatives Multitasking:
@ -57,9 +65,11 @@ Theorie:
Preemptives Multitasking:
-> System kann jederzeit (nach Ausführung jedes CPU-Befehls) die Kontrolle über die CPU entziehen.
10. Warum können „abgestürzte“ DOS-Programme das ganze OS Lahmlegen?
-> wegen kooperativem Multitasking dass die volle Kontrolle der CPU an den Prozess abgibt.
11. Abarbeitung einer Tastatureingabe über die Message Loop:
1. User drückt Taste
@ -69,12 +79,14 @@ Theorie:
5. Windows wird angewiesen, die Fensterfunkton aufzurufen
6. Fensterfunktion reagiert auf die Tastatureingabe
12. Welche Aufgabe erfüllt die Fensterfunktion WinProc()?
Eine Art Event-Handler des Fensters der die eingehenden Botschaften empfängt und verarbeitet
-> Z.B. die Botschaft WM_DESTROY -> Fenster schließen
-> jedes Fenster definiert seine eigene Fensterfunktion
13. Beschreiben Sie den grundsätzlichen Aufbau einer Fensterfuktion unter Win32?
-> Einfach nur ein switch-case mit allen benötigten Botschaften die anfallen können bzw für das Programm wichtig sind.
@ -93,11 +105,13 @@ Theorie:
- TAPI - Telephone API (Fax, ...)
- COM-API - Für den zugriff auf com schnittstellen
16. Welche Bedeutung hat die API für den Programmierer?
- Eine API bietet den zugriff auf bestimmte vorgefertigte Funktionen an
- z.b. die coinAPI zum abgreifen von Kryptowährungs-Daten
17. Erläutern Sie, welches Wissen ein Windows - Anwendungsentwickler zusätzlich zur Kenntnis der Programmiersprache benätigt
- Windows API
@ -129,6 +143,9 @@ Theorie:
- hbrBackground Hintergrundfarbe des Fensters
- lpszClassName Pointer zum Klassennamen oder einem Alias dafür
**Grundlagen des .NET Frameworks**
21. Zweck der Common Language Runtime
@ -139,11 +156,13 @@ Theorie:
- JIT Compilation
- Exception Handling
22. Wozu dient Garbage Collection
- löscht nicht mehr benötigte Objekte/Zeiger zur Laufzeit
-> befreit Speicher vom Prozess und beugt somit Memory Leaks vor
23. Weg vom Quellcode zur Ausführung in .NET
- Umwandlung des Code in MSIL
@ -153,7 +172,8 @@ Theorie:
Logische Schritte:
Compilation ---> Execution
Source-Code -> Language-Compiler -> MSIL + Metadaten -> JIT Compiler -> Native Code
24. Zweck der MSIL hinsichtlich hinsichtlich Programmiersprachen übergreifender Entwicklung von Software
Um möglichst viele Programmiersprachen/Techniken zu unterstützen wird der Code in MSIL als Zwischen-
@ -163,7 +183,8 @@ Theorie:
für ihre Programmiersprache zu erstellen
- Somit können in der Theorie alle Programmiersprachen, welche die Vorgaben von
MSIL (definiert in CLR) einhalten
25. Unterschied Klassenbezeichnung und Namensraum
Klassenbezeichnung:
@ -177,6 +198,7 @@ Theorie:
zusammenfasst, um im Code Struktur und Ordnung zu gewährleisten. Diese Namensräume können
somit importiert werden um gewisse Teile des Codes voneinander abzugrenzen.
26. Zugriff auf eine bestimmte Klasse in einem Namensraum
- Anhand des Schlüsselworts "using" wird ein Namespace im Code eingebunden
@ -188,21 +210,25 @@ Theorie:
Instanziierung der Klasse als Objekt: File datei = new File();
27. Basisklasse aller .NET Klassen
- Object
28. Zwei Arten von Datentypen unter .NET
- String
- Ganzzahl (int)
29. Unterschied zwischen Reference und Value Types
- Ein value Type ist ein Datentyp, der die Werte direkt speichert
- Ein Referenztyp speichert nicht direkt Werte, sondern speichert die Adresse des Wertes im Arbeitsspeicher
z.B. Pointer
30. Was ist Boxing/Unboxing
- Beim Boxing wird ein Child-Objekt in sein Parent-Objekt umgewandelt
@ -213,12 +239,14 @@ Theorie:
object o = i; // boxing
int j = (int)o; // unboxing
31. Zweck der CLS
- Die CLS definiert die Regeln die von jeder Sprache im .NET Framework befolgt werden müssen
- Die Sprachen, die CLS befolgen sind CLS Compliant
-> CLS ermöglicht die Integration und Interoperabilität mehrerer Programmiersprachen im selben Projekt
32. Arten von Assemblies
- Private assembly (.dll and .exe are at the same place)
@ -227,27 +255,33 @@ Theorie:
- Distributed assembly (in different parts)
- Satellite assembly (on the network)
33. Was ist der Global Assembly Cache
- Der GAC ist ein Verfahren des .NET Frameworks um Versionskonflikte in Programmen vorzubeugen
- Speichert alle Assemblies mit Name, Versionsnummer und einzigartigem Token
-> das gleiche Assembly kann mehrere Male gespeichert werden
34. Welche Informationen sind in einer Assembly gespeichert
- Name
- Versionsnummer
- Token
35. Was ist Side By Side Installation
- Mehrere Installationen des selben Assemblies
36. Was ist Probing im .NET Framework
- Gibt Anwendungen das Basisberzeichnis für das Common Language Runtime an, das beim Laden des
Assembly gesucht werden soll
**ADO.NET**
37. Connected <> Disconnected Modell
@ -265,6 +299,139 @@ Theorie:
- mehr Auslastung beim Client, da Daten im Arbeitsspeicher
- Benutzen von DataSet beim Datenbankzugriff
38. DataProvider und DataSet aus ADO.NET
DataProvider:
- wird zum Herstellen der Verbindung mit einer Datenbank
- führt Befehle auf der Datenbank aus
- wird im connected Modell benutzt um Daten aus der Datenbank zu lesen/schreiben
DataSet:
- Kommt beim Disconnected Modell zum einsatz
- Bildet die Datenbank ab
- Dient als Lokaler Speicher der Datenbank auf dem Client
- ist als Cache für die Daten zu betrachten
39. Nachteile der OLE-DB und ODBC.NET DataProvider
- Langsamer als native Datenbanktreiber
- benötigt mehr CPU-Ressourcen
- weitere Schicht zwischen Programm und Datenbank -> höhere Fehlerwarscheinlichkeit
- Viele OLE und ODBC Treiber in .NET stammen aus der COM zeit und sind veraltet
40. Vor- und Nachteile des Connected- bzw Disconnected Modells
Connected:
Vorteile:
- Daten sind immer aktuell
- Einfachere Wartung
Nachteile:
- Mehr Netzwerkauslastung beim Server
- Ständige Netzwerkverbindung erforderlich
Disconnected:
Vorteile:
- Keine Ständige Netzwerkverbindung erforderlich
- Weniger Netzwerkauslastung
- Skalierbarkeit und Performance
Nachteile:
- Daten sind nicht aktuell
- Daten müssen beim Client im Arbeitsspeicher abgelegt werden
- Konkurrierende Zugriffe
41. Einsatzbeispiele von Disconnected- und Connected Modells:
Connected:
- Warenwirtschaftssystem
- Büro/Office Umgebungen
Disconnected:
- Smartphone Apps
- Außendienstmitarbeiter
***MANU DU SPASST***
42. Aufgaben des Connection Objects, Command Objects, Parameter Objects und des DataReader Objects
Connection Object:
- stellt eindeutige Verbindung/Sitzung zum Datenbankserver/Datenquelle dar
- verbindung mit Server
Command Object:
- eine SQL-Anweisung oder gespeicherte Prozedur die in einer Datenbank ausgeführt werden soll
Parameter Object:
- sql-injection mitigation
- damit kann man parameterisierte Abfragen erstellen die WHERE statements obsolet machen
DataReader Object:
- stellt Verfahren zum lesen eines vorwärtsstreams von Zeilen in einer Datenbank bereit
43. Einschränkungen beim benutzen eines DataReaders:
- readOnly / forwardOnly zugriff
- nur für schnelles einmaliges Lesen geeignet
44. Zusammenarbeit von DataAdapter, DataSet und DataTables im Disconnected Modell:
- DataAdapter verfügt über select command - Object welches Daten aus der DB holt
- die Fill-Methode des DataAdapter erwartet als Parameter ein DataSet und einen Namen für das zu erstellende DataTable Objects
- erzeugung im jeweils übergebenen DataSet ein DataTable Object
- beim Update der DB werden je nach Änderung das INSERT, UPDATE oder DELETE command des DataAdapters aufgerufen
- DataAdapter stellt das Bindeglid zwischen DataSet Tabelle und DB dar
- pro DataTable eines DataSets gibt es idR. einen DataAdapter
45. Die 4 Command Objecte eines DataAdapters
SELECT Command-Object:
- lesen von Daten aus der DB
UPDATE Command-Object:
- ändern von Datensätzen
INSERT Command-Object:
- einfügen neuer Datensätze
DELETE Command-Object:
- löschen von Daten
46. Collections und Objekte eines DataSets
- Tables
- Columns
- Constraints
- Rows
- Relations
***SEE SHARP PROGRAMMIERUNG***
47. Abfangen von Ereignissen unter C#
- in der WndProc Methode muss ein Handler erstellt werden
-
Legende:
- MSIL : Microsoft Intermediate Language (auch CIL - Common Intermediate Language)