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