.NET und jetzt!

           "C# in 21 Tagen
    oder doch besser Best Practices"

Konzepte, Werkzeuge und Ideen aus der Pr...
Über den Referenten

Peter Hecker ist Geschäftsführer der Firma
MARTINSFELD GmbH & Co. KG aus Köln. Er
arbeitet seit über ...
Themen / Stichwörter

•     Klassen / Objekte / Komponenten
•     Mehrschichtige .NET-Anwendungen
•     Bibliotheken / Pat...
26.09.2006   (c) MARTINSFELD GmbH & Co. KG   4
Warum wurde .NET entwickelt

• Unzulänglichkeiten des Component Object
  Model (COM)
• Scheitern der zweifelhaften Windows...
Merkmale .NET Framework

•    Durchgängige Objektorientierung
•    Wieder verwendbare Softwarekomponenten
•    Plattformun...
Bausteine des .NET Framework

• Laufzeitumgebung
      – Common Language Runtime (CLR)
• Zwischensprache
      – Microsoft...
Ausführungsmodell

             VB               C#                       VC++
                                           ...
Plattformen und Versionen

• Microsoft .NET Framework
      –      Windows-Varianten: 98/ME, NT/2000/XP/2003, CE
      –  ...
Infrastruktur und Werkzeuge

• .NET Framework Redistributable 2.0
      – Laufzeitumgebung
• J# Redistributable 2.0
      ...
Infrastruktur und Werkzeuge

• .NET Framework Redistributable 2.0
      – Laufzeitumgebung
• J# Redistributable 2.0
      ...
Infrastruktur und Werkzeuge

• .NET Framework Redistributable 2.0
      – Laufzeitumgebung
• J# Redistributable 2.0
      ...
Entwicklungsmodelle

• Rapid Application Development                             (RAD)
      –      Entwickeln per Drag & ...
Mehrschichtige Anwendungen




26.09.2006   (c) MARTINSFELD GmbH & Co. KG   14
Klassen im .NET Framework

                  System.Web                               System.Windows.Forms
    Services   ...
Klassen im .NET Framework

             .NET Version
               System.Web                                    Anzahl K...
Klassen im .NET Framework

          .NET Version
            System.Web                            Anzahl Klassen
       ...
Klassen im .NET Framework

          .NET Version
            System.Web                            Anzahl Klassen
       ...
Design Guidelines for Class Library
   Developers




http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpg...
FxCop – der .NET Polizist

• Prüft .NET –Anwendungen via Reflection
  auf Einhaltung der Design Guideslines
      – http:/...
FxCop – der .NET Polizist

• Prüft .NET –Anwendungen via Reflection
  auf Einhaltung der Design Guideslines
      – http:/...
Komponentenorientierung

• Softwarekomponentenmodell ist integraler
  Bestandteil des .NET Framework
      – Cross-Languag...
.NET Application Services

• Was ist ein Application Server?
      – Web-Server
      – „Scripting“-Fähigkeit
      – Komp...
.NET Enterprise Services

• Transaktionen
      – Verteilte Transaktionen
        über unterschiedliche
        Datenbanke...
Daten – Objekte - Persistenz

• Datenformat zwischen den Schichten
      –      ADO.NET (DataSets, DataTable)
      –     ...
ORM für .NET

• Bisher keine Lösung von Microsoft
      – Projekt „ObjectSpaces“ aus .NET 2.0 gestrichen
      – In .NET 3...
.NET Pattern und Practices

• Pattern & Practices-Gruppe bei Microsoft
      – http://msdn.microsoft.com/practices/
• Hand...
.NET Enterprise Library

• Im Quellcode verbreitete Klassenbibliothek
  unterhalb des Community-Web-Servers
  gotdotnet.co...
.NET EntLib – Application Blocks

• Caching Application Block
      – Zwischenspeichern von Daten im Speicher oder in
    ...
.NET EntLib - Anhängigkeiten




26.09.2006   (c) MARTINSFELD GmbH & Co. KG   30
Enterprise Library Configuration




26.09.2006   (c) MARTINSFELD GmbH & Co. KG   31
Weitere Application Blocks - UIP

• User Interface Process Application Block (UIP)
      – Wieder verwendbare WebForms und...
Weitere Application Blocks - CAB

• Composite UI Application Block                      (CAB)
      – Entwicklung komplexe...
