Rechtschreibung/Grammatik

This commit is contained in:
Hollowpoint186 2021-03-15 18:58:39 +01:00
parent 0e57874a2c
commit 72459ca9dc
1 changed files with 96 additions and 67 deletions

163
readme.md
View File

@ -4,53 +4,54 @@ Theorie:
**Windows Grundlagen:**
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.
- Die PCs wurden damit für die Massen einfach 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
- 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
- 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.
- Wenn ein bereits laufendes Programm (in einem 2. Fenster)nochmal gestartet wird,
ist das z.B. eine 2. Instanz des selben Programms
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
- 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() aktualisiert 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
-> Windows wird angewiesen die Logik zur Programmbeendung auszuführen (Fenster schließen, Programminstanz beenden, Speicher freigeben...)
- Benutzereingabe bekommt einen Eintrag in der Application-Queue
- Message Loop verarbeitet die Eingabe
- Windows wird angewiesen die Logik zur Programmbeendung auszuführen (Fenster schließen,
Programminstanz beenden, Speicher freigeben...)
7. Weshalb können unterschiedliche Anwendngen in Win32 nicht über Zeiger auf die gleiche Speicheradresse miteinander kommunizieren?
7. Weshalb können unterschiedliche Anwendungen in Win32 nicht über Zeiger auf die gleiche Speicheradresse miteinander kommunizieren?
-> Weil jeder Prozess seinen eigenen „Speicherraum“ besitzt und nicht auf Speicher eines Anderen Prozesses zugreifen kann (Sandbox)
- 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
- 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
@ -60,14 +61,16 @@ Theorie:
9. Unterschied zwischen kooperativem und Preemptivem Multitasking?
Kooperatives Multitasking:
-> gibt die volle CPU-Kontrolle an den auszuführenden Prozess ab und erhält sie erst nach erfolgreicher abarbeitung des Prozesses wieder. (Crash-Problem unter z.B. DOS)
- gibt die volle CPU-Kontrolle an den auszuführenden Prozess ab und erhält sie erst
nach erfolgreicher abarbeitung des Prozesses wieder. (Crash-Problem unter z.B. DOS)
Preemptives Multitasking:
-> System kann jederzeit (nach Ausführung jedes CPU-Befehls) die Kontrolle über die CPU entziehen.
- 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.
- wegen kooperativem Multitasking, das die volle Kontrolle der CPU an den Prozess abgibt.
11. Abarbeitung einer Tastatureingabe über die Message Loop:
@ -83,18 +86,20 @@ Theorie:
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
- 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.
- Einfach nur ein switch-case mit allen benötigten Botschaften die
anfallen können bzw für das Programm wichtig sind.
14. Bedeutung von Botschaften in ereignisgesteuerten Systemen
- Eventlistener greifen die Botschaften auf und entscheiden dann anhand der Botschaft den weiteren Ablauf des Programms/Prozesses
- Eventlistener greifen die Botschaften auf und entscheiden dann
anhand der Botschaft den weiteren Ablauf des Programms/Prozesses
15. Nennen Sie vier Schnittstellen für Windows - Programmierer und deren spezielles Anwendungsgebiet?
@ -109,10 +114,10 @@ Theorie:
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
- 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
17. Erläutern Sie, welches Wissen ein Windows - Anwendungsentwickler zusätzlich zur Kenntnis der Programmiersprache benötigt
- Windows API
- Fensterfunktion
@ -160,7 +165,7 @@ Theorie:
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
- befreit Speicher vom Prozess und beugt somit Memory Leaks vor
23. Weg vom Quellcode zur Ausführung in .NET
@ -179,7 +184,7 @@ Theorie:
Um möglichst viele Programmiersprachen/Techniken zu unterstützen wird der Code in MSIL als Zwischen-
sprache übersetzt.
- Da gewisse Teile des .NET Frameworks offen sind, ist es Drittherstellern möglich eigene Compiler
- Da gewisse Teile des .NET Framework offen sind, ist es Drittherstellern möglich eigene Compiler
für ihre Programmiersprache zu erstellen
- Somit können in der Theorie alle Programmiersprachen, welche die Vorgaben von
MSIL (definiert in CLR) einhalten
@ -249,9 +254,9 @@ Theorie:
32. Arten von Assemblies
- Private assembly (.dll and .exe are at the same place)
- Shared assembly(.dll and .exe are at different place)
- Dynamic assembly (dynamically create )
- Private assembly (.dll and .exe are at the same place)
- Shared assembly(.dll and .exe are at different places)
- Dynamic assembly (dynamically create)
- Distributed assembly (in different parts)
- Satellite assembly (on the network)
@ -277,9 +282,8 @@ Theorie:
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
- Gibt Anwendungen das Basisberzeichnis für das Common Language Runtime an,
das beim Laden des Assembly gesucht werden soll
**ADO.NET**
@ -303,12 +307,12 @@ Theorie:
38. DataProvider und DataSet aus ADO.NET
DataProvider:
- wird zum Herstellen der Verbindung mit einer Datenbank
- wird zum Herstellen der Verbindung mit einer Datenbank benutzt
- führt Befehle auf der Datenbank aus
- wird im connected Modell benutzt um Daten aus der Datenbank zu lesen/schreiben
- wird im Connected Modell benutzt um Daten aus der Datenbank zu lesen/schreiben
DataSet:
- Kommt beim Disconnected Modell zum einsatz
- 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
@ -318,7 +322,7 @@ Theorie:
- Langsamer als native Datenbanktreiber
- benötigt mehr CPU-Ressourcen
- weitere Schicht zwischen Programm und Datenbank -> höhere Fehlerwarscheinlichkeit
- weitere Schicht zwischen Programm und Datenbank -> höhere Fehleranfälligkeit
- Viele OLE und ODBC Treiber in .NET stammen aus der COM zeit und sind veraltet
@ -359,45 +363,46 @@ Theorie:
Connection Object:
- stellt eindeutige Verbindung/Sitzung zum Datenbankserver/Datenquelle dar
- verbindung mit Server
- 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
- 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
- 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
- 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
- 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
- beim Update der DB wird je nach Änderung das INSERT, UPDATE oder DELETE Command des DataAdapters aufgerufen
- DataAdapter stellt das Bindeglied 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
- Lesen von Daten aus der DB
UPDATE Command-Object:
- ändern von Datensätzen
- Ändern von Datensätzen
INSERT Command-Object:
- einfügen neuer Datensätze
- Einfügen neuer Datensätze
DELETE Command-Object:
- löschen von Daten
- Löschen von Daten
46. Collections und Objekte eines DataSets
@ -409,7 +414,6 @@ Theorie:
- Relations
***SEE SHARP PROGRAMMIERUNG***
47. Abfangen von Ereignissen unter C#
@ -435,9 +439,9 @@ Theorie:
50. Parameter einer Handler - Methode:
object sender:
Object sender:
- der sender des Events (der Button in unserem Beispiel)
- Komplettes Button Objekt inkl seiner Eigenschaften usw
- Komplettes Button Objekt inkl seiner Eigenschaften usw.
System.EventArgs e:
- Eigenschaften des Events
@ -472,7 +476,8 @@ Theorie:
54. Eigenschaften und Methoden eines Exception Objekt
- Das Exception Objekt wird in try - catch Blöcken verwendet und wird zum bheandeln von Ausnahmen in der Programmlogik verwendet
- Das Exception Objekt wird in try - catch Blöcken verwendet
und wird zum behandeln von Ausnahmen in der Programmlogik verwendet
Eigenschaften:
- Stacktrace
@ -484,6 +489,7 @@ Theorie:
- GetType | Gibt den Typ der Exception zurück wie z.B. IOException
- ToString | Gibt die Exception Message als String zurück
55. Exception Handling Erklärung
- Mit try - catch kann man eine Exception abfangen
@ -491,10 +497,11 @@ Theorie:
- Der catch Block wird üblicherweise zum Logging der Exception verwendet, oder die Exception wird weiterverarbeitet
- mit *throw new Exception()* kann man absichtlich eine Exception auslösen
56. Eigene Exception erstellen
- klasse von Exception (oder abgeleiteter Exception Klasse) ableiten
- konstruktor der Basisklasse für Fehlermeldung nutzen
- Klasse von Exception (oder abgeleiteter Exception Klasse) ableiten
- Konstruktor der Basisklasse für Fehlermeldung nutzen
public class myException: System.Exception
{
@ -504,17 +511,20 @@ public class myException: System.Exception
}
}
57. Vorteile des Structured Exception Handling
- Trennung von Programm und Fehlerlogik
- genaue Fehlerbeschreibung inkl Zusatzinformationen
- abfangen mehrerer Exceptions möglich
58. Serialisierung/Deserialisierung
Unter Serialisierung versteht man das Speichern eines Objektes auf einem beständigen Speichermedium und das Wiederherstellen ders Objektes anhand seiner Daten im Programm.
(Deserialisierung)
59. Unterschiede zwischen Binary und XML Serialisierung
XML:
@ -527,6 +537,7 @@ public class myException: System.Exception
- Binärformat ist unflexibel
- private Elemente werden mitserialisiert
60. Erstellung einer serialisierten Klasse
[Serializable]
@ -536,6 +547,7 @@ public class myException: System.Exception
public String str = null;
}
61. Umsetzung der binären Serialisierung | https://www.guru99.com/c-sharp-serialization.html
- Serializable Klasse erstellen
@ -545,6 +557,7 @@ public class myException: System.Exception
- Mit BinaryFormatter.Serialize eingelesenen Stream und Serializable Objekt serialisieren
- Stream schließen mit .Close()
62. Implementierung von XML Serialisierung
```
MyClass obj1 = new MyBeispiel( );
@ -561,6 +574,8 @@ public class myException: System.Exception
MyClass obj2 = (MyClass) s.Deserialize(fs);
fs.Close( );
```
63. DataBindingSource Objekt
Die BindingSource Komponente dient vielen Zwecken.
@ -570,12 +585,14 @@ public class myException: System.Exception
DataSetTabelle --- DataBindingSource Objekt --- Steuerelement
64. Simple und Complex Binding von Steuerelementen
Beim simple binding bindet man nur eine Eigenschaft an einen
Datensatz (z. B. die Text-Property eines Textfeldes an den Namen des Personenobjekts).
Verwendet man das complex binding, so werden mehrere Datensätze an ein Steuerelement
gebunden (z. B. alle Daten mehrerer Datensätze an ein DataGrid oder alle Namen an eine ComboBox).
Beim simple binding bindet man nur eine Eigenschaft an einen
Datensatz (z.B. die Text-Property eines Textfeldes an den Namen des Personenobjekts).
Verwendet man das complex binding, so werden mehrere Datensätze an ein Steuerelement
gebunden (z.B. alle Daten mehrerer Datensätze an ein DataGrid oder alle Namen an eine ComboBox).
65. BindingNavigator Objekt
@ -594,6 +611,7 @@ public class myException: System.Exception
- based on ToolStrip.
- extensible and pluggable.
66. Zweck einer DAO Klasse
```
DAO - Klasse (Data Access Object):
@ -607,6 +625,8 @@ DAO - Klasse (Data Access Object):
-> Data Access Object Klassen kapseln die Serialisierung/ Deserialisierung von Objekten.
Programmlogik und Datenverwaltung sind getrennt!
```
67. Aufgabe des Gerätekontextes beim Druck in C#
- Graphics Eigenschaft der Klasse PrintPageEventArgs
@ -624,10 +644,12 @@ DAO - Klasse (Data Access Object):
bereit („virtuelle Zeichenleinwand“). Somit wird eine hardwareunabhängige Ausgabelogik im
Programm möglich.
68. Warum funktioniert die Druckvorschau ohne installierten Drucker nicht?
Weil kein Druckertreiber verfügbar ist.
69. Prinzipieller Druckvorgang unter C#
Druckvorgang:
@ -665,6 +687,7 @@ DAO - Klasse (Data Access Object):
g.DrawString(text, schrift, brush, xPosition, yPosition);
```
70. Welche Elemente sind in PrintPageEventArgs
Eigenschaften:
@ -682,22 +705,26 @@ DAO - Klasse (Data Access Object):
- MemberwiseClone()
- ToString()
71. Benutzerdialoge zur Druckunterstützung
- PrintDialog
- PrintPreviewDialog
- PageSetupDialog
72. Einrichten von Seitenränder
Seitenränder setzen
-> PageSattings Objekt -> Margins… (Left, Rightt, Top, Bottom) setzen
73. Vorgehensweise zum Ermitteln des bedruckbaren Bereichs
Bedruckbaren Bereich ermitteln
-> PrintPageEventArgs e -> MarginBounds… (Left, Rightt, Top, Bottom) nutzen.
74. Initialisierung einer Schriftart
Schriftarten erstellen
@ -706,6 +733,7 @@ DAO - Klasse (Data Access Object):
Font headerFont = new Font ("Arial",18, FontStyle.Bold);
```
75. Höhe und Breite eines Textes zur Textpositionierung berechnen
- Graphics.MeasureString() verrechnet Font mit String
@ -714,6 +742,7 @@ DAO - Klasse (Data Access Object):
of the string specified by the text parameter as drawn
with the font parameter.
76. DrawString Funktionsweise
Draws the specified text string at the specified location with the specified Brush and Font objects.