Slides - NET User Group Bern

Werbung
.NET
User
Group
Bern
René Leupold
Patrick Weibel
www.dnug-bern.ch
Follow dnugbe on twitter
DNUG Bern Sponsoren
Über René Leupold
• [email protected] (live)
• http://www.databinding.net
• CV siehe Xing ;-)
Über Patrick Weibel
•
•
•
•
[email protected]
http://blog.eweibel.net
twitter.com/pweibel
CV siehe Xing
Vorbereitung reicht für mehr
• Einmal mehr den Rotstift angesetzt
Agenda
•
•
•
•
•
•
•
•
Abfragen
Lazy und Eager Loading
Debugging/Profiling
Optimierung
Concurrency
Auditing
Validierung
Caching
Abfragen
-Alle Produkte
- Hardcover Gewicht > 100
-Orders mit Ebook
-Order KPI
Abfragen
Entity Framework
NHibernate
• eSQL
• ExecuteStoreCmd./Query
• Linq
•
•
•
•
•
•
• SQL Injection
• Besonderheiten Abfrage
(ToList)
HQL
Native SQL
Linq
Criteria Queries
Named Queries
NH 3 QueryOver
Lazy-/Eager-Loading
Lazy-/Eager-Loading
Entity Framework
NHibernate
• Default Lazy
• Explizit Include
• Nachladen
•
•
•
•
•
– LoadReference
– LoadProperty
• Eager
– Kontext Property Lazy =
false
Default Lazy
Mapping (fetch)
Criteria (FetchMode)
Linq (Expand)
Nachladen
– NHibernateUtil.Initialize()
• Eager
– lazy = false
Debugging/Profiling
Debugging/Profiling
Entity Framework
NHibernate
• SQL Profiler
• EFProfiler
• EFTracingProvider
•
•
•
•
– Ermöglicht SQL-Korrektur
• Log4Net mit
ToSQLTraceString
SQL Profiler
NHProfiler
Log4Net
show_sql=true
Optimierung am Beispiel
-2 Varianten
-Design optimieren
-Komponenten wechseln
Für jedes Projekt
eine andere Komponente?
Optimierungsgründe
•
•
•
•
•
•
SELECT N + 1
Grosse Datenmengen
Zu viele JOINS
Batch-Processing
Blob
Falsche Strategie
Optimierung
Entity Framework
•
•
•
•
•
•
ViewGeneration
CompiledQuery
DefiningQuery
2nd Level Cache
Paging
Query-Optimierung
NHibernate
• Fetching-Optimierung
• Query Cache
• First-Level Cache opt.
– Evict()
• 2nd Level Cache
• Paging
• Query-Optimierung
Concurrency
Concurrency
Entity Framework
NHibernate
• Optimistic
• Pessimistic
• Optimistic
• Pessimistic
Auditing
Auditing
Entity Framework
NHibernate
• SavingChanges()
• T4-Anpassungen bei STE
• Aber auch
• Interceptor
• Listener
– Möglichkeiten der DB
nutzen
Validierung
Validierung
Entity Framework
•
•
•
•
DataAnnoations
IErrorInfo
IValidate
Custom
• Regeln auf DB nicht
vergessen
NHibernate
•
•
•
•
DataAnnoations
IErrorInfo
IValidate
IValidateable
Caching
Caching (2nd-Level)
Entity Framework
NHibernate
• EFCachingProvider
• NHibernate.Caches.*
–
–
–
–
Prevalance
SysCache
SysCahce2
MemCache
Model First/Code First?
Entity Framework
NHibernate
• Model First
• Code First
• Model Code First ;-)
• Visual Designer
Fragen und Diskussion
Ausblick
• Dritter Vortrag, wenn Interesse besteht
– Wünsche im Xing-Forum anmerken
• dnug be Screencast tv
Herunterladen