Hochschule Darmstadt Fachbereich Informatik

Transcription

Hochschule Darmstadt Fachbereich Informatik
Hochschule Darmstadt
Fachbereich Informatik
WPF Routed Events, Datenbankanbindung
03.05.2010
63
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
Praktikum
Tipp: Beispiellösungen zu P4: http://dotnet.jku.at/csbuch/solutions/
Projektvorschläge:
Internet-Timeout
Outlook-Addin
Analoge Uhr mit Wecker
EWA-Pizza in Asp
Movie-Db
Turnierplaner im Web
Office Copy
Vokabeltrainer
Dateisucher
64
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
1
Arbeitstext: Understanding Routed Events and Commands In WPF
Arbeiten Sie die Seiten 110 – 115 des Skripts durch
Welche Art von Events werden per tunneling/bubbling weiter
gereicht?
Was versteht man unter einem Visual Tree bei WPF?
Welche Builtin-Commands werden unterstützt?
Gibt es einen Unterschied zwischen Eventrouting und
Commandrouting?
65
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
Visual Tree vs Logical Tree
Quelle: http://www.wpftutorial.net/LogicalAndVisualTree.html
66
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
2
Wo sind wir?
.Net
WinForm
C#
Komponenten
WPF
Datenbankanbindung
Web (Asp.Net)
Asp.Net MVC
WCF, WWF
.Net
67
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
Datenbankanbindung - Agenda
Technologien
ADO.NET, die Basis
Datareader und Co
Entity Framework
LINQ
Typische Probleme/Aufgaben:
Lesender Zugriff, ohne DB-Verbindung offen, auf eine oder mehr
Tabellen
Zusammenhängender schreibender Zugriff (Transaktion)
Mehrere Benutzer traversieren/verändern identische Datensätze
Änderungen im DB-Modell, Folgeänderungen in OO-Applikationen
Kunde X hat Datenbanksystem A, Kunde Y hat Datenbanksystem B
Eingeschränkter Zugriff auf DB, Firewall, …
68
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
3
Microsoft Data Development Technologies
ORM
Quelle: http://msdn.microsoft.com/de-de/library/ee730344%28en-us%29.aspx
69
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
Ado.Net Architektur
Quelle: http://msdn.microsoft.com/de-de/library/27y4ybxw%28VS.80%29.aspx
70
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
4
Exp:dbconnected
try
fin.
71
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
Parametrisierter Command
List<Customer> customers = new List<Customer>();
SqlConnection c = new SqlConnection(ConnectionString);
SqlCommand cmd = new SqlCommand(
@"SELECT c.Name, c.Phone, c.ID
FROMM Customers c
WHERE c.City = @po");
cmd.Parameters.AddWithValue("@p0", "USA");
DbDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Customer cust = new Customer();
cust.CompanyName = dr.GetString(0);
cust.ContactName = dr.GetString(1);
cust.Country = dr.GetString(2);
cust.CustomerID = dr.GetString(3);
}
dr.Close();
return customers;
72
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
5
73
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
74
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
6
Aufgabe: DataSets vs. DataReaders, ordnen Sie zu
Forward and
backward scanning
of data
Forward-only
Read/write
access to
data
DataSet
DataReader
Disconnected
Bind to one control only
Connected
Slow access
Based on one SQL
statement from one
database
Fast access
Includes multiple tables from
different databases
Bind to multiple
controls
Read-only
77
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
Hausaufgabe
Vertiefen Sie Ihre Kenntnisse über Dataset und Datareader mit dem
Artikel im Anhang
78
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
1
Ado.Net Entity Framework
ORM
Framework
von Microsoft
Unterstützt
MS SQL
Server,
Oracle, DB2
Abfragen mit
LINQ
Baut auf
ADO.Net auf
Quelle: http://msdn.microsoft.com/de-de/data/bb399567.aspx
82
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
Exp:LinqAdo
LINQ und ADO.NET
Quelle:http://msdn.microsoft.com/en-us/library/bb399365%28VS.100%29.aspx
83
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
1
LINQ
LINQ – Language Integrated Query (ab .NET Framework 3.5)
LINQ ermöglicht die Abfrage von Daten in einer sprachintegrierten Form.
Streng typisiert
Queries werden zur Laufzeit geprüft, nicht erst zur Ausführungszeit.
LINQ kann angewendet werden auf
.NET Framework-Auflistungen (LINQ to Objects)
DataSet (LINQ to DataSet)
XML-Dokumente (LINQ to XML)
SQL-Server (LINQ to SQL)
Syntax:
Restriction : where
Grouping : group by
Ordering : orderby
Projection : select
…
Quelle: http://www.uni-siegen.de/fb5/wirtschafts_informatik/lehre/vorl_ws_0809/oo_prog/dateien/vorlesung/ppt/c_5_linq.ppt
85
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
LINQ hinter den Kulissen – System.Linq.Enumerable
var result =
from s in students
where s.Field =="Informatik“
orderby s.Name
select new {s.Name, s.Id];
var result =
Students
.Where(s=>s.Field==)
.OrderBy(s=>s.Name)
Select(s=>new {s.Name, s.Id]);
Compiler
Where etc. sind
Erweiterungsmethoden, z.B.
Where<TSource>(IEnumerable<TS
ource>, Func<TSource, Boolean>)
86
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
1
LINQ:Entity Classes, DataContext
[Table(Name="Customers")]
public class Customer
{
public string CustomerID; // Transient data not stored in DB
public string City;
// Transient data not stored in DB
}
// DataContext ADO.NET connection
// DataContext takes a connection string
DataContext db = new
DataContext("c:\\northwind\\northwnd.mdf");
// Get a typed table to run queries
Table<Customer> Customers = db.GetTable<Customer>();
// Query for customers from London
var q = from c in Customers where c.City == "London" select
c;
Quelle:http://dsrg.mff.cuni.cz/~jezek/Csharp%203.0%20and%20LINQ%20-%202007.ppt
87
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
LINQ: Schreibender Zugriff auf Entity
Northwind db = new Northwind("c:\\northwind\\northwnd.mdf");
// Query for a specific customer
string id = "ALFKI";
var cust = db.Customers.Single(c => c.CustomerID == id);
// Change the name of the contact
cust.ContactName = "New Contact";
// Delete an existing Order
Order ord0 = cust.Orders[0];
// Removing it from the table also removes it from the Customer’s list
db.Orders.Remove(ord0);
// Create and add a new Order to Orders collection
Order ord = new Order { OrderDate = DateTime.Now };
cust.Orders.Add(ord);
// Ask the DataContext to save all the changes – generates appropriate SQL
command
db.SubmitChanges();
88
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
2
Übersicht, erster Schritt Klausurvorbereitung
Sortieren Sie folgende Begriffe nach
kenne ich nicht,
kann ich erklären,
- kenne ich ein gutes Beispiel
- Was ist zu beachten/besonders?
Sortieren Sie diese
Diskutieren Sie mit Ihrem Nachbarn.
Begriffe: CLR, ValueType, ReferenceType, Delegate, Event, Interface,
Property, .Net-Attribute, Reflection, UserControl, Anonyme Methode,
Lambda, Indexer, XML-Serialisierung, WPF, Visual Tree, Logical Tree, Event
Routing, Application Command, Garbage Collector, Boxing, DataReader,
SqlCommand, DataSet, Databinding, WCF, WF, LiNQ, Assembly, is/as,
StringBuilder, DataAdapter, EF, using, Operatorenüberladung,
Mehrfachvererbung, Enumeration, MEF, MAF, Anwendungsdomäne,
Masterseite, MVC, Lebenszyklus einer Webseite, Ereignismodell,
Zustandsverwaltung, Konfiguration, Ajax
90
Dr. Ute Blechschmidt-Trapp, h_da Fachbereich Informatik, .Net Framework und C#, SS 2010
1