Weitere Application Blocks - CAB

• Composite UI Application Block                      (CAB)
      – Entwicklung komplexe...
Weitere Application Blocks – GAT/GAX


• Guidance Packages
      – Anleitungen für Entwickler bestehend aus
             •...
Software Factories

• Strukturierte Sammlung zusammenhängender
  Softwarebausteine
• Integration in VS2005 zur Unterstützu...
Smart Client Software Factory

• CAB + EntLib + GAX + GAT
• Rich User Interfaces auf
  Basis von Microsoft
  Windows Deskt...
Mobile Client Software Factory

• CAB + DAAB + GAT
• Rich User Interfaces auf
  Basis von Windows Mobile
  5.0 Geräten
• U...
Web Service Software Factory

• Definition von
  Nachrichten und
  Dienstschnittstellen
• Ausnahmebehandlung
• Definition ...
Unit Tests

• Ein Unit Test ist ein Verfahren, um die
  Korrektheit eines einzelnen Codeblocks zu
  testen.

• Ein Unit Te...
NUnit – Unit Tests unter .NET

• NUnit
      – http://www.nunit.org
      – Ursprünglich eine
        Portierung von JUnit...
Zusatzwerkzeuge zu NUnit

• TestDriven.NET
      – VS-Add-in für NUnit


• NUnitAsp
      – Testen von Web Forms-GUIs


• ...
TestDriven.NET (AKA NUnitAddIn)

 • Add-In für Visual Studio
       – http://sourceforge.net/projects/nunitaddin/




26.0...
NUnitAsp – Web Forms unit testing


• Erweiterung von NUnit für Web Forms
      – http://nunitasp.sourceforge.net




26.0...
NunitForms – Windows Forms unit
testing

• Erweiterung von NUnit für Windows Forms
      – http://nunitforms.sourceforge.n...
Subversion (SVN)

• Quellcodeversionsverwaltung
      – http://subversion.tigris.org/
• Nachfolger von CVS
• Verschiedene ...
Subversion (SVN)

• Quellcodeversionsverwaltung
      – http://subversion.tigris.org/
• Nachfolger von CVS
• Verschiedene ...
Subversion (SVN)

• Quellcodeversionsverwaltung
      – http://subversion.tigris.org/
• Nachfolger von CVS
• Verschiedene ...
Automatisierung mit NAnt

• “NAnt is a free .NET build tool. In theory it is
  kind of like make without make's wrinkles. ...
CruiseControl.NET

• Automatisierung der Softwareerstellung
      – http://confluence.public.thoughtworks.org/display/CCNE...
CruiseControl.NET

• Automatisierung der Softwareerstellung
      – http://confluence.public.thoughtworks.org/display/CCNE...
CruiseControl.NET

• Automatisierung der Softwareerstellung
      – http://confluence.public.thoughtworks.org/display/CCNE...
CruiseControl.NET

• Automatisierung der Softwareerstellung
      – http://confluence.public.thoughtworks.org/display/CCNE...
Draco.NET

• Windows-Dienst-Anwendung
      – http://draconet.sourceforge.net/


• Durch CruiseControl.NET inspiriert

• U...
Laufzeitüberwachung

• Verfahren
      –      Windows-Ereignisprotokoll
      –      Textbasierte Protokolldaten
      –  ...
MS Enterprise Instrumentation
Framework (EMF)


                                .NET Application
                   Applic...
CLR Profiler 2.0

• Analyse des Speicherverhalten einer .NET-
  Anwendung
      – http://msdn.microsoft.com/netframework/d...
CLR Profiler 2.0

• Analyse des Speicherverhalten einer .NET-
  Anwendung
      – http://msdn.microsoft.com/netframework/d...
CLR Profiler 2.0

• Analyse des Speicherverhalten einer .NET-
  Anwendung
      – http://msdn.microsoft.com/netframework/d...
CLR Profiler 2.0

• Analyse des Speicherverhalten einer .NET-
  Anwendung
      – http://msdn.microsoft.com/netframework/d...
CLR Profiler 2.0

• Analyse des Speicherverhalten einer .NET-
  Anwendung
      – http://msdn.microsoft.com/netframework/d...
CLR Profiler 2.0

• Analyse des Speicherverhalten einer .NET-
  Anwendung
      – http://msdn.microsoft.com/netframework/d...
