".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices
-
Upload
gfu-cyrus-ag -
Category
Technology
-
view
2.070 -
download
2
description
Transcript of ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices
![Page 1: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/1.jpg)
.NET und jetzt!
"C# in 21 Tagen oder doch besser Best Practices"
Konzepte, Werkzeuge und Ideen aus der Praxis für bessere und erfolgreichere .NET - Softwareprojekte
![Page 2: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/2.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 2
Über den Referenten
Peter Hecker ist Geschäftsführer der Firma MARTINSFELD GmbH & Co. KG aus Köln. Er arbeitet seit über 20 Jahren als IT-Berater, Programmierer und Trainer.
Die MARTINSFELD GmbH & Co. KG bietet maßgeschneiderte Beratung, Konzeption und Entwicklung rund um IT- und Softwareprojekte an.
![Page 3: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/3.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 3
Themen / Stichwörter
• Klassen / Objekte / Komponenten
• Mehrschichtige .NET-Anwendungen
• Bibliotheken / Pattern
• Frameworks / Tools
• Unit Testing / Codeanalyse
• Continous Integration / Versionsverwaltung
• Instrumentation / Dokumentation
![Page 4: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/4.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 4
![Page 5: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/5.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 5
Warum wurde .NET entwickelt
• Unzulänglichkeiten des Component ObjectModel (COM)
• Scheitern der zweifelhaften Windows-Java-Strategie (J++)
• Bedarf an einer modernen Programmiersprache
• Bedarf an einem modernen Komponenten-Framework
• Steigerung der Entwicklerproduktivität
![Page 6: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/6.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 6
Merkmale .NET Framework
• Durchgängige Objektorientierung
• Wieder verwendbare Softwarekomponenten
• Plattformunabhängigkeit (IL, JIT => WORA)
• Verschiedene Typen von Anwendungen
• Sprachunabhängigkeit (> 30)
• Einheitliche Laufzeitumgebung
• Umfangreiche Klassenbibliothek
• XML-basierte Konfiguration von Anwendungen
• Codesicherheit durch Sandbox-Konzept
• XCOPY-Deployment
• Interoperabilität zu COM, WIN32, XML-WS
![Page 7: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/7.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 7
Bausteine des .NET Framework
• Laufzeitumgebung– Common Language Runtime (CLR)
• Zwischensprache– Microsoft Intermediate Language (MSIL)
• Sprachunabhängiges Typkonzept– Common Language Specification (CLS)– Common Type System (CTS)
• C#, Managed C++, VB.NET, JScript.NET etc.– .NET-fähige Programmierhochsprachen
• Klassenbibliothek– .NET Framework Class Library (FCL)
• Anwendungen– WinForms, WebForms, WebServices, MobileComputing
![Page 8: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/8.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 8
Ausführungsmodell
ILIL--CodeCode ILIL--CodeCodeILIL--CodeCode
CompilerCompiler CompilerCompilerCompilerCompiler
CLRManaged
CodeManaged
CodeManaged
Code
Common Language Runtime (CLR)
VBVB VC++VC++C#C#
UnmanagedCode
UnmanagedUnmanagedComponentComponent
BetriebssystemBetriebssystem
Just in Time (JIT) CompilerJust in Time (JIT) Compiler
![Page 9: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/9.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 9
Plattformen und Versionen
• Microsoft .NET Framework– Windows-Varianten: 98/ME, NT/2000/XP/2003, CE– 01/2002 – .NET 1.0– 04/2003 – .NET 1.1 (Everett)– 10/2005 – .NET 2.0 (Whidbey)– 12/2006 – .NET 3.x (Orcas)– xx/20xx – .NET 4.x (Hawai)
• ECMA SSCLI (Rotor) – Windows XP, FreeBSD 4.5, Mac OS/X– Version 1.0 (.NET 1.0/1.1)
• Novell Mono– Linux, Mac OS/X, Solaris, BSD, Windows– Version 1.1 (.NET 1.0/1.1)– Version 1.2 (.NET 1.0/1.1 + WinForms, VB.NET)– Version 2.0 (.NET 2.0)
![Page 10: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/10.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 10
Infrastruktur und Werkzeuge
• .NET Framework Redistributable 2.0– Laufzeitumgebung
• J# Redistributable 2.0– Java für .NET
• .NET Framework SDK 2.0
• Visual Studio 2005
• Visual Studio Express-Editionen (Freiverfügbar)• SharpDevelop (Open Source)• MonoDevelop (Open Source)
![Page 11: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/11.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 11
Infrastruktur und Werkzeuge
• .NET Framework Redistributable 2.0– Laufzeitumgebung
• J# Redistributable 2.0– Java für .NET
• .NET Framework SDK 2.0
• Visual Studio 2005
• Visual Studio Express-Editionen (Freiverfügbar)• SharpDevelop (Open Source)• MonoDevelop (Open Source)
![Page 12: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/12.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 12
Infrastruktur und Werkzeuge
• .NET Framework Redistributable 2.0– Laufzeitumgebung
• J# Redistributable 2.0– Java für .NET
• .NET Framework SDK 2.0
• Visual Studio 2005
• Visual Studio Express-Editionen (Freiverfügbar)• SharpDevelop (Open Source)• MonoDevelop (Open Source)
![Page 13: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/13.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 13
Entwicklungsmodelle
• Rapid Application Development (RAD)– Entwickeln per Drag & Drop
– Entwickeln mit visuellen Designern
– Automatische Codegenerierung
– Stark erweitert in .NET 2.0 / VS2005
• Enterprise Application Development (EAD)– Mehrschichtigkeit
– Klassendesign
– Objektpersistenz
– Komponentenorientierung
– „Application Server“
![Page 14: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/14.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 14
Mehrschichtige Anwendungen
![Page 15: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/15.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 15
System.Web
System
System.Data System.Xml
Design
ADO
SQLTypes
SQL
Design
ADO
SQLTypes
SQL
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security RuntimeInteropServices
Remoting
SerializationGlobalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security RuntimeInteropServices
Remoting
Serialization
XPath
XSLT Serialization
XPath
XSLT Serialization
System.Drawing
System.Windows.Forms
Imaging
Drawing2D
Text
Printing
Imaging
Drawing2D
Text
Printing
Design ComponentModelDesign ComponentModelServices
Configuration SessionState
Caching Security
UIHtmlControls
WebControls
Description
Discovery
Protocols
Services
Configuration SessionState
Caching Security
UIHtmlControls
WebControls
Description
Discovery
Protocols
Klassen im .NET Framework
![Page 16: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/16.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 16
System.Web
System
System.Data System.Xml
Design
ADO
SQLTypes
SQL
Design
ADO
SQLTypes
SQL
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security RuntimeInteropServices
Remoting
SerializationGlobalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security RuntimeInteropServices
Remoting
Serialization
XPath
XSLT Serialization
XPath
XSLT Serialization
System.Drawing
System.Windows.Forms
Imaging
Drawing2D
Text
Printing
Imaging
Drawing2D
Text
Printing
Design ComponentModelDesign ComponentModelServices
Configuration SessionState
Caching Security
UIHtmlControls
WebControls
Description
Discovery
Protocols
Services
Configuration SessionState
Caching Security
UIHtmlControls
WebControls
Description
Discovery
Protocols
Klassen im .NET Framework
Ca. 9000.NET 3.0
4528.NET 2.0
2303.NET 1.1
2246.NET 1.0
Anzahl Klassen.NET Version
![Page 17: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/17.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 17
System.Web
System
System.Data System.Xml
Design
ADO
SQLTypes
SQL
Design
ADO
SQLTypes
SQL
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security RuntimeInteropServices
Remoting
SerializationGlobalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security RuntimeInteropServices
Remoting
Serialization
XPath
XSLT Serialization
XPath
XSLT Serialization
System.Drawing
System.Windows.Forms
Imaging
Drawing2D
Text
Printing
Imaging
Drawing2D
Text
Printing
Design ComponentModelDesign ComponentModelServices
Configuration SessionState
Caching Security
UIHtmlControls
WebControls
Description
Discovery
Protocols
Services
Configuration SessionState
Caching Security
UIHtmlControls
WebControls
Description
Discovery
Protocols
Klassen im .NET Framework
Ca. 9000.NET 3.0
4528.NET 2.0
2303.NET 1.1
2246.NET 1.0
Anzahl Klassen.NET Version
A#, Abstract State Machine Language, Active Oberon for .Net, Boo, Chrome, Comega, CSharp, CULE.NET, Delphi .NET, Delta Forth .NET, DotLisp, Dyalog.Net, eXtensible C#, Fortran for .NET, FSharp, FTN95 forMicrosoft .NET , Gardens Point Component Pascal , Hugs98 for .NET, IronPython, ISE Eiffel Studio, JScript.NET, JSharp, Lua.NET, Mercury.NET, MixNet, Mondrian for .NET, MonoLOGO, Multi-TargetPascal, Nemerle, NetCOBOL, NetRuby, P#, PerlNet, PHP_Sharp, Python for .NET, Ruby .NET, Scheme.NET, Sharp Smalltalk, SmallScript.NET, Squeak .NET, Standard Meta Language, Visual Basic, Visual C++/CLI, Visual RPG for .NET, Vulcan.NET ...
Programmiersprachen
![Page 18: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/18.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 18
System.Web
System
System.Data System.Xml
Design
ADO
SQLTypes
SQL
Design
ADO
SQLTypes
SQL
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security RuntimeInteropServices
Remoting
SerializationGlobalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security RuntimeInteropServices
Remoting
Serialization
XPath
XSLT Serialization
XPath
XSLT Serialization
System.Drawing
System.Windows.Forms
Imaging
Drawing2D
Text
Printing
Imaging
Drawing2D
Text
Printing
Design ComponentModelDesign ComponentModelServices
Configuration SessionState
Caching Security
UIHtmlControls
WebControls
Description
Discovery
Protocols
Services
Configuration SessionState
Caching Security
UIHtmlControls
WebControls
Description
Discovery
Protocols
Klassen im .NET Framework
Ca. 9000.NET 3.0
4528.NET 2.0
2303.NET 1.1
2246.NET 1.0
Anzahl Klassen.NET Version
A#, Abstract State Machine Language, Active Oberon for .Net, Boo, Chrome, Comega, CSharp, CULE.NET, Delphi .NET, Delta Forth .NET, DotLisp, Dyalog.Net, eXtensible C#, Fortran for .NET, FSharp, FTN95 forMicrosoft .NET , Gardens Point Component Pascal , Hugs98 for .NET, IronPython, ISE Eiffel Studio, JScript.NET, JSharp, Lua.NET, Mercury.NET, MixNet, Mondrian for .NET, MonoLOGO, Multi-TargetPascal, Nemerle, NetCOBOL, NetRuby, P#, PerlNet, PHP_Sharp, Python for .NET, Ruby .NET, Scheme.NET, Sharp Smalltalk, SmallScript.NET, Squeak .NET, Standard Meta Language, Visual Basic, Visual C++/CLI, Visual RPG for .NET, Vulcan.NET ...
Programmiersprachen
„The language doesn‘t matter!“Dan Appleman
![Page 19: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/19.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 19
Design Guidelines for Class Library Developers
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconNETFrameworkDesignGuidelines.asp
![Page 20: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/20.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 20
FxCop – der .NET Polizist
• Prüft .NET –Anwendungen via Reflectionauf Einhaltung der Design Guideslines– http://www.gotdotnet.com/team/fxcop
• Bibliothekdesign
• Lokalisierung
• Namenskonventionen
• Geschwindigkeit
• Sicherheit
![Page 21: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/21.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 21
FxCop – der .NET Polizist
• Prüft .NET –Anwendungen via Reflectionauf Einhaltung der Design Guideslines– http://www.gotdotnet.com/team/fxcop
• Bibliothekdesign
• Lokalisierung
• Namenskonventionen
• Geschwindigkeit
• Sicherheit
![Page 22: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/22.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 22
Komponentenorientierung
• Softwarekomponentenmodell ist integraler Bestandteil des .NET Framework– Cross-Language-Calls
• Gegenseitiger Aufruf von Unterroutinen
– Cross-Language-Inheritance• Gegenseitige Vererbung
• Einheitliche Erstellung von Komponenten• Einheitliche Nutzung von Komponenten
• Softwarekomponente = Assembly = .DLL/.EXE
![Page 23: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/23.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 23
.NET Application Services
• Was ist ein Application Server?– Web-Server– „Scripting“-Fähigkeit– Komponenten-Laufzeitumgebung
• Wer hat‘s erfunden?– Windows NT.4.0– Internet Information Services (IIS)– Microsoft Transaction Server (MTS)
• COM+ für Windows 2000/XP/2003– „.NET Enterprise Services“ (basiert noch auf COM)
• Yuhana Project (Open Source)– http://yuhana.sourceforge.net/
![Page 24: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/24.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 24
.NET Enterprise Services
• Transaktionen– Verteilte Transaktionen
über unterschiedliche Datenbanken
• Skalierbarkeit– Just-in-Time-Activation– Object Pooling– Queued Components
• Sicherheit– Rollenbasierte
Sicherheitseinstellung auf Methodenebene
• Anwendungskopplung– Bereitstellung von
Komponenten als • als Windows-Dienste• zum Aufruf via HTTP/SOAP
![Page 25: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/25.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 25
Daten – Objekte - Persistenz
• Datenformat zwischen den Schichten– ADO.NET (DataSets, DataTable)– Typisierte DataSets– XML– Objekte
• Darstellung von Relationen (Tabelle, SQL) und Hierarchien (Baum, XML) in Objekte
• Object Relational Mapping (ORM)– .NET-Klassen auf relationale Datenbanktabelle– .NET-Typen auf Spaltentypen– .NET-Objekte auf Zeilen– Flüchtiger Speicher auf Persistenter Speicher
![Page 26: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/26.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 26
ORM für .NET
• Bisher keine Lösung von Microsoft– Projekt „ObjectSpaces“ aus .NET 2.0 gestrichen– In .NET 3.x: Language Integrated Query (LINQ)
• Vielzahl von Lösungen von Drittanbietern, z.B.:– Gentle.NET (Open Source)– DomainObjects for .NET 2 (OJB.NET) (Open Source)– NHibernate (Open Source)
• Übersicht und Vergleich– „Object Relational Tool Comparison Dot Net“– „Ask TheServerSide: Which .NET ORM is best?“
• Techniken und Methoden– Code-Generierung, Reflection, Enhancer
![Page 27: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/27.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 27
.NET Pattern und Practices
• Pattern & Practices-Gruppe bei Microsoft– http://msdn.microsoft.com/practices/
• Handlungsrichtlinien für den Einsatz von .NET-Technologien bei der Entwicklung von Enterprise-Anwendungen
• Fertige Lösungen für typische Entwicklungs-aufgaben in mehrschichtigen, verteilten Anwendungen– Anleitungen– Referenzimplementierungen– Application Blocks– Software Factories
![Page 28: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/28.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 28
.NET Enterprise Library
• Im Quellcode verbreitete Klassenbibliothek unterhalb des Community-Web-Serversgotdotnet.com:
– http://practices.gotdotnet.com/projects/entlib/
• Versionen für .NET 1.1 und .NET 2.0• Sehr stark zu Laufzeit konfigurierbar• Installationspakete mit Quellcode,
Dokumentation, Beispielen und Konfigurationsprogramm
![Page 29: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/29.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 29
.NET EntLib – Application Blocks
• Caching Application Block– Zwischenspeichern von Daten im Speicher oder in
Datenbanken• Configuration Application Block
– Lesen und Schreiben von Konfigurationsdateien• Cryptographie Application Block
– Anwendung von Hashing und Verschlüsselung• Data Access Application Block
– Zugriff auf Datenbanken• Exception Handling Application Block
– Richtlinienbasierte Behandlung von Ausnahmen• Logging and Instrumentation Application Block
– Protokollierung und Anwendungsüberwachung• Security Application Block
– Authentifizierung, Autorisierung, Rollen und Profildaten
![Page 30: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/30.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 30
.NET EntLib - Anhängigkeiten
![Page 31: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/31.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 31
Enterprise Library Configuration
![Page 32: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/32.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 32
Weitere Application Blocks - UIP
• User Interface Process Application Block (UIP)– Wieder verwendbare WebForms und WinForms-
Anwendungen nach dem MVC-Konzept
![Page 33: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/33.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 33
Weitere Application Blocks - CAB
• Composite UI Application Block (CAB)– Entwicklung komplexer, komponentenbasierter
WinForms-Anwendungen für .NET 2.0
![Page 34: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/34.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 34
Weitere Application Blocks - CAB
• Composite UI Application Block (CAB)– Entwicklung komplexer, komponentenbasierter
WinForms-Anwendungen für .NET 2.0
![Page 35: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/35.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 35
Weitere Application Blocks – GAT/GAX
• Guidance Packages– Anleitungen für Entwickler bestehend aus
• Rezepten, Aktionen, Textvorlagen, Assistenten, Typenkonverter, Visual Studio Templates
• Guidance Automation Toolkit (GAT)– Erweiterung von VS2005 um Anleitungen
zu erstellen
• Guidance Automation Extensions (GAX) – Erweiterung von VS2005 um Anleitungen
auszuführen
![Page 36: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/36.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 36
Software Factories
• Strukturierte Sammlung zusammenhängender Softwarebausteine
• Integration in VS2005 zur Unterstützung der Softwareentwicklung
• Verfügbar für unterschiedliche Softwarearchitekturen– Smart Client Software Factory
– Mobile Client Software Factory
– Web Service Software Factory
![Page 37: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/37.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 37
Smart Client Software Factory
• CAB + EntLib + GAX + GAT• Rich User Interfaces auf
Basis von Microsoft Windows Desktop
• Datenaustausch mit unterschiedlichen Back-End-Systemen
• Einheitliche Präsentation von Daten aus unter-schiedlichen Quellen in einer einheitlichen Benutzerschnittstelle
• Lokale Datenhaltung und Datenverarbeitung mit der Unterstützung zeitweiliger Verbindungslosigkeit
• Einfache Verteilung und Konfiguration
![Page 38: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/38.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 38
Mobile Client Software Factory
• CAB + DAAB + GAT• Rich User Interfaces auf
Basis von Windows Mobile 5.0 Geräten
• Unterschiedliche Kommunikationswege
• Datenaustausch mit unterschiedlichen Back-End-Systemen
• Lokale Datenhaltung und Datenverarbeitung mit der Unterstützung zeitweiliger Verbindungslosigkeit
• Einfache Verteilung und Konfiguration
![Page 39: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/39.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 39
Web Service Software Factory
• Definition von Nachrichten und Dienstschnittstellen
• Ausnahmebehandlung
• Definition von Geschäftsobjekten
• Nachrichtenübermittlung
• Datenzugriff
• Migration nach Windows CommunicationFoundation (WCF)
![Page 40: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/40.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 40
Unit Tests
• Ein Unit Test ist ein Verfahren, um die Korrektheit eines einzelnen Codeblocks zu testen.
• Ein Unit Test wird für jede Prozedur, Funktion, Methode geschrieben
• Ein Unit Test erlaubt die automatisierte, wiederholbare, kontinuierliche Prüfung
![Page 41: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/41.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 41
NUnit – Unit Tests unter .NET
• NUnit– http://www.nunit.org
– Ursprünglich eine Portierung von JUnit
– In C# geschrieben und arbeitet für alle .NET-Sprachen
– Hauptautor ist James W. Newrik
• Jetzt bei Microsoft im VSTS-Projekt
– Add-In für VS.NET
![Page 42: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/42.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 42
Zusatzwerkzeuge zu NUnit
• TestDriven.NET– VS-Add-in für NUnit
• NUnitAsp– Testen von Web Forms-GUIs
• NUnitForms– Testen von Windows Forms-GUIs
![Page 43: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/43.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 43
TestDriven.NET (AKA NUnitAddIn)
• Add-In für Visual Studio– http://sourceforge.net/projects/nunitaddin/
![Page 44: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/44.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 44
NUnitAsp – Web Forms unit testing
• Erweiterung von NUnit für Web Forms– http://nunitasp.sourceforge.net
![Page 45: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/45.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 45
NunitForms – Windows Forms unittesting
• Erweiterung von NUnit für Windows Forms– http://nunitforms.sourceforge.net
– Zusätzlich „Recorder Application“
![Page 46: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/46.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 46
Subversion (SVN)
• Quellcodeversionsverwaltung– http://subversion.tigris.org/
• Nachfolger von CVS• Verschiedene Plattformen
– Windows, Linux, Unix, Mac
• Zugriff via– Dateisystem, TCP, HTTP/WebDAV
• Platzsparende Verwaltung von Binärdaten• Zahlreiche Werkzeuge
– TortoiseSVN (Client für Windows-Explorer)• http://tortoisesvn.net/
– AnkhSVN (Add-In für VS 2002/2003/2005)• http://ankhsvn.tigris.org/
![Page 47: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/47.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 47
Subversion (SVN)
• Quellcodeversionsverwaltung– http://subversion.tigris.org/
• Nachfolger von CVS• Verschiedene Plattformen
– Windows, Linux, Unix, Mac
• Zugriff via– Dateisystem, TCP, HTTP/WebDAV
• Platzsparende Verwaltung von Binärdaten• Zahlreiche Werkzeuge
– TortoiseSVN (Client für Windows-Explorer)• http://tortoisesvn.net/
– AnkhSVN (Add-In für VS 2002/2003/2005)• http://ankhsvn.tigris.org/
![Page 48: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/48.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 48
Subversion (SVN)
• Quellcodeversionsverwaltung– http://subversion.tigris.org/
• Nachfolger von CVS• Verschiedene Plattformen
– Windows, Linux, Unix, Mac
• Zugriff via– Dateisystem, TCP, HTTP/WebDAV
• Platzsparende Verwaltung von Binärdaten• Zahlreiche Werkzeuge
– TortoiseSVN (Client für Windows-Explorer)• http://tortoisesvn.net/
– AnkhSVN (Add-In für VS 2002/2003/2005)• http://ankhsvn.tigris.org/
![Page 49: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/49.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 49
Automatisierung mit NAnt
• “NAnt is a free .NET build tool. In theory it is kind of like make without make's wrinkles. In practice it's a lot like Ant.”– http://nant.sourceforge.net/
• Versionen für – Microsoft .NET Framework 1.0/1.1/2.0
– Mono 1.0
• Basis für Vielzahl von Werkzeugen
![Page 50: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/50.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 50
CruiseControl.NET
• Automatisierung der Softwareerstellung– http://confluence.public.thoughtworks.org/display/CCNET/
• Bestandteile– Automated Continuous Integration Server– CCTray– Web Dashboard
• Funktionen– Kontrolle der Versionsverwaltung– Automatische Ausführung von Build / Test– Unterstützung unterschiedlicher Versionsverwaltungen – Integration von NAnt und Visual Studio – Unterstützung von mehreren Projekte je Server– Remote Management und Reporting
![Page 51: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/51.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 51
CruiseControl.NET
• Automatisierung der Softwareerstellung– http://confluence.public.thoughtworks.org/display/CCNET/
• Bestandteile– Automated Continuous Integration Server– CCTray– Web Dashboard
• Funktionen– Kontrolle der Versionsverwaltung– Automatische Ausführung von Build / Test– Unterstützung unterschiedlicher Versionsverwaltungen – Integration von NAnt und Visual Studio – Unterstützung von mehreren Projekte je Server– Remote Management und Reporting
![Page 52: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/52.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 52
CruiseControl.NET
• Automatisierung der Softwareerstellung– http://confluence.public.thoughtworks.org/display/CCNET/
• Bestandteile– Automated Continuous Integration Server– CCTray– Web Dashboard
• Funktionen– Kontrolle der Versionsverwaltung– Automatische Ausführung von Build / Test– Unterstützung unterschiedlicher Versionsverwaltungen – Integration von NAnt und Visual Studio – Unterstützung von mehreren Projekte je Server– Remote Management und Reporting
![Page 53: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/53.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 53
CruiseControl.NET
• Automatisierung der Softwareerstellung– http://confluence.public.thoughtworks.org/display/CCNET/
• Bestandteile– Automated Continuous Integration Server– CCTray– Web Dashboard
• Funktionen– Kontrolle der Versionsverwaltung– Automatische Ausführung von Build / Test– Unterstützung unterschiedlicher Versionsverwaltungen – Integration von NAnt und Visual Studio – Unterstützung von mehreren Projekte je Server– Remote Management und Reporting
![Page 54: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/54.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 54
Draco.NET
• Windows-Dienst-Anwendung– http://draconet.sourceforge.net/
• Durch CruiseControl.NET inspiriert
• Unterstützung von– CVS, VSS, PVCS, SubVersion
– NAnt, VS2002/2003
– BSD-Lizenz
![Page 55: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/55.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 55
Laufzeitüberwachung
• Verfahren– Windows-Ereignisprotokoll
– Textbasierte Protokolldaten
– Windows Management Instrumentation (WMI)
• Bibliotheken– MS Enterprise Instrumentation Framework (EMF)
– EntLib – Logging Application Block
– Log4Net (Open Source)
![Page 56: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/56.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 56
MS Enterprise InstrumentationFramework (EMF)
.NET Application
Instrumentation API
Event filtering
WMIEventtrace
EventLog
TraceLog
EventLog
WMIsubscriber
Config
uratio
n
Event schema
Application object
Application object
Event source Event source
Trace reader
![Page 57: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/57.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 57
CLR Profiler 2.0
• Analyse des Speicherverhalten einer .NET-Anwendung– http://msdn.microsoft.com/netframework/downloads
/tools/
– Speicher je Objekt, Objektbesitzer, Anzahl Aufrufe
![Page 58: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/58.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 58
CLR Profiler 2.0
• Analyse des Speicherverhalten einer .NET-Anwendung– http://msdn.microsoft.com/netframework/downloads
/tools/
– Speicher je Objekt, Objektbesitzer, Anzahl Aufrufe
![Page 59: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/59.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 59
CLR Profiler 2.0
• Analyse des Speicherverhalten einer .NET-Anwendung– http://msdn.microsoft.com/netframework/downloads
/tools/
– Speicher je Objekt, Objektbesitzer, Anzahl Aufrufe
![Page 60: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/60.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 60
CLR Profiler 2.0
• Analyse des Speicherverhalten einer .NET-Anwendung– http://msdn.microsoft.com/netframework/downloads
/tools/
– Speicher je Objekt, Objektbesitzer, Anzahl Aufrufe
![Page 61: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/61.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 61
CLR Profiler 2.0
• Analyse des Speicherverhalten einer .NET-Anwendung– http://msdn.microsoft.com/netframework/downloads
/tools/
– Speicher je Objekt, Objektbesitzer, Anzahl Aufrufe
![Page 62: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/62.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 62
CLR Profiler 2.0
• Analyse des Speicherverhalten einer .NET-Anwendung– http://msdn.microsoft.com/netframework/downloads
/tools/
– Speicher je Objekt, Objektbesitzer, Anzahl Aufrufe
![Page 63: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/63.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 63
NDoc
• Erstellung von Dokumentationen für .NET– http://ndoc.sourceforge.net/
• Arbeitet auf Basis von .NET Assemblies und durch Compiler generierte XML basierten Dokumentationsdateien
• Erstellt unterschiedliche Formate (Stile)– MSDN-Style HTML Help format (.chm)
– VS.NET Help format (HTML Help 2)
– MSDN-Online Web-Seiten
![Page 64: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/64.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 64
NDoc
• Erstellung von Dokumentationen für .NET– http://ndoc.sourceforge.net/
• Arbeitet auf Basis von .NET Assemblies und durch Compiler generierte XML basierten Dokumentationsdateien
• Erstellt unterschiedliche Formate (Stile)– MSDN-Style HTML Help format (.chm)
– VS.NET Help format (HTML Help 2)
– MSDN-Online Web-Seiten
![Page 65: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/65.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 65
Was ist mit .NET 3.0!
"... The Microsoft .NET Framework 3.0 (formerly known as WinFX), is the new managed code programming model for Windows. It combines the power of the .NET Framework 2.0 with new technologies for building applications that have visually compelling user experiences, seamless communication across technology boundaries, and the ability to support a wide range of business processes. These new technologies are
Windows Presentation Foundation, Windows Communication Foundation, Windows Workflow Foundation, and Windows CardSpace (formerly code named "Infocard").
Microsoft plans to ship .NET Framework 3.0 as part of the Windows Vista operating system. ...“
– http://www.microsoft.com/germany/msdn/library/net/EinfuehrungInNETFramework30.mspx
![Page 66: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/66.jpg)
Vielen Dank!
![Page 67: ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices](https://reader033.fdocument.pub/reader033/viewer/2022051210/54c4d0094a7959250d8b45bc/html5/thumbnails/67.jpg)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 67
Kontaktdaten
Peter Hecker
MARTINSFELD Gesellschaft für neue Medien mbH & Co. KGLichtstr. 43b50825 Köln
Fon: 0221 / 28 36 430Fax: 0221 / 28 36 431Email [email protected]: http://www.martinsfeld.de