NDoc

• Erstellung von Dokumentationen für .NET
      – http://ndoc.sourceforge.net/
• Arbeitet auf Basis von .NET Assembl...
NDoc

• Erstellung von Dokumentationen für .NET
      – http://ndoc.sourceforge.net/
• Arbeitet auf Basis von .NET Assembl...
Was ist mit .NET 3.0!

"... The Microsoft .NET Framework 3.0 (formerly known as
WinFX), is the new managed code programmin...
Vielen Dank!
Kontaktdaten

Peter Hecker

MARTINSFELD
Gesellschaft für neue Medien mbH & Co. KG
Lichtstr. 43b
50825 Köln

Fon:         0...
Nächste SlideShare
Wird geladen in …5
×

".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices

2.904 Aufrufe

Veröffentlicht am

Konzepte, Werkzeuge und Ideen aus der Praxis für bessere und erfolgreichere .NET-Softwareprojekte.

* Klassen/Objekte/Komponenten

* Mehrschichtige .NET-Anwendungen

* Bibliotheken und Pattern

* Frameworks und Tools

* Unit Testing und Codeanalyse

* Continous Integration und Versionsverwaltung

* Dokumentation und Instrumentation

Veröffentlicht in: Technologie
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.904
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
14
Aktionen
Geteilt
0
Downloads
11
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices

  1. 1. .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
  2. 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. 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 2
  3. 3. Themen / Stichwörter • Klassen / Objekte / Komponenten • Mehrschichtige .NET-Anwendungen • Bibliotheken / Pattern • Frameworks / Tools • Unit Testing / Codeanalyse • Continous Integration / Versionsverwaltung • Instrumentation / Dokumentation 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 3
  4. 4. 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 4
  5. 5. Warum wurde .NET entwickelt • Unzulänglichkeiten des Component Object Model (COM) • Scheitern der zweifelhaften Windows-Java- Strategie (J++) • Bedarf an einer modernen Programmiersprache • Bedarf an einem modernen Komponenten- Framework • Steigerung der Entwicklerproduktivität 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 5
  6. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 6
  7. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 7
  8. 8. Ausführungsmodell VB C# VC++ Unmanaged Compiler Compiler Compiler Component IL-Code IL- IL-Code IL- IL-Code IL- Just in Time (JIT) Compiler CLR Managed Managed Managed Unmanaged Code Code Code Code Common Language Runtime (CLR) Betriebssystem 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 8
  9. 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) 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 9
  10. 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) 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 10
  11. 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) 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 11
  12. 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) 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 12
  13. 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“ 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 13
  14. 14. Mehrschichtige Anwendungen 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 14
  15. 15. Klassen im .NET Framework System.Web System.Windows.Forms Services UI Design ComponentModel Description HtmlControls Discovery WebControls Protocols System.Drawing Caching Security Drawing2D Printing Configuration SessionState Imaging Text System.Data System.Xml ADO SQL XSLT Serialization Design SQLTypes XPath System Collections IO Security Runtime Configuration Net ServiceProcess InteropServices Diagnostics Reflection Text Remoting Globalization Resources Threading Serialization 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 15
  16. 16. Klassen im .NET Framework .NET Version System.Web Anzahl Klassen System.Windows.Forms Services UI Design ComponentModel .NET 1.0 Description HtmlControls 2246 .NET 1.1 Discovery WebControls 2303 Protocols System.Drawing .NET 2.0 4528 Caching Security Drawing2D Printing .NET 3.0 Ca. 9000 Configuration SessionState Imaging Text System.Data System.Xml ADO SQL XSLT Serialization Design SQLTypes XPath System Collections IO Security Runtime Configuration Net ServiceProcess InteropServices Diagnostics Reflection Text Remoting Globalization Resources Threading Serialization 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 16
  17. 17. Klassen im .NET Framework .NET Version System.Web Anzahl Klassen System.Windows.Forms Services UI Design ComponentModel .NET 1.0 Description HtmlControls 2246 .NET 1.1 Discovery WebControls 2303 Protocols System.Drawing .NET 2.0 4528 Caching Security Drawing2D Printing .NET 3.0 Ca. 9000 Configuration SessionState Imaging Text Programmiersprachen System.Data System.Xml A#, Abstract State Machine Language, Active Oberon for .Net, Boo, ADO SQL XSLT Serialization Chrome, Comega, CSharp, CULE.NET, Delphi .NET, Delta Forth .NET, Design SQLTypes XPath DotLisp, Dyalog.Net, eXtensible C#, Fortran for .NET, FSharp, FTN95 for Microsoft .NET , Gardens Point Component Pascal , Hugs98 for .NET, System IronPython, ISE Eiffel Studio, JScript.NET, JSharp, Lua.NET, Collections IO Security Runtime Mercury.NET, MixNet, Mondrian for .NET, MonoLOGO, Multi-Target Configuration Net ServiceProcess InteropServices Pascal, Nemerle, NetCOBOL, NetRuby, P#, PerlNet, PHP_Sharp, Python .NET, Ruby Reflection Text Remoting forDiagnostics .NET, Scheme.NET, Sharp Smalltalk, SmallScript.NET, Globalization Resources Threading Serialization Squeak .NET, Standard Meta Language, Visual Basic, Visual C++/CLI, Visual RPG for .NET, Vulcan.NET ... GmbH & Co. KG 26.09.2006 (c) MARTINSFELD 17
  18. 18. Klassen im .NET Framework .NET Version System.Web Anzahl Klassen System.Windows.Forms Services UI Design ComponentModel .NET 1.0 Description HtmlControls 2246 .NET 1.1 Discovery WebControls 2303 Protocols System.Drawing .NET 2.0 4528 Caching Security Drawing2D Printing .NET 3.0 Ca. 9000 Configuration SessionState Imaging Text Programmiersprachen System.Data System.Xml A#, Abstract State Machine Language, Active Oberon for .Net, Boo, ADO SQL XSLT Serialization Chrome, Comega, CSharp, CULE.NET, Delphi .NET, Delta Forth .NET, Design SQLTypes XPath DotLisp, Dyalog.Net, eXtensible C#, Fortran for .NET, FSharp, FTN95 for Microsoft .NET , Gardens Point Component Pascal , Hugs98 for .NET, „The language doesn‘t matter!“ Collections IO System IronPython, ISE Eiffel Studio, JScript.NET, JSharp, Lua.NET, Security Runtime Mercury.NET, MixNet, Mondrian for .NET, MonoLOGO, Multi-Target Configuration Net Dan Appleman ServiceProcess InteropServices Pascal, Nemerle, NetCOBOL, NetRuby, P#, PerlNet, PHP_Sharp, Python .NET, Ruby Reflection Text Remoting forDiagnostics .NET, Scheme.NET, Sharp Smalltalk, SmallScript.NET, Globalization Resources Threading Serialization Squeak .NET, Standard Meta Language, Visual Basic, Visual C++/CLI, Visual RPG for .NET, Vulcan.NET ... GmbH & Co. KG 26.09.2006 (c) MARTINSFELD 18
  19. 19. Design Guidelines for Class Library Developers http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/ cpconNETFrameworkDesignGuidelines.asp 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 19
  20. 20. FxCop – der .NET Polizist • Prüft .NET –Anwendungen via Reflection auf Einhaltung der Design Guideslines – http://www.gotdotnet.com/team/fxcop • Bibliothekdesign • Lokalisierung • Namenskonventionen • Geschwindigkeit • Sicherheit 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 20
  21. 21. FxCop – der .NET Polizist • Prüft .NET –Anwendungen via Reflection auf Einhaltung der Design Guideslines – http://www.gotdotnet.com/team/fxcop • Bibliothekdesign • Lokalisierung • Namenskonventionen • Geschwindigkeit • Sicherheit 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 21
  22. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 22
  23. 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/ 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 23
  24. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 24
  25. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 25
  26. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 26
  27. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 27
  28. 28. .NET Enterprise Library • Im Quellcode verbreitete Klassenbibliothek unterhalb des Community-Web-Servers gotdotnet.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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 28
  29. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 29
  30. 30. .NET EntLib - Anhängigkeiten 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 30
  31. 31. Enterprise Library Configuration 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 31
  32. 32. Weitere Application Blocks - UIP • User Interface Process Application Block (UIP) – Wieder verwendbare WebForms und WinForms- Anwendungen nach dem MVC-Konzept 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 32
  33. 33. Weitere Application Blocks - CAB • Composite UI Application Block (CAB) – Entwicklung komplexer, komponentenbasierter WinForms-Anwendungen für .NET 2.0 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 33
  34. 34. Weitere Application Blocks - CAB • Composite UI Application Block (CAB) – Entwicklung komplexer, komponentenbasierter WinForms-Anwendungen für .NET 2.0 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 34
  35. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 35
  36. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 36
  37. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 37
  38. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 38
  39. 39. Web Service Software Factory • Definition von Nachrichten und Dienstschnittstellen • Ausnahmebehandlung • Definition von Geschäftsobjekten • Nachrichtenübermittlung • Datenzugriff • Migration nach Windows Communication Foundation (WCF) 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 39
  40. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 40
  41. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 41
  42. 42. Zusatzwerkzeuge zu NUnit • TestDriven.NET – VS-Add-in für NUnit • NUnitAsp – Testen von Web Forms-GUIs • NUnitForms – Testen von Windows Forms-GUIs 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 42
  43. 43. TestDriven.NET (AKA NUnitAddIn) • Add-In für Visual Studio – http://sourceforge.net/projects/nunitaddin/ 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 43
  44. 44. NUnitAsp – Web Forms unit testing • Erweiterung von NUnit für Web Forms – http://nunitasp.sourceforge.net 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 44
  45. 45. NunitForms – Windows Forms unit testing • Erweiterung von NUnit für Windows Forms – http://nunitforms.sourceforge.net – Zusätzlich „Recorder Application“ 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 45
  46. 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/ 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 46
  47. 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/ 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 47
  48. 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/ 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 48
  49. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 49
  50. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 50
  51. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 51
  52. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 52
  53. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 53
  54. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 54
  55. 55. Laufzeitüberwachung • Verfahren – Windows-Ereignisprotokoll – Textbasierte Protokolldaten – Windows Management Instrumentation (WMI) – Email • Bibliotheken – MS Enterprise Instrumentation Framework (EMF) – EntLib – Logging Application Block – Log4Net (Open Source) 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 55
  56. 56. MS Enterprise Instrumentation Framework (EMF) .NET Application Application Application object object Configuration Event source Event source Instrumentation API Event schema Event filtering Event Event WMI trace Log WMI Trace Event subscriber Log Log Trace reader 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 56
  57. 57. CLR Profiler 2.0 • Analyse des Speicherverhalten einer .NET- Anwendung – http://msdn.microsoft.com/netframework/downloads /tools/ – Speicher je Objekt, Objektbesitzer, Anzahl Aufrufe 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 57
  58. 58. CLR Profiler 2.0 • Analyse des Speicherverhalten einer .NET- Anwendung – http://msdn.microsoft.com/netframework/downloads /tools/ – Speicher je Objekt, Objektbesitzer, Anzahl Aufrufe 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 58
  59. 59. CLR Profiler 2.0 • Analyse des Speicherverhalten einer .NET- Anwendung – http://msdn.microsoft.com/netframework/downloads /tools/ – Speicher je Objekt, Objektbesitzer, Anzahl Aufrufe 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 59
  60. 60. CLR Profiler 2.0 • Analyse des Speicherverhalten einer .NET- Anwendung – http://msdn.microsoft.com/netframework/downloads /tools/ – Speicher je Objekt, Objektbesitzer, Anzahl Aufrufe 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 60
  61. 61. CLR Profiler 2.0 • Analyse des Speicherverhalten einer .NET- Anwendung – http://msdn.microsoft.com/netframework/downloads /tools/ – Speicher je Objekt, Objektbesitzer, Anzahl Aufrufe 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 61
  62. 62. CLR Profiler 2.0 • Analyse des Speicherverhalten einer .NET- Anwendung – http://msdn.microsoft.com/netframework/downloads /tools/ – Speicher je Objekt, Objektbesitzer, Anzahl Aufrufe 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 62
  63. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 63
  64. 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 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 64
  65. 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/Einfuehrun gInNETFramework30.mspx 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 65
  66. 66. Vielen Dank!
  67. 67. Kontaktdaten Peter Hecker MARTINSFELD Gesellschaft für neue Medien mbH & Co. KG Lichtstr. 43b 50825 Köln Fon: 0221 / 28 36 430 Fax: 0221 / 28 36 431 Email hecker@martinsfeld.de Web: http://www.martinsfeld.de 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 67